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

<channel>
	<title>Riding Linux</title>
	<atom:link href="https://ridinglinux.org/feed/" rel="self" type="application/rss+xml" />
	<link>https://ridinglinux.org</link>
	<description>The linux journey blog</description>
	<lastBuildDate>Mon, 23 Sep 2019 01:18:00 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.2.1</generator>
	<item>
		<title>Migrasi website MalayOLGA dari Codeigniter ke Laravel</title>
		<link>https://ridinglinux.org/2019/09/22/migrasi-website-malayolga-dari-codeigniter-ke-laravel/</link>
				<pubDate>Sun, 22 Sep 2019 12:48:02 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Bahasa Melayu]]></category>
		<category><![CDATA[Laravel]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Server Administration]]></category>
		<category><![CDATA[Yii]]></category>

		<guid isPermaLink="false">https://ridinglinux.org/?p=202</guid>
				<description><![CDATA[Portal hobi peribadi saya https://malayolga.name.my/ saya bina pada 1999 dan sejak bermula, is sudah alami beberapa sesi upgrade: 1999 &#8211; v1 &#8211; Geocities &#8211; static content HTML. 2002 &#8211; v2 &#8211; Hypermart.net. Perl &#38; Cgi-bin. Semi dynamic content. 2005 &#8211; v3 &#8211; Plain Php MySQL (no framework). 2008 &#8211; v4 &#8211; Codeigniter v1.6 framework. Oleh &#8230; <a href="https://ridinglinux.org/2019/09/22/migrasi-website-malayolga-dari-codeigniter-ke-laravel/" class="more-link">Continue reading<span class="screen-reader-text"> "Migrasi website MalayOLGA dari Codeigniter ke Laravel"</span></a>]]></description>
								<content:encoded><![CDATA[<p>Portal hobi peribadi saya <a href="https://malayolga.name.my/">https://malayolga.name.my/</a> saya bina pada 1999 dan sejak bermula, is sudah alami beberapa sesi upgrade:</p>
<p>1999 &#8211; v1 &#8211; Geocities &#8211; static content HTML.<br />
2002 &#8211; v2 &#8211; Hypermart.net. Perl &amp; Cgi-bin. Semi dynamic content.<br />
2005 &#8211; v3 &#8211; Plain Php MySQL (no framework).<br />
2008 &#8211; v4 &#8211; Codeigniter v1.6 framework.</p>
<p>Oleh kerana server MalayOLGA v4 sudah berjalan selama 11 tahun, saya rasa perlu untuk upgrade sistem tersebut. Ini kerana versi PHP sudah amat jauh ketinggalan, dan mempunyai risiko keselamatan jika terus digunakan. Oleh kerana Codeigniter v1.6 juga sudah amat tua, ia tidak lagi compatible dengan PHP terkini. Saya perlu juga untuk upgrade laman MalayOLGA agar menggunakan Codeigniter versi baru, atau tukar terus ke PHP framework yang lain.</p>
<p><img src="https://ridinglinux.org/wp-content/uploads/2019/09/ci-laravel-yii2.png"></p>
<p>Saya berpengalaman dengan Yii Framework sejak tahun 2012 dan sehingga kini saya masih menggunakan Yii version 2 (dipanggil Yii2) di dalam hampir kesemua projek-projek saya. Ia framework kegemaran saya atas banyak sebab. Namun begitu, sejak beberapa tahun ini, framework Laravel menjadi amat popular dan saya rasa perlu untuk mencubanya. Jadi, saya rasa inilah masanya untuk membuat eksperimen, dengan membuat migrasi website MalayOLGA dari Codeigniter ke Laravel. Dapat belajar sambil upgrade projek sebenar.</p>
<p>Seluruh proses berjalan selama <b>2 hari sahaja</b>! Amat melegakan kerana kebanyakan kod saya yang dibuat menggunakan Codeigniter adalah serasi dengan Laravel terutama kebanyakan syntax ActiveQuery Codeigniter adalah seakan-akan enjin ORM Laravel yang dinamakan Eloquent. Saya juga mengekalkan theme &amp; view sedia ada, sekadar mengadaptasi beberapa fungsi daripada enjin templating Laravel yang dinamakan Blade. Penggunaan routing di dalam Laravel juga membantu memastikan format URL boleh dikekalkan tanpa perubahan ketara, yang pada saya amat penting kerana semua URL laman web tersebut telah di index oleh Google, dan saya perlu elakkan carian pengguna di google daripada terganggu.</p>
<p>Yang paling menyeronokkan ialah penggunaan Pagination di dalam Laravel adalah amat serasi dengan Codeigniter. Seolah-olah tidak perlu mengubah apa-apa. Code sedia ada terus boleh berfungsi dengan sedikit sahaja perubahan.</p>
<p>Dua (2) hari yang amat produktif. Saya ambil masa separuh hari untuk menonton <a href="https://www.youtube.com/watch?v=hokQOstqf2o&amp;list=PL8p2I9GklV47fi-yiWkfRpbMV8PPaQDH4
" target="_blank" rel="noopener noreferrer">video tutorial laravel</a> dan selebihnya membuat migrasi code dan deploy ke server baru.</p>
<p>Dari segi pemerhatian awal, membandingkan dengan Yii2, pada saya Laravel dirasakan seakan-akan begitu hampir dengan CodeIgniter. Namun, ia kurang beberapa fungsi yang saya sukai di dalam Yii2 seperti Gii, CRUD, ActiveRecoredProvider dan Gridview/Detailview. Dari sudut prestasi, saya rasa Yii2 lebih pantas. Yii2 juga lebih bersifat <i>convention-over-configuration</i>, bermakna kita perlu jumpa rentak sebenar Yii2 sebelum dapat betul-betul menghargainya berbanding dengan Codeigniter dan Laravel yang memerlukan configurasi.</p>
<p>Setakat ini, misi migrasi MalayOLGA telah berjaya. Walaupun belum 100% fungsi telah saya kembalikan, ia sudah cukup untuk membuatkan laman tersebut online dengan framework yang baru. Saya akan mengkaji lagi Laravel ini. Untuk sementara ini, saya rasa ia belum cukup untuk mengenepikan Yii2 sebagai framework kegemaran saya. Untuk <a href="https://www.hexabit.io/" target="_blank" rel="noopener noreferrer">pasukan programmers muda saya</a> di Shah Alam, mereka akan terus dilatih dengan Yii2, sehingga saya sendiri yakin perlunya mengubah dari Yii2 kepada Laravel. Belum lagi, baru 2 hari mencuba, mungkin suatu masa nanti.</p>
]]></content:encoded>
										</item>
		<item>
		<title>Memanfaatkan Aplikasi Pantas Sifir Untuk Meningkatkan Penguasaan Sifir Di Kalangan Pelajar Sekolah Rendah Di Malaysia</title>
		<link>https://ridinglinux.org/2016/02/11/memanfaatkan-aplikasi-pantas-sifir-untuk-meningkatkan-penguasaan-sifir-di-kalangan-pelajar-sekolah-rendah-di-malaysia/</link>
				<pubDate>Thu, 11 Feb 2016 08:41:28 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Bahasa Melayu]]></category>
		<category><![CDATA[Pantas Sifir]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[malaysia]]></category>
		<category><![CDATA[matematik]]></category>
		<category><![CDATA[pantas sifir]]></category>

		<guid isPermaLink="false">http://www.ridinglinux.org/?p=172</guid>
				<description><![CDATA[Sifir adalah salah satu elemen penting di dalam pembelajaran awal matematik terutama di sekolah rendah. Kamus Dewan mendefinisikan sifir sebagai daftar angka yg digandakan berturut-turut. Di dalam sistem pendidikan Malaysia, sifir diperkenalkan kepada pelajar seawal sekolah rendah dimana pelajar dikehendaki untuk menghafal sekurang-kurangnya sehingga sifir dua belas (12) sebelum melangkah ke sekolah menengah. Bagi membantu &#8230; <a href="https://ridinglinux.org/2016/02/11/memanfaatkan-aplikasi-pantas-sifir-untuk-meningkatkan-penguasaan-sifir-di-kalangan-pelajar-sekolah-rendah-di-malaysia/" class="more-link">Continue reading<span class="screen-reader-text"> "Memanfaatkan Aplikasi Pantas Sifir Untuk Meningkatkan Penguasaan Sifir Di Kalangan Pelajar Sekolah Rendah Di Malaysia"</span></a>]]></description>
								<content:encoded><![CDATA[<p>Sifir adalah salah satu elemen penting di dalam pembelajaran awal matematik terutama di sekolah rendah. Kamus Dewan mendefinisikan sifir sebagai <b>daftar angka yg digandakan berturut-turut</b>. Di dalam sistem pendidikan Malaysia, sifir diperkenalkan kepada pelajar seawal sekolah rendah dimana pelajar dikehendaki untuk menghafal sekurang-kurangnya sehingga sifir dua belas (12) sebelum melangkah ke sekolah menengah. Bagi membantu pelajar, sifir dicetak atau dipamerkan di banyak tempat seperti di belakang buku tulis dan juga di papan tanda atau dinding-dinding sekolah. Ini untuk membantu pelajar-pelajar agar dapat menguasai sifir dan juga meningkatkan kesedaran betapa pentingnya sifir sebagai faktor utama di dalam menguasai ilmu matematik.</p>
<p>Namun begitu, terdapat kajian-kajian atau pemerhatian yang menunjukkan bahawa wujudnya masalah penguasaan sifir yang lemah yang berlaku di sekolah-sekolah rendah. Kajian-kajian tempatan seperti yang dibuat oleh Zain Mukmin (1984), Mook Soon sang (1990), Zainudin Bin Abu Bakar (2011) dan  Ainun Bariah Jaafar (2012) membangkitkan masalah yang wujud berkaitan kegagalan pelajar-pelajar menguasai sifir.</p>
<p>Di dalam era teknologi terkini, pelbagai kaedah boleh digunakan untuk merapatkan jurang serta membasmi permasalahan seperti ini. Aplikasi mobil boleh digunakan untuk menguji, melatih dan seterusnya menilai tahap pencapaian sifir di kalangan pelajar-pelajar sekolah rendah. Ini dibantu oleh faktor tarikan terhadap penggunaan peranti mudah alih seperti telefon pintar dan tablet itu sendiri yang biasanya mudah menarik minat kanak-kanak untuk menggunakannya. Terdapat pelbagai aplikasi samada percuma atau berbayar yang wujud di dalam pasaran. Antaranya adalah aplikasi Pantas Sifir yang dibekalkan percuma di dalam gedung aplikasi mudah alih Google Play.</p>
<p>Aplikasi Pantas Sifir adalah aplikasi mudah alih percuma untuk pengguna-pengguna peranti Android yang mula dipasarkan sekitar September 2015. Ia adalah aplikasi permainan yang mudah yang dibina khusus untuk membantu meningkatkan penguasaan sifir di kalangan rakyat Malaysia terutama pelajar-pelajar sekolah rendah. Di dalam aplikasi ini, pemain akan diberikan 20 soalan sifir darab. Pemain perlu dijawab dengan betul dan berusaha untuk menjawab dengan sepantas yang mungkin. Jumlah masa untuk menjawab 20 soalan itu akan direkodkan dan di hantar ke pelayan (server) Pantas Sifir. Catatan masa yang baik akan disenaraikan di dalam Carta Mingguan Pantas Sifir. Ini mewujudkan elemen persaingan sihat yang mendorong pemain-pemain memperbaiki catatan masa masing-masing dan juga mengatasi catatan masa pemain-pemain lain.</p>
<p>Prestasi pemain dikategorikan mengikut sekolah, umur dan negeri. Selain daripada itu, aplikasi Pantas Sifir ini juga membekalkan ciri <b>penciptaan pasukan</b> agar pemain-pemain dapat membina kohort atau kumpulan tersendiri bagi bersaing antara satu sama lain.</p>
<p>Statistik dan tabulasi pencapaian pemain disediakan secara online di laman web Pantas Sifir. Ini untuk memberi maklumat secara lansung kepada bukan sahaja pemain, tetapi juga kepada ibu bapa dan pengkaji-pengkaji atau penggiat akademik.<br />
Aplikasi ini boleh di muat turun di :<br />
<a href="https://play.google.com/store/apps/details?id=org.ridinglinux.lumbasifir&amp;referrer=utm_source%3Dridinglinux_blog%26utm_medium%3Dpost_172" target="_blank" rel="noopener noreferrer">https://play.google.com/store/apps/details?id=org.ridinglinux.lumbasifir</a></p>
<p>Laman web Pantas Sifir :<br />
<a href="http://pantassifir.ridinglinux.org" target="_blank" rel="noopener noreferrer">http://pantassifir.ridinglinux.org</a></p>
<p>Laman Facebook Page Pantas Sifir:<br />
<a href="https://www.facebook.com/pantasSifir" target="_blank" rel="noopener noreferrer">https://www.facebook.com/pantasSifir</a></p>
<p>Artikel seterusnya akan menyentuh pemerhatian terhadap prestasi pemain-pemain Pantas Sifir berdasarkan data yang dikumpul sejak 5 bulan, selepas aplikasi ini dipasarkan.</p>
<p><a href="http://www.ridinglinux.org/wp-content/uploads/2016/02/Screenshot_2015-09-27-22-24-58_1443364104874.jpg" rel="attachment wp-att-174"><img src="http://www.ridinglinux.org/wp-content/uploads/2016/02/Screenshot_2015-09-27-22-24-58_1443364104874-211x300.jpg" alt="Screenshot_2015-09-27-22-24-58_1443364104874" width="211" height="300" class="alignnone size-medium wp-image-174" srcset="https://ridinglinux.org/wp-content/uploads/2016/02/Screenshot_2015-09-27-22-24-58_1443364104874-211x300.jpg 211w, https://ridinglinux.org/wp-content/uploads/2016/02/Screenshot_2015-09-27-22-24-58_1443364104874.jpg 620w" sizes="(max-width: 211px) 85vw, 211px" /></a></p>
<p><a href="http://www.ridinglinux.org/wp-content/uploads/2016/02/Screenshot_2015-09-27-22-26-52_1443364070807.jpg" rel="attachment wp-att-176"><img src="http://www.ridinglinux.org/wp-content/uploads/2016/02/Screenshot_2015-09-27-22-26-52_1443364070807-202x300.jpg" alt="Screenshot_2015-09-27-22-26-52_1443364070807" width="202" height="300" class="alignnone size-medium wp-image-176" srcset="https://ridinglinux.org/wp-content/uploads/2016/02/Screenshot_2015-09-27-22-26-52_1443364070807-202x300.jpg 202w, https://ridinglinux.org/wp-content/uploads/2016/02/Screenshot_2015-09-27-22-26-52_1443364070807-691x1024.jpg 691w, https://ridinglinux.org/wp-content/uploads/2016/02/Screenshot_2015-09-27-22-26-52_1443364070807.jpg 596w" sizes="(max-width: 202px) 85vw, 202px" /></a></p>
<p><a href="http://www.ridinglinux.org/wp-content/uploads/2016/02/web_logo.png" rel="attachment wp-att-177"><img src="http://www.ridinglinux.org/wp-content/uploads/2016/02/web_logo-150x150.png" alt="web_logo" width="150" height="150" class="alignnone size-medium wp-image-177" srcset="https://ridinglinux.org/wp-content/uploads/2016/02/web_logo-150x150.png 150w, https://ridinglinux.org/wp-content/uploads/2016/02/web_logo-300x300.png 300w, https://ridinglinux.org/wp-content/uploads/2016/02/web_logo.png 180w" sizes="(max-width: 150px) 85vw, 150px" /></a></p>
]]></content:encoded>
										</item>
		<item>
		<title>XDash &#8211; Multiplication Race (Android App/Game)</title>
		<link>https://ridinglinux.org/2016/02/09/xdash-multiplication-race-android-appgame/</link>
				<pubDate>Tue, 09 Feb 2016 13:49:38 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[XDash]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[xdash]]></category>

		<guid isPermaLink="false">http://www.ridinglinux.org/?p=165</guid>
				<description><![CDATA[I recently developed a simple educational Android game with the objective to improve my children&#8217;s math multiplication skill. After having fun with it for quite some time among families and close friends, I&#8217;ve decided to share the app it in the Google Play so that everybody can download and use it free. I named this &#8230; <a href="https://ridinglinux.org/2016/02/09/xdash-multiplication-race-android-appgame/" class="more-link">Continue reading<span class="screen-reader-text"> "XDash &#8211; Multiplication Race (Android App/Game)"</span></a>]]></description>
								<content:encoded><![CDATA[<p>I recently developed a simple educational Android game with the objective to improve my children&#8217;s math multiplication skill. After having fun with it for quite some time among families and close friends, I&#8217;ve decided to share the app it in the Google Play so that everybody can download and use it free.</p>
<p>I named this app XDash. The game is very simple. Players will be given 20 multiplication questions, and need to be answered correctly and as quickly as possible. The total time taken will be recorded and viewable in the top XDash Weekly and the All-Time charts.</p>
<p>A 12 years old in my local community (Selangor, Malaysia) managed to record 22.5 seconds which is quite impressive. Given that this application is now published worldwide, I hope that many children can easily beat that record.</p>
<p>The app is available at <a href="https://play.google.com/store/apps/details?id=org.ridinglinux.xdash" target="_blank" rel="noopener noreferrer">https://play.google.com/store/apps/details?id=org.ridinglinux.xdash</a> Feel free to download try this app. If you think that this app can gives benefit to others, please rate it and share it to your friends. I accept comments and suggestions via the app?s Facebook Page at <a href="https://www.facebook.com/XDashApp" target="_blank" rel="noopener noreferrer">https://www.facebook.com/XDashApp</a></p>
<hr>
<h2>UPDATE (19 July 2016)</h2>
<p>Since published in December 2015, this app has generated lots of performance data of the players. I&#8217;ve prepared a web based portal at <a href="http://xdash.ridinglinux.org" target="_blank" rel="noopener noreferrer">xdash.ridinglinux.org</a> to display live data and statistics. I&#8217;m pleased to see the evidence of improvements with all the children who continue playing the game consistently. The chart below illustrates the time taken by a 10 years old kid in completing a series of math multiplication quizzes in the XDash Multiplication Game over several months with a total of 566 attempts.</p>
<p><a href="http://www.ridinglinux.org/wp-content/uploads/2016/02/aqilah.png" rel="attachment wp-att-182"><img src="http://www.ridinglinux.org/wp-content/uploads/2016/02/aqilah-300x176.png" alt="aqilah" width="300" height="176" class="alignnone size-medium wp-image-182" srcset="https://ridinglinux.org/wp-content/uploads/2016/02/aqilah-300x176.png 300w, https://ridinglinux.org/wp-content/uploads/2016/02/aqilah-768x451.png 768w, https://ridinglinux.org/wp-content/uploads/2016/02/aqilah-1024x602.png 1024w, https://ridinglinux.org/wp-content/uploads/2016/02/aqilah-1568x921.png 1568w" sizes="(max-width: 300px) 85vw, 300px" /></a></p>
<p>Source <a href="http://xdash-web.ridinglinux.org/stat/person-graph?user_id=686" target="_blank" rel="noopener noreferrer">http://xdash-web.ridinglinux.org/stat/person-graph?user_id=686</a></p>
<p><a href="https://play.google.com/store/apps/details?id=org.ridinglinux.xdash&amp;referrer=utm_source%3Dxdash_web%26utm_medium%3Dcontent"><img src="http://www.ridinglinux.org/wp-content/uploads/2016/02/play.png" alt="play" width="162" height="48" class="alignnone size-full wp-image-183"></a></p>
<hr>
<h4>Screen Shots of XDASH</h4>
<p><a href="http://www.ridinglinux.org/wp-content/uploads/2016/02/xdash512.png" rel="attachment wp-att-166"><img src="http://www.ridinglinux.org/wp-content/uploads/2016/02/xdash512-150x150.png" alt="xdash512" width="150" height="150" class="alignnone size-medium wp-image-166" srcset="https://ridinglinux.org/wp-content/uploads/2016/02/xdash512-150x150.png 150w, https://ridinglinux.org/wp-content/uploads/2016/02/xdash512-300x300.png 300w, https://ridinglinux.org/wp-content/uploads/2016/02/xdash512.png 180w" sizes="(max-width: 150px) 85vw, 150px" /></a></p>
<p><a href="http://www.ridinglinux.org/wp-content/uploads/2016/02/Screenshot_2015-12-28-18-43-31.png" rel="attachment wp-att-167"><img src="http://www.ridinglinux.org/wp-content/uploads/2016/02/Screenshot_2015-12-28-18-43-31-193x300.png" alt="Screenshot_2015-12-28-18-43-31" width="193" height="300" class="alignnone size-medium wp-image-167" srcset="https://ridinglinux.org/wp-content/uploads/2016/02/Screenshot_2015-12-28-18-43-31-193x300.png 193w, https://ridinglinux.org/wp-content/uploads/2016/02/Screenshot_2015-12-28-18-43-31.png 485w" sizes="(max-width: 193px) 85vw, 193px" /></a></p>
<p><a href="http://www.ridinglinux.org/wp-content/uploads/2016/02/Screenshot_2015-12-28-18-44-54.png" rel="attachment wp-att-168"><img src="http://www.ridinglinux.org/wp-content/uploads/2016/02/Screenshot_2015-12-28-18-44-54-176x300.png" alt="Screenshot_2015-12-28-18-44-54" width="176" height="300" class="alignnone size-medium wp-image-168" srcset="https://ridinglinux.org/wp-content/uploads/2016/02/Screenshot_2015-12-28-18-44-54-176x300.png 176w, https://ridinglinux.org/wp-content/uploads/2016/02/Screenshot_2015-12-28-18-44-54.png 414w" sizes="(max-width: 176px) 85vw, 176px" /></a></p>
<p><a href="http://www.ridinglinux.org/wp-content/uploads/2016/02/Screenshot_2015-12-28-18-45-41.png" rel="attachment wp-att-169"><img src="http://www.ridinglinux.org/wp-content/uploads/2016/02/Screenshot_2015-12-28-18-45-41-192x300.png" alt="Screenshot_2015-12-28-18-45-41" width="192" height="300" class="alignnone size-medium wp-image-169" srcset="https://ridinglinux.org/wp-content/uploads/2016/02/Screenshot_2015-12-28-18-45-41-192x300.png 192w, https://ridinglinux.org/wp-content/uploads/2016/02/Screenshot_2015-12-28-18-45-41.png 452w" sizes="(max-width: 192px) 85vw, 192px" /></a>.</p>
]]></content:encoded>
										</item>
		<item>
		<title>Prevent word wrap in Yii CGridView column</title>
		<link>https://ridinglinux.org/2013/02/15/prevent-word-wrap-in-yii-cgridview-column/</link>
				<pubDate>Fri, 15 Feb 2013 11:32:50 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Yii]]></category>

		<guid isPermaLink="false">http://www.ridinglinux.org/2013/02/15/prevent-word-wrap-in-yii-cgridview-column/</guid>
				<description><![CDATA[Sometime there are long data need to be displayed in Yii&#8217;s cgridview and you don&#8217;t want it to be wrapped. This can be achieved by setting appropriate CSS/style in the particular cell or column, for example specifying the width or nowrap. $this->widget('zii.widgets.grid.CGridView', array( 'id'=>'my-grid', 'dataProvider'=>$model->search(), 'columns'=>array( array( 'name'=>'LongAssetTag', 'htmlOptions' => array('style' => 'white-space: nowrap;') ), &#8230; <a href="https://ridinglinux.org/2013/02/15/prevent-word-wrap-in-yii-cgridview-column/" class="more-link">Continue reading<span class="screen-reader-text"> "Prevent word wrap in Yii CGridView column"</span></a>]]></description>
								<content:encoded><![CDATA[<p>Sometime there are long data need to be displayed in Yii&#8217;s cgridview and you don&#8217;t want it to be wrapped. This can be achieved by setting appropriate CSS/style in the particular cell or column, for example specifying the width or nowrap.</p>
<blockquote><p>
<code></p>
<pre>
$this->widget('zii.widgets.grid.CGridView', array(
	'id'=>'my-grid',
	'dataProvider'=>$model->search(),
	'columns'=>array(
		array(
			'name'=>'LongAssetTag',
			'htmlOptions' => array('style' => 'white-space: nowrap;')
		),
		......
	),
));
</pre>
<p></code>
</p></blockquote>
]]></content:encoded>
										</item>
		<item>
		<title>How long have I been asleep?</title>
		<link>https://ridinglinux.org/2008/10/23/how-long-have-i-been-asleep/</link>
				<comments>https://ridinglinux.org/2008/10/23/how-long-have-i-been-asleep/#comments</comments>
				<pubDate>Thu, 23 Oct 2008 05:16:52 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Server Administration]]></category>
		<category><![CDATA[glpi]]></category>
		<category><![CDATA[nagios]]></category>
		<category><![CDATA[ocs inventory]]></category>

		<guid isPermaLink="false">http://www.ridinglinux.org/2008/10/23/how-long-have-i-been-asleep/</guid>
				<description><![CDATA[&#8230;It has been quite a while since i last updated my blog. There are so many things going on in my life lately (in a good way) and I can say that I&#8217;m in a verge of a major shift of paradigm and perspective especially with regards to my career &#038; future. And yes, Open &#8230; <a href="https://ridinglinux.org/2008/10/23/how-long-have-i-been-asleep/" class="more-link">Continue reading<span class="screen-reader-text"> "How long have I been asleep?"</span></a>]]></description>
								<content:encoded><![CDATA[<p>&#8230;It has been quite a while since i last updated my blog. There are so many things going on in my life lately (in a good way) and I can say that I&#8217;m in a verge of a major shift of paradigm and perspective especially with regards to my career &#038; future. And yes, Open Source is still the key element of it. <img src="https://s.w.org/images/core/emoji/12.0.0-1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Recently I&#8217;ve been leading a project to implement a solution consisting of <a href="http://www.nagios.org/">Nagios</a> and <a href="http://www.ocsinventory-ng.org/">OCS Inventory</a> (with <a href="http://glpi-project.org/?lang=en">GLPI</a>) fo a local company which have a large number of IT assets spreaded all over Malaysia. It was quite an experience and I can say the scale of the project is the largest I&#8217;ve been involved so far in my career. There are a lot of chalenges, hiccups, headaches and even frustations during the project but at the end everything completed successfully.</p>
<p>I will provide the details if I have spare time, so stay tuned for more updates</p>
]]></content:encoded>
							<wfw:commentRss>https://ridinglinux.org/2008/10/23/how-long-have-i-been-asleep/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
							</item>
		<item>
		<title>Window Vista&#8217;s Source Code !</title>
		<link>https://ridinglinux.org/2008/07/05/window-vistas-source-code/</link>
				<comments>https://ridinglinux.org/2008/07/05/window-vistas-source-code/#comments</comments>
				<pubDate>Sat, 05 Jul 2008 12:46:06 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Non-OSS]]></category>

		<guid isPermaLink="false">http://www.ridinglinux.org/2008/07/05/window-vistas-source-code/</guid>
				<description><![CDATA[Some guys manage to get their hand into the source code of Windows Vista. And it is now circulating through the internet. Click on the image below to view the source code. 😛 Source: http://tuxmax.blogspot.com]]></description>
								<content:encoded><![CDATA[<p>Some guys manage to get their hand into the source code of Windows Vista. And it is now circulating through the internet. </p>
<p>Click on the image below to view the source code.</p>
<p><a href='http://www.ridinglinux.org/wp-content/uploads/2008/07/vista_source.gif' title='Vista Source Code'><img src='http://www.ridinglinux.org/wp-content/uploads/2008/07/vista_source.thumbnail.gif' alt='Vista Source Code' /></a></p>
<p><img src="https://s.w.org/images/core/emoji/12.0.0-1/72x72/1f61b.png" alt="😛" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Source:<br />
<a href="http://tuxmax.blogspot.com/2008/04/esclusivo-frammento-del-codice-di_01.html">http://tuxmax.blogspot.com</a></p>
]]></content:encoded>
							<wfw:commentRss>https://ridinglinux.org/2008/07/05/window-vistas-source-code/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
							</item>
		<item>
		<title>Installing Mozilla Firefox 3 on Gentoo 2008.0</title>
		<link>https://ridinglinux.org/2008/07/03/installing-mozilla-firefox-3-on-gentoo-20080/</link>
				<comments>https://ridinglinux.org/2008/07/03/installing-mozilla-firefox-3-on-gentoo-20080/#comments</comments>
				<pubDate>Thu, 03 Jul 2008 07:20:59 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Desktop Workstation]]></category>

		<guid isPermaLink="false">http://www.ridinglinux.org/2008/07/03/installing-mozilla-firefox-3-on-gentoo-20080/</guid>
				<description><![CDATA[I cannot hold myself anymore. I want Firefox 3 on my Gentoo machine ASAP. I don&#8217;t care about the feature, the risk and the hassle I might be facing installing unstable/testing application in my machine, I just want the new version on my PC! 🙂 Using emerge to search the package emerge --search mozilla-firefox Result: &#8230; <a href="https://ridinglinux.org/2008/07/03/installing-mozilla-firefox-3-on-gentoo-20080/" class="more-link">Continue reading<span class="screen-reader-text"> "Installing Mozilla Firefox 3 on Gentoo 2008.0"</span></a>]]></description>
								<content:encoded><![CDATA[<p>I cannot hold myself anymore. I want Firefox 3 on my Gentoo machine ASAP. I don&#8217;t care about the feature, the risk and the hassle I might be facing installing unstable/testing application in my machine, I just want the new version on my PC! <img src="https://s.w.org/images/core/emoji/12.0.0-1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Using emerge to search the package </p>
<pre><code>emerge --search mozilla-firefox</code></pre>
<p>Result:</p>
<blockquote><p>*  www-client/mozilla-firefox<br />
      Latest version available: 2.0.0.14<br />
      Latest version installed: 2.0.0.14
</p></blockquote>
<p>Fair enough, the stable branch only have version 2.0.0.14 as the latest one. So I enable unstable/testing branch for that particular package by inserting the line below in my /etc/portage/package.keywords</p>
<pre><code>www-client/mozilla-firefox ~x86</code></pre>
<p>Do the search again</p>
<pre><code>emerge --search mozilla-firefox</code></pre>
<p>Result:</p>
<blockquote><p>*  www-client/mozilla-firefox<br />
      Latest version available: 3.0-r1<br />
      Latest version installed: 2.0.0.14<br />
      Size of files: 50,442 kB<br />
      Homepage:      http://www.mozilla.com/firefox<br />
      Description:   Firefox Web Browser<br />
      License:       || ( MPL-1.1 GPL-2 LGPL-2.1 )
</p></blockquote>
<p>Nice, they have version 3.0-r1 in the repository. </p>
<p>After thinking for a while, I decided to proceed with the installation. Of course I have to enable some other unstable/testing packages in order to meet the dependencies.</p>
<p>I added those lines below in my /etc/portage/package.keywords file</p>
<pre><code>net-libs/xulrunner ~x86
dev-libs/nspr ~x86
dev-libs/nss ~x86</code></pre>
<p>Specifying custom USE parameter in /etc/portage/package.use file</p>
<pre><code>www-client/mozilla-firefox java linguas_en_US -ipv6 </code></pre>
<p><em>I don&#8217;t need IPV6</em></p>
<p>And start the installation process</p>
<pre><code>emerge -av mozilla-firefox</code></pre>
<p>I answered &#8216;yes&#8217; when asked and the installation process started. It took almost 20 minutes for the system to compile them. When it finished, I&#8217;ve been greeted with the message below. </p>
<blockquote><p>* Old versions of installed libraries were detected on your system.<br />
 * In order to avoid breaking packages that depend on these old libs,<br />
 * the libraries are not being removed.  You need to run revdep-rebuild<br />
 * in order to remove these old dependencies.  If you do not have this<br />
 * helper program, simply emerge the &#8216;gentoolkit&#8217; package.<br />
 *<br />
 *   # revdep-rebuild &#8211;library libnspr4.so.6<br />
 *   # revdep-rebuild &#8211;library libplc4.so.6<br />
 *   # revdep-rebuild &#8211;library libplds4.so.6
</p></blockquote>
<p>Ok. Some post installation works to do. But I would skip those steps for now. I will do them if I encounter any problem on other applications.</p>
<p>So I restarted my Firefox, went to some normal plugin/extension upgrade process and there I go, Firefox version 3 !</p>
<p><a href='http://www.ridinglinux.org/wp-content/uploads/2008/07/firefox_31.jpg' title='Firefox Version 3'><img src='http://www.ridinglinux.org/wp-content/uploads/2008/07/firefox_31.thumbnail.jpg' alt='Firefox Version 3' /></a></p>
]]></content:encoded>
							<wfw:commentRss>https://ridinglinux.org/2008/07/03/installing-mozilla-firefox-3-on-gentoo-20080/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
							</item>
		<item>
		<title>Dynamic email signature for your mail clients</title>
		<link>https://ridinglinux.org/2008/06/25/dynamic-email-signature-for-your-mail-clients/</link>
				<comments>https://ridinglinux.org/2008/06/25/dynamic-email-signature-for-your-mail-clients/#comments</comments>
				<pubDate>Wed, 25 Jun 2008 04:52:36 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Desktop Workstation]]></category>

		<guid isPermaLink="false">http://www.ridinglinux.org/2008/06/25/dynamic-email-signature-for-your-mail-clients/</guid>
				<description><![CDATA[Actually it is not that dynamic. Basically I just want to embed the list of my 3 latest blog postings in all my outgoing mails, just below my signature. So what I meant by dynamic is that the text file which is holding the signature will get updated from time to time via a cron-job &#8230; <a href="https://ridinglinux.org/2008/06/25/dynamic-email-signature-for-your-mail-clients/" class="more-link">Continue reading<span class="screen-reader-text"> "Dynamic email signature for your mail clients"</span></a>]]></description>
								<content:encoded><![CDATA[<p>Actually it is not that dynamic. Basically I just want to embed the list of my 3 latest blog postings in all my outgoing mails, just below my signature. So what I meant by dynamic is that the text file which is holding the signature will get updated from time to time via a cron-job and a simple script. </p>
<p>The script will read the RSS/Atom feed from my blog and capture the title &#038; url of three latest postings and pump them into my signature file. I use <a href="http://www.python.org/">Python</a> script and the marvelous <a href="http://www.feedparser.org/">Universal Feed Parser</a>. </p>
<p>For most of linux system python would already been installed by default. However you might need to install  Universal Feed Parser (python-feedparser) in order for the script to work.</p>
<p>In my Gentoo machine<br />
emerge -av dev-python/feedparser</p>
<p>For Fedora Users<br />
yum install python-feedparser</p>
<p>For Ubuntu users<br />
apt-get install python-feedparser</p>
<p>The phyton code (<em>take note that I&#8217;m new to python. If you find that the script is not appropriate please do advise me</em>)</p>
<pre><code>
#!/usr/bin/python

import feedparser

#the signature file (output)
filename = '/path/to/your/home/folder/.signature1'

#numbers of items to be displayed
num = 3

#feed address
feedurl = "http://feeds.feedburner.com/RidingLinux"

#your signature. Change accordingly
text = """Regards 
Your Name
Your Company
Address
Telephone

My latest BLOG posts:

"""

d = feedparser.parse(feedurl)
if d.feed.has_key('title') :
	file = open(filename, 'w')
	for i in range (num) :
		text = text + d['entries'][i]['title']+"\n"+d['entries'][i]['link']+"\n\n"
	file.write(text)
	file.close()
</code></pre>
<p>Save the above script in your home folder (eg: /home/yourname/signature-update.py) and test it out.<br />
Once everything is ok, add a cron-job for it to be executed in schedule.</p>
<p>Example (if you are using &#8216;crontab -e&#8217;) command</p>
<pre><code>0,30 * * * * python /home/yourname/signature-update.py >/dev/null 2>&1</code></pre>
<p>This will execute the script every half and hour.</p>
<p>Sample generated file</p>
<blockquote><p>
Regards<br />
My Name<br />
My Company<br />
My Address<br />
My Telephone Number</p>
<p>My latest BLOG posts:</p>
<p>Vuurmuur firewall management interface for Linux Iptables<br />
http://www.ridinglinux.org/2008/06/23/vuurmuur-firewall-management-interface-for-linux-iptables/</p>
<p>Food Strainer &#8211; Your Wifi reception booster!<br />
http://www.ridinglinux.org/2008/06/15/food-strainer-your-wifi-reception-booster/</p>
<p>Simple port forwarding with Iptables in linux<br />
http://www.ridinglinux.org/2008/05/21/simple-port-forwarding-with-iptables-in-linux/
</p></blockquote>
<p>Now I can simply point my mail client (Evolution, KMail, Claws-Mail or Thunderbird) to use the above file as my signature.</p>
]]></content:encoded>
							<wfw:commentRss>https://ridinglinux.org/2008/06/25/dynamic-email-signature-for-your-mail-clients/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
							</item>
		<item>
		<title>Vuurmuur firewall management interface for Linux Iptables</title>
		<link>https://ridinglinux.org/2008/06/23/vuurmuur-firewall-management-interface-for-linux-iptables/</link>
				<comments>https://ridinglinux.org/2008/06/23/vuurmuur-firewall-management-interface-for-linux-iptables/#comments</comments>
				<pubDate>Mon, 23 Jun 2008 09:44:21 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Server Administration]]></category>

		<guid isPermaLink="false">http://www.ridinglinux.org/2008/06/23/vuurmuur-firewall-management-interface-for-linux-iptables/</guid>
				<description><![CDATA[In my previous post regarding iptables, I&#8217;ve mention about an iptables management tool called Vuurmuur (http://www.vuurmuur.org/). Most people have probably heard about FireStarter, KMyFirewall and ShoreWall. Basically Vuurmuur serves the same purpose, which is providing easy way to manipulate iptables rules for users to manage their firewall without having to worry about all those complex &#8230; <a href="https://ridinglinux.org/2008/06/23/vuurmuur-firewall-management-interface-for-linux-iptables/" class="more-link">Continue reading<span class="screen-reader-text"> "Vuurmuur firewall management interface for Linux Iptables"</span></a>]]></description>
								<content:encoded><![CDATA[<p>In my previous post regarding <a href="http://www.ridinglinux.org/2008/05/21/simple-port-forwarding-with-iptables-in-linux/">iptables</a>, I&#8217;ve mention about an iptables management tool called <a href="http://www.ridinglinux.org/2008/05/21/simple-port-forwarding-with-iptables-in-linux/">Vuurmuur</a> <a href="http://www.vuurmuur.org/">(http://www.vuurmuur.org/)</a>. Most people have probably heard about FireStarter, KMyFirewall and ShoreWall. Basically Vuurmuur serves the same purpose, which is providing easy way to manipulate iptables rules for users to manage their firewall without having to worry about all those complex iptables commands. Those tools give us the ability to play around with iptables either by using graphical interface or adjusting configuration files. </p>
<p><a href='http://www.ridinglinux.org/wp-content/uploads/2008/06/vuurmuur-rules.png' title='Vuurmuur Rules List'><img src='http://www.ridinglinux.org/wp-content/uploads/2008/06/vuurmuur-rules.thumbnail.png' alt='Vuurmuur Rules List' /></a></p>
<p>The thing I like about vuurmuur is that it uses <a href="http://en.wikipedia.org/wiki/Ncurses">Ncurses</a> GUI interface, meaning that you can manage it via a terminal console or SSH. The drawback of using tools such as FireStarter, KmyFirewall is you need to have a graphical desktop, thus making it hard to manage them remotely especially via slow internet connection or if you are using Windows machine to do the administration process. While some other tools provide web-based management interface such as Smoothwall (via Webmin) or a dedicated firewall box like IpCop and Astaro Internet Security, allowing those web interface to the internet wouldn&#8217;t be a recommended practice. Furthermore, the web interface provided by Astaro Internet Security is too slow for a remote user.</p>
<p>So if you need a very light (and yet POWERFUL) solution suitable for frequent remote administration, its either you use the pure command line iptables command, or using config file based tool such as ShoreWall, or lastly if you really need non web-based GUI then Vuurmuur would be an ideal answer. You can simply SSH from anywhere (provided that you allow SSH remotely) or by using Windows SSH interface called Putty. </p>
<p>Apart form that, I am also pleased with it&#8217;s ability to do other things such as providing realtime log viewer, traffic shaping, traffic volume monitoring and lots more. Combine those things with <a href="http://iptraf.seul.org/">Iptraf</a>, then you will get hooked if front of your &#8216;blue screen&#8217; for the whole day, even worse than watching blue film. <img src="https://s.w.org/images/core/emoji/12.0.0-1/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><a href='http://www.ridinglinux.org/wp-content/uploads/2008/06/vuurmuur-logview.png' title='Vuurmuur realtime log viewer'><img src='http://www.ridinglinux.org/wp-content/uploads/2008/06/vuurmuur-logview.thumbnail.png' alt='Vuurmuur realtime log viewer' /></a></p>
]]></content:encoded>
							<wfw:commentRss>https://ridinglinux.org/2008/06/23/vuurmuur-firewall-management-interface-for-linux-iptables/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
							</item>
		<item>
		<title>Food Strainer &#8211; Your Wifi reception booster!</title>
		<link>https://ridinglinux.org/2008/06/15/food-strainer-your-wifi-reception-booster/</link>
				<comments>https://ridinglinux.org/2008/06/15/food-strainer-your-wifi-reception-booster/#comments</comments>
				<pubDate>Sun, 15 Jun 2008 05:54:59 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Non-OSS]]></category>

		<guid isPermaLink="false">http://www.ridinglinux.org/2008/06/15/food-strainer-your-wifi-reception-booster/</guid>
				<description><![CDATA[I recently moved to a new house. Everything went well apart from my telephone &#038; internet line migration. As for now, the telco/ISP (the Malaysian TMNet aka TMNut) cannot do the migration process due to technical problems. Been whacking their customer service almost everyday but they seem to have a trick of looping our reports &#8230; <a href="https://ridinglinux.org/2008/06/15/food-strainer-your-wifi-reception-booster/" class="more-link">Continue reading<span class="screen-reader-text"> "Food Strainer &#8211; Your Wifi reception booster!"</span></a>]]></description>
								<content:encoded><![CDATA[<p>I recently moved to a new house. Everything went well apart from my telephone &#038; internet line migration. As for now, the telco/ISP (the Malaysian TMNet aka TMNut) cannot do the migration process due to technical problems. Been whacking their customer service almost everyday but they seem to have a trick of looping our reports and complains into some kind of black hole. They responded with varies of reasons such as no ports available, faulty line ect..etc.. but none of them seems to make any sense.</p>
<p>I desperately need internet connection at home and luckily a neighbor who are a broadband subscriber willing to share his internet connection with me via Wifi. He already have a wireless AP installed at his home for personal use.</p>
<p>So I plugged in my USB wifi adapter and manage to connect to his AP. </p>
<p><a href='http://www.ridinglinux.org/wp-content/uploads/2008/06/usb_wifi.png' title='My USB wifi adapter'><img src='http://www.ridinglinux.org/wp-content/uploads/2008/06/usb_wifi.thumbnail.png' alt='My USB wifi adapter' /></a></p>
<p>But the signal is very sluggish which is expected due to the distance between our house. The link quality barely archive 50% and I got frequent disconnection. </p>
<p><a href='http://www.ridinglinux.org/wp-content/uploads/2008/06/wifi1.PNG' title='Wifi before food strainer'><img src='http://www.ridinglinux.org/wp-content/uploads/2008/06/wifi1.thumbnail.PNG' alt='Wifi before food strainer' /></a></p>
<p>Fortunately a few months back I&#8217;ve stumbled upon some funny trick of using food strainer to boost wireless signal. So this is the most suitable time try it out.</p>
<p>I bought myself a new food strainer for RM11.00 and I cut a little hole just about the size of my USB wifi body. </p>
<p><a href='http://www.ridinglinux.org/wp-content/uploads/2008/06/my_new_food_strainer.png' title='My New Food Strainer'><img src='http://www.ridinglinux.org/wp-content/uploads/2008/06/my_new_food_strainer.thumbnail.png' alt='My New Food Strainer' /></a></p>
<p>Put the device through the hole</p>
<p><a href='http://www.ridinglinux.org/wp-content/uploads/2008/06/usb_wifi_and_food_strainer1.png' title='Wifi inside food strainer'><img src='http://www.ridinglinux.org/wp-content/uploads/2008/06/usb_wifi_and_food_strainer1.thumbnail.png' alt='Wifi inside food strainer' /></a></p>
<p><a href='http://www.ridinglinux.org/wp-content/uploads/2008/06/usb_wifi_and_food_strainer2.png' title='Wifi inside food strainer 2'><img src='http://www.ridinglinux.org/wp-content/uploads/2008/06/usb_wifi_and_food_strainer2.thumbnail.png' alt='Wifi inside food strainer 2' /></a></p>
<p>And&#8230; PRESTO!!!</p>
<p><a href='http://www.ridinglinux.org/wp-content/uploads/2008/06/wifi2.PNG' title='Wifi after food strainer'><img src='http://www.ridinglinux.org/wp-content/uploads/2008/06/wifi2.thumbnail.PNG' alt='Wifi after food strainer' /></a></p>
<p>Neat (ugly) huh&#8230; But it surely works. My connection is now very stable.</p>
<p>My desktop show off ! (pardon my old hardwares. I&#8217;m a cheap geek..)</p>
<p><a href='http://www.ridinglinux.org/wp-content/uploads/2008/06/my_desktop.png' title='My powerful desktop'><img src='http://www.ridinglinux.org/wp-content/uploads/2008/06/my_desktop.thumbnail.png' alt='My powerful desktop' /></a></p>
<p>***I&#8217;m now thinking of permanently unsubscribe my TmNut telephone/internet line <img src="https://s.w.org/images/core/emoji/12.0.0-1/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
							<wfw:commentRss>https://ridinglinux.org/2008/06/15/food-strainer-your-wifi-reception-booster/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
							</item>
	</channel>
</rss>
