
Gentry Lee
Chief Engineer for the Planetary Flight Systems Directorate, Chief Engineer for the Solar System Exploration Directorate of NASA’s Jet Propulsion Laboratory (JPL), received a B. A., Summa Cum Laude, from the University of Texas at Austin in 1963 and an M. S. from the Massachusetts Institute of Technology in 1964, has been awarded the prestigious Harold Masursky Award, presented by the American Astronomical Society’s Division for Planetary Sciences.
2012
Behavioral Characteristics of Good System Engineer
2011
Asterisk Practice – Voicemail, Hunting
Melanjutkan catatan Asterisk Practice yang beberapa waktu yang lalu saya post, berikut ini adalah beberapa konfigurasi yang bisa digunakan untuk Voicemail dan Hunting.
Untuk Voicemail, konfigurasi data account SIP pada file sip.conf sama dengan konfigurasi standar yang saya post sebelumnya, perbedaannya hanya pada konfigurasi dial plan yang terdapat pada file extensions.conf dan tambahan konfigurasi voicemail pada file voicemail.conf. Sebagai contoh untuk data account yang sudah ada (di posting sebelumnya), dial plan voicemail yang dapat digunakan adalah sebagai berikut:
[voiptest]
Exten => 101,1,Dial(SIP/101,20)
Exten => 101,2,Voicemail(101@voiptest)
Exten => 101,3,PlayBack(vm-goodbye)
Exten => 101,4,Wait(2)
Exten => 101,5,HangupExten => 1101,1,VoiceMailMain(101@voiptest)
dimana:
[voiptest] : adalah context yang mengatur semua user yang menggunakan context voiptest pada data account
exten : adalah aturan di asterisk untuk menunjukkan nomor extension
101 : adalah nomor extension yang bisa dihubungi
1-5 : adalah prioritas action
Dial : adalah aplikasi untuk men-dial
SIP : adalah nama protokol yang digunakan dan untuk mengidentifikasi bahwa user berada di file sip.conf
101 setelah SIP : adalah nama context di sip.conf
20 : adalah lamanya berdering saat terjadi pemanggilan oleh user yang lain
Voicemail : adalah aplikasi berikutnya yang dikerjakan jika selama 20 detik panggilan tidak dijawab
101@voiptest : Continue Reading »
2010
CORBA, Hello World
CORBA (Common Object Request Broker Architecture) merupakan arsitektur standar untuk sistem terdistribusi berbasis object. CORBA memungkinkan banyak object yang terdistribusi untuk saling berhubungan, singkat kata, CORBA adalah semacam middleware yang dihasilkan oleh sebuah konsorsium yang bernama OMG (Object Management Group). Dari salah satu sumber disebutkan bahwa OMG adalah sebuah konsorsium terbuka yang terdiri dari kurang lebih 700 perusahaan yang bekerja sama untuk mendefinisikan standar komputasi object, dengan demikian object CORBA menjadi dapat ditulis dengan beberapa bahasa pemrograman yang didukung oleh perusahaan-perusahaan tersebut, diantaranya C, C++, Java, Ada atau SmallTalk. Selain itu object CORBA juga dapat berada pada berbagai platform sistem operasi seperti Solaris, Linux, Windows, OpenVMS, HP-UX dan AIX juga beberapa platform lainnya.
Sistem CORBA didesain agar antar sistem dapat saling berinteraksi satu sama lainnya dengan melalui suatu objek bus yang bernama ORB (Object Request Broker). Melalui ORB inilah objek–objek yang terletak di local atau di remote pada sistem terdistribusi berbasis CORBA saling berkomunikasi. Berikut ini adalah beberapa bagian utama pendukung CORBA:
- ORB, sebagai perantara bagi object untuk saling berhubungan, sebagai responder bagi aplikasi atau ORB lainnya
- CORBA Services, sebagai penyedia layanan CORBA yang berjalan pada level sistem (daemon)
- CORBA Facilities, sebagai penyedia layanan CORBA yang berjalan pada level aplikasi
- Bussiness Object, yaitu obyek utama dalam sistem berbasis object
Sebuah sistem berbasis CORBA yang memiliki kemampuan berinteraksi dengan berbagai object yang dibangun diatas platform yang beragam, menggunakan sebuah interface yang dapat dimengerti oleh berbagai platform tersebut, interface tersebut dikenal dengan Interface Definition Language (IDL). IDL dikembangkan untuk menyediakan fungsi khusus, yaitu agar dapat digunakan untuk mendefinisikan antarmuka terhadap layanan yang disediakan oleh sistem terdistribusi tersebut. Disini kita akan mencoba CORBA sederhana dengan menggunakan Java, sebagaimana yang sudah diuraikan diatas, maka langkah pertama yang harus dilakukan adalah dengan membuat IDL-nya terlebih dahulu:
module HelloApp {
interface Hello {
string sayHello();
oneway void shutdown();
};
};
2010
Simple SIP/Voip Server – Asterisk Practice
Asterisk adalah aplikasi open source PBX (Private Branch Exchange) yang dikembangkan diatas lisensi GPL, yang membuat siapapun yang tertarik untuk mencoba atau mempelajari hal-hal yang berbau Voip Gateway bisa dengan mudah dan murah untuk merealisasikannya, tidak hanya sekedar bisa mempelajari, bahkan implementasinya pun bisa dijual.. hehe..
Meskipun demikian, asterisk juga sudah dilengkapi banyak fitur baik standard telephony maupun advance, diantaranya:
- Caller ID
- Call Waiting
- 3-Way Calling
- Dinamic Call Forwarding
- Follow Me
- Voice Mail
- Conference
- Interactive Voice Response (IVR)
- Automatic Call Distribution (ACD)
- Dan masih banyak lagi fitur lainnya..
Satu lagi kelebihan asterisk, adalah dia dapat berjalan pada multiplatform sistem operasi termasuk Linux, Mac, BSD dan Sun Solaris. Untuk practice kali ini digunakan PC Desktop biasa dengan Ubuntu 10.10 sebagai sistem operasinya. Untuk instalasi tentunya hanya cukup dengan :
# apt-get install asterisk
Setelah instalasi selesai, pastikan 3 paket berikut sudah terinstall dengan baik:
- asterisk
- asterisk-config
- asterisk-sounds-main
Selanjutnya adalah langkah yang paling menarik, konfigurasi. Namun sebelum memulai konfigurasi, alangkah baiknya untuk mengenali dulu teknologi atau protocol-protocol telephony yang ada seperti SIP, H323, IAX, MGCP, juga termasuk didalamnya layanan PSTN, dll. Pada practice kali ini kita akan menggunakan SIP karna konfigurasinya yang relatif mudah dengan implementasi yang mudah juga. Selain teknologi dan protocol satu hal lagi yang perlu diketahui adalah komponen-komponen dasar dari PBX atau lebih tepatnya IP PBX adalah: Continue Reading »
2010
HTTP Client Side Encryption
Begitu banyak website yang pada hakikatnya melayani data-data penting pengguna, namun masih belum terlindungi dengan HTTPS, sebutlah User ID dan Password, se-tidak penting-nya pun User ID dan Password tersebut, namun tidak sedikit orang yang menggunakan User ID bahkan Password yang sama untuk accountnya di website yang lain. Jika demikian kenyataannya, tentulah para eavesdroppers bisa dengan mudah mencoba-coba memasuki account-account yang dimiliki orang tersebut di dunia maya.
Post kali ini saya mencoba meng’akal’i hal tersebut dengan penggunaan metode enkripsi disisi klien dengan RSA yang menggunakan javascript, teori mengenai RSA bisa dibaca di http://id.wikipedia.org/wiki/RSA. Dengan pemrograman Java, RSA sederhana dapat kita buat dengan menggunakan fungsi modpow(BigInteger exponent, BigInteger modulus) yang ada di class java.math.BigInteger seperti ini:
public byte[] encrypt(BigInteger m, BigInteger e, byte[] message){
BigInteger cipher=new BigInteger(message);
BigInteger result=cipher.modPow(e,m);
return result.toByteArray();
}
public byte[] decrypt(BigInteger m, BigInteger d, byte[] message){
BigInteger plain=new BigInteger(message);
BigInteger result=plain.modPow(d,m);
return result.toByteArray();
}
dimana m, d dan e bisa kita bangkitkan dengan menggunakan java.security.SecureRandom dengan bantuan key pair generator seperti ini :
