This post is for (temporary) job application purpose which I will revise and update again in the future.

  • My LinkedIn profile can represent my latest cv.
  • My web development portfolio can be found here.
  • And for my code sample (I didn’t maintain my github account well yet) can be downloaded here. That is Joomla component that I developed during my last project for internal portal.

Thank you for your visit 🙂

Continue from previous post about JW Player, this time I will discuss about using Flow Player.

Apparently there’s problem with the script in JW Player which play automatically when the streaming is available. That script made autoplay feature (when page contain streaming (live) is opened) is stopped working in some mobile devices (tested in some Symbian Nokia, Samsung Galaxy Ace ). The problem wasn’t appear in PC’s browser though. However I didn’t try to explore much and solve that problem in JW Player, I would like to try using Flow player instead.

For RTMP Streaming, flow player need to use separate plugin called Streaming Plugin RTMP. Relax, both flowplayer and this rtmp plugin are free 🙂
After do the coding based on the documentation, we tested the script. The results as follow:

  • RTMP streaming is working as expected
  • The streaming (live) is started automatically as soon as page opened
  • When the broadcast is stopped then played again after few secs. The player detects the streaming is available again and play it automatically. Surprisingly, i didn’t need to put special script for this
  • Some error messages appear when streaming (live) is stopped or disturbed
  • Play button won’t dissapear even the streaming is already started again (broadcast was stopped before on purpose)

I did some researching to tackle that last issue and to hid all error messages (as owner request 🙂 ), then I found that I just need to set some value in the configuration.
Below is the final script I used:

<script language="JavaScript">
flowplayer("player", "flowplayer/flowplayer-3.2.7.swf", {
showErrors: false,
play: {
opacity:0
},
clip: {
url: "myStream",
live: true,
provider: "rtmp"
},
plugins: {
rtmp: {
url: "flowplayer/flowplayer.rtmp-3.2.3.swf",
netConnectionUrl: "rtmp://www.mySite.com/live"
}
}
});
</script>

Some explanation about the script:

  • showErrors: false –> disable error messages
  • opacity:0 –> this is to make Play button invinsible. Sometimes it appears even the streaming is already played
  • for rtmp streaming, need to use plugin as above

There’s two playback player which we were considering, Flowplayer and JWplayer. From googling, both are seem equal on functionality at the moment. However from pricing, Flowplayer offer one-time fee for one domain USD 95, while JWplayer offer license USD 89 for one domain and plugin charged separately, which could make it more expensive. The project owner prefer JWplayer since he saw many competitors are using it. And here I’am trying JWplayer first.

The main requirement for the playback player are the following:

  1. support for RTMP live streaming
  2. autoplay, once the html page is open, the playback plays automatically without users click play button
  3. if the broadcast from encoder is stopped, then started again (after several minutes), the player is expected to automatically play the stream again without user refresh the page or click the play button again

The documentation is easy to follow, and i quickly find how to accomplish point 2 above. There are three ways to embed JW Player into HTML:

  • Using the JW Player’s own JavaScript Embedder (jwplayer.js), Recommended
  • Using a generic JavaScript embedder (like SWFObject)
  • Using a HTML tag (like <object> or )

I choose the recommended point, include jwplayer.js in my script.

In order to accomplish point 3, at first I found useful plugin for this, livestream-1. When the live streaming is stopped, the plugin will check the stream within time interval (configurable) and automatically play it when available. However once I tried it, the plugin kept looking the stream even the stream was already playing 😦 The JWplayer Forum also said there’s a bug as well for this plugin.

I replaced that plugin with simple javascript code, with help of Javascript API Reference .
The simple script below works as expected:

<div id='container'>The player will be placed here</div>

<script type="text/javascript">
jwplayer("container").setup({
flashplayer: "jwplayer/player.swf",
file: "myStream",
autostart: "true",
height: 270,
width: 480,
provider: "rtmp",
streamer: "rtmp://www.yoursite.com/live"
});

<!--
//Script to handle time out; used in case live streaming stopped
//by ip5up 2012-01-26
var t;
var timer=5000;
jwplayer().onIdle(function() {
t=setTimeout("jwplayer().play()",timer);
});

</script>

PS: Don’t forget to include script jwplayer.js in the head section

Currently I’m involved in a friend’s project to develop his own Internet TV (webcast). At first I tried Darwin Streaming Server (free one) then we finally decide on using Wowza as streaming server (finally the paid one eh). DSS is open source project from Apple, which using source code similar to its paid version, Quick Time Streaming Server (QTSS). Just that QTSS is only available for Mac OS Server.

DSS
DSS is using protocol RTSP (Real Time Streaming Protocol). It’s installation on Linux Centos 5.5 is quite easy.

  1. I followed step by step procedure as in howtoforge.com site, it’s detailed already
  2. Then proceed to live streaming configuration, i found useful guidance in soundscreen.com site. First need to put file qtaccess (can be found in config folder /etc/dss/conf) inside movies main folder
  3. Edit qtaccess file and give write access to user group broadcaster as the following code:

    <Limit WRITE>
    AuthGroupFile /etc/dss/qtgroups
    AuthUserFile /etc/dss/qtusers
    require group broadcaster
    </Limit>

  4. Run command qtpasswd as root then add new user in broadcaster group
  5. Configure encoder to broadcast to DSS. I’m using wirecast trial version
    Go to menu broadcast, set:

    • encoder: DSL/Cable-MPEG4
    • destination: Announce to Quicktime Streaming Server
    • hostname: xx.xx.xx.xx
    • file location: live.sdp
    • username: xxxxx (created in step 4 above)
    • passwd: xxxxx

    This is automatic unicast where file sdp (session description protocol) is created automatically in the server. That’s why we need to give write access for broadcaster.

  6. Open quicktime to see streaming result. Go to file –> Open URL. Put yourserver address which will be similar like this: rtsp://yoursite.com/live.sdp

When we tried the live streaming via DSS, we faced issue with the picture. Especially when viewed in low bandwith, we got lag and the picture was no good. I thought it has something to do with the config especially related to buffering, but changing some value in file streamingserver.xml is no use.
Another thought is connection issue between encoder and DSS since both are not in the same network. We were trying to lower encoder bitrate, lower the quality but still the same problem. Is it just the nature of RTSP protocol ? When test using RTMP, we get lag in low bandwith but the picture is still good, not disturbed.

I tried to look for some clue in mailing list, found that many users are left DSS and use other application, like Wowza. Perhaps because there’s no further update since 2008 and also Apple seems to focus more on its HTTP Live Streaming, rather than its QTSS. I started to feel will be lack of support for DSS.
With the problem is still unsolved for DSS and time is running out, we decided to try Wowza trial version.

Wowza
First I download the rpm from the official site, and obtained trial license for 30 days via email.
Installation is much easier. Just follow the quick start guide.
In order to do live streaming:
1. install the live application examples or you can manually configure the application.xml.
2. set the encoder, for wirecast just follow this article.
First attempt, live streaming was run well. As expected, the quality of the picture is good. For test the streaming, I was using flash player from the examples for the playback.

To protect server from unauthorized access to broadcast, I use media security module. First download the files, and put the jar files in folder lib. Add authorized user in file conf/publish.password, then configure the same credential in the encoder as well. You’re good to go 🙂

Next step, we decided to try Jwplayer for playback. How do I do it ? See you in the next post 🙂

Hari itu, Rabu, 28 April 2010, Luh Ayu memulai aktivitas rutinnya yg baru, yaitu belajar menari Bali. Masih terekam dalam ingatanku betapa antusiasnya dia sehari sebelum pelajarannya yang pertama di pelataran Pura Agung Tirta Bhuana Bekasi. Baginya, menari bali adalah impian masa kanak-kanak nya yang baru terwujud sekarang. Itu berarti 20 tahun-an dia menantikan momen ini. Tidak heran dia begitu riang dan antusias menyambut hari pertamanya, seperti kepolosan anak kecil menyambut hari pertama masuk sekolah 🙂

LKB (Lembaga Kesenian Bali) Saraswati, di bawah asuhan Bapak Kompiang Raka, membuka beberapa kursus tari Bali. Sanggar tari yang tahun ini berumur 42 tahun, memiliki segudang pengalaman baik nasional dan internasional. Sejak berdiri telah melahirkan 3000 orang penari, bahkan hingga dua (2) generasi, ibu dan anak pernah berlatih di LKB Saraswati. Di tempat inilah, Luh Ayu mengambil jadwal latihan dua kali seminggu, hari Rabu dan Jumat, di dua tempat berbeda. Hari Rabu di Pura Agung Tirta Bhuana Bekasi, sedang hari Jumat di Taman Ismail Marzuki. Satu sesi latihan berlangsung selama 2 jam, dengan jeda istirahat beberapa kali. Pelajaran pertama bagi pemula adalah tari pendet.

Kostum Pendet

Seminggu dari sekarang, hari minggu 1 Agustus 2010, terhitung 3 bulan (lebih sedikit) sudah Luh Ayu belajar pendet dan dia akan menghadapi ujian pertamanya. Ini juga merupakan pentas pertamanya di depan publik, dengan pakaian pendet lengkap. Hingga saat ini, aku masih merasakan antusiasme yang belum berubah dari dia. Luh Ayu benar-benar menantikan momen ini dan aku rasa dia benar-benar siap untuk itu. Selama 3 bulan latihan, dia begitu bersemangat dan penuh keringat. Dengan peserta latihan tari pendet yang kebanyakan anak2 kecil, Luh Ayu bahkan tak sungkan2 belajar dan bertanya kepada mereka, tanpa rasa malu ataupun gengsi. Tua dan muda belajar bersama. Tentunya, staf-staf pelatih pun tak luput dari pertanyaan-pertanyaannya. Saat lowong atau jalan bareng pun, si Luh Ayu kadang tangannya terlihat bergerak2 mengulangi latihan tarinya. Dia juga cukup rajin dan mandiri mencari-cari sumber lain terutama dari youtube dan dvd tari. Luh Ayu benar2 menikmati belajar tarian itu, dan dia membuatnya terlihat menyenangkan.

Saat mengingat-ingat aktivitas belajar Luh Ayu selama tiga bulan kebelakang, satu kata terbersit di benakku, “passion”.
Dia mungkin contoh kecil dari yg disebut passion. Menurut artikel yang baru saja aku baca di Kompas*, bahwa passion adalah segala hal yang sangat, sangat, sangat diminati sehingga tidak pernah terpikir untuk tidak mengerjakannya. Disebutkan juga bahwa: “Your passion is NOT what you’re good at – it is what you enjoy the most!

Menurut Luh Ayu, dia tidak pernah memiliki pengalaman menari dan dia bukan juga orang Bali. Bisa dibilang dia memulainya dari awal, sama seperti anak2 kecil lainnya. Pengalaman aikido dan hobinya yang berolahraga memang cukup membantu dalam belajar menari, terutama dalam hal kelenturan dan stamina. Tetapi menari itu memiliki tiga unsur penting: wiraga, wirama dan wirasa. Membiasakan telinga untuk mendengar dan memahami lagu tari pendet, kemudian menyelaraskan dengan gerakan tubuh membutuhkan proses yang tidak singkat. Ditambah berlatih di bawah arahan langsung dari seniman sekaliber Bapak Kompiang Raka yang cukup tegas, dan kemudian mendapatkan persetujuan untuk ikut ujian juga merupakan tantangan tersendiri. Dengan latihan yang kontinue di dalam dan luar kelas, dalam waktu tiga bulan, dia bisa melalui semua itu dan siap ikut ujian. Ini semua karena Luh Ayu melakukannya dengan passion. Bekerja dengan passion = bekerja dengan hati. Dengan passion, aktivitas yang menantang dan tampak susah, jadi menyenangkan, bahkan di usia yang tidak belia lagi.

Penilaian ini mungkin terlalu dini mengingat Luh Ayu baru menjalaninya tiga bulan. Namun setiap langkah maju, sekecil apapun tetap penting dan cerminan proses belajar. Dia telah menunjukkan passion dan tidak ada kata terlambat untuk belajar. Aku rasa Luh Ayu memulainya dg baik, dan aku bangga padanya.
Selamat ujian sayang, semoga sukses 🙂

NB: Tulisan ini mungkin subyektif, mengingat posisi penulis adalah pacar Luh Ayu. Bisa dikatakan tulisan ini lebih merupakan curahan hati dari orang terdekatnya, dan juga fans-nya

Ref
* Artikel Kompas Sabtu 24 Juli 2010 hal 37 oleh Rene Suhardono, seorang Career Coach, penulis buku: Your Job is not your career

56% GeekMingle2Free Online Dating

“The strong manly ones in life are those who understand the meaning of the word patience. Patience means restraining one’s inclinations. There are seven emotions: joy, anger, anxiety, love, grief, fear, and hate, and if a man does not give way to these he can be called patient. I am not as strong as I might be, but I have long known and practiced patience. And if my descendants wish to be as I am, they must study patience.”

one of famous quote Tokugawa Ieyasu

Terpikir, sebenarnya kita sekolah dari SD, SMP, SMA bahkan sampai Perguruan Tinggi buat apa seh? Supaya pinter trus klo udah besar dapet kerjaan bagus dan cepet kaya?? Well, ga semudah itu, kalau tujuannya kaya mah ga usah sekolah tinggi tinggi kalee.
Ada yg bilang supaya jadi pinter, nah pinter disini maksudnya apa sih, apakah seseorang disebut pintar kalau track recordnya dalam nilai akademis bagus sejak kecil sampai kuliah?

Ada sebuah tulisan yang bagus di Kompas, yang memberikan perspektif berbeda mengenai pintar itu. Silakan baca disini. . Nah kalau sudah, dalam kondisi pintar yang bagaimana anda sekarang ? 😀

Quote :
“Ukuran kecerdasan manusia sebenarnya terletak pada kemampuannya untuk berubah.” Albert Einstein

“…Uang bukan segala-galanya, tetapi tanpa uang susah segala-galanya…”

Source : Kompas

Lagi belajar reksadana lagi nich, saya pertama kali mengetahui rekasadana itu waktu pertama kali kerja, yaitu di perusahaan … (duhh lupa namanya, mulai pikun nich, kena kabut otak), tapi yang jelas perusahaan itu adalah rekanan dari citibank. Waktu itu posisi saya adalah financial consultant, tugasnya nyari2 klien baru dan tawarin produk2 bank’nya citibank, jadi ujung2nya sales lah. Padahal saya S1 matematika lho, lulus jadi sales hehehe, walau ga sukses disana, tp lumayan juga buat pengalaman dan nambah wawasan, ya saya jadi mengenal reksadana ini.

Reksadana atau dalam bahasa inggris, mutual fund merupakan salah satu bentuk investasi. Perlu diperhatikan disini, setiap bentuk investasi pasti ada resikonya, termasuk reksadana ini. Return dari reksadana ini memang lebih tinggi dibanding produk bank lainnya yg relatif lebih aman seperti deposito, tabungan, tapi investasi dalam reksadana ini ada resiko rugi, return lebih rendah dari investasi awal.

Gambaran kasarnya proses reksadana itu begini, semisal saya menginvestasikan sejumlah uang di reksadana, oleh manajer investasi (pihak pengelola reksadana), duit saya dibelikan instrumen2 sesuai dengan portofolio reksadana yang saya beli, instrumen2 itu bisa berupa obligasi, deposito, saham de el el. Nah reksadana itu ada harga per unitnya, namanya NAB (Nilai Aktiva Bersih), pada waktu kita beli reksadana xyz misalnya, harga per unitnya Rp1000, kalau kita invest Rp 1 juta berarti kita dapet 1000 unit reksadana xyz. Harga NAB dari reksadana ini berubah-ubah tiap hari, bisa naik bisa turun.

Produk reksadana ini ga ada jangka waktunya, bisa ditarik kapan saja, ada biaya penebusan, istilahnya redemption fee, kalau pada waktu kita nebus reksadana, NAB nya lebih tinggi dari pada waktu kita beli, berarti untung, kalau lebih rendah, rugi.

Walaupun memiliki resiko, produk reksadana ini cukup digemari di Indonesia, kita sebagai investor perlu membekali diri dengan pengetahuan2 ttg reksadana dulu sebelum terjun berinvestasi, jangan tau dari kata2 salesnya ajah (pengalaman hehe), seperti kata Sun Tzu dalam bukunya Art of War, “If you know the enemy and know yourself, you need not fear the result of a hundred battles”. Sebelum terjun hal-hal yang perlu diperhatikan adalah portofolio reksadana yang akan dibeli (bisa dibaca di prospektus dari reksadana-nya) dari sini bisa mendapat gambaran kira2 resiko yg diterima, performa reksadana sebelumnya, dan profile manajer investasinya (perusahaan pengelola cukup kredible ga).

Kalau pengen tau lebih jauh tentang reksadana ini dan ada pertanyaan, kesini aja nih, forum kafegaul atau kaskus, infonya lumayan lengkap dan bahasanya mudah dimengerti. Kalau pengen penjelasan yang lebih expert, sini aja nich, about dot com .

August 2017
M T W T F S S
« Mar    
 123456
78910111213
14151617181920
21222324252627
28293031