Pazar, Nisan 26, 2009

flowplayer bwcheck eklentisi için red5 örneği

şuradaki rtmp örneğini red5 üzerinde çalıştırabilmek için tüm flowplayer'i anlamam gerekti, internette sadece yarım yamalak bilgiler bulabildim, yaşadığım süreci başkaları için hızlandırabilmek adına yaptığım ayarları paylaşayım dedim:

index.html:

<html>
<head>
<script type="text/javascript" src="flowplayer-min.js"></script>
</head>
<body>
<div id="info">click below to see most appropriate video to your bandwidth</div>
<a class="rtmp" id="red5"><img src="img/showme.png" /></a>
<script language="JavaScript">
$f("red5", "swf/flowplayer-3.1.0.swf", {
log: {
filter: 'org.flowplayer.bwcheck.*',
level: 'debug'
},

clip: {
url: 'skyandice.flv',
urlResolvers: 'bwcheck',
live: true,
provider: 'rtmp'
},

plugins: {

bwcheck: {
url: 'swf/flowplayer.bwcheck-3.1.0.swf',
netConnectionUrl: 'rtmp://red5ip:1935/bwcheck',
bitrates: [40, 150, 400, 700, 1000],
serverType: 'red5',
rememberBitrate: false,

onBwDone: function(url, chosenBitrate, bitrate) {
var el = document.getElementById("info");
el.innerHTML = "Your speed is: " +bitrate+ "<br />Video file served: " +url;
}
},

rtmp: {
url: 'swf/flowplayer.rtmp-3.1.0.swf',
netConnectionUrl: 'rtmp://red5ip:1935/oflaDemo'
}
}
});
</script>
</body>
</html>


kullanilan dosyalar:

http://static.flowplayer.org/img/player/btn/showme.png # img altina
http://static.flowplayer.org/video/skyandice-40.flv
http://static.flowplayer.org/video/skyandice-150.flv
http://static.flowplayer.org/video/skyandice-400.flv
http://static.flowplayer.org/video/skyandice-700.flv
http://static.flowplayer.org/video/skyandice-1000.flv
# skyandice*.flv'ler /usr/lib/red5/webapps/oflaDemo/streams altına (artık siz nereye kurduysanız)
http://flowplayer.org/releases/flowplayer.bwcheck/flowplayer.bwcheck-3.1.0.swf
http://flowplayer.org/releases/flowplayer.rtmp/flowplayer.rtmp-3.1.0.swf
http://flowplayer.org/releases/flowplayer/flowplayer-3.1.0.zip
# flowplayer-3.1.0.swf, flowplayer.controls-3.1.0.swf, flowplayer-3.1.0.min.js de bu zip dosyasından geliyor
# tum swfler swf dizini altına


bir de http://red5ip:5080/installer adresinden bwcheck ve oflaDemo uygulamalarını kurmuş olmanız gerekiyor.

umarım birilerine faydası dokunur.

Pazar, Nisan 19, 2009

anarşik bir iş ortamında iş yapabilmek

zeitin'de demokrasinin de ötesinde anarşik bir düzen daha doğrusu düzensizlik hüküm sürüyor şu sıralar, anarşinin son bulduğu tek nokta ise öncelik listemiz, parkyeri'ndeyken bölüm sorumluları ve şirket ortakların bir araya geldiği eşgüdüm toplantılarında her bölüm için o haftanın öncelikli işlerini çıkarmaya çalışırdık. zeitin'de sayımız az olduğundan, herkesin katıldığı haftalık şirket toplantıları yapmaya başlamış ve eşgüdüm işini de bu toplantılarda halletmeye çalışmıştık, ancak anerşik yapımız bu toplantıların devamlılığını getirmemize engel oldu, ve muhtemelen küçük bir şirket için en uygun olan yönteme kendiliğinden bir yönelim yaşadık, işlerin önceliklendirilmesi işini bir kişi kendi başına yapar duruma geldi, şu anda da bu işi giray abi üstlenmiş durumda.

bu hafta, önceliklerimizin dışında bir işle uğraşınca alper'den tepki aldım. anarşinin getirdiği yan etkilerden biri de bu, kimden ne zaman nasıl bir tepki alacağınızı tahmin etmek çok kolay değil. sonradan öğrendim ki alper de aynı işe talipmiş ve giray abilerle konuştuğunda işin önceliği engeline takılmış.

hiyerarşik bir düzende veya kuralların belli olduğu bir yerde herhangi bir hareketinizin sonuçlarını tahmin etmek biraz daha kolaydır, en azından mutlu etmeniz gereken insanlar bellidir. anarşik bir toplumda ise herkesin mutlu olmasını sağlamanız gerekiyor, bu da fazla ideal bir durum, pratikte çok mümkün gözükmüyor. dolayısıyla ortamda şikayetler eksik olmuyor, her an illa biri birilerinden veya bir durumdan şikayetçi, ve şikayetleri yönetmediğimizden, ilginiz olsa da olmasa da, ister istemez her şikayetten etkileniyorsanız. "ilginiz olsa da olmasa da" sözü aslında zeitin için çok yanlış, çünkü zeitin çalışanı iseniz her işle doğal olarak ilgili olduğunuzu kabul etmişsiniz demektir.

bugün zeitin'de sahip olduğumuz özgürlüklerin dünya üzerinde hiç bir şirket çalışanına sunulduğunu sanmıyorum, buna google da dahil. insanlar parkyeri'nin ve zeitin'in google'dan esinlendiğini düşünüyor, eğer benzetileceksek google'dan çok "SUN"'a benzetilmemiz bence daha doğru, benim uzaktan algıladığım "SUN" çok daha okul gibi tasarlanmış ve çalışan insiyatifinin ön planda tutulduğu bir şirket. google ise daha çok "mış gibi" yapan bir şirket. "don't do evil" diyip, android telefonlarda google hesabını zorunlu kılan, dağıtım gücünü tekel oluşturmak için kullanan bir şirket. "çalışanlarımıza zamanlarının %20'sinde istedikleri işi yapma özürlüğü tanıyoruz" diye reklam yapan, ama bu %20'de yapacağınız işi müdürünüze onaylatmanız gerektiği detayını pek paylaşmayan, içeride müdür gibi kavramların hüküm sürdüğü bir şirket. chrome ve chromium diye biri açık biri kapalı kaynaklı iki ayrı proje açıp tek taraflı faydaya dayalı bir camia gücü oluşturma peşine düşmüş bir şirket. bu gibi hareketler google'in samimiyetinden şüphe ettiriyor insanı.

zeitin olarak debian tercih etmemizin sebebi de bu, gerçekten özgürlüğü varoluş sebebi olarak koruyabilmiş tek dağıtım, genelde diğer dağıtımlar camia gücünü kullanmaya çalışan, başka amaçlarla yola çıkmış, çıktıkları yol özgür yazılımlarla kesiştiği için özgür yazılıma destek olan, pek çok konuda google'un yaptığı gibi "mış gibi" yapan dağıtımlar.

zeitin'in kurucularını tanıyan ve zeitin'in kuruluşuna şahit olma şansı yakalamış bir insan olarak, zeitin'in çalışan mutluluğu ve özgürlüğü üzerine kurulmuş bir şirket olduğuna, bu iki unsurun herşeyin önünde tutulmuş olduğuna birinci elden tanığım. umarım hep böyle kalabilir.

yalnız "özgürlük eşittir mutluluk" demek doğru değil, özgürlüğü başarılı olma sebebi olarak göstermek de doğru değil. ama hem özgür hem başarılı olunabilir.

herkesin özgür olması demek anarşi demek, anarşilerde huzursuzluk oluşması doğal, bu huzursuzluklara çözüm demokrasi olabilir, yalnız demokrasiyi zeitin'e çok uyarlayamıyoruz çünkü demokrasi beraberinde yasaları getiriyor, yasa demek yasak demek. (gerçi başbakanımız en son türban mevzularında "artık yasaklar ülkesi olmayalım" gibi ilginç demeçlerde bulunmuştu, ya başbakanın bir yanlışı var ya benim, bildiğim kadarıyla yasaklarla yönetilmeyen herhangi bir ülke yok, tek yaptığımız ülkeleri yasakları koyuş ve uygulayış şekline göre sınıflandırmak)

yasa ve yasakların ters tarafı zamanla hiç duymadığın bilmediğin kurallara tabi hale gelmen. bunu çözüm de yasaları yazmayıp töreler gibi yazılı olmayan kurallarla ilerlemek, uygulama konusunda da toplumsal yaptırımlara başvurmak, yani mahalle baskısına izin vermek. bu durumda "bir yasayı duymadıysan o yasa yoktur" kuralı işler.

bu son örnekte, önceliklerimizin dışına çıkarak törelerimize karşı gelmiş oldum sanırım, karşıma da ilk çıkan alper oldu, beni destekleyen kimse çıkmadığından mahalle baskısını da yemiş oldum. ancak herşeye rağmen başladığım işi bitirmekte ısrar ettim, "ya bu işi yaparım, ya da işime son verirsiniz" diye çıkışınca engelleri aşmış oldum, muhtemelen ay sonunda başarım değerlendirmemin olumsuz etkilenmesi gibi son bir yaptırım daha yiyeceğim, bir daha böyle bir şey yapmamam için (şu an başarım değerlendirmesi işini de giray abi üstlenmiş durumda, bu cezayı verip vermeme kararını verecek insan da kendisi dolayısıyla)

yapacağım iş sürüm çıkma yöntemimizi değiştirecekti, parkyeri zamanlarından beri sürümlerin deb paketi olarak çıkılmasını, sürümlerimizi ve bağımlılıklarını koyabileceğimiz bir debian depomuz olması gerektiğini savunan bir insan olarak, yeni şirkette daha insanlar alışkanlıklarını oluşturmadan bu işin halledilmesi gerektiğini düşünüyordum, bu yüzden benim için oldukça öncelikli bir işti. giray abi işin önceliği konusunda benimle aynı fikirde değildi, ancak giray abinin öncelikleriyle ilerleyecek olsam muhtemelen 6 yıl beklemem gerekecekti (parkyeri'nin 6 yıldır debian kullanan ama debian deposu olmayan bir şirket olduğunu düşünecek olursak).

bu çok kritik bir işti, çünkü anarşik bir toplumda doğru zamanda doğru yerde yazacağınız ufak bir betik, bir araç ya da belirleyeceğiniz bir çalışma yöntemi, yeni bir "töre"'nin doğmasını tetikleyecektir. bu ilk bakışta zor koşma gibi bir yöntem gibi gözükse de aslında pek değil, çünkü eğer insanları saçma bir yönteme zorlarsanız kabullenmeyeceklerdir, direnç göstereceklerdir. tabi bunun çalışması için de akıllı ve sorgulayan insanlarla çalışmak gibi bir ön koşul gerekiyor. yalnız yöntem belirlemek yeterli değil, arkasında durmak da gerekiyor töreleştirebilmek için. bir süre sürüm işleriyle kendim ilgileneceğim, belirlediğim yöntemleri insanlara göstereceğim, eleştirlerini alacağım, yöntemlerin iyice olgunlaşması ve başkalarının da aynı yöntemleri kullanmasını sağlamak için mücadele edeceğim. zaten doğru bir şey yapıyorsam insanlar kısa zamanda benimseyecektir.

zeitin yeni bir şirket olduğundan, henüz insanlar sürüm hazırlama konusunda bazı alışkanlıklar oturtmamış olduğu için işim biraz daha kolay olacak. eğer zaman geçmesine izin verseydim sadece mantıklı bir yöntem önermem yetmeyecekti, aynı zamanda insanların eski alışkanlıklarını kırmak için çok zorlu bir mücadeleye girişmem gerekecekti ve muhtemelen başaramayacaktım.

bir diğer yöntem ise, işe girişmeden önce herkesi ikna etmek olabilirdi. bence bu yöntem çok masraflı, toplantı gibi ön koşullar gerektiriyor, toplantılarda herkezden bir anda yaptıkları işlerden uzaklaşıp sizin yaptığınız işe sizin kadar odaklanmalarını bekliyorsunuz, ben bunu gerçekten başarabilene şahit olmadım açıkcası. bir de bu yöntemde fikri öneren ile uygulayan farklı insanlar oluyor genelde, dolayısıyla önerilerin yeterince olgunlaşmaması gibi bir risk taşıyor.

eğer anarşik bir toplumda iş yapacaksanız, öncelikle yaptığınız işe inanmanız gerekiyor, motivasyonunuzu iyi belirlemeniz ve sağlam temellere oturtmanız gerekiyor, çünkü insanların tepkilerinin motivasyonunuzu kırmasına izin vermemelisiniz, başladığınız işi bitirmek gibi bir prensip edinmiş olmanız da işinize yarayacaktır.

insanların motivasyonunuzu kırmasına izin vermemeniz gerektiği gibi kendiniz de başkasının motivasyonunu gereksiz bozacak laflar etmemeniz gerekiyor. amacı olmayan cümlelerden uzak durmalısınız, ama amaçlı cümlelerinizi de sakınmamanız gerekiyor, yoksa şirket istemediğiniz bir yöne doğru kayabilir, desteklediğiniz töreleri yıpratıcı hareketlerden kaçınmanız önemli (gerçi alper'le yaşadığımız son örnekte buna uyamadım, çünkü yaptığım hareketin getirisi götürüsünden çoktu), bir de birinin hata yaptığını düşünüyorsanız mutlaka yüzüne karşı söylemeniz lazım, kendini düzeltme şansı tanımak için, ancak bunu yaparken kendinizin de hatalı düşünüyor olma ihtimalini göz önünde bulundurmanız şart. bu lafına dikkat etme meselesi o kadar da kolay değil, kurduğum cümlelerde kendime bir nebze hakim olabilsem de biri ters bir laf ettiğinde karşı saldırıya geçme gibi yenemediğim bir refleksim var, bu anlarda biraz şevk kırıcı olabiliyorum sanırım.

açıkcası zeitin'de çok huzursuz olduğum anlar olmadı değil, kafam rahat olsun da özgür olmayım dediğim anlar da oldu. ancak dönüp baktığımda görüyorum ki 3 ayda vidi gibi bir ürün çıkarabilmişiz ki aynı ölçeklerde kurumsal bir şirkete parasıyla aynı işi yaptırmaya kalksanız muhtemelen 1 sene de çıkacak bir ürün, 1 sene iyimser bir tahmin bile olabilir. daha duyurusunu yapmamış olduğumuz ve çok ses getireceğine inandığımız gokada adlı projemizde de yolu yarılamış durumdayız, şu anda bu proje kapsamında geliştirdiğimiz "thinclient" çözümünü şirket içerisinde kullanmaktayız.

yani görünen o ki anarşiyle, törelerle bir şekilde bir şeyler ortaya çıkarabiliyoruz, bir yazılımcı olarak bu başarı hissi, "bir şey ürettim" hissi çok önemli. umarım yakın zamanda ürünlerimizin satışını da başarabilir ve şirketimizin devamlılığını sağlayabiliriz.