Archive for November, 2009

24
Nov
09

Efektif tapi tidak efisien

Saya sedang mengerjakan sebuah aplikasi berbasis web sekarang. Hasil akhirnya adalah sebuah aplikasi manajemen untuk suatu perusahaan. 3 modul besar utama yang dimiliki aplikasi ini, marketing, produksi dan akuntansi. Saya sudah sampai di modul produksi, tetapi masih cukup banyak kekurangan dengan validasi, dan kondisi-kondisi khusus yang dapat muncul kapan saja, dan membuat saya harus mencari pangkal permasalahannya dan mulai memperbaiki masalah tersebut. Baru saja saya mendapat masalah dengan fungsi update data, dimana fungsi itu terdapat dalam scope perulangan. Setiap rencana transaksi database yang akan terjadi memiliki sesi (session). Selama transaksi belum di commit. Rencana ini akan terus ada dalam sesi, hingga menyebabkan rencana trasaksi lain tidak dapat menggunakan sesi tersebut. Jika dipaksakan akan terjadi error (exception).

Pesan kesalahan (exception message):

org.hibernate.NonUniqueObjectException:
a different object with the same identifier value was already
associated with the session: [com.wii.elpro.entity.POInternal#6]

Ide yang pertama kali muncul adalah, saya harus membuat sesi baru untuk transaksi berikutnya dan biarkan transaksi yang lama tetap menggunakan sesi yang sebelumnya. Sayang sekali saya belum tidak menemukan bagaimana caranya. Saya harus memikirkan cara lain. Saya akan mencoba cara terpaksa. Transaksi harus di commit agar sesinya dapat dipakai transaksi lain. Konsekuensinya, dalam proses ini tidak boleh terjadi kesalahan, karena jika terjadi kesalahan di transaksi kedua atau ketiga, transaksi pertama tidak dapa di rollback, karena sudah di commit. Akibatnya data dalam database tidak konsisten.

Yah, cara ini efektif dan semua data dapat ter-update dengan benar. Tapi sayang cara ini membawa konsekuensi… Konsekuensi yang paling mungkin tidak terpenuhi, dan saya pikir tambahan fungsi clear() dan commit() tak terlihat baik. Cara yang tidak efisien. 😦

 

//

Advertisements
20
Nov
09

Dropdown Menu

Contoh dropdown menu ini bisa tampil dengan baik di Firefox, IE, Safari dan Chrome.

Kode html, tampilan awal menu. Sampai di sini tampilan masih seperti list biasa.

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="dropdown.css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="makedropdown.js"></script>
<title>Drop Down Example</title>
</head>

<body>
<ul id="cssdropdown">
 <li>
 <div>Search Engines</div>
 <ul>
 <li><a href="http://google.com/"><div>Google</div></a></li>
 <li><a href="http://yahoo.com/"><div>Yahoo</div></a></li>
 <li><a href="http://live.com/"><div>Live Search</div></a></li>
 </ul>
 </li>
 <li>
 <div>Shopping</div>
 <ul>
 <li><a href="http://amazon.com/"><div>Amazon</div></a></li>
 <li><a href="http://ebay.com/"><div>eBay</div></a></li>
 <li><a href="http://www.kaskus.us/forumdisplay.php?f=25"><div>Kaskus FJB</div></a></li>
 </ul>
 </li>
</ul>

</body>

</html>

Kode javascript (makedropdown.js), sampai di sini item menu tersebut sudah dapat bergerak naik turun tapi masih belum benar:

// JavaScript Document

$(document).ready(function(){
 // jika li dengan class headlink di hover
 $('li.headlink').hover(
 function() {
 $('ul', this).slideDown();
 },
 function() {
 $('ul', this).slideUp();
 });
});

Kode css (dropdown.css), tambahkan kode css untuk membuat dropdown menu tampil dengan benar:


/* CSS Document */

body { font-family:Calibri, Arial; }

a { text-decoration:none; }

/* padding-left:0 remove li text indent */
ul { padding:0; margin:0; }

li { list-style-type:none; }
li.headlink { float:left; margin-right:2px; width:120px; }
li.headlink ul { display: none; }

.menuparent { padding:5px; border:1px solid #000; background:url(bg.png); color:#FFFFFF; cursor:pointer; }
.menuparent:hover { background:url(bg-hover.png); }

.menuitem { padding:5px; border:1px solid #000; margin-top:1px; background:url(bg.png); color:#FFFFFF; }
.menuitem:hover { background:url(bg-hover.png); }

Setelah ditambahkan sedikit gambar untuk background, seperti inilah hasil akhirnya.

Semua file diatas simpan dalam direktori yang sama. Jangan lupa sertakan file jquery dalam direktori tersebut. Selamat mencoba.

17
Nov
09

Load font dari source yang sudah ditentukan.

Supaya aplikasi web bisa me-load font dari direktori yang kita inginkan. Sehingga dimanapun web itu dibuka akan tetap menggunakan font yang sama.


@font-face {
 font-family: yourFontName;
 src: url(/location/of/font/FontFileName.ttf) format("truetype");
}

/* Then use it like you would any other font */
.yourFontName { font-family:yourFontName, verdana, helvetica, sans-serif;}
17
Nov
09

Mengetahui secara utuh

Untuk mengetahui berapa persen bagian software yang sudah selesai dikerjakan, saya harus mengetahui ukuran software itu sendiri. “Saya tidak mungkin mengatakan sesuatu tinggal setengah, jika saya tidak mengetahui bagaimana bentuk utuhnya”.

😐