28.06.2009

Paylaşmayın.siz

c-2Almanya Hamburg yerel mahkemesi kullanıcıların istedikleri gibi dosya yükleyerek paylaşmalarını sağlayan Rapidshare.com‘u (RS) 34 milyon dolar ceza ödemeye mahkum etti. Bir işletmenin tarihe karışması için yeterli bir meblağ.

Bu ve benzeri servislerin ne suçu var? Sistem kendisi içerik üretmiyor, sistemin kullanılış biçimi konusunda insanları yönlendirmiyor. John Doe seçiyor sakıncalı dosyayı oraya yerleştirip başkalarıyla paylaşmayı. Sistemin sağladığı şeyler disk alanı, yüklemek için araçlar vs değil mi?

Gün geçtikçe daha çok sayısallaşan, teknolojik araçlar sayesinde birbirine daha kolay ve hızlı bağlanan hayatlarımızda yeni sayılabilecek bir bahistir dijital meta paylaşımı. Kafalar eski, toplumun davranışı yeni.

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

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:

08.05.2008

WordPress 2.5 Sürümüne Nasıl Geçilir?

Blogunuzda WordPress kullanıyorsanız 2.5 sürümüne geçme zamanı geldi (bkz WordPress 2.5 Çıktı). En pratik nasıl geçersiniz? Bunu daha önce bir kaç kişiye email ile yazmıştım buraya da yazıyorum belki işinize yarar.

  1. İlk olarak WordPress.org adresinden son sürümü indirin (şu anda 2.5.1).
  2. Sunucunuza FTP ile bağlandıktan sonra WordPress kurulumunun olduğu blog dizininde değiştirmiş olduğunuz dosyalar haricinde tüm dosyaları silin (genelde bu üçü değiştirilir):
    1. /wp-content klasörü kalsın; temalar, pluginler, görseller burada.
    2. index.php kalsın, tema için değiştirimiş olabilirsiniz.
    3. wp-config.php kalsın; veri tabanı bilgileri burada.
  3. Bu üç dosya hariç yeni WordPress 2.5 dosyalarını FTP ile sunucuya atın.
  4. Tarayıcınızda şu adrese gidin /wp-admin/upgrade.php.

WordPress 2.5 çok daha hızlı çalışan ve iyi tasarlanmış bir yönetim arayüzüne sahip. Ayrıca WordPress Otomatik Yenileme eklentisi çıktı, ancak henüz deneyemedim. Web uygulamalarının da masaüstü uygulamaları gibi otomatik yenileme olması aradaki farkın kapanıyor olduğuna dair önemli bir gösterge.

26.02.2008

Etkileşimli Sanat için Sınıflandırmalar

Birçok sanatçı haklı olarak sınıflandırılmaktan hoşlanmasa da, kategorilere yerleştirilmenin eserlerinin yanlış anlaşılmasına, yüzeyselleşmesine, önemsiz bir benzerlik yüzünden alakası olmayan başka işlerle birlikte anılmasına yol açtığını söylese de, gerek arşivleme gereksinimi, gerek araştırma yaparken uzun listeler içinde gezinebilme ihtiyacı, gerek kitap veya sunum hazırlarken bilgiyi bir yapıya oturtmanın pratikliği nedeniyle kategorileme ve sınıflandırma sistemlerine hala başvurulmaya devam ediliyor. Bu konuda çok sayıda değişik yöntem var ve çoğunda esnek olunmaya çalışılıyor. Bunlardan en son rastladığım, Ludwig Boltzmann Institute Media.Art.Research tarafından başlatılan, Prix Ars Electronica 2008 için yapılan başvurularda kullanılan anahtar sözcüklerin ışığında geliştirilmeye devam edilen, birbirinden bağımsız ve iç içe geçebilir başlıklardan oluşan Taxonomies of Media Art:

Sanat eserinin biçimi

enstalasyon
heykel
nesne
performans
yazılım

Sanat eserinin sahası

tek başına
kamusal alan
bağımsız alanlar
ağlı yapılar
sanal dünyalar (Second Life gibi)

Etkileşim ortakları

insan<>insan (sanatçı etkileşimi)
insan<>insan (izleyici etkileşimi)
insan<>bilgisayar
bilgisayar<>bilgisayar
bilgisayar<> harici dijital veri
bilgisayar<> dış ortam
bilgisayar<>analog aygıtlar

İzleyicinin (icracının) yaptığı

gözlemlemek
araştırmak
harekete geçirmek
kumanda etmek
seçmek
içinde gezinmek
katılmak
iz bırakmak
yaratım sürecine katkıda bulunmak
bilgi alışverişinde bulunmak

İşin (projenin) yaptığı

gözetlemek
araç görevi görmek
anlatmak, öykülendirmek
belgelemek
algıyı genişletmek
bir oyun önermek
iletişim sağlamak
görsellemek
ses üretmek
dönüştürmek
depolamak
işlemek
aracılık etmek

Medya

video
bilgisayar grafiği/animasyon
sabit görüntü
projeksiyon
monitör/ekran
3D
ses elektroniği
kulaklık
hoparlör
yayın (radyo/TV)
cep telefonu
el cihazları
mikrofon
RFID
motor (sibernetik, robotik, vs.)

İşlem Teknolojisi

hareket yakalama
görüntü yakalama
ses tanıma
metin tanıma
chroma anahtarlaması
bio-feedback

Slogan

mekansal medya
genişletilmiş (artırılmış) gerçeklik
her an her yerde hesaplama
sanal gerçeklik
televarlık
yapay zeka
low-tech
medya arkeolojisi
etkileşimli sinema
her an her yerde oynanabilir oyun
giyilebilir bilgisayarlar
sibernetik
kinetik
robotik

Konu

yapay zeka
yapay yaşam
biyografiler
veri işleme
ekonomik sistemler
çevre
günlük sorunlar
evrim
genetik
kitlesel medya
medya
çevrimiçi dünyalar
politika
din
göç
sosyal ilişkiler
mahremiyet

Bundan daha genel bir sınıflandırma da Christiane Paul’un Digital Art kitabında kullandığı yapı:

Dijital Teknolojilerin Araç Olarak Kullanımı

Dijital fotoğraf ve baskı
Dijital teknolojilerle heykel

Dijital Teknolojilerin Mecra Olarak Kullanımı

Enstalasyon
Film, video, animasyon
Internet sanatı ve göçebe ağlar
Yazılım sanatı
Sanal gerçeklik ve genişletilmiş (artırılmış) gerçeklik
Ses ve müzik

Dijital Sanatta Temalar

Yapay Yaşam
Yapay Zeka
Televarlık, telematik, telerobotik
Beden ve kimlik
Veritabanları, veri görsellemesi ve eşleştirmesi
Metin ve öyküleme ortamları
Oyun
Taktiksel medya, aktivizm, hacktivizm
Geleceğin teknolojileri

Son olarak da Burak Arıkan ile geçtiğimiz Kasım ayında Aksanat’ta yaptığımız İşlemsel Sanatlar Sunumu‘nda kullandığımız pratik sınıflandırma ile yazıyı bitireyim:

Algoritmik Sistemler: Bilgi İşlem Teknolojileriyle İfade

  • İşlemsel üretilen nesneler
  • İşlemsel çalışan sistemler

Sistemden Karmaşaya: İnternet ve Ağlı İletişim Sistemleri Üzerinden İfade

  • Ağda temsil
  • Ağda eylem

10.12.2007

Le Web Konferansı Başlıyor

leweb.jpg

Avrupa web endüstrisi 11-12 Aralık’da Paris’de Le Web Konferansı için toplanıyor.

Avrupa mı?

Le Web programı bu yıl Digg’den Facebook’a, TechCrunch gibi endüstri bloglarından sosyal yazılım gurularına bütün Silikon Vadisi peygamberlerini içeriyor. Konferans bir Avrupa toplantısından çok hakim Amerikan şirketlerinin Avrupa çıkarması gibi duruyor.

Konferans görselleri durumu iyi anlatıyor. Diyor ki: ey internet yolcusu, dünyanın hakimi olmak istiyorsan bu konferansa gelip dünyaya uzaydan bakman lazım.

25.09.2007

İnternet Yasağı Nasıl Aşılır?

Çabuk yoldan bilgisayarımı, ağımı sansürden kurtarmak istiyorum ne yapmalıyım? Bağlı olduğunuz servis sağlayıcının DNS sunucularını değil, başka sunucuları kullanabilirsiniz. (Ağ ayarlarından ‘Otomatik DNS sunucusu adresi al’ seçeneğini elle değiştirin. Bu ayarı router veya kablosuz ağ cihazınızın içerisinden değiştirebilecek beceriniz varsa eşi dostu da serbest bırakmış olursunuz)

Pardus DNS
Birincil (Primary)      : 193.140.100.210
İkincil    (Secondary) : 193.140.100.215

Comodo DNS
Birincil (Primary)      : 156.154.70.22
İkincil    (Secondary) : 156.154.71.22

Google Public DNS
Birincil (Primary)      : 8.8.8.8
İkincil    (Secondary) : 8.8.4.4

OpenDNS
Birincil (Primary)      : 208.67.222.222
İkincil    (Secondary) : 208.67.220.220

PC’ler için (Sağ alt köşede kıpraşan ağ belirtecine sağ tuş sonra özellikler)

Apple Mac bilgisayarlar için (System Preferences / Network / Airport (?) / Advanced / DNS)

Bu ve benzeri çözümleri hepimiz kullanıyoruz, lakin bu hizmeti babamızın hayrına vermediklerini de bilelim. Google 24 saatlik bir zaman dilimi içerisinde IP adreslerimizi ve ağa nereden bağlandığımız bilgilerini kaydediyor. 24 saat sonra IP adresi bilgilerini siliyor, diğer gezinti bilgilerini muhtemelen daha sonra işlemek ve gerektiğinde kullanmak üzere rafa kaldırıyor. OpenDNS de gizlilik bildirgesinde iki iş günü içerisinde IP adresi kayıtlarını sildiklerini belirtmiş, gerisini fazla kurcalama diyor.

Hiç yoktan iyidir güzel yurdumun engellenmeye çalışılan insanları. Yukarıda anlatılanlar en kolay yöntemdir, elbette daha başka metodlar da var. Bu yazı yayınlandıktan sonra yorum yazmak suretiyle yapılan katkılar şahane birikim oluşturmuştu, aşağıya göz atmayı da ihmal etmeyin.

Hazır güncelleme yapmışken (Mayıs 2010) eski bilgileri sildim.

Hepimize özgür gezintiler!


Düğümküme’de konu ile ilgili yazılmış yazılar:

Biri Bu Adamı Durdursun, Etkin Çiftçi
http://www.dugumkume.org/biri-bu-adami-durdursun

Youtube’a Türkiye’den erişim, Türk Mahkemesi Tarafından Engellendi!, Dara Kılıçoğlu
http://www.dugumkume.org/youtube-turk-mahkemesi-tarafindan-engellendi

Mahkeme Kararıyla Internet Sitesi Kapattırma Formu, Burak Arıkan
http://www.dugumkume.org/mahkeme-karariyla-internet-sitesi-kapattirma-formu

İfade Özgürlüğü Yazılımları, Ali Miharbi
http://www.dugumkume.org/ifade-ozgurlugu-yazilimlari

04.05.2007

Prototip (ilkörnek) Yazılım Geliştirme

spYazılım geliştirmek artık sadece kod yazmaktan ibaret değil. Gün geçtikçe tasarımcılar mühendislik, mühendisler de tasarım bilgi ve becerilerini artırıyorlar.

Ticari bir yazılım projesinde prototip kullanılması işleri kolaylaştıracaktır. Hem profesyonelce sunumlar yapabilmek hem de ürünün karşı tarafa daha iyi ifade edilebilmesi açısından çeşitli katkıları olacak, iletişimi artıracaktır.

Bu konuda Hal Helms tarafından yazılmış bir yazıyı sizlerle paylaşmak istedim, orijinali (ingilizce) burada.

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

25.04.2007

Uzaktan Çalışan Takımlar İçin Yazılımlar

beraber-calisma.png

Düğümküme’de yazan çizen kişiler dünyanın farklı yerlerinde yaşıyorlar, zaman zaman beraber proje yapıyorlar, zaman zaman Düğümküme üzerinden herkesle açık olarak fikirlerini paylaşıyorlar. Birbirimizden uzak da olsak beraber yaptığımız işlerde bizi yakınlaştıran bir çok yazılım kullanıyoruz. Ağlı bağlı yaşamda bu yeni nesil araçlar iş yapma şartlarımızı geliştiriyor, bu araçları kısaca sizinle de paylaşmak istedik.

Temel İletişim

Eposta’dan sonra en çok sesli ve görüntülü konuşmaya ihtiyacımız oluyor, böylece daha derin iletişim kurabiliyoruz.

  • Skype
    Videolu / sesli toplantı + anında mesajlaşma. Uzakta da olsak verimli toplantılar yapmamızı sağlıyor.
  • Gtalk
    Videolu / sesli sync async iletişim. Görüşme arşivlerini arama tarama.

Bağlamda Kalma

Düzenli ve sürekli bilgi paylaşımı beraber çalışanlar kişileri aynı bağlamda tutar. Böylece bir toplantı yaptığınızda veya epostalarda uzun uzun aynı şeyleri tekrarlamadan direk konuya girersiniz ve çabuk çözüme ulaşırsınız.

  • Netnewswire, FeedReader, Firefox RSS
    RSS okuyucular. Düğümküme yazıları, bookmarklar, paylaşımlardan binlerce haber kaynağını günlük takip edebiliyoruz.
  • WordPress
    Blog yazma. Düğümküme ve diğer kişisel bloglarımız için açık kaynaklı yazılım.
  • MediaWiki
    Bir projede çalışan herkesin makale düzenleyebildiği orjinal wiki yazılımı. Kapsamlı bir işe başlarken başlarda araştırma sonuçlarını ve fikirleri biriktirmemizi sağlıyor, sonra arşiv oluyor.

Ortak Takvim

Beraber çalıştığınız kişiden bir şey rica ederken takvimin uygun olup olmadığını görebilirsiniz. Özellikle farklı şehirlerde yaşayanlar ve ana işleri yanında masa altı proje yapanlar için faydalı.

  • Google Calendar
    Zaman ve iş takibi. Proje ile ilgili etkinlikleri takip ediyoruz.

İş Akışı

Projeler karmaşıklaştıkça versiyonları ve yapılacaklar listesini tutmak daha da önemli hale geliyor.

  • Subversion, Git, Github
    Kod deposu ve proje versiyonlandırma. Hekes projenin farklı yerini mıncıklasa da düzenli yürümemizi ve proje geliştikçe versiyonlar arasında geçiş yapmamızı sağlıyor.
  • Tada List, Remember The Milk
    Yapılacaklar listesi. Projede çalışanlar ekleyip çıkarma yapabiliyor, bitenler işaretleniyor, neredeyiz ne kadar daha iş var herkes kolayca takip edebiliyor.
  • Yousendit
    Birbirimize büyük dosyalar gönderme. 20MB ve üstü dosyaları epostayla göndermek kolay olmuyor.
  • Basecamp
    Genel proje yönetimi. Küçük takımlar için faydalı. Henüz tümüyle kullanmıyoruz.

Hesap Kitap

Parasız pulsuz bir iş olmayacağı için temel nakit akışını takip etmek çok önemli. İşle alakalı herkes tabloları düzenleyebilmeli ve sık sık durum yenilenmeli.

  • Google Spreadsheet
    Proje bütçesi, gelir gider tablosu, nakit akışı, yıllık tahminler. Projede çalışanlar hesap tablosunun gözlerini düzenliyor ve not bırakabiliyor. Ayrıca yeni çıkan görselleştirme araçlarıyla diyagram olarak görebiliyoruz gidişatı.

Adres Defteri / İlişki Takibi

İletişimde olduğunuz müşterilerin sayısı bir süre sonra çok artabilir. Kartlar kontrolden çıkar. Kiminle ne konuşuldu gibi notlar tutmak uzaktan beraber çalışanlar için durumu takip etmeyi kolaylaştırır.

  • Highrise
    Müşteri ilişkileri yönetimi. Klasik adres defteriniden buna geçmeyi henüz yeni yeni düşünüyoruz.

Siz de benzer yazılımlar kullanıyorsanız deneyimlerinizi bu yazıya yorum olarak yazın. Ayrıca burada olmayan ve beraber çalışırken işinize yarayan yazılımları da gönderin deneyelim, öğrenelim.

08.03.2007

İfade Özgürlüğü Yazılımları

Bir yandan Amerikan şirketleri, Internet sansürü konusunda dünyada bir numara olan Çin hükümeti için filtrelemeye yönelik yazılım projeleri geliştirirken, öte yandan buna tepki olarak bağımsız bazı oluşumlar hükümetlerin engellediği sitelerin veya koydukları filtrelerin etrafından dolaşabilecek sistemler geliştiriyorlar. Bu sistemlerin ortak özelliği Internet kullanıcısını anonimleştirmeleri ve istedikleri bilgiye proxy’ler yoluyla ulaşmalarını sağlamaları.

Anonymizer, özel kişilere ve şirketlere satılan bir yazılım iken, şimdi Çin ve diğer politik ve dini nedenlerden Internet’i sansürlenen ülkelere yazılımlarını ücretsiz vermeyi planlıyorlar.

Tor, Cambridge’li bir grup gönüllünün başlattığı bir proje. Çalışma prensibi, kullanıcıların bant genişliklerindeki boşlukları paylaşmak, böylelikle hem kullanıcılara anonimlik sağlamak hem de sansürlenen ülke kullanıcılarının içeriğe dolaylı yoldan ulaşmalarını sağlamak.

psiphon.jpg

Toronto Üniversitesi’nde GPL lisanslı Psiphon projesi de Tor’a benzer bir şekilde çalışıyor. Tor’dan ve Anonymizer’dan ve yine benzer şekilde çalışan Circumventor‘dan bir farkı, özellikle sansüre karşı başlatılmış bir girişim olması. Bu elbette yazılımın okullar gibi bazı içeriğin geçerli olabilecek nedenlerle kısıtlandığı mekanlarda kullanılmasına engel değil. Anonimlik için geliştirildiğinden, Tor; Psiphon ve Circumventor’un aksine, sansürlü ülke dışındaki birinden doğrudan yardım almadan çalışabilse de bu Tor’u IP filtreleme yoluyla daha kolay bloke edilebilir kılıyor.

İlginç olan, Tor ve Anonymizer’ın ABD hükümeti ve ordusu tarafından anonim olarak bilgi toplama ve Ortadoğu’daki askerleri ile bağlantı kurma gibi kullanımlarından ötürü destek almaları. Oysa 10 yıl kadar önce aynı şifreleme teknolojisi teröristler ve kanun kaçakları da kullanabilir korkusuyla ABD tarafından yasaklanmıştı. Şu anda şifreleme ve web’de anonim surf yapma özgürlük araçları olarak görülüyor.

tor-revealed.jpg

Anonymizer, Psiphon ve Tor kullanıcının ulaşmak istediği hedefin gizlenmesi yoluyla çalışıyor. Veriler şifrelenerek özel proxy makinalarına aktarılıyor, sansür uygulanmayan batı ülkelerinde bulunan bu proxy sunucular da içeriği kullanıcıya aktarıyor.

Bu programlar aslında sansür uygulayan ülkeler tarafından engellenemez nitelikte değil. Psiphon ve Anonymizer için hükümetler şu yöntemleri kullanabilir:

  • Hostname’i SSL sertifikasıyla uyuşmayan sitelerin bloke edilmesi (Çin’in IP güvenlik duvarından ziyade Ortadoğu’da kullanılan proxy sunucu sansürlemesi için daha uygun bir yöntem)
  • Konutlara verilen IP aralıklarına yapılan web bağlantılarının bloke edilmesi

Belli açıkları olmalarına rağmen, şu an için bu yazılımların engellenmesi için sansürcü hükümetlerce fazla bir çaba sarfedilmiş değil. Şu an için çok yaygın kullanılmadıklarından fazla önemsenmiyorlar olabilirler. Belki de, bu yazılımların fazla yaygın olmamalarında en büyük etken, ifade özgürlüğünün kısıtlandığı ülkelerdeki insanların, hükümetlerin sansür için gösterdikleri gerekçeleri haklı bulmaları ve sansürü kabullenmeleri.

03.07.2005

Avrupa Birliği'nde yazılım patentleri krizi

Avrupa Parlementosu Amerikan Yazilim Patenti sistemini Avrupa Birligi’nde uygulamaya koymaya calisiyor. Eger uygulama gerceklesirse yazilim gelistirenler gelistirdikleri yazilimlara sahip olamiycaklar, ve kendi dagitimlarini yaptiklarinda haklarinda dava acilabilecek. Bu sistemin yasa olarak uyglanmasi icin Microsoft, EICTA, CompTIA gibi buyuk yazilim ve teknoloji kuruluslari Avrupa Parlementosu’nu etkilemek icin her turlu cabayi gosteriyorlar. Bu tekelci bakis acisini protesto eden ve yasalarin bu yonde olusmamasina caba gosteren girisimler, dusunceler bir cok boyutta devam ediyor.