Friday, July 30, 2010

liburan ngapain.

liburan ini intinya ada 2 macam kegiatan di lab yaitu:

1. baca paper yang panjang bener
2. bikin simulasi harddisk

nah untuk baca paper ini, sampe sekarang blom beres2 karena ga ditagih2, tapi udah mulai gw cicil sih, mudah2an bisa paham segera. dan bisa bikin presentasi mengenai itu.

bikin simulasi. nah walo uda berjalan 1 bulan, bikin simulasi sampe sekarang blom mencapai titik di mana simulasinya bisa jalan dengan lancar ataua hasilnya bisa dinikmati dengan mantap, tapi gpp yang penting tiap minggu ada kemajuan, yg jadi concern sekarang adalah gw pengen agar pembuatan simulasi ini bisa mengikuti pola pengembangan test driven development yaitu bikin testcase dulu baru bikin kodingannya, tapi karena kodingan udah terlanjut dibuat ya gw musti migrasi.

test driven development cukup simple di netbeans, karena udah integrated semuanya, kita tinggal klak klik aja udah jadi deh kerangka untuk ngoding testcase dan lain2. mudah2an hari senin ini bisa jalan semua dengan lancar.

mungkin di blog berikutnya saya akan tulis tutorial untuk melakukan test driven developent di netbeans

Wednesday, July 28, 2010

Move the line

playing with java Graphics2D and Line2D


import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;

public class ShapeTest extends JLabel implements MouseListener, MouseMotionListener
{
    Line2D line = new Line2D.Float(20,20,200,200);
   
    Line2D activeShape;
   
    boolean dragging;
   
    int startX,startY;
    int startShapeX,startShapeY;
    int endShapeX,endShapeY;
   
    public ShapeTest()
    {
        addMouseListener(this);
        addMouseMotionListener(this);
    }
   
   
    public void paint(Graphics g)
    {
        Graphics2D g2 = (Graphics2D) g;
        g2.draw(line);
    }
    public void mouseExited(java.awt.event.MouseEvent me)
    {
    }
   
    public void mouseEntered(java.awt.event.MouseEvent me)
    {
    }
    public void mouseReleased(java.awt.event.MouseEvent me)
    {
        dragging = false;
    }
    public void mouseClicked(java.awt.event.MouseEvent me)
    {
    }
    public void mousePressed(java.awt.event.MouseEvent me)
    {
        int x = me.getX();
        int y = me.getY();
       
        System.out.println("x="+x+" y="+y);
        if(line.intersects(x,y,1,1)) System.out.println("okeh lah kalo begitu");
        //else System.out.println("ga oke lah kalo begitu");
       
        activeShape = getShapeAtLocation(x, y);
        if(activeShape!=null)
        {
            //prepare to drag
            dragging = true;
            startX = x;
            startY = y;
            startShapeX = (int)activeShape.getX1();
            startShapeY = (int)activeShape.getY1();
            endShapeX = (int)activeShape.getX2();
            endShapeY = (int)activeShape.getY2();
        }
    }
   
    public void mouseMoved(java.awt.event.MouseEvent me)
    {
       
    }
   
    public void mouseDragged(java.awt.event.MouseEvent me)
    {
        int x = me.getX();
        int y = me.getY();
       
        int dx = x-startX;
        int dy = y-startY;
        //System.out.println(me);
        if(dragging)
        {
            line.setLine(startShapeX+dx, startShapeY+dy, endShapeX+dx,endShapeY+dy);
            repaint();
        }
    }   
   
    private Line2D getShapeAtLocation(int x, int y)
    {
        if(line.intersects(x,y,1,1))
        {
            return line;
        }
        return null;
    }
   
    public static void main(String args[])
    {
        JFrame f = new JFrame("kambing");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setSize(500,500);
        f.setVisible(true);
        f.getContentPane().add(new ShapeTest());
    }
}

Menulis dan membaca file property di java

Java menyediakan fasilitas untuk menulis dan membaca file properties, buat yang belum tau file properties ini biasanya digunakan untuk menyimpan konfigurasi sederhana dari suatu program, dan bentuk standarnya adalah seperti berikut

[field]=[value]

field adalah nama dari properti dan value adalah isi dari properti.

contoh file properties

hello.properties
#--start--
nama=arfan
tempat=jakarta
hobi=makan
#--end--

nah kalau kita udah punya file hello.properties ini coba buat program untuk membaca atau menulis ke/dari file properties

import java.io.*;
import java.util.*;

public class DiskProperties
{
    public static void main(String args[])
    {
        Properties properties = new Properties();
        try {
            properties.load(new FileInputStream("hello.properties"));
            String nama = properties.getProperty("nama");
            String tempat = properties.getProperty("tempat");
            String hobi = properties.getProperty("hobi");
            String salam = properties.getProperty("salam");
           
            System.out.println(nama);
            System.out.println(hobi);
            System.out.println(tempat);
            System.out.println(salam);
           
        } catch (IOException e) {
       
        }
        // Write properties file.
        try {
            properties.setProperty("salam", "hallo");
            properties.store(new FileOutputStream("hello.properties"), null);
        } catch (IOException e) {
        }
    }
}

parkir

http://us.detiknews.com/read/2010/07/28/080815/1408165/10/dprd-asal-kendaraan-hilang-diganti-tarif-parkir-naik-tak-masalah?991102605


saya suka kalo nganalisis yang begini-begini, kira2 apa yang bakal terjadi kalau pengelola parkir kendaraan harus mengganti kendaraan yang hilang di tempat parkir.

kira-kira yang terjadi adalah:

1. tarif parkir akan naik
2. security dari tempat parkir akan ditingkatkan

nah implikasi selanjutnya dari [1], misalkan tarif parkirnya naik secara signifikan maka mungkin saja orang akan lebih suka naik kendaraan umum dibanding musti parkir, tapi ini lagi-lagi tergantung pilihan si pengendara dan juga seberapa besar naiknya tarif parkir.

kemungkinan yang terjadi dari [2] adalah industri security akan meningkat, akan banyak cctv, webcam dan juga perangkat-perangkat pendukung lainnya terpasang di setiap tempat parkir, sistem perekaman, dan juga identifikasi akan lebih canggih, dan ini akan membawa konsekuensi tumbuhnya inovasi-inovasi pada bidang keamanan tempat parkir.

Tuesday, July 27, 2010

Posting ke wordpress dari kodingan java

untuk lengkapnya silahkan baca ini

http://codex.wordpress.org/XML-RPC_Support
http://www.franzone.com/2007/08/03/would-you-like-to-post-to-wordpress-from-java/


libnya cari sendiri tapi kalo ga ketemu silahkan pakai yg ini
http://www.ziddu.com/download/10912941/redstone-simple-xmlrpc-1.0.zip.html


wordpress menyediakan fasilitas buat usernya supaya bisa dikendaliin dengan menggunakan xml-rpc, dengannya kita bisa melakukan posting dengan menggunakan aplikasi client yang bisa dibuat sendiri berikut adalah contoh aplikasi untuk melakukan posting ke suatu blog wordpress



import redstone.xmlrpc.XmlRpcClient;
import java.util.HashMap;


public class WordpressPost
{
    public static void post(String title, String content)
    {
      String sXmlRpcURL = "";
      String sUsername = "";
      String sPassword = "";

     
        // Hard-coded blog_ID
      int blog_ID = 1;

      // XML-RPC method
      String sXmlRpcMethod = "metaWeblog.newPost";

      // We'll hard-code our blog content for now as well
      String sContent = content;
      String sTitle = title;

      // Create our content struct
      HashMap hmContent = new HashMap();
      hmContent.put("title", sTitle);
      hmContent.put("description", sContent);

      // You can specify whether or not you want the blog published immediately
      boolean bPublish = true;

      // Try block
      try
      {
        // Create the XML-RPC client
        XmlRpcClient client = new XmlRpcClient( sXmlRpcURL, false );

        // Make our method call
        Object token = client.invoke( sXmlRpcMethod, new Object[] { new Integer( blog_ID ), sUsername, sPassword, hmContent, new Boolean( bPublish ) } );

        // The return is a String containing the postID
        System.out.println( "Posted : " + token.toString() );
      }

      // Catch exceptions
      catch( Exception e )
      {
        e.printStackTrace( System.err );
      }
       
    }
}

Monday, July 26, 2010

binatang

binatang yang paling kejam?

ayam bakar kampung

Saturday, July 24, 2010

Rejeki BNI Taplus

beberapa hari yg lalu saya mendapat email dari rejeki.bnitaplus@bni.co.id
berjudul Rejeki BNI Taplus - Tarik Rejeki Menariknya untuk Bpk/Ibu Abdul Arfan

Rejeki BNI Taplus
Perbanyak Transaksinya
Tarik Rejeki Menariknnya!


katanya hadiahnya adalah
- 8 toyota alphard
- 8 harley davidson
- 88 honda freed
- 888 honda scoopy


ya mudah2an aja dapet alphard

masak ikan

bahan:

ikan jenis apa saja, soalnya saya juga ga tau jenis2 ikan
bumbu, yang enak sih yg pedes-pedes gitu
air secukupnya

cara masak:
masukkan ikan bumbu dan air ke tupperware yang kompatibel sama microwave, tutup tupperwarenya
masukkan ke microvawa terus masak selama 10 menit

Thursday, July 22, 2010

trik comment di java

berikut adalah trik untuk mematikan atau menyalakan bagian pada program java

/**[area x]/
[area y]
/**/


nah di 'area x' bisa di kasih spasi sehingga 'area y' berubah menjadi komentar
kalau area x tidak dikasih spasi maka 'area y' akan menjadi aktif.

ya gitu aja (hahahaha)

salah ucap presenter jak tv

ini video bener apa rekayasa ya?

ini video untuk dewasa


tambah sama dengan kali

Dulu waktu smp pernah menemukan persoalan kira-kira kayak begini

a+a = a*a

cara memecahkannya kan gampang tuh tinggal di terusiin aja ketemunya begini

2a=a^2

bagi 2 sisi dengan a

2=a

ataua a=2


dan memang kenyataanya 2+2=4+4

persoalan berlanjut menjadi seperti berikut:

a+b=a*b

coba kita cari hubungan antara a dan b yang memenuhi persamaan tadi dengan kata lain cari nilai a dalam b atau sebaliknya.

a+b=a*b
a=a*b-b
a=b*(a-1)
a/(a-1)=b

b=a/(a-1)

dari sini bisa kita lihat kalau nilai a nya 2 maka nilai b adalah 2/(2-1) = 2 juga

Rock Scissor Paper in Indonesia



Indonesian have their own kind of doing rock scissor paper it is usually called 'suit' in jakarta (my home town), suit is just like rock scissor paper but it use different analogy, instead of using dead things like rock scissor and paper it uses the 3 living thing human, ant, elephant.

the pointing finger is human, little finger is ant, and thumb is elephant

the rule is human beats ant, ant beats elephant, elephant beats human.

oh yeah, and the rock scissor paper game in my home town it is called 'suit cina'

Wednesday, July 21, 2010

test latex di blog

ini test latex di blog
ngeditnya pake ini
http://www.hamline.edu/~arundquist/equationeditor/


coba dulu


 

Saya dan akar kuadrat

jadi teringat waktu dulu masih sekolah di madrasah ibtidaiyah (setingkat sd) kelas 6 di akhir2 sekolah (bentar lagi masuk smp) saya dihadapkan pada persoalah yang disebut sebagai akar kuadrat.

saat itu diajarkan kira-kira seperti ini, akar dari x adalah y dimana y*y = x

dan dari situ dicoba2 deh ditanya

akar dari 4 berapa? 2
akar dari 9 berapa? 3

dan begitu seterusnya

tapi yang mengganjal selama pelajaran saya tidak dikasih tau BAGAIMANA mencari akar kuadrat itu. ya mungkin anda bisa menjawab ya dari definisi itu tadi. tapi itu adalah definisi ataua WHAT dari persoalan bukan HOW.

saya bertanya ke sana kemari jawabannya tetap kurang memuaskan, dan memang selama ini kebanyakan cara menjawab persoalan dari akar kuadrat adalah dari ingatan, ya dengan mengingat bahwa akar kuadrad dari 25 adalah 5 dan seterusnya. sehingga kalau ditanya berapa akar kuadrat dari 625 misalnya, saya yang waktu itu akan sangat menderita karenanya.

karena saya tidak puas dengan keadaan ini maka saya berusaha mencari-cari cara untuk mendapatkan HOW ini, prosesnya sangat lama dan saya yang waktu itu memiliki sangat sedikit modal untuk mendapatkan hal yang sepertinya sederhana ini.

dalam pencarian ini saya mendapatkan banyak hal, diantaranya adalah saat itu saya berusaha mencari pola dari bilangan kuadrat dan dari sebuah buku saya mendapatkan bahwa bilangan kuadrat itu punya hubungan khusus dengan bilangan ganjil


1 4 9 16 25 36 .... (deret bilanugan kuadrat)
1 3 5 7 9 11 .... (deret bilangan ganjil)

pada deret bilangan ganjil jika kita buat jumlahan kumulatifnya maka kita akan mendapatkan

1 (1+3) (1+3+5) (1+3+5+7) ...
= 1 4 9 16

ya persis sama dengan bilangan kuadrat

dari sini saya mulai menyelidiki cara-cara untuk memproses bilangan berurutan seperti ini dengan harapan dapat menemukan pola sehingga saya dapat mencari akar kuadrat dari bilangan kuadrat sebesar apapun.

pencarian saya membawa saya kepada rumus deret bilangan aritmatik, sehingga saya pada waktu itu berhasil menemukan rumus untuk menjumlahkan bilangan dari 1 hingga 100 misalnya (1 dan 100 nya bisa diganti m, n atau berapapun).

tapi sepertinya saya masih gagal dalam mencari pola akar kuadrat ini.

dan waktu itu saya mencoba pendekatan lain yaitu mengubah x (bilangan yg ingin dicari akar kuadratnya) menjadi bentuk pangkat dari faktor prima. dan dengan sedikit coba-coba akhirnya saya menemukan bahwa akar dari x adalah jika pada faktor prima tersebut setiap pangkatnya dibagi dengan 2.

mungkin sekarang saya ketawa melihatnya karena memang jelas ya akar kuadrat adalah bilangan dipangkatkan dengan setengah. tapi waktu itu saya merasa saya sudah mendapatkan sebuah pencapaian yang luar biasa (yang dicapai selama berbulan-bulan atau bahkan tahun) dan akhirnya mendapat suatu pencerahan seperti ini.

ya inilah pengalaman saya dengan akar kuadrat.
saya tidak ingat berapa lama proses ini berlangsung tapi sepertinya selesainya saat saya sudah masuk smp

Friday, July 16, 2010

microwave

Alhamdulillah sekarang di lab saya udah ada microwave, sehingga kalo mau masak yg simpel-simple atau mau menghangatkan makanan jadi gampang.

sekarang tinggal cari resep2 masakan yang bisa dimasak pakai microwave.

saat ini baru pakai microwava itu buat masak mie dan menghangatkan makanan

Thursday, July 08, 2010

sepak bola indonesia

indonesia pernah ngalahin bahrain di AFC 2007
bahrain pernah ngalahin korea selatan di AFC 2007
korea selatan pernah ngalahin spanyol di WORLD CUP 2002
spanyol barusan ngalahin jerman di WORLD CUP 2010
jerman pernah ngalahin argentina di WORLD CUP 2010

dan seterusnya dan seterusnya

Wednesday, July 07, 2010

how to use make

from gnu make website:

Make is a tool which controls the generation of executables and other non-source files of a program from the program's source files.


to use make we simply create a file named Makefile, and fill it with content like this

*replace [tab] with actual tab

target: dependencies ...
[tab]system command


for example we want to create a make file to build a java program using javac * in a directory
and also want to run it by java Hello command

we can create the Makefile like this


compile:
[tab]javac *.java
run
[tab]java Hello

tutup saja pintunya

tutup saja pintunya ngapain dibuka2, kalo dari awal ga pernah dibuka
tentu tidak ada masalah untuk ditutup.

orang bakal muter jauh, so what?

daripada ada orang yang mati lagi

bikin jembatan artinya musti naik ke atas 4 meter lebih,terus jalan, terus turun lagi 4 meter

dan jembatannya akan jadi sangat tinggi dan rentan akan rubuh karena sangat ringkih

bikin terowongan? bisa bisa kena banjir, liat saja danau, sudah seperti itu.

atau kita bikin teknologi seperti di game portal[0]?

atau kita buat sensor di sana sini?

atau? atau? atau? terlalu banyak pilihan

[0] http://www.valvesoftware.com/games/portal.html

Tuesday, July 06, 2010

belakangan ini sunyi

mungkinkah bila ku bertanya kepada bintang-bintang
dan bila ku mulai merasa bahasa kesunyian

peterpan mimpi yang sempurna


itu adalah sepenggal dari lagu yang berjudul mimpi yang sempurnya yang dinyanyikan oleh band peterpan.

belakangan ini suasana kampus terasa sangat sepi, super sepi malah, hal yang bisa dilakukan adalah ngerjain kerjaan lab, bikin simulasi baca paper dan lain sebagainya, oh iya belakangan ini juga jadi sering nonton google tech talk di youtube, mantap banget dengerin orang2 hebat pada presentasi di google tech talk mulai dari ahli ngoding, ahli ngemeng dan ahli ahli lainnya (ahli kubur lom ada sih)

mungkin suatu hari nanti gw juga dipanggil sama google buat ngisi google tech talk, ngomongin apa gitu misalnya gimana cara bikin dodol betawi ataua cara bikin bakwan ataupun gw mendemonstrasikan cara untuk membetulkan headphone yang rusak.

ya semua itu masih jadi mimpi

Sunday, July 04, 2010

pendekar alis 3: bertapa

pada suatu hari pendekar alis 3 memutuskan untuk meninggalkan padepokannya untuk bertapa di gunung, untuk itu dia mengumpulkan semua muridnya di suatu tempat untuk memberi tahu tentang hal ini.

"wahai murid-murid ku, aku telah mengajari kalian selama kurang lebih satu setengah tahun, hingga sekarang ilmu ku belum ada setengahnya yang dapat kalian kuasai, namun sekarang aku harus pergi meninggalkan kalian untuk mencari ilmu baru yang lain lagi agar kelak kalian dapat menguasai dan juga mengembangkan seluruh ilmu yang aku punya."

"selama aku pergi tolong kalian pelajari buku yang baru saja aku selesaikan ini, aku berikan kepada tiap-tiap kalian salinan buku ini, pesanku kalian semua belajar yang giat dari buku ini, tapi aku menyadari bahwa ilmu kalian belum sampai untuk bisa mengembangkan isi dari buku yang aku berikan oleh sebab itu hingga aku pulang nanti jangan ada dari kalian yang mengubah isi buku ini sedikitpun"

namun pada zaman pendekar alis 3 belum ada yang namanya teknologi kriptografi berupa signature pada data sehingga isi buku dapat saja berubah tanpa diketahui.

lalu pendekar alis 3 pergi ke gunung untuk mempelajari ilmu baru meninggalkan ke 15 orang muridnya untuk belajar sendiri, walau berat hati 15 orang murid merelakan kepergian guru mereka tersebut dan mereka berjanji akan berusaha mempelajari buku yang diberikan kepada mereka.

bersambung...

Friday, July 02, 2010

Laser tracker application

I create this application to track laser pointer on the wall, basically I only find the minimum of red and grayscale of each pixel and if it is more than some threshold then I will consider that pixel as a laser pointer.

I use DSJ (direct show java) to read image from my webcam.

Thursday, July 01, 2010

beginilah aku

ya beginilah aku adanya

apapun keadaanku aku pastinya akan tetap bersyukur

hari ini sempat2in membetulkan blog dan juga mengubah tag line menjadi

'Langkah pertama adalah yang paling berat'

mudah2an aku bisa mengisi blog ini lagi sehingga lebih bermakna dan lebih membawa manfaat bagi siapapun yang ingin mengambil manfaat