JNI (Java Native Interface)

Pre Post :
Iseng-iseng membuka source code library game engine lidgdx, saya menemukan satu syntax yang baru bagi saya :

private native float jniGetRadius (long addr);

native adalah keyword dari JNI.

Main Post :
Apakah fungsi JNI (Java Native Interface)?
JNI memungkinkan kode java yang sedang berjalan pada JVM untuk mengakses atau diakses oleh native application seperti C, C++ atau Assembly.

Kenapa akses dari atau ke native application diperlukan?
Ada beberapa alasan, salah satunya untuk performa. Komputasi yang kompleks lebih cepat diselesaikan di native application.

Kalau ingin mengetahui lebih lanjut tentang teknis dan implementasinya klik disini.

Advertisements
| Leave a comment

Kelas Statis pada Javascript

1. Pertama-tama buat sebuah kelas

function Kelas() {
}

2. Tambahkan method ke kelas tersebut

 function Kelas() {
 }

Kelas.getName = function() {
alert("Kelas");
}
 

3. Try

Kelas.getName();
 

Akan muncul pop up pada browser yang bertulisankan “Kelas”.

Referensi : http://www.javascriptkata.com/2007/03/26/how-to-do-class-functions-in-javascript-aka-static-or-shared-functions/

Posted in Javascript, Programming, Web | Leave a comment

Membuat Scroll tetap berada di bawah pada Javascript

Ada saatnya kita memerlukan posisi scroll tetap berada dibagian bawah . Misal, untuk aplikasi chating. Scroll harus tetap berada dibawah agar teks chat terbaru tetap terlihat. Berikut script pada javascript untuk menempatkan scroll di posisi paling bawah pada suatu element :

var con = document.getElementById("container");
con.scrollTop = con.scrollHeight;

*Refreshing sejenak disaat mengerjakan tugas progin…

Posted in Javascript, Programming, Web | 2 Comments

Proses attachment pada email

Saya mengirim sebuah email yang berisi dua attachment ke alamat email saya sendiri. Berikut header dan body email yang saya kirim.

Return-Path: <if18104@students.if.itb.ac.id>
X-Original-To: if18104@students.if.itb.ac.id
Delivered-To: if18104@students.if.itb.ac.id
Received: from [167.205.35.214] (unknown [167.205.35.214])
by mail.students.if.itb.ac.id (Postfix) with ESMTP id 687BFACC27
for <if18104@students.if.itb.ac.id>;
Tue,  5 Apr 2011 14:00:09 +0700 (WIT)
Message-ID: <4D9ABFE7.60501@students.if.itb.ac.id>
Date: Tue, 05 Apr 2011 14:08:23 +0700
From: Rezan Achmad <if18104@students.if.itb.ac.id>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.15)
Gecko/20110303 Lightning/1.0b2 Thunderbird/3.1.9MIME-Version: 1.0
To: if18104@students.if.itb.ac.id
Subject: Raw AttachmentContent-Type: multipart/mixed;
boundary="------------010900050009090109040606"
This is a multi-part message in MIME format.
--------------010900050009090109040606
Content-Type: text/plain; charset=ISO-8859-1;
format=flowedContent-Transfer-Encoding: 7bit
Email ini dikirim untuk melihat raw attachment
--------------010900050009090109040606
Content-Type: text/plain; name="Readme.txt"
Content-Transfer-Encoding: base64Content-Disposition: attachment;
filename="Readme.txt"
VGVyZGFwYXQgcGVzYW4geWFuZyB0ZXJzaXJhdCBkaSBkYWxhbSB2aWRlbyBpbmkuIFRvb
nRvbiB2aWRlbyBpbmkgZGVuZ2FuIHNla3NhbWEgaGluZ2dhIGFraGlyLg==
--------------010900050009090109040606
Content-Type: text/plain; name="Soal.txt"
Content-Transfer-Encoding: base64Content-Disposition: attachment;
filename="Soal.txt"
MS4gS2lyaW1rYW4gZHVhICgyKSBhdHRhY2htZW50IGtlcGFkYSBkaXJpIEFuZGEgc2Vu
ZGlyaSwga2VtdWRpYW4gbGloYXQgInJhdyBmaWxlIiBkYXJpIGJlcmthcyBlbWFpbCB0
ZXJzZWJ1dC4gVHVuanVra2FuIGJhZ2FpbWFuYSBhdHRhY2htZW50IGRpcHJvc2VzIGRh
bGFtIGVtYWlsLg0KMi4gQW5kYSBkaW1pbnRhIHVudHVrIG1lbnlhZGFwIGVtYWlsIGRl
bmdhbiBtZW5nZ3VuYWthbiB0Y3BkdW1wLCB3aXJlc2hhcmssIGF0YXUgbWFpbHNuYXJm
LiAoUGlsaWggc2FsYWggc2F0dSBzYWphLikgVHVuanVra2FuIGJhZ2FpbWFuYSBtYWls
IHlhbmcgZGlzYWRhcCBpdHUu
--------------010900050009090109040606--

Pembatas antar body dan attachment lainnya pada email ini yaitu : ————010900050009090109040606. String ini disebut sebagai boundary dan informasi boundary diperoleh dari header email.

Kumpulan string setelah boundary ke-2 hingga boundary ke-3 adalah attachment pertama dan kumpulan string setelah boundary ke-3 hingga boundaryke-4 adalah attachment kedua.

Proses attachment file menggunakan encode base64. Sebelum file diletakkan pada raw attachment terlebih dahulu di-encode dengan base64.  Encode base64 hanya memerlukan 6 bit untuk membentuk satu karakter. Jadi hanya ada 64 jenis karakter yang muncul pada file attachment.

| Leave a comment

BigInteger C# .NET 4.0

Barusan teman saya menanyakan bagaimana cara menggunakan BigInteger di C# (untuk .Net 4.0, saya kurang tau apakah versi sebelumnya telah support).  Saya rasa harusnya mudah menggunakannya seperti layaknya tipe data biasa . Perlu diperhatikan, System.Numerics harus di-include terlebih dahulu sebelum memakai BigInteger. Nah, masalahnya disini. using System.Numerics tidak ditemukan oleh debugger Visual Studio ketika dijalankan.

Setelah putar otak apa masalahnya, akhirnya ketemu juga solusinya. Secara default debugger C# tidak memasukkan System.Numerics ke dalam reference-nya, perlu di tambahkan reference System.Numerics terlebih dahulu.

Folder References : Before

Folder References : Before

Cara untuk menambah reference sebagai berikut : Continue reading

Posted in C#, Programming | 2 Comments

[II3062] Steganografi : Jawab

Pada post sebelumnya, penulis melampirkan sebuah video. Video tersebut berisi informasi rahasia namun tidak terlihat secara kasat mata, perlu usaha lebih untuk mengetahui isi informasinya.

Beberapa pembaca mungkin telah memutar video tersebut dan  menemukan pesan rahasia yang disisipkan. Bagi yang telah menemukan saya ucapkan selamat :D.  Untuk yang belum menemukan, jangan berkecil hati. Pada post kali ini penulis akan  mengungkapkan di bagian mana pesan rahasia tersebut disembunyikan. Continue reading

Posted in Programming | Leave a comment

[II3062] Steganografi

Tonton video berikut secara seksama hingga akhir..

http://cid-fb8170ee6552e168.office.live.com/embedicon.aspx/.Documents/Wildlife.3gp

Jika belum mengerti, baca kembali petunjuk diatas.

Posted in Programming | Leave a comment