Ahad, 29 Disember 2013

#84: Just A Thought About "Forever Alone People".

Waktu ambe kerja di Hospital Sultanah Aminah dulu ambe pernah jumpa kereta buruk ditempat parking. Bukan buruk sebab memang asal buruk, tapi buruk sebab parking disitu tak alih berbulan lamanya. Tayar dah kempis. Semak dah menjalar. Ambe assume orang yg tinggal kereta di parking hospital ni mesti dh meninggal. Mungkin dulu dia dtg sendiri naik kereta pegi masuk wad sorang2 dan meninggal tanpa orang tahu ttg keretanya masih disitu. Masih parking.

Buat ambe terfikir betapa forever alone-nya sesetengah orang di dalam dunia ini. :'(
This is Abg Man, my eldest brother in law. He's got a family though. 

Jumaat, 1 November 2013

#83: Sexy Beast

Focusrite Scarlett series 18i6
OMG! Ambe dok sangka yang sebelum ni ambe duduk aim nok beli Focusrite Scarlett 2i4, tapi hari ni, Focusrite Scarlett 18i6 pulak yang ambe dapat. Sebelum ni sewaktu ambe survey mengenai Scarlett 2i4, ambe ada terbaca di satu forum mencadangkan alang-alang nak ambil audio interface yang baik, baik sambar Scarlett 8i6 terus sebab harganya tak jauh beza dengan Scarlett 2i4.

JACK shows 18 input and 6 output
Long story short, ambe telah beli sexy beast ni dari seorang rakan FB dari Setapak. Second hand, datang dengan kotak dan 2 disc driver, installer Ableton Live dan koleksi sample audio loops. Ambe ingat 18i6 ni kecik macam 2i4 tapi meleset. Benda ni besar dan very well build! External power source pun kena ada (tak macam 2i4 yang fully powered dgn USB).

18i6 ada 18 input dan 6 output. Tapi yang ada pada unit ni hanya ada 10 input. 8 lagi boleh connect dengan Optical input dari belakang unit ni. So far, ambe guna menatang ni dengan Linux Mint tade masaalah.

Ambe dapat latency 2.67 millisecond dengan memilih sample rate 192000 dan 256 frames. Dengan latency 2.67 millisecond, ambe masih mendapat XRUN, tapi tak kerap (1 XRUN dengan selang 8-10 saat) jadi ambe rasa ia acceptable. Untuk lebih selamat, bolehlah gunakan setting yang lebih sederhana dan akan berakhir dengan latency yang masih acceptable seperti 13 millisecond dengan langsung tak ada XRUN.

Settings on qjackctl. Latency 2.67 millisecond.

#82: Cara Bodoh untuk Mati

This music video is so cute, I feel so bad not sharing it ;) Have a nice day!


Jumaat, 25 Oktober 2013

#81: period_converter script modification for MT4

period_converter script with feedback
Ambe telah detect bahawa terdapat masaalah dengan skrip asal period_converter dari terminal MT4. Ia skrip yang bagus dalam menjalankan kerja tapi tidak memberikan apa-apa feedback bila ia telah siap memproses data. Jadi, disini saya membuat sedikit modifikasi keatas skrip asal period_converter untuk memberikan feedback bila kerja-kerja pemprosesan data sudah siap. Feedback terus dicetak diatas chart sebelah atas kiri. Contoh teks ialah "Converting using 15 multiplier.." akan keluar dan sewaktu memproses data dan teks "Conversion done! 33989 records(s) written using 15 multiplier" akan keluar setelah kerja-kerja memproses data selesai. Ini adalah kod bagi skrip period_converter yang telah dimodifikasi:

//+------------------------------------------------------------------+
//|                                             Period_Converter.mq4 |
//|                 Copyright © 2005-2007, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
#property show_inputs
#include <WinUser32.mqh>

extern int ExtPeriodMultiplier=3; // new period multiplier factor
int        ExtHandle=-1;
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
   Comment("Converting using " + ExtPeriodMultiplier + " multiplier...");
   int    i, start_pos, i_time, time0, last_fpos, periodseconds;
   double d_open, d_low, d_high, d_close, d_volume, last_volume;
   int    hwnd=0,cnt=0;
//---- History header
   int    version=400;
   string c_copyright;
   string c_symbol=Symbol();
   int    i_period=Period()*ExtPeriodMultiplier;
   int    i_digits=Digits;
   int    i_unused[13];
//---- 
   ExtHandle=FileOpenHistory(c_symbol+i_period+".hst", FILE_BIN|FILE_WRITE);
   if(ExtHandle < 0) return(-1);
//---- write history file header
   c_copyright="(C)opyright 2003, MetaQuotes Software Corp.";
   FileWriteInteger(ExtHandle, version, LONG_VALUE);
   FileWriteString(ExtHandle, c_copyright, 64);
   FileWriteString(ExtHandle, c_symbol, 12);
   FileWriteInteger(ExtHandle, i_period, LONG_VALUE);
   FileWriteInteger(ExtHandle, i_digits, LONG_VALUE);
   FileWriteInteger(ExtHandle, 0, LONG_VALUE);       //timesign
   FileWriteInteger(ExtHandle, 0, LONG_VALUE);       //last_sync
   FileWriteArray(ExtHandle, i_unused, 0, 13);
//---- write history file
   periodseconds=i_period*60;
   start_pos=Bars-1;
   d_open=Open[start_pos];
   d_low=Low[start_pos];
   d_high=High[start_pos];
   d_volume=Volume[start_pos];
   //---- normalize open time
   i_time=Time[start_pos]/periodseconds;
   i_time*=periodseconds;
   for(i=start_pos-1;i>=0; i--)
     {
      time0=Time[i];
      //---- history may be updated
      if(i==0)
        {
         //---- modify index if history was updated
         if(RefreshRates())
            i=iBarShift(NULL,0,time0);
        }
      //----
      if(time0>=i_time+periodseconds || i==0)
        {
         if(i==0 && time0<i_time+periodseconds)
           {
            d_volume+=Volume[0];
            if (Low[0]<d_low)   d_low=Low[0];
            if (High[0]>d_high) d_high=High[0];
            d_close=Close[0];
           }
         last_fpos=FileTell(ExtHandle);
         last_volume=Volume[i];
         FileWriteInteger(ExtHandle, i_time, LONG_VALUE);
         FileWriteDouble(ExtHandle, d_open, DOUBLE_VALUE);
         FileWriteDouble(ExtHandle, d_low, DOUBLE_VALUE);
         FileWriteDouble(ExtHandle, d_high, DOUBLE_VALUE);
         FileWriteDouble(ExtHandle, d_close, DOUBLE_VALUE);
         FileWriteDouble(ExtHandle, d_volume, DOUBLE_VALUE);
         FileFlush(ExtHandle);
         cnt++;
         if(time0>=i_time+periodseconds)
           {
            i_time=time0/periodseconds;
            i_time*=periodseconds;
            d_open=Open[i];
            d_low=Low[i];
            d_high=High[i];
            d_close=Close[i];
            d_volume=last_volume;
           }
        }
       else
        {
         d_volume+=Volume[i];
         if (Low[i]<d_low)   d_low=Low[i];
         if (High[i]>d_high) d_high=High[i];
         d_close=Close[i];
        }
     }
   FileFlush(ExtHandle);
   Comment("Conversion done! "+cnt+" record(s) written using "+ ExtPeriodMultiplier +" multiplier");
   Print(cnt," record(s) written");
//---- collect incoming ticks
   int last_time=LocalTime()-5;
   while(IsStopped()==false)
     {
      int cur_time=LocalTime();
      //---- check for new rates
      if(RefreshRates())
        {
         time0=Time[0];
         FileSeek(ExtHandle,last_fpos,SEEK_SET);
         //---- is there current bar?
         if(time0<i_time+periodseconds)
           {
            d_volume+=Volume[0]-last_volume;
            last_volume=Volume[0];
            if (Low[0]<d_low) d_low=Low[0];
            if (High[0]>d_high) d_high=High[0];
            d_close=Close[0];
           }
         else
           {
            //---- no, there is new bar
            d_volume+=Volume[1]-last_volume;
            if (Low[1]<d_low) d_low=Low[1];
            if (High[1]>d_high) d_high=High[1];
            //---- write previous bar remains
            FileWriteInteger(ExtHandle, i_time, LONG_VALUE);
            FileWriteDouble(ExtHandle, d_open, DOUBLE_VALUE);
            FileWriteDouble(ExtHandle, d_low, DOUBLE_VALUE);
            FileWriteDouble(ExtHandle, d_high, DOUBLE_VALUE);
            FileWriteDouble(ExtHandle, d_close, DOUBLE_VALUE);
            FileWriteDouble(ExtHandle, d_volume, DOUBLE_VALUE);
            last_fpos=FileTell(ExtHandle);
            //----
            i_time=time0/periodseconds;
            i_time*=periodseconds;
            d_open=Open[0];
            d_low=Low[0];
            d_high=High[0];
            d_close=Close[0];
            d_volume=Volume[0];
            last_volume=d_volume;
           }
         //----
         FileWriteInteger(ExtHandle, i_time, LONG_VALUE);
         FileWriteDouble(ExtHandle, d_open, DOUBLE_VALUE);
         FileWriteDouble(ExtHandle, d_low, DOUBLE_VALUE);
         FileWriteDouble(ExtHandle, d_high, DOUBLE_VALUE);
         FileWriteDouble(ExtHandle, d_close, DOUBLE_VALUE);
         FileWriteDouble(ExtHandle, d_volume, DOUBLE_VALUE);
         FileFlush(ExtHandle);
         //----
         if(hwnd==0)
           {
            hwnd=WindowHandle(Symbol(),i_period);
            if(hwnd!=0) Print("Chart window detected");
           }
         //---- refresh window not frequently than 1 time in 2 seconds
         if(hwnd!=0 && cur_time-last_time>=2)
           {
            PostMessageA(hwnd,WM_COMMAND,33324,0);
            last_time=cur_time;
           }
        }
      Sleep(50);
     }     
//----
  
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void deinit()
  {
   if(ExtHandle>=0) { FileClose(ExtHandle); ExtHandle=-1; }
  }
//+------------------------------------------------------------------+

Khamis, 24 Oktober 2013

#80: Mencapai 90% Modelling Quality dalam Strategy Tester MT4

The worst: Modelling Quality not available
Modelling Quality dalam pengujian Expert Advisor menjadi satu kayu ukur untuk hasil keputusan report yang berkualiti. Sudah kerap kali ambe mencuba fungsi Strategy Tester didalam terminal MT4 tetapi jarang sangat boleh dapat report yang bermakna. Seperti gambar disebelah, Modelling Quality n/a (not available).

So sekarang ambe akan tunjukkan cara untuk memastikan Strategy Tester didalam MT4 akan mencapai sekurang-kurangnya 90% modelling quality. Modelling adalah dengan menggunakan data-data ticks dari masa lalu (History Center) bagi period M1, M5, M15, M30, H1, H4, D1, W1 dan MN.

Preparation yang pertama adalah download file history data M1 di mana-mana sumber yang anda mahu. Seperti ambe, ambe download dari FXDD. Broker-broker lain seperti Alpari juga ada menyediakan resource yang sama. Anda boleh download data M1 dari FXDD dengan klik link ini. Pilih currency pair yang anda ingin gunakan dan terus download. Ia adalah file HST yang dicompress kedalam file ZIP. Selepas download, anda boleh terus uncompress file ini dengan aplikasi 7zip. File HST selepas diuncompressed biasanya bersaiz 130MB dan menyimpan lebih 2 juta data ticks.

Selepas uncompressed, anda perlu prepare terminal MT4 pula. Buka kekunci Ctrl+O untuk membuka Options. Kemudian pilih tab Charts. Di ruang "Max bars in chart", letakkan nilai maksimum. Ambe letakkan ruang itu dengan 9999999999999. Klik OK. Kemudian buka History Center dengan klik pada menu Tools dan pilih History Center (atau tekan kekunci F2). Disini, anda perlu double klik pada currency pair yang anda telah download tadi dan double klik sekali lagi pada 1 Minute (M1) seperti dibawah.

MT4 History Center
Selepas itu, anda perlu tekan button Import dan mula import file HST yang telah anda uncompressed sekejap tadi. Tekan button Close. Sekarang anda telah ada data M1 yang berkualiti! Anda boleh lihat data ini dengan membuka chart baru bagi currency pair yang anda pilih tadi dan pilih chart M1 dan chart M1 anda telah sedia ada data yang banyak. Bagaimana pula dengan chart M5, M15, H1, H4 dan seterusnya?

Sebenarnya anda boleh menggunakan data M1 bagi mendapatkan data M5, M15, M30 dan seterusnya. Anda hanya perlu convert data M1 untuk mendapatkan data bagi period yang seterusnya. Dengan bantuan skrip yang datang bersama MT4, kerja-kerja untuk convert data M1 kepada M5, M15, M30 dan seterusnya menjadi amat mudah.

Navigator window in MT4
Pertama sekali, buka chart currency pair yang anda telah tambah dalam History Center tadi dan pilih M1. Di sebelah kiri window MT4 terdapat satu window kecil dengan nama "Navigator". Double klik pada "Scripts" dan anda akan dapat lihat satu skrip bernama "period_converter" disitu. Skrip inilah yang akan menukar data M1 anda kepada period yang anda mahukan.

Untuk menggunakan skrip ini hanya perlu double klik diatas "period_converter" dan satu window akan keluar. Pilih tab "Inputs". Disitu anda akan setkan berapakah period yang ingin anda tukarkan data M1 anda kepada. Setkan di variable ExtPeriodMultiplier dalam unit minit contohnya nilai 5 untuk tukar kepada 5 minit (M15), 15 untuk 15 minit (M15) 60 untuk 1 jam (H1), 1440 untuk 1 hari (D1) dan seterusnya. Dengan cara ini anda boleh mendapatkan kesemua data dari M5, M15, M30, H1, H4, D1, W1 hingga MN.

Setelah anda letakkan nilai yang sesuai untuk ExtPeriodMultiplier, anda hanya perlu tekan OK dan skrip ini akan mula memproses data. Berikanlah masa 30 saat hingga 1 minit untuk pemprosesan kerana skrip ini tidak memberikan feedback setelah kerja-kerja conversion selesai. Tidak perlu terlalu gopoh atau mungkin anda akan kehilangan ticks yang tak sempat diproses. Selepas 30 saat hingga 1 minit, bagi meneruskan dengan period baru, anda perlu run semula skrip yang sama. Di waktu ini, anda akan ditanya samaada untuk menghentikan skrip. Anda boleh hentikan skrip ini dan teruskan dengan pemprosesan seterusnya.

Setelah mempunyai data-data yang berkualiti, anda boleh teruskan dengan Strategy Tester. Pilih currency pair dan period yang telah anda proses tadi. Setelah itu, mengikuti langkah-langkah ini, anda akan dapati Modelling Quality bagi Strategy Tester anda akan mencapai lebih dari 90% hingga 100%. Selamat berstrategy testing!

Jumaat, 18 Oktober 2013

#79: Another Recently Developed Film I Exposed 2-3 Years Ago

My younger brother and cousins
My cousin, Rizal. He work as IT Technician in Bachok, Kelantan
My younger brother, Udin.
Tree trunk
My nephews and in-laws
My old Holga camera
My younger brother Udin holding Squire Telecaster California Series electric guitar

Khamis, 3 Oktober 2013

#77: Knowledge of the deep understanding of things

Ambe suka filem sains fiksyen. Saintis yang gila-gila mencipta banyak alat-alat yang pelik. Banyak filem di luar sana seperti filem Flubber dan Back To The Future mengetengahkan saintis. Tapi kebanyakannya tidak scientifically accurate. Jelly boleh menari, kereta merentas masa pada 88 batu/jam, adalah filem berkaitan saintis yang secara entertainment yang sangat menarik tapi secara saintifik tidak tepat. Tapi baru-baru ini ambe ada mengikuti satu drama bersiri berkenaan seorang Chemist (ahli kimia/saintis kimia) iaitu drama bersiri Breaking Bad.

Walter White and Jesse Pinkman
Ambe kurang meminati menonton filem bersiri kerana mempunyai banyak episod dan ambe perlukan satu reason yang kuat untuk mula menonton filem bersiri baru. Ambe find out mengenai filem bersiri ini melalui laman IMDB (Internet Movie DataBase) setelah mendapati filem bersiri Breaking Bad ini mendapat rating yang sangat memuaskan di laman itu (tak silap ambe ketika itu ratingnya 9.8/10). Ambe lambat jumpa filem bersiri ini kerana sewaktu pertama kali melihatnya, ia sudah pada season 5 iaitu season terakhir Breaking Bad.

Walter White aka "Heisenberg"
Filem bersiri ini mengisahkan tentang seorang chemist yang overqualified berkerja sebagai cikgu kimia di sebuah sekolah menengah tahu bahawa dia mengidap kanser tahap 3. Beliau overqualified kerana beliau sebenarnya seorang saintis kimia yang hebat, pernah bekerja dengan rakan-rakan syarikat yang beliau sendiri letakkan nama Grey Matter sehingga mendapat hadiah Nobel dalam Chemistry. Tetapi atas masaalah peribadi, beliau menarik diri dari Grey Matter dengan mendapat tebusan 5000 dollar. Grey Matter kemudian menjadi satu syarikat yang berjaya hingga bernilai berbillion dollar sedangkan Walter hanya bekerja sebagai cikgu di sekolah menengah.

Walter baru mengetahui beliau mempunyai penyakit kanser dan dengan gaji sebagai cikgu yang tak seberapa beliau mula membanyangkan krisis kewangan untuk rawatan dan jika beliau tidak dapat melawan penyakit kanser ini, apakah aset yang beliau akan tinggalkan untuk membantu keluarganya menampung kehidupan tanpa adanya disisi. Disitulah bermulanya kisah mengenai Walter White ingin mencari jalan untuk mendapatkan wang secukupnya dalam tempoh yang singkat sebelum beliau mati akibat kanser. Cara beliau untuk mendapatkan wang dengan cepat ialah dengan membuat dadah Methamphetamine yang paling pure dan berkualiti dipasaran gelap! 

Character development untuk Walter White sangat bagus. Permulaan filem bersiri ini beliau adalah seorang lelaki yang nampak pemalu, pendiam, ayah yang baik, penyayang dan lain-lain. Setelah berkecimpung dalam pembuatan dadah, beliau mula berubah menjadi seorang yang tegas, hati kering, pemarah, tamak dan dalam masa yang sama tetap menjadi seorang ayah dan suami yang penyayang.

Gustavo, Walter & Jesse
Pada awal siri filem ini, ambe ada mengajak isteri ambe ikut tonton sekali filem ini. Tapi lama-kelamaan ambe rasa filem ni terlalu berat untuk ditonton. Terlalu ganas walaupun untuk ambe sendiri tonton. Ia filem yang brilliant, contohnya membuat bom kristal, bateri dengan teknik electrolysis etc seperti filem ala MacGyver, tapi disamping itu juga sangat ganas seperti menghapuskan bukti mayat dengan menghancurkan mayat dengan asid, hapus mayat dewasa, hapus mayat kanak-kanak, bagi racun pada kanak-kanak, kanak-kanak jual dadah etc.

Ia filem bersiri tentang transformasi dari seorang yang lemah kepada seorang penakluk empayar dadah yang bertembung dengan empayar dadah lain dan dalam masa yang sama menyembunyikan semua ini dari pengetahuan ahli keluarga beliau. Ia juga filem tentang moral-bankruptcy atau filem pengajaran moral kerana di akhir filem ini anda akan dapati wang tidak ada nilai lagi tetapi apa yang lebih penting adalah semua selain wang. Pendapat ambe sahaja..

Jesse dan Walter menunggu blue meth mengeras.
Bidang Chemistry bagi ambe adalah knowledge of the deep understanding of things. Ambe agak sedih kerana siri Breaking Bad ini hanya setakat 5 season. Breaking Bad setakat ini adalah antara filem bersiri yang paling ambe sukai. Highly recommended but you must have a strong gut to watch this awesome TV series!

Rabu, 2 Oktober 2013

#76: Use Tor as proxy in MetaTrader

Ambe baru dapat find out yang sebenarnya MT4 client boleh guna bersama TOR (TOR Onion Router) untuk mendapatkan connection dalam network anonymity. Tak kiralah apapun sebab kenapa anda mahu menggunakan MT4 bersama TOR, tapi ia boleh dilakukan dengan menyambung MT4 kepada proxy server TOR seperti untuk menggunakan Google Chrome dengan TOR. Anda perlu mendapatkan berapakah IP dan nombor Port dalam setting TOR anda (yang boleh didapati dari setting TorBrowser) dan menggunakan IP serta nombor Port yang sama didalam client MT4 anda. Untuk melihat berapakah IP dan Port anda di Tor Browser, anda boleh rujuk di menu TorBrowser > Options > Advance > Network > Connection dan klik button Settings.

This is where you know your TOR SOCKS Host and Port number
Catit IP SOCK Host dan nombor Port untuk rujukan dan pasang aplikasi MT4 yang anda ingin gunakan bersama TOR. Sekarang, pergi ke menu Tools > Options (atau Ctrl+O) di tab "Server" klik "Enable proxy" untuk membolehkan MT4 menggunakan ciri-ciri proxy. Kemudian klik button "Proxy" selepas itu masukkan IP SOCK Host yang anda catat tadi diikuti dengan tanda titik bertindih dan nombor Port (eg 127.0.0.1:9050). Pilih juga setting SOCKS5. Untuk menguji connection proxy telah berjaya, anda boleh klik button "Test". Jika ujian memberi keputusan ok, taniah kerana anda telah berjaya bersambung dengan TOR melalui MT4! Happy Trading!

Test passes ok! Happy trading!

#75: Inkscape, an OpenSource Alternative to Adobe Illustrator

Inkscape 0.48. Behind the scene of my poster design.

Isnin, 23 September 2013

#74: Selamat hari lahir Omar Shahnaz!

Setahun doh umur anok ambe.

Setahun lepas ambe ikut Cawin Imah masuk dalam wad bersalin HKL. Bini ambe puasa dari malam sebab takut tiba-tiba kena masuk operation. Contraction bermula sejak petang sebelum tu lagi. Dah dekat 12 jam contraction, tambah dengan lali gas nitrous oxide, pain killer, cakap merapu, perut kosong takde tenaga, ambe curi-curi bagi chocolate bar pada bini ambe sebab letih sangat nok meneran. Tangan ambe lebam kena ramas ko bini ambe sebab dok tahan sakit contraction. Tepat pukul 9:05 pagi, Omar Shahnaz lahir. Memang betul orang cakap, sakit waktu nok teran jah, bila dah keluar, dok rasa sakit doh. Rasa lega. Ambe pun azan dan qamat di telinga Omar.

Ambe tengok muka dia yang tadi biru, sekarang dah merah. Terdetik dalam hati ambe, "Hensem jugak ye anok aku walaupun aku dok hensem"

Wakakakaka!

Selamat hari lahir Omar Shahnaz!

Omar Shahnaz beberapa jam lepas lahir.

Ahad, 22 September 2013

#73: Some Recently Developed Film I Exposed 2-3 Years Prior

Rolleicord TLR
Ini adalah beberapa foto yang saya captured 2-3 tahun lepas dengan menggunakan kamera Twin Lens Reflex Rollei Rolleicord III type 2 dan menggunakan filem Ilford FP4 Plus ASA 125. Filem ini tidak didevelop sehingga beberapa hari lepas oleh kawan saya dari Johor Bahru, Dr Pishal Pauzi.

Sewaktu saya bertukar tempat kerja dari Johor Bahru ke Kuala Lumpur, rupanya saya ada tertinggal beberapa roll filem pada kawan saya. Saya baru menyedarinya setelah dihubungi kawan saya dan beliau sudi untuk memproses filem saya ini.

Kamera yang saya gunakan iaitu Rollei Rolleicord III type 2 sudah pun tidak saya miliki. Saya telah menjualnya kepada seorang rakan beberapa tahun lepas. Ia satu kamera yang bagus dan ringan berbanding kamera medium format lain yang saya miliki.

Dilengkapi lensa Schneider Kreuznach Xenar 75mm f3.5, ia bukanlah lens paling "laju" yang pernah saya gunakan untuk medium format, tapi ia definitely lens yang paling sharp pernah saya gunakan untuk kamera medium format. Lebih sharp berbanding Zeiss Biometar pada kamera Pentacon Six TL dan TLR Mamiyaflex yang saya gunakan.

Sepatutnya kamera ini menghasilkan gambar yang sangat sharp. Tetapi akibat dimamah usia, hasil scan filem-filem yang baru diproses ini tidaklah memuaskan dari segi sharpness. Kesan calar dan berbintik-bintik juga saya fikir berlaku akibat lambat diproses. Filem ini sudah expired dan delay bertahun-tahun pula untuk diproses.






Isnin, 9 September 2013

#72: Teori Kebarangkalian Martingale

Teori Kebarangkalian Martingale: Ambe bukanlah pakar matematik. Ambe ada belajar matematik tambahan di tingkatan 4 dan 5 sekolah menengah, tapi keputusan SPM ambe untuk subjek add math ni taklah memuaskan. So, macam mana ambe nok explain tajuk ni? Oleh sebab itu, ambe tidak menggalakkan pengunjung blog ini untuk tidak menggunakan tulisan saya disini sebagai rujukan intelek. Blog ini adalah Memory Database yang personal berdasarkan pemahaman dan pandangan saya terhadap sesuatu perkara. Saya tak pernah mendengar perkataan Martingale sebelum ini sehingga beberapa minggu lepas dari seorang rakan. Ia adalah satu teori kebarangkalian yang banyak digunakan untuk urusan seharian. Terdapat satu artikel di wikipedia yang menerangkan tentang Martingale Probability Theory.

Mengikut artikel wikipedia untuk Martingale Probability Theory, "A martingale is a model of a fair game where knowledge of past events never helps predict the mean of the future winnings. In particular, a martingale is a sequence of random variables (i.e., a stochastic process) for which, at a particular time in the realized sequence, the expectation of the next value in the sequence is equal to the present observed value even given knowledge of all prior observed values at a current time". Duit syiling mempunyai 2 permukaan. Bila anda melambung duit syiling ini, untuk mendapat satu bahagian head atau tail pada 2 permukaan syiling adalah 1/2 atau 50%. Tapi bagaimana kalau anda mahu mendapatkan satu bahagian syiling yang sama dengan melambung syiling 2 kali?

Ok, lambungan syiling pertama untuk mendapatkan head adalah 50%. Untuk balingan kedua, bagi mendapatkan head juga, kebarangkalian sekarang adalah 25%. Balingan ketiga? 12.5% untuk mendapatkan head bagi 3 lambungan berturut-turut. Untuk mendapatkan head secara berturut-turut untuk lambungan syiling ke 4 adalah 6.25%.
Contoh carta tukaran matawang asing
Menggunakan teori yang sama terhadap carta tukaran wang asing seperti diatas, teori Martingale sangat sesuai untuk membuat keputusan pembelian atau penjualan matawang asing. Malah teori ini banyak digunakan dalam mengaturcara Expert Advisor untuk client MetaTrader. Pemahaman saya terhadap teori kebarangkalian Martingale bertambah setelah saya melihat dan menganalisis cara Expert Advisor yang menggunakan Martingale untuk melakukan urusniaga. Contohnya carta EUR/USD diatas. Carta ini ada naik dan turun. Hijau untuk naik dan merah untuk turun. Berapakah kebarangkalian untuk mendapatkan 4 hijau berturut-turut? Berapakah kebarangkalian untuk mendapat 5 merah berturut turut? Semua ini diambil kira untuk pengiraan Expert Advisor Martingale yang baik.

#71: Photoshop: Adding more sky

Gambar asal yang lebar dan tak tinggi.
Sebelah ini adalah satu foto yang ambe edit pada disember tahun lepas. Ambe telah crop gambar ni yang sepatutnya mengikut saiz standard menjadi gambar yang pendek tetapi lebar bagi memberikan perspektif panorama. Gambar ni ambe dok save pada kualiti tinggi kerana ambe edit ni bukan untuk sesuatu yang serius, tapi hanya untuk gilap semula teknik PS ambe yang dah berkarat. Langit ambe birukan dan ambe beri filter motion blur untuk memberikan efek pergerakan awan yang biasanya didapati dari long exposure photography. Ambe rasa gambar ni ok, tapi ada satu masaalah. Disebabkan gambar ni lebar tetapi pendek, bila ambe guna gambar ni untuk dimasukkan dalam slide Power Point, ia nampak sangat kecil. Bila ambe resize height jadi lebih tinggi, kelebaran gambar ni dah melebihi slide Power Point. Jadi, ambe takde pilihan lain, ambe kena adjust gambar ni menjadi lebih tinggi untuk menjadikan lebar dan tinggi gambar ni lebih seimbang.

Ideanya adalah untuk menambah bahagian langit menjadi lebih besar. Details bangunan sangat susah untuk dibuat. Jadi saya mengambil jalan mudah dengan membina langit lebih luas. Dengan menggunakan Photoshop CS2 Pertama sekali ambe resize canvas menjadi lebih besar di bahagian langit dan ruang kosong canvas ambe kenakan filter Clouds yang boleh diakses dari Filter > Render > Clouds. Ambe gunakan sample warna awan yang sedia ada iaitu biru gelap dan biru cerah untuk render awan ini. Lepas tu ambe kenakan pula Gaussian Blur yang kuat di awan yang baru render ini diikuti dengan Motion Blur. Angle Motion Blur adalah berpandukan angle Motion Blur sebelum ini. Gabungan tool Dodge dan Burn, ambe cuba berikan efek awan yang berlopong-lopong memberikan kesan awan yang lebih realistik. Smudge tool juga digunakan untuk memberikan distortion pada aliran pergerakan awan dan ini hasilnya:
Hasilnya, gambar dengan lebar dan tinggi yang lebih seimbang.

Rabu, 10 Julai 2013

#70: Using Nikkor and other lens on Canon EF/EF-S camera!

Canon EF-S 18-55mm f/3.5-5.6 IS
Lens kamera DSLR moden sangat mahal? Saya juga sebagai penggemar fotografi menghadapi masaalah bajet seperti kebanyakan penggemar fotografi lain. Pada waktu awal saya mula berjinak-jinak dengan fotografi beberapa tahun lepas, saya hanya menggunakan kamera SLR filem kerana tidak mampu untuk memiliki kamera DSLR kerana harganya yang mahal. Bila kewangan saya lebih stabil, saya mula mendapatkan sebuah used DSLR model Canon 40D yang datang bersama kitlens (Canon EF-S 18-55mm f/3.5-5.6 IS). Ia adalah kitlens yang ok dan mempunyai focal range yang bagus untuk wide dan potrait. Ia ada fungsi IS iaitu Image Stabilizer. Ia juga agak sharp jika menggunakan aperture yang lebih kecil. Tetapi, fotografi menggunakan kitlens menghasilkan foto yang lame dan tidak ada apa-apa yang menarik. Hasilnya lebih kurang sahaja seperti foto yang shoot menggunakan kamera compact. Sebelum memiliki kamera DSLR, saya menggunakan SLR filem model Nikon F3. Saya ada memiliki beberapa lens yang digunakan bersama kamera Nikon F3 ini antaranya Nikkor 85mm f/1.8 dan Nippon Kogaku Nikkor-S 50mm f/1.4. Saya suka hasil dari lens lama Nippon Kogaku kerana walaupun ia lens yang dah berumur puluhan tahun, tapi optiknya bagus dan mempunyai aperture f/1.4. Dengan aperture f/1.4 saya boleh mendapatkan foto dengan DOF (depth of field) yang shallow menjadikan hasilnya lebih "dramatik" dan boleh seperate main subject dengan latar belakang.

Shallow depth of field. Shot using Nikkor 85mm f/1.8 shot using Nikon F90X
Alangkah bagusnya kalau Nikon, Canon dan pengeluar kamera lain berkongsi satu mount yang sama. Ini kerana, dengan adanya mount yang berbeza menyebabkan pengguna kamera lain tidak boleh menggunakan lens dari pengeluar kamera jenama lain. Nikon tak boleh guna lens Canon. Canon tak boleh guna lens dari Olympus. Leica tak boleh guna lens Nikon. Olympus tak boleh mount semua lens dari Nikon, Canon dan Leica. Semuanya mempunyai mount sendiri. Ia seperti satu kunci untuk pintu. Jika lekok-lekok dan diameter pada belakang lens tidak menyamai lekok-lekok dan diameter pada kamera, maka lens itu tak dapat dipasang pada kamera tersebut. Bukan hanya mengenai lekok-lekok dan diameter pada mount kamera dan lens, sesetengah kamera juga meletakkan chip, enjin servo dan level didalam kamera atau didalam lens untuk fungsi autofocus, pengawalan aperture dan data-data mengenai lens (informasi untuk data EXIF). Fungsi-fungsi ini memerlukan physical contact antara kamera dan lens secara eletronik atau mekanikal.

Shot using an old Nippon Kogaku 50mm f/1.4 lens mounted on my Canon 40D. Aquaria Kuala Lumpur.
Shot using an old Nippon Kogaku 50mm f/1.4 lens mounted on my Canon 40D. National Zoo.
Shot using an old Nippon Kogaku 50mm f/1.4 lens mounted on my Canon 40D. Danga Bay, Johor Bahru.
Saya bernasib baik kerana saya tak bersendirian kerana masaalah ini sebenarnya dikongsi ramai orang di seluruh dunia. Oleh sebab ini ramai orang mencari jalan untuk menyelesaikan masaalah ini. Ada cara yang susah dan senang. Ada orang menggantikan besi pada mount lens dengan mount yang boleh dipadankan dengan kamera. Ada juga yang menggunakan adapter yang dipasang pada lens yang menukar mount asal kepada mount yang dikehendaki. Saya pilih untuk menggunakan adapter kerana ia mudah dan murah serta tidak melibatkan modification pada lens.

Nikon lens to Canon lens adapter.
Sebuah kamera Canon dengan lens Zuiko OM Mount.
Sebelah ini adalah rupa adapter untuk membolehkan lens Nikon dipasang pada kamera Canon EF dan EF-S. Ia dipasang pada belakang lens Nikon dimana adapter ini mempunyai mount sama seperti pada kamera SLR Nikon (Nikon-F Mount) dan sebelah lagi sama seperti mount lens Canon EF. Adapter disebelah ini adalah lebih istimewa kerana ia mempunyai "chip" yang menyimpan data-data mengenai lens. Dengan adanya chip ini, ia membenarkan kamera Canon untuk membuat pengiraan exposure supaya fungsi-fungsi Aperture Priority dan mode-mode lain boleh digunakan. Tanpa chip ini, anda mungkin hanya boleh menggunakan Manual exposure. Untung bagi pengguna kamera Canon EF dan EF-S kerana terdapat banyak adapter seperti ini untuk kamera Canon EF dan EF-S tetapi hanya terdapat sebilangan kecil sahaja adapter seperti ini untuk kamera Nikon kerana Nikon-F Mount mempunyai flange focal distance yang lebih panjang. Untuk pengguna kamera mirrorless anda lebih bernasib baik kerana kamera anda mempunyai flange focal distance yang lebih pendek berbanding DSLR bermakna kamera anda akan mempunyai lebih banyak adapter untuk berbagai lens yang direka untuk kamera dengan flange focal distance yang lebih panjang. Untuk lebih lanjut mengenai flange focal distance, bolehlah baca mengenai flange focal distance di wikipedia. Dengan adanya adapter seperti ini, makan lens-lens lama antaranya dari Nikon, Zuiko, Pentax dan lain-lain boleh digunakan semula. Terdapat banyak lens-lens hebat dikeluarkan oleh pengeluar-pengeluar kamera utama ini, sayangnya akibat ditelan zaman, ia dilupakan. Amat sayang jika lens profesional yang bagus-bagus seperti lens yang beraperture besar seperti lens 50mm f/1.4, 50mm f/1.2, 85mm f/1.8 dan lain-lain dibiarkan sebagai perhiasan sahaja kerana tak dapat digunakan dengan kamera moden. Dapatkanlah adapter seperti ini untuk kamera anda dan tunjukkanlah appreciation anda kepada lens-lens yang bagus yang semakin ditelan zaman.

Terdapat banyak adapter dijual di online store dengan harga yang berpatutan.

Isnin, 8 Julai 2013

#69: Freelensing to Infinity and Beyond (Melensa Percuma)

Freelensing. A visual guide
Lama saya dok menyentuh tentang fotografi. Sebelum ini saya sangat aktif dalam bidang fotografi, malangnya akhir-akhir ini saya kekurangan masa semenjak kelahiran anak sulung saya. Skill ambe pun dah makin berkarat, jadi sebelum ambe kehilangan semua yang ambe tahu tentang fotografi, ambe dokumenkan disini supaya benda ni manalah tahu boleh menjadi bahan yang berguna kepada sesetengah orang. Okeh, hari ini ambe nok sebut tentang "freelensing" atau ambe panggil "melensa percuma".

Freelensing. Pertama kali ambe mendengar tentang ini adalah melalui seorang kawan baik ambe yang dikenali sebagai Apin atau lebih popular dengan nama Norah Zain. Pada waktu itu ambe sangat obses dengan foto-foto yang mempunyai bokeh dan LOMO. Pada waktu itu ambe menggunakan gear Canon 40D bersama lens Nikkor dan Zuiko (ambe menggunakan adapter untuk mount lens Nikkor dan Zuiko kepada Canon 40D). Diceritakan kepada ambe, ada satu teknik fotografi dimana lens dicabut dari body kamera dan lens dipegang dengan tangan didepan kamera sambil lens itu dipusing-pusing atau dicondongkan kearah-arah tertentu. Teknik ni agak susah untuk dicontrol kerana hanya menggunakan tangan (sangat tidak stabil) dan teknik ini akan menjadikan depth of field sangat sempit (hampir seperti macro photography). Teruja dengan penerangan dari rakan saya ini, saya terus mencari maklumat tentang teknik ini dan mencubanya pada kamera Canon 40D saya.

Memang amat susah untuk mengawal lens dengan hanya memegang dengan tangan yang lepas diudara. Lebih merumitkan lagi, depth of field yang sangat sempit menjadikan teknik freelensing hampir mustahil boleh menghasilkan foto yang baik. Ambe kecewa. Sepatutnya foto yang dihasilkan adalah bagus, penuh bokeh, ala tilt-shift, tetapi apa yang ambe dapat hanyalah foto gelap tak ada fokus dan hanya foto blur semata-mata.

Melensa Percuma, freelensing to infinity and beyond!
Pada suatu petang, sewaktu ambe sedang melepak di ruang tamu rumah ambe, ambe ada "mengelamun" tentang dalaman kamera. Tentang pergerakan cahaya, dari luar, memasuki lens dan jatuh ke atas filem/sensor kamera. Tentang pergerakan lens bila diputar dimana lens akan bergerak kedepan dan kebelakang. Tentang  extension tube untuk macro photography sehingga ambe membuat satu kesimpulan, bila lens berada jauh daripada sesor/filem, ia depth of field akan makin sempit dan focusing lens adalah makin dekat. Bila lens berada dekat dengan filem/sensor, depth of field menjadi lebih besar dan focusing lens ke infinity boleh dicapai. Ambe dapati semua ini berkaitan (lens bergerak depan belakang bila focus, extension tube etc) Wikipedia menjadi rujukan ambe dan ada satu artikel mengenai "flange distance" iaitu jarak antara lens dan permukaan sensor/filem membenarkan perkara ini. Ambe akhirnya dapat relate teknik freelensing yang memerlukan lens dicabut dari kamera memberi foto yang sangat blur. Ia secara teknikalnya adalah seperti menggunakan extension tube. Ambe akhirnya dapat focus pada objek yang sangat dekat dengan teknik freelensing. Untuk lebih memudahkan teknik ini, lens mestilah diletakkan pada focus "infinity". Be extra careful, kerana bila anda pulas lens kepada infinity, glass belakang lens mungkin akan exposed dan berisiko untuk tercalar.

My Reverse-Freelensing Prototype.
Gambaran tentang freelensing bolehlah dibayangkan seperti foto disebelah, iaitu "reverse freelensing prototype". Bagaimana cahaya dengan garisah hijau memasuki lens dan terpancar pada permukaan filem yang tidak rata (dalam kes ini, sebelah tinggi dan sebelah rendah) yang menghasilkan foto potrait sebelah blur dan sebelah lagi sharp. Dalam kes freelensing, permukaan filem/sensor adalah rata, tetapi lens dicondongkan yang akan menghasilkan efek yang sama.

Masih terdapat satu masaalah mengenai freelensing ini, dimana, bila lens sudah tidak di mount pada kamera, untuk fokus pada infinity adalah sesuatu yang mustahil. Infinity boleh dicapai dengan membawa lens dekat pada lens dan mencabut lens dari mount akan menambah jarak lens dengan permukaan filem/sensor. Ini menjadikan freelensing seakan hanya sesuai untuk sekadar macro photography.

Walaubagaimanapun, secara tidak sengaja, ambe telah terjumpa satu cara untuk membolehkan freelensing untuk focus jarak dekat untuk macro photography dan juga membolehkan freelensing untuk focus kepada infinity dan secara teorinya menlangkaui infinity (theoretically infinity and beyond!).

Ambe secara tak sengaja telah berjaya focus ke infinity sewaktu mencuba lens-lens lama (lens Nippon Kogaku dan Zuiko) pada body kamera Canon 40D. Saya selalu menggunakan lens-lens lama pada kamera saya ini kerana lens-lens lama yang berkualiti masih dapat menghasilkan imej yang cantik. Untuk mount lens-lens lama ini, saya memerlukan satu adapter untuk convert mount lens Nikkor atau Zuiko pada badan kamera canon dengan mount EF-S. Adapter ini adalah berbentuk bulatan dengan ketebalan 3-4mm untuk membolehkan lens Nikkor/Zuiko focus kepada infinity pada body kamera EF-S. Ketebalan adapter ini adalah bergantung kepada perbezaan flange focal distance pada kamera Nikon dan Olympus kepada body kamera Canon EF-S.

Flange focal distance
Terdapat satu artikel di wikipedia mengenai Flange focal distance yang menerangkan tentang jarak lens dengan permukaan sensor/filem. Setiap jenis/jenama kamera mempunyai flange focal distance sendiri yang menjadikan setiap jenama kamera unik. Kamera DSLR/SLR mempunyai flange focal length yang lebih panjang berbanding dengan kamera jenis mirrorless kerana kamera mirrorless tidak ada cermin pemantul untuk viewfinder. Kamera SLR medium format pula mempunyai flange focal distance yang sangat panjang kerana cermin pemantulnya sangat besar.

Secara teknikalnya, jika sesebuah kamera mempunyai flange focal distance yang pendek, kamera tersebut boleh menggunakan lens untuk kamera yang mempunyai flange focal distance yang panjang. Contohnya jika sebuah kamera jenis Sony E-Mount dengan flange focal distance 18mm, ia boleh dipasang dengan lens kamera Nikon kerana kamera DSLR Nikon-F Mount mempunyai 46.5mm dengan syarat adapter perlu dipasang pada kamera Sony E-Mount untuk memegang lens Nikon-F Mount pada jarak 28.5mm dari mount kamera Sony E-Mount (46.5mm-18mm=28.5mm). Bila adapter ini dipasang, lens Nikon-F Mount ini akan boleh focus pada infinity kerana lens Nikon-F Mount yang direka untuk flange focal distance 46.5mm dapat mencapai jarak 46.5mm dengan perantara adapter berketebalan 28.5mm.

Memandangkan freelensing akan menyebabkan jarak lens dengan sensor/filem akan terlebih, oleh sebab itu lens tersebut tidak akan boleh fokus ke infinity. Penyelesaian yang ambe temui, untuk membolehkan freelensing dilakukan ke infinity, anda mestilah menggunakan lens yang direka untuk kamera yang mempunyai flange focal distance yang panjang! Contohnya, menggunakan lens Nikon-F pada kamera Canon EF-S. Inilah yang saya temui secara tak sengaja, bila saya cuba melakukan freelensing dengan menggunakan lens Nikkor Nikon-F Mount dan lens Zuiko OM Mount secara terus tanpa menggunakan adapter, ambe akhirnya mampu focus kepada infinity dengan teknik freelensing! Bukan sahaja focus kepada infinity, tapi sebenarnya ambe berjaya focus kepada infinity and BEYOND (kerana secara teorinya ambe telah focus melebihi infinity kerana ambe boleh gerakkan lens lebih dekat kepada sensor/filem melebihi had yang ditetapkan). Untuk rujukan anda, jadual di bawah ini adalah flange focal distance dari beberapa jenis mount kamera:
Flange focal distance
Secara kesimpulannya, jika anda mahu focus ke infinity (and beyond) dengan teknik freelensing, gunakanlah lens yang berbeza jenama dengan kamera anda. Lens Nikkor dan body kamera Canon EF-S menjadi pasangan yang baik untuk ambe buat freelensing. Dengan beza flange focal distance 28.5mm memberi ruang yang selesa untuk ambe control focusing dan memegang lens. Dengan teknik yang saya namakan "Melensa Percuma" ini saya mampu mengawal freelensing dengan baik dan focus ke infinity... And beyond!

Hasil "Melensa Percuma", a modified freelensing technique. Focus ke infinity, bahagian lain masih dengan bokeh!