<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-25092689</id><updated>2011-09-03T17:10:55.936+07:00</updated><category term='vim'/><category term='Ubuntu'/><category term='etc'/><category term='how-to'/><category term='work'/><category term='vim-dbgpclient'/><category term='software-design'/><category term='plain-stupid'/><category term='one year post'/><category term='database'/><category term='programming'/><title type='text'>Can't figure it out...</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>44</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-25092689.post-3357945176934156111</id><published>2010-11-21T23:09:00.002+07:00</published><updated>2010-11-21T23:12:24.799+07:00</updated><title type='text'>Create Web Service Client on Eclipse with Tomcat, problem anyone ?</title><content type='html'>Hi, just a quick note, perhaps there's some bug, with eclipse and tomcat configuration all together, all I know, I've been banging my head all day, just because eclipse freeze everytime I try to generate a web service client.&lt;br /&gt;&lt;br /&gt;After waiting several minutes I only got a not responding window, by then I had no other options than to kill the tomcat process from my task manager.&lt;br /&gt;When tomcat was killed, the eclipse webservice client wizzard will then continue to the next step, without finding any services, well ofcourse.&lt;br /&gt;&lt;br /&gt;So here's the trick, make sure the server option(double click the tomcat server to launch configuration editor) "Serve modules without publishing" is checked. Then the wizzard will find the services in a blink of an eye.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;btw, I'm using Eclipse Helios Service Release 1, Tomcat 6, and Axis2-1.4&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sent from my BlackBerry® smartphone from Sinyal Bagus XL, Nyambung Teruuusss...!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-3357945176934156111?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/3357945176934156111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=3357945176934156111' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/3357945176934156111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/3357945176934156111'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2010/11/create-web-service-client-on-eclipse.html' title='Create Web Service Client on Eclipse with Tomcat, problem anyone ?'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-158442787359157167</id><published>2010-08-30T01:07:00.001+07:00</published><updated>2010-08-30T01:07:48.817+07:00</updated><title type='text'>DVD playing stuttered on windows XP</title><content type='html'>Just wanna share,&lt;br&gt;&lt;br&gt;After I bought a dvd, and trying to play it on my laptop (Dell Inspiron 1420, core2duo T7250, vga onboard x3100) I get this problem where playing it cause the player to stutter mainly with the audio, already tried with windows media player, media player classic, and even VLC,  yet still producing the same symptoms. And took me almost 2 hours to experiments with all the available configuration for each player with no luck, so I gave up being a smart *ss, and start googling(should have done this the first place, but I&amp;#39;m so lazy to plug in my modem), and finally found the answers(less than 3 minutes, zzz...).&lt;br&gt;&lt;br&gt;I don&amp;#39;t really get the answers but (I think) basically it has something to do with the IDE drivers in windows. The driver stop using the latest operation mode available called DMA(Direct Memory Access) for my DVD drive, and failing back to somewhat old operation mode called PIO(couldn&amp;#39;t remember what it was), there are some reason why windows acting this way, none the less the solution actually lurking around in my device manager, and that&amp;#39;s why messing with the player&amp;#39;s configuration won&amp;#39;t solve the problem, stupid me.&lt;br&gt;&lt;br&gt;The site which I get the solution for is (can&amp;#39;t put linked text from my blackberry) :&lt;br&gt;&lt;a href="http://winhlp.com/node/10.?page=3"&gt;http://winhlp.com/node/10.?page=3&lt;/a&gt;&lt;br&gt;&lt;br&gt;There&amp;#39;s an easy solution there, where you can download the script and run it, or the not-so-easy solution where it trying to explain the causes and pretty much step-by-step solution. Well, I snag the first solution :p, download, run the script, reboot!&lt;br&gt;&lt;br&gt;Watch hachiko for the next 2 hour without a single hick-up (with some tissue of course :p ).&lt;br&gt;&lt;br&gt;Hope it helps somebody!&lt;br&gt;&lt;br&gt;Regards,&lt;br&gt;- Zeft.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-158442787359157167?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/158442787359157167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=158442787359157167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/158442787359157167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/158442787359157167'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2010/08/dvd-playing-stuttered-on-windows-xp.html' title='DVD playing stuttered on windows XP'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-417855186499136382</id><published>2010-08-27T08:47:00.001+07:00</published><updated>2010-08-27T08:47:50.627+07:00</updated><title type='text'>Oracle Query: Composite WHERE clause.</title><content type='html'>It&amp;#39;s been a long night here at the office, me and my partner tryin to fix some trouble and do some testing, there are condition where I need to query records from transaction table, based on combination of fields from other table.&lt;br&gt;&lt;br&gt;There are several ways to achive this kind of results:&lt;br&gt;&lt;br&gt;1. Using a subquery&lt;br&gt;   select * from table_trx a where a.subscriber_no in (select subscriber_no from table_reference b where b.offers = a.offers);&lt;br&gt;&lt;br&gt;2. Using join&lt;br&gt;   select * from table_trx a join table_reference b on a. subscriber_no = b.subscriber_no and a.offer = b.offer;&lt;br&gt;&lt;br&gt;3. Using composite where clause&lt;br&gt;   Select * from table_trx a where (a.subscriber_no, a.offer) in (select b.subscriber_no, b.offer from table_reference);&lt;br&gt;&lt;br&gt;And #3 I just figured out last night (yes, shame on me), I&amp;#39;m using the third query just to verify that the results I&amp;#39;m getting from first or second query is correct, because I&amp;#39;m not quite sure whether the second query would have been accurate. While the first and second query will returns the same results, the second one might a little bit different, because if we using different kind of join, this will mostly returns different set of results.&lt;br&gt;&lt;br&gt;&lt;br&gt;Keywords: composite where clause query&lt;br&gt;&lt;br&gt;Regards,&lt;br&gt;- Zeft.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-417855186499136382?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/417855186499136382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=417855186499136382' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/417855186499136382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/417855186499136382'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2010/08/oracle-query-composite-where-clause.html' title='Oracle Query: Composite WHERE clause.'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-6318601588756023976</id><published>2010-08-25T15:23:00.001+07:00</published><updated>2010-08-25T15:23:55.370+07:00</updated><title type='text'>Blogging from BlackBerry... Fyuhh..</title><content type='html'>Ok this is not meant to be a testing, but my first real post to my blog, been searching a lot on ways to post a blog from blackberry (other than using email or mms) but it seems there&amp;#39;s no easy way to do so. The only thing that came close is cellspin (from blackberry app world) and they didn&amp;#39;t give a trial for that, I&amp;#39;ve no intention to buy something I can&amp;#39;t try yet.&lt;br&gt;&lt;br&gt;So ok, no spesific application for posting to blogspot from blackberry, email it is then, but we can&amp;#39;t write a html email from this handheld??? O cmon!!! I started to think to write my own simple blogspot client, yet I have no idea where to start ...&lt;br&gt;&lt;br&gt;*doh..&lt;br&gt;Sent from my BlackBerry&amp;#174; smartphone from Sinyal Bagus XL, Nyambung Teruuusss...!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-6318601588756023976?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/6318601588756023976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=6318601588756023976' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/6318601588756023976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/6318601588756023976'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2010/08/blogging-from-blackberry-fyuhh.html' title='Blogging from BlackBerry... Fyuhh..'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-5161408662576144243</id><published>2010-08-25T12:43:00.000+07:00</published><updated>2010-08-25T12:44:06.543+07:00</updated><title type='text'>Still testing..</title><content type='html'>Try to test with &amp;lt;b&amp;gt;html formatted text&amp;lt;/b&amp;gt;&lt;br&gt;Sent from my BlackBerry&amp;#174; smartphone from Sinyal Bagus XL, Nyambung Teruuusss...!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-5161408662576144243?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/5161408662576144243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=5161408662576144243' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/5161408662576144243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/5161408662576144243'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2010/08/still-testing.html' title='Still testing..'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-8612335543124181904</id><published>2010-08-25T12:35:00.000+07:00</published><updated>2010-08-25T12:36:00.254+07:00</updated><title type='text'>IMG00011-20100825-1234.jpg</title><content type='html'>&lt;p class="mobile-photo"&gt;&lt;a href="http://4.bp.blogspot.com/_GcmyGfdqRPM/THSrwPdVd6I/AAAAAAAAACM/Hu1D12eZYww/s1600/%3D%3Futf-8%3FB%3FSU1HMDAwMTEtMjAxMDA4MjUtMTIzNC5qcGc%3D%3F%3D-760255"&gt;&lt;img src="http://4.bp.blogspot.com/_GcmyGfdqRPM/THSrwPdVd6I/AAAAAAAAACM/Hu1D12eZYww/s320/%3D%3Futf-8%3FB%3FSU1HMDAwMTEtMjAxMDA4MjUtMTIzNC5qcGc%3D%3F%3D-760255"  border="0" alt="" id="BLOGGER_PHOTO_ID_5509217089452603298" /&gt;&lt;/a&gt;&lt;/p&gt;Test publishing from blackberry with a picture maybe ?&lt;br&gt;Sent from my BlackBerry&amp;#174; smartphone from Sinyal Bagus XL, Nyambung Teruuusss...!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-8612335543124181904?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/8612335543124181904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=8612335543124181904' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/8612335543124181904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/8612335543124181904'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2010/08/img00011-20100825-1234jpg.html' title='IMG00011-20100825-1234.jpg'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_GcmyGfdqRPM/THSrwPdVd6I/AAAAAAAAACM/Hu1D12eZYww/s72-c/%3D%3Futf-8%3FB%3FSU1HMDAwMTEtMjAxMDA4MjUtMTIzNC5qcGc%3D%3F%3D-760255' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-4499271909698854026</id><published>2010-08-25T12:33:00.001+07:00</published><updated>2010-08-25T12:33:11.345+07:00</updated><title type='text'></title><content type='html'>Test from my handheld&lt;br&gt;&lt;br&gt;Sent from my BlackBerry&amp;#174; smartphone from Sinyal Bagus XL, Nyambung Teruuusss...!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-4499271909698854026?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/4499271909698854026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=4499271909698854026' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/4499271909698854026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/4499271909698854026'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2010/08/test-from-my-handheld-sent-from-my.html' title=''/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-7825920213910068607</id><published>2010-06-27T03:51:00.005+07:00</published><updated>2010-06-27T04:18:11.221+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Exhausted ResultSet</title><content type='html'>Hi, if you ever encounter this kind of error&lt;br /&gt;&lt;br /&gt;&lt;code  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;java.sql.SQLException: Exhausted Resultset&lt;br /&gt;       at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)&lt;br /&gt;       at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)&lt;br /&gt;       at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)&lt;br /&gt;       at oracle.jdbc.driver.OracleStatement.prepare_for_new_get(OracleStatement.java:3195)&lt;br /&gt;       at oracle.jdbc.driver.OracleStatement.getIntValue(OracleStatement.java:4264)&lt;br /&gt;       at oracle.jdbc.driver.OracleResultSetImpl.getInt(OracleResultSetImpl.java:510)&lt;br /&gt;       at oracle.jdbc.driver.OracleResultSet.getInt(OracleResultSet.java:1528)&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;you might guessed that this error happen when you trying to access a resultset which already being closed or never been advanced to the first record, but you very certain that the statement is never been closed or always advanced to the first record and still these kind of error spitting out in your log or console, you might wanna check if the same statement object had been re-executed. In my case another thread executing the same statement object, &lt;span style="font-weight: bold;"&gt;thus the previous resultset is reset&lt;/span&gt;.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;thread A is executing the statement and get the resultset X&lt;br /&gt;&lt;/li&gt;&lt;li&gt;thread A advance the resultset X by calling X.next()&lt;/li&gt;&lt;li&gt;thread B is executing the statement and get the resultset Y&lt;br /&gt;&lt;/li&gt;&lt;li&gt;thread A try to call X.getString("some_field") =&gt; spit the error&lt;br /&gt;&lt;/li&gt;&lt;li&gt;thread B advance the resultset Y by calling Y.next()&lt;/li&gt;&lt;li&gt;thread B try to call Y.getString("some_field") =&gt; working fine&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;took me whole night figure this one out, should have read the &lt;a href="http://java.sun.com/javase/6/docs/api/java/sql/ResultSet.html"&gt;spec&lt;/a&gt; earlier, stupid me...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-7825920213910068607?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/7825920213910068607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=7825920213910068607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/7825920213910068607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/7825920213910068607'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2010/06/exhausted-resultset.html' title='Exhausted ResultSet'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-549935201529520836</id><published>2009-11-27T01:18:00.025+07:00</published><updated>2009-11-27T14:55:48.499+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><title type='text'>Install Subversion on SunOS 5.10 (Solaris 10)</title><content type='html'>Hi there,&lt;br /&gt;&lt;br /&gt;So this is the story, although I already have a running svn server using VisualSvn on my office station (a wind*z machine), still I couldn't help worried bout something bad might happen to my precious. So I asked my boss whether or not I could use any *nix compliant machine in our network to serve as a Versioning server and get rid of the paranoia. And he gave me one, great !&lt;br /&gt;&lt;br /&gt;One little problem, how would I do that ? Did a lot on Linux, few on windows, but on Solaris this would be the first time, hurraaay!!&lt;br /&gt;&lt;br /&gt;I'm not sure whether direct linking from my post to &lt;a href="http://www.sunfreeware.com/"&gt;sunfreeware&lt;/a&gt; packages is allowed or not, so download all the required package from &lt;a href="http://www.sunfreeware.com/programlistsparc10.html"&gt;here&lt;/a&gt; (all package from step 1 - 14). Most of the  text below were retrieved from sunfreeware, wrap it, and added some comment. The idea is when you already download all the software required below, you only need to look at this post till you finish installing svn(hopefully).&lt;br /&gt;&lt;br /&gt;to install a .gz package file do the following (assume the .gz file is in /tmp and you are root)&lt;br /&gt;&lt;code&gt;&lt;br /&gt;~# cd /tmp&lt;br /&gt;~# gunzip &amp;lt;downloaded_package&amp;gt;.gz&lt;br /&gt;~# pkgadd -d &amp;lt;downloaded_package&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Now I've been spending all night figuring how to install a working subversion (server) to a solaris system, and this is what I've got.&lt;br /&gt;&lt;br /&gt;machine :&lt;br /&gt;&lt;code&gt;&lt;br /&gt;SunOS  5.10 Generic_125100-09 sun4u sparc SUNW,Sun-Fire-V890.&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;steps :&lt;br /&gt;&lt;br /&gt;You need a root privilege to install packages below, make sure you follow below steps in order, I've arrange these steps based on subversion dependency tree. You might wanna backup the whole /usr/local directory just in case. Now let's begin the journey...&lt;br /&gt;&lt;ol&gt;&lt;li&gt;install libgcc-3.4.6-sol10-sparc-local.gz&lt;/li&gt;&lt;br /&gt;This package includes the files and links&lt;br /&gt;libgcc_s.so&lt;br /&gt;libgcc_s.so.1&lt;br /&gt;libstdc++.so&lt;br /&gt;libstdc++.so.6&lt;br /&gt;libstdc++.so.6.0.3&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;in my case my target system already have this library installed, so I skipped the first step.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;install openssl-0.9.8l-sol10-sparc-local.gz&lt;/li&gt;&lt;br /&gt;openssl is an open source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a full-strength general purpose cryptography library - installs in /usr/local/ssl.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;install expat-2.0.1-sol10-sparc-local.gz&lt;/li&gt;&lt;br /&gt;Expat is a fast, non-validating, stream-oriented XML parsing library - installs in /usr/local.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;install zlib-1.2.3-sol10-sparc-local.gz&lt;/li&gt;&lt;br /&gt;zlib compression libraries - installs in /usr/local. This package has both libz.a and libz.so libraries.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;install libiconv-1.11-sol10-sparc-local.gz&lt;/li&gt;&lt;br /&gt;GNU libiconv provides an iconv() implementation for use on systems which do not have one - installs in /usr/local.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;install db-4.2.52.NC-sol10-sparc-local.gz&lt;/li&gt;&lt;br /&gt;db is the Berkeley open source embedded database system - installs in /usr/local/BerkeleyDB.4.2.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;install sasl-2.1.21-sol10-sparc-local.gz&lt;/li&gt;&lt;br /&gt;This is the Cyrus SASL (Simple Authentication and Security Layer) API implementation. It can be used on the client or server side to provide authentication and authorization services - installs in /usr/local.&lt;br /&gt;The installation of the sasl software indicates:&lt;br /&gt;********************************************************&lt;br /&gt;* WARNING:&lt;br /&gt;* Plugins are being installed into /usr/local/lib/sasl2,&lt;br /&gt;* but the library will look for them in /usr/lib/sasl2.&lt;br /&gt;* You need to make sure that the plugins will eventually&lt;br /&gt;* be in /usr/lib/sasl2 -- the easiest way is to make a&lt;br /&gt;* symbolic link from /usr/lib/sasl2 to /usr/local/lib/sasl2,&lt;br /&gt;* but this may not be appropriate for your site, so this&lt;br /&gt;* installation procedure won't do it for you.&lt;br /&gt;*&lt;br /&gt;* If you don't want to do this for some reason, you can&lt;br /&gt;* set the location where the library will look for plugins&lt;br /&gt;* by setting the environment variable SASL_PATH to the path&lt;br /&gt;* the library should use.&lt;br /&gt;********************************************************&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I did the easiest way, create a symbolic link in /usr/lib to /usr/local/lib/sasl2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;install neon-0.25.5-sol10-sparc-local.gz&lt;/li&gt;&lt;br /&gt;Neon is an HTTP and WebDAV client library - installs in /usr/local. Neon is used by subversion.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;install apache_noldap-2.2.11-sol10-sparc-local.gz&lt;/li&gt;&lt;br /&gt;Apache 2 - the popular web server - installs in /usr/local/apache2. Documentation can be found in /usr/local/apache2/doc/apache2. The configuration files in /usr/local/apache2/conf must be edited to fit your site's needs, including ssl support.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I dont want to setup my svn server with apache, yet the subversion package from sunfreeware required this package to be installed, you might change this requirement if you compile the subversion source (also from sunfreeware) without apache support.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;install swig-1.3.36-sol10-sparc-local.gz&lt;/li&gt;&lt;br /&gt;SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages. SWIG is used with different types of languages including common scripting languages such as Perl, PHP, Python, Tcl, Ruby and PHP - installs in /usr/local.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;install libxml2-2.6.31-sol10-sparc-local.gz&lt;/li&gt;&lt;br /&gt;Libxml2 is the XML C library developed for the Gnome project - installs in /usr/local.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;install libintl-3.4.0-sol10-sparc-local.gz&lt;/li&gt;&lt;br /&gt;Libintl is used with gettext and is needed by a few programs when libintl in not in /usr/lib - installs in /usr/local/lib.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;install openldap-2.4.16-sol10-sparc-local.gz&lt;/li&gt;&lt;br /&gt;OpenLDAP is an open source implementation of the Lightweight Directory Access Protocol - installs in /usr/local.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;warning! this package giving me a hard time when I realized that one of my shared library wasnt update enough (libresolv.so.2), the workaround is at the end of this post.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;finally! subversion-1.6.5-sol10-sparc-local.gz&lt;/li&gt;&lt;br /&gt;Subversion is an alternative to the CVS version control system - installs in /usr/local.&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;ok when you're done, go to /usr/local/bin/ directory and type&lt;br /&gt;&lt;code&gt;&lt;br /&gt;~# ldd svn&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;you'll get something like&lt;br /&gt;&lt;pre&gt;~# ldd svn&lt;br /&gt;libsvn_client-1.so.0 =&gt;  /usr/local/lib/libsvn_client-1.so.0&lt;br /&gt;libsvn_wc-1.so.0 =&gt;      /usr/local/lib/libsvn_wc-1.so.0&lt;br /&gt;libsvn_ra-1.so.0 =&gt;      /usr/local/lib/libsvn_ra-1.so.0&lt;br /&gt;libsvn_diff-1.so.0 =&gt;    /usr/local/lib/libsvn_diff-1.so.0&lt;br /&gt;libsvn_ra_local-1.so.0 =&gt;        /usr/local/lib/libsvn_ra_local-1.so.0&lt;br /&gt;libsvn_repos-1.so.0 =&gt;   /usr/local/lib/libsvn_repos-1.so.0&lt;br /&gt;libsvn_fs-1.so.0 =&gt;      /usr/local/lib/libsvn_fs-1.so.0&lt;br /&gt;libsvn_fs_fs-1.so.0 =&gt;   /usr/local/lib/libsvn_fs_fs-1.so.0&lt;br /&gt;libsvn_fs_util-1.so.0 =&gt;         /usr/local/lib/libsvn_fs_util-1.so.0&lt;br /&gt;libsvn_ra_svn-1.so.0 =&gt;  /usr/local/lib/libsvn_ra_svn-1.so.0&lt;br /&gt;libsvn_ra_neon-1.so.0 =&gt;         /usr/local/lib/libsvn_ra_neon-1.so.0&lt;br /&gt;libsvn_ra_serf-1.so.0 =&gt;         /usr/local/lib/libsvn_ra_serf-1.so.0&lt;br /&gt;libserf-0.so.0 =&gt;        /usr/local/lib/libserf-0.so.0&lt;br /&gt;libm.so.2 =&gt;     /usr/lib/libm.so.2&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;if theres a line that tells some file not found, that means there some package you've missed, check all the package in this post and makesure you've install them in order.&lt;br /&gt;when everything is done, try to type&lt;br /&gt;&lt;code&gt;&lt;br /&gt;~# svn help&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;if it print the help page, then you're successfully install subversion on your Solaris 10, congratulations !!. But if you're like me and it didn't print the help page, instead showing this kind of error&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;ld.so.1: svn: fatal: libresolv.so.2: version `SUNW_2.2.2' not found (required by file /usr/local/lib/libldap-2.4.so.2)&lt;br /&gt;ld.so.1: svn: fatal: libresolv.so.2: open failed: No such file or directory&lt;br /&gt;Killed&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;that means the libldap-2.4.so.2 (from openldap package) require newer version of libresolv.so.2 which I couldn't get anywhere.&lt;br /&gt;&lt;br /&gt;From sunfreeware :&lt;br /&gt;&lt;pre&gt;you will need to update to a newer version of Solaris 10 or upgrade the SUNWcsl and SUNWcslr packages&lt;br /&gt;&lt;/pre&gt;Update system ? that's not an option for me, and I could'nt find any of the new packages. Googling whole night gives me some other options.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;recompile openldap from sources and create a mapfile to point to the existing libresolv.so.2 (or something like that)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;set the LD_NOVERSION environment variable to non null value, so that the linker will ignore any version check.&lt;/li&gt;&lt;br /&gt;&lt;code&gt;~# export LD_NOVERSION=1&lt;/code&gt;&lt;br /&gt;&lt;/ol&gt;I dont really get the first option, so I hit the second one, and it actually work flawless !. The problem is if we set the LD_NOVERSION environment variable, then the linker will ignore version checking of the existing shared library for all application which can break the whole system, so be careful! Everytime you have finished doing your svn thing, make sure to unset that variable again.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;~# unset LD_NOVERSION&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Ok, now lets setup the server, I'm not using Apache for that, instead I'm using svnserve (from subversion package), the advantage is, it's so easy to setup, the disadvantage is, you need an svn client to browse the repository, while for apache you could use plain web browser to browse a repository.&lt;br /&gt;Create a new repository in /root directory with svnadmin&lt;br /&gt;&lt;code&gt;&lt;br /&gt;~# svnadmin create /root/repository&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;I've made a script called &lt;span style="font-style: italic;"&gt;start_svnserver.sh&lt;/span&gt; to start the svn server as a daemon which consist following lines&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;# ignore version check&lt;br /&gt;export LD_NOVERSION=1&lt;br /&gt;# start the server&lt;br /&gt;svnserve -d -r /root/repository --pid-file svnserve.pid --log-file svnserve.log&lt;br /&gt;&lt;/code&gt;&lt;code&gt;# dont forget to unset this, we only need it to start svnserve&lt;/code&gt;&lt;br /&gt;&lt;code&gt;unset LD_NOVERSION&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;and &lt;span style="font-style: italic;"&gt;stop_svnserver.sh&lt;/span&gt; to stop the svn_server, consist the following lines.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;cat svnserve.pid | xargs kill -15&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;make sure that &lt;span style="font-style: italic;"&gt;stop_svnserver.sh&lt;/span&gt; is in the same directory of &lt;span style="font-style: italic;"&gt;start_svnserver.sh&lt;/span&gt;, and command &lt;span style="font-style: italic;"&gt;svnserve&lt;/span&gt; is accessible. After the server started, We can connect to the new server with any svn client for example using command-line svn, or an IDE (I'm using Eclipse+subclipse plugins).&lt;br /&gt;&lt;br /&gt;the main repository url would be like&lt;br /&gt;&lt;code&gt;&lt;br /&gt;svn://&amp;lt;hostname_or_ip&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Good luck !&lt;br /&gt;&lt;br /&gt;Keywords : subversion, Solaris10, libresolv.so.2, SUNW_2.2.2, mapfile openldap&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-549935201529520836?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/549935201529520836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=549935201529520836' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/549935201529520836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/549935201529520836'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2009/11/install-subversion-on-sunos-510-solaris.html' title='Install Subversion on SunOS 5.10 (Solaris 10)'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-3585526132734924300</id><published>2009-11-17T10:21:00.010+07:00</published><updated>2009-11-17T23:42:35.338+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><title type='text'>VisualSVN basic Authentication.</title><content type='html'>8 months without anything, soooo lazy.., let's start with something small shall we :p.&lt;br /&gt;&lt;br /&gt;Today I'm trying to setup a svn server using &lt;a href="http://www.visualsvn.com/"&gt;VisualSVN&lt;/a&gt; on my office work station (yes , its windows..), browsing works fine after (simple) installation. the problem is when I'm trying to commit changes from eclipse (using subversive plugin), it always throw me an error (click for larger image)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_GcmyGfdqRPM/SwIeruj9bHI/AAAAAAAAACA/POwiWk0kS5g/s1600/11-17-2009+10-52-51+AM.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 35px;" src="http://4.bp.blogspot.com/_GcmyGfdqRPM/SwIeruj9bHI/AAAAAAAAACA/POwiWk0kS5g/s400/11-17-2009+10-52-51+AM.png" alt="" id="BLOGGER_PHOTO_ID_5404916239380081778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I have default authentication setup within my repository before I'm using visualsvn,  but it seems VisualSVN don't actually use those setup. So I remove my auth setup in my repository, and use the one that come with VisualSVN. just right click on your repositories node, and choose All Tasks -&gt; Manage Security. add a new user if you dont have one, and set the permissions. In my case I want my user can commit, so I choose Read/Write permissions.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_GcmyGfdqRPM/SwIdbg5XwoI/AAAAAAAAABo/0WrC-qc6j20/s1600/11-17-2009+10-44-17+AM.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 228px;" src="http://2.bp.blogspot.com/_GcmyGfdqRPM/SwIdbg5XwoI/AAAAAAAAABo/0WrC-qc6j20/s400/11-17-2009+10-44-17+AM.png" alt="" id="BLOGGER_PHOTO_ID_5404914861322257026" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_GcmyGfdqRPM/SwIdb9VEbaI/AAAAAAAAABw/VcEurYm13q8/s1600/11-17-2009+10-45-43+AM.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 316px; height: 400px;" src="http://4.bp.blogspot.com/_GcmyGfdqRPM/SwIdb9VEbaI/AAAAAAAAABw/VcEurYm13q8/s400/11-17-2009+10-45-43+AM.png" alt="" id="BLOGGER_PHOTO_ID_5404914868954623394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;After this I'm trying to commit, still failed, with new error message&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_GcmyGfdqRPM/SwIduXWPLgI/AAAAAAAAAB4/eGaJqJuY_TU/s1600/11-17-2009+10-33-10+AM.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 43px;" src="http://1.bp.blogspot.com/_GcmyGfdqRPM/SwIduXWPLgI/AAAAAAAAAB4/eGaJqJuY_TU/s400/11-17-2009+10-33-10+AM.png" alt="" id="BLOGGER_PHOTO_ID_5404915185176489474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Apparently, I need to repeat those steps for each repository node I'm trying to access (child of Repositories node), and dont forget to restart VisualSVN.&lt;br /&gt;&lt;br /&gt;good day.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;keywords: Commit failed, MKACTIVITY, 403 Forbidden, VisualSVN&lt;br /&gt;&lt;img src="file:///C:/DOCUME%7E1/hadiz/LOCALS%7E1/Temp/moz-screenshot.png" alt="" /&gt;&lt;img src="file:///C:/DOCUME%7E1/hadiz/LOCALS%7E1/Temp/moz-screenshot-2.png" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-3585526132734924300?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/3585526132734924300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=3585526132734924300' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/3585526132734924300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/3585526132734924300'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2009/11/visualsvn-basic-authentication.html' title='VisualSVN basic Authentication.'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_GcmyGfdqRPM/SwIeruj9bHI/AAAAAAAAACA/POwiWk0kS5g/s72-c/11-17-2009+10-52-51+AM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-6979324875440190645</id><published>2009-02-11T17:29:00.010+07:00</published><updated>2009-02-14T01:14:02.064+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software-design'/><title type='text'>Coupling and Cohesion</title><content type='html'>As an overview, those two words are the top players in a game where you play with lots of OO cookies, if you can manage those two bad boys, you practically can get rid of all of your books about OO design. And yes, if you could compress all those book in to two little simple word it would be coupling and cohession.&lt;br /&gt;&lt;br /&gt;it's about flexibility, reusability, extensibility, maintainability, portability, and so on, when you learn or use patterns, they all come down to these words, so what is coupling and cohession, really ?&lt;br /&gt;&lt;br /&gt;coupling is about how much dependency between two separate module, the higher the worst it get. why is high coupling is bad ?, because when two seperate module is too dependent with one another, it would be difficult to modify them, imagine if module A depends on module B, and B on C, and C on D, if you try to modify A, you'll end up modifying most(if not all) other module, its a domino effect, one down, and everything else is just a matter of time.&lt;br /&gt;&lt;br /&gt;While cohession is about how solid your module are, solid here means it does one thing it and it's very good at doing it, the higher the better it get, why is low cohesion is bad?, if you make a module that do stuff too much, you'll end up damping lots of logic in one place, which is bad because if any of those logic change, you might breaking other logic that sits in the same module. This is where the separation concern comes in, each module should only have one responsibility, if you have more than one reason to change a module, there is a big chance that module has low cohesion,&lt;br /&gt;&lt;br /&gt;Ironic it is, but as you can guess, those two words are complementary, if you strive for one you'll get kick by another. for example if you want to make your module to have high cohession, you'll tend to squeeze it as much as possible, and by the end of the day that module will need to communicate to many other module to accomplish a bigger task, and then you'll realize that you had a high coupling. In other hand if you want to make less chit chat between modules, you'll end up with one big chunk of module which mean it has low cohession.&lt;br /&gt;&lt;br /&gt;A good design is a harmonic balance between coupling and cohession.&lt;br /&gt;&lt;br /&gt;whhatt is that?  how you do "harmonic balance" ? how much is high, and how less is low? well I cant really tell as I'm still learning, but one thing I can tell is that a harmonic balance is not a 50:50 share, it depends on a dozen of variable,  necessity, point of view, probability of change, difficulty,  scenario of use, etc..  sometime you get to sacrifice one for another, and sometime we just can't figure it out...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-6979324875440190645?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/6979324875440190645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=6979324875440190645' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/6979324875440190645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/6979324875440190645'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2009/02/coupling-and-cohesion.html' title='Coupling and Cohesion'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-4303704951956824962</id><published>2009-02-10T00:00:00.008+07:00</published><updated>2009-02-10T00:20:39.858+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>User Input From Vim to Python script</title><content type='html'>hi, ever wondering how to prompt a user for some input from python script within vim, but first make sure you have imported the vim module&lt;br /&gt;&lt;pre name="code" class="c"&gt;&lt;br /&gt;def python_input(message = 'input'):&lt;br /&gt;    vim.command("call inputsave()")&lt;br /&gt;    vim.command("let user_input = input('" + message + " : ')")&lt;br /&gt;    vim.command("call inputrestore()")&lt;br /&gt;    return vim.eval('user_input')&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;now everytime you wanna prompt user, in your python script do something like&lt;br /&gt;&lt;pre name="code" class="c"&gt;&lt;br /&gt;input = python_input('input something')&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;it will prompt the user to input something with 'input something' as the caption of the prompt, in the command-line&lt;br /&gt;&lt;br /&gt;for more detail &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;:help input()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;hope, this would help.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-4303704951956824962?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/4303704951956824962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=4303704951956824962' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/4303704951956824962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/4303704951956824962'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2009/02/user-input-from-vim-to-python-script.html' title='User Input From Vim to Python script'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-3967644141324957643</id><published>2009-01-11T00:08:00.001+07:00</published><updated>2009-01-11T00:11:34.588+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim-dbgpclient'/><title type='text'>DBGpClient v1.0.2: Vim PHP debugger update</title><content type='html'>I've said it before, that I'm not able to work with this script at least for next month, sorry.. cant keep my promise ~_~ .. heres an update (the urge's really annoying, cant help it :p)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;###############################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1.0.2 changelog from 1.0.1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;###############################################################################&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;changes     :&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;- add '!' on function declaration to override any declarated function with the&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  same name thx to Michael Bahnmiller&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;- add new path to check for a windows system. If you are using windows put the&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  files (debugger.vim and debugger.vim) your $VIM/vimfiles/plugin this usually &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  "C:\Program Files\Vim\vimfiles\plugin" thx to ning&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;bug fixes   :&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;- bugs on windows system regarding the file path (from xdebug xml message)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  which append '/' at the beginning, thx to Ning for notified me&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;- cannot set breakpoint when the debugger isn't running (my bad) thx to Michael&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  Bahnmiller&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;known issue :&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;- do not reorder tab while debugging session is running!, unless you want to &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  see crazy things&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;as usual, you've got something to say, drop em here.. thx !&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.vim.org/scripts/download_script.php?src_id=9793"&gt;download update&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-3967644141324957643?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/3967644141324957643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=3967644141324957643' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/3967644141324957643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/3967644141324957643'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2009/01/dbgpclient-v102-vim-php-debugger-update.html' title='DBGpClient v1.0.2: Vim PHP debugger update'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-3114060272071753678</id><published>2009-01-09T00:54:00.008+07:00</published><updated>2009-01-09T10:29:00.588+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim-dbgpclient'/><title type='text'>DBGpClient v1.0.1 : Vim PHP Debugger Update</title><content type='html'>Been working all day for this :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;###############################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;1.0.1 changelog from 1.0.0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;###############################################################################&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;new         :&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;- add option to use dedicated debugging tab (this way you dont have to worry&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  bout your undo history in other tab would get lost) suggested by Michael&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  Bahnmiller&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;- add option to set socket timeout&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;changes     :&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;- update file header in debugger.py and debugger.vim&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;- if a debugging command reach code end, and the debugger stop gracefully, the&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  debugging interface will be closed/restore automatically, user doesnt have to&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  explicitly press F6&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;- the TRACE_WINDOW will only visible if the debugger is in debugging mode, or&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  when g:debuggerDebugMode=1, cause it's the only purpose of a trace window&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  (logging and tracing), in normal use you wouldn't use this window, it will&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  save more space&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;- "Not Connected" message is change to "Debugger is not running" message&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;- the F5 and F6 doesnt get map directly to python function, but to a VimScript&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  function, this way user can write a preparation for each debugging start, or&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  cleanups for every debugging ends&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;- add "except: NotConnectedException" for every try..except.. wrapper function&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  which display Not Running message, to make sure each of this command only&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  used when debugging session is started&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;bug fixes   :&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;- remove error message duplication&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;- remove bug when timeout happen(trace window shown up, with a some exception&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  error) and show "Connection Timeout.." message instead&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;now we have &lt;span style="font-weight: bold;font-family:courier new;" &gt;g:debuggerDedicatedTab&lt;/span&gt; which will decide whether debugging session will use it's own tab, so the other tab (the ones to work with) doesnt lost its undo history, if you dont want an extra tab just for debugging set this var to 0, this will lost undo history on the tab where you start the debugging session, but note! if you want to use this *new feature and you are using gVim or vim.gui put this into your ~/.vimrc file&lt;br /&gt;&lt;pre name="code" class="python"&gt;&lt;br /&gt;if has("gui_running")&lt;br /&gt;if has("gui_gtk2")&lt;br /&gt; set showtabline=2&lt;br /&gt;endif&lt;br /&gt;endif&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;the snippet above will make the &lt;span style="font-weight: bold;font-family:courier new;" &gt;showtabline &lt;/span&gt;option set to 2 (always show) this is needed because theres a bug about vim and gtk (don't know exactly) when vim window get resized&lt;br /&gt;&lt;br /&gt;theres also &lt;span style="font-weight: bold;font-family:courier new;" &gt;g:debuggerTimeout&lt;/span&gt; which will decide how long vim will wait a debug session requested, I've set it to default by 10 second&lt;br /&gt;&lt;br /&gt;and the last one is &lt;span style="font-weight: bold;font-family:courier new;" &gt;g:debuggerDebugMode&lt;/span&gt;, if you want to see what happen between Vim and xDebug engine, you might wanna set this variable to 1 which then will show trace_window, if it set to 0 the trace_window wont be visible&lt;br /&gt;&lt;br /&gt;Perhaps I'm not going able to work with this script at least until next month,  as usual if theres a bug, diffs, or idea, drop em here... thx !&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;oh, btw how do I report bugs on vimonline ? I cant seem to update my script page detail ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.vim.org/scripts/download_script.php?src_id=9781"&gt;download plugin update&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-3114060272071753678?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/3114060272071753678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=3114060272071753678' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/3114060272071753678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/3114060272071753678'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2009/01/dbgpclient-v101-vim-php-debugger-update.html' title='DBGpClient v1.0.1 : Vim PHP Debugger Update'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-9061591810435216213</id><published>2009-01-06T20:49:00.009+07:00</published><updated>2009-01-11T00:12:12.528+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim-dbgpclient'/><title type='text'>Vim PHP Debugger Update</title><content type='html'>My previous &lt;a href="http://slackdna.blogspot.com/2009/01/remote-php-debugger-with-vim.html"&gt;post&lt;/a&gt; was talking bout how you'd use Vim with &lt;a href="http://www.vim.org/scripts/script.php?script_id=1929"&gt;plugin&lt;/a&gt; as a debugger client for xdebug remote engine. If you already try it, there are some problem you might encounter, especially if you are using Vim 7.x.&lt;br /&gt;&lt;br /&gt;The most annoying one is the lack of tab-page editing support, because original plugin is wrote based on vim 6.0 which didn't have tab-page support. when my Vim or gVim (I'm using 7.1) load several tab-page and I start a debugging session, everything still can work as expected as long I didnt change my working tab, but when the session ended, my tab-page goes like hell!. Moreover if I did change my working tab when the debugging session still running and continue tracing the code (by F2, F3, or F4), the window layout just went crazy, this is really a PITA..&lt;br /&gt;&lt;br /&gt;below is list of changes I've made to the python script &lt;ul&gt;&lt;li&gt;when multiple tab-page loaded, it will remember the initial tab-page which start the debugging session. every debugging command will make sure that you are debugging on that initial tab, so debugging session wont mess other tab.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;when debugging session ends on multi tab-page window, other tab-page is &lt;span style="font-weight: bold;"&gt;no longer being duplicated&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;it will only restore debugging tab&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; One thing to note, the undo history on the debugging tab would &lt;span style="font-weight: bold;"&gt;lost&lt;/span&gt;, while luckily other tab undo history is &lt;span style="font-weight: bold;"&gt;retain&lt;/span&gt; (even the previous version of plugin would &lt;span style="font-weight: bold;"&gt;lost all&lt;/span&gt; of its undo history), until Bram decided to make Vim able to store its undo history, everytime you want to debug your code just create a new tab and press F5 (or whatever you bind the command to), you can always use other tab to set breakpoint and such.&lt;br /&gt;&lt;br /&gt;As I'm learning it, I'm planning to add more common debugging feature to this plugin, please if you find any bug, made a patch, diffs, etc, let me know..&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.vim.org/scripts/script.php?script_id=2508"&gt;vim plugin update&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;hope it helps..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-9061591810435216213?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/9061591810435216213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=9061591810435216213' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/9061591810435216213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/9061591810435216213'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2009/01/vim-php-debugger-update.html' title='Vim PHP Debugger Update'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-3636332951599478994</id><published>2009-01-05T12:39:00.015+07:00</published><updated>2009-03-16T13:29:15.657+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='one year post'/><category scheme='http://www.blogger.com/atom/ns#' term='vim-dbgpclient'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Easy Remote PHP Debugging with VIM and Firefox</title><content type='html'>Happy new year !&lt;br /&gt;&lt;br /&gt;I've write a &lt;a href="http://slackdna.blogspot.com/2008/03/xamppxdebugubuntu.html"&gt;post&lt;/a&gt; bout how you can setup debugging environment for PHP using xdebug, so now assuming you have &lt;span style="font-weight: bold;"&gt;xdebug setup and loaded&lt;/span&gt;, I'm going to write bout how you actually debug your PHP code.&lt;br /&gt;&lt;br /&gt;Basically there are 2 type of debugging, local or remote debugging, the difference is that whether or not the debug engine separated with the debug client. If you debug a desktop Java code using IDE like Eclipse, most likely you are doing local debugging, where as the debug engine comunicate directly to the eclipse interface (there is no need of debug client). XDebug is a remote debug engine, which mean to actually debug some code we need a debug client to send command to and receive debugging information from the debug engine. From &lt;a href="http://www.xdebug.org/docs/remote"&gt;XDebug page&lt;/a&gt; we can get alot information bout how this can work, and some option of debug client that you can use (this page should be your first reference).&lt;br /&gt;&lt;br /&gt;Now lets get to the chase, I'll write about how to have a remote debugging session with Vim (with plugin) and firefox to debug your PHP code easily.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;After you have successfully load xDebug module into php, enable remote debugging in your php configuration (php.ini) by adding&lt;blockquote&gt;&lt;pre&gt;xdebug.remote_enable = "1"&lt;/pre&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;download the &lt;a href="http://www.vim.org/scripts/download_script.php?src_id=7285"&gt;debugger plugin&lt;/a&gt; (or &lt;a href="http://slackdna.blogspot.com/search/label/vim-dbgpclient/"&gt;watch my blog&lt;/a&gt; for an update)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;extract the file (debugger.vim and debugger.py) to your home vim plugin directory&lt;blockquote&gt;&lt;pre&gt;$ unzip debugger.zip&lt;br /&gt;$ cp plugin/debugger.* ~/.vim/plugin/&lt;/pre&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;fire up Vim!, make sure your build equiped with &lt;span style="font-weight: bold;"&gt;signs&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;python&lt;/span&gt; support or the plugin won't work!, I'm using ubuntu and a Vim-full package for this, no hush, no mush..&lt;/li&gt;&lt;li&gt;if vim loaded without any error it means the plugin already loaded correctly, if not check your vim build, make sure the +signs and +python is there when you type in vim command&lt;blockquote&gt;&lt;pre&gt;:version&lt;/pre&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;open firefox, and install this &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3960"&gt;addon&lt;/a&gt; &lt;/li&gt;&lt;li&gt;open the PHP application you wish to debug using firefox, make sure the source code is accessible. for example if the source is in (assume you are using xampp)&lt;blockquote&gt;&lt;pre&gt;/opt/lampp/htdocs/testdebug/index.php&lt;/pre&gt;&lt;/blockquote&gt; then you can type in firefox url &lt;blockquote&gt;&lt;pre&gt;http://localhost/testdebug/index.php&lt;/pre&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;click the xdebug helper icon (the one you've just add) on firefox status bar (default on lower right corner), now the icon should flash green&lt;pre&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_GcmyGfdqRPM/SWJiLppZIvI/AAAAAAAAAAM/o5WZjCZn_Ig/s1600-h/Screenshot.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 218px; height: 79px;" src="http://4.bp.blogspot.com/_GcmyGfdqRPM/SWJiLppZIvI/AAAAAAAAAAM/o5WZjCZn_Ig/s320/Screenshot.png" alt="" id="BLOGGER_PHOTO_ID_5287896864783934194" border="0" /&gt;&lt;/a&gt;&lt;/pre&gt; &lt;/li&gt;&lt;li&gt;switch to your vim window and press F5 (the message window would say waiting for connection...)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;switch to your firefox window and reload by pressing F5,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;now switch to your vim window (again) and there you have it, a debugging interface of your application in vim.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_GcmyGfdqRPM/SWJj-eEGyoI/AAAAAAAAAAU/GUNjrfWgEWM/s1600-h/Screenshot-1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 162px;" src="http://4.bp.blogspot.com/_GcmyGfdqRPM/SWJj-eEGyoI/AAAAAAAAAAU/GUNjrfWgEWM/s320/Screenshot-1.png" alt="" id="BLOGGER_PHOTO_ID_5287898837359708802" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;let me explain a few of those steps a little bit (step 1 to 7 should be clear enough), step 8 means you have start a debugging session for the next http request, it is &lt;span style="font-weight: bold;"&gt;the same&lt;/span&gt; as if you append the url with &lt;span style="font-weight: bold;"&gt;XDEBUG_SESSION_START=1&lt;/span&gt; so the url would be &lt;blockquote&gt;&lt;pre&gt;http://localhost/testdebug/index.php?XDEBUG_SESSION_START=1&lt;/pre&gt;&lt;/blockquote&gt;ofcourse clickin on xdebug helper icon is alot more convenience than appending the url each time we start a debugging session.&lt;br /&gt;&lt;br /&gt;now for step 9 we prepare our beloved Vim to wait a connection from the debug engine at this point vim will kind of hang (waiting mode), the script default timeout is 5 second, if within that there are no debugging session requested, vim will return to normal mode. This means than we have to quckly run step 10, switch to firefox and reload, but again make sure the xdebug helper icon is already flash green (activated/clicked). After you have reload the page if you notice the loading status of the page is keep on spinning, the page wont finish loading until the debugging session stopped or vim is closed or request timeout&lt;br /&gt;&lt;br /&gt;Now if we switch back to Vim, our debugging interface should up and running there are source, watch, help, stack and trace window. From this interface you can trace the code using F2 (step into), F3 (step over), F4 (step out). To end a session you can press F6.  One of most common task is to put a breakpoint in our code, to do that open the file you wish to debug, position your cursor on a line you wish to stop and type :Bp in vim command window, now everytime the debugging session start, just press F5 to run until execution point reach the breakpoint. You can see other debugging command from the help window.&lt;br /&gt;&lt;br /&gt;one thing about this vim plugin, there aren't that much debugging command available, either from the plugin or  xdebug itself, from what I can tell it is more than enough to do my daily-debugging-basis. There are some lacks though, but I'll address this issue later on, considering this post is already bloated enough to make people sick from reading it :p&lt;br /&gt;&lt;br /&gt;happy vimming (and debugging) !&lt;br /&gt;&lt;br /&gt;keyword: ubuntu, vim, firefox, xdebug, php&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-3636332951599478994?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/3636332951599478994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=3636332951599478994' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/3636332951599478994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/3636332951599478994'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2009/01/remote-php-debugger-with-vim.html' title='Easy Remote PHP Debugging with VIM and Firefox'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_GcmyGfdqRPM/SWJiLppZIvI/AAAAAAAAAAM/o5WZjCZn_Ig/s72-c/Screenshot.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-8013257411844948197</id><published>2008-12-12T22:13:00.003+07:00</published><updated>2008-12-12T22:39:15.321+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='etc'/><title type='text'>Holy Crap, I got 7 ??</title><content type='html'>Just this afternoon, we have this small session of sharing in my Labs, anything related to IT and it is a weekly routine, we call this small session: RPL's BrainSpark.. (cool heh..)&lt;br /&gt;&lt;br /&gt;And the spark of this week is about SEO (Search Engine Optimization) brought by Satrio Wahyu a.k.a yoyoK (a very friendly and funny guy actually :p)&lt;br /&gt;&lt;br /&gt;Naaaa don't worry I'm not going detail on it, the idea is to get your webpage some significant ranking on most of search engine, and bla, bla, bla.... ( cant remember most of 'em)&lt;br /&gt;&lt;br /&gt;And there's a part where he talks bout PageRank used by google to measure the importance of a web page for google's search , just download &lt;a href="http://toolbar.google.com/"&gt;google's toolbar&lt;/a&gt; and you can see the PageRank of webpage you are browsing.&lt;br /&gt;&lt;br /&gt;When I browse to this blog guess what ? I got 7 out of 10 !!, holly crap!, how on earth it gets to that ? and if I'm not mistaken, I could make some fortune out of it :P&lt;br /&gt;&lt;br /&gt;yeah right, keep writing this kind of useless post, and won't be long till I get my blog kissing the floor again ~_~&lt;br /&gt;&lt;br /&gt;nite..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-8013257411844948197?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/8013257411844948197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=8013257411844948197' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/8013257411844948197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/8013257411844948197'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/12/holy-crap-i-got-7.html' title='Holy Crap, I got 7 ??'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-4616696302580429642</id><published>2008-11-10T20:48:00.003+07:00</published><updated>2008-11-11T08:11:04.048+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>Mysql Nested transaction</title><content type='html'>The last time I checked, transaction only supported for InnoDB and BerkeleyDB table format. One thing I didn't know before, that those table format &lt;span style="font-weight: bold;"&gt;doesn't support nested transaction&lt;/span&gt;, you can only do flat transaction that is, you cannot start a new transaction without end/commit previous one. In my case I'm using php pdo extension, everytime i start a new transaction with &lt;span style="font-family: courier new;"&gt;PDO-&gt;beginTransaction()&lt;/span&gt; the previous transaction automatically commited.&lt;br /&gt;&lt;br /&gt;Simply said it's imposible to use nested transaction using pdo (and maybe most of the php database library) for php.&lt;br /&gt;&lt;br /&gt;but from the command line you can however, use mysql &lt;span style="font-family: courier new;"&gt;savepoint&lt;/span&gt; and &lt;span style="font-family: courier new;"&gt;rollback to savepoint&lt;/span&gt; to stimulate nested transactions for example&lt;pre name="code" class="sql"&gt;&lt;br /&gt;START TRANSACTION&lt;br /&gt;-- parent sql goes here&lt;br /&gt;SAVEPOINT save_id1&lt;br /&gt;-- nested sql goes here&lt;br /&gt;ROLLBACK TO SAVEPOINT save_id1&lt;br /&gt;COMMIT&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;hope this would be usefull..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-4616696302580429642?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/4616696302580429642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=4616696302580429642' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/4616696302580429642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/4616696302580429642'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/11/last-time-i-checked-transaction-only.html' title='Mysql Nested transaction'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-970291012956089863</id><published>2008-11-05T11:02:00.007+07:00</published><updated>2008-11-10T11:01:47.164+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><title type='text'>Blogger SyntaxHighlighter</title><content type='html'>I've been googling a way out to make &lt;a href="http://code.google.com/p/syntaxhighlighter/"&gt;syntaxhighlighter&lt;/a&gt; works for my blog without success (well I think I've been &lt;span style="font-style: italic;"&gt;near-success&lt;/span&gt; but it wasnt good enough :p),  and today just discovered that this &lt;a href="http://fazibear.blogspot.com/2007/09/blogger-syntax-higlighter.html"&gt;guy&lt;/a&gt;(thx dude!) made a blogger widget based on syntaxhighlighter, just add the widget, and it's all done, no more publishing file, copying or hacking css, javascript etc..  &lt;br /&gt;&lt;br /&gt;clean and simple (I wish I had found this 2 days ago &amp;gt;,&amp;lt;! ).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-970291012956089863?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/970291012956089863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=970291012956089863' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/970291012956089863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/970291012956089863'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/11/blogger-syntaxhighlighter.html' title='Blogger SyntaxHighlighter'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-355451695571030370</id><published>2008-11-01T12:05:00.001+07:00</published><updated>2008-11-05T10:30:15.536+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Vim Easy Folding Tip</title><content type='html'>for me the most easiest way to use folding in vim is to use&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;:set foldmethod=indent&lt;/pre&gt;&lt;/blockquote&gt;intuitive and simple.&lt;br /&gt;&lt;br /&gt;when you use foldmethod=indent the folding will be based on indent (why of course :p), meaning the fold start and fold end is marked by line indentation (can be a tab, spaces, etc..)&lt;br /&gt;and these are the command I use the most.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;zm : reduce fold level&lt;/li&gt;&lt;li&gt;zM : fold level to zero, aka fold'em all !&lt;/li&gt;&lt;li&gt;zr : increase fold level&lt;/li&gt;&lt;li&gt;zR : fold level to the max, aka remove all fold&lt;/li&gt;&lt;li&gt;za : toogle fold open/close on current cursor&lt;/li&gt;&lt;li&gt;zA : same as above, but recursively&lt;/li&gt;&lt;li&gt;zX : undo previous fold command&lt;/li&gt;&lt;/ul&gt;what is a fold level ?&lt;br /&gt;the higher fold level means less folded text, the lower fold level means more folded text. Consider this snippet of code&lt;br /&gt;&lt;textarea name="code" class="php"&gt;if ($this-&amp;gt;getInvested()) {              =&amp;gt;fold level 0&lt;br /&gt;    $docs = new PortFolio();             =&amp;gt;fold level 1&lt;br /&gt;    foreach ($listAccount as $account) {&lt;br /&gt;        $account-&amp;gt;publish($docs);        =&amp;gt;fold level 2&lt;br /&gt;        $account-&amp;gt;setState(1);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/textarea&gt;when i used indent as foldmethod, indentation level is a fold level. The higher indentation level would have more foldlevel available on that window, when i type zm, foldlevel are reduce to 1, the line start from&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;$account-&gt;publish($... &lt;/pre&gt;&lt;/blockquote&gt;is folded, when I type zm again foldlevel are reduce to 0(this is minimum value), then the line&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;$docs = new... &lt;/pre&gt;&lt;/blockquote&gt;is folded, and so on. And viceversa, when I type zr foldlevel are increased, and the line in coresponding foldlevel is unfolded or opened&lt;br /&gt;&lt;br /&gt;what if I dont use indentation in my files ?&lt;br /&gt;u can use manual (the default foldmethod) or marker&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;:set foldmethod=manual&lt;br /&gt;:set foldmethod=marker&lt;/pre&gt;&lt;/blockquote&gt;note: that when you tried to open a fold recursively (using zA on a closed fold), it work like the way you expected, but when you tried to close a fold recursively it doesnt(well at least I didn't get it at first). It because zA on open fold, close a fold starting from the cursor as the bottom! not the top!, so how to close fold from the cursor to the bottom/deepest foldlevel, my current workaround is to visually select those region an use zC&lt;br /&gt;&lt;br /&gt;find out more bout vim's folding feature..&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;:help folding&lt;/pre&gt;&lt;/blockquote&gt;happy vimming !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-355451695571030370?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/355451695571030370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=355451695571030370' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/355451695571030370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/355451695571030370'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/11/vim-easy-folding-tip.html' title='Vim Easy Folding Tip'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-6576950084047627565</id><published>2008-10-30T00:47:00.004+07:00</published><updated>2009-02-11T17:22:33.020+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software-design'/><title type='text'>State Pattern Add-on thought</title><content type='html'>Just a note from my gumball's little thought.., for the next text, I'll use gumball machine as a case study (you might wanna read headfirst design-pattern first)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;assume that you already met with state pattern, or better, you've implement it!&lt;/span&gt;&lt;br /&gt;context class:&lt;br /&gt;is a class of an object that may have many different state.&lt;br /&gt;state class :&lt;br /&gt;is a class contains spesific behaviour for each state an object can have.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;if the transition is dynamic (depend on some condition/value), then it is more apropriate if the transition placed on the state classes, this way we have decide that we'll close the context class for modification,&lt;br /&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;if the transition is static (for every spesific event, always change to some other state), then it is more apropriate to place the transition logic on context, this way we have decide that we'll close the state class for modification&lt;br /&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;between state classes should dependent or coupled ?&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;if we decide to have transition controlled by state class(dynamic transition) then we cant avoid the coupling between state classes,&lt;br /&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;if we decide to have transition controlled in context, we can try to make those state classes more &lt;b&gt;independent&lt;/b&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;the way I see it, when we choose which class should be close for modification, the context or the state, is a matter of state capability(intelligence), if we decide the transition logic to be placed in state classes then we have made our state class more "intelligent", and so vice versa. Personally I'd chose the former (for now), yes we'd sacrifice the low-coupling between state classes, but it'll make the context a lot more solid, and as the definition of state pattern is to group behaviour into a spesific class based on it's internal state, my point of view is that state transition is also part of context's behaviour --CMIIW--&lt;br /&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;if you do have some conditional check, make sure that the checks on each state are specific, remove all redundant checks, because every check should be done on responsible state&lt;br /&gt;for example:&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;there's no need to check whether gumball still available on StateHasCoin, because we are certain that the gumball is surely available in StateHasCoin, if it is not available, then our machine would have gone straight to SoldOut state, without going through NoCoin and HasCoin state (imposible paths)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;it is best to have exception mechanism, because for every event there can be many current state method invocation(many line), which on every line the currentstate may have change to a different state class,&lt;br /&gt;so the idea is that exception will stop execution of state method on relevant state, it help to track the system state easily when the error happens.&lt;br /&gt;for example:&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;pre name="code" class="php"&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;//if the current state is no_coin&lt;br /&gt;public function pullLeverEventHandler() {&lt;br /&gt;   /*&lt;br /&gt;   * we still on no_coin,&lt;br /&gt;   * below line tells that we cant pull lever&lt;br /&gt;   * because we havent inserted any coin&lt;br /&gt;   */&lt;br /&gt;   this-&amp;gt;getState()-&amp;gt;pullLever();&lt;br /&gt;   /*&lt;br /&gt;   * we still on no_coin,&lt;br /&gt;   * below line tells that we cant dispense&lt;br /&gt;   * because it is invalid event for current state&lt;br /&gt;   */&lt;br /&gt;   this-&amp;gt;getState()-&amp;gt;dispense();&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;we have two error up there, so the question is...&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;which of em should be displayed? one or all of em ?&lt;br /&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;the order of the message ? ( invalid event, you haven't insert coin) or (you havent insert coin, invalid event) etc..&lt;/li&gt;&lt;/ul&gt;solutions: &lt;b&gt;use exceptions&lt;/b&gt;, it will halt on first state method invocation, then it will make more sense, --CMIIW--&lt;br /&gt;&lt;br /&gt;please throw me an argument :p ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-6576950084047627565?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/6576950084047627565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=6576950084047627565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/6576950084047627565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/6576950084047627565'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/10/state-pattern-add-on-thought.html' title='State Pattern Add-on thought'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-7286538312855091054</id><published>2008-10-21T23:49:00.000+07:00</published><updated>2008-11-02T15:53:36.163+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>VIM</title><content type='html'>Since my migration to linux I've set myself on a quest to find the ultimate text editor (haiiah, lebay :p). well anyway I have my own requirement for such a tool&lt;br /&gt;&lt;ul&gt;&lt;li&gt;lightweight and fast&lt;/li&gt;&lt;li&gt;syntax highlighting and formatting&lt;/li&gt;&lt;li&gt;tab-editing&lt;br /&gt;&lt;/li&gt;&lt;li&gt;auto-complete&lt;/li&gt;&lt;li&gt;flexible and configurable (support custom script)&lt;/li&gt;&lt;/ul&gt;when I'm still using windows, I didnt really pay attention on those criterias, coz most of the time I'm stuck with an IDE(not just a text editor). Komodo, eclipse to name a few. and just lately I realized that most of the tool those IDE provided is less usefull for me(well mostly because some of em isn't free :D), I just need the editor, and yes syntax highlight and formatting is a tempting feature for sure. So I started to googling, to find a good editor which presumably free, been trying this and that, and there it is VIM !.&lt;br /&gt;&lt;br /&gt;VIM (Vi IMproved) is a console based / command line editor a charityware wrote by Bram Moolenaar, and available as default in most of linux distro (the silly part is that the whole time the one I'm looking for is right under my own nose yet I'm searching or downloading from various places). With a default plugin gVim (gnome version of vim) load up less than a second in my 1420 inspiron box, whoossh.... It support syntax highlight and formatting for most of programming/scripting language, and my favorite is the omni completion feature, its an auto-complete feature with a dozen of option and preferences to suit my need, it can use a dictionary file or just simply scan a whole directory to find the completion words.&lt;br /&gt;&lt;br /&gt;Highly configurable, vim support custom script called vimscript (beside it's support on phyton, perl, and other script), which make it a lot more usefull for many editing purpose, theres a lot of ready made script from it's &lt;a href="http://www.vim.org/"&gt;main site&lt;/a&gt;, some of the script I've been using are&lt;br /&gt;&lt;ul&gt;&lt;li&gt;NerdCommenter, this plugin helps to do any function of commenting and uncommenting, and it support comment for huge number of programming language and script,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;snippets_emu, this is a wonderfull one, just type few letter and shift+tab(my mapping keys) and boom!the whole snippet of code is there! save a lot of time of typing, you could define your own snippet especially for something you'd type frequently&lt;/li&gt;&lt;li&gt;NerdTree, its like an explorer built in the editor, you can browse file and directory from it&lt;/li&gt;&lt;li&gt;TagList,  you can tag a file of code or a whole directory ( in *nix u can use &lt;a href="http://ctags.sourceforge.net/"&gt;ctags&lt;/a&gt;), and jump between various tag in a file, this is a lot faster than using pageup-pagedown, or scrolling your mouse up and down to go to different section in your file&lt;/li&gt;&lt;li&gt;VimTip,  for any of you that just start learning vim this plugin is a must!, every day it pops a tip bout what you can do with vim, contributed from various user all over the world.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;and a lot of any other I cant mention here, I cant thx enough to every of you that develop these vimscript and plugins !&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;One unique thing about it, is that VIM is a modal-based editor, which means it responds input differently based on its mode(state), for example vim has (from several other modes) input-mode and command-mode, when in input-mode vim behave like any other editor, everything I type is considered as text input, but when in command-mode the typing goes as command, I love it so much coz it allows me to use most of vim's editing function without have to move my finger off my keyboard home keys !!, it makes editing process a lot more efficient!&lt;br /&gt;&lt;br /&gt;Gosh, theres a lot of feature and advantage I just wont have enough time and space to tell em all, and yes, every day I always learn something new bout this editor,  not so much different with most of you, I'm still a newbie vimmer.&lt;br /&gt;&lt;br /&gt;Well, I have admit there are some drawback. The first maybe because of the learning curve, it takes some amount of brain power to at least start editing efficiently, and for me, it kind of hogging my short term memory the first time I learned it(but trust me, its a worthy investment)&lt;br /&gt;&lt;br /&gt;until the day I post this, vim development is still going active (thx Bram!!), the last stable version was Vim 7.2, unfortunately it seems ubuntu wont put these updates in the main repo for at least another release cycle, well we can always download the source and compile it for ourself cant we :p&lt;br /&gt;&lt;br /&gt;happy vimming !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-7286538312855091054?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/7286538312855091054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=7286538312855091054' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/7286538312855091054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/7286538312855091054'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/10/vim.html' title='VIM'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-5370366169415482027</id><published>2008-10-14T20:04:00.000+07:00</published><updated>2008-10-14T22:44:52.254+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><title type='text'>Motorola E398 Email Configuration</title><content type='html'>&lt;style type="text/css"&gt;&lt;br /&gt;        &lt;br /&gt; body {  }&lt;br /&gt; h1 { font-size: xx-large;&lt;br /&gt;           font-weight: bold;&lt;br /&gt;           border-bottom: 1px solid black; }&lt;br /&gt; div.note { overflow: auto;&lt;br /&gt;     position: relative;&lt;br /&gt;     display: block;&lt;br /&gt;     padding: 5pt;&lt;br /&gt;     margin: 5pt; &lt;br /&gt;     white-space: -moz-pre-wrap; /* Mozilla */&lt;br /&gt;            white-space: -pre-wrap;     /* Opera 4 - 6 */&lt;br /&gt;            white-space: -o-pre-wrap;   /* Opera 7 */&lt;br /&gt;            white-space: pre-wrap;      /* CSS3 */&lt;br /&gt;            word-wrap: break-word;      /* IE 5.5+ */ }&lt;br /&gt; &lt;/style&gt;&lt;div class="note" id="E398 Email Configuration"&gt;&lt;a name="#E398 Email Configuration"&gt;&lt;/a&gt;I'm using Indosat provider from Indonesia, to connect to my gmail account, modify these configuration to suit your provider, and mail account. Make sure the GPRS is active, open "messages", press menu button and choose "email msg setup"&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;ISP Settings&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;Connection Type : GPRS&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;make sure the gprs is active, use your working websession&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;APN address : indosatgprs or &lt;a style="color: rgb(52, 101, 164);" href="http://www.blogger.com/www.indosat-m3.net"&gt;www.indosat-m3.net&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;apn address, check to your provider&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;username : gprs&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;username, check to your provider&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;password : im3&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;check to your provider&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;DNS IP : 0.0.0.0&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;check to your provider&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;Account Settings&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;AccountName = "mygmail"&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;your phone account name, you could have more than one account setup on your phone ie "mygmail", "myyahoo", "school", etc..&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;Status : active&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;is the current phone account should be used for example when receiving and sending&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;Name : Hadi Zeftin&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;the name that appear on each email you'll send using this account setup&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;user ID : &lt;a style="color: rgb(52, 101, 164);" href="http://www.blogger.com/slack.dna@gmail.com"&gt;slack.dna@gmail.com&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;your email address (username@mailserver)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;password : &amp;lt;your_password&amp;gt;&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;password for your email account&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;return address : &lt;a style="color: rgb(52, 101, 164);" href="http://www.blogger.com/slack.dna@gmail.com"&gt;slack.dna@gmail.com&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;the address that people use to reply your email message&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;email provider : custom&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;because most of them are manual configuration, we choose custom&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;protocol : POP3&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;protocol can be POP3 or IMAP&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;sending host : smtp.gmail.com&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;sending server&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;sending port : 587 or 465&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;sending port, we dont use default(25), because the out server/sending server require TLS, on E398 they call it SSL&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;receiving host : pop.gmail.com&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;receiving server&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;receiving port : 995&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;receive port, we dont use default(110), because the incomingserver/receiving server require SSL&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;CleanUp : none&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;?&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;save on server : yes&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;each copy of email that we'll pop, should be save in server&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;security&lt;br /&gt;&lt;ul&gt;&lt;li dir="ltr"&gt;use ssl for sending : yes&lt;br /&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;use ssl for receiving : yes&lt;br /&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;warning in backgrounds : break connection&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;size restriction : 10240&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;notification : on&lt;br /&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;check new message : no&lt;br /&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;hide fields: bcc&lt;br /&gt;&lt;/li&gt;&lt;li dir="ltr"&gt;auto signature : &amp;lt;your_signature&amp;gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;pros: dont need 3rdparty software (j2me) to send and receive email, so it should be faster&lt;br /&gt;&lt;br /&gt;cons: if the incoming message is to long (most of them are) they are truncated, sigh..&lt;br /&gt;&lt;br /&gt;conclusion : the email client on E398 is less usefull when you want to read email ( especially when you got a dozen of em every hour), but when you need to send or reply email message ASAP, then this client can be preety much usefull&lt;br /&gt;&lt;br /&gt;NB: oh and dont forget to activate pop from your email account, If you have gmail like me then go to  settings-&gt;forwarding and POP/IMAP-&gt;enable pop ...&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-5370366169415482027?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/5370366169415482027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=5370366169415482027' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/5370366169415482027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/5370366169415482027'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/10/e398-email-configuration.html' title='Motorola E398 Email Configuration'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-1092926617612800282</id><published>2008-10-13T08:37:00.000+07:00</published><updated>2008-10-20T20:57:36.464+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plain-stupid'/><title type='text'>10 random stuff bout me</title><content type='html'>my &lt;a href="http://fitrianingrum.wordpress.com/"&gt;friend&lt;/a&gt; make me write this one out (you owe me one girl ;) )&lt;br /&gt;I wrote these facts just on top of my head, so here goes nothing..&lt;br /&gt;&lt;ol&gt;&lt;li&gt;I like to make up an excuse for myself to make me feel better or at least less guilty, while in fact, its NOT !&lt;/li&gt;&lt;li&gt;I HATE sinetron from the tip of my toe right up to the back of my head !! argh !!&lt;/li&gt;&lt;li&gt;My hair start failing since high school, if I dont do something about it, I'll be bold in less than 5 years from now...&lt;/li&gt;&lt;li&gt;When things go bad, I need to talk it out, before it blew my head off..&lt;/li&gt;&lt;li&gt;I dont really like sweet, but I do love chocolate&lt;/li&gt;&lt;li&gt;I'm a smart *ss&lt;/li&gt;&lt;li&gt;Lately I'm thinking that actually I like to push myself with the deadline(although I'll always complain and whining all the way), the habit of putting myself on a stress load, keeps me competent,.. ehm.. (refer to fact #1 and #6)&lt;/li&gt;&lt;li&gt;I'm the first of 2 born child, and I regretted for being a lousy brother especially when both of us still a little kid. and I try to make things up now..&lt;/li&gt;&lt;li&gt;since college, I have this problem with my stomach, sometime it hurt, or at least fells uncomfortable, it happen almost everyday, maybe its because the food or the water, I need to see a doctor sometime&lt;/li&gt;&lt;li&gt;Talking bout college, When I first came here, I really hate &lt;a href="http://www.ittelkom.ac.id/"&gt;this&lt;/a&gt; place, but now I can't even imagine what would I be, If I didnt get here (maybe I'll never get a chance to meet &lt;a href="http://desiarianti.wordpress.com/"&gt;her&lt;/a&gt;). ahh the point is, this computer stuff works out for me :D&lt;/li&gt;&lt;/ol&gt;next, I have to tag people, err... that's the hardest part, coz I dont seem to have lot's of friends on my blogroll, and its not like they going to write it anyway..,&lt;br /&gt;so for anyone reading this post, and want to write bout yourself, feels free to cited me :p&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-1092926617612800282?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/1092926617612800282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=1092926617612800282' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/1092926617612800282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/1092926617612800282'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/10/10-random-stuff-bout-me.html' title='10 random stuff bout me'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-2463114284077758091</id><published>2008-06-06T02:43:00.000+07:00</published><updated>2008-10-14T20:16:11.017+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>java 6 + applet + firefox 2 = hang</title><content type='html'>fyuuuh...&lt;br /&gt;&lt;br /&gt;finally I can get my applet working in firefox,&lt;br /&gt;&lt;br /&gt;I'm writing an applet application in my ubuntu box, and here's the first configuration&lt;br /&gt;&lt;ul&gt;&lt;li&gt;eclipse 3.3&lt;/li&gt;&lt;li&gt;jdk1.6.0_03&lt;/li&gt;&lt;li&gt;firefox 2.0.0.14&lt;/li&gt;&lt;li&gt;sun java plugin 6&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;I can write, compile and run the applet using applet-viewer built in eclipse, but some how everytime I try to deploy the applet to a web page, and view it with firefox, it crash! even until now I dont know why it crashed, been searching on forum and googling, I didnt find anything sufficient to solve my problem(or just me being dumb).. I was thinking maybe theres something wrong with java6 especially with applets, because not only my applet wont work,  applet from another site doesn't work either(I've tried with &lt;a href="http://www.realapplets.com/"&gt;realapplets&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;so, I tried my luck with java5, and here's the second configuration&lt;br /&gt;&lt;ul&gt;&lt;li&gt;eclipse 3.3&lt;/li&gt;&lt;li&gt;java-1.5.0-sun-1.5.0.13&lt;/li&gt;&lt;li&gt;firefox 2.00.14&lt;/li&gt;&lt;li&gt;sun java plugin 5&lt;/li&gt;&lt;/ul&gt;I've flush everything related with java6 in my laptop away, and replace it with java5, and ofcourse change the default java build path on my eclipse. I can write it compile it, but can't run it!!,  it says&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt; java.lang.UnsupportedClassVersionError: Bad version number in .class&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;oops, forgot to change the JDK compliance setting on my eclipse  from 6.0 to 5.0 (window-&gt;preferences-&gt;java-&gt;compiler), voila, it run :)&lt;br /&gt;&lt;br /&gt;if any of you wondering whats the error above, basically because you've build a java program using newer compiler, but running it under older jre. For example you've compiled your program using JDK 1.6, on eclipse, and when you tried to run it with your default jre set to 1.5, then you'll get those error throw at you.&lt;br /&gt;&lt;br /&gt;And yes, with java5 I was also able to run applet from another site..&lt;br /&gt;so for now my conclusion is,&lt;br /&gt;&lt;span style="font-weight: bold;font-size:9;" &gt;don't use java6, if you want to write, or run applet application&lt;/span&gt;&lt;br /&gt;I hope they'll fixed it soon..&lt;br /&gt;&lt;br /&gt;and just a tip:&lt;br /&gt;when you deploy your applet on web page, if you've put your .class file(s) under a directory inside your web root, don't prefix the code properties of applet tag with "./", or browser will say applet loading failed.&lt;br /&gt;dont use :&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:9;"  &gt;&amp;lt;applet code="./control/HelloWorld.class" height="400" width="400"&amp;gt;&amp;lt;/applet&amp;gt;&lt;/span&gt;&lt;br /&gt;instead use :&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:9;"  &gt;&amp;lt;applet code="control/HelloWorld.class" height="400" width="400"&amp;gt;&amp;lt;/applet&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;keyword : applet, firefox, java 6 plugin, ubuntu, hang, crashed&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-2463114284077758091?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/2463114284077758091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=2463114284077758091' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/2463114284077758091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/2463114284077758091'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/06/java-6-applet-firefox-2-hang.html' title='java 6 + applet + firefox 2 = hang'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-2936231786752497345</id><published>2008-06-06T00:40:00.000+07:00</published><updated>2008-06-06T01:10:47.791+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='work'/><title type='text'>Requirement and capacity</title><content type='html'>client:&lt;br /&gt;mas tolong buatin web&lt;br /&gt;&lt;br /&gt;developer:&lt;br /&gt;bisa!, mo yg kek gimana om ?&lt;br /&gt;&lt;br /&gt;client:&lt;br /&gt;klo bisa se interaktif mungkin..&lt;br /&gt;&lt;br /&gt;developer&lt;br /&gt;menurut om interaktif itu seperti apa ?&lt;br /&gt;&lt;br /&gt;client:&lt;br /&gt;saya denger2 web sekarang dah pake ajax, banyak animasi2 gitu deh, dan g perlu sampe reload halaman&lt;br /&gt;&lt;br /&gt;developer:&lt;br /&gt;ooow, mo pake ajax y? boleh2.., fungsionalitasnya apa aja kira2 ?&lt;br /&gt;&lt;br /&gt;client:&lt;br /&gt;bisa ini, bisa itu, kek gini, kek gitu, bla.. bla.. bla..&lt;br /&gt;&lt;br /&gt;--- after we finished with the requirement ---&lt;br /&gt;&lt;br /&gt;client:&lt;br /&gt;mas kok lemot ya ?&lt;br /&gt;&lt;br /&gt;develepor:&lt;br /&gt;oh y? emang klo mo yg level interaktifnya tinggi, y trade-off nya gitu.. rada lemot (cengar-cengir g jelas)&lt;br /&gt;&lt;br /&gt;client:&lt;br /&gt;waduh, repot ini..&lt;br /&gt;&lt;br /&gt;developer:&lt;br /&gt;mang serpernya segede apa om ? bandwith nya selebar apa y?&lt;br /&gt;&lt;br /&gt;client:&lt;br /&gt;heh? g gede2 amat kok :p&lt;br /&gt;&lt;br /&gt;developer:&lt;br /&gt;:) (dalam hati: beugh....)&lt;br /&gt;&lt;br /&gt;---------------------------------&lt;br /&gt;remember, client is always right!!, &lt;br /&gt;which mean when theres something went wrong, there's only one side to blame :(&lt;br /&gt;&lt;br /&gt;laen kali, klo da yg minta requirement aneh2 harusny dari awal developer sendiri sudah tanya2, apakah requirement yang bejibun itu sebanding dengan kapasitas mereka ?&lt;br /&gt;&lt;br /&gt;damn! always learn the hard way :p&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-2936231786752497345?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/2936231786752497345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=2936231786752497345' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/2936231786752497345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/2936231786752497345'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/06/requirement-and-capacity.html' title='Requirement and capacity'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-2753383092276841041</id><published>2008-06-02T16:23:00.000+07:00</published><updated>2008-06-02T16:43:28.251+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>NameSpace on PHP 5.3</title><content type='html'>Yippeeeeeeeeeeeeeeeeeeeeee...&lt;br /&gt;&lt;br /&gt;I'm so enormously glad knowing that they going to add complete support of NAMESPACE in php engine !!!&lt;br /&gt;&lt;br /&gt;I'm very an organized code kind a guy, and all this time, one of my difficulties on writing application with PHP is because it doesnt support namespace, which in turn giving me a hard time just for thinking their names&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;what's namespace for ?&lt;/span&gt;&lt;br /&gt;my simple view its one way for a programmer to have structured built into application component logically, without have to enforced the code structure phisically (eg. prefixing class name).&lt;br /&gt;&lt;br /&gt;for example conventional way to implement code structure in PHP is by using directories and prefix,&lt;br /&gt;I would have such structure&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;/www&lt;br /&gt;index.php&lt;br /&gt;/protected&lt;br /&gt; /controls&lt;br /&gt; /engine&lt;br /&gt;         /manager =&gt;manager related code&lt;br /&gt;             mgr_mod.php&lt;br /&gt;             mgr_priv.php&lt;br /&gt;         /user =&gt; user related code&lt;br /&gt;             usr_mod.php&lt;br /&gt;             usr_priv.php&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;whats up with the structure above ?&lt;/span&gt;&lt;br /&gt;u see, to avoid name conflict I have no other way beside prefixing the class name, and this is annoying me because sometime I really want the same name for those classes(eg. mgr_mod.php and usr_mod.php should just be mod.php), because actually they doing the same thing but on different domain, --apart from Generality/specialties design concept because some time I'd like to "break the rules" :p --&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;why so, they are in different directories right ?&lt;/span&gt;&lt;br /&gt;yes, that doesnt mean their logically in different places(this where namespace concept come up), because the whole application is a single namespace(well, actually there are no namespace at all) so even I've put those classes on different directories, their name musn't be the same, or PHP will throw an exception that said you have declared xx class more than once...&lt;br /&gt;&lt;br /&gt;with namespace i could simplify my class naming (this is what i thought)&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;/www&lt;br /&gt;index.php&lt;br /&gt;/protected&lt;br /&gt; /controls&lt;br /&gt; /engine&lt;br /&gt;         /manager&lt;br /&gt;             mod.php&lt;br /&gt;             priv.php&lt;br /&gt;         /user&lt;br /&gt;             mod.php&lt;br /&gt;             priv.php&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;in mod.php for manager i would have&lt;br /&gt;&lt;pre&gt;&lt;blockquote&gt;namespace Manager;&lt;br /&gt;class mod {&lt;br /&gt;...&lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;&lt;/pre&gt;&lt;br /&gt;and in mod.php for user I would have&lt;br /&gt;&lt;pre&gt;&lt;blockquote&gt;namespace User;&lt;br /&gt;class mod {&lt;br /&gt;...&lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;&lt;/pre&gt;&lt;br /&gt;in modern Object Oriented Language, we have package for java, and namespace for .net (is it just me, or .net is "inspiring" php alot ??)&lt;br /&gt;ofcourse, this isnt the only improvement that comes with 5.3 engine, but this is what thrill me the most..&lt;br /&gt;&lt;br /&gt;well, actually I dont have time to test it, just got this info from http://ilia.ws, and theres a big probability  that I've miss :p,&lt;br /&gt;another reason is PHP 5.3 isnt in stable release yet, still you can get it from http://snaps.php.net/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;cant wait till it stable..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-2753383092276841041?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/2753383092276841041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=2753383092276841041' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/2753383092276841041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/2753383092276841041'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/06/namespace-on-php-53.html' title='NameSpace on PHP 5.3'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-404279279745488294</id><published>2008-05-31T03:43:00.000+07:00</published><updated>2008-05-31T04:19:13.642+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plain-stupid'/><title type='text'>Fake Master</title><content type='html'>I'm so full of sh*t....&lt;br /&gt;most of the time I cant even be honest to myself&lt;br /&gt;&lt;br /&gt;I'm a true antagonist, hypocrite..&lt;br /&gt;&lt;br /&gt;if this spiderman movie, then I'm the Green Goblin..&lt;br /&gt;if this The silence of the Lamb, then I'm Hannibal..&lt;br /&gt;if this Total recall, them I'm Hauser.. &lt;br /&gt;if this is Ironman movie, then I'm Obadiah Stane..&lt;br /&gt;if this is Roman Empire, and I'm brutus..&lt;br /&gt;&lt;br /&gt;I've take my life for granted, there are times when, I really hate my self..&lt;br /&gt;and the worst of it,&lt;br /&gt;I CAN't stop pretending to be what I'm not, what I've never been, and what I'll never be...&lt;br /&gt;Fake !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-404279279745488294?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/404279279745488294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=404279279745488294' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/404279279745488294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/404279279745488294'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/05/fake-master.html' title='Fake Master'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-6066067659792867676</id><published>2008-04-28T11:27:00.000+07:00</published><updated>2008-04-28T11:30:10.957+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>gnome-network-manager vs wicd</title><content type='html'>here's some sort(maybe a little bias)review bout network manager in ubuntu.&lt;br /&gt;&lt;br /&gt;the first, and the default one is gnome network-manager, its suck!, especially its trey icon(nm-applet), because most of the time it just hang, I cannot disconnect without have to wait, and then it doesnt always succesfull, switching between available wireless network is a PITA! when i kill my wifi using it's switch while it's still connected, nm-applet just hang. the network manager had profile feature, so that laptop user can easily switch their network places, Dunno  bout you guys, but the profile thing never really work for me. although the functionallity is sufficient, personally I'm not quite comfortable with it.&lt;br /&gt;&lt;br /&gt;luckily theres another alternative called &lt;a href="http://wicd.sourceforge.net"&gt;wicd&lt;/a&gt; this network manager gives me full control bout my network, i can connect and (specially) disconnect at any given time i wish to be, and it just felt more responsive. wicd based on gtk, so theres no dependency on gnome, most of window manager can easily use it(although GTK is required), it also provide a working profile feature, the only drawback is that wicd doesnt detect my wifi interface automatically like gnome network manager does, but we can easily enter the interface name manually in its preferences window. Just try it.&lt;br /&gt;&lt;br /&gt;keyword: nm-applet, wicd, network manager gnome&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-6066067659792867676?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/6066067659792867676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=6066067659792867676' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/6066067659792867676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/6066067659792867676'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/04/gnome-network-manager-vs-wicd.html' title='gnome-network-manager vs wicd'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-5190604893904245357</id><published>2008-04-27T11:14:00.000+07:00</published><updated>2009-01-06T03:09:57.943+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software-design'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>MVC</title><content type='html'>one of the most popular architecture to be used in web development is MVC, yes because the simplicity of it's design which concentrate on how to separate responsibility between each logical part of the system, makes it easy to develop a system in the scale of enterprises. There are three main part of the system that implement MVC design.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Model,&lt;/span&gt; why didnt they call it VCM, or CVM, or VMC, etc.. why model first? in my perspective its because the whole thing that make our application work as expected is in the &lt;span style="font-weight: bold;"&gt;Model&lt;/span&gt;, this is our &lt;span style="font-weight: bold;"&gt;business logic&lt;/span&gt; lies, most people prefer it as &lt;span style="font-weight: bold;"&gt;domain model&lt;/span&gt;, this is where we'd play so many &lt;span style="font-weight: bold;"&gt;entity/business objects&lt;/span&gt; based on it's &lt;span style="font-weight: bold;"&gt;business rules&lt;/span&gt; in conjunction to the model functionality. A good model is a coherent one, which concentrate on specific functionality of system. MVC doesn't say much bout statefullnes of model, but in my experiences almost all of my model is statefull, meaning that it store information about what its doing now, what it have done before, and (probably) where it'll going.. -CMIIW-&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Controller&lt;/span&gt;, most of the time controller is smaller than model or view, why? because its sole responsibility is to do simple validation on the request, determine what model should serve that request,  load up the model, and hand off everything to the presentation layer(view) to render the result. Even though, it doesn't mean it will be simpler than any other part, and if you just start learning, theres a big probability that you'll mixed up with controller concept in &lt;span style="font-weight: bold;"&gt;event-driven-programming&lt;/span&gt;(I'll write about it later..), this part &lt;span style="font-weight: bold;"&gt;doesnt&lt;/span&gt; have logic in them, but depends on its design it may have to acquire some knowledge bout list of available views and models. There are several pattern to implement a Controller, some of them are &lt;span style="font-weight: bold;"&gt;Front Controller&lt;/span&gt; pattern, and &lt;span style="font-weight: bold;"&gt;Page controller&lt;/span&gt; pattern, Front controller is widely used by most of GUI framework these days where theres only a single controller to handle every request. And Page controller is a basic concept of controller in most of web application even those that didn't use MVC architecture.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;VIEW,&lt;/span&gt; finally this is the part where all eyes will look(literally). it can be simple, but it can be even more complicated than model, depends on what kind of application we're tryin to make. personally i get frustated with this part a lot, well I'm no designer :). The idea is factor out  gui-unrelated code as much as possible from it, so the change from the view will hardly effecting the model/business model, but the change from model may still affecting the view(think about it..).&lt;br /&gt;&lt;br /&gt;well, thats about 13minutes typing on the fly, and I'm sure there are lot of typo there. Its based on what I've done before and frankly I'm still in learning, just writing it down as is, and in the future I'd know what i've been missing :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-5190604893904245357?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/5190604893904245357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=5190604893904245357' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/5190604893904245357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/5190604893904245357'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/04/mvc.html' title='MVC'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-5531087843914075035</id><published>2008-04-27T11:03:00.000+07:00</published><updated>2008-04-27T12:21:43.781+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='etc'/><title type='text'>beres-beres!!!!!!</title><content type='html'>lets clean our own mess :)&lt;br /&gt;&lt;br /&gt;jam 9 tadi yoyok dateng ke lab, bangunin gw ma leo, bwt eksekusi rencana beres-beres lab, gw jadi inget masa-masa anak2 rpl-mm masih banyak yg di kampus (terutama yang masih seangkatan ato lebih tua :p), pas lagi kayak gini yang seru..(itu kalo dateng semua :)) hiks.. I miss y'all guys, duh, dah ditinggal gini gw... T_T&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-5531087843914075035?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/5531087843914075035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=5531087843914075035' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/5531087843914075035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/5531087843914075035'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/04/beres-beres.html' title='beres-beres!!!!!!'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-5347975098569140266</id><published>2008-04-20T03:11:00.000+07:00</published><updated>2008-04-27T12:20:44.897+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='etc'/><title type='text'>The Butterfly effect</title><content type='html'>ok, I have to write this down,&lt;br /&gt;&lt;p&gt;just watch an old movie called &lt;a href="http://en.wikipedia.org/wiki/The_Butterfly_Effect" target="_parent"&gt;The butterfly effect&lt;/a&gt;, i like the storyline, turns out i really into this kind of movie that kept my mind busy all the way till the end story and said "ah..., i see..", but ofcourse The Others still the only movie for me that made me said the longest "ah........." :p&lt;br /&gt;&lt;/p&gt;Theres a theory that said, a flap of a butterfly's wings, may cause unexpected chaos in the future, such as a tornado.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;In the movie, theres a guy named Evan, that can actually "redo" some of his action in the past by trying to remember it, and suddenly he'll get transported into that moment and possesed his past form (my tenses is starting to break here..), and change it. From saving his beloved friend, dogs, neighbour, mama, etc.. he get to a conclusion that no matter what changes he'd try to achieve theres always an unintended consequences, he always &lt;strong&gt;losing&lt;/strong&gt; something. Hmm.. i remember a phrase from that movie "You cannot play God!", yep.. imagine if we have chances to change the past, and alter the writen story of life, I cannot imagine what chaos we'll make. you all know "Back to the future" right ? when i was a kid watching that film, and thinking that it would be so cool to travel through time, and now after watching The Butterfly effect, if someone knock at my door and say "Hi!..How would you like to change history?", emmm.. i would think twice(even more)...&lt;br /&gt;&lt;p&gt;&lt;/p&gt;And as usual, got curious bout the theory, and do some wiki on it, and found out that the initial theory emphasis on a very small initial event(virtually undetected) in one place, that may cause chain-affect over time and at some point in the future projected into something really BIG(virtually, significantly detected) happening in various places in the world, Had the initial event never took place, the result in the future might have been REALLY different. So theres a slight different between the movie and the original theory, because everytime Evan change its past(go back to the past), what he did is actually significant and noticeable, and we all know that those actions will surely affect future(don't have to be a professor to know that). But the main idea still the same, whatever you did now even the slightest, no! i mean &lt;strong&gt;especially&lt;/strong&gt; the slightest, will determine what you'll get latter BIG TIME!&lt;br /&gt;&lt;br /&gt;&lt;p&gt;moral: be more sensitive, and watch your step :)&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-5347975098569140266?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/5347975098569140266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=5347975098569140266' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/5347975098569140266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/5347975098569140266'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/04/butterfly-effect-ok-i-have-to-write.html' title='The Butterfly effect'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-5424422105373936092</id><published>2008-04-08T23:21:00.000+07:00</published><updated>2008-10-14T20:16:11.017+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>My harddrive is killing it self !!</title><content type='html'>this is a shocking news -for me atleast-, just found out that there are some cases, where people using ubuntu on their laptop had some issues with their harddisk. unfortunately those people include me T_T...&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;i've learn that my harddisk come with installed firmware that control power_management so called APM(advanced power management) most of modern harddisk does, so what this APM do? dont know exactly but from what i've read it control anything that can be set in harddisk's firmware to reduce power consumption, one of them is how often a head of an harddisk parked(stop hovering on the plate). The more often harddisk's head parked, more power are saved -CMIIW-, an this is the one that cause trouble. Because default power_management setting on my laptop's harddisk is just to aggresive, it keeps parking it head down even when i'm still using it!, i can tell this from looking at my harddisk loadcyclecount, time to time.&lt;br /&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;br /&gt;$ sudo smartctl -a /dev/sda | grep Load_Cycle_Count&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;this number increasing too fast! about 1 load cycle per-minute O.o!!&lt;br /&gt;Yes this will save power -eventually also reduce harddisk temperature- but the scary thing is, this number is limited! average modern harddisk's max loadcycle is at least 600.000, so if i calculate my harddisk will only last for about 3-4 years max!!. I just dont like it!, luckly theres a workaround(ofcourse there's always a workaround :p), first check your default apm value(just incase something went wrong)&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;$ sudo hdparm -I /dev/sda | grep Advanced&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;then, we can just shut down apm with (they said this wont work in some laptop)&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;$ sudo hdparm -B 255&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;or use less aggresive setting (this one work for me)&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;$ sudo hdparm -B 254&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;one thing to kept in mind, this setting may increase harddisk's temperature, and this may do more harm than good, so make sure you really want to do this, and do this carefully! keep watching your harddrive status(loadcycle, temperature, etc..) use smartctl for this, until you sure this is ok! otherwise revert back.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;if above configuration is working for you we can make this a little easier and automatic. make sure you have laptop-mode-tools installed&lt;br /&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;br /&gt;$ sudo apt-get install laptop-mode-tools&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;then edit file /etc/laptop-mode/laptop-mode.conf&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;br /&gt;# let laptop-mode tool control power management setting&lt;br /&gt;CONTROL_HD_POWERMGMT=1&lt;br /&gt;&lt;br /&gt;# this is hdparm -B values, use your own configuration with care&lt;br /&gt;BATT_HD_POWERMGMT=128 # value to be used in battery mode&lt;br /&gt;LM_AC_HD_POWERMGMT=254 # value to be used in AC mode with laptop-mode enable&lt;br /&gt;NOLM_AC_HD_POWERMGMT=254 # value to be used in AC mode without laptop-mode&lt;br /&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;then, update file /etc/default/acpi-support, and change the value in line&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;br /&gt;# off by default&lt;br /&gt;ENABLE_LAPTOP_MODE=true&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;reboot.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;hmm, thats about it, my opinion is this isnt ubuntu's bug, because ubuntu doesnt change nor override harddisk firmware configuration, it is left as is, (well.. maybe they should)&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-5424422105373936092?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/5424422105373936092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=5424422105373936092' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/5424422105373936092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/5424422105373936092'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/04/my-harddrive-is-killing-it-self-this-is.html' title='My harddrive is killing it self !!'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-1819271218333169624</id><published>2008-03-24T13:40:00.002+07:00</published><updated>2009-01-06T00:39:47.120+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>XAMPP+XDEBUG+UBUNTU</title><content type='html'>ok, my ubuntu seem to work as expected(after 3 day struggling with the network !^^). so now i'll just take a break and writing down some small, common, boring, newbie tutorial :)&lt;br /&gt;&lt;p&gt;hmm.. the first thing that i want to do with this box, is to do some PHP coding, and debugging. To accomplish this one could just do&lt;br /&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;$ sudo apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server&lt;/pre&gt;&lt;/blockquote&gt;to install LAMP(Linux, Apache, MySql, PHP), and there you have it, simple huh? i remember doing this in slackware few years back ^^. next just start the apache, and mysql services by doing&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;$ sudo /etc/init.d/apache2 start&lt;br /&gt;$ sudo /etc/init.d/mysql start&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;you might want to change default root password for mysql database by&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;$ mysqladmin -u root password newpasswd&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;now debugging part, I've been using xdebug for the last year, before that I used DBG, my personal opinion, xDebug felt better, cause its free and opensource. but before we can debug our code, we have to install it first by downloading the source for linux(in windows box, I've use the precompiled binary one) from &lt;a href="http://www.xdebug.org/" target="_parent"&gt;here&lt;/a&gt;To install and configure xdebug for our local server is straight forward, I'll try to brief it here(you could see the README file in the tgz file for complete how-to)&lt;br /&gt;&lt;ol&gt;&lt;li&gt;unpack the tarball, and cd to it&lt;/li&gt;&lt;li&gt;run phpize ( if you have install php with apt-get this shouldn't be a problem) to generate configure script&lt;/li&gt;&lt;li&gt;run ./configure, next run make, and there you have it, xdebug.so on modules directory&lt;/li&gt;&lt;li&gt;then open /etc/php5/apache2/php.ini, using your fav editor&lt;br /&gt;&lt;/li&gt;&lt;li&gt;add the line&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;zend_extension="/wherever/you/put/it/xdebug.so"&lt;/pre&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;restart apache with&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;$ sudo /etc/init.d/apache2 restart&lt;/pre&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;xdebug, should be loaded, you can check using phpinfo()on your page script, and search the XDebug section on that page &lt;/li&gt;&lt;/ol&gt;fyuhh.. now thats a brief ^^&lt;br /&gt;&lt;br /&gt;the problem is, i didnt use ubuntu's LAMP :), I'm using XAMPP for Linux, formerly known as LAMPP, why ? because they have it all here, PHP4, PHP5, LAMP, ProFTPD, and PHPMyAdmin, sweet! just install it and you'll have the whole family with you.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;Then why is it, using XAMPP for linux than Ubuntu's LAMP would be slight a problem? because if you only download the xampp default package, you cant compile xdebug o.O !!. To compile xdebug you need the XAMPP source (development package), so here's another brief way to install XAMPP and xDebug on ubuntu&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Download XAMPP for linux, and XAMPP development package from &lt;a href="http://www.apachefriends.org/en/xampp-linux.html" target="_parent"&gt;here&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Untar both tarball into /opt/ directory with (this is a must)&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;$ tar -xzvf xampp-linux-1.6.6.tar.gz -C /opt&lt;br /&gt;$ tar -xzvf xampp-linux-devel-1.6.6.tar.gz -C /opt&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;and you'll have /opt/lampp/ directory&lt;br /&gt;&lt;/li&gt;&lt;li&gt;at this point you already have local server setup, you can check whether its working or not by&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;$ /opt/lampp/lampp start&lt;/pre&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;unpack xDebug tarball, and cd to it(wherever you unpack it doesnt matter)&lt;/li&gt;&lt;li&gt;run XAMPP's phpize to generate configure script(there's a slight different here)&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;#pick one&lt;br /&gt;$ /opt/lampp/bin/phpize-5.2.5 #if you use php 5&lt;br /&gt;$ /opt/lampp/bin/phpize-4.4.8 #if you use php 4&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;run&lt;blockquote&gt;&lt;pre&gt;$ ./configure --with-php-config=/opt/lampp/bin/php-config&lt;br /&gt;$ make&lt;/pre&gt;&lt;/blockquote&gt; and there you have it xdebug.so on /opt/lampp/modules directory, remember!, if you try to build xdebug package without aqquiring XAMPP development package, you'll stumble with some error that said missing this, missing that, etc..&lt;br /&gt;&lt;/li&gt;&lt;li&gt;then open /opt/lampp/etc/php.ini, using your fav editor&lt;/li&gt;&lt;li&gt;add the line&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;zend_extension="/wherever/you/put/it/xdebug.so"&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;next start your server, just like step #3&lt;/li&gt;&lt;li&gt;done :) &lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;ok, i might be missing some detail back there, (just typing what's in my head ^^), anyway the idea is, if you want to compile xdebug, you'll need PHP's sources (my case it was XAMPP development package)&lt;br /&gt;&lt;br /&gt;have a nice day.. :)&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-1819271218333169624?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/1819271218333169624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=1819271218333169624' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/1819271218333169624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/1819271218333169624'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/03/xamppxdebugubuntu.html' title='XAMPP+XDEBUG+UBUNTU'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-6122520512656487151</id><published>2008-03-19T11:43:00.000+07:00</published><updated>2008-11-02T15:53:56.302+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='etc'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Finally! migration!</title><content type='html'>at approximately, Sunday march 16 10am, i have execute single entry on my wish-list, that is migration to Linux!!&lt;p&gt;&lt;br /&gt;so which distro? &lt;/p&gt;&lt;p&gt;&lt;br /&gt;my first love was slackware, but i choose Ubuntu Gutsy Gibbon, cause actually i did (*try) to migrate before, using Slackware, but found a little cumbersome, instead of actually "work with it"  my time waste tryin to "make it work" !, and yes i am definitely a noob, and yes i will give slackware another shot, but for now i have more important things to finish, than just some obsession ^^&lt;/p&gt;&lt;p&gt;&lt;br /&gt;so i hope i can get down to "business" with this babe :p&lt;/p&gt;&lt;p&gt;&lt;br /&gt;wish me luck !&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-6122520512656487151?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/6122520512656487151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=6122520512656487151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/6122520512656487151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/6122520512656487151'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/03/finally-migration.html' title='Finally! migration!'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-4600335080542374732</id><published>2008-03-05T12:17:00.001+07:00</published><updated>2008-11-11T07:49:23.012+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='etc'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>Missing days..</title><content type='html'>&lt;span xmlns=""&gt;&lt;br /&gt;&lt;p&gt;Did you know that there are dates that didnt exist ?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;For example, there are no dates in year  1752 between Wednesday september 2&lt;sup&gt;nd&lt;/sup&gt; and  Thursday 14&lt;sup&gt;th&lt;/sup&gt; in britain. People call this the &lt;strong&gt;&lt;em&gt;cutover&lt;/em&gt;&lt;/strong&gt;, it happen when a country decide to switch from Julian to Gregorian calendar, and they have to discard at least 10 days. The first switch happen in  1952, below is the October's calendar of that year&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;br /&gt;&lt;thead&gt;&lt;br /&gt; &lt;tr&gt;&lt;th&gt;monday&lt;/th&gt;&lt;th&gt;tuesday&lt;/th&gt;&lt;th&gt;wednesday&lt;/th&gt;&lt;th&gt;thursday&lt;/th&gt;&lt;th&gt;friday&lt;/th&gt;&lt;th&gt;saturday&lt;/th&gt;&lt;th&gt;monday&lt;/th&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/thead&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt; &lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td style="color: rgb(255, 0, 0);"&gt;4&lt;/td&gt;&lt;td style="color: rgb(255, 0, 0);"&gt;15&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt; &lt;tr&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;&lt;td&gt;20&lt;/td&gt;&lt;td&gt;21&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;&lt;td&gt;24&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt; &lt;tr&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;26&lt;/td&gt;&lt;td&gt;27&lt;/td&gt;&lt;td&gt;28&lt;/td&gt;&lt;td&gt;29&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;31&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;actually days never missing, its just dates (cant stop thinking bout the people born in those day).The interesting part is, if more than one country switch calendar at the same time, the more days were lost o.O For Indonesia we already use Gregorian Calendar since the proclamation.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;You must be thinking i got this info from some website like wiki, or just googling it. Nope! I just read Mysql manual! (lho kok jadi nyambung ke database? Kapan seh gw iseng sengaja nyari info beginian^^)&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Yup, mysql engine uses calendar called Proleptic Gregorian Calendar for their &lt;span style="font-family:Courier New;"&gt;DATE&lt;/span&gt; or &lt;span style="font-family:Courier New;"&gt;DATETIME&lt;/span&gt; values, which assume there are no such event called &lt;strong&gt;&lt;em&gt;cutover&lt;/em&gt;&lt;/strong&gt;, for this reason every dates prior the original &lt;strong&gt;&lt;em&gt;cutover&lt;/em&gt;&lt;/strong&gt; must ajjusted ie. for russian minus 13 days.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Correct me if i'm wrong, havent read any other reference regarding this, just got really stuck with my &lt;span style="font-family:Courier New;"&gt;insertable view&lt;/span&gt; T_T (someone please show me how to work with these brats!)&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-4600335080542374732?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/4600335080542374732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=4600335080542374732' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/4600335080542374732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/4600335080542374732'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/03/missing-days.html' title='Missing days..'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-5987217316356978253</id><published>2008-02-24T20:01:00.002+07:00</published><updated>2008-04-10T12:52:36.563+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Object Oriented Programming Language, java?</title><content type='html'>Berdasarkan &lt;a href="http://fitrianingrum.wordpress.com/2008/02/22/java-is-not-a-fully-oo-programming-language/"&gt;tulisan temen&lt;/a&gt;, bahwa java bukan bahasa pemrograman yang mendukung object oriented murni, jadi gw nulis ini.&lt;br /&gt;Klo dilihat dari kata-katanya '&lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;mendukung object oriented murni&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;'&lt;/span&gt;, sebenernya g salah klo kita bilang java &lt;span style="color: rgb(51, 51, 255);"&gt;'&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;mendukung&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;' &lt;/span&gt;object oriented murni. Karena klo kita mau, bisa saja kita menggunakan konsep OO murni untuk program kita, misal tidak menggunakan tipe2 primitif melainkan menggunakan kelas, atau tidak menggunakan operator-operator dasar melainkan method-method dari operand-nya.&lt;br /&gt;Tapi setelah ditelaah lebih dalam, dan dari hasil googling, gw tiba pada suatu kesimpulan, dimana yang dimaksud object oriented murni adalah, suatu bahasa yang tidak memperkenankan adanya &lt;span style="color: rgb(51, 51, 255);"&gt;'&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;pencemaran&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;' &lt;/span&gt;terhadap konsep '&lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;everything is object&lt;/span&gt;', sementara java masih memperkenankan hal tersebut seperti penggunaan tipe-tipe dasar tadi.&lt;br /&gt;&lt;br /&gt;Sekedar gambaran, dalam java :&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;/*convert to string*/&lt;br /&gt;&lt;br /&gt;System.out.println(-1.toString());&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;jadi compile-error, soalnya java mengevaluasi &lt;span style="font-family:courier new;"&gt;-1&lt;/span&gt; sebagai nilai literal, bukan object, tapi klo dalam ruby:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;#convert to string&lt;br /&gt;&lt;br /&gt;puts -1.to_s()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;g jadi masalah karena,&lt;span style="font-family:courier new;"&gt; -1&lt;/span&gt; dievaluasi sebagai instance dari kelas &lt;span style="font-family:courier new;"&gt;Integer&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;ok, coba gw break down, dari level dukungannya terhadap OOP, bahasa pemrograman bisa dikategorikan:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Pure support, dimana seperti yang telah disebutkan tadi, bahasa-bahasa yang tidak memperkenankan pencemaran, bahasa ini antara lain adalah SmalTalk, Ruby, walaupun gw blm pernah nyoba ampe dalem, bahasa tersebut(cuma sebates helloworld ^^), tapi seh kata om google begitu...&lt;/li&gt;&lt;li&gt;Full/Complete support, nah ini bahasa yang paling populer jaman sekarang, khusus didesain untuk OOP, seperti java, c#, dll. bahasa ini bisa menerapkan semua konsep dan karakteristik OOP(kalau si-programmer yang bersangkutan mau) Namun masih menyediakan dukungan terhadap paradigma konvensional.&lt;/li&gt;&lt;li&gt;partiall support, untuk kategori ketiga ini sebenernya masih bisa dibreak down lagi, but for me they all look the same ;). umumnya bahasa-bahasa yang terkenal dalam paradigma prosedural, namun seiring dengan perkembangan teknologi, bahasa ini dikembangkan untuk bisa mendukung OOP, seperti C++, PHP, Fortran, Perl dll&lt;/li&gt;&lt;li&gt;No support, yup, ini adalah bahasa pemrogaman yang bener-bener g bisa dipake OOP, umumnya bahasa seperti ini masih populer dikalangan akademik untuk dijadikan materi pembelajaran. yg bisa gw pikirin sekarang cuma pascal, dan assembly&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;hmm, kira-kira gitu, skali lagi klasifikasi diatas itu based on my perspective, klo misal ada yg mo nambah ato ngoreksi, i'm open :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-5987217316356978253?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/5987217316356978253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=5987217316356978253' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/5987217316356978253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/5987217316356978253'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/02/object-oriented-programming-language.html' title='Object Oriented Programming Language, java?'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-2559734735156641787</id><published>2008-02-24T11:26:00.000+07:00</published><updated>2008-04-27T12:21:24.529+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='etc'/><title type='text'>Self intro1</title><content type='html'>hmmm...&lt;br /&gt;waktu gw masuk ke STT, gw sempet nyesel, hampir tiap malem yang ada dikepala gw cuma 1 pertanyaan 'why on earth i ended up, in this sh*thole?'&lt;br /&gt;hehehe parah y..., y namanya juga kecewa, pengen masuk jurusan mesin seh dulu, soalnya gw suka banget ma mekanik, tapi malah nyasar ke komputer.&lt;br /&gt;&lt;br /&gt;n sekarang di semester terakhir(amiiiiiinn) gw baru sadar ternyata, i really into this computer stuff.. the first time i learn how to program is the most wonderfull experience i ever had...&lt;br /&gt;hehehe, temen gw ada yang tanya 'zeft napa seh lo seneng banget berinteraksi dengan komputer..?' gw g pake mikir, langsung gw jawab 'because computer does exactly what i wanted!' hehehe, iya kan, aturan nya jelas, g ngelawan ^^, coba klo ngomong ama orang bisa susah saya..&lt;br /&gt;&lt;br /&gt;wkkkkk, klo dipikir2 autis banget gw, gw pernah mengalami masa dalam hidup gw, klo human comunication is delightfull, sampe2 ada temen gw ngusulin gw jadi pengacara ???? karena dia bilang 'Lo itu komunikatif banget!' g percaya kan.. iya sekarang gw aja g percaya.. ,&lt;br /&gt;tapi kok sekarang gw malah suka gelagapan didepan orang, apa gara2 sering2 ma komputer ?&lt;br /&gt;&lt;br /&gt;does computer dramatically change my way of life? maybe...&lt;br /&gt;its like ekstacy, especially when i found some trouble when i code or doing just about anything with my computer, and then found the solution with all the hastle, it felt like, ... orgasm ?? or something like that, you get the picture...&lt;br /&gt;&lt;br /&gt;moral: sh*thole would've been worse.. ^^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-2559734735156641787?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/2559734735156641787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=2559734735156641787' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/2559734735156641787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/2559734735156641787'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/02/self-intro1.html' title='Self intro1'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-3702142016811368648</id><published>2008-02-23T02:47:00.000+07:00</published><updated>2008-02-23T02:49:44.513+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='work'/><title type='text'>why am i like this?</title><content type='html'>aarrrrggh...&lt;br /&gt;&lt;br /&gt;harusnya gw nyelesein project gw..!!!!!!!!!!!!!, tapi ngapain gw ngurusin ginian.. $#@$!%$#@!&lt;br /&gt;fyuuuhh... i've to finish it by the end of the month..&lt;br /&gt;&lt;br /&gt;god give me strength!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-3702142016811368648?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/3702142016811368648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=3702142016811368648' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/3702142016811368648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/3702142016811368648'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/02/why-am-i-like-this.html' title='why am i like this?'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-3758989733507863160</id><published>2008-02-23T02:37:00.000+07:00</published><updated>2008-02-23T02:47:06.618+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='one year post'/><title type='text'>What's this? a one year one post blog ?</title><content type='html'>heeeeeeeehhh???....&lt;br /&gt;beneran, bener2 setaon gw br megang blog ini lg... bisa jadi rekor ney ^^...&lt;br /&gt;&lt;br /&gt;so ? why am i visiting my old, no good, useless, crampy, inapropriate ?, .. ehh (how do u say 'g penting banget' in english with the correct tone ?) blog again ?&lt;br /&gt;&lt;br /&gt;its because, i've just read my friends blog, and this strange feeling creeping in, it's almost like hearing them from inside...&lt;br /&gt;&lt;br /&gt;crap!!, what am i talking about.... ??&lt;br /&gt;&lt;br /&gt;ok, lets just see what and how many will show this year...&lt;br /&gt;&lt;br /&gt;zzzzzzzzz....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-3758989733507863160?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/3758989733507863160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=3758989733507863160' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/3758989733507863160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/3758989733507863160'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2008/02/whats-this-one-year-one-post-blog.html' title='What&apos;s this? a one year one post blog ?'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-3555182898820345457</id><published>2007-02-21T02:47:00.000+07:00</published><updated>2008-02-23T02:47:06.619+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='one year post'/><title type='text'>a year ??</title><content type='html'>d**n its almost a year,...&lt;br /&gt;&lt;br /&gt;baru sekarang gw nyentuh nih blog,..&lt;br /&gt;im tryin to write more, wish me luck :p&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-3555182898820345457?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/3555182898820345457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=3555182898820345457' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/3555182898820345457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/3555182898820345457'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2007/02/year.html' title='a year ??'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-114386849921957701</id><published>2006-04-01T12:14:00.000+07:00</published><updated>2008-02-23T02:47:06.619+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='one year post'/><title type='text'>cant figure everything out.....</title><content type='html'>&lt;p&gt;From last night i've been wasting my time to  study, since today i have my quiz on DAA subject, which fortunately a "take-home" quiz&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Noooo, actually i've been playing with my friends at laboratory all night long :p&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Almost forgot what i want to write, its been almost a week since we have upgraded bandwith in our campus, delightfull!!&lt;br /&gt;that's one of the reason why i would bother writing my own blog,  because i'm not accustom with the speed yet, so there's time when i dont know what else i want to do in the internet :).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-114386849921957701?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/114386849921957701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=114386849921957701' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/114386849921957701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/114386849921957701'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2006/03/cant-figure-everything-out.html' title='cant figure everything out.....'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-114376207129347574</id><published>2006-03-31T06:41:00.000+07:00</published><updated>2008-02-23T02:45:46.388+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plain-stupid'/><title type='text'>second one</title><content type='html'>&lt;a href="http://slackdna.blogspot.com/"&gt;testing, &lt;br /&gt; this looks stupid, i hope nobody would read this.&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-114376207129347574?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/114376207129347574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=114376207129347574' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/114376207129347574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/114376207129347574'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2006/03/second-one.html' title='second one'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25092689.post-114376175003251669</id><published>2006-03-31T06:32:00.000+07:00</published><updated>2008-02-23T02:45:46.389+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plain-stupid'/><title type='text'>first post</title><content type='html'>hmm, i dont know exactly what am i gonna do with this blog, but it seems writing could do ....&lt;br /&gt; hmm...&lt;br /&gt;  still dont know nothing....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25092689-114376175003251669?l=slackdna.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slackdna.blogspot.com/feeds/114376175003251669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25092689&amp;postID=114376175003251669' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/114376175003251669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25092689/posts/default/114376175003251669'/><link rel='alternate' type='text/html' href='http://slackdna.blogspot.com/2006/03/first-post.html' title='first post'/><author><name>Zeft</name><uri>http://www.blogger.com/profile/17727697685285193233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='24' src='http://4.bp.blogspot.com/_GcmyGfdqRPM/SuhgsPPpbKI/AAAAAAAAABA/ja8BRr7lqf0/S220/10431_140400473871_828133871_2555465_1264203_n.jpg'/></author><thr:total>0</thr:total></entry></feed>
