<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Illumination &#187; coding</title>
	<atom:link href="http://irpan.csui02.net/blog/tag/coding/feed/" rel="self" type="application/rss+xml" />
	<link>http://irpan.csui02.net/blog</link>
	<description>Life Through The Light</description>
	<lastBuildDate>Tue, 05 Jan 2010 04:43:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Simple Script dengan Newlisp (2)</title>
		<link>http://irpan.csui02.net/blog/2009/02/27/simple-script-dengan-newlisp-2/</link>
		<comments>http://irpan.csui02.net/blog/2009/02/27/simple-script-dengan-newlisp-2/#comments</comments>
		<pubDate>Fri, 27 Feb 2009 04:11:41 +0000</pubDate>
		<dc:creator>Maulana</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[lisp]]></category>

		<guid isPermaLink="false">http://irpan.csui02.net/blog/2009/02/27/simple-script-dengan-newlisp-2/</guid>
		<description><![CDATA[Dalam postingan sebelumnya saya mencoba untuk membuat file atau directory dan juga meng-copy file, sekarang saya akan mencoba membaca suatu file. Dalam newlisp ada fungsi yang dapat digunakan untuk membuka file, yaitu
(open file-source "read")
untuk membaca file tersebut bisa menggunakan beberapa fungsi seperti read-file, read-buffer, read-char atau read-line, misalkan
(read-line input-file)
sedangkan untuk menulis suatu file juga bisa [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Dalam postingan sebelumnya saya mencoba untuk membuat file atau directory dan juga meng-copy file, sekarang saya akan mencoba membaca suatu file. Dalam newlisp ada fungsi yang dapat digunakan untuk membuka file, yaitu</p>
<p><code>(open file-source "read")</code></p>
<p>untuk membaca file tersebut bisa menggunakan beberapa fungsi seperti read-file, read-buffer, read-char atau read-line, misalkan</p>
<p><code>(read-line input-file)</code></p>
<p>sedangkan untuk menulis suatu file juga bisa menggunakan fungsi-fungsi built-in yang disediakan seperti write-file, write-buffer, write-char atau write-line, misalkan</p>
<p><code>(write-line out-file "Hello World!")</code></p>
<p>Kita dapat membuat fungsi baru berdasarkan fungsi-fungsi tersebut untuk membuka file, membaca file tersebut kemudian menuliskan content dari file ke newlisp shell</p>
<p><code>(define (read-file-source file-source)<br />
((set 'in-file (open file-source "read"))<br />
(while (read-line in-file)<br />
(write-line))<br />
(close in-file)))</code></p>
<p>Setelah mencoba menggunakan fungsi-fungsi operasi file dan fungsi copy file yang telah dibuat pada postingan sebelumnya, maka akhirnya saya dapat membuat script file yang saya inginkan untuk meng-copy file-file yang ada atau didaftarkan pada suatu file</p>
<p><code>(define (copy-file-from-text-file file-text home-path dest-path)<br />
(begin<br />
(set 'in-file (open file-text "read"))<br />
(while (set 'line-read (read-line in-file))<br />
(begin<br />
(set 'src (append home-path line-read))<br />
(set 'dest (append dest-path line-read))<br />
(my-copy-file src dest)))<br />
(close in-file)))</code></p>
<p>Hehehe sederhana sekali yah, memang seharusnya suatu scripting language seperti newlisp dapat digunakan dengan mudah dan sederhana mungkin tetapi tetap powerfull untuk membantu programmer menyelesaikan task-task nya.</p>
]]></content:encoded>
			<wfw:commentRss>http://irpan.csui02.net/blog/2009/02/27/simple-script-dengan-newlisp-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple Script dengan Newlisp (1)</title>
		<link>http://irpan.csui02.net/blog/2009/02/23/simple-script-dengan-newlisp-1/</link>
		<comments>http://irpan.csui02.net/blog/2009/02/23/simple-script-dengan-newlisp-1/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 11:13:46 +0000</pubDate>
		<dc:creator>Maulana</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[lisp]]></category>

		<guid isPermaLink="false">http://irpan.csui02.net/blog/2009/02/23/simple-script-dengan-newlisp-1/</guid>
		<description><![CDATA[Karena untuk mengupdate aplikasi java web mulai menggunakan sistem patch yaitu dengan melakukan copy file class-class baru atau fix update tidak seperti sebelumnya yaitu selalu deploy ulang aplikasinya, mulai deh kerepotan menyiapkan file-file tersebut. Permasalahannya adalah struktur direktori aplikasi web java ditambah lagi dengan struktur package-nya java sendiri terlihat cukup ribet apalagi jika harus meng-copy [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Karena untuk mengupdate aplikasi java web mulai menggunakan sistem patch yaitu dengan melakukan copy file class-class baru atau fix update tidak seperti sebelumnya yaitu selalu deploy ulang aplikasinya, mulai deh kerepotan menyiapkan file-file tersebut. Permasalahannya adalah struktur direktori aplikasi web java ditambah lagi dengan struktur package-nya java sendiri terlihat cukup ribet apalagi jika harus meng-copy satu persatu file-file yang mesti dipersiapkan buat di patch ke aplikasinya.<br />
Mulai deh mempertimbangkan buat membuat script sederhana untuk menyiapkan file-file patch tersebut, dan saya memutuskan untuk membuatnya dengan newlisp. Ada beberapa alasan mengapa saya akhirnya memutuskan menggunakan newlisp, pertama newlisp merupakan lisp/scheme-like programming language, kedua newlisp surprisingly small ketika diinstall hanya membutuhkan kurang lebih 2Mb (coba bandingkan dengan perl, python atau ruby), ketiga fungsinya lumayan lengkap dan cukup buat membantu menyelesaikan task tersebut, keempat sudah bisa GUI programming dengan memanfaatkan runtime java JRE 1.5 keatas.<br />
Sebenernya ingin juga menulis tentang lisp dan dialectnya termasuk scheme, tetapi mungkin dilain posting aja kali yah. Focus ke newlisp lagi, kalau melihat syntax lisp/scheme-like language sepertinya terlihat aneh dan bikin sakit kepala karena kebanyakan parenthesesnya, tapi kalau sudah sering mencoba akan mulai terbiasa. Newlisp tidak seperti common lisp dimana construct programnya lebih dekat dengan scheme dan lebih simple bahkan lebih simple dari scheme sekalipun. Seperti juga lisp dan scheme, newlisp juga memiliki interaktif shell atau biasa disebut dengan REPL (read, eval, print, loop).<br />
Balik ke script yang ingin saya buat, idenya sederhana saja yaitu copy file-file yang sudah saya daftarkan pada sebuah file. Oke langkah pertama saya membutuhkan fungsi untuk copy file, di newlisp ada fungsi yang bisa digunakan untuk copy file, yaitu</p>
<p><code>(copy-file file-src file-dest)</code></p>
<p>fungsi tersebut bisa digunakan tetapi jika file-dest terdapat path direktori pada file tujuan maka fungsi tersebut tidak bisa menghandle-nya. Berarti saya membutuhkan fungsi untuk mengambil direktori kemudian membuat direktori tersebut</p>
<p><code>(parse "path/to/a/file.txt" "/") akan me-return list ("path" "to" "a" "file.txt")</code></p>
<p>sedangkan untuk membuat direktori dari list nama direktori tersebut</p>
<p><code>(dotimes (i (- (length list-dest) 1))<br />
(if (directory? (list-dest i))<br />
(change-dir (list-dest i))<br />
(begin<br />
(make-dir (list-dest i))<br />
(change-dir (list-dest i)))))</code></p>
<p>nah berarti saya sudah bisa membuat sebuah fungsi untuk copy file dengan direktorinya</p>
<p><code>(define (my-copy-file src dest)<br />
(begin<br />
(set 'working-dir (real-path))<br />
(set 'src-file (read-file src))<br />
(set 'list-dest (parse dest "/"))<br />
(dotimes (i (- (length list-dest) 1))<br />
(if (directory? (list-dest i))<br />
(change-dir (list-dest i))<br />
(begin<br />
(make-dir (list-dest i))<br />
(change-dir (list-dest i)))))<br />
(write-file (last list-dest) src-file)<br />
(change-dir working-dir)))</code></p>
<p>dan saya dapat memanggilnya dengan</p>
<p><code>(my-copy-file "file.txt" "path/to/a/file.txt")</code></p>
<p>jika folder path/to/a/ belum ada maka akan di-create oleh fungsi tersebut.</p>
<p>to be continued&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://irpan.csui02.net/blog/2009/02/23/simple-script-dengan-newlisp-1/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Spring, Annotation, Transaction</title>
		<link>http://irpan.csui02.net/blog/2009/02/21/spring-annotation-transaction/</link>
		<comments>http://irpan.csui02.net/blog/2009/02/21/spring-annotation-transaction/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 16:48:20 +0000</pubDate>
		<dc:creator>Maulana</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[spring]]></category>

		<guid isPermaLink="false">http://irpan.csui02.net/blog/2009/02/21/spring-annotation-transaction/</guid>
		<description><![CDATA[Dapet masalah lagi dengan spring framework, jadi ceritanya mau membuat modul baru di aplikasi java web yang didevelop dengan spring tetapi dengan menggunakan spring 2.5 annotation sedangkan aplikasi yang ada belum sepenuhnya menggunakan annotation. Ketika sudah jadi dan jalan modul barunya ternyata pas mengakses aplikasi yang telah ada sebelumnya malah muncul error yang intinya tidak [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify">Dapet masalah lagi dengan spring framework, jadi ceritanya mau membuat modul baru di aplikasi java web yang didevelop dengan spring tetapi dengan menggunakan spring 2.5 annotation sedangkan aplikasi yang ada belum sepenuhnya menggunakan annotation. Ketika sudah jadi dan jalan modul barunya ternyata pas mengakses aplikasi yang telah ada sebelumnya malah muncul error yang intinya tidak menemukan request handlernya, padahal sebelumnya tidak pernah terjadi seperti ini. Dugaan sementara adalah karena saya menambahkan bean DefaultAnnotationHandlerMapping dan AnnotationMethodHandlerAdapter serta context:component-scan untuk mendapatkan semua bean yg menggunakan annotation seperti @Controller, @Repository dan juga @Service sedangkan sebelumnya semua bean controller, service dan dao di definisikan di servlet dispatcher dan application context xml file-nya.</p>
<p style="text-align: justify">Setelah mencari solusi di internet, saya coba untuk mengubah konfigurasi xml nya dan akhirnya menemukan bahwa bean AnnotationMethodHandlerAdapter menyebabkan aplikasi tersebut tidak berjalan dengan baik. Apabila bean tersebut di remove maka untuk menampilkan hasil di view akan berjalan dengan baik dan aplikasi sebelumnya juga dapat berjalan tetapi untuk create dan edit akan menyebabkan error karena bean tersebut dibutuhkan untuk @RequestMapping annotation. Sampai sekarang solusi yg tepat masih belum ditemukan, saya akhirnya mencoba membuat servlet dispatcher yg baru dengan servlet-mapping yg berbeda khusus untuk menangani aplikasi yang dibuat dengan memanfaatkan feature annotation-nya spring dan it works!.</p>
<p style="text-align: justify">Masalah lainnya yang muncul adalah permasalahan transaction, ternyata konfigurasi bean transaction yang ada sebelumnya tiba-tiba saja membuat error ketika save atau update yang error stack-nya menyatakan untuk me-remove readOnly dari definisi transaction-nya atau mengganti FlushMode.NEVER/MANUAL menjadi FlushMode.COMMIT/AUTO. Tapi sayangnya ngga ada setting-an readOnly sama FlushMode di defini bean transaction-nya, balik lagi cari solusi di internet ternyata ada yg mirip dengan permasalahan saya tersebut, solusinya adalah mengubah urutan definisi bean-nya menjadi Security stuff, Transaction stuff kemudian baru bean-bean lainnya. Pas saya cek kembali konfigurasi xml nya sepertinya sih ngga ada masalah, dugaan saya adalah saya belum me-remove konfigurasi dan bean-bean terkait dengan annotation padahal untuk aplikasi spring annotation sudah dipindahkan ke dispatcher servlet yang baru akhirnya setelah dihilangkan aplikasinya bisa berjalan kembali.</p>
<p style="text-align: justify">Alhamdulillah, walaupun banyak permasalahan yang dihadapi akan tetapi sampai saat ini saya masih diberikan jalan keluarnya, baru sadar juga aplikasi tersebut sudah cukup kompleks saja dijalankan di laptop sudah terasa banget apalagi kalau tiba-tiba saja muncul bug-bug baru &gt;.&lt; agak susah membereskannya.</p>
]]></content:encoded>
			<wfw:commentRss>http://irpan.csui02.net/blog/2009/02/21/spring-annotation-transaction/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
