Submenu yang tertutupi oleh flash

May 1, 2008

Saat menggunakan menu drop down TransMenus, ada beberapa sub menu yang tidak terlihat karena tertutupi oleh banner flash yang posisinya persis dibawah menu itu dan ini cukup mengganggu. Usut punya usut ternyata perlu ditambahkan opsi ‘wmode’=>’opaque’ di paramater flashnya. Dengan plugin sfSwfObjectHelperPlugin di Symfony settingnya menjadi
use_helper( 'Flash' );
<?php $id = ‘banner_atas’; ?>
<?php
$params = array( ‘id’ => ‘flash_movie’,
‘movie’ => ‘conto_iklan’,
’size’ => ‘417×50′,
‘version’ => ‘8′,
‘background_color’ => ”,
‘params’ => array( ‘allowScriptAccess’ => ’sameDomain’,'quality’ => ‘high’,'wmode’=>’opaque’ ),
‘create_proxy’ => true );
?>
<div style=”position:relative; top:4px; left:10px;”>
<?php echo flash_object( $id, $params ); ?>
</div>

dan sub menu drop down akan muncul berada diatas tampilan flash


Virtual Host di Apache

April 1, 2008

Berikut adalah setting virtual host di apache yang biasa saya gunakan bersama Symfony

NameVirtualHost 127.0.0.1

<VirtualHost 127.0.0.1:80>
DocumentRoot “C:\AppServ\www”
ServerName localhost
</VirtualHost>

<VirtualHost 127.0.0.1:80>
DocumentRoot “C:\AppServ\www\cms3\web”
ServerName www.cms3.com
<Directory “C:\AppServ\www\cms3\web”>
Options Indexes FollowSymLinks Includes
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.1
DirectoryIndex index.php
</Directory>

DirectoryIndex index.php
Alias /sf C:\AppServ\php5\PEAR\data\symfony\web\sf

<Directory “C:\AppServ\php5\PEAR\data\symfony\web\sf”>
AllowOverride All
Allow from All
</Directory>

</VirtualHost>

<VirtualHost 127.0.0.1:80>
DocumentRoot “C:\AppServ\www\cmsku\web”
ServerName www.cmsku.com
<Directory “C:\AppServ\www\cmsku\web”>
Options Indexes FollowSymLinks Includes
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.1
DirectoryIndex index.php
</Directory>

DirectoryIndex index.php
Alias /sf C:\AppServ\php5\PEAR\data\symfony\web\sf

<Directory “C:\AppServ\php5\PEAR\data\symfony\web\sf”>
AllowOverride All
Allow from All
</Directory>

</VirtualHost>

Juga isi dari file hosts di lingkungan windows (C:\WINDOWS\system32\drivers\etc\hosts)

127.0.0.1 localhost
127.0.0.1 www.cms3.com
127.0.0.1 www.cmsku.com


802.11a, 802.11b atau 802.11g

December 15, 2007

802.11a, b atau g, secara singkat yang membedakan ketiganya adalah :
802.11a :

  • Memakai frekuensi 5 GHz
  • Kecepatan sampai dengan 54 Mbps
  • Jangkauan mencapai 75 feet (22 meter)

802.11b :

  • Memakai frekuensi 2.4 GHz
  • Kecepatan sampai dengan 11 Mbps
  • Jangkauan mencapai 150 feet (45 meter)

802.11g :

  • Memakai frekuensi 2.4 GHz
  • Kecepatan sampai dengan 54 Mbps
  • Jangkauan mencapai 100 feet (30 meter) atau 150 feet (45 meter) dengan mengurangi kecepatannya
  • Kompatibel dengan 802.11b pada kecepatan 11 Mbps

Stored Procedure di Database

November 28, 2007

Kelebihan query di stored procedure dibandingkan dengan query yang diletakkan di aplikasi tier adalah

  • membuat proses query SQL menjadi terpusat di data tier
  • mengurangi kepadatan trafik jaringan untuk proses query, terutama bila query itu dilakukan berulang-ulang
  • menjadikan kode query menjadi bersifat reusability atau bisa dipakai ulang untuk proses yang lain tanpa membuat query yang sama lagi
  • dapat melakukan perubahan di data tier tanpa mengubah kode di sisi aplikasi tier
  • memiliki stabilitas waktu respon untuk tiap query-nya

Di Borland Delphi, stored procedure digunakan dengan perantara TADOStoredProc dengan database yang dipakai sesuai dengan property ‘ConnectionString’ yang diset pada komponen ini dan kemudian nama stored procedure (property ‘ProcedureName’) serta parameter-parameternya (property ‘Parameters’) dapat langsung diakses dari sisi client

Berikut adalah contoh stored procedure dengan T-SQL di MSSQL Server untuk proses insert, update dan delete data table :

create procedure retrieveData
@select varchar(1),
@id int = null,
@cat_id int = null,
@dateposted datetime = null, Read the rest of this entry »


Interpreter dan Compiler

November 28, 2007

Pemrograman high-level dibagi menjadi dua, interpreted dan compiled. Interpreted diubah ke bahasa mesin dengan bantuan program lain, yaitu interpreter. Interpreter mengubah setiap statement program ke bahasa mesin dan langsung mengeksekusinya sebelum statement selanjutnya di proses. Compiled diubah ke bahasa mesin oleh compiler. Compiler mengubah semua statement program ke bahasa mesin dahulu sebelum dieksekusi, hasil proses compiler ini biasa disebut sebagai executable
Interpreted harus selalu diubah ke bahasa mesin dahulu untuk setiap pemakaiannya (running), Compiled diubah ke bahasa mesin hanya sekali dan dapat digunakan terus tanpa mengubah ke bahasa mesin lagi.


Delphi Thread

November 21, 2007

Dengan thread, aplikasi dapat mengerjakan satu atau lebih perintah secara bersama, dalam artian perintah satu tidak menunggu selesainya perintah sebelumnya bila akan dikerjakan. Variabel-variabel dalam tiap perintah dapat independen dan tidak saling mengganggu untuk tiap-tiap perintah yang ada. Sistem operasi yang mendukung multitasking mengijinkan perintah-perintah dikerjakan secara bersamaan dengan thread.

Thread dipakai bila:

  • diperlukan proses-proses yang independent, misalnya : hardware pooling, animasi obyek
  • aplikasi dengan multiprosessor
  • diperlukan proses ‘idle’ dalam waktu kerjanya
  • ingin belajar thread tentunya..

Contoh sederhana ini menggunakan tiga thread yang masing-masing melakukan counter mandiri dari 0 ke 100000

Inisialisasi thread :
type
TThreadSatu = class(TThread)
private
VarLokal: Integer; Read the rest of this entry »


Delphi Client - Server dengan TServerSocket dan TClientSocket

November 21, 2007

Sebagai contoh, server diidentifikasikan oleh 4 byte IP address (misal 10.231.14.124) dengan port yang disediakan untuk melayani client (misal port 1234).
Ketika client (misal 10.231.12.12) melakukan koneksi ke server itu melalui client socket 983, server membuat socket baru yang unik (server client socket) yang meng-handle koneksi client itu misalnya 755. Dan koneksi yang ada adalah server 10.231.14.124 (755) - client 10.231.12.12 (983),

Bila ada client melakukan koneksi ke server port 1234 lagi (misal client 10.231.12.14 dengan socket 67 8) maka hal yang sama terjadi lagi, koneksi bertambah menjadi server 10.231.14.124 (755) - client 10.231.12.12 (983), server 10.231.14.124 (757) - client 10.231.12.14 (678), Bila ada client melakukan koneksi lagi menjadi
server 10.231.14.124 (755) - client 10.231.12.12 (983),
server 10.231.14.124 (757) - client 10.231.12.14 (678),
server 10.231.14.124 (761) - client 10.231.12.17 (37 8)

Yang dilakukan server dan client dalam proses ini adalah:
Untuk Server:

  • Socket membuat record dan menunjuk handle pada record ini
  • Melakukan proses bind yang menyiapkan alamat dari server untuk menerima permintaan data
  • Listen, siap menerima client
  • Ketika client datang, menerima dan membuat socket untuk client
  • Menerima dan mengirim data
  • Menutup (close) koneksi client

Untuk Client:

  • Socket membuat record dan menunjuk handle pada record ini
  • Melakukan koneksi ke server dan menunggu hingga server membuat socket baru
  • Menerima dan mengirim data
  • Menutup (close) koneksi client

Contoh berikut implementasi menggunakan TServerSocket untuk server dan TClientSocket untuk client. Prosesnya adalah, client meminta data tertentu dan server merespond dengan data string dengan panjang data 325 char.

Server :
unit Servunit;

interface
uses
Read the rest of this entry »


Dua Form yang beriringan

November 21, 2007

Kadangkala diperlukan dua buah form, misalnya form1 dan form2 berjalan beriringan. Maksudnya beriringan yaitu bila form1 sebagai form utama dipindah/didrag maka form2 juga mengikuti pergerakan form1 itu kemanapun posisi pindahnya ya.. form2 yang setia sama form1 ceritanya.
Prosesnya pada message WM_MOVE yang muncul bila form1 digerakkan dan fungsi windows API MoveWindow untuk menggerakkan form2 ke posisi form1 yang baru :
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
{ meng-override message WM_MOVE}
procedure WMMove(var Msg: TWMMove); message WM_MOVE;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
begin
form2.Show;
end;

{procedure berikut akan dijalankan bila form1/window utama digerakkan/moved}
procedure TForm1.WMMove(var Msg: TWMMove);
begin
{if the toolbar window exists...}
if Form2<>nil then
{...move the toolbar window alongside the main window.}
MoveWindow(Form2.Handle, Form1.Left+Form1.Width+5, Form1.Top, Form2.Width,
Form2.Height, true);
end;

end.


Development phases

November 12, 2007
  • Phase 1. Analyze the requirement : Identify what your program is required to do
  • Phase 2. Design the Program : Determine how the program will meet the requirements
  • Phase 3. Implement the design : Write the code
  • Phase 4. Test your program : Make sure it works for all legal entries

CD NetBeans IDE 5.5.1

November 8, 2007

NetBeans CD

Akhirnya datang juga kiriman CD NetBeans IDE 5.5.1, CD ini berisi antara lain

  • NetBeans IDE 5.5.1 Multilingual (Microsoft Windows, Linux, Solaris(TM) SPARC, Solaris(TM) x86, Mac OS X)
  • NetBeans Mobility Pack for NetBeans IDE 5.5.1 Multilingual (Microsoft Windows, Linux)
  • NetBeans Profiler for NetBeans IDE 5.5.1 Multilingual (Microsoft Windows, Linux, Solaris(TM) SPARC, Solaris(TM) x86, Mac OS X)
  • Sun Java System Application Server Platform Edition 9.0 Update 1 (Microsoft Windows, Linux, Solaris(TM) SPARC, Solaris(TM) x86, Mac OS X)
  • NetBeans 5.5.1 Documentation

Thank’s Sun..