[cerita perjalanan] Pra Pendakian Gunung Pangrango

“Untuk alasan apa mendaki gunung?
buat saya, membuktikan anda SEHAT sudah cukup,
bagaimana dengan anda??”

Baiklah, saat kalian lihat postingan terakhir kapan, jangan ditanya kenapa baru posting tulisan lagi. ah, tulisan saya jadi kacau, ini karena otak saya lebih cepat berpikir dari pada jari-jari saya mengetik, ini yang biasa mengganggu saat hendak menulis sesuatu, terlalu banyak pertimbangan lah, pikiran terlalu paranoid lah, dan bermacam-macam lah… 😛 saya coba mengekesampingkan pikiran mengganggu itu dan mulai menulis, lagian kerjaan saya sebagai software developer mengetik kode udah selesai. ok, let’s start typing

beberapa minggu yang lalu akhirnya kerinduan saya akan naik gunung terbayar sudah. tepatnya mendaki Gunung Gede Pangrango, yang statusnya adalah taman nasional, sebut saja TNGGP, singkatan dari Taman Nasional Gunung Gede Pangrango. memang sebelum mendaki saya sudah prepare jauh-jauh hari sebelumnya salah satunya Keril, Rugsack(lupa tulisannya. -red) ini adalah perlengkapan wajib yang dimiliki, ya iyalah masa mw bawa karung :P! apalagi tenda, sudah di siapin saat kemping ke daerah ciwidey – bandung beberapa bulan lalu. untuk keril, pilihan hati saya yang sebelumnya sudah saya incar adalah Deuter Aircontact 45+10 warna merah, ini adalah Keril perdana saya untuk mendaki gunung, tentu saja bukan gunung perdana yang saya daki. selain keril ada sleeping bag, kaos tangan, matras dan prentilan-prentilan lainya.

hal pertama yang saya lakukan adalah mencari informasi pendakian gunung gede pangrango, dari hasil pencarian paman google, didapatlah halaman forum (kaskus, -red) dan beberapa blog pribadi mengenai pendakian ke TNNGP. ternyata untuk melakukan pendakian kita harus melakukan registrasi terlebih dahulu ke halaman resmi TNGGP, anda akan mudah mendapatkan halaman registrasi bila menyimak content yang ada dihalaman resmi tersebut. sayapun mendaftarkan diri, oh ia, untuk mendaki Gunung ini ada 3 jalur resmi, yaitu Cibodas, Gunung Putri, dan Salabinata. karena jalur Gn. Putri saat itu di tutup 3 bulan untuk keperluan rehabilitasi, kami tidak punya pilihan, terpaksa tracking ping-pong dari Cibodas – Cibodas, karena gerbang jalur Salabinata sulit untuk mencapainya, akses angkutan umum tidak ada(sayanya ga tau!-red). dalam perjalan kali ini saya bersama 2 saudara se rimba, Hisyam dan Herlan. dan kelompok pendaki 3 orang ini kesemuanya belum pernah mendaki gunung pangrango, dan ini adalah pendakian perdana ke Gunung Gede Pangrango. rasa was-was sempat terpikirkan, hanya saja rasa rindu mendaki gunung menenggelamkannya, dan telah berubah menjadi semangat yang menggebu (lebay :P).

SIMAKSI
setelah mendaftarkan diri beserta anggota yang ikut mendaki, kita diwajibkan untuk membayar biaya administrasi yang bisa ditransfer atau di bayar cash ke loket pengurusan di cibodas. setelah itu data kita diferifikasi oleh pihak TNGGP untuk mendapatkan yang namanya SIMAKSI, lembaran SIMAKSI inilah yang akan kita bawa ke gerbang pendakian yang selanjutnya diserahkan kepada para pemegang kunci TNGGP. cost yang anda keluarkan untuk mengurus simaksi ini tidak membuat anda jatuh miskinlah, seharga naik angkot hehehe gunung ini memang ribet pengurusan pendakian, terang saja, sampai saat ini tidak ada satupun gunung di indonesia yang mengharuskan registrasi online hanya untuk mendaki, kecuali Gunung ini. saya saja naik Gunung Tambora tinggal naik aja, cuman tetap lapor ke base camp. yang anda perlukan unutk mengurus simaksi ini adalah fotocopy KTP pendaki, materai 6000 untuk surat pernyataan, serta bukti transfer bila anda melakukan transfer via bank. setelah itu kita serahkan kepada petugas di kantor cibodas, dan menunggu nama kita di panggil untuk mengambil SIMAKSI, selanjutnya terserah anda 😛 saya mengurus SIMAKSI ini 2 minggu sebelum hari H, sengaja saya urus jauh2 hari karena mumpung libur panjang saat sebelum idul adha, karena pengen berwisata ke puncak, dan nge-camp disana hehe.

WISATA PUNCAK
daerah puncak memang dingin, klo anda pernah ke Kaliurang di Jogja, seperti itulah hawa-hawanya, ato enggak di daerah Malino kalo anda di makassar. perjalan dari jakarta ke puncak memang indah, melewati jalan berlika-liku, pemandangan padang/kebun teh, sampai dengan pemandangan banner-banner penyewaan villa 😛 berhubung lagi dipuncak, setelah mengurus SIMAKSI saya berencana ke KEBUN BUNGA Nusantara, kebun bunga yang notabanenya kebun bunga terbesar se indonesia, sebelum ke kebun bunga, saya mampir ke kebun raya cibodas, yang letaknya persis bersebelahan kantor TNGGP di cibodas, nanti di pintu gerbang masuk anda bertemu loket untuk membeli tiket. dikebun raya cibodas ini anda bisa melihat bunga sakura dan air terjun beserta sebuah sungai yang tidak terlalu besar, tidak ketigginggalan padang rumput nan hijau menyegarkan mata, enaknya disini anda tidak repot2 berjalan kaki seperti di kebun raya bogor, kendaraan pribadi diijinkan untuk masuk ke kawasan kebun 😉 saya menghabiskan waktu di kebun raya cibodas tidak terlalu banyak, karena takut terlalu sore untuk menuju taman bunga nusantara. pukul 15.00 (perkiraan -red) saya keluar setelah menikmati yang ada di kebun cibodas. segera menuju Taman Bunga.

dari cibodas aksesnya cukup mudah, hanya naik angkot 2 kali, dari cibodas ke terminal cipanas(semoga ga salah,-red) dari terminal tinggal naik angkot yang menuju mirawati(semoga tidak salah lagi,-red) angkot yang kedua ini persis melewati taman bunga, baik menuju taman bunga maupun balik ke terminal(maksudnya PP a.k.a pulang-pergi -red). saya tidak sabar untuk masuk kedalam saat sesampai di depan pintu gerbang taman bunga, dari luar sudah disuguhi pemandangan bunga-bunga dari manca negara. so excited. kita beli tiket terlebih dahulu sebelum masuk ke hamparan bunga didalam taman, ada juga fasilitas kereta mini untuk anda-anda yang tidak kuat berjalan a.k.a udah tua. keindahan taman bunga nusantara dapat anda lihat foto dibawah, jadi tergambarlah bagaimana indahnya taman bunga. malampun tiba, eiitsss, saya ga langsung pulang loh, karena sudah rencana, dan membawa tenda untuk camp, saya mampir ke Curug Cilember, ya, curug cilember yang dalam bahasa indonesianya air terjun:curug.

dari taman bunga, kita turun ke arah bogor, nanti sebelum nyampe bogor turun di hotel (lupa namanya, cari aja sendiri ya) atau di masjid (lupa juga nama masjidnya), nanti dari situ, lumayan masuk kedalam menggunakan ojek, dengan biaya 20ribu, kalo malam bs 25ribu, pintar2 nego aj sama ojeknya. disini kita bisa kamp, lagi-lagi ada loket tiket, anda pasti tau maksudnya, it’s all about money dude! 😛 katanya disini terdapat 7 airterjun, hanya beberapa yang bisa kita nikmati, nanti kalo kesana anda bisa melihatnya di papan informasi. berhubung 2 minggu kedepan mendaki gunung gede pangrango, sayapun warming up lutut agar saat daki gunung di TNGGP lutut tidak kaget. untuk daki pegunungan ini, medannya lumayan terjal dan licin, pas untuk para pendaki pemula. apalagi untuk mendaki menuju curug 1 yang saya sebut curug khayalan, karena setelah mendaki berjam-jam anda tidak akan dapat melihat curug ini, ya, you’ll get nothing bro, trust me!!. memang curug ini sebenernya ada, hanya saja jalurnya tidak memungkinkan. untuk wisatawan yang tidak memiliki outdoor stuff, disini disewa tenda-tenda bahkan ada villa juga, untuk masalah logistik jangan takut, karena banyak kios-kios yang jualan, untuk sholatpun ada mushola dsana. makanya saya betah disini, saya menghabiskan 3 hari 2 malam disini hahaha. karena lamanya, saya juga maen-maen sama dedek-dedek disana yang lucu-lucu, namanya vina dan vani mereka anaknya yang jualan disini, sebenernya maen sama adeknya buat modusin kakaknya, cuman ga jadi kwakakak sayapun kembali pulang ke depok pada malam takbiran idul adha, karena capek dan langsung tepar.

PAYUN
kendaraan pribadi saya, my CB, hanya terparkir dirumah, ga kemana-mana. memang saya berencana menggunakan angkutan umum untuk mencapai lokasi-lokasi wisata di puncak. ada yang menarik saat saya berada di angkutan umum, dari Cibodas ke taman bunga nusantara, para penumpang lokal sebelum hendak turun selalu meneriaki abang supirnya “Payun Bang…” karena sebagai turis lokal, saya tidak tahu-menau tentang si payun ini, awalnya saya kira payun itu nama daerah yang di tunjuk penumpang untuk turun, tapi anehnya masa nama daerah namanya sama semua, dan akhirnya saya menyimpulkan bahwa si “payun” itu adalah sebutan untuk memberhentikan angkot seperti kita menyebut “Kiri Bang” sesaat hendak turun dari angkot.

Detail dan cost perjalanan :

bersambung 😛

@vian_qu

 

album foto:

Halaman Kantor TNGGP

Halaman Kantor TNGGP

Sungai di Kebun Raya Cibodas

Sungai di Kebun Raya Cibodas

Kebun raya

Kebun raya

Taman Bunga Nusantara 3

Taman Bunga Nusantara 3

Taman Bunga Nusantara 4

Taman Bunga Nusantara 4

Curug Cilember 1 Lafuma Campo

Curug Cilember 1 Lafuma Campo

DSC_1292DSC_1322DSC_1323DSC_1328DSC_1392DSC_1354DSC_1411

Advertisements

multiple action in springMVC

controller

</p><p>@RequestMapping("/actionAgreement")<br /> public String actionAgreement(@RequestParam(required = false, value = "save") String save,<br /> @RequestParam(required = false, value = "delete") String delete,<br /> @ModelAttribute Agreement agreement, ModelMap modelMap){<br /> if (delete != null) {<br /> loanService.deleteAgreement(agreement);</p><p>addMessage(modelMap, "Collateral Management Agreement has been deleted successfully.", MessageType.success, true);</p><p>return "redirect:?output=body&amp;facilityNumber=" + agreement.getLoan().getFacilityNumber();<br /> }</p><p>if (save != null){</p><p>loanService.saveAgreement(agreement);</p><p>addMessage(modelMap, "Collateral Management Agreement has been saved successfully.", MessageType.success, true);</p><p>return "redirect:?output=body&amp;facilityNumber="+agreement.getLoan().getFacilityNumber()+"&amp;id="+agreement.getId();<br /> }</p><p><br /> addMessage(modelMap, "Failed to do Action on agreement..", MessageType.error, true);</p><p>return "redirect:?output=body&amp;facilityNumber=" + agreement.getLoan().getFacilityNumber();<br /> }</p><p>

 

jsp

</p><p> &lt;form action="&lt;c:url value="/process/agreement/actionAgreement"/&gt;" method="post" id="form-agreement"&gt;</p><p>...</p><p>&lt;div class="row buttons"&gt;<br /> &lt;div class="column8"&gt;<br /> &lt;button type="submit" name="save" value="save"&gt;&lt;span&gt;Save&lt;/span&gt;&lt;/button&gt;<br /> &lt;/div&gt;<br /> &lt;div class="column8" id="btn-delete"&gt;<br /> &lt;button type="submit" name="delete" value="delete"&gt;&lt;span&gt;Delete&lt;/span&gt;&lt;/button&gt;<br /> &lt;/div&gt;<br /> &lt;/div&gt;</p><p>

Deployment Automatization Using Apache Ant part 1

Dalam tahap development sebuah applikasi, kita tentu melakukan compile mengompile class-class yang sebelumnya kita buat. proses kompilasi ini pada IDE yg kita gunakan menset path hasil kompilasi tadi pada direktori tertentu, tanpa langsung melakukan penyalinan ke web server, dalam hal ini adalah apache tomcat.

untuk itulah kita menggunakan apache ant, dimana setelah kita melakukan kompilasi pada project kita, kita buat apache ant menyalin applikasi yang telah terkompililasi langsung ke direktori webapps apache tomcat, jadi proses pemindahan hasil kompilasi tadi tidak dilakukan manual. ini adalah salah satu cara yang cukup efektif dalam proses development.

 

berikut contoh builder menggunakan apache ant:

 


<target name="init">
 <mkdir dir="${encrypt.dir}" />
 <mkdir dir="${build.dir}" />
 <mkdir dir="${database.dir}" />
 <mkdir dir="${war.dir}" />
 </target>

 <target name="clean" description="Remove all files created by the build/test process.">
 <delete dir="${build.dir}" />
 <delete dir="${war.dir}" />
 <delete dir="${database.dir}" />
 </target>

<target name="compile" depends="init">
 <copy todir="${classes.dir}">
 <fileset dir="${src.dir}" includes="**/*.xml,*.properties, images/**"/>
 </copy>

 <copy todir="${build.dir}/WEB-INF/lib">
 <fileset dir="${lib.dir}" includes="**/*.jar"/>
 </copy>

<javac srcdir="${src.dir}" destdir="${classes.dir}" debug="yes">
 <classpath refid="project.classpath"/>
 <src path="${src.dir}"/>
 </javac>
 </target>

 <target name="build" depends="compile">
 <!-- Encryption -->
 <touch file="${pwdorginal.file}"/>

 <copy todir="${build.dir}">
 <fileset dir="WebContent" includes="**/*.*" excludes="lib/*.jar"/>
 </copy>
 </target>

 <target name="war" depends="build">
 <war destfile="${war.dir}/${webapp.name}.war" webxml="${build.dir}/WEB-INF/web.xml" update="true">
 <fileset dir="${build.dir}">
 <include name="**/*"/>
 </fileset>
 </war>
 </target>

 <target name="deploy" depends="war">
 <delete dir="${tomcat.home}/webapps/${webapp.name}"/>
 <delete dir="${tomcat.home}/work/Catalina/localhost/${webapp.name}"/>
 <mkdir dir="${tomcat.home}/webapps/${webapp.name}"/>
 <copy todir="${tomcat.home}/webapps/${webapp.name}">
 <fileset dir="${build.dir}"/>
 </copy>
 </target>

 

yang anda lakukan adalah mengidentifikasi property-property pada potongan script diatas di bagian awal file builder xml anda. seperti berikut:


...

<property name="war.dir" value="build/dist"/>

...

 

selamat belajar dan semoga membantu

auto mapping column name to POJO property using mapUnderscoreToCamelCase setting

pengguna mybatis yang budiman, fitur yang cukup membantu dalam tahap development aplikasi yang anda bangin dengan iBatis maupun myBatis adalah mapUnderscoreToCamelCase, fitur ini dapat anda tambahkan pada mybatis-config.xml bersama configuration yang lainnya berikut adalah contoh settingan saya:


<configuration>

<settings>
 <setting name="cacheEnabled" value="false"/>
 <setting name="lazyLoadingEnabled" value="true"/>
 <setting name="multipleResultSetsEnabled" value="true"/>
 <setting name="useColumnLabel" value="true"/>
 <setting name="useGeneratedKeys" value="true"/>
 <setting name="autoMappingBehavior" value="PARTIAL"/>
 <setting name="defaultExecutorType" value="SIMPLE"/>
 <setting name="safeRowBoundsEnabled" value="false"/>
 <setting name="mapUnderscoreToCamelCase" value="false"/>
 <setting name="localCacheScope" value="SESSION"/>
 <setting name="jdbcTypeForNull" value="OTHER"/>
 <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
 <strong><setting name="mapUnderscoreToCamelCase" value="true"/></strong>
 </settings>

...

</configuration>

kegunaan settingan diatas adalah untuk mengotomatisasikan nama kolom yang ada pada table anda ke property java bean anda. seperti contoh nama kolom anda pada table adalah user_name, akan direpresentasikan pada bean anda adalah userName. jadi anda tidak repot-repot lagi menulis SQL di xml seperti ini

select
user_name as userName
from
table_user
semoga membantu

fixed error : Mapped Statements collection does not contain value for yourClassName

to fixed problem if you see error like this “Mapped Statements collection does not contain value for , you need check your code and make sure the three names have to match:
– interface = your.Path.dao.YourClassInterface
– mapper file = /your/path/dao/YourClassInterface.xml
– mapper namespace = your.Path.dao.YourClassInterface

in .xml my batis mapper file, make sure namespace is your interface path and name, not your model/bean.

happy coding! 😛

fixed org.postgresql.jdbc4.Jdbc4PreparedStatement.setQueryTimeout(int) is not yet implemented.

i tried integrating spring, struts2 and myBatis framework, i’ve found many error when trying to start application. one of that errors is failed querying to database cause SQLFeatureNotSupportedException.

if you see Cause: java.sql.SQLFeatureNotSupportedException: Method org.postgresql.jdbc4.Jdbc4PreparedStatement.setQueryTimeout(int) is not yet implemented. error on your application log, its mean you need to reconfigure your apps. there properties on your config use query time out, but the jdbc driver not yet implement.

that problem will be fixed if you remove/comment your properties configuration. see my config before and after.

mybatis-config.xml (before)


<configuration>
 <settings>
 <setting name="cacheEnabled" value="true"/>
 <setting name="lazyLoadingEnabled" value="true"/>
 <setting name="multipleResultSetsEnabled" value="true"/>
 <setting name="useColumnLabel" value="true"/>
 <setting name="useGeneratedKeys" value="false"/>
 <setting name="autoMappingBehavior" value="PARTIAL"/>
 <setting name="defaultExecutorType" value="SIMPLE"/>
<strong><setting name="defaultStatementTimeout" value="25000"/></strong>
 <setting name="safeRowBoundsEnabled" value="false"/>
 <setting name="mapUnderscoreToCamelCase" value="false"/>
 <setting name="localCacheScope" value="SESSION"/>
 <setting name="jdbcTypeForNull" value="OTHER"/>
 <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
 </settings>

</configuration>

mybatis-config.xml (after)


<configuration>
<settings>
<setting name="cacheEnabled" value="true"/>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="multipleResultSetsEnabled" value="true"/>
<setting name="useColumnLabel" value="true"/>
<setting name="useGeneratedKeys" value="false"/>
<setting name="autoMappingBehavior" value="PARTIAL"/>
<setting name="defaultExecutorType" value="SIMPLE"/>
<strong><!--<setting name="defaultStatementTimeout" value="25000"/>--></strong>
<setting name="safeRowBoundsEnabled" value="false"/>
<setting name="mapUnderscoreToCamelCase" value="false"/>
<setting name="localCacheScope" value="SESSION"/>
<setting name="jdbcTypeForNull" value="OTHER"/>
<setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
</settings>

</configuration>

then start your apps, this error should be gone.

see postgres and jdk version miss match in this link http://jdbc.postgresql.org/download.html

hope this post will help you, thanks