tag:blogger.com,1999:blog-146458282023-11-15T08:55:32.395-08:00darjah satuAda sesapa masuk darjah dua terus?Unknownnoreply@blogger.comBlogger7125tag:blogger.com,1999:blog-14645828.post-14944604235243594512009-11-18T01:21:00.000-08:002009-11-18T01:42:35.045-08:00Pemasangan Glassfish v3 (preview version)Salam,<br /><br /><a href="http://wiki.glassfish.java.net/">Glassfish</a> ialah satu product <span style="font-style: italic;">open source</span> dikeluarkan oleh Sun Microsystem untuk memberi kemudahan kepada pengguna untuk mengimplementasikan JEE 5/6.<br /><br />Kali ini saya aturkan langkah-langkah untuk pemasangan Glassfish di atas Fedora Core 11.<br /><ol><li>Muat turun Glassfish di alamat <a href="http://download.java.net/glassfish/v3/promoted/">ini</a>. <span style="font-style: italic;">File</span> yang saya gunakan ialah<br /><pre><a href="http://download.java.net/glassfish/v3/promoted/latest-glassfish-unix.sh" name="latest-glassfish-unix.sh">latest-glassfish-unix.sh</a> </pre></li><li>Setelah selesai muat turun, tukar mod +x untuk menjadikan ia <span style="font-style: italic;">executable</span>.</li><li>"sh latest-glassfish-unix.sh" di dalam <span style="font-style: italic;">command prompt</span> anda.</li><li>Ikut langkah pemasangan yang disediakan, <span style="font-style: italic;">username</span>, termasuk pendaftaran Sun Community. Saya memasangnya di direktori "/opt/glassfish"<br /></li><li>Setelah selesai pemasangan, untuk memulakan (startup) Glassfish, gunakan command ini: "/opt/glassfish/bin/asadmin start-domain domain1" di mana domain1 adalah folder baru</li><li>Buka browser dan masukkan alamat ini: http://localhost:8080/ dan http://localhost:4848/ untuk pengurusan server</li></ol>Sekian.<br /><br />Rujukan:<br />1) http://www.scribd.com/doc/19252518/Step-by-Step-Install-Guide-Sun-GlassFish-v3-on-Linux-v10<br />2) http://tuxtraining.com/2008/11/14/installing-glassfish-2-on-ubuntu-710Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-14645828.post-868156403065185152009-09-27T21:10:00.000-07:002009-09-27T21:27:50.576-07:00Pasang JDK untuk Fedora 11<span style="font-size:100%;">Salam,<br /><br />Novice Linux user macam saya ni kena tulis nota banyak2 pasal selalu lupa. Ni macam mana nak setup JDK pulak. Hari tu dah install JDK 1.6 ni tapi tak boleh run java dr command prompt/console.<br /><br /></span><ol><li>Download latest JDK (http://java.sun.com/javase/downloads/index.jsp). Yang saya guna version 1.6.0_16 dan install jdk-6u16-nb-6_7_1-linux-ml.sh (macam yg saya guna ni)</li><li>Cari lokasi JDK yg dah installed. # updatedb; locate javac | grep bin<br />/usr/local/jdk1.6.0_16/bin/javac<br /></li><li># alternatives -- install /usr/bin/java java /usr/local/jdk1.6.0_16/bin/java 100</li><li># alternatives -- install /usr/bin/javac javac /usr/local/jdk1.6.0_16/bin/javac 100</li><li># alternatives -- install /usr/bin/jar jar /usr/local/jdk1.6.0_16/bin/jar 100</li><li># /usr/sbin/alternatives --config java (dan buat utk ketiga2 command dan pilih yg sesuai)</li><li># java -version (utk lihat sama ada betul JDK yg installed)</li></ol>Terima KasihUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-14645828.post-35831129287611015922009-09-23T01:37:00.000-07:002009-12-21T22:25:08.419-08:00Maxis Broadband with Linux (Fedora 11)Salam 'Eidul Fitr kepada semua,<br /><br />Sudah berkurun tak kemaskini blog ni, tapi kali ni tak berkaitan langsung dengan <span style="font-style: italic;">programming</span>.<br /><br />Sudah 2,3 minggu cuba buat sambungan guna Maxis Broadband atas Fedora 11. Modem yang digunakan di sini ialah Huawei E1762. Alhamdulillah, baru dapat <span style="font-style: italic;">resolved.</span><br /><br /><span style="font-style: italic;">Steps</span> (ni berdasarkan http://petermag.blogspot.com/ , thanks Peter)<br /><br /><ol><li>yum install usb_modeswitch</li><li>Ubah/tambah /etc/usb_modeswitch.conf; kat bawah ni saya punya: <blockquote>#Huawei E1762<br />DefaultVendor= 0x12d1<br />DefaultProduct= 0x1446<br />;DefaultProduct= 0x1003<br /><br />TargetVendor= 0x12d1<br />;TargetProduct=0x1003<br />TargetProduct= 0x1446<br /><br /># choose one of these:<br />;DetachStorageOnly=1<br />;HuaweiMode=1<br /><br />MessageEndpoint=0x01<br />MessageContent="5553424300000000000000000000001106<br />0000000000000000000000000000"</blockquote><br /></li><li>vi /etc/udev/rules.d/15-huawei-e1762.rules<br />SUBSYSTEM=="usb", SYSFS{idProduct}=="1446", SYSFS{idVendor}=="12d1", RUN+="/lib<br />/udev/usb_modeswitch"<br /></li><li><strike>Restart untuk aktifkan</strike> Tak payah restart, cabut dan masukkan kembali (untuk aktifkan)<br /></li><li>Guna NetworkManager; Klik kanan untuk Edit Connection, isikan butiran yang perlu. (Sila rujuk manual Maxis Broadband)</li><li>Voila....</li></ol>Sekian Terima Kasih....Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-14645828.post-1136938779788895192006-01-10T16:09:00.000-08:002006-01-10T16:20:30.070-08:00Template Method (Roti lagi...)Assalamu'alaikum,<br />Salam Ei'dul Adha utk semua muslimin/muslimat, selamat bercuti utk yg bukan muslim.<br /><br />Finished this chapter during the holiday, from this <a href="http://wickedlysmart.com/HeadFirst/HeadFirstDesignPatterns/HeadFirstPatternsIndex.html">book</a><br /><br />From <a href="http://home.earthlink.net/%7Ehuston2/dp/patterns.html">Huston</a><br />Define the skeleton of an algorithm in an operation, deferring some steps to client subclasses. Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm's structure.<br /><br />Lebih kurang sama jer definition.<br /><br />Kita ada steps dlm sesuatu tugas/kerja, tapi mcm ada yg sama prosedur utk membuat sesuatu. Selalu jugak lepak kedai mamak usyar (tengok) depa ni buat roti. Most of it, sama jer step dia, so came out with this :<br /><br />abstract class Roti {<br /> final void siapOrder() {<br /> uliTepung();<br /> tebar();<br /> tambahPerisa();<br /> goreng();<br /> letakDlmPinggan();<br /> }<br /> <br /> void uliTepung() {<br /> System.out.println("Tgh uli tepung");<br /> }<br /> <br /> void tebar() {<br /> System.out.println("Tebar lebar2");<br /> }<br /> <br /> abstract void tambahPerisa();<br /> <br /> void goreng() {<br /> System.out.println("Letak minyak dan goreng");<br /> }<br /> <br /> void letakDlmPinggan() {<br /> System.out.println("Potong & letak dlm pinggan yg BERSIH");<br /> }<br /> <br />}<br /><br />class RotiPisang extends Roti {<br /> public RotiPisang() {<br /> System.out.println("\n\nSedia Roti Pisang");<br /> }<br /> <br /> void tambahPerisa() {<br /> System.out.println("Potong pisang nipis2 dan tambah");<br /> }<br />}<br /><br />class RotiSardin extends Roti {<br /> public RotiSardin() {<br /> System.out.println("\n\nSedia Roti Sardin");<br /> }<br /> <br /> void tambahPerisa() {<br /> System.out.println("Tambah sardin");<br /> }<br /> <br />}<br /><br />public class RotiTemplateDemo {<br /> public static void main(String[] args) {<br /> RotiPisang rotiPisang = new RotiPisang();<br /> rotiPisang.siapOrder();<br /> <br /> RotiSardin rotiSardin = new RotiSardin();<br /> rotiSardin.siapOrder();<br /> }<br />}<br /><br />Yang membezakan antara Roti Pisang & Roti Sardin, perisa dia saja. So kita asingkan perisa dia dlm concrete class tetapi steps dia sampai siap roti tu, sama. Sebab tu la kita letak <span style="font-weight: bold;">final </span>utk stress kan yg prosedur tak boleh ubah.<br /><br />Wassalam.<br />p/s : next mungkin kita boleh letak hook (utk bezakan pilihan customer)Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-14645828.post-1136438764194411312006-01-04T21:11:00.000-08:002006-01-04T21:27:47.700-08:00Roti Telur, anyone ?Assalamu'alaikum,<br /><br />Disebabkan first post cerita psl mamak, so kita ambik contoh makanan yg mamak buat, Roti Canai. Memang roti canai ni takkan terdapat di mana2 dlm dunia ni kecuali Malaysia. Originated from Malaysia. Berkat hasil usaha org kita (especially mamak) dlm menghasilkan variety roti canai, terhasillah contoh ni.<br /><br />abstract class Roti {<br /> String description = "Unknown Roti"; //tak tau lagi roti apa ni...<br /> public String getDescription() {<br /> return description;<br /> }<br /> public abstract double cost();<br />}<br /><br />class RotiKosong extends Roti {<br /> public RotiKosong() {<br /> description = "Roti";<br /> }<br /> public double cost() {<br /> return 0.5;<br /> }<br />}<br /><br />abstract class RasaDecorator extends Roti {<br /> public abstract String getDescription();<br />}<br /><br />class Telur extends RasaDecorator {<br /> Roti roti;<br /> <br /> public Telur(Roti roti) {<br /> this.roti = roti;<br /> }<br /> <br /> public String getDescription() {<br /> return roti.getDescription() + " Telur";<br /> }<br /><br /> public double cost() {<br /> return .30 + roti.cost();<br /> }<br />}<br /><br />class Bawang extends RasaDecorator {<br /> Roti roti;<br /> <br /> public Bawang(Roti roti) {<br /> this.roti = roti;<br /> }<br /> <br /> public String getDescription() {<br /> return roti.getDescription() + " Bawang";<br /> }<br /><br /> public double cost() {<br /> return .20 + roti.cost();<br /> }<br />}<br /><br />class Planta extends RasaDecorator {<br /> Roti roti;<br /> <br /> public Planta(Roti roti) {<br /> this.roti = roti;<br /> }<br /> <br /> public String getDescription() {<br /> return roti.getDescription() + " Planta";<br /> }<br /><br /> public double cost() {<br /> return .30 + roti.cost();<br /> }<br />}<br /><br /><br />class Pisang extends RasaDecorator {<br /> Roti roti;<br /> <br /> public Pisang(Roti roti) {<br /> this.roti = roti;<br /> }<br /> <br /> public String getDescription() {<br /> return roti.getDescription() + " Pisang";<br /> }<br /><br /> public double cost() {<br /> return .40 + roti.cost();<br /> }<br />}<br /><br />public class RotiDemo {<br /> public static void main(String[] args) {<br /> //roti telur saja<br /> Roti roti = new RotiKosong();<br /> roti = new Telur(roti);<br /> System.out.println(roti.getDescription()<br /> + " RM" + roti.cost());<br /> <br /> //my favourite, roti pisang<br /> roti = new RotiKosong();<br /> roti = new Pisang(roti);<br /> System.out.println(roti.getDescription()<br /> + " RM" + roti.cost());<br /> <br /> //roti telur campur bawang goreng dgn planta :-)<br /> roti = new RotiKosong(); <br /> roti = new Bawang(roti);<br /> roti = new Telur(roti);<br /> roti = new Planta(roti); //goreng dgn planta<br /> System.out.println(roti.getDescription()<br /> + " RM " + roti.cost());<br /> }<br />}<br /><br />Contoh ni menggunakan Decorator Pattern, kalau ikut <a href="http://home.earthlink.net/%7Ehuston2/dp/patterns.html">Huston</a>,<br />"Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality."<br /><br />Senang cerita, kita menggunakan decorator utk menambah sifat kepada sesuatu object (secara dinamik). Kalau ikut contoh di atas, cost adalah bergantung kpd setiap bahan yg digunakan. Maknanya, kalau kita ada tambahan bahan nak bg sedap lg roti, kita boleh tambah lg dan cost overall roti bertambah automatically. Kalau harga bahan2 naik, cthnya pisang, kita hanya ubah Pisang saja.<br /><br />Demikianlah adanya.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-14645828.post-1135808541373441482005-12-28T14:19:00.000-08:002005-12-28T17:35:47.366-08:00Chain of Responsiblity (CoR)Assalamu'alaikum,<br /><br />Dah lama jugak tak update sejak 1st post dulu, sibuk sesangat sejak masuk company baru ni.<br />Banyak benda kena belajaq :-)<br /><br />Apa dia CoR ni ? Salah satu pattern yg dlm category behavioral.<br />"Satu object handle specific request tanpa mengetahui apa yg dibuat oleh object lain. Kalau object tu tak blh handle, dia akan pass kpd object lain sampai jumpa"<br /><br />Cth code:<br />abstract class Mamak {<br /> Mamak mamak;<br /> public void assignMamak(Mamak mamak) {<br /> this.mamak = mamak;<br /> }<br /> public abstract void buatKerja();<br /> public abstract void ambikOrder(String order);<br />}<br /><br />class MamakRotiCanai extends Mamak {<br /> public void buatKerja() {<br /> System.out.println("roti canai siap !!!");<br /> }<br /> public void ambikOrder(String order) {<br /> if(order.equals("roti canai"))<br /> this.buatKerja();<br /> else<br /> if(mamak != null)<br /> mamak.ambikOrder(order);<br /> }<br />}<br /><br /><br />class MamakTehTarik extends Mamak {<br /> public void buatKerja() {<br /> System.out.println("teh tarik siap !!!");<br /> }<br /> public void ambikOrder(String order) {<br /> if(order.equals("teh tarik"))<br /> this.buatKerja();<br /> else<br /> if(mamak != null)<br /> mamak.ambikOrder(order);<br /> }<br />}<br /><br />public class MamakDemo {<br /> public static void main( String[] args ) {<br /> MamakTehTarik mamakTehTarik = new MamakTehTarik();<br /> MamakRotiCanai mamakRotiCanai = new MamakRotiCanai();<br /> //tgh buat rantaian...<br /> mamakTehTarik.assignMamak(mamakRotiCanai);<br /> <br /> String[] order = new String[] {"roti canai", "teh tarik", "pasembor"};//pasembor tak akan jumpa specific mamak<br /> for(int i = 0; i < order.length; i++) {<br /> String o = order[i];<br /> System.out.println("order " + o);<br /> mamakTehTarik.ambikOrder(o);<br /> }<br /> }<br />}<br /><br />p/s : Terima Kasih kpd en <a href="http://tulisaninsan.blogspot.com">Hamdi</a> di atas cth di atasUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-14645828.post-1121830261460072792005-07-20T11:33:00.000-07:002005-07-19T20:31:01.460-07:001st postAssalamu'alaikum, salam sejahtera...<br /><br />1st post, no more can I say...Unknownnoreply@blogger.com1