22 Şubat 2014 Cumartesi

Wowza (v 3.5.2) + HLS + wowzasessionid ile alakalı bir bug...

Siz ilginç bir bug dan bahsetmek isterim. Belki duymuşsunuzdur WozaMediaServer adında bir media server ı. Wowza son zamanların popüler sunucusu. Java tabanlı ve clear bir api dokümantasyonu ile istenilen modülleri yazabilmeniz kolay. Aktif bir forumu olduğundan oradan destek veya istediğiniz modül veya ayarları bulmanız bile mümkün.

Evet bug ımız wowza server 3.5.2 sürümü ile alakalı. Wowza’ya “uçanı kaçanı yakala” modülü yazıyorsunuz. Bu modül her isteği reject ediyor olsun. Siz de müşterilerinize bu uçanı kaçanı yakala modülünü överek işi almış olun.

Bir gün müşteriniz diyor ki; “uçanı kaçanı yakalayacaktınız ancak HLS’te http://xxxxx/playlist.m3u8?wowzasessionid=xxxxxxx ile gelince yayın izleniyor”. Allah allah diyorsunuz bu olmamalı diyorsunuz ve modülünüzü tekrardan gözden geçiriyorsunuz. Bir türlü sorunu çözmiyorsunuz… :)

Size Bug ile ilgili detayları vereyim; Application.xml’de, StreamType “liverepeater-edge”, HLS üzerinden yapılan isteklerde “http://xxxxxx/playlist.m3u8?wowzasessionid=xxxx” şeklinde olunca uçanı kaçanı yakalayan modül yakalamıyor ve yayın izleniyor…

Neyse detaylı bir analiz sonucunda şu durum ortaya çıkıyor: HLS isteğinde, daha önce uçanı kaçanı yakala modülünden geçip accept olmuş , yayını izleyen clientın id si ile , uçanı kaçanı yakala modülünün yakalaması gereken yerde http://xxxx/playlist.m3u8?wowzasessionid=yayınıizleyenwowzaclientid   ile giderseniz yayınız izleyebiliyorsunuz. :)

Bunun sebebi aslında wowza da bulunun listenerlar. Session create olunca wowza onHttpSessionCreate gibi bir listenerın fonksiyonunu çağırır. Ve o listener sizin için aslında modül çalışması demektir. Bir kere create olmuş client id ile giderseniz ne yazık ki bu fonksiyon bir daha tetiklenmiyor. Yani sadece uçanı kaçanı yakala modülü değil, hiçbir sizin yazdığınız modül çalışmıyor diyebiliriz. :)

Güzel haber 3.6.4 de bu giderilmiş…

Kaynaklar:
————————
1- http://wowza.com
2- http://www.wowza.com/forums/showthread.php?22807-onHTTPSessionCreate-does-not-trigger 

9 Şubat 2014 Pazar

Git ve maven üzerine...

İlk başlarda, alışıncaya kadar mavenin kullanılması zor gelebilir. Ancak alışıldıktan sonra, size kazandırdıklarına alışınca git gide beğeninizi kazanmaya başlıyor. Git gide derken bunun üzerine de git kullanıldığında ise demeyin keyfinize…

Git, gerçekten kullanışlı bir kod deposu yönetimi sunuyor. Ne yazık ki ona da alışırsanız svn hele ki cvs ye dönmek istemeyeceksiniz.

Mavenin en çok standart proje yapısı ve IDE’ye bağımlı olmayışı beni etkiledi. Bir maven projesini ister netbeansde ister eclipsede isterseniz notepadde açabilir ve yazmaya devam edebilirsiniz. Debug işlemi için bir IDE kullanmanızı şiddetle tavisye etsem de, kodları yazarken güçlü bir IDE’ye ihtiyacınız yok.

Maven ayrıca tüm bağımlılıkları yönettiğinden sadece kaynak kodunuza yoğunlaşabilirsiniz… 

Şimdilerde eğer bir proje geliştiriyorsanız ve birden çok geliştirici iseniz git-flow gerçekten güzel bir mantık size sunabilir. git-flow’un arkasındaki mantığı biraz maven’in hazır proje yapısına benzettim. Hoşuma gitti. Bence repolarda da bir standart ile çalışmak ve otomatize etmek alıştıktan sonra kolaylık sağlaycaktır.



git-flow için kaynaklar:
——————————————
1- http://nvie.com/posts/a-successful-git-branching-model/

2- https://www.atlassian.com/git/workflows#!workflow-gitflow