<?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-3649762546426954893</id><updated>2011-09-16T09:52:55.119-07:00</updated><category term='Research'/><category term='Computer Science Education'/><category term='Linux'/><category term='Programming'/><title type='text'>Uptime</title><subtitle type='html'>When the system is not down</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jachermocilla.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jachermocilla.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Joseph Anthony C. Hermocilla</name><uri>http://www.blogger.com/profile/06540390289881167599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_FPUV-FqSR3o/SsSyR8DDKyI/AAAAAAAAACI/JpygxMmsuj4/S220/me.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3649762546426954893.post-8357841620290294333</id><published>2011-08-11T20:25:00.000-07:00</published><updated>2011-08-19T22:05:28.778-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Using "apt-get update" behind a transparent proxy</title><content type='html'>&lt;pre&gt;$sudo apt-get update -o Acquire::http::No-Cache=True&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3649762546426954893-8357841620290294333?l=jachermocilla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jachermocilla.blogspot.com/feeds/8357841620290294333/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3649762546426954893&amp;postID=8357841620290294333' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/8357841620290294333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/8357841620290294333'/><link rel='alternate' type='text/html' href='http://jachermocilla.blogspot.com/2011/08/using-apt-get-update-better-way.html' title='Using &quot;apt-get update&quot; behind a transparent proxy'/><author><name>Joseph Anthony C. Hermocilla</name><uri>http://www.blogger.com/profile/06540390289881167599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_FPUV-FqSR3o/SsSyR8DDKyI/AAAAAAAAACI/JpygxMmsuj4/S220/me.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3649762546426954893.post-5719249759902979418</id><published>2011-02-27T22:47:00.000-08:00</published><updated>2011-02-28T05:28:42.618-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Research'/><title type='text'>On the Role of Faculty in a Research University</title><content type='html'>&lt;b&gt;&lt;i&gt;Research-Driven Academic Growth and National Relevance of UP&lt;/i&gt;&lt;/b&gt; by &lt;a href="http://www.nast.ph/index.php?option=com_profile&amp;amp;id=15&amp;amp;view=alldetails&amp;amp;template=nast3"&gt;Dr. Gisela P. Concepcion&lt;/a&gt;&lt;br /&gt;Some key ideas: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Research mentoring is important&lt;/li&gt;&lt;li&gt;Being a faculty involves teaching, research, advocacy and extension work&lt;/li&gt;&lt;li&gt;Publishing research results and patent applications is a top priority&lt;/li&gt;&lt;li&gt;Submit papers to international journals for pre-review&lt;/li&gt;&lt;li&gt; Levels of scientific activity:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;innovative, creative, trailblazing&lt;/li&gt;&lt;li&gt;iterative, modifying science&lt;/li&gt;&lt;li&gt;routine, protocol science&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&amp;nbsp;Research in the Philippines must now move on to the molecular level&lt;/li&gt;&lt;li&gt;Review Technology Transfer Bill&lt;/li&gt;&lt;li&gt;Come up with a scientific advocacy&lt;/li&gt;&lt;li&gt;The Dean shall provide&lt;/li&gt;&lt;li&gt;Minimize administrative work of young faculty to be able to focus on research&lt;/li&gt;&lt;li&gt;Every young faculty should have a major specialization (in his field) and a minor specialization (collaborative)&lt;/li&gt;&lt;li&gt;An enabling environment must be present to be able to encourage research&lt;/li&gt;&lt;li&gt;Procurement process of equipment for research must be revised&lt;/li&gt;&lt;li&gt;Research must be aligned to public issues (flooding, climate change)&lt;/li&gt;&lt;li&gt;Allocate 10-15 percent of MOOE for tests&lt;/li&gt;&lt;li&gt;Be opportunistic&lt;/li&gt;&lt;li&gt;Advocate the concept of "volunteerism" in research&lt;/li&gt;&lt;li&gt;Conduct expectation settings for research: senior faculty, junior faculty, graduate students, undergraduate students, administrative support&lt;/li&gt;&lt;li&gt;Improve oral and written communication skills&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;i&gt;The Importance of Conducting Research in the University&lt;/i&gt;&lt;/b&gt; by Dr. Ida F. Dalmacio&lt;br /&gt;Some key ideas:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Review &lt;a href="http://www.lawphil.net/statutes/repacts/ra2008/ra_9500_2008.html"&gt;Republic Act 9500&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Develop "Centers of Excellence"&lt;/li&gt;&lt;li&gt;Her main motivation for research is to develop her laboratory by obtaining funding to procure equipment&lt;/li&gt;&lt;li&gt;There must be an industry partner to drive research in the academe&lt;/li&gt;&lt;li&gt;Data gathered in research is the ticket to publications and research funding&lt;/li&gt;&lt;li&gt; Professional fulfillment is one of the motivations for conducting research&lt;/li&gt;&lt;li&gt;"Think big, start small, act now"&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3649762546426954893-5719249759902979418?l=jachermocilla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jachermocilla.blogspot.com/feeds/5719249759902979418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3649762546426954893&amp;postID=5719249759902979418' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/5719249759902979418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/5719249759902979418'/><link rel='alternate' type='text/html' href='http://jachermocilla.blogspot.com/2011/02/seminar-role-of-faculty-in-research.html' title='On the Role of Faculty in a Research University'/><author><name>Joseph Anthony C. Hermocilla</name><uri>http://www.blogger.com/profile/06540390289881167599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_FPUV-FqSR3o/SsSyR8DDKyI/AAAAAAAAACI/JpygxMmsuj4/S220/me.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3649762546426954893.post-398024731298622050</id><published>2010-12-20T00:01:00.000-08:00</published><updated>2010-12-20T00:26:28.467-08:00</updated><title type='text'>OpenVPN and Squid for the Holidays</title><content type='html'>Christmas vacation has started. For some of us who would like to do some work from home, Virtual Private Network(VPN) is the solution. In this entry, I'll describe the OpenVPN setup I made on an Ubuntu 10.04 Server.&lt;br /&gt;&lt;br /&gt;The main requirement I'd like to address is to be able to connect to the office network (10.0.3.0/24) to which our development server(10.0.3.5) is attached. This development server is not public. Also, I would like to be able to access the online journals (ACMDL, Elsevier, SpringerLink,IEEE) which require IP address authentication.&lt;br /&gt;&lt;br /&gt;The physical server is an Intel Pentium 4 CPU 2.80GHz with 512MB RAM and&amp;nbsp; &lt;br /&gt;40GB disk space. It has two NICs, with one connected to the DMZ(public IP)&amp;nbsp; and another to the office network(with IP 10.0.3.252).&lt;br /&gt;&lt;br /&gt;I installed Ubuntu Server 10.04 LTS then followed the steps &lt;a href="https://help.ubuntu.com/10.04/serverguide/C/openvpn.html"&gt;&lt;i&gt;here&lt;/i&gt;&lt;/a&gt; to install OpenVPN. Although, L2(Data Link) is described in the tutorial, I implemented L3(Network) which I think is simpler. After which, I added a static route in the office router (10.0.3.254) to allow the VPN clients (10.8.0.x) to access the office network.&lt;br /&gt;&lt;br /&gt;ip route 10.8.0.0 255.255.255.0 10.0.3.252&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3649762546426954893-398024731298622050?l=jachermocilla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jachermocilla.blogspot.com/feeds/398024731298622050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3649762546426954893&amp;postID=398024731298622050' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/398024731298622050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/398024731298622050'/><link rel='alternate' type='text/html' href='http://jachermocilla.blogspot.com/2010/12/openvpn-and-squid.html' title='OpenVPN and Squid for the Holidays'/><author><name>Joseph Anthony C. Hermocilla</name><uri>http://www.blogger.com/profile/06540390289881167599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_FPUV-FqSR3o/SsSyR8DDKyI/AAAAAAAAACI/JpygxMmsuj4/S220/me.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3649762546426954893.post-8435661472842244096</id><published>2010-07-18T09:14:00.000-07:00</published><updated>2010-07-18T09:30:26.829-07:00</updated><title type='text'>National Academy of Science Technology 32nd Annual Scientific Meeting Experience</title><content type='html'>Scientific conferences delight me. I attended that 32nd Annual Scientific Meeting of the &lt;a href="http://www.nast.ph/"&gt;National Academy of Science and Technology&lt;/a&gt; last July 15, 2010. It was my first time to attend the event. Professor Jaderick P. Pabico asked me to present our poster entitled:&lt;i&gt; A   Cellular Automata Approach for Wide-Area Simulation of Runoff and   Flooding:&amp;nbsp; The Case of the Laguna Lake   Catchment&lt;/i&gt;&lt;i&gt;. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;The gathering was a big time event. There were a lot of Filipino scientists present. Several speakers, who are NAST Academicians and National Scientists, gave talks that address the progress of our beloved country in achieving the &lt;a href="http://en.wikipedia.org/wiki/Millennium_Development_Goals"&gt;Millennium Development Goals&lt;/a&gt;. The awarding ceremony was very inspiring, particularly the Outstanding Young Scientist (OYS) award. &lt;br /&gt;&lt;br /&gt;I am proud that our institute is home to an Outstanding Young Scientist (&lt;a href="http://www.nast.ph/index.php?option=com_oysi&amp;amp;id=197&amp;amp;view=details"&gt;Prof. Jaderick P. Pabico&lt;/a&gt;) and a NAST Academician (&lt;a href="http://www.nast.ph/index.php?option=com_profile&amp;amp;id=13&amp;amp;view=details&amp;amp;template=nast3&amp;amp;Itemid=22"&gt;Dr. Eliezer A. Albacea&lt;/a&gt;)!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3649762546426954893-8435661472842244096?l=jachermocilla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jachermocilla.blogspot.com/feeds/8435661472842244096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3649762546426954893&amp;postID=8435661472842244096' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/8435661472842244096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/8435661472842244096'/><link rel='alternate' type='text/html' href='http://jachermocilla.blogspot.com/2010/07/national-academy-of-science-technology.html' title='National Academy of Science Technology 32nd Annual Scientific Meeting Experience'/><author><name>Joseph Anthony C. Hermocilla</name><uri>http://www.blogger.com/profile/06540390289881167599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_FPUV-FqSR3o/SsSyR8DDKyI/AAAAAAAAACI/JpygxMmsuj4/S220/me.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3649762546426954893.post-9155877973493960344</id><published>2010-05-19T08:38:00.000-07:00</published><updated>2010-05-19T08:52:52.087-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Ubuntu 10.04 LTS on my IBM Thinkpad R50e</title><content type='html'>I decided to upgrade from 9.04 to 10.04 LTS the other day. I was hoping the installation will be smooth. However, the installation suddenly stopped after a few minutes with the display going blank and disk activity stopping. After some googling, I found out that is a bug that occurs in systems with Intel graphics adapters. I found a workaround &lt;a href="https://wiki.ubuntu.com/X/Bugs/Lucidi8xxFreezes"&gt;here&lt;/a&gt;. Specifically, I switched to VESA as the graphics driver to use during the installation by passing some options to the kernel.&lt;br /&gt;&lt;br /&gt;I used the following partitioning scheme:&lt;br /&gt;/ - 10GB&lt;br /&gt;/home - 5GB&lt;br /&gt;/opt - 3GB&lt;br /&gt;swap - 500MB&lt;br /&gt;&lt;br /&gt;The next step then is to customize the installation and add additional software. Before that, I need configure the dual screen setup. Since VESA does not support dual screen, I need to change the driver in /etc/X11/xorg.conf to "intel".&amp;nbsp; However, this causes the system to hang. The workaround I followed is to use a kernel from Karmic(2.6.31-20-generic). Installing a new kernel is new to me since 10.04 uses GRUB2 and there is no longer /boot/grub/menu.lst.&lt;br /&gt;&lt;br /&gt;The following are the initial packages I installed to get a functioning system ready for work:&lt;br /&gt;*Acrobat Reader (for reading journal articles)&lt;br /&gt;*Thunderbird (for email)&lt;br /&gt;*Flash Plug-in (for watching great table tennis matches)&lt;br /&gt;*MPlayer and gecko-mediaplayer (for listening to RJ100)&lt;br /&gt;*VLC (for watching Big Bang Theory and How I Met Your Mother)&lt;br /&gt;*GYachE (for allowing me to see "invisible" people in YM)&lt;br /&gt;*build-essential,qemu,nasm (for OS programming stuff)&lt;br /&gt;*Subversion (for checking out source code of projects)&lt;br /&gt;*vpnc (for allowing me to connect to ICS VPN)&lt;br /&gt;*GVim (may favorite text editor)&lt;br /&gt;*XAMPP (I use this for PHP and MySQL programming instead of the packages from Ubuntu itself)&lt;br /&gt;&lt;br /&gt;So far, my 10.04 experience is great!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3649762546426954893-9155877973493960344?l=jachermocilla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jachermocilla.blogspot.com/feeds/9155877973493960344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3649762546426954893&amp;postID=9155877973493960344' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/9155877973493960344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/9155877973493960344'/><link rel='alternate' type='text/html' href='http://jachermocilla.blogspot.com/2010/05/ubuntu-1004-lts-on-my-ibm-thinkpad-r50e.html' title='Ubuntu 10.04 LTS on my IBM Thinkpad R50e'/><author><name>Joseph Anthony C. Hermocilla</name><uri>http://www.blogger.com/profile/06540390289881167599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_FPUV-FqSR3o/SsSyR8DDKyI/AAAAAAAAACI/JpygxMmsuj4/S220/me.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3649762546426954893.post-3098480987919875432</id><published>2010-05-07T23:51:00.000-07:00</published><updated>2010-05-08T00:00:06.827-07:00</updated><title type='text'>Congratulations to my first batch of advisees</title><content type='html'>&lt;ul&gt;&lt;li&gt;Richard Christiensen E. Aluning&lt;/li&gt;&lt;li&gt;Adora Alexis B. Cabuyadao&lt;/li&gt;&lt;li&gt;Mark Joseph G. Caliston&lt;/li&gt;&lt;li&gt;Axel S. Trajano&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;Do your best out there! &lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3649762546426954893-3098480987919875432?l=jachermocilla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jachermocilla.blogspot.com/feeds/3098480987919875432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3649762546426954893&amp;postID=3098480987919875432' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/3098480987919875432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/3098480987919875432'/><link rel='alternate' type='text/html' href='http://jachermocilla.blogspot.com/2010/05/congratulations-to-my-first-batch-of.html' title='Congratulations to my first batch of advisees'/><author><name>Joseph Anthony C. Hermocilla</name><uri>http://www.blogger.com/profile/06540390289881167599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_FPUV-FqSR3o/SsSyR8DDKyI/AAAAAAAAACI/JpygxMmsuj4/S220/me.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3649762546426954893.post-6864544039305572954</id><published>2010-02-11T22:30:00.000-08:00</published><updated>2010-02-14T23:12:04.242-08:00</updated><title type='text'>Visual C# 2008 and MySQL using ODBC</title><content type='html'>&lt;ol&gt;&lt;li&gt;Download MySQL 5.1 Server &lt;a href="http://dev.mysql.com/downloads/mysql/"&gt;here&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Download ODBC MySQL Connector &lt;a href="http://dev.mysql.com/downloads/connector/odbc/"&gt;here&lt;/a&gt;&lt;/li&gt;&lt;li&gt;MySQL Server Installation&lt;/li&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://jachermocilla.org/mysql/mysql001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://jachermocilla.org/mysql/mysql001.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://jachermocilla.org/mysql/mysql002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://jachermocilla.org/mysql/mysql002.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://jachermocilla.org/mysql/mysql006.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://jachermocilla.org/mysql/mysql006.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://jachermocilla.org/mysql/mysql008.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://jachermocilla.org/mysql/mysql008.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://jachermocilla.org/mysql/mysql009.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://jachermocilla.org/mysql/mysql009.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://jachermocilla.org/mysql/mysql010.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://jachermocilla.org/mysql/mysql010.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://jachermocilla.org/mysql/mysql011.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://jachermocilla.org/mysql/mysql011.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://jachermocilla.org/mysql/mysql012.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://jachermocilla.org/mysql/mysql012.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;li&gt;ODBC Connector&lt;/li&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://jachermocilla.org/mysql/connector001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://jachermocilla.org/mysql/connector001.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://jachermocilla.org/mysql/connector002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://jachermocilla.org/mysql/connector002.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;li&gt;ODBC Configuration&lt;/li&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://jachermocilla.org/mysql/odbc001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://jachermocilla.org/mysql/odbc001.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://jachermocilla.org/mysql/odbc002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://jachermocilla.org/mysql/odbc002.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://jachermocilla.org/mysql/odbc003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://jachermocilla.org/mysql/odbc003.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://jachermocilla.org/mysql/odbc004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://jachermocilla.org/mysql/odbc004.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://jachermocilla.org/mysql/odbc005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://jachermocilla.org/mysql/odbc005.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://jachermocilla.org/mysql/odbc007.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://jachermocilla.org/mysql/odbc007.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;li&gt;Here is a &lt;a href="http://jachermocilla.org/mysql/CardAndMySQL.zip"&gt;Sample Code.&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;For more information click &lt;a href="http://dev.mysql.com/doc/refman/5.0/en/connector-odbc-examples-programming.html#connector-odbc-examples-programming-net-csharp"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3649762546426954893-6864544039305572954?l=jachermocilla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jachermocilla.blogspot.com/feeds/6864544039305572954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3649762546426954893&amp;postID=6864544039305572954' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/6864544039305572954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/6864544039305572954'/><link rel='alternate' type='text/html' href='http://jachermocilla.blogspot.com/2010/02/visual-c-2008-and-mysql-using-odbc.html' title='Visual C# 2008 and MySQL using ODBC'/><author><name>Joseph Anthony C. Hermocilla</name><uri>http://www.blogger.com/profile/06540390289881167599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_FPUV-FqSR3o/SsSyR8DDKyI/AAAAAAAAACI/JpygxMmsuj4/S220/me.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3649762546426954893.post-2849333513771550369</id><published>2009-12-28T21:38:00.000-08:00</published><updated>2009-12-29T02:45:07.174-08:00</updated><title type='text'>Ateneo De Naga HS 1996 LG-4R Class Reunion</title><content type='html'>After thirteen years..&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://jachermocilla.org/ADN_HS_96_4R_122709.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://jachermocilla.org/ADN_HS_96_4R_122709.jpg" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size: x-small;"&gt;(Photo from Keith Hidalgo)&lt;/span&gt;&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/3649762546426954893-2849333513771550369?l=jachermocilla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jachermocilla.blogspot.com/feeds/2849333513771550369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3649762546426954893&amp;postID=2849333513771550369' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/2849333513771550369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/2849333513771550369'/><link rel='alternate' type='text/html' href='http://jachermocilla.blogspot.com/2009/12/ateneo-de-naga-hs-1996-lg-4r-class.html' title='Ateneo De Naga HS 1996 LG-4R Class Reunion'/><author><name>Joseph Anthony C. Hermocilla</name><uri>http://www.blogger.com/profile/06540390289881167599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_FPUV-FqSR3o/SsSyR8DDKyI/AAAAAAAAACI/JpygxMmsuj4/S220/me.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3649762546426954893.post-784088716236418073</id><published>2009-12-17T23:11:00.000-08:00</published><updated>2009-12-17T23:32:49.875-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Using the Geospatial Data Abstraction Library (GDAL) in Ubuntu</title><content type='html'>For a &lt;a href="http://code.google.com/p/flowviz/"&gt;project&lt;/a&gt;, I need to process &lt;a href="http://srtm.csi.cgiar.org/"&gt;SRTM elevation data&lt;/a&gt;. &lt;a href="http://www.gdal.org/"&gt;GDAL&lt;/a&gt; is a software library that makes it easy to read and write raster geospatial data formats. I decided to give it a try since SRTM data uses the &lt;a href="http://en.wikipedia.org/wiki/ESRI_grid"&gt;ESRI grid&lt;/a&gt; format supported by the library.&lt;br /&gt;&lt;br /&gt;1. Install the the GDAL libraries and utilities&lt;br /&gt;&lt;pre&gt;$ apt-get install libgdal1-1.5.0 gdal-bin&lt;/pre&gt;2. Sample code. The SRTM data file path is in the variable pszFilename. The code is based on the &lt;a href="http://www.gdal.org/gdal_tutorial.html"&gt;tutorial&lt;/a&gt;.&lt;br /&gt;&lt;pre&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include &amp;lt;gdal.h&amp;gt;&amp;gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;    GDALDatasetH  hDataset;&lt;br /&gt;    char *pszFilename = "/media/DATA/srtm_61_10.asc";&lt;br /&gt;    GDALDriverH   hDriver;&lt;br /&gt;    double        adfGeoTransform[6];&lt;br /&gt;    GDALRasterBandH hBand;&lt;br /&gt;    int             nBlockXSize, nBlockYSize;&lt;br /&gt;    int             bGotMin, bGotMax;&lt;br /&gt;    double          adfMinMax[2];&lt;br /&gt;    float *pafScanline;&lt;br /&gt;    int   nXSize;&lt;br /&gt;    int i;&lt;br /&gt;&lt;br /&gt;    GDALAllRegister();&lt;br /&gt;    hDataset = GDALOpen( pszFilename, GA_ReadOnly );&lt;br /&gt;    if( hDataset == NULL )&lt;br /&gt;    {&lt;br /&gt;        printf("Cannot open file.");&lt;br /&gt;    }&lt;br /&gt;    hDriver = GDALGetDatasetDriver( hDataset );&lt;br /&gt;    printf( "Driver: %s/%s\n",&lt;br /&gt;            GDALGetDriverShortName( hDriver ),&lt;br /&gt;            GDALGetDriverLongName( hDriver ) );&lt;br /&gt;    printf( "Size is %dx%dx%d\n",&lt;br /&gt;            GDALGetRasterXSize( hDataset ), &lt;br /&gt;            GDALGetRasterYSize( hDataset ),&lt;br /&gt;            GDALGetRasterCount( hDataset ) );&lt;br /&gt;    if( GDALGetProjectionRef( hDataset ) != NULL )&lt;br /&gt;        printf( "Projection is `%s'\n", GDALGetProjectionRef( hDataset ) );&lt;br /&gt;    if( GDALGetGeoTransform( hDataset, adfGeoTransform ) == CE_None )&lt;br /&gt;    {&lt;br /&gt;        printf( "Origin = (%.6f,%.6f)\n",&lt;br /&gt;                adfGeoTransform[0], adfGeoTransform[3] );&lt;br /&gt;        printf( "Pixel Size = (%.6f,%.6f)\n",&lt;br /&gt;                adfGeoTransform[1], adfGeoTransform[5] );&lt;br /&gt;    }&lt;br /&gt;    hBand = GDALGetRasterBand( hDataset, 1 );&lt;br /&gt;    GDALGetBlockSize( hBand, &amp;amp;nBlockXSize, &amp;amp;nBlockYSize );&lt;br /&gt;    printf( "Block=%dx%d Type=%s, ColorInterp=%s\n",&lt;br /&gt;            nBlockXSize, nBlockYSize,&lt;br /&gt;            GDALGetDataTypeName(GDALGetRasterDataType(hBand)),&lt;br /&gt;            GDALGetColorInterpretationName(&lt;br /&gt;            GDALGetRasterColorInterpretation(hBand)) &lt;br /&gt;    );&lt;br /&gt;    adfMinMax[0] = GDALGetRasterMinimum( hBand, &amp;amp;bGotMin );&lt;br /&gt;    adfMinMax[1] = GDALGetRasterMaximum( hBand, &amp;amp;bGotMax );&lt;br /&gt;    if( ! (bGotMin &amp;amp;&amp;amp; bGotMax) )&lt;br /&gt;      GDALComputeRasterMinMax( hBand, TRUE, adfMinMax );&lt;br /&gt;    printf( "Min=%.3fd, Max=%.3f\n", adfMinMax[0], adfMinMax[1] );&lt;br /&gt;    if( GDALGetOverviewCount(hBand) &amp;gt; 0 )&lt;br /&gt;      printf( "Band has %d overviews.\n", GDALGetOverviewCount(hBand));&lt;br /&gt;    if( GDALGetRasterColorTable( hBand ) != NULL )&lt;br /&gt;      printf( "Band has a color table with %d entries.\n", &lt;br /&gt;                 GDALGetColorEntryCount(&lt;br /&gt;                 GDALGetRasterColorTable( hBand ) ) &lt;br /&gt;      );&lt;br /&gt;    nXSize = GDALGetRasterBandXSize( hBand );&lt;br /&gt;    pafScanline = (float *) CPLMalloc(sizeof(float)*nXSize);&lt;br /&gt;    GDALRasterIO( hBand, GF_Read, 0, 0, nXSize, 1, &lt;br /&gt;                    pafScanline, nXSize, 1, GDT_Float32, &lt;br /&gt;                     0, 0 );&lt;br /&gt;    for (i=0;i&amp;lt;20;i++){&lt;br /&gt;      printf("%f\n", pafScanline[i]);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;3. Build the example&lt;br /&gt;&lt;pre&gt;$ gcc -lgdal1.5.0 -I/usr/include/gdal -o testgdal.exe testgdal.c&lt;/pre&gt;4. Run &lt;br /&gt;&lt;pre&gt;$./testgdal.exe&lt;br /&gt;Driver: AAIGrid/Arc/Info ASCII Grid&lt;br /&gt;Size is 6001x6001x1&lt;br /&gt;Projection is `GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AXIS["Lat",NORTH],AXIS["Long",EAST],AUTHORITY["EPSG","4326"]]'&lt;br /&gt;Origin = (119.999583,15.000417)&lt;br /&gt;Pixel Size = (0.000833,-0.000833)&lt;br /&gt;Block=6001x1 Type=Int16, ColorInterp=Undefined&lt;br /&gt;Min=-27.000d, Max=2375.000&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3649762546426954893-784088716236418073?l=jachermocilla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jachermocilla.blogspot.com/feeds/784088716236418073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3649762546426954893&amp;postID=784088716236418073' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/784088716236418073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/784088716236418073'/><link rel='alternate' type='text/html' href='http://jachermocilla.blogspot.com/2009/12/using-geospatial-data-abstraction.html' title='Using the Geospatial Data Abstraction Library (GDAL) in Ubuntu'/><author><name>Joseph Anthony C. Hermocilla</name><uri>http://www.blogger.com/profile/06540390289881167599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_FPUV-FqSR3o/SsSyR8DDKyI/AAAAAAAAACI/JpygxMmsuj4/S220/me.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3649762546426954893.post-5412371737875917821</id><published>2009-12-14T09:01:00.000-08:00</published><updated>2009-12-14T18:32:29.524-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Research'/><title type='text'>On Research Methodologies</title><content type='html'>&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;&lt;b&gt; &lt;/b&gt;&lt;/b&gt;Last December 14, 2009 I attended the&amp;nbsp; Second CAS Student-Faculty Research Conference held at the CAS auditorium. The objective of the conference is to present the research output of the different departments and institutes of the College of Arts and Sciences. There were four plenary presentations in the conference from IMSP, DSS, IC and ICS, and IBS.&amp;nbsp; The parallel sessions held in the afternoon were divided into four clusters.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="font-family: inherit;"&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Social Sciences, Humanities, MST and Education Cluster&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Physics and Chemistry Cluster&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Mathematics, Statistics, and Computer Science Cluster&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Biology and Environment Cluster&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;I decided to attend at least one presentation from each cluster in order to know what methodologies are used by the researchers in their field and work. Based on my samples, majority of the researchers conducted some form of &lt;i&gt;survey&lt;/i&gt; and performed &lt;i&gt;statistical analysis&lt;/i&gt; (frequency analysis, regression, test of significance).&amp;nbsp; Conclusions were drawn from the result of the statistical analysis. Another methodology used is &lt;i&gt;simulation and &lt;/i&gt;&lt;i&gt;modeling &lt;/i&gt;(Kinetic-Monte-Carlo, Time Series Analysis, Neural Networks, Regression Models). The main justification for using modeling and simulation is that conducting the actual experiment is expensive and time consuming. Model validation, however, was lacking in some of the researches. &lt;i&gt;Product development&lt;/i&gt; is another methodology employed. Researchers developed a system (hardware or software), a chemical product, or an experimental setup. The product addresses some problem in the field. A common keyword in the title of the research papers presented&amp;nbsp; is &lt;i&gt;characterization&lt;/i&gt;. Based on my understanding, characterization is providing a quantitative(or qualitative) description of some entity, structure, substance, behaviour, problem, algorithm, etc. Thus, we can probably include characterization as one of the research methodologies. Although, characterization, I think is a broad term. Also, the validity of results of the researches are strengthened if statistical analysis was conducted. &lt;/span&gt;&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/3649762546426954893-5412371737875917821?l=jachermocilla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jachermocilla.blogspot.com/feeds/5412371737875917821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3649762546426954893&amp;postID=5412371737875917821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/5412371737875917821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/5412371737875917821'/><link rel='alternate' type='text/html' href='http://jachermocilla.blogspot.com/2009/12/cas-student-faculty-research-conference.html' title='On Research Methodologies'/><author><name>Joseph Anthony C. Hermocilla</name><uri>http://www.blogger.com/profile/06540390289881167599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_FPUV-FqSR3o/SsSyR8DDKyI/AAAAAAAAACI/JpygxMmsuj4/S220/me.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3649762546426954893.post-7302123191760722834</id><published>2009-11-23T23:23:00.000-08:00</published><updated>2009-11-30T03:50:03.791-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Making a DOS-bootable USB disk from Ubuntu</title><content type='html'>It is again the start of a new semester. We need to prepare the laboratory computers for students use. We do this by creating a source disk and doing a disk-copy to the other computers. This approach works because computers in a laboratory have similar specifications.&lt;br /&gt;&lt;br /&gt;Last weekend, I run into the problem of making a USB disk DOS-bootable for use in copying hard disks. I needed to create one because the floppy drives in the laboratory computers are not working. The Norton Ghost program needs to run in DOS. The following are the steps I followed to make the disk.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Downloaded a FreeDOS disk image from &lt;a href="http://www.finnix.org/Balder"&gt;http://www.finnix.org/Balder&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Installed Qemu. &lt;code&gt;&lt;br /&gt;$sudo apt-get install qemu&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Prepared the USB disk by creating a single FAT16 partition. In my Ubuntu box, my USB disk is &lt;code&gt;/dev/sdb&lt;/code&gt;.&lt;br /&gt;&lt;code&gt; $sudo gparted /dev/sdb&lt;/code&gt; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ran Qemu using the FreeDOS image for the first floppy(A:)&amp;nbsp; and the USB disk as the second floppy (B:).&lt;/li&gt;&lt;code&gt; $qemu -fda balder10.img -fdb /dev/sdb&lt;/code&gt;&lt;li&gt;From within FreeDOS, I formatted drive B: and made it bootable. &lt;br /&gt;&lt;code&gt;A:\&amp;gt;format /s b:&lt;/code&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tested if the USB disk is now bootable.&lt;br /&gt;&lt;code&gt;$qemu -fda /dev/sdb&lt;/code&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Copied the Norton Ghost program to the USB disk.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;After changing some settings in the BIOS of the PCs in the laboratory, the DOS bootable USB disk from Ubuntu did its job.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3649762546426954893-7302123191760722834?l=jachermocilla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jachermocilla.blogspot.com/feeds/7302123191760722834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3649762546426954893&amp;postID=7302123191760722834' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/7302123191760722834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/7302123191760722834'/><link rel='alternate' type='text/html' href='http://jachermocilla.blogspot.com/2009/11/making-dos-bootable-usb-disk-from.html' title='Making a DOS-bootable USB disk from Ubuntu'/><author><name>Joseph Anthony C. Hermocilla</name><uri>http://www.blogger.com/profile/06540390289881167599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_FPUV-FqSR3o/SsSyR8DDKyI/AAAAAAAAACI/JpygxMmsuj4/S220/me.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3649762546426954893.post-7814115350407659242</id><published>2009-10-05T18:29:00.000-07:00</published><updated>2009-10-06T00:21:12.467-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computer Science Education'/><title type='text'>UPLB now has full text online access to important sources of computing literature</title><content type='html'>As a novice researcher, a brillant idea suddenly comes into your mind. You start your web browser and typed a few keywords on your favorite search engine to know if somebody has already thought of your brillant idea. Then comes the results of the search. Somebody has already thought of your brillant idea and even published a journal article! You hurriedly click on the link, hoping to know more of the author's work. Unfortunately, what you get is only an abstract because you need to pay to access the entire article.&lt;br /&gt;&lt;br /&gt;Yes, there is &lt;a href="http://en.wikipedia.org/wiki/Category:Computer_science_journals"&gt;Wikipedia&lt;/a&gt; and &lt;a href="http://citeseer.ist.psu.edu/"&gt;Citeseer&lt;/a&gt; as sources for our literature review. But sometimes we just can't find the journal articles that are very important for our research from these two. In an effort to increase research productivity and output, UP obtained subscriptions of several journals delivered electronically. In the field of computing, the following are imporant sources of literature that we can use for our research.&amp;nbsp; They are accessible within the campus network. The question to ask now is: "Are we using these valuable resources?"&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://portal.acm.org/dl.cfm?coll=portal&amp;amp;dl=ACM&amp;amp;CFID=9748106&amp;amp;CFTOKEN=38432115"&gt;ACM Digital Library&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;a href="http://ieeexplore.ieee.org/Xplore/dynhome.jsp"&gt;IEEE Xplore&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www2.computer.org/portal/web/csdl"&gt;IEEE CS Digital Library&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.elsevier.com/wps/find/journal_browse.cws_home/P05?pseudotype=&amp;amp;sortBy=Title&amp;amp;SH1Code=P05&amp;amp;letter=A"&gt;Elsevier&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.springerlink.com/computer-science/"&gt;SpringerLink&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3649762546426954893-7814115350407659242?l=jachermocilla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jachermocilla.blogspot.com/feeds/7814115350407659242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3649762546426954893&amp;postID=7814115350407659242' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/7814115350407659242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/7814115350407659242'/><link rel='alternate' type='text/html' href='http://jachermocilla.blogspot.com/2009/10/uplb-now-has-full-text-online-access-to.html' title='UPLB now has full text online access to important sources of computing literature'/><author><name>Joseph Anthony C. Hermocilla</name><uri>http://www.blogger.com/profile/06540390289881167599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_FPUV-FqSR3o/SsSyR8DDKyI/AAAAAAAAACI/JpygxMmsuj4/S220/me.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3649762546426954893.post-8521932657786417194</id><published>2009-09-30T20:07:00.000-07:00</published><updated>2010-09-26T05:52:52.081-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computer Science Education'/><title type='text'>How to succeed in your SP proposal defense</title><content type='html'>&lt;span style="font-weight: bold;"&gt;What to say during the defense in 5 minutes?&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The title of your SP (memorized!)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;5 sentences background (memorized)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;2 sentences Statement of the Problem (memorized)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;1 sentence General Objective (memorized)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;3-4 statements of Specific Objectives&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Limitations&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Materials and Methods&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Expected output&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Sample screenshots&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Common comments from panelists&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Quantify&lt;/span&gt;. If one of your objectives is to "speed up" something, you should be able to answer how you will measure this quantity. Also specify metrics and measurements to gather.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Comparisons&lt;/span&gt;. If your work is an improvement over previous approaches, include in your objectives a  comparison of results of your work over them in terms of speed, performance, accuracy, etc&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Novelty&lt;/span&gt;. You should be able to answer what is new in your work compared to previous work.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Specificity&lt;/span&gt;. Be VERY specific and careful in your statements. They should be easy to validate.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Feasibility&lt;/span&gt;. Make sure that what you are proposing is feasible and doable in 10 months.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Initial experiments and results&lt;/span&gt;. If your work involves image processing and ImageLab, make sure you've made some initial trials (aside from binarization!). You should include in your defense the results, whether good or bad. This is also applicable for other types of SP, not just image processing.&lt;/li&gt;&lt;li&gt;&lt;i&gt;Interfaces&lt;/i&gt;. Make sure you discuss the connection of your module with the modules of your groupmates.&lt;/li&gt;&lt;li&gt;&lt;i&gt;Validation&lt;/i&gt;. State how you are going to validate your claims. &lt;/li&gt;&lt;li&gt;&lt;i&gt;ERD/DFD&lt;/i&gt;. If your SP needs a database, make sure you include an Entity-Relationship Diagram for the database design and Data Flow Diagram for data transformation. Use Case diagrams will be useful also.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Handling comments from panelists&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;In general, always treat comments from the panelists as CONSTRUCTIVE. Their statements will help improve your SP and give you directions in your work.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Panelists will be suggesting A LOT of things. Take note of ALL OF THEM and negotiate with your adviser later if you will consider SOME OF THEM in your SP.&lt;/li&gt;&lt;li&gt;If you do not know the answer to the question from a panelist, just tell them that "I'll look into that.". Make sure you do later!&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Practice&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It is important that you practice your defense. This can be done with your adviser or with some of your friends.&lt;/li&gt;&lt;li&gt;Make sure you and your adviser have agreed on the Title, Statement of the Problem, Objectives, and Methodology sections of your SP proposal before your defense.&lt;/li&gt;&lt;li&gt;Before the defense, make sure that your mind is clear and specific with what you are going to do in your SP. You can achieve this by repeating in your mind the General Objective of your proposal. Visualize your expected output so that you can tell a story about it to the panelists during the defense.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3649762546426954893-8521932657786417194?l=jachermocilla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jachermocilla.blogspot.com/feeds/8521932657786417194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3649762546426954893&amp;postID=8521932657786417194' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/8521932657786417194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/8521932657786417194'/><link rel='alternate' type='text/html' href='http://jachermocilla.blogspot.com/2009/09/how-to-succeed-in-sp-proposal-defense.html' title='How to succeed in your SP proposal defense'/><author><name>Joseph Anthony C. Hermocilla</name><uri>http://www.blogger.com/profile/06540390289881167599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_FPUV-FqSR3o/SsSyR8DDKyI/AAAAAAAAACI/JpygxMmsuj4/S220/me.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3649762546426954893.post-4970936714461632812</id><published>2009-04-12T06:45:00.000-07:00</published><updated>2009-11-23T23:34:42.246-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Writing a PS/2 mouse driver for your hobby OS</title><content type='html'>It took me a while to search for a good tutorial on how to write a PS/2 mouse driver for a hobby OS. Luckily, I was able to make an existing driver work. So for those who  are having trouble writing one, I came up with this guide. However, I do not take full credit in the codes that I will be posting.&lt;br /&gt;&lt;br /&gt;I assume that your hobby OS is 32-bit targetted on x86 machines. The following outlines the steps.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Program the 8259 controller to enable IRQ2, the cascade line. The PS/2 mouse IRQ is IRQ12 which is in the slave PIC. Normally the IRQ numbers are remapped in 32-bit OSes.&lt;br /&gt;&lt;pre&gt;#define IRQ_TIMER 1&lt;br /&gt;#define IRQ_CASCADE 4&lt;br /&gt;#define IRQ_KEYBOARD 2&lt;br /&gt;#define IRQ_FDC 64&lt;br /&gt;#define IRQ_MOUSE 16&lt;br /&gt;void program8259(unsigned char b){&lt;br /&gt;unsigned char b1=0xFF;&lt;br /&gt;//remap the IRQs&lt;br /&gt;outportb(0x20,0x11);&lt;br /&gt;outportb(0xA0,0x11);&lt;br /&gt;outportb(0x21,0x20); //IRQ0-IRQ7 -&gt; interrupts 0x20-0x27&lt;br /&gt;outportb(0xA1,0x28); //IRQ8-IRQ15 -&gt; interrupts 0x28-0x2F&lt;br /&gt;outportb(0x21,4);&lt;br /&gt;outportb(0xA1,2);&lt;br /&gt;outportb(0x21,1);&lt;br /&gt;outportb(0xA1,1);&lt;br /&gt;b1^=b;&lt;br /&gt;outportb(0x21,b1);&lt;br /&gt;outportb(0xA1, inportb(0xA1) &amp;amp; ~0x10);  //enable IRQ12&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;//Here's the call to enable needed IRQ Lines called usually in the main() function&lt;br /&gt;program8259(IRQ_TIMER | IRQ_KEYBOARD | IRQ_FDC | IRQ_CASCADE);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;And here's the driver code courtesy of SANiK.&lt;br /&gt;&lt;pre&gt;//Mouse.inc by SANiK&lt;br /&gt;//License: Use as you wish, except to cause damage&lt;br /&gt;unsigned char mouse_cycle=0;&lt;br /&gt;signed char mouse_byte[3];&lt;br /&gt;signed char mouse_x=0;&lt;br /&gt;signed char mouse_y=0;&lt;br /&gt;&lt;br /&gt;/* The interrupt handler */&lt;br /&gt;void mouse_irq(){&lt;br /&gt;DWORD flags;&lt;br /&gt;switch(mouse_cycle){&lt;br /&gt;case 0:&lt;br /&gt;mouse_byte[0]=inportb(0x60);&lt;br /&gt;mouse_cycle++;&lt;br /&gt;break;&lt;br /&gt;case 1:&lt;br /&gt;mouse_byte[1]=inportb(0x60);&lt;br /&gt;mouse_cycle++;&lt;br /&gt;break;&lt;br /&gt;case 2:&lt;br /&gt;mouse_byte[2]=inportb(0x60);&lt;br /&gt;mouse_x=mouse_byte[1];&lt;br /&gt;mouse_y=mouse_byte[2];&lt;br /&gt;mouse_cycle=0;&lt;br /&gt;break;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;inline void mouse_wait(unsigned char  a_type){&lt;br /&gt;unsigned int _time_out=100000; //unsigned int&lt;br /&gt;if(a_type==0){&lt;br /&gt;while(_time_out--){ //Data&lt;br /&gt;if((inportb(0x64) &amp;amp; 1)==1){&lt;br /&gt;return;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;return;&lt;br /&gt;}else{&lt;br /&gt;while(_time_out--){ //Signal&lt;br /&gt;if((inportb(0x64) &amp;amp; 2)==0){&lt;br /&gt;return;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;return;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;inline void mouse_write(unsigned char a_write){&lt;br /&gt;//Wait to be able to send a command&lt;br /&gt;mouse_wait(1);&lt;br /&gt;//Tell the mouse we are sending a command&lt;br /&gt;outportb(0x64, 0xD4);&lt;br /&gt;//Wait for the final part&lt;br /&gt;mouse_wait(1);&lt;br /&gt;//Finally write&lt;br /&gt;outportb(0x60, a_write);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;unsigned char mouse_read(){&lt;br /&gt;//Get's response from mouse&lt;br /&gt;mouse_wait(0);&lt;br /&gt;return inportb(0x60);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void installmouse(){ /* This enables the mouse, called in main() */&lt;br /&gt;unsigned char _status;&lt;br /&gt;&lt;br /&gt;//Enable the auxiliary mouse device&lt;br /&gt;mouse_wait(1);&lt;br /&gt;outportb(0x64, 0xA8);&lt;br /&gt;&lt;br /&gt;//Enable the interrupts&lt;br /&gt;mouse_wait(1);&lt;br /&gt;outportb(0x64, 0x20);&lt;br /&gt;mouse_wait(0);&lt;br /&gt;_status=(inportb(0x60) | 2);&lt;br /&gt;mouse_wait(1);&lt;br /&gt;outportb(0x64, 0x60);&lt;br /&gt;mouse_wait(1);&lt;br /&gt;outportb(0x60, _status);&lt;br /&gt;&lt;br /&gt;//Tell the mouse to use default settings&lt;br /&gt;mouse_write(0xF6);&lt;br /&gt;mouse_read();  //Acknowledge&lt;br /&gt;&lt;br /&gt;//Enable the mouse&lt;br /&gt;mouse_write(0xF4);&lt;br /&gt;mouse_read();  //Acknowledge&lt;br /&gt;//Depends on your OS!&lt;br /&gt;setinterruptvector(0x2C,idtbase,0x8E,mousewrapper,SYS_CODE_SEL);&lt;br /&gt;printf("Mouse successfully initialized.\n");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void get_mouse_pos(signed char *x,signed char *y){&lt;br /&gt;*x=mouse_x;&lt;br /&gt;*y=mouse_y;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The mousewrapper code is important for the IRET so it is written in assembly. It just actually calls mouse_irq defined in the driver above..&lt;br /&gt;&lt;pre&gt;global mousewrapper&lt;br /&gt;mousewrapper:&lt;br /&gt;push ebp&lt;br /&gt;push gs&lt;br /&gt;push fs&lt;br /&gt;push es&lt;br /&gt;push ss&lt;br /&gt;push ds&lt;br /&gt;pusha&lt;br /&gt;call mouse_irq&lt;br /&gt;;re-enable interrupts, this is IMPORTANT!&lt;br /&gt;mov al,0x20&lt;br /&gt;out 0xA0,al&lt;br /&gt;out 0x20,al&lt;br /&gt;popa&lt;br /&gt;pop ds&lt;br /&gt;pop ss&lt;br /&gt;pop es&lt;br /&gt;pop fs&lt;br /&gt;pop gs&lt;br /&gt;pop ebp&lt;br /&gt;iret&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;That's it!Enjoy your mouse!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3649762546426954893-4970936714461632812?l=jachermocilla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jachermocilla.blogspot.com/feeds/4970936714461632812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3649762546426954893&amp;postID=4970936714461632812' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/4970936714461632812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3649762546426954893/posts/default/4970936714461632812'/><link rel='alternate' type='text/html' href='http://jachermocilla.blogspot.com/2009/04/writing-ps2-mouse-driver-for-your-hobby.html' title='Writing a PS/2 mouse driver for your hobby OS'/><author><name>Joseph Anthony C. Hermocilla</name><uri>http://www.blogger.com/profile/06540390289881167599</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_FPUV-FqSR3o/SsSyR8DDKyI/AAAAAAAAACI/JpygxMmsuj4/S220/me.png'/></author><thr:total>1</thr:total></entry></feed>
