Tuesday, December 20, 2011

Web Browser Behavior Exploitation

Background
The use of web behavior data is important to get feedback from customers. The feedback from customers can be divided into two groups, explicit and implicit feedback. Below are some items of that feedback.
Explicit feedback
  • specified keyword
  • selected & market document
  • rated items
Implicit feedback
  • natural interaction of the system
  • no extra cost
  • less accurate
  • can be combined with explicit feedback
  • Potential observable behavior
  • “modeling information content using observable behavior” (ASIST, 2003).
That feedback is analyzed from year to year. Based on web browsing behavior data, in implicit feedback, web browsing behavior was focused on widely (www). Since 1995, researchers perform research on web browsing behavior (www started in 1991).

Thursday, December 08, 2011

Solve Unknown Monitor (or Monitor not Detected) in Ubuntu 11.10

If you have the same problem as the title of this post, Ubuntu unknown monitor or Monitor not detected in Ubuntu 11.10, hope this tweaks help you. Previously, I upgraded my 11.04 Ubuntu to 11.10. No problems appear except can be solved as I post in GNU/Linux label in this blog. Yesterday, I got the problem after running some tweaks and computer janitor (maybe that caused the  problem). My screen or display resolution is changed to lower resolution, i.e 1024x768.

Then, I try to change manually trough display configuration. What I get is my monitor not detected by Ubuntu. It said unknown monitor. I run xrandr in terminal, and got the following output
$ xrandr
xrandr: Failed to get size of gamma for output default
...
After a day find solution, below is work for me. Find the similar code in your /etc/boot/grub.cfg. For example, type in terminal: sudo gedit /etc/boot/grub.cfg
linux    /boot/vmlinuz-2.6.32-26-generic root=UUID=c3732ca6-61fa-48c6-b115-6ed668cdeedd ro ...
Add the "i915.modeset=1 gfxpayload=1366x768". So, it becomes
linux    /boot/vmlinuz-2.6.32-26-generic root=UUID=c3732ca6-61fa-48c6-b115-6ed668cdeedd ro i915.modeset=1 gfxpayload=1366x768 quiet splash
And reboot. It works for me, and I hope also for you. Don't forget to change screen resolution according to your display size. The  figure below show the difference when I got the problem and after solving it.
My laptop display when got unknown monitor problem.
The screen resolution is low i.e 1024x768
My screen after solving the problem with 915 driver. I  looks clear
Note that the problem above is caused by VGA driver which disappear unfortunately. So, I add 915 driver on boot based on reference from internet source.

Wednesday, December 07, 2011

The Acoustics Branch: Time-Space Representation

The Acoustics and Its branch in space-time representation [1]

Acoustics science has many branch, one of interest point is analyze sound wave from space-time point of view. A research group in EPFL, Switzerlan, has studied Nonparametric representations of acoustic wave fields obtained by observing the sound pressure along a straight line using a microphone array contain implicit information of the surrounding acoustic scene, both in terms of spatial arrangement of the sources and their respective temporal evolution.

For more information, please visit the reference source below.

Reference:
[1] http://lcav.epfl.ch/research/space_time_frequency

Wednesday, November 30, 2011

On Performance of Two-Sensor Sound Separation Methods Including Binaural Processors

Human beings have binaural inputs to separate and localize sound sources. Those two functions of binaural hearing can not be easily transformed to the computational methods. In this paper, three conventional methods to separate target signal from interfering noise are compared. Those methods include a binaural model, an independent component analysis (ICA) and a time-frequency masking applied to ICA. Performances were compared by means of spectrograms as well as coherence.

Above is abstract of my paper presented in ASJ Kyushu Chapter, November 25, 2011, in Oita - Japan. You can see the poster below (click to enlarge).

Full paper is available by request.

Solve Save Figure Problem On Octave (Ubuntu and Mac)

When I use the "print" command on GNU Octave to save figure/plot I got the following error. The errors were occurred in both Ubuntu 11.10 and Mac OS X.

Warning: query
error: value on right hand side of assignment is undefined
error: `tmp' undefined near line 57 column 11
error: evaluating argument list element number 1
error: evaluating argument list element number 1
error: called from:
error:   /usr/share/octave/3.2.4/m/strings/cstrcat.m at line 57, column 2
error:   /usr/share/octave/3.2.4/m/plot/print.m at line 707, column 7
The, I ask my friend and he give me the solution. The solution is to comment two lines in cstrcat.m according to the error.
sudo nano /usr/share/octave/3.2.4/m/strings/cstrcat.m
 Find the following line,

Wednesday, November 16, 2011

Solving Zekr Problem in Ubuntu 11.10 Oneiric Ocelot

An upgrading Ubuntu from 11.04 Natty to 11.10 Oneiric Ocelot remains a problem on Zekr launching. Zekr is Quranic study tool, it is available in www.zekr.org. When I update my Ubuntu 11.04 to 11.10, I got the following problem;

        at org.eclipse.swt.SWT.error(SWT.java:4308)
        at org.eclipse.swt.browser.Mozilla.create(Mozilla.java:683)
        at org.eclipse.swt.browser.Browser.(Browser.java:96)
        at net.sf.zekr.ui.QuranForm.makeFrame(QuranForm.java:475)
        at net.sf.zekr.ui.QuranForm.init(QuranForm.java:300)
        at net.sf.zekr.ui.QuranForm.(QuranForm.java:278)
        at net.sf.zekr.ZekrMain.startZekr(ZekrMain.java:51)
        at net.sf.zekr.ZekrMain.main(ZekrMain.java:91) 


Then, I search how to solve this problem and find a solution of this problem. The problem can be solved by editing file ~/.zekr/config/config.properties.

Just type in the terminal
sudo nano ~/.zekr/config/config.properties
and find the following,
options.browser.useMozilla = true
Then, change to:
options.browser.useMozilla = false
Let's try, it works for me!

Monday, November 14, 2011

Find Local Peak of Signal in GNU Octave

The finding or searching the local peak is needed for some application such as fundamental frequency estimation, finding time delay or timelag or others. The following is a simple program to find the local peak of signal. The example of .wav sound signal

octave:1> [signal, fs] =wavread('signal.wav');    % read signal

octave:2> threshold=0.1;                          % limit the min. peak amplitude

octave for sig_ind = 1:4000
> if signal(sig_ind) > threshold
> x=sig_ind;
> break;
> endif
> endfor
octave:3> x
x = 3822

To give the display and find the rough peak of signal you can see from the figures of signal. The picture below comparing whole signal and the local signal from 1 to 4000 samples. To find the coordinate of local peak, just simply type

[a b]=max(signal(1:4000)

Full length signal and signal from 1 to 4000 samples

Tuesday, November 08, 2011

Enable SSH File Sharing in Mac OS X


Sometimes, we need to communicate or transfer data among our laptops/PCs. Instead of using storage media such as removable disk, the use of network connection is better and faster. This article will briefly explain, how to share your file in Mac OS to other PCs like Ubuntu Linux and Windows. Let's start.
The Apple Mac OS X has SSH by default has installed. Nevertheless, the SSH daemon is not enabled by default. It means you can not login remotely or do remote copies from another PC until you enable the SSH.
So, to enable SSH, just go to System Preferences in your Mac. Under Internet & Networking there is a Sharing icon. Please, click that icon. In the list appears on screen you can check the Remote Login and File Sharing option.
Sharing Menu on Mac OS X
This steps begins the SSH daemon immediately. Now, you can remotely login using your username and password. The Sharing screen at the bottom shows the name and IP address to use. You can also find this out using whoami and ifconfig from the Mac Unix Terminal.

Now, you can access your Mac from another PC. Just, install the required program in another PC such as openssh. In ubuntu, you can use the following commant (in terminal) to install openssh.

sudo apt-get install openssh
That enables ubuntu to access your Mac from terminal or nautilus file management.

Monday, November 07, 2011

Play Sound/Audio File such as .wav in GNU / Octave

In octave, there is not function like wavplay or sound such in Matlab. Octave has own function to play audiofile i.e playaudio, but it is never work for me. Instead of repair the playaudio function in Octave, below is simple script function to play sound file in Octave.

Please copy the code below and paste to your PC (work on Ubuntu Linux) as playsound.m

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
% This function play the singal x as a sound.
% playsound(x, fs, bits)
%  x : a signal vector
%  fs: sampling frequency in Hz
%  bits: quantization bits
%
% If encounter a error, try to transpose a signal vector,
% like playsound(x',fs,bits)

function playsound(x,fs,bits)
if (nargin != 3)
  usage("playsound(x,fs,bits)");
endif

 file= strcat(tmpnam(),".wav");
 wavwrite(file,x,fs,bits); 
 system(sprintf("/usr/bin/paplay %s ; rm -f %s",file,file));
endfunction
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Calculate Time Lag from Cross-correlation in Octave - Matlab

Calculation of time lag or time delay between two identical signal is very important in many areas, especially in system identification. By knowing time delay or time lag, we can analysis the signal such as subtract the output signal length according to the time lag. This problem usually appears in signal processing, control system, process, acoustic (determine time lag between sound sources and microphone) or other systems with input and output data.

In the other side, cross-corelation is useful tools. Using cross-correlation we can find the strongest point of correlation between two signal, and then shift the signal according to distance of strongest point to zero position. But the problem is the x-axis in cross-correlation not the time or sampled time (length), it is index. Let's solve by bringing the problem to computation methods such as GNU/Octave or Matlab.

Suppose, we have two signal in case of signal enhancement process. The first signal is true target signal, and the second is enhanced signal. We want to know, the time lag between true target signal and enhanced signal. The time lag can be resulted because of algorithm processing and others.

First, we read sound data in Octave or Matlab. We type,

[signal, fs]=wavread('signal.wav');

[enhance,fs]=wavread('enhance.wav');

And then, calculate the cross-correlation between signal and enhanced signal using the following command, 

Enable Japanese Language Keyboard Input in Ubuntu

The latest and newest Ubuntu such as Oneiric Ocelot version makes setting and tweaking the OS simple. One of the simple way offered by Ubuntu OS is its customization to your language both as display window and keyboard input. This article will review step-by-step to make Japanese characters: Kanji, Hiragana and Katakana are enabled in your Ubuntu. So, you can write in Kanji or Hiragana to your friends via email, chat and other.

First, open the dash home (in Unity) and type : Language. What you need is both Language Support Option and Keyboard Input. Please see figure below, to have more detail.

In the Language Support, press the Install / Remove Languages… button.

In the Installed Languages screen, scroll down to Japanese and check Input methods and Extra fonts, and press Apply Changes.

Wednesday, November 02, 2011

Life is competition, Let's do the best to be the winner..

That is my favorite words, my goal in my life, to do the best, even be the winner...


Because we live in a very competitive world. Everybody seems to be competing with someone at some level. Each week we spend hours playing or watching others compete in sporting activities all over the world. We cannot help being impressed by the level of excellence that these people achieve.

In all aspect, for example in sport and business, competition encourages excellence in performance. Where there is no competition, improvement in performance is less likely. We have lived through an era where governments have held monopolies in business. With no competition from free enterprise, services deteriorate. Monopolies create sloppy business practices, less innovation and higher prices. Business performs better with competition. Costs and prices decrease. Some level of competition is necessary in all aspects of life.



We are not in competition with any other person

The God creates us different each other. But, every one has the same chance to be success in his or her world. So we do not have to compare ourselves with others. We do not have to become discouraged because we think that someone else is better than we are in a particular area. The essence of our being is equal to that of any other person.There is only one person that can fulfill our role and that is us. This means that others cannot beat us to the finish line because there is no race. This is not to say that others do not have a similar role to us, but it is never the same. This is important to understand if we are going to enjoy life. Every human being is unique and cannot be duplicated. In this, I am not referring to the body, only to the spirit, soul, or the essence of a person.

Tuesday, November 01, 2011

Autologin Ubuntu 2d on Oneiric Ocelot

The new Ubuntu 11.10 Oneiric Ocelot used Unity or Ubuntu 3D as default windows manager. For low-powered computer or laptop, it will be run slowly. The alternative is change the default Ubuntu Unity 3d (in the login screen it is called "ubuntu" only) windows manager to ubuntu-2d. But, each login you must set this setting. Just try this method to make ubuntu-2d be default your windows manager,

in the file /etc/lightdm/lightdm.conf you have to change the user-session to ubuntu-2d. In ther terminal, just type,
sudo nano /etc/lightdm/lightdm.conf
and fill the blank user-session to ubuntu-2 like this,
user-session=ubuntu-2d

and leave other options as default. Just for your information, The ubuntu-2d is implemented using Qt/QML for the UI portions of Unity, while utilizing the existing Unity core components, like indicators, bamf, dee, uTouch and places.

This screenshot show you the lightdm.conf in which you must change the setting of user-session as I mentioned above.
Screenshot of lightdm.conf

Pemisahan Banyak Sumber Suara Mesin Menggunakan Analisis Komponen Independen (ICA) Untuk Deteksi Kerusakan

Pemeliharaan kondisi mesin di industri membutuhkan kecepatan dan kemudahan, salah satu metodenya adalah dengan analisis getaran. Getaran mesin menyebabkan pola suara yang diemisikan mesin, di mana suara mesin satu bercampur dengan mesin lainnya. Blind Source Separation (BSS) merupakan teknik memisahkan sinyal campuran berdasarkan sifat kebebasan statistik antar sumber. Melalui simulasi dengan beberapa motor dan susunan mikrofon sebagai sensor didapatkan data suara campuran dari beberapa motor yang terekam melalui tiap mikrofon, di mana intensitas sinyal yang diterima mikrofon berbeda satu sama lain, tergantung pada jarak dan sudut datangnya. Tujuan penelitian ini adalah untuk memisahkan sinyal campuran dari tiap mikrofon sehingga didapatkan sinyal estimasi sumber untuk mendeteksi kerusakan motor. Berdasarkan hasil penelitian diperoleh pemisahan sinyal terbaik dalam Time-Domain ICA. Sinyal estimasi tersebut dianalisis untuk menentukan kondisi kerusakan mesin berdasarkan pola frekuensi sesaatnya. 

Full paper bisa di download disini, it's free. 
(Jurnal Ilmu Komputer dan Informasi, Fasilkom - UI, Februari 2011)
Pengantar tentang Blind Source Separation bisa dibaca disini.

Monday, October 31, 2011

Machinery fault diagnosis using independent component analysis (ICA) and Instantaneous Frequency (IF)

Machine condition monitoring plays an important role in industry to ensure the continuity of the process. This work presents a simple and yet, fast approach to detect simultaneous machinery faults using sound mixture emitted by machines. We developed a microphone array as the sensor. By exploiting the independency of each individual signal, we estimated the mixture of the signals and compared time-domain independent component analysis (TDICA), frequency-domain independent component analysis (FDICA) and Multi-stage ICA. In this research, four fault conditions commonly occurred in industry were evaluated, namely normal (as baseline), unbalance, misalignment and bearing fault. The results showed that the best separation process by SNR criterion was time-domain ICA. At the final stage, the separated signal was analyzed using Instantaneous Frequency technique to determine the exact location of the frequency at the specific time better than spectrogram. 

Full paper is available in IEEExplore

Tuesday, October 25, 2011

High-Quality Resample (Downsample/Upsample) Sound File (.wav)

In this occasion let me show how to resample (Downsample/Upsample) sound file such as .wav in high-quality format directly on your Operating System.

The software/program that I used is libsamplerate (SRC). You can download here. Follow the instruction and the "README" text, and install it manually (if you used Unix-based OS, I think it just a simple job:) ). How to use it ? Just choose one of two options below,
sndfile-resample -to  newsamplereate [-c number] inputfile.ext outputfile.ext

sndfile-resample -by  amount [-c number] inputfile.ext outputfile.ext
The optional -c argument allows the converter type to be chosen from the following list :  
  • 0 : Best Sinc Interpolator
  • 1 : Medium Sinc Interpolator (default)
  • 2 : Fastest Sinc Interpolator
  • 3 : ZOH Interpolator
  • 4 : Linear Interpolator

For example, I resampled my input file namely female02_44k.wav which has 44100 Hz of sampling rate to be 8000 Hz with output name is female.wav. So, I use the following command,
sndfile-resample -to 8000 female02_44.wav female.wav
After that, I will get the result as the following,
Resample Result Using libsamplerete
So, what is libsamplerate?

Saturday, October 22, 2011

The Forgotten Contribution of Medieval Physicists

We learn at school that Newton is the father of modern optics, Copernicus heralded the birth of astronomy, and Snell deduced the law of refraction. But what debt do these men owe to the physicists and astronomers of the medieval Islamic Empire? What about Ibn al-Haytham, the greatest physicist in the 2000-year span between Archimedes and Newton, whose Book of Optics was just as influential as Newton’s seven centuries later? Or Ibn Sahl, who came up with the correct law of refraction many centuries before Snell? What of the astronomers al-Tusi and Ibn al-Shatir, without whom Copernicus would not have been able to formulate his heliocentric model of the solar system?

Is that all true? Come in to this lecture in the link below, Jim Al-Khalili recounts the stories of these characters and more from his new book Pathfinders: The Golden Age of Arabic Science.

Please follow the link below,

Tuesday, October 18, 2011

Generating White Noise Sound on Octave / Matlab


The following white noise sound was generated with GNU Octave's random number generator rand(), which generates uniformly distributed random values in the interval [0,1). The wavwrite() function expects values in [-1.0, 1.0), so we multiply by 2 and shift down by 1. So to generate 10 seconds of noise sampled at 48 kHz:
white=rand(48000*10,1)*2-1;
I'm not sure about the inner workings of /dev/urandom, but I used the "reseed" command to feed it data from random.org, so this should be pretty random. To export this to a 16-bit, 48 kHz .wav file in our home directory, the command is:

When the Eigenvectors of Matrix Always Orthogonal or Not (With Octave/Matlab Prove)

In Linear Algebra, an orthogonal matrix is defined as matrix with its transpose equal to its inverse,
$$ Q^T = Q^{-1}$$ or
$$ Q.Q^T = Q^T.Q = I $$ How about eigenvectors of Matrix? Are eigenvectors always orthogonal? The short answer is no. Eigenvectors of an arbitrary (but not degenerate) square real matrix A are sure to be independent (if there are no repeated eigenvalues), however they are not necessarily orthogonal.

Are eigenvectors of a symmetric matrix always orthogonal? The short answer is yes. Gilbert Strang gives the following definition: A real matrix has perpendicular eigenvectors if and only if $A^{T}A=AA^{T}$.

It follows that eigenvectors of a symmetric real matrix A (i.e $A =A^T$) are perpendicular. Another nice property of symmetric matrices is that their eigenvalues are real.

Let`s check using Octave/Matlab,

Monday, October 17, 2011

Sites in Kumamoto Castle

Before read this story, it's better to read my visit to Kumamoto Castle. Then, continue read the story below about some interesting sites in Kumamoto Castle.

The Main Towers
The area around the main towers and the Hon-maru Goten was destroyed by fire three days before the Seinan Rebellion began. The cause of the fire remains unknown. The present main tower were rebuilt in 1960 to restore the castle's exterior. The larger main tower has 6 stories with a basement and about 30 meters above the stone fence, and the smaller main tower has 4 stories with a basement and about 19 meters in height.
Exhibition and historical relics of the two ruling feudal clans, Kato's and Hosokawa's as well as the Seinan Rebellion are housed in the tower buildings.
Kumamoto Castle Main Tower
Uto-Yagura

The Walking Tour of Suizenji Park

This is is my third trip in Kumamoto City, Japan. After visiting the Castle and Zoological and botanical garden, the story is continuing..

This is Suizenji Park.
The Suizenji Park View

Suizenji is famous park in Kumamoto city Japan. Besides the Kumamoto castle, zoo, botanical garden and other, Suizenji Park is another interesting tour destination in Kumamoto. The park was built to dedicate to the Hosokawa heritage. The duke Hosokawa is author in Kumamoto after the Kato's clan. He lived in Kumamoto castle and continued by his family to maintain feudal domain system in Kumamoto at the era.
The Suizenji Park, Kumamoto, Japan
The walking tour of Suizenji jojuen takes about 20 minutes.

Saturday, October 15, 2011

Penuaan, bisakah dicegah?

Penuaan merupakan proses biologis disebabkan karena sel-sel hidup sudah tidak ada lagi, dan dapat mengakibatkan sel-sel tersebut tidak berfungsi secara optimal akibat penumpukan unsur-unsur yang hilang. Hal ini akan mengakibatkan kematian karena sulit menghilangkan pengaruh unsur-unsur ini, akan tetapi bisa menghindari kemungkinan negatif pada sel di saat tua melalui pengaktifan sel untuk membersihkan sel-sel dari unsur-unsur yang merugikan tatkala pembentukan awal, juga guna menjaga stabilitas akfitas sel.

Seperti judul artikel ini, bisakah kita mencegah penuaan? Mari kita tinjau dari sisi sains dan Islam.

Friday, October 14, 2011

Jalur Pendakian Gunung Kerinci

After all equipments are already packed.

Mulai dari carrier sampai jas hujan. Dari kompor masak, sleeping bag, peralatan logistik dan lain-lain. Yang di list udah masuk. Tinggal berangkat aja. Let's go!

Gunung Kerinci
Gunung Kerinci merupakan gunung berapi yang tertinggi di Indonesia dengan ketinggian 3800m dpl dan masih dalam keadaan aktif. Berada pada lintang 10°45,50' LS dan 1010°160' BT. Terletak di dua kabupaten yaitu Kerinci dan Sulak Deras. Dikaki gunung ini juga anda bisa temukan perkebunan teh yang terdapat di desa Kersik Tuo. Didesa Kersik Tuo ini banyak terdapat penginapan-penginapan yang diusahakan oleh penduduk setempat. Penduduk didesa Kersik Tuo ini mayoritas adalah suku Jawa yang sudah lama sekali tinggal disana, sejak jaman kolonial Belanda. Gunung kerinci berada dibawah perlindungan Taman Nasional Kerinci Semblat.

Beberapa rute untuk mencapai G. Kerinci
Gunung Kerinci bisa dicapai lewat kota Jambi atau kota Padang atau juga dari Muara Bungo. Muara Bungo terletak di jalan Lintas Sumatera antara profinsi Jambi dan Sumatera Barat. Keterangan rute-rute tersebut sebagai berikut.

Rute Kota Padang Sumatera Barat.
Padang - Kersik Tuo - Sugai Penuh.
Naik bus umum trayek Padang Sungai Penuh dan turun didesa Kersik Tuo.

Rute dari Jambi.
Jakarta - Jambi - Sungai Penuh - Kersik Tuo.

Rute dari Muara Bungo.
Jakarta - Muara Bungo - Sungai Penuh.

Dari Jakarta naik bus tujuan Padang, dan turun di kota Muara Bungo, dari sini dilanjutkan perjalan dengan menumpang mini bus dengan tujuan Sungai Penuh. Kemudian ganti kendaraan lagi dengan naik angkutan mini bus ke desa Kersik Tuo. Selain dari Kersik Tuo bisa juga dicapai dari Lubuk Gadang dan Kayu Aro. Akan tetapi rute dari desa Kersik Tuo adalah yang umum dipakai oleh para pendaki. High-camp.com menyarankan anda menginap dulu di Kersik Tuo dan memulai pendakian pagi keesokan harinya.

Mengawali perjalanan dari sungai Penuh kami langsung menuju Pintu Rimba untuk memasuki kawasan Gunung Kerinci. Setelah menyantap makan siang nasi bungkus Dendeng Betokok kami siap-siap berangkat. Namun hujan mulai turun. Aku bertanya apakah pendakian ditunda? Tidak jawab guide kami. Pendakian harus dimulai karena waktu berjalan terus. Kami semua mengeluarkan jas hujan. itulah gunanya membawa barang tersebut.

Setelah semuanya siap, tepat pukul 16.30 WIB mulai mendaki.

TAHAPAN RUTE PENDAKIAN

FFT dari Sinyal Sinus di Matlab/Octave

Seharusnya, bila kita membuat sinyal sinusoidal dengan frekuensi 20 Hz, maka kalau kita fft-kan (fourrier transform-kan) sinyal tersebut memiliki frekuensi tunggal pada sumbu X=20. Bila tidak, atau plotnya menunjukkan spektrum yang tidak beraturan, maka gambar dan teknik yang kita gunakan tersebut salah.
Sinyal Sin 20 Hz dan FFT -nya
Cek dan run listing code matlab di bawah untuk menghasilkan FFT dari sinyal sinus yang match dengan frekuensinya.
% Sampling frequency 
Fs = 1024; 
% Time vector of 1 second 
t = 0:1/Fs:1; 
% Create a sine wave of 20 Hz.
x = sin(2*pi*t*20);
% Use next highest power of 2 greater than or equal to length(x) to calculate FFT.
nfft= 2^(nextpow2(length(x)));

% Take fft, padding with zeros so that length(fftx) is equal to nfft
fftx = fft(x,nfft);

% Calculate the numberof unique points
NumUniquePts = ceil((nfft+1)/2);

% FFT is symmetric, throw away second half
fftx = fftx(1:NumUniquePts);

% Take the magnitude of fft of x and scale the fft so that it is not a function of the length of x
mx = abs(fftx)/length(x);

% Take the square of the magnitude of fft of x.
mx = mx.^2;

% Since we dropped half the FFT, we multiply mx by 2 to keep the same energy.
% The DC component and Nyquist component, if it exists, are unique and should not be multiplied by 2.
if rem(nfft, 2) % odd nfft excludes Nyquist point
  mx(2:end) = mx(2:end)*2;
else
  mx(2:end -1) = mx(2:end -1)*2;
end

% This is an evenly spaced frequency vector with NumUniquePts points.
f = (0:NumUniquePts-1)*Fs/nfft;

% Generate the plot, title and labels.
subplot(211); plot(x);
title('Waveform of a 20Hz Sine Wave');
xlabel('Time');
ylabel('Amplitude');
subplot(212); plot(f,mx);
title('Power Spectrum of a 20Hz Sine Wave');
xlabel('Frequency (Hz)');
ylabel('Power');
Source: Mathwork

Visit Kumamoto Castle

This is my story about my visiting to Kumamoto Castle a few days ago. Kumamoto is a city in Kyushu island, the southern part of Japan. There is a castle in Kumamoto city, namely Kumamoto castle. Located in downtown of Kumamoto city, it was very easy to find Kumamoto castle. If you go to the Kumamoto city hall, just look in front of you. You will see a wall of Kumamoto castle. The wall was named after Naga-Bei. At the first time, I enjoy travelling to Kumamoto castle by my lovely bicycle.

A Brief History of Kumamoto Castle
The history of Kumamoto castle can be divided into three parts. The first one is the rule of Kato's with two generation in 44 years. The second is the rule of Hosokawa and the last is in the modern era. Below is the Kato's generation from year to year.
  • 1588 : Lord Kato Kiyomasa, the daimyo ruler of northern Higo Province with annual rice yield of 195,000 koku moves into the old Kumamoto castle.
  • 1600 : Battle of Sekigahara was happened. Southern Higo Province was added to the Kiyomasa domain, yielding a total of 540,000 koku of rice.
  • 1601 : Kiyomasa began to build the present Kumamoto castle
  • 1607 : The new Kumamoto castle was completely built. A kanji character in Kumamoto's name was changed.
  • 1611 : Kiyomasa died from illness. His third son, namely Tadahiro, inherited the feudal lordship.
  • 1632 : The Karo clan was divested of its lordship and exiled to Shonai in Dewa province.

Kumamoto Castle Main Tower
The Hosokawa clan authorized Kumamoto castle in 11 generations or about 229 years. In that era some  events are occurred. Those can be listed below.

Thursday, October 13, 2011

Convolution of Two .wav Sound Files in Linux and Matlab

Convolution is the very basic and main operation in Signal Processing. My professor said that Convolution is the heart of signal processing. If we has two .wav sound files how to convolute them?

In Linux, first download the bash file here. Then follow the instruction below,

1. Ubuntu and other distribution> Unzip and untar the download by typing 
    $ gunzip fconv.tar.gz
    $ tar -xvf fconv.tar
    
2. If you are in the same directory as the program, it will run. Just type "fconv" at the command line. SLACKWARE INSTALLATION:

Automount partisi di Ubuntu Linux

Sebagai standar dalam Unix / Linux, setiap kali ada device yang berupa media penyimpanan seperti hardisk atau flashdisk yang masuk ke sistem, maka harus di-mount (dikaitkan) dulu. Pada nautilus (file manager/windows explorer-nya Linux), ataupun file manager lainnnya, ketika anda mengklik partisi atau flashdisk, saat itulah anda me-mount device tersebut. Mounting tersebut juga bisa dilakukan lewat terminal atau klik kanan pada device yang bersangkutan di nautilus. Trik yang akan dibahas juga berlaku untuk me-automount partisi windows pada dual OS. Agar tidak me-mount berkali-kali setiap komputer atau laptop dihidupkan, ada baiknya mencoba trik automount berikut.

Wednesday, October 12, 2011

Solusi dari Permasalahan Suara di Matlab Under Ubuntu Linux

Posting saya sebelumnya disini menjelaskan tentang instalasi Matlab pada Ubuntu Linux. Setelah instalasi umumnya tidak dijumpai permasalahan berarti untuk proses komputasi dan simulasi dengan Matlab under Linux itu. Namun, jika anda menggunakan Matlab untuk pemrosesan suara (sound processing) maka suara dari Matlab hanya akan terdengar pertama kali saat anda menggunakan fungsi berbasis suara seperti 'sound', 'audioplayer' dan sebagainya. Bagaimana agar matlab under linux bisa memutar suara berulang-ulang dengan function pemrosesan sinyal tersebut?

Pertama, bila masukkan matlab dalam menu application anda (jika anda belum membuatnya). Caranya adalah klik kanan application (pojok kanan atas) kemudian pilih edit menu, maka akan keluar tampilan sebagai berikut,

Tuesday, October 11, 2011

Tutorial Octave: Open Source Software Pengganti Matlab

Pada posting sebelumnya telah dibahas bagaimana cara meng-install Octave di Ubuntu Linux. Artikel ini adalah lanjutannya, yaitu bagaimana menggunakan Octave yang tidak ditujukan untuk Linux saja namun juga pada Windows dan Mac OS. Seperti halnya Matlab, Octave bisa digunakan untuk melakukan perhitungan operasi matematika secara langsung. Misalnya operasi penjumlahan ‘+’, pengurangan ‘-’, perkalian ‘*’, pembagian ‘/’ dan operasi lainnya yang lebih kompleks seperti penggunaan fungsi trigonometri (sin, cos), pangkat ‘^’, eksponensial ‘e’, logaritma ‘log’, bilangan imajiner atau untuk mendevelop fungsi operasi baru (function seperti dalam Matlab).

Untuk menjalankan octave pada Ubuntu silahkan ketik "octave" pada terminal. Operasi matematika sederhana dengan Octave bisa dilihat pada contoh di bawah.

>> a=5
a =  5
>> b=7
b =  7
>> c=a+b
c =  12

Pada kondisi tertentu kadang tidak diharapkan untuk langsung mengetahui hasil dari suatu operasi terutama bila kita mencoba menuliskan script. Untuk menahan agar octave tidak menampilkan hasil operasi pada sebuah baris ditambahkan semicolon pada akhir baris.

Instalasi Octave di Ubuntu Linux

Beberapa postingan terakhir dalam blog ini, selain menyertakan Matlab juga ada versi Octave-nya. Nah apa itu octave? Octave adalah versi open source dari matlab yang hampir sepenuhnya kompatibel dengan matlab. Termasuk juga penamaan file berupa: .m dan .mat

Octave dikembangkan oleh John E. Weaton di University of Wisconsin Madison. Awalnya software tersebut dibuat sebagai pelengkap textbook kuliah chemical reactor design. Namun kini octave digunakan oleh berbagai bidang termasuk signyal processing. Di kampus saya sendiri Octave menjadi program wajib, dan ada kelas/course-nya pula..

OK, pada ubuntu untuk mengintall Octave cukup mudah, yakni sebagai berikut:
sudo apt-get install octave
Seperti halnya Matlab, Octave membutuhkan toolbox dan program lain. Sebagi contoh untuk pemrosesan sinyal audio, image dan plot kita membutuhkan octave-signal, octave-audio, octave-image dan gnuplot. So, install program tambahan tersebut,

Menyimpan data .wav/.mat dalam format ASCII di Matlab / Octave

ASCII - American Standard Code for Information Interchange merupakan format standar data yang berupa text yang akan memudahkan kita untuk memprosesnya dalam program dan OS apapun. Nah, bagaimana menyimpan data kita dalam format ASCII ? Caranya adalah dengan menyimpan anda dalam workspace Matlab atau Octave, kemudian simpan sebagai file format ASCII dengan perintah berikut ini. (Mungkin juga berlaku untuk selain data .wav dan .mat, yakni data berekstensi lain .xml dll, sekali lagi load dulu ke workspace-nya matlab/Octave).

Dalam Matlab,
x=wavread('nama_file.wav');                      % load file wav anda

save namafiletxt x -ASCII


jika data anda berupa .mat

load data

save namafiletxt x -ASCII                           % load file mat


Dalam Octave, ganti -ASCII menjadi -ascii, sehingga menjadi sebagai berikut:

Monday, October 10, 2011

Menghitung SNR dengan Matlab / Octave

SNR- Signal to Noise Ration adalah ukuran untuk membandingkan suatu sinyal dengan noise-nya. SNR didefinisikan sebagai perbandingan power signal dengan power noisenya. Gampangannya, kalau power sinyal yang kita inginkan lebih kecil daripada noisenya, maka  hasil kita jelek (hasil apapun, entah dalam speech enhacement, source separation, image processing atau yang lain). Sehingga, semakin besar nilai SNR tentunya semakin baik kualitas desired signal kita.
Sesuai formulanya, SNR dirumuskan sebagai berikut;
$$SNR=\dfrac{P_{signal}}{P_{noise}}$$
dimana P merupakan power rata-rata baik dari sinyal maupun noise yang diukur pada t yang sama dan dalam bandwith yang sama. Jika sinyal dan noise memiliki impedansi yang sama, maka SNR dapat dihitung dari kuadrat Amplitudo kedua sinyal dan noise tersebut. Agar mempunyai impedansi yang sama, pada praktek penghitungan SNR dengan matlab/Octave nilai SNR dinormalisasi dengan perintah norm
.
dimana A merupakan root mean square (rms) dari amplitudo sinyal. Karena banyak sinyal memiliki dynamic range, maka SNR dapat dinyatakan dalam decibel (dB) sebagai berikut:

Sunday, October 09, 2011

From Surabaya to Kumamoto

Alhamdulillahirobbil alamin, segala puji bagi Allah, Tuhan semesta Alam, yang mengatur siang dan malam, mengatur perputaran bumi, matahari dan benda-benda langit lainnya, mengatur segala yang ada di alam semesta dan memperjalankan hambaNya, termasuk hambaNya yang dhoif wa jahuul ini.

Dengan mengucap doa safar (doa naik kendaraan) aku memulai perjalanan ini,

Subhaanal Ladzi sakhkhara lanaa haadzaa wamaa kunnaa lahu muqriniin qa innaa ilaa rabbinaa lamunqolibuun.

Artinya:
Maha Suci Allah Dzat yang menjinakkan kendaraan ini kepada kami, sedangkan kami tidak bisa menjinakkannya, dan kepada Allah kami kembali. (Q.S. Az-Zukhruf:13-14)
Di Bandara Cengkareng, Sebelum Berangkat

Thursday, September 22, 2011

Waduk Gondang, Lamongan

Waduk Gondang Lamongan terletak 19 km arah barat Lamongan, di desa Gondang Lor dan Deket Agung Kecamatan Sugio. Sebagai tempat wisata, waduk ini terbilang cukup murah meriah. Untuk menuju waduk Gondang, ada beberapa cara yakni dengan kendaraan pribadi atau dapat juga menggunakan angkutan umum dari Lamongan menuju Gondang. Sebagai informasi, waduk Gondang ini diresmikan oleh Presiden Suharto tahun 1987. Luas waduk Gondang adalah 6,60 Ha dan kedalaman waduk Gondang sekitar 29 meter, kapasitas air normal mencapai 23 juta m3 mampu mengairi lahan pertanian seluas 8.412 Ha.


Pintu Masuk Waduk Gondang

Selain sebagai sumber irigasi pertanian, waduk Gondang Lamongan juga difungsikan untuk penyediaan kebutuhan air minum di beberapa daerah di Kabupaten Lamongan. Tak kalah pentingnya, waduk Gondang juga sebagai tujuan wisata untuk peningkatan Pendapatan Asli Daerah (PAD). Di Waduk Gondang, pengunjung dapat menikmati keindahan waduk sambil memancing ikan. Tersedia pula perahu untuk mengelilingi areal waduk, dan beberapa fasiltas lain seperti tempat bermain anak-anak, sepeda air, dan kebun binatang mini yang dihuni sekawanan rusa, burung merak, dan satwa lainnya. Harga sewa perahunya-pun murah. Saat saya ke Waduk Gondang tahun 2007 lalu, sewa perahu di Waduk Gondang hanya 20.000 rupiah, (bandingkan dengan sewa perahu untuk melintasi sungai musi yang 50.000 rupiah, itupun yg paling murah) dan di tengah-tengah waduk kita bisa minta turun sebentar untuk menginjakkan kaki di pulau kecil di tengah waduk tersebut. Pulau di tengah waduk Gondang itu mirip pulau samosir di danau toba, lebih jelasnya lihat foto di bawah.

Wednesday, September 21, 2011

(Computational) Auditory Scene Analysis

Setelah pada posting sebelumnya, saya bercerita tentang metode pemisahan sinyal suara dengan Blind Source Separation atau BSS kali ini saya akan mengulas sedikit tentang metode pemisahan sinyal suara lainnya, yang lebih dekat ke bagaimana sistem pendengaran manusia bekerja memisahkan sumber - sumber suara. Metode itu dinamakan Computational Auditory Analysis atau disingkat CASA yang merupakan representasi komputasional dari ASA (Auditory Scene Analysis).
Skema Arsitektur CASA [1]
ASA diperkenalkan oleh Al Bregman (psikolog) untuk menjelaskan bagaimana sistem pendengaran manusia bekerja, khususnya dalam memisahkan dan mengidentifikasi lokasi sumber bunyi yang di dengar oleh telinga berdasarkan teori dan eksperimen psikologi terhadap sistem pendengaran manusia. Bregman berpendapat bahwa saat manusia mendengar suara pada dasarnya dia melakukan proses auditory scene analysis. Proses ASA tersebut dibagi menjadi dua tahap, yakni tahap segmentasi dimana terjadi pengelompokan elemen-elemen akustik berdasarkan time-frequency dan tahap kedua adalah pengelompokan elemen-elemen tersebut berdasarkan sumber-sumber suara yang sama. Skema arsitektur sistem CASA dapat digambarkan pada gambar diatas.

Menggambar Fraktal Fern di Matlab

Fraktal atau fractal merupakan gambaran benda geometris yang kasar pada segala skala, dan terlihat dapat "dibagi-bagi" dengan cara yang ekstrim. Beberapa fraktal bisa dipecah menjadi beberapa bagian yang semuanya mirip dengan fraktal aslinya. Fraktal dikatakan memiliki detail yang tak hingga (unlimited) dan dapat memiliki struktur serupa diri pada tingkat perbesaran yang berbeda. Pada banyak contoh, sebuah fraktal bisa dihasilkan dengan cara mengulang suatu pola yang sama dalam proses rekursif atau iteratif dan ukuran yang berbeda. Istilah fractal dibuat oleh Benoît Mandelbrot pada tahun 1975 dari kata Latin fractus yang artinya "patah", "tidak teratur" atau "rusak". Sebelum Mandelbrot memperkenalkan istilah tersebut, nama umum untuk struktur semacamnya (misalnya bunga salju Koch) adalah kurva monster (monster curve).
Matematika, sebagai salah satu cabang ilmu pengetahuan awalnya mempelajari fenomena ini sebagai benda-benda matematis. Geometri fraktal adalah cabang matematika yang mempelajari sifat-sifat dan perilaku fraktal. Fraktal bisa membantu menjelaskan banyak situasi yang sulit dideskripsikan menggunakan geometri klasik, dan sudah cukup banyak diaplikasikan dalam sains, teknologi, dan seni karya komputer. Dulu ide-ide konseptual fraktal muncul saat definisi-definisi tradisional geometri Euklides dan kalkulus gagal menganalisis objek-objek kurva monster tersebut.

Gambar Fraktal Fern

Salah satu contoh fraktal adalah fractal fern atau fraktal daun. Gambar fraktal fern dapat dilihat diatas dan untuk menggambarnya dapat menggunakan script Matlab berikut ini. Silakan run script Matlab berikut dan ganti parameternya untuk mendapatkan gambar yang berbeda.

Tuesday, September 20, 2011

Kobaran Api di Dasar Laut, Sebuah Mukjizat Al-Quran

Subhanallah! Kembali Al-Qur'an memberikan mukjizatnya melalui penemuan-penemuan baru yang akan menguatkan Sains Islam atau Islamisasi sains. Baru-baru ini muncul sebuah fenomena retakan di dasar lautan yang mengeluarkan lava, dan lava ini menyebabkan air mendidih hingga suhunya lebih dari seribu derajat Celcius. Meskipun suhu lava tersebut luar biasa tingginya, ia tidak bisa membuat air laut menguap, dan walaupun air laut ini berlimpah-luah, ia tidak bisa memadamkan api.

Allah bersumpah dengan fenomena kosmik unik ini. Firman-Nya:  
"Ada laut yang di dalam tanahnya ada api" (Qs. Ath-Thur 6).

Sedangkan Rasulullah SAW pernah bersabda:  
"Tidak ada yang mengarungi lautan kecuali orang yang berhaji, berumrah atau orang yang berperang di jalan Allah. Sesungguhnya di bawah lautan terdapat api dan di bawah api terdapat lautan."

Gambar Kobaran Api di Dasar Laut

Instalasi Matlab di Ubuntu Linux

Sebagai salah satu program yang paling banyak digunakan dalam dunia saintifik, khususnya di bidang Teknik atau Engineering, mau tidak mau Matlab harus terinstall dalam setiap PC atau laptop mahasiswa teknik, termasuk pada PC atau laptop yang ber-OS Ubuntu / Linux. Nah, biasanya ada permasalahan saat instalasi Matlab di Ubuntu. Permasalahan itu tak lain dan tak bukan pada file permission.

Saya asumsikan anda telah memiliki instalasi Matlab untuk Linux atau Mac (Silakan "beli" atau cari trialnya di Google). Jika file instalasi berasal dari DVD (.iso), maka copy dulu file itu ke dalam laptop dan ekstrak untuk mendapatkan file instalasinya, klik kanan file .iso tersebut, pilih open with >> Archieve Mounter. Kemudian berpindahlah pada directory dimana file .iso tersebut di mount (mudahnya klik kanan "open in terminal" di directory tersebut). Jika anda hanya mengekstrak file ISO tersebut kemudian berpindah ke direktori hasil ekstraksi untuk menginstall Matlab (sesuai langkah dibawah) kemungkinan akan ada error dan instalasi tidak akan berhasil.

Setelah itu, ketik perintah berikut
cd DIREKTORI_MATLAB_MU/update/bin/glnx86

sudo chmod 777 *

cd DIREKTORI_MATLAB_MU

sudo sh install
Misal, jika direktori master/installer matlab anda di home/user/matum2k9b
maka ubah direktorinya dengan perintah

cd /home/user/matum2k9b/bin/glnx86

sudo chmod 777 *

cd /home/user/matum2k9b

sudo sh install

Pastikan juga anda memiliki file lisensi (license file) pada direktori tersebut yang biasanya bernama license.dat

Menyembunyikan Opsi Windows OS pada Dual Boot Screen Windows-Linux

Teknik yang satu ini terbilang cukup keren dan memiliki banyak fungsi. Pertama, jika sewaktu waktu ada razia Software atau OS bajakan anda bisa lolos (kalau yang merazia tidak pakar Unix tentunnya..:-) ), dan yang kedua bisa kelihatan keren karena sepertinya anda hanya menggunakan satu OS, yakni Linux.

Ok, untuk menyembunyikan opsi atau pilihan menu Windows OS pada boot screen dual boot (defaultnya opsi Windows OS berada di urutan terakhir), silakan ikuti petunjuk berikut
  1. Masuk ke terminal (Ctrl+T) dan ketik: sudo nano /boot/grub/grub.cfg
  2. Masukkan password root anda
  3. Cari kata-kata berikut: menuentry "Microsoft Windows...."
  4. Hapus kata dalam tanda petik berikut: "Microsoft windows... " sehingga tidak ada kata dalam tanda kutip atau seperti ini this " "
  5. Restart komputer/PC anda dan anda tidak akan menemukan menu atau pilihan windows OS pada boot screen, namun sejatinya menu/opsi itu masih ada, arahkan saja kursor pada pilihan paling bawah dan tekan enter disitu, anda akan masuk pilihan windows OS.
Selamat Mencoba, Good luck!
Menu Windows Yang Disembunyikan

Monday, September 19, 2011

Mata Lalat Ilhami Medical Imaging [2]: Endoscopy Akan Menjadi Masa Lalu

Pada posting sebelumnya yang sudah sangat lama disini telah disebutkan bahwa mata majemuk lalat (compound eye) memiliki kemampuan yang mengagumkan, bisa mengindera 330 getaran dalam satu detik, memiliki penglihatan yang luas dalam satu bayangan gambar dan sangat tajam. Kemampuan tersebut apabila ditransfer dalam alat pencitraan akan menghasilkan manfaat yang tidak diragukan apalagi dalam dunia kedokteran.
Gambar Mata Lalat diambil dengan Mikroskop Electron

Sayang seribu sayang, yang pertama meneliti hal ini adalah para ilmuwan Israel. Mereka kini tengah mengembangkan perangkat baru di bidang pencitraan medis dengan mengadopsi kemampuan compound eye. Mereka berharap bahwa alat tersebut, yang masih dalam tahap pengembangan, akan memberikan lebih banyak keuntungan dan kemampuan daripada alat yang ada sekarang. Keuntungan tersebut adalah biaya yang lebih murah daripada teknologi pencitraan yang digunakan pada perangkat-perangkat yang ada.

Friday, September 16, 2011

Tanda Kiamat: Tanah Arab Menjadi Perkebunan

Ilustrasi Tanah Arab
Di antara mukjizat dalam sains atau ilmu pengetahuan pada sunnah adalah sabda Rasulullah, "Hari kiamat tidak akan terjadi sehingga tanah Arab kembali menjadi padang rerumputan atau perkebunan." (HR Muslim)

Dalam hadits ini, Rasulullah bersabda "sehingga tanah Arab kembali" maksudnya tanah jazirah Arab. Adapun makna sabda Rasul SAW "sehingga kembali" yaitu bahwa dahulu tanah Arab dipadati oleh rerumputan dan perkebunan, dan nanti tanah Arab akan kembali seperti semula yakni menjadi perkebunan kembali setelah lama menjadi padang pasir. Itulah tanda akan kiamat.

Pembuktian hadits ini, bahwa berkat kemajuan teknologi dan ilmu geologi serta kemajuan teknologi riset, para ahli geologi memprediksi bahwa sebagian daratan Arab pada masa dahulu adalah tanah yang subur untuk pertanian dan perkebunan.

Sunday, September 11, 2011

Sains Islam, adakah...?



Sains Islam (Science Islam)
 Sebelum membahas lebih jauh tentang sains Islam, perlu dipahami konsep sains itu sendiri. Sains (ilmu pengetahuan, atau ilmu saja) Berbeda dengan pengetahuan (knowledge). Pengetahuan adalah semua informasi yang diterima oleh manusia. Menurut Arthur Hays Sulzberger, pengetahuan tidak hanya sesuatu yang diterima namun juga yang dipersespsi, dipelajari dan ditemukan oleh manusia. Sedangkan sains (arab: al-'ilm) merupakan pengetahuan yang terorganisasi. Pendapat lain mengatakan bahwa sains adalah pengetahuan yang didapatkan melalui metode ilmiah. Jadi, sains merupakan bagian dari pengetahuan dan tidak semua pengetahuan merupakan sains.
            Konsep sains Islam merupakan upaya untuk membentuk ilmu pengetahuan dan teknologi yang sesuai dengan nilai-nilai Islam. Sains tersebut tidak terbatas pada ilmu-ilmu agama seperti Tafsir, Hadits, Fiqh, Kalam, Tasawuf, dan lain-lain, namun juga pada bidang yang lain: Matematika, Fisika, Kima, Biologi, Kedokteran, dll. Konsepsi sains Islam ini berusaha untuk menggabungkan ilmu-ilmu agama dan sains secara umum yang sebelumnya terdikotomikan. Sains, karena sarat akan nilai-nilai subyektif dan juga obyektif, dapat dibangun dengan pendekatan kultural yang khas, termasuk dari sisi agama. Islam, sebagai agama yang diakui oleh pemeluknya satu-satunya yang benar tentunya memiliki landasan dan arahan dalam membangun dan mengembangkan sains di semua bidang agar tidak bertentangan dengan keimanan pemeluknya.

Habibie, Islam dan Teknologi [3]: Apapun diperbolehkan Pak Harto, Asal Bukan Revolusi


Foto Pak Habibie


Mantan Presiden Bacharuddin Yusuf Habibie dalam ceramahnya di Al Azhar Conference Center (ACC) di Kairo, Mesir, pada Senin (6/6), mengungkapkan bahwa ia pernah ditantang Presiden Soeharto untuk mengaktualisasi ajaran Islam. 
Related Posts Plugin for WordPress, Blogger...