The story about external file and Java Web Application

I am sorry for the title, may be you get confused about it. But definitely, you will find the answer about the external file and java web app problem. I put phrase “the story about” because I retell how I solve that thing.

Although it is not the first time I build an application using Java Web App, there are lot of stuff that I don’t really understand. I think because Java Web App is well design application platform. Because of that, I tried to know more about it so finally I tried implementing my final project using Java Web App.

There are some considerations why I prefer web app, the main reason is using web app, the system could be used by a lot of people. I hope it could also happen to my app.

At the first time, I think all will go well as I plan in my head. You’re right, problem can rise anytime. Based on the Java Web architecture, there are some components on Java Web App. They are source package for implementing the java logic class, then web for implementing web page. We also could use library when our App needs library.

First, my app goes well without any problem when it run on java logic classes. Suddenly, after creating a java servlet and initiate an object that use library for reading external files, the server get some SEVERE messages and shut down as well as give me lot of error messages.

Continue reading

java.lang.OutOfMemoryError: Java Heap Space

Beberapa waktu lalu atau lebih tepatnya beberapa jam yang lalu, saya cukup kerap menemui pesan  java.lang.OutOfMemoryError: Java Heap Space. Pesan ini menunjukkan bahwa Java VM kekurangan memori untuk menjalankan aplikasi atau program tersebut. Akibatnya, program yang berusaha kita jalankan akan gagal untuk dijalankan.

Java Heap Memory adalah memori yang disediakan oleh Java VM ketika hendak menjalankan suatu program. Secara otomatis pada komputer 32 bit, Java VM akan mengalokasikan 64 M. Dengan ukuran tersebut sebenarnya untuk program biasa mungkin sudah mampu menampung banyak objek baik itu objek berupa string. Namun, kadang untuk operasi tertentu terutama yang terkait dengan teks seperti yang hendak saya lakukan, jumlah tersebut ternyata masih kurang.

Nah, ternyata disinilah peran dari Garbage Collector pada Java. Ya, Garbage Collector lah yang bertanggung jawab dalam membersihkan Java Heap Memory ini. Secara singkat, dalam Java Heap Memory ini, objek yang ada di dalamnya dibagi dalam tiga generasi. Pembedaan generasi inilah yang akan digunakan dalam proses Garbage Collector. Jadi analogi mudahnya, Gerbage Collector inilah yang akan menghilangkan objek-objek pada Java Heap Memory yang telah mati sehingga tempat memori tersebut dapat digunakan kembali oleh objek lainnya. Kapan-kapan saya akan bercerita mengenai Garbage Collector.

Ada beberapa tips ketika menghadapi hal ini, antara lain : Continue reading

Mencari fungsi getch di linux???

Buat yang terbiasa koding dengan windows pasti sudah familiar dengan fungsi getch() yang disediakan oleh librari pada c++. Sayangnya fitur ini tidak ditemukan saat kita koding dengan c++ atau c di lingkungan ubuntu.

Untuk menanggulangi hal tersebut kita dapat membuat fungsi getch sendiri dengan memanfaatkan librari c/c++ pada linux. berikut ini kode mudahnya untuk fungsi getch:

——————————————————————————————

#include <stdio.h>
#include <termios.h>
#include <unistd.h>

int getch( ) {
struct termios oldt,
newt;
int            ch;
tcgetattr( STDIN_FILENO, &oldt );
newt = oldt;
newt.c_lflag &= ~( ICANON | ECHO );
tcsetattr( STDIN_FILENO, TCSANOW, &newt );
ch = getchar();
tcsetattr( STDIN_FILENO, TCSANOW, &oldt );
return ch;
}

—————————————————————————————————-

Kendala selain itu adalah penggunaan ASCII yang tidak bisa dilakukan di linux untuk ASCII yang besar-besar memaksa kita menggunakan unicode. Mencetak unicode di layar dapat dilakukan dengan meng-include “locale.h” pada file header dan sebelum melakukan print unicode, lakukan pemuatan unicode dengan menuliskan setlocale(LC_ALL, “ctype”); untuk semua unicode cukup menggunakan setlocale(LC_ALL, “”);.

Penulisan unicode dengan sintax printf(“%lc”, unicode);. Unicode di sini dalam hexadesimal.

Untuk tabel unicode lengkapnya bisa dilihat di Table Unicode.

Oiya, untuk baca tabelnya cukup

lihat kode tabel sebelah kiri dan atas. Contoh untuk menuliskan huruf  ‘A’ code unicodenya = 0×0041.

Dan seterusnya….