<?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:blogger='http://schemas.google.com/blogger/2008' 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-1769338688785084840</id><updated>2024-08-30T09:19:09.322+08:00</updated><category term="Teaching Thoughts"/><category term="Personal"/><category term="Design Patterns"/><category term="Fundamentals Book"/><category term="Theory + Reality"/><category term="Breaking News"/><category term="Mobile Computing"/><category term="App Ideas"/><category term="Reaction Paper"/><category term="WebApp Review"/><title type='text'>Gaius Sensei</title><subtitle type='html'>匕モ丹匚卄工れム ㄗ尺口ム尺丹爪爪工れム, ㄗ尺口ム尺丹爪爪工れム 匕モ丹匚卄工れム</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-1843318942984721562</id><published>2011-03-31T23:59:00.012+08:00</published><updated>2011-04-03T15:08:25.590+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Personal"/><title type='text'>Trying out photoblogging...</title><content type='html'>&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://gaiussensei-photos.blogspot.com/&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;222&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEvYqn0SQap4zwsWTKlvWHF6w4xg4hu5Gzt62T2Z-o0roSKcbebCG9k1lIVX1S_ux3KSDGYfqrPiBCLagg0rLVu0KxXuo1fyw5jHGebJEBryEOdf8DMFGjTNASsT49GUq8gCuRDmURzhA/s400/2011-04-01-00-40-15-696.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://gaiussensei-photos.blogspot.com/&quot;&gt;http://gaiussensei-photos.blogspot.com/&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;Check it out guys~ &lt;a href=&quot;http://gaiussensei-photos.blogspot.com/&quot;&gt;New blog&lt;/a&gt;! I&#39;m kindof busy right now, but since I&#39;ll be out and about a few places this month, I&#39;ll be capturing quite a bit of photos. It&#39;ll be low resolution since I currently don&#39;t own a DSLR, but I&#39;ll make sure to post my best shots.&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Photos taken using: HTC Wildfire and the Vignette Camera App. ^^ Sayonara~&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;UPDATE:&lt;/b&gt;&amp;nbsp;Ok, got tired of tweaking BlogSpot. This platform is NOT for photobloggers, so I&#39;m moving to a better on: &lt;a href=&quot;http://gaiussensei.deviantart.com/&quot;&gt;DeviantArt&lt;/a&gt;. See you guys there~&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/1843318942984721562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2011/03/trying-out-photoblogging.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/1843318942984721562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/1843318942984721562'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2011/03/trying-out-photoblogging.html' title='Trying out photoblogging...'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEvYqn0SQap4zwsWTKlvWHF6w4xg4hu5Gzt62T2Z-o0roSKcbebCG9k1lIVX1S_ux3KSDGYfqrPiBCLagg0rLVu0KxXuo1fyw5jHGebJEBryEOdf8DMFGjTNASsT49GUq8gCuRDmURzhA/s72-c/2011-04-01-00-40-15-696.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-3242258570008480838</id><published>2011-02-28T14:47:00.001+08:00</published><updated>2011-02-28T14:54:27.353+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Reaction Paper"/><category scheme="http://www.blogger.com/atom/ns#" term="Teaching Thoughts"/><title type='text'>Reaction Paper: An Encounter with an Anthropologist</title><content type='html'>Dr. B, despite having an Phd. in anthropology, proved quite tactless in our first meeting.&amp;nbsp;The first lesson discussed a range of topics from religion, to a recent suicide of a prominent general,&amp;nbsp;and even to sex! Honestly, I am both impressed and entertained- having experienced teaching first&amp;nbsp;hand, I know that getting your student&#39;s attention while sticking to the lesson plan can be quite a chore.&lt;br /&gt;
&lt;br /&gt;
There are quite a few things that struck a nerve in the discussion. I am a devout catholic, despite being&amp;nbsp;a computer scientist, and I have had many sleepless nights and heated discussions with my fellow&amp;nbsp;professionals about the age-old debate concerning “Science vs. God”. On one hand, science, or as Dr.&amp;nbsp;B have discussed, the scientific method, relies on proof. Even knowing something &lt;i&gt;a priori&lt;/i&gt;,&amp;nbsp;science still needs at least logic and reason. Faith, on the other hand, relies on belief without proof,&amp;nbsp;about hope and the inherently unexplainable miracles.&lt;br /&gt;
&lt;br /&gt;
In my opinion, Science is just a way of comprehending God&#39;s ways- an instrument from Him, through&amp;nbsp;our scientists. Its a lot like the Bible in some ways, an instrument written by (divinely-inspired)&amp;nbsp;humans, open to interpretation. A few examples: The Bible tells the story of genesis eg. “God created&amp;nbsp;the world in six days, rested on the seventh”. When taking into consideration who wrote that story, even&amp;nbsp;if he/she is divinely inspired, it would be impossible to measure time and translate it to something that&amp;nbsp;we can comprehend. Maybe the writer simplified it, or maybe not- something to think about.&lt;br /&gt;
&lt;br /&gt;
Another example: From year 2000 to 2005*, several scientific journals was published that confirms the&amp;nbsp;existence of a single Creator. Of course, the scientists did not name who (God, Allah, etc.) but still- these&amp;nbsp;journals have NOT been&amp;nbsp;reverted&amp;nbsp;yet. Several journals have tried to disprove these, the latest of which&amp;nbsp;is Stephen Hawking&#39;s The Grand Design (2010). A good read, to be sure.&lt;br /&gt;
&lt;br /&gt;
I find it distrubing when people generalize scientists to be godless heathens- people who rely on proof&amp;nbsp;only. I&#39;d like to believe, that I&#39;m not the only Catholic Scientist/Skeptic here. Also, if I may offer a&amp;nbsp;friendly advice from one (former) professor to another: Respect your student&#39;s beliefs. It would also be&amp;nbsp;wise assume that there are catholics in a catholic college- not everyone would be devout, of course, but&amp;nbsp;it would help to take care, none the less.&lt;br /&gt;
&lt;br /&gt;
My two cents.&lt;br /&gt;
&lt;br /&gt;
* related: Cosmic Microwave Background Theory&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;This whole post is my reaction paper for my first meeting with Dr. B, my current professor in &quot;Theories in Research&quot;. This was written with only my stock knowledge (minimal to no references) and my opinions: read with a grain of salt.&lt;/i&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/3242258570008480838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2011/02/reaction-paper-encounter-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/3242258570008480838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/3242258570008480838'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2011/02/reaction-paper-encounter-with.html' title='Reaction Paper: An Encounter with an Anthropologist'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-8082318532162473958</id><published>2011-01-12T20:33:00.000+08:00</published><updated>2011-01-12T20:33:58.127+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Teaching Thoughts"/><title type='text'>The Flaws of College Education Today</title><content type='html'>Teens this days have smart phones- phones that are more powerful than most computers ten, even five years ago. These phones can access the internet very readily- in fact, most networks here in the&amp;nbsp;Philippines&amp;nbsp;offer a very cheap 50peso 1-day unlimited internet promo. Soon, affordable tablet PCs will reach the public, and a library of books will be available right next to a browser, all in our student&#39;s fingertips.&lt;br /&gt;
&lt;br /&gt;
What does all these mean, in the context of our current college education system?&lt;br /&gt;
&lt;br /&gt;
This means that memorizing theories are no longer needed. It will not matter if you don&#39;t know the&amp;nbsp;answer, because the answer is only a few clicks away, right in your pocket. &lt;b&gt;Seatworks, homeworks , quizzes and tests becomes obsolete, since these are the ways to test if a student &lt;u&gt;remembers&lt;/u&gt; a lesson,&lt;/b&gt;&amp;nbsp;which is&amp;nbsp;&lt;i style=&quot;text-decoration: underline;&quot;&gt;unnecessary&lt;/i&gt;&amp;nbsp;with the current technology. You forgot the next&amp;nbsp;ingredient&amp;nbsp;for the recipe? so what? &lt;a href=&quot;http://lmgtfy.com/&quot;&gt;LMGTFY&lt;/a&gt;. What&#39;s the difference between the star, bus and ring topologies? &lt;a href=&quot;http://answers.yahoo.com/question/index?qid=20080222143226AARmit2&quot;&gt;This&lt;/a&gt;. What&#39;s the &lt;a href=&quot;http://en.wikipedia.org/wiki/Truth_Table&quot;&gt;truth table&lt;/a&gt; and the logic&amp;nbsp;circuit&amp;nbsp;for the function: P &amp;amp;&amp;amp; (Q || R)? &lt;a href=&quot;http://www.wolframalpha.com/input/?i=P+%26%26+(Q+||+R)&quot;&gt;Easy&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The way the current system measures the abilities of the students is outdated (and in my opinion, no longer work). &amp;nbsp;And remember: What you can&#39;t measure, you can&#39;t control.. and if the colleges are not controlling what our students are learning, then what&#39;s the point? Imagine going to the university hoping to learn how to become a nurse, and after four years, everything you know are not only outdated, but even elementary grads can &lt;a href=&quot;http://www.itriagehealth.com/get-mobile&quot;&gt;download a free app&lt;/a&gt; that knows most of what you do?&lt;br /&gt;
&lt;br /&gt;
So what do we do? Stop going to school? &lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: red; font-size: large;&quot;&gt;NO.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Let me tell you guys a story. Two fresh CS graduates land a job in a company. They were given identical tasks- let&#39;s say, design and implement a module on a program. They both have zero experience programming in the industry, but has unlimited access to both the company&#39;s documentation as well as the internet. The problem is: there&#39;s only one permanent spot available, and the management have to decide which of the graduates to retain after their probationary period. If you are that manager, how will you pick? How do you decide, which one is better? Remember that they both have access to the same resources.&lt;br /&gt;
&lt;br /&gt;
If I&#39;m the manager, the graduate who have grasped the program &lt;i&gt;quicker&lt;/i&gt;&amp;nbsp;gets the job. Since everybody can become an &lt;b&gt;effective&lt;/b&gt; employee (in the sense that the resources to learn how to do stuff are both accessible and free), then you have to become an &lt;i&gt;efficient&lt;/i&gt; employee- spend less time learning and spend more time doing stuff. Now how can we do stuff faster? Let me ask you this: if you&#39;re learning to play basketball, how do you improve your game? The same is true on almost every discipline: You have to practice. You have to experience things, instead of memorizing them. An example: learning how to make the&amp;nbsp;Fibonacci&amp;nbsp;sequence appear on your computer is cute, but applying the&amp;nbsp;Fibonacci&amp;nbsp;sequence &lt;a href=&quot;http://www.yourdiscovery.com/games/play/fibonacci/&quot;&gt;by creating a game&lt;/a&gt;&amp;nbsp;will make you experience more (not to mention a lot more fun and&amp;nbsp;challenging).&lt;br /&gt;
&lt;br /&gt;
Bottom line: A parrot can memorize words, but will never understand its meaning. Don&#39;t be a parrot: Make new things, apply what you know NOW, and practice always.. and remember: Knowing is not enough. My two cents, Sayonara and have a great new year~</content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/8082318532162473958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2011/01/flaws-of-college-education-today.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/8082318532162473958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/8082318532162473958'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2011/01/flaws-of-college-education-today.html' title='The Flaws of College Education Today'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-4830649559067839185</id><published>2010-11-03T16:20:00.001+08:00</published><updated>2010-11-03T16:20:54.022+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Teaching Thoughts"/><title type='text'>Failure</title><content type='html'>Have you ever noticed that when everything goes as planned, you actually learn &lt;i&gt;less?&lt;/i&gt; Do &lt;b&gt;not&lt;/b&gt; be afraid to fail. Think of it this way: there’s not much to learn when things work. When they fail however, you have a chance to understand where the boundaries are, providing us an opportunity to learn more when things go awry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;&lt;object height=&quot;560&quot; width=&quot;450&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://backend.deviantart.com/embed/view.swf&quot; /&gt;&lt;param name=&quot;flashvars&quot; value=&quot;id=109689748&amp;width=1337&quot; /&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot; /&gt;&lt;embed src=&quot;http://backend.deviantart.com/embed/view.swf&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;450&quot; flashvars=&quot;id=109689748&amp;width=1337&quot; height=&quot;560&quot; allowscriptaccess=&quot;always&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.deviantart.com/deviation/109689748/&quot;&gt;Edison quote mug&lt;/a&gt; by ~&lt;a class=&quot;u&quot; href=&quot;http://estranged-illusions.deviantart.com/&quot;&gt;estranged-illusions&lt;/a&gt; on &lt;a href=&quot;http://www.deviantart.com/&quot;&gt;deviant&lt;/a&gt;&lt;a href=&quot;http://www.deviantart.com/&quot;&gt;ART&lt;/a&gt;&lt;br /&gt;
&lt;/center&gt;&lt;br /&gt;
&lt;br /&gt;
Imagine: After creating a program and testing it against the known correct results, everything works. Congratulations! You just learned how to solve the problem. BUT! Consider this- When you test your program and something goes wrong, what do you do? Give up? Of course not! One of the best ways to study programming is through trial &lt;i&gt;and error&lt;/i&gt;, and being wrong is an integral part of the learning process. When the program doesn&#39;t work as intended, we find the bugs and fix it. We test more. We think more. We &lt;i&gt;learn&lt;/i&gt; more. &lt;br /&gt;
&lt;br /&gt;
However, &lt;i&gt;constant&lt;/i&gt; failure is another beast entirely. The saying goes: &quot;Fool me once, shame on you, Fool me twice, shame on me&quot;. This is particularly true in programming, where a correct line of code will always produce the correct output and vice versa.&lt;br /&gt;
&lt;br /&gt;
A professor in a prestigeous college once said that programming is a routinary job- eg. doing the same things over and over again. This true only when the programmer is NOT learning, and is constantly wrong, and thus have to repeat his job over and over again. A real programmer writes code only once, tests and tweaks for errors, learning what to do and what not to do along the way, and reuses old code extensively. Strive to be that kind of programmer.&lt;br /&gt;
&lt;br /&gt;
Until next time, Sayonara~</content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/4830649559067839185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2010/11/failure.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/4830649559067839185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/4830649559067839185'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2010/11/failure.html' title='Failure'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-2525666940168849249</id><published>2010-10-23T17:47:00.002+08:00</published><updated>2010-10-23T19:45:39.700+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Theory + Reality"/><title type='text'>Dates and Primary Keys</title><content type='html'>I&#39;ve got a story to tell :D I remembered this&amp;nbsp;because&amp;nbsp;one of my current coworkers asked me about the curious way I write dates in code (such as 10X23, or 10902). After telling the tale, I decided to also share my experience to you guys~&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;T&#39;was a dark and stormy night..&lt;br /&gt;
&lt;object height=&quot;460&quot; width=&quot;450&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://backend.deviantart.com/embed/view.swf&quot; /&gt;&lt;param name=&quot;flashvars&quot; value=&quot;id=180189377&amp;width=1337&quot; /&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot; /&gt;&lt;embed src=&quot;http://backend.deviantart.com/embed/view.swf&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;450&quot; flashvars=&quot;id=180189377&amp;width=1337&quot; height=&quot;460&quot; allowscriptaccess=&quot;always&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.deviantart.com/deviation/180189377/&quot;&gt;It was a dark and stormy night&lt;/a&gt; by =&lt;a class=&quot;u&quot; href=&quot;http://aki-no-mia.deviantart.com/&quot;&gt;aki-no-mia&lt;/a&gt; on &lt;a href=&quot;http://www.deviantart.com/&quot;&gt;deviant&lt;/a&gt;&lt;a href=&quot;http://www.deviantart.com/&quot;&gt;ART&lt;/a&gt;&lt;br /&gt;
[/kidding]&lt;br /&gt;
&lt;br /&gt;
Anyway, several months before I started in my current job, I got this project to expand an HR&amp;nbsp;tracking software from a local startup. It was a fairly simple project and the company already has a small internal development team that is doing another part of the system (the Point-of-Sale, if I&#39;m not mistaken). Not only that, but an ISO 9001 Audit was ongoing in the other departments of the company- with people rifling through databases and checking that everything has a trail (eg. properly documented).&lt;br /&gt;
&lt;br /&gt;
One of the Database Tables had a column named &quot;ID&quot;, which is the table&#39;s primary key. The data was formatted like so: 20100123, 20100202, etc. Obviously, it was in a YYYYMMDD date format, so this is what the auditor did:&lt;br /&gt;
&lt;br /&gt;
1.) Change the key of one record from 20100129 to 20090101, which is a valid key&lt;br /&gt;
2.) Open the 2010 monthly reports.&lt;br /&gt;
&lt;br /&gt;
And lo and behold, the record disappeared from the reports.&amp;nbsp;It turned out that one of their developers was using the ID of the records to filter the reports:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;If CDbl(Record.ID) &amp;gt;= 100000 Then Report.Add(Record)&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
I don&#39;t know if it was brilliance or plain stupidity. I guess it does work. IDs are supposed to IDentify specific records, and &lt;b&gt;not &lt;/b&gt;keep track of dates- its data formatting does not, should NOT matter.&lt;br /&gt;
&lt;br /&gt;
As a workaround, the Senior Dev (who was pissed and almost fired the dev responsible) instructed us to use the following date format: YYMDD - Two digits for the year, One AlphaNum for the month, and two digits for the day.&amp;nbsp;The month AlphaNum works like so: 1 through 9 for January to September, X for October, Y for November and Z for December.&lt;br /&gt;
&lt;br /&gt;
Now THAT is brilliance: It shortened the ID from 8 digits to just 5 and prevented devs from converting the IDs to numbers and using them mathematically :D&lt;br /&gt;
&lt;br /&gt;
Until next time, Sayonara~</content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/2525666940168849249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2010/10/dates-and-primary-keys.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/2525666940168849249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/2525666940168849249'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2010/10/dates-and-primary-keys.html' title='Dates and Primary Keys'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-3862651558468662003</id><published>2010-09-23T16:11:00.000+08:00</published><updated>2010-09-23T16:11:14.366+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Teaching Thoughts"/><title type='text'>Optimus Prime (a.k.a Transformational Leadership)</title><content type='html'>Attending a seminar at &lt;a href=&quot;http://maps.google.com/maps/place?cid=15360650737879087637&amp;amp;q=newlife&quot;&gt;Newlife&lt;/a&gt;&amp;nbsp;is one-part worship, one-part pure content, and one-part&amp;nbsp;advertisement. Anyways, me and the systems department where I&#39;m currently employed attended this seminar there called &quot;Transformational Leadership&quot;, sponsored (prominently) by &lt;a href=&quot;http://worldvision.org/&quot;&gt;World Vision&lt;/a&gt;. It was a good seminar, although the speaker (Pastor Boris Joaquin) was&amp;nbsp;not very engaging, but still- I&#39;d like to share a few thoughts about it~&lt;br /&gt;
&lt;br /&gt;
Ok, what striked me the most is the 5-part &quot;Training Cycle&quot;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&quot;The Teaching&quot;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Develop their skills through detailed instructions&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Stay with your &quot;disciple&quot; every step of the way&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&quot;The Demonstration&quot;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Show, don&#39;t tell&lt;/li&gt;
&lt;li&gt;Let the &quot;disciple&quot; try their skills out in real situations&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&quot;The Coaching&quot;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Find their flaws, make constructive&amp;nbsp;criticism&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Inspire your &quot;disciple&quot; to increase his/her skills&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&quot;The Release&quot;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Stay in the background, help only when&amp;nbsp;necessary&lt;/li&gt;
&lt;li&gt;Give the &quot;disciple&quot; the power to decide for him/herself&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&quot;The Next Generation&quot;&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Confirm that your visions and goals are still aligned&lt;/li&gt;
&lt;li&gt;Let your &quot;disciple&quot; spread his expertise to others through this 5-part cycle&lt;/li&gt;
&lt;/ul&gt;&lt;/ol&gt;&lt;br /&gt;
Another topic that I liked is the transformational leadership model~ This is how I understood it..&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Start with yourself, to give yourself some perspective. If your don&#39;t walk the talk, then you&#39;ll lose followers faster than you can gain them. [Additional Reading: Mat.3:13-4:11]&lt;/li&gt;
&lt;li&gt;One-on-one with a few of your most trusted people. Don&#39;t try to &quot;change the world&quot; as soon as you can, start with those nearest and most open to you. [Mat.4:18-22]&lt;/li&gt;
&lt;li&gt;Start building your team. Let your &#39;chosen few&#39; choose their own &#39;chosen few&#39;, stay in the background and guide the vision of your community. [Mat.10:5-10, Mat.28:19-20]&lt;/li&gt;
&lt;/ul&gt;I guess that&#39;s that, I&#39;ve got an &quot;Open Source&quot; seminar to prep, so expect the slides about it on my next post. Until then, Sayonara :D</content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/3862651558468662003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2010/09/optimus-prime-aka-transformational.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/3862651558468662003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/3862651558468662003'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2010/09/optimus-prime-aka-transformational.html' title='Optimus Prime (a.k.a Transformational Leadership)'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-3240310199038899889</id><published>2010-09-11T00:33:00.000+08:00</published><updated>2010-09-11T00:33:51.201+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Teaching Thoughts"/><title type='text'>Object-Oriented Seminar</title><content type='html'>Slide Notes Here:&amp;nbsp;&lt;a href=&quot;http://ow.ly/2Coay&quot;&gt;http://ow.ly/2Coay&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;Standard&quot;&gt;&lt;span lang=&quot;DE&quot;&gt;&lt;iframe frameborder=&quot;0&quot; height=&quot;342&quot; src=&quot;https://docs.google.com/present/embed?id=dj7mcs3_27dfqz2w6v&quot; width=&quot;410&quot;&gt;&lt;/iframe&gt;&lt;/span&gt;&lt;/div&gt;After a few weeks, I was finally able to continue my seminar on 3P.Net~ Btw, The slides above have the same opening as the last one (first three or four slides, I think) and most of the juicy parts are on the slide notes. I have already touched on &lt;a href=&quot;http://gaiussensei.blogspot.com/2010/04/lazy-aint-always-bad.html&quot;&gt;Lazy Initialization&lt;/a&gt; and &lt;a href=&quot;http://gaiussensei.blogspot.com/2010/04/singletons.html&quot;&gt;Singletons&lt;/a&gt; in this blog, and I&#39;ve talked about &lt;a href=&quot;http://gaiussensei.blogspot.com/2010/06/two-tier-or-three-tier.html&quot;&gt;object&lt;/a&gt;-&lt;a href=&quot;http://gaiussensei.blogspot.com/2010/08/importing-inherited-implements.html&quot;&gt;oriented&lt;/a&gt; programming stuff as well, so I don&#39;t think I should more stuff in this post :D&lt;br /&gt;
&lt;br /&gt;
If you have any questions, clarifications or suggestions about any of the topics I&#39;ve discussed in this blog, just message me in my &lt;a href=&quot;http://www.google.com/profiles/GaiusSensei&quot;&gt;Google Profile&lt;/a&gt;, &lt;a href=&quot;http://www.facebook.com/gaius&quot;&gt;Facebook&lt;/a&gt; or &lt;a href=&quot;http://twitter.com/GaiusSensei&quot;&gt;Twitter&lt;/a&gt;. Until next time, sayonara~</content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/3240310199038899889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2010/09/object-oriented-seminar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/3240310199038899889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/3240310199038899889'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2010/09/object-oriented-seminar.html' title='Object-Oriented Seminar'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-926827529607356536</id><published>2010-08-21T14:12:00.005+08:00</published><updated>2010-08-22T06:49:54.640+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Theory + Reality"/><title type='text'>Importing Inherited Implements</title><content type='html'>What’s the difference between Imports, Inherits and Implements?&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Imports&lt;/strong&gt;&lt;br /&gt;
…lets the developer &lt;strong&gt;USE &lt;/strong&gt;a &lt;u&gt;Namespace&lt;/u&gt;, using a &lt;em&gt;referenced library&lt;/em&gt;; eg. the Math Object is under the System Namespace, so in order to use the functions that it shares, you’ll declare “Imports System.Math” somewhere in your code.You can use any library that you have referenced in your project WITHOUT using Imports keyword by typing the full class path, eg. “a = System.Math.Abs(10.2);”. By using the Imports keyword, however, you can shorten the line of code to just “a = Abs(10.2);”.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Implements&lt;/strong&gt;&lt;br /&gt;
…lets the developer &lt;strong&gt;EXTEND&lt;/strong&gt; a &lt;u&gt;Class&lt;/u&gt;, using an &lt;em&gt;Interface&lt;/em&gt;. These interfaces usually start with the capital I in front of them, and implementing one of these would force a class to use certain names and types of certain methods and properties. You &lt;em&gt;have&lt;/em&gt; to explicitly declare these constraints, or the class will not compile. However: the Interface itself cannot contain &lt;em&gt;any&lt;/em&gt; code, it just enforces a pattern so that other objects can call a generic interface to address multiple implementations.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Inherits&lt;/strong&gt;&lt;br /&gt;
…also lets the developer &lt;strong&gt;EXTEND&lt;/strong&gt; a &lt;u&gt;Class&lt;/u&gt;, but this time using a &lt;em&gt;base class&lt;/em&gt;. The base class are complete classes with working methods and properties. It &lt;em&gt;does not &lt;/em&gt;enforce any constraints to the class that’s inheriting it (unlike Interfaces) so you can overload (or choose to ignore) any method you like. &lt;br /&gt;
&lt;br /&gt;
~~~&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;An Analogy: &lt;/strong&gt;Everyone can become Wet. Dogs are Animals. Cats are Animals. All Carnivores can eat Meat.&lt;br /&gt;
&lt;br /&gt;
Now, since everyone can access the method MakeWet, then an “Imports System.Water” might have been declared, so that everyone can just call the Method “MakeWet” instead of repeatedly writing “System.Water.MakeWet”.&lt;br /&gt;
&lt;br /&gt;
We can say that both Dogs and Cats implement the interface IAnimal. This way, we can give both of them the method IAnimal.Talk() and force the coder to write code inside the function. Afterwards, since all animals have the same method name ‘Talk()’, we can use them like so:&lt;br /&gt;
&lt;blockquote&gt;Zoo.Add(New Dog)     &lt;br /&gt;
Zoo.Add(New Cat)&lt;br /&gt;
For Each Animal as IAnimal in Zoo     &lt;br /&gt;
Animal.Talk()      &lt;br /&gt;
End For&lt;br /&gt;
// Output:     &lt;br /&gt;
// ”Woof Woof”      &lt;br /&gt;
// ”Meow Meow”&lt;/blockquote&gt;However, all animals eat alike. Instead of copy-pasting the eat method on each animal, lets just have them inherit the Base Class clsCarnivore, which automatically gives them the method ‘EatMeat’. Of course, if an animal only eats certain kinds of meat, we can overload the method, but if not, no extra code is needed.&lt;br /&gt;
&lt;br /&gt;
There, and done~! Don’t get confused.. Until next post, Sayonara~</content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/926827529607356536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2010/08/importing-inherited-implements.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/926827529607356536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/926827529607356536'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2010/08/importing-inherited-implements.html' title='Importing Inherited Implements'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-5960598134843948102</id><published>2010-08-20T23:35:00.000+08:00</published><updated>2010-08-20T23:35:18.022+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Personal"/><title type='text'>w00+! Btw, what&#39;s the opposite of writer&#39;s block?</title><content type='html'>Ok, so I said quite a few posts back that I&#39;m pulling back on blog posts to focus on my new job at Isuzu Automotive. However, I&#39;m quite inspired these past few days (maybe because of the thrill of educating again), and I&#39;m currently writing 3 blog posts for you guys ^^ Yey!&lt;br /&gt;
&lt;br /&gt;
Now, I&#39;m about finished with the first one: Inherits Implements and Imports, so that&#39;ll go up approximately&amp;nbsp;tomorrow&amp;nbsp;evening. One of my superiors asked me about the difference between them, and I couldn&#39;t remember off the top of my head. So I decided to do some research and write about it here.&lt;br /&gt;
&lt;br /&gt;
Next is a fun post, which will also be the first post on my new (!!) blog: &lt;a href=&quot;http://ff14philippines.posterous.com/&quot;&gt;FinalFantasy14.Philippines&lt;/a&gt;. I got a Beta Key for the Square-Enix&#39;s upcoming MMORPG: Final Fantasy 14, and I&#39;ll try to document what I learn and share the experience in a filipino player&#39;s perspective.&lt;br /&gt;
&lt;br /&gt;
Lastly, I&#39;m writing something about developing Android Applications. I brought an HTC Wildfire last week, and I&#39;m kindof intrigued with the development of Android as an operating system.&lt;br /&gt;
&lt;br /&gt;
Ok, that&#39;s it! I need to go write some more~ Sayonara, for now!</content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/5960598134843948102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2010/08/w00-btw-whats-opposite-of-writers-block.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/5960598134843948102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/5960598134843948102'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2010/08/w00-btw-whats-opposite-of-writers-block.html' title='w00+! Btw, what&#39;s the opposite of writer&#39;s block?'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-2404935958412411183</id><published>2010-08-17T20:40:00.001+08:00</published><updated>2010-08-17T20:42:15.044+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Teaching Thoughts"/><title type='text'>Trippy Dot Net</title><content type='html'>Slide Notes Here:&amp;nbsp;&lt;a href=&quot;http://ow.ly/2qFmJ&quot;&gt;http://ow.ly/2qFmJ&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;Standard&quot;&gt;&lt;span lang=&quot;DE&quot;&gt;&lt;iframe frameborder=&quot;0&quot; height=&quot;342&quot; src=&quot;https://docs.google.com/present/embed?id=dj7mcs3_19cmpk7nf3&quot; width=&quot;410&quot;&gt;&lt;/iframe&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
2nd seminar in a month c-c-combo! I&#39;m getting my old confidence back :D I&#39;ll try to schedule another one next next tuesday (which I will post here too) about Unit Testing~ But in the meantime, here&#39;s a few choice bits about my take on Exception Handling (Part 1 of my 3P.Net series):&lt;/div&gt;&lt;div class=&quot;Standard&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;Standard&quot;&gt;&lt;span lang=&quot;DE&quot;&gt;&lt;/span&gt;Be wary of using Try..Catch Exception Handling! Its tempting to use the infamous &quot;Try All, Catch Everything&quot; mentality throughout your code, but that will cause a lot of trouble to you (and your team) in the future. How? Well, aside from a slight performance hit for every line in the try..catch (less than 1ms), by catching exceptions in the lower layers, you&#39;re depriving the upper layers from effectively resolving those errors!&lt;/div&gt;&lt;div class=&quot;Standard&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;Standard&quot;&gt;An example: If the end user somehow bypasses the validation, and enter a null entry into a non-nullable field, the business logic layer would pass the wrong data to the service layer, who would then try to insert/update the data source. The data source would then issue an exception to the service layer (NullArgumentException). If you resolve the error at the service layer (Log the error then throw a message saying that there&#39;s something wrong) then the business logic layer will no longer catch the exception. However! If you let it &#39;bubble up&#39; (eg. Don&#39;t try..catch it, or throw it again after catching it) to the business logic layer, you can now catch all NullArgumentExceptions, fill the null data with a default value, then resend it to the data source. The end user would&#39;nt even know that an exception had happened.&lt;/div&gt;&lt;div class=&quot;Standard&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;Standard&quot;&gt;Another thing, it&#39;s good practice to throw unresolved exceptions up towards the highest layer, which is commonly the Windows Forms layer (or ASP.Net/WPF/Silverlight layer, whichever the case). The top most layer however, should have a blanket try catch on its containers (form/page/usercontrol, whichever the case) in order to catch any stray unresolved errors that manage to bubble up to the very top. These unresolved errors, are the ones that we have to track with a Bug Tracker.&lt;/div&gt;&lt;div class=&quot;Standard&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;Standard&quot;&gt;You can read more about this topics on my slides above, or you could just message me in my &lt;a href=&quot;https://www.google.com/profiles/GaiusSensei&quot;&gt;Google Profile&lt;/a&gt;, &lt;a href=&quot;http://www.facebook.com/gaius&quot;&gt;Facebook&lt;/a&gt; or &lt;a href=&quot;http://twitter.com/GaiusSensei&quot;&gt;Twitter&lt;/a&gt;. Until next time, sayonara~&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/2404935958412411183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2010/08/trippy-dot-net.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/2404935958412411183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/2404935958412411183'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2010/08/trippy-dot-net.html' title='Trippy Dot Net'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-236659297139628405</id><published>2010-08-07T21:00:00.000+08:00</published><updated>2010-08-07T21:06:35.600+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Teaching Thoughts"/><title type='text'>Social Networking and Education</title><content type='html'>Slide Notes Here:&amp;nbsp;&lt;a href=&quot;http://ow.ly/2mmFT&quot;&gt;http://ow.ly/2mmFT&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;iframe frameborder=&quot;0&quot; height=&quot;342&quot; src=&quot;https://docs.google.com/present/embed?id=dj7mcs3_1hf9qw5c2&quot; width=&quot;410&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
It has been quite some time since I stood in front of a classroom filled with students. A week ago, Mam (Mich) Ramirez invited me to talk at Lyceum, and I&amp;nbsp;immediately&amp;nbsp;agreed- As you guys know, I like being an educator. But as I stood in front of the students, I suddenly felt fear and my heart started pounding fast.. I guess &#39;&lt;i&gt;hindi na ko sanay&lt;/i&gt;&#39; and I need to start performing talks more. I hope more opportunities like these present themselves..&lt;br /&gt;
&lt;br /&gt;
Anyhow.&lt;br /&gt;
&lt;br /&gt;
My talk was about &lt;a href=&quot;http://gaiussensei.blogspot.com/2010/05/look-inside-letran-teaching-programming_23.html&quot;&gt;how college education is not enough&lt;/a&gt;, how we must supplement it with knowledge available to us (free!) in the internet, and how to find these knowledge through the use of Social Networking. After that, I talked a bit about blogging (which, ironically, I&#39;m blogging about right now) and which blogging platforms I think is the best. I&#39;ll reiterate a bit here:&lt;br /&gt;
&lt;br /&gt;
1) I love &lt;a href=&quot;http://www.blogger.com/&quot;&gt;Blogger&lt;/a&gt;. Absolutely free, No strings attached, moderately customizable and best of all: Allows Ads.&lt;br /&gt;
2) &lt;a href=&quot;http://wordpress.com/&quot;&gt;Wordpress&lt;/a&gt;: for Design Experts. &amp;nbsp;It requires a small yearly fee, but you can&amp;nbsp;customize&amp;nbsp;a lot of it afterwards: plugins, widgets, themes, etc. Also, a photoshop pro&#39;s dream photo blog.&lt;br /&gt;
3)&amp;nbsp;Quick &amp;amp; Easy blogging at&amp;nbsp;&lt;a href=&quot;http://www.tumblr.com/&quot;&gt;Tumblr&lt;/a&gt;&amp;nbsp;&amp;amp; &lt;a href=&quot;http://posterous.com/&quot;&gt;Posterous&lt;/a&gt;. These are free services, little customization (compared to Blogger and Wordpress, at least) but very clean and simple to use.&lt;br /&gt;
4) Make your own. You can set up a &lt;a href=&quot;http://www.joomla.org/&quot;&gt;Joomla&lt;/a&gt;, &lt;a href=&quot;http://drupal.org/&quot;&gt;Drupal&lt;/a&gt; or a &lt;a href=&quot;http://rubyonrails.org/&quot;&gt;Ruby on Rails&lt;/a&gt; web server at home or on a host, get a domain name to get a 100% fully customizable website that can breath fire (if you&#39;re a good enough programmer), but of course, you&#39;d need to invest a lot of time, effort and cash to do so. I suggest trying out the free services first.&lt;br /&gt;
&lt;br /&gt;
That&#39;s it for today~! If you guys have any questions (about the seminar, blogging or even programming) you can leave a message on my &lt;a href=&quot;https://www.google.com/profiles/GaiusSensei&quot;&gt;Google Profiles&lt;/a&gt; page, or just contact me through &lt;a href=&quot;http://www.facebook.com/gaius&quot;&gt;Facebook&lt;/a&gt; or &lt;a href=&quot;http://twitter.com/GaiusSensei&quot;&gt;Twitter&lt;/a&gt;. Until next time, Sayonara! *watches the latest Hitman Reborn*</content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/236659297139628405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2010/08/social-networking-and-education.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/236659297139628405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/236659297139628405'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2010/08/social-networking-and-education.html' title='Social Networking and Education'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-6047635236578866191</id><published>2010-07-31T21:30:00.005+08:00</published><updated>2010-07-31T23:50:58.065+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Personal"/><title type='text'>Faith &amp; Prosperity</title><content type='html'>What a week. First, I attended my job&#39;s care group last&amp;nbsp;Thursday&amp;nbsp;(10729)&amp;nbsp;and the topic was about prosperity. Then. my boss gave me and one of my coworkers a ticket to a financial seminar about debt, investment and setting up a business. The seminar was today, and it went well- all three of the speakers were both emotionally moving and very&amp;nbsp;knowledgeable&amp;nbsp;in their topics. After the seminar, I attended the&amp;nbsp;Saturday&amp;nbsp;mass with another coworker, and the homily was about, take a guess: wealth. See the pattern yet?&lt;br /&gt;
&lt;blockquote&gt;&quot;Owe no one anything, except to love one another...&quot; ~ Romans 13:8&lt;/blockquote&gt;Dr. Dan Lachica&#39;s talk about debt was very inspiring, and although I&#39;m not in debt (except maybe from my parents) I still learned a lot from it. However, what really striked me was his short segue into how cheating somehow affects what happens to you in the future. Dr. Lachica&#39;s example was that, if he holds a scalding hot bottle of water, his hand will blister right away- therefore, he immidiately knows that the cause of the blisters is the hot bottle of water. However, if he holds the hot bottle now, and gets blisters after a few days, it would be harder to connect those two events.&lt;br /&gt;
&lt;br /&gt;
Now, let me tell you what happened to me just last week. Yes, a week before my whole week of faith and prosperity-talk with practically&amp;nbsp;&lt;i&gt;everyone&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
A week ago, Saturday, I was at the office working as usual with very little care about cash except saving enough for a copy of Final Fantasy 14 come late September. One of my friends asked me if I have time after work, since a new movie that looked interesting was in the theaters (No, not Eclipse, but Sorcerer&#39;s Apprentice w/ Nicolas Cage). Since I didn&#39;t have anything planned except my weekly Saturday mass at the nearby mall, I agreed. Turns out that the same mall had a screening of the movie we want, 30 mins. right after the mass (coincidence? I didn&#39;t think so then, but...)&lt;br /&gt;
&lt;br /&gt;
I met with my friend after work, and we went to the mass together. Before the mass ended, the collection basket was passed for those who&#39;d like to share their blessings with the church- I usually pass it on because... well, I don&#39;t really have an excuse. But until then, I don&#39;t remember ever putting any of my own money into the collection basket. However, my friend took out his wallet and drew some coins when the basket neared. Feeling a bit guilty, I also looked at my wallet and got some coins out- about six or seven pesos, I&#39;m not sure. We dropped the coins into the basket and the mass continued.&lt;br /&gt;
&lt;br /&gt;
We ate at a fast food, watched the movie (it was good, btw) then went home- a bus then a jeep. Here&#39;s when I first noticed something: I had the exact amount of coins left for my ride home, and since I don&#39;t like breaking my bills to coins, I decided not to stop at a&amp;nbsp;convenience&amp;nbsp;store for a quick bite.&lt;br /&gt;
&lt;br /&gt;
The next work day, the same thing happened at my workplace&#39;s canteen- exact change. Nothing extra to spend on luxuries that I want, but don&#39;t need. The week trudged on, and the same things kept happening, up until the weekend came- which I normally spend some extra cash (I had quite a lot,&amp;nbsp;to my surprise). I had quite a fun and I enjoyed&amp;nbsp;hanging&amp;nbsp;out with my friends, until I noticed that I left my jacket at a coffee shop (Town Center&#39;s Coffee Bean). It was a favorite of mine, and quite new too- I&amp;nbsp;immediately&amp;nbsp;sms&#39;d my mom about it just in case I never get it back, since me and my friends are already a bit far from where I left it. An hour passed by, almost two hours, before we got back.&amp;nbsp;Lo and behold, I got my jacket back. The shopkeeper&#39;s staff kept it for me, and I was really grateful that they did so.&lt;br /&gt;
&lt;br /&gt;
It was an amazing string of &quot;coincidences&quot;: starting with a guilty offering of only a few pesos, into saving some cash, into finding my lost jacket, and finally capped with a series of seminars that explained everything. It took me a while before I saw which &lt;b&gt;cause&lt;/b&gt;d what effect, but I&#39;m sure- 100% sure, that my whole week was planned by Him. I really am blessed, and I&#39;m writing this as way to spread these blessings, to inspire, or at least&amp;nbsp;convince&amp;nbsp;you, that the Lord, our God, is really a generous God.&lt;br /&gt;
&lt;br /&gt;
I don&#39;t really like quoting from the bible (it almost&amp;nbsp;always&amp;nbsp;feels like its out of context somehow), but since I started with one, I&#39;ll end with another. Until next time, Sayonara!&lt;br /&gt;
&lt;blockquote&gt;&quot;As long as the earth endures,&amp;nbsp;seedtime and harvest,&amp;nbsp;cold and heat,&amp;nbsp;summer and winter,&amp;nbsp;day and night&amp;nbsp;will never cease.&quot; ~ Genesis 8:22&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/6047635236578866191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2010/07/faith-prosperity.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/6047635236578866191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/6047635236578866191'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2010/07/faith-prosperity.html' title='Faith &amp; Prosperity'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-4228683371464693777</id><published>2010-07-20T22:30:00.002+08:00</published><updated>2010-07-20T22:30:00.671+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Theory + Reality"/><title type='text'>“Are we really going to use these theories/principles at work?”</title><content type='html'>While teaching in Letran, or even while studying there a few years back, one question almost always pops up when a professor wraps up a difficult topic: “How do we apply this in the real world?” I have asked this question myself a few times, and now that I&#39;m working in the industry again, I have this rare chance of showing you exactly how the theories are actually used in real applications. I will tag these series here as &#39;Theory + Reality&#39;, and the posts would be about how we can apply the theories we have learned to the software that we would create.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Reality&lt;/b&gt;:&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm5qP8Mkpzuve7TlvjTcO_fJ8epxKkRsxrzQomAtWnWOpoa4On8YAfJ3KQUWF2pu_6Vbdc8HMl7VZITR59mSNBJfhFIwWeYNIVQFcH6OAKTHV2S9NQQzUaZj8s6XpxEyOEPFzx0_4wkkKK/s1600-h/10716%20~%20Blog%201%5B4%5D.png&quot;&gt;&lt;img alt=&quot;10716 ~ Blog 1&quot; border=&quot;0&quot; height=&quot;232&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglfDFvAcK6iFILqX7Yv55M2vbH2p6llunLOpW1VxPkUyljOEsRzGWuYcyWcOAftFqf-Yb2NzwixVquRbwh1Njsb6BmGSslsNbkdhtWW-joYOXho1XipTimdc7HMFDHxTlz6GdJ6Tw5jc5b/?imgmax=800&quot; style=&quot;border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;&quot; title=&quot;10716 ~ Blog 1&quot; width=&quot;472&quot; /&gt;&lt;/a&gt;&amp;nbsp; &lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt; Click the Pic to Enlarge!&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
One of the most common task that we&#39;re going to do at the industry is to maintain and improve upon existing software. Look at the code above. This is a small piece of code from the&lt;b&gt; Business Logic (BL) Layer&lt;/b&gt; that basically shows some collection of information about the customer. According to my &lt;a href=&quot;http://gaiussensei.blogspot.com/2010/06/two-tier-or-three-tier.html&quot; target=&quot;_blank&quot;&gt;previous blog post&lt;/a&gt; about the N-Tier Architecture, the Second Tier is basically a bridge/police between the User Interface and the Data Store, transferring while verifying the data through a set of business rules/policies. Now, let&#39; analyze the code line-by-line.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Line 174&lt;/b&gt;: The Business Logic code asked for a ComboBox as a parameter. The alarms in your head should already start ringing- there&#39;s something not quite right here. A Combo Box is something the user interacts with, and the bridge/police shouldn&#39;t have anything to do with it. Theoretically, what we need is the data- what&#39;s inside the ComboBox.&lt;br /&gt;
&lt;b&gt;Line 175&lt;/b&gt;: It&#39;s &lt;i&gt;normally&lt;/i&gt; unnecessary to put an entire function in a Try-Catch block. We should only catch errors that we can fix- errors that the business logic layer, or the layers below it, actually creates. Everything else should just bubble up to whoever can resolve the error. Of course, sometimes you need to do this when debugging the code, just to be sure.&lt;br /&gt;
&lt;b&gt;Line 176 to 184&lt;/b&gt;: This is simply an initialization phase for the parameters that would be used by the next process. Trivia: It&#39;s almost impossible to have a runtime error here that the Business Logic layer can resolve.&lt;br /&gt;
&lt;b&gt;Line 185:&lt;/b&gt; This is the connection to the Data Store. We should hold on to the data that this returns until the User Interface needs it.&lt;br /&gt;
&lt;b&gt;Line 186&lt;/b&gt;: Here, we use an external object (service as clsService) to bind another external object (the ComboBox), passing the data that we got from the Data Store, which is readily available since the scope of the Set_Get_Lookup property is Public. Obviously, this doesn&#39;t belong here. It has nothing to do with any Business Logic, and has everything to do with the User Interface. Take note that one of the features of the BL layer is that we should be able to interchange different UIs easily (this design pattern is known as &lt;i&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Loose_coupling&quot; target=&quot;_blank&quot;&gt;loose coupling&lt;/a&gt;&lt;/i&gt;) and by binding the combobox here, we are tightly coupling this part of the code to the current interface.&lt;br /&gt;
&lt;b&gt;Line 187&lt;/b&gt;: Catch ex as Exception means you would catch ALL exceptions. I will say this again: It&#39;s good programming practice to just specify which errors you catch, then let everything else bubble up. The user interface usually has this kind of Try-Catch block, to notify the user that you&#39;ve done everything you could&#39;ve done, but the error is still there.&lt;br /&gt;
&lt;b&gt;Line 188&lt;/b&gt;: This is an impossible line of code. Business Logic layers are normally compiled in a library (a DLL) and libraries, by their very nature, are “headless”. They should &lt;i&gt;never&lt;/i&gt; have a User Interface, so calling a MessageBox here is a logical error.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Theory + Reality     &lt;br /&gt;
&lt;/b&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4KpS-t8L7i4TKMJ0KsMooWDvS2nbxWRZpVTDZ3Hf9P5C-EnI7LM6JG_up7pKDzWy0JWyVkGBJi8QPm9dO9gD1oYN1MNgONx-M_shViPxgnX1uYFMCaDrDpUuID6thM3XPKHF3bIzMsIjU/s1600-h/10716%20~%20Blog%202%5B5%5D.png&quot;&gt;&lt;img alt=&quot;10716 ~ Blog 2&quot; border=&quot;0&quot; height=&quot;294&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhES1j4FLpUt_Av3vLTSAJKWgAa5tuo1g4alcQap0YKSR7q9UFO_0cb3FHndvElFOPlGiFztyKFdPFP1jBQ6q0bRYAWWrLLdM6k4LW12VLdkuORmUdNOC0qRoARNts69utwg4oztFdAsywU/?imgmax=800&quot; style=&quot;border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;&quot; title=&quot;10716 ~ Blog 2&quot; width=&quot;471&quot; /&gt;&lt;/a&gt;&amp;nbsp; &lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt; Click the Pic to Enlarge!&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
You can see in the sanitized and Diff&#39;d code above the design patterns and theories which I applied. Specifically:&lt;br /&gt;
&lt;br /&gt;
• &lt;a href=&quot;http://en.wikipedia.org/wiki/Single_responsibility_principle&quot; target=&quot;_blank&quot;&gt;Single Responsibility Principle&lt;/a&gt;. The business logic layer should have one, definite responsibility only: to act as a bridge/police for the data traveling between the UI and the Data Store. Don&#39;t let responsibilities bleed into other layers, or even other objects (also: &lt;a href=&quot;http://msdn.microsoft.com/en-us/magazine/dd882522.aspx#id0420012&quot; target=&quot;_blank&quot;&gt;avoid tight coupling&lt;/a&gt;).&lt;br /&gt;
• &lt;b&gt;Load Once, Use Many Principle&lt;/b&gt;. You can find my blog post about the &lt;a href=&quot;http://gaiussensei.blogspot.com/2010/04/lazy-aint-always-bad.html&quot; target=&quot;_blank&quot;&gt;Lazy Initialization design pattern here&lt;/a&gt;.&lt;br /&gt;
• Better Exception Handling.&lt;br /&gt;
&lt;br /&gt;
That&#39;s it! The first of the hopefully many posts in this series is complete, and I hope we&#39;ve both learned a lot from these. Until the next post, sayonara :D</content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/4228683371464693777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2010/07/are-we-really-going-to-use-these.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/4228683371464693777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/4228683371464693777'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2010/07/are-we-really-going-to-use-these.html' title='“Are we really going to use these theories/principles at work?”'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglfDFvAcK6iFILqX7Yv55M2vbH2p6llunLOpW1VxPkUyljOEsRzGWuYcyWcOAftFqf-Yb2NzwixVquRbwh1Njsb6BmGSslsNbkdhtWW-joYOXho1XipTimdc7HMFDHxTlz6GdJ6Tw5jc5b/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-706259571204270127</id><published>2010-07-14T16:54:00.000+08:00</published><updated>2010-07-14T16:54:51.098+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WebApp Review"/><title type='text'>Post@Posterous? Or Not?</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://3over7.posterous.com/&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;155&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNFVem6TplKBiTzac_j1qDngb0bDl2X78rWKtf68Ez2aJyEKoE0Qj1L_Q8eIhhBX7rAQS8nQsZfr8IuKBidcYlTJikRFNhRTvHUoIPeUvRSF_Rl894pllrFqW5UE2a9TIpnmRqjNZf7axS/s400/3over7.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
I have been reading Michael Scott&#39;s novel, &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Alchemyst&quot;&gt;The Alchemyst&lt;/a&gt;&amp;nbsp;this last few weeks, and it inspired me to write a short story in the same vein- about teens using magic in the modern world. Aside from posting it in my &lt;a href=&quot;http://lantisgaius.deviantart.com/&quot;&gt;DeviantArt account&lt;/a&gt;, I have also decided to post it in a new blog which has far more editing capabilities. Posterous.com has been &lt;a href=&quot;http://techcrunch.com/2010/06/22/posterous-targets-ning-in-massive-switching-campaign-who-is-next/&quot;&gt;making&lt;/a&gt; &lt;a href=&quot;http://techcrunch.com/2010/06/29/twitpic-posterous-lawyers/&quot;&gt;waves&lt;/a&gt; in the internet world this past few weeks due to their new features, and I decided to give the service a try.&lt;br /&gt;
&lt;br /&gt;
First things first: The signup was mixed bag. On one hand, all you have to do is email your first post to post@posterous.com and you&#39;re automagically signed up. On the other, geeks and experienced bloggers usually set the site up before posting- and it took me a couple of seconds to figure out that the sign up form was on the login page, and not the front page. After that&#39;s done though, Posterous accepts OpenId which makes logging in a breeze.&lt;br /&gt;
&lt;br /&gt;
After playing with it for a while, I realized that the site is a far, far cry from Wordpress, or even Blogger. While most Blogging platforms have focused on ever-expanding features, Posterous have focused on Simplicity (a bit like google). They sticked with a simple WYSIWYG interface for posting &amp;amp; editing- there&#39;s nothing new in post-by-email, and their autopost to social networks is subpar with what Wordpress offers- for example, you can&#39;t choose which link shortener you can use. Also, the initial Themes, while very customizable, are limited to about a dozen.&lt;br /&gt;
&lt;br /&gt;
If the only service you need is a place to put your notes, thoughts or stories into, then you can&#39;t get any more simpler than what Posterous offers. Signup, then everything&#39;s ready to go- post away!&lt;br /&gt;
&lt;br /&gt;
Note: Sorry I can&#39;t post more often and more concise. I don&#39;t have Internet Access at work (yet) so I don&#39;t have the same amount of resources as before~ I&#39;ll still try my best though, gambatte! w00t~</content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/706259571204270127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2010/07/postposterous-or-not.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/706259571204270127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/706259571204270127'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2010/07/postposterous-or-not.html' title='Post@Posterous? Or Not?'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNFVem6TplKBiTzac_j1qDngb0bDl2X78rWKtf68Ez2aJyEKoE0Qj1L_Q8eIhhBX7rAQS8nQsZfr8IuKBidcYlTJikRFNhRTvHUoIPeUvRSF_Rl894pllrFqW5UE2a9TIpnmRqjNZf7axS/s72-c/3over7.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-7678758282443537323</id><published>2010-06-24T22:00:00.001+08:00</published><updated>2010-06-24T22:08:19.414+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns"/><title type='text'>Two-Tier Or Three-Tier?</title><content type='html'>&lt;p&gt;&lt;object width=&quot;450&quot; height=&quot;460&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://backend.deviantart.com/embed/view.swf&quot; /&gt;&lt;param name=&quot;flashvars&quot; value=&quot;id=68133363&amp;amp;width=1337&quot; /&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot; /&gt;&lt;embed src=&quot;http://backend.deviantart.com/embed/view.swf&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;450&quot; flashvars=&quot;id=68133363&amp;width=1337&quot; height=&quot;460&quot; allowscriptaccess=&quot;always&quot;&gt;&lt;/embed&gt;&lt;/object&gt;    &lt;br /&gt;&lt;a href=&quot;http://www.deviantart.com/deviation/68133363/&quot;&gt;N&lt;/a&gt; by !&lt;a class=&quot;u&quot; href=&quot;http://raimyu.deviantart.com/&quot;&gt;Raimyu&lt;/a&gt; on &lt;a href=&quot;http://www.deviantart.com&quot;&gt;deviant&lt;/a&gt;&lt;a href=&quot;http://www.deviantart.com&quot;&gt;ART&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The &lt;em&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/N-tier&quot; target=&quot;_blank&quot;&gt;N-Tier pattern&lt;/a&gt;&lt;/em&gt;, when used in software development, is one step above my usual topic of design patterns. They are commonly called architectural patterns which are concerned with the software at a macro level (eg. ‘the big picture’).&lt;/p&gt;  &lt;p&gt;Some time ago, I was tasked before of maintaining a line-of-business sales system from a fairly large company.Their technical design spec was quite clear that the “…architecture is divided into three (3) main layers…” which, in theory, &lt;em&gt;should&lt;/em&gt; make my job easier. As I browsed through the code though, one thing became apparent: It was not a 3-Tier Arch like the docs said, but a more traditional server-client setup~ Now, what is the difference exactly?&lt;/p&gt;  &lt;p&gt;A Server-Client architecture (which is, technically, a 2-Tier Arch) is concerned primarily with the &lt;strong&gt;centralization of data&lt;/strong&gt; and sometimes the balancing of process load to either the server or the client. The data and the business rules (stored procs) are stored at the server, with a thin client app to present the results (forms, grids &amp;amp; reports)- which is exactly how the LoB app above works.&lt;/p&gt;  &lt;p&gt;S+C’s Advantages over 3-Tier Arch&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Faster Development (less design, less code) &lt;/li&gt;    &lt;li&gt;Can offload processes to the server to accommodate for weaker client workstations, or vice versa if the server is the performance bottleneck &lt;/li&gt;    &lt;li&gt;Can change business logic without re-deploying new software to the user &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Three-tier applications on the other hand, is focused on &lt;strong&gt;the separation of responsibility to facilitate control and change&lt;/strong&gt;. The Data Access Layer is usually separated physically such as a Database Server, but is mostly kept “dumb” except for very few performance functions. The Business Logic Layer on the other hand is a more robust collection of libraries and maybe a few dynamic scripts that enforces the rules of the application. This ranges from who can access which data, data validation, up to caching, etc. Lastly, the topmost Presentation Layer is the combination of UI Rendering (Windows Forms, ASP.Net, WPF, etc.) and UI Logic (Parallel processes, Sessions, States, anything that is not business-related logic).&lt;/p&gt;  &lt;p&gt;3-Tier’s Advantages over S+C Arch:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Modular, and thus easier to maintain. You can replace one layer with another completely with very minimal code changes (switch from Windows Forms to WPF or ASP.Net with zero impact on business logic or database schema) &lt;/li&gt;    &lt;li&gt;can perform Unit Testing very easily. Since all of the business logic is contained on libraries, you can hook the DLLs easily on a controlled testing environment. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;We have to consider both sets of factors above in order to decide which architecture to use when designing our software~&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/7678758282443537323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2010/06/two-tier-or-three-tier.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/7678758282443537323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/7678758282443537323'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2010/06/two-tier-or-three-tier.html' title='Two-Tier Or Three-Tier?'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-5962434434149315694</id><published>2010-06-18T18:00:00.001+08:00</published><updated>2010-06-18T18:14:11.905+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Personal"/><title type='text'>Job @ Honda/Isuzu</title><content type='html'>&lt;p&gt;At exactly 8:00am GMT+8 tomorrow (10619), I’ll officially be an employee of Ayala Motors under their Honda/Isuzu team :D It’s nice to have a permanent job instead of just jumping around with freelance and open-source development stuff~&lt;/p&gt;  &lt;p&gt;Fun Facts: I was without a permanent job for approximately…&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;2 Months and 6 Days or&lt;/li&gt;    &lt;li&gt;9 Weeks (rounded down) or&lt;/li&gt;    &lt;li&gt;67 Days or&lt;/li&gt;    &lt;li&gt;1,608 Hours or&lt;/li&gt;    &lt;li&gt;96,480 Minutes or&lt;/li&gt;    &lt;li&gt;5,788,800 Seconds o.0;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Of course I will still try to contribute to the Open Community, but in the meantime (at least while I’m still on probationary status) I will probably limit my posts here. I still have a lot to talk about, in fact: I have a post about &lt;em&gt;the Difference between CS and the IT courses&lt;/em&gt; and another post about &lt;em&gt;Careers and How to Make/Break one&lt;/em&gt;. I will post both of them ASAP, but I guess its sayonara for now~ See ya :P&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/5962434434149315694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2010/06/job-hondaisuzu.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/5962434434149315694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/5962434434149315694'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2010/06/job-hondaisuzu.html' title='Job @ Honda/Isuzu'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-2694836699537222610</id><published>2010-06-17T16:44:00.000+08:00</published><updated>2010-06-18T16:51:06.039+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Personal"/><title type='text'>Hadou 91: Senjyu Kouten Taihou</title><content type='html'>&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFQ3XYvR2IO2ykg-RBjSxYPTTMcgGI4n2W5XKDosOFMjUIl7QIVIOHiViaY-KZEuy7CZYcW5hEUtPgg3IDLsk9RcV9qXGjkZOOX9293VWRmoQm-YGU3rxwSKv0DiXuZ2SB5SplSWOzqugz/s1600-h/Hadou913.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;Hadou91&quot; border=&quot;0&quot; alt=&quot;Hadou91&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjweNoH7SLej3zQRP9BDSi5_VPm-R6Cok9P5d1iMs3yH6VvUSHBIMWN96qVaMnCHWcWP6LAOq16uDefpA3wMUnCA6S3QSiiNhPsD31O0p8L1lR1tF-nk27RokocrOrcVRO86z4iEGssqXX2/?imgmax=800&quot; width=&quot;467&quot; height=&quot;268&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align=&quot;center&quot;&gt;Limit of the thousand hands    &lt;br /&gt;Respectful hand, unable to touch the darkness     &lt;br /&gt;Shooting hand, unable to reflect the blue sky     &lt;br /&gt;    &lt;br /&gt;The road that basks in light     &lt;br /&gt;The wind that ignites the embers     &lt;br /&gt;Time that gathers when both are together     &lt;br /&gt;There is no need to be hesitant, Obey my order&lt;/p&gt;  &lt;p align=&quot;center&quot;&gt;Light bullet -    &lt;br /&gt;Eight bodies -     &lt;br /&gt;Nine items -     &lt;br /&gt;Book of heavens -     &lt;br /&gt;Diseased treasure -     &lt;br /&gt;Great wheel -     &lt;br /&gt;Grey fortress tower&lt;/p&gt;  &lt;p align=&quot;center&quot;&gt;Aim far away,    &lt;br /&gt;Scatter brightly and cleanly when fired&lt;/p&gt;  &lt;p align=&quot;center&quot;&gt;&lt;strong&gt;Thousand Hands Bright Sky Cannon&lt;/strong&gt;&lt;/p&gt;  &lt;p align=&quot;center&quot;&gt;&lt;em&gt;~Urahara Kisuke, Bleach 402&lt;/em&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/2694836699537222610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2010/06/hadou-91-senjyu-kouten-taihou.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/2694836699537222610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/2694836699537222610'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2010/06/hadou-91-senjyu-kouten-taihou.html' title='Hadou 91: Senjyu Kouten Taihou'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjweNoH7SLej3zQRP9BDSi5_VPm-R6Cok9P5d1iMs3yH6VvUSHBIMWN96qVaMnCHWcWP6LAOq16uDefpA3wMUnCA6S3QSiiNhPsD31O0p8L1lR1tF-nk27RokocrOrcVRO86z4iEGssqXX2/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-1419101280703628960</id><published>2010-05-31T20:58:00.001+08:00</published><updated>2010-05-31T20:58:43.286+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Teaching Thoughts"/><title type='text'>Motivation</title><content type='html'>&lt;p&gt;Motivation is the fuel for your creative engine, so that you can reach your goals. Intelligence and creativity matters little if you are not motivated enough to use these gifts. Actually, some people argue that motivation is the root of being smart or creative.&lt;/p&gt;  &lt;p&gt;However, not all motivation are the same. Being a Computer Science or Information Technology student, the rewards matter a lot. In fact, as the video below demonstrates, carrots and sticks (the traditional “more work == more reward” paradigm) have the opposite effect on tasks that require the algorithmic approach.&lt;/p&gt;  &lt;p&gt;&lt;object width=&quot;460&quot; height=&quot;271&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube-nocookie.com/v/u6XAPnuFjJc&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;hd=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube-nocookie.com/v/u6XAPnuFjJc&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;hd=1&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;460&quot; height=&quot;271&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;  &lt;p&gt;According to studies performed by world-class economists from M.I.T. &amp;amp; Carnegie Mellon: For simple, straight-forward tasks, the traditional “do this == get this” paradigm offers enough motivation. But for more complicated tasks that requires conceptual or creative thinking (eg. programming or information analysis), the traditional motivators &lt;strong&gt;does NOT work&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;If this is true, then what drives us? Autonomy &amp;amp; Mastery&lt;/p&gt;  &lt;p&gt;Autonomy is the desire to be self-directed. This is why programmers tend to clash with the management the most- because we are innovators, risk-takers, explorers, and most importantly: Scientists. We boldly go where no man has gone before.&lt;/p&gt;  &lt;p&gt;Mastery is the urge to get better at stuff. The best musicians in the world play music for fun. Not for cash, not for fame. Just because its fun. Programming is the same- we want to be better programmers because we enjoy programming, and being better at it is &lt;em&gt;immensely&lt;/em&gt; satisfying.&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgukhyDUP6MF8Ln_okl67no8mJt8J7gvRBrLd1yzpLkFkwclmNb8OmTwfkUj3UpaEVjJJMhb5O2PKF-c9wuKsLuGbH0vuvOltWaPNWleDB0K77wpcyN-NHoJzMOWax01X_O7ZwG-rMmevVP/s1600-h/hubble10-hp%5B1%5D%5B3%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;hubble10-hp[1]&quot; border=&quot;0&quot; alt=&quot;hubble10-hp[1]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKq-RZlwDSNnCYMSVj-XjqHllHDopFTduI2OftblGY4qOs6udzuqoZAXPE0_mMmoibA7xAlTsZd702YpJHdOONFAgGThi20_nTnBDfRne_KsBI-X-5NcKwZwWt9-L4iJpeP6DWUMJSQYgg/?imgmax=800&quot; width=&quot;458&quot; height=&quot;171&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Look at Google’s &lt;a href=&quot;http://en.wikipedia.org/wiki/Google#Innovation_Time_Off&quot; target=&quot;_blank&quot;&gt;Innovation Time Off&lt;/a&gt;: Engineers are encouraged to spend one day of their week to work on projects that interest them. The engineers decide (autonomy) to work on interesting projects (mastery). And from this model, a lot world class services emerged: GMail, Google News, Orkut, even Google’s primary revenue source: AdSense. Now THAT is how you motivate programmers.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/1419101280703628960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2010/05/motivation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/1419101280703628960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/1419101280703628960'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2010/05/motivation.html' title='Motivation'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKq-RZlwDSNnCYMSVj-XjqHllHDopFTduI2OftblGY4qOs6udzuqoZAXPE0_mMmoibA7xAlTsZd702YpJHdOONFAgGThi20_nTnBDfRne_KsBI-X-5NcKwZwWt9-L4iJpeP6DWUMJSQYgg/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-6602512363148995877</id><published>2010-05-26T20:03:00.001+08:00</published><updated>2010-05-26T20:04:12.385+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Personal"/><title type='text'>Teaching Starcraft 2</title><content type='html'>&lt;p&gt;Sometimes, we need to take a break. Enough programming, enough study, and just relax. But that doesn’t mean we can’t learn anything while relaxing :D &lt;i&gt;&lt;b&gt;StarCraft II: Wings of Liberty&lt;/b&gt;&lt;/i&gt; is a military science fiction real-time strategy video game currently under development by Blizzard Entertainment as a sequel to the award-winning 1998 video game &lt;i&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/StarCraft&quot;&gt;StarCraft&lt;/a&gt;&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;I am, and always have been, a Zerg player (“sspawn more overlordss”), and today’s little video will teach you some of the basics on playing starcraft 2, specifically a tactical play known as “Seven Pool” as well as some of the terms used in-game.&lt;/p&gt;  &lt;p&gt;&lt;object width=&quot;460&quot; height=&quot;271&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube-nocookie.com/v/TSrZ9e_mm7I&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;hd=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube-nocookie.com/v/TSrZ9e_mm7I&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;hd=1&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;460&quot; height=&quot;271&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;  &lt;p&gt;Btw, turn on the annotations ^^ So, a bit of a primer about the terms used in SC2:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;X unit/building – This means that when you get to population X, build the unit or building eg. 7 Pool (build a spawning pool at 7 pop.) or 12 Rax (build a Barracks at 12 pop.) &lt;/li&gt;    &lt;li&gt;Micro – Shorthand for ‘Micromanagement’, or selecting unit(s) and giving individual commands on each. This ranges from normal (Stalker blink, Zergling surround, Reaper evasion) to extreme (getting 3 harvesters on each resource) &lt;/li&gt;    &lt;li&gt;Macro – Shorthand for “Macromanagement”. To most players, ‘macro-ing’ means getting the most resources out of multiple bases ex. Getting an early expansion is a Macro move, or ensuring that each of your bases are saturated with just-enough harvesters. &lt;/li&gt;    &lt;li&gt;Tech, or Teching – Means getting upgrades, normally to get a certain unit eg. Teching to Hydras means getting gas and lair.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Ok, to recap, Zerg 7 Pool goes like this:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Game starts with 6/10 Population&lt;/li&gt;    &lt;li&gt;6 Drone&lt;/li&gt;    &lt;li&gt;7 Pool&lt;/li&gt;    &lt;li&gt;6 Queen (I made Lord+Drone here instead.. my mistake)&lt;/li&gt;    &lt;li&gt;8 Gas (Didn’t have to do this since I have an extra Lord)&lt;/li&gt;    &lt;li&gt;7,8,9 Lings&lt;/li&gt;    &lt;li&gt;Attack&lt;/li&gt;    &lt;li&gt;…&lt;/li&gt;    &lt;li&gt;Profit!&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I didn’t really follow the optimal build for 7 pool, and my micro needs more work. But you get the general idea~! :P This works great vs Terran or Protoss, but not against zerg since there’s normally an early Queen (on most builds) which can delay your lings enough for them to recover.&lt;/p&gt;  &lt;p&gt;So, I guess that’s it~ I’m planning to create a new blog where we’ll post our ramblings w/ Starcraft 2, and yes, I said we. Guess who’s with me on this one? ^^ Until then, sayonara~&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/6602512363148995877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2010/05/teaching-starcraft-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/6602512363148995877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/6602512363148995877'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2010/05/teaching-starcraft-2.html' title='Teaching Starcraft 2'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-4144771045319777792</id><published>2010-05-23T15:09:00.001+08:00</published><updated>2010-05-23T15:09:35.986+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Teaching Thoughts"/><title type='text'>A look inside Letran: Teaching Programming Part 3/3</title><content type='html'>&lt;object width=&quot;460&quot; height=&quot;271&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube-nocookie.com/v/rTOLkm5hNNU&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;hd=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube-nocookie.com/v/rTOLkm5hNNU&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;hd=1&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;460&quot; height=&quot;271&quot;&gt;&lt;/embed&gt;&lt;/object&gt;  &lt;p&gt;I totally agree with Jeff Jarvis’ points in the above video. Education today is a 19th century system struggling to cope in a 21st century world- it’s like using a steam engine to commute to work today. It has become apparent to me, that in Letran’s walls, teachers “stamp out students all the same way with only one right answer each… And so, that assumes that all the knowledge flows from the [lecturer], if you don’t feed it back, you’re wrong- you fail.” Its a system that kills the students drive to explore, to argue. &lt;/p&gt;  &lt;p&gt;Inside the classrooms, discussions are always one sided- why would Letranites ask questions? Why would they argue? Not only is there zero incentive to do so, but I think arguing with the professor has been indirectly forbidden. How? Peer pressure can be a problem, or a teacher might have embarrassed someone asking a stupid question. Maybe the curriculum does not stimulate a students brain enough for them to ask any questions. In my opinion, &lt;a href=&quot;http://gaiussensei.blogspot.com/2010/05/look-inside-letran-teaching-programming_12.html&quot;&gt;more interaction is needed&lt;/a&gt;- we are training computer &lt;em&gt;scientists&lt;/em&gt; here, and like the scientists of other fields they need to discuss and argue and experiment in order &lt;em&gt;to challenge the norms and discover new things&lt;/em&gt;, eg. non-routine problem solving.&lt;/p&gt;  &lt;p&gt;If you can compare side by side the curriculum of Letran (or even the other Universities in the Philippines) and &lt;a href=&quot;http://ocw.mit.edu/OcwWeb/web/home/home/index.htm&quot;&gt;MIT’s OpenCourseWare&lt;/a&gt;, &lt;a href=&quot;http://academicearth.org/&quot;&gt;Academic Earth&lt;/a&gt;, or even &lt;a href=&quot;http://www.youtube.com/education?b=400&quot;&gt;Youtube EDU&lt;/a&gt;, you’ll begin to see another problem. On all of the courses offered, their online equivalents are almost always better. Its more interactive, up to date and free. &lt;strong&gt;You can learn more online in a weeks worth of videos, than spending four years in a Philippine university.&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;As Jeff above said, the good stuff are &lt;em&gt;already&lt;/em&gt; out there. We have to stop this culture, of standardized testing and standardized teaching.&lt;/p&gt;  &lt;p&gt;PS. More good points from the video: &lt;a href=&quot;http://www.youtube.com/watch?v=rTOLkm5hNNU#t=08m45s&quot;&gt;Quizzes and Exams @8:46&lt;/a&gt;, &lt;a href=&quot;http://www.youtube.com/watch?v=rTOLkm5hNNU#t=10m45s&quot;&gt;Google did not spring from the lectern @10:45&lt;/a&gt;, &lt;a href=&quot;http://www.youtube.com/watch?v=rTOLkm5hNNU#t=12m30s&quot;&gt;We have to stop this culture… @12:30&lt;/a&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/4144771045319777792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2010/05/look-inside-letran-teaching-programming_23.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/4144771045319777792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/4144771045319777792'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2010/05/look-inside-letran-teaching-programming_23.html' title='A look inside Letran: Teaching Programming Part 3/3'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-725562254308318941</id><published>2010-05-18T16:48:00.001+08:00</published><updated>2010-05-18T17:09:22.886+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns"/><title type='text'>C#4.0 &amp;amp; The Decorator Pattern</title><content type='html'>&lt;p&gt;The decorator pattern can be used to make it possible to extend (decorate) the functionality of a certain object at runtime, independently of other instances of the same class, provided some groundwork is done at design time. (&lt;a href=&quot;http://en.wikipedia.org/wiki/decorator_pattern&quot;&gt;http://en.wikipedia.org/wiki/decorator_pattern&lt;/a&gt;)&lt;/p&gt;  &lt;table style=&quot;width: 469px&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot;&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;113&quot;&gt;Design Pattern:&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;354&quot;&gt;Decorator Patten&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;113&quot;&gt;Pattern Type:&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;354&quot;&gt;Structural&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;113&quot;&gt;First Stated in:&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;354&quot;&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Special:BookSources/9781556154843&quot; target=&quot;_blank&quot;&gt;Code Complete, Steve McConnell (1st Edition)&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;113&quot;&gt;Description:&lt;/td&gt;        &lt;td valign=&quot;top&quot; width=&quot;354&quot;&gt;Attach additional responsibilities to an object dynamically keeping the same interface. Decorators provide a flexible alternative to subclassing for extending functionality.&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;One of the features of C# 4.0 is the &lt;code&gt;dynamic&lt;/code&gt; keyword. Basically used like the var keyword, &lt;a href=&quot;http://geekswithblogs.net/sdorman/archive/2008/11/16/c-4.0-dynamic-programming.aspx&quot;&gt;a dynamic object defers type-checking until runtime&lt;/a&gt;. A simple example:&lt;/p&gt;  &lt;pre class=&quot;brush: csharp&quot;&gt;static void Main(string[] args)&lt;br /&gt;{&lt;br /&gt;    dynamic pet;&lt;br /&gt;&lt;br /&gt;    pet = new dog();&lt;br /&gt;    Console.WriteLine(pet.kick());&lt;br /&gt;&lt;br /&gt;    pet = new cat();&lt;br /&gt;    Console.WriteLine(pet.kick());&lt;br /&gt;&lt;br /&gt;    pet = new lion();&lt;br /&gt;    Console.WriteLine(pet.kick());&lt;br /&gt;&lt;br /&gt;    Console.ReadKey();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class dog { public string kick() { return &amp;quot;ROWRrr!&amp;quot;; } }&lt;br /&gt;class cat { public string kick() { return &amp;quot;MEOWRrr!&amp;quot;; } }&lt;br /&gt;class lion { public string kick() { return &amp;quot;OmNomNom-&amp;quot;; } }&lt;/pre&gt;&lt;p&gt;Make no mistake, that is still fundamentally C#, with all the static type-checking done in the background (mostly in runtime). Anyway, we can also use the dynamic keyword to implement the decorator pattern- which extends a function of a class.&lt;/p&gt;&lt;pre class=&quot;brush: csharp&quot;&gt;class Program&lt;br /&gt;{&lt;br /&gt;    class Zergling { public float cost() { return 1; } }&lt;br /&gt;    class BanelingMorph&lt;br /&gt;    {&lt;br /&gt;        dynamic zergling { get; private set; }&lt;br /&gt;        BanelingMorph(dynamic z) { zergling = z; }&lt;br /&gt;        float cost() { return zergling.cost() + 0.5f; }&lt;br /&gt;    }&lt;br /&gt;    class AdrenalGlands&lt;br /&gt;    {&lt;br /&gt;        dynamic zergling { get; private set; }&lt;br /&gt;        AdrenalGlands(dynamic z) { zergling = z; }&lt;br /&gt;        float cost() { return zergling.cost() + 0.7f; }&lt;br /&gt;    }&lt;br /&gt;    class MetabolicBoost&lt;br /&gt;    {&lt;br /&gt;        dynamic zergling { get; private set; }&lt;br /&gt;        MetabolicBoost(dynamic z) { zergling = z; }&lt;br /&gt;        float cost() { return zergling.cost() + 0.2f; }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    static void Main(string[] args)&lt;br /&gt;    {&lt;br /&gt;        dynamic DevoursChildren = new Zergling();&lt;br /&gt;        DevoursChildren = new BanelingMorph(DevoursChildren);&lt;br /&gt;        DevoursChildren = new AdrenalGlands(DevoursChildren);&lt;br /&gt;        DevoursChildren = new MetabolicBoost(DevoursChildren);&lt;br /&gt;&lt;br /&gt;        Console.WriteLine(DevoursChildren.cost());&lt;br /&gt;        Console.ReadKey();&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;I&#39;m doing this while alt-tabbing between Starcraft2 Beta, so forgive the old zergling hero cameo ^^; Anyway, Decorators work a lot like Object &amp;quot;Upgrades&amp;quot;, in a sense that they can change the resulting object by modifying functionality. I guess that&#39;s done~ Until the next design pattern, Sayonara XD  </content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/725562254308318941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2010/05/c40-decorator-pattern.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/725562254308318941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/725562254308318941'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2010/05/c40-decorator-pattern.html' title='C#4.0 &amp;amp; The Decorator Pattern'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-7356228704911726164</id><published>2010-05-13T14:10:00.002+08:00</published><updated>2010-05-18T17:31:38.695+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Breaking News"/><category scheme="http://www.blogger.com/atom/ns#" term="Mobile Computing"/><title type='text'>Need Net? IMMORTALSURF20</title><content type='html'>&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU88yoiIT-1sbwpCFGU7teNjwC9s8s3bO3B8f67M_vPnHsHIQdgfBnqeF0r7S9yINv3UBPmjF-1hQ5t-IYuQfulzUzQRowmroJq8766c_hJJ3ZcoOSWt67UKbJ7rQX1WqcfQ_nEn_AF82T/s1600-h/ImmortaSurf-Promo%5B9%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;ImmortaSurf-Promo&quot; border=&quot;0&quot; alt=&quot;ImmortaSurf-Promo&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjualyYht-GT0mobYMkeOGqL8qOijpXxmjV1qjcVxEqc5_WFJQJJ9zcnQ6hYkhUnVKjPp6jsYgmuwa635jTPdutb_VcrE4XaWN9iubG1Xn_cngoQYIm1aFtUUkIA7_E1044i7e9e1bkEOPx/?imgmax=800&quot; width=&quot;474&quot; height=&quot;222&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;For only 20Php: Internet on your phone?! No Expiry?! Too good to be true, or is this total BS? IMMORTALSURF20 service review below~&lt;/p&gt;&lt;p&gt;Last May 6, 2010 Globe Telecoms Philippines &lt;a href=&quot;http://tattoo.globe.com.ph/gblog/2010/05/immortalsurf-has-arrived/&quot; target=&quot;_blank&quot;&gt;announced&lt;/a&gt; a new IMMORTAL service called Immortal Surf 20. For only 20Php, you’ll have 1 hour’s worth of “data calls” aka internet connection, and just like the other Immortal services (Immortal Text &amp;amp; Immortal Call), it will not expire and consecutive uses will stack.&lt;/p&gt;&lt;p&gt;A few drawbacks though: 1) Not fast. Not too slow either though, but don’t expect to break 100kbit/s [Note: standard desktop DSL is 500 to 1mbit/s] 2) A maintaining balance of 5Php, not a big deal and 3) Minimum use of 1min- which means your usage is always rounded up to the next minute eg. 1min and 2sec data call = 2 min. Understandable, given the price of 20php :D&lt;/p&gt;&lt;p&gt;Now before you try the service out, make sure that your phone is properly configured first:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Check if your phone has a web browser. If it does, I highly recommend going to &lt;a href=&quot;http://www.opera.com/&quot; target=&quot;_blank&quot;&gt;Opera&lt;/a&gt; and get their browser- it will compensate for the slow internet speed. &lt;/li&gt;
&lt;li&gt;Set up myGlobe GPRS. This may vary from phone to phone, but for the tech savvy:      &lt;ul&gt;&lt;li&gt;APN: &lt;a href=&quot;http://www.globe.com.ph&quot;&gt;www.globe.com.ph&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Internet Mode: HTTP &lt;/li&gt;
&lt;li&gt;Use Proxy: Yes &lt;/li&gt;
&lt;li&gt;Proxy Address: 203.177.042.214 &lt;/li&gt;
&lt;li&gt;Proxy Port: 8080 &lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;You’re all set, so just text IMMORTALSURF20 and send to 8888 [note: All caps, one word]. After a while, it will reply and you’ll have internet access! &lt;/li&gt;
&lt;li&gt;If you want to check your remaining data allowance, just text IMMORTALSURF STATUS and send to 8888. &lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Aside from the hassle of setting up your phone to receive GPRS, I’m finding the speed acceptable and the data connection is stable (so far). I like the service, not to mention that IMMORTALSURF extends the Internet to more Filipinos. Enjoy the mobile Internet~! ^^&lt;/p&gt;&lt;p&gt;PS: The promo pic above is photoshopped (by yours truly)~ Globe wouldn’t use a Windows Phone 7 in their ads.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/7356228704911726164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2010/05/need-net-immortalsurf20.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/7356228704911726164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/7356228704911726164'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2010/05/need-net-immortalsurf20.html' title='Need Net? IMMORTALSURF20'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjualyYht-GT0mobYMkeOGqL8qOijpXxmjV1qjcVxEqc5_WFJQJJ9zcnQ6hYkhUnVKjPp6jsYgmuwa635jTPdutb_VcrE4XaWN9iubG1Xn_cngoQYIm1aFtUUkIA7_E1044i7e9e1bkEOPx/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-58888373002765987</id><published>2010-05-12T23:54:00.001+08:00</published><updated>2010-05-12T23:54:06.099+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Teaching Thoughts"/><title type='text'>A look inside Letran: Teaching Programming Part 2/3</title><content type='html'>&lt;p&gt;&lt;em&gt;“Institutional Education needs to do more than just adopt a few new tools.“ ~ Dan Brown&lt;/em&gt; (&lt;a href=&quot;http://twitter.com/DBUniverse&quot;&gt;http://twitter.com/DBUniverse&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;A few meetings went by, and I was getting the hang of speaking in front of the class. It was terrifying at first, but my fear was soon replaced by the thrill that my students are actually learning something. It was an awesome experience to watch the freshmen’s eyes light up as they discover the concepts and algorithms to solve the problems. Granted, &lt;a href=&quot;http://gaiussensei.blogspot.com/2010/05/look-inside-letran-teaching-programming.html#links&quot; target=&quot;_blank&quot;&gt;the language should have been easier&lt;/a&gt; so that more than just the logically-inclined students can pass the laboratory exams, but aside from that- all of us are learning.&lt;/p&gt;  &lt;p&gt;The midterm period passes without a hitch, but soon I find myself questioning (again) the methods that I use to teach the concepts at lecture. I noticed that more than half of my students are very unmotivated to learn. They’d rather focus on some of their minor subjects- Art App, Communication, and later, Physical Ed. I wondered why..?&lt;/p&gt; &lt;object width=&quot;460&quot; height=&quot;271&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube-nocookie.com/v/-P2PGGeTOA4&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;hd=1&amp;amp;start=267&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube-nocookie.com/v/-P2PGGeTOA4&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;color1=0x5d1719&amp;amp;color2=0xcd311b&amp;amp;hd=1&amp;amp;start=267&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;460&quot; height=&quot;271&quot;&gt;&lt;/embed&gt;&lt;/object&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Interaction&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;The students &lt;em&gt;craved&lt;/em&gt; interaction. They needed to interact and experience the facts (in our case, concepts &amp;amp; algorithms) in order to learn them effectively. They want to understand the concepts, not memorize what they mean. Just telling them to memorize what iterations mean is plain stupid- because that information is free, online. This is what they liked about the minor subjects: you don’t have to memorize anything, &lt;em&gt;you just have to do it&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;The video above by Dan Brown (not the author, mind you) nailed it: Education is not about facts- Its about empowering students to change the world for the better.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/58888373002765987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2010/05/look-inside-letran-teaching-programming_12.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/58888373002765987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/58888373002765987'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2010/05/look-inside-letran-teaching-programming_12.html' title='A look inside Letran: Teaching Programming Part 2/3'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-6137690801150305434</id><published>2010-05-10T18:06:00.004+08:00</published><updated>2010-05-10T18:11:48.937+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns"/><title type='text'>Specs (Both kinds)</title><content type='html'>&lt;p&gt;&lt;strong&gt;Specifications&lt;/strong&gt; (noun, plural)     &lt;br /&gt;
&lt;br /&gt;
1. A set of requirements defining an exact description of an object or a process.     &lt;br /&gt;
2. In computer programming, a Design Pattern where business logic can be recombined by chaining the business logic together using Boolean logic.&lt;/p&gt;&lt;p&gt;Part of almost every development life cycle is the design stage. This is where you determine the requirements of the application, if its feasible, and if so: a) how to implement it and b) how to test if the implementation works. An analogy: If an application is a house, one of the first things to determine is the number of rooms &amp; floors, which materials to use, etc. Specifications are the documents that is produced after the design stage, which is basically the blueprint of the house.&lt;/p&gt;&lt;p&gt;Many programmers skip the design stage, opting to code directly. Big Mistake. That’s like building a house without any documents: no blueprint, no materials manifest, etc. Sure, it &lt;em&gt;might&lt;/em&gt; work but only after a lot of trial and error (basically, the failed apps becomes your documents). And even if it does work, who in their right minds would live in that house? Without specs, its hard to test if works or not.&lt;/p&gt;&lt;p&gt;The specifications design patter, on the other hand, is quite different. Sometimes, business logic objects can be “chained” together like so:&lt;/p&gt;&lt;pre class=&quot;brush: csharp&quot;&gt;ISpecification CardsToPrint = Red.And(Even.Not()).And(Facecard); 
ISpecification CardsToPrint = Even.And(Red.Not()).Or(Facecard); 
ISpecification CardsToPrint = Facecard.Or(Even.Not());&lt;/pre&gt;&lt;table style=&quot;width: 469px&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;113&quot;&gt;Design Pattern:&lt;/td&gt;  &lt;td valign=&quot;top&quot; width=&quot;354&quot;&gt;Specification Patten&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;113&quot;&gt;Pattern Type:&lt;/td&gt;  &lt;td valign=&quot;top&quot; width=&quot;354&quot;&gt;Behavioral&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;113&quot;&gt;First Stated in:&lt;/td&gt;  &lt;td valign=&quot;top&quot; width=&quot;354&quot;&gt;&lt;a href=&quot;http://www.martinfowler.com/apsupp/spec.pdf&quot;&gt;http://www.martinfowler.com/apsupp/spec.pdf&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot; width=&quot;113&quot;&gt;Description:&lt;/td&gt;  &lt;td valign=&quot;top&quot; width=&quot;354&quot;&gt;Recombinable business logic in a boolean fashion&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;My sample app uses a standard deck cards, then uses the Specification pattern to specify which cards to print. Of course, one can easily substitute “Employees” or “Places” with the collection of cards. Feel free to experiment with the CardsToPrint variable: to check the results quicker, comment out the shuffle method.&lt;/p&gt;&lt;p&gt;Source Files (in C# 4.0): &lt;a href=&quot;https://docs.google.com/leaf?id=0BzeNuNYjdQscMmZjYWUzZTktN2Y0NS00ZWMyLTk2YTctOTFmYmQxNzlmY2M1&amp;amp;hl=en&quot; target=&quot;_blank&quot;&gt;SpecificationsPatternExample_Source.zip&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Specifications: A couple of important computer science topics that has the same name but different meanings~ &lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/6137690801150305434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2010/05/specs-both-kinds.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/6137690801150305434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/6137690801150305434'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2010/05/specs-both-kinds.html' title='Specs (Both kinds)'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1769338688785084840.post-6609382743025069063</id><published>2010-05-08T23:47:00.005+08:00</published><updated>2010-05-18T17:31:16.717+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Breaking News"/><title type='text'>The name&amp;#39;s Zetta, and I&amp;#39;m gonna Overlord your faces off!</title><content type='html'>Try Twitter’s Embeddable Tweets~ Instead of posting a screenshot of your status update, go to &lt;a href=&quot;http://media.twitter.com/blackbird-pie/&quot;&gt;http://media.twitter.com/blackbird-pie/&lt;/a&gt; and paste the url of your tweet there then click ‘bake it’ to create a huge chunk of embed code. Result:&lt;br /&gt;
&lt;br /&gt;
&lt;!-- http://twitter.com/GaiusSensei/status/13462425037 --&gt; &lt;style type=&#39;text/css&#39;&gt;.bbpBox{background:url(http://a3.twimg.com/profile_background_images/89046707/x84e995d3c82d3c34858099fa372a8e2.png) #594F4F;padding:20px;}p.bbpTweet{background:#fff;padding:10px 12px 10px 12px;margin:0;min-height:48px;color:#000;font-size:18px !important;line-height:22px;-moz-border-radius:5px;-webkit-border-radius:5px}p.bbpTweet span.metadata{display:block;width:100%;clear:both;margin-top:8px;padding-top:12px;height:40px;border-top:1px solid #fff;border-top:1px solid #e6e6e6}p.bbpTweet span.metadata span.author{line-height:19px}p.bbpTweet span.metadata span.author img{float:left;margin:0 7px 0 0px;width:38px;height:38px}p.bbpTweet a:hover{text-decoration:underline}p.bbpTweet span.timestamp{font-size:12px;display:block}&lt;/style&gt; &lt;div class=&#39;bbpBox&#39;&gt;&lt;p class=&#39;bbpTweet&#39;&gt;&lt;a href=&quot;http://twitter.com/search?q=%23NowPlaying&quot; title=&quot;#NowPlaying&quot; class=&quot;tweet-url hashtag&quot; rel=&quot;nofollow&quot;&gt;#NowPlaying&lt;/a&gt; Makai Kingdom on &lt;a href=&quot;http://pcsx2.net/&quot; rel=&quot;nofollow&quot;&gt;http://pcsx2.net/&lt;/a&gt; ^^ &lt;a href=&quot;http://twitter.com/search?q=%23BadassFreakingOverlord&quot; title=&quot;#BadassFreakingOverlord&quot; class=&quot;tweet-url hashtag&quot; rel=&quot;nofollow&quot;&gt;#BadassFreakingOverlord&lt;/a&gt;&lt;span class=&#39;timestamp&#39;&gt;&lt;a title=&#39;Thu May 06 02:14:36 +0000 2010&#39; href=&#39;http://twitter.com/GaiusSensei/status/13462425037&#39;&gt;less than a minute ago&lt;/a&gt; via &lt;a href=&quot;http://www.hootsuite.com&quot; rel=&quot;nofollow&quot;&gt;HootSuite&lt;/a&gt;&lt;/span&gt;&lt;span class=&#39;metadata&#39;&gt;&lt;span class=&#39;author&#39;&gt;&lt;a href=&#39;http://twitter.com/GaiusSensei&#39;&gt;&lt;img src=&#39;http://a3.twimg.com/profile_images/803785803/n1629049610_6071_normal.jpg&#39; /&gt;&lt;/a&gt;&lt;strong&gt;&lt;a href=&#39;http://twitter.com/GaiusSensei&#39;&gt;Sir Gaius Capistrano&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
GaiusSensei&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- end of tweet --&gt;&lt;br /&gt;
Pros:    &lt;br /&gt;
• The Links are LIVE~!     &lt;br /&gt;
• Twitter’s background is retained (which IS a part of your twitter identity, believe it or not. People recognize these~)&lt;br /&gt;
&lt;br /&gt;
Cons:    &lt;br /&gt;
• BIG Chunk of embed code.     &lt;br /&gt;
• Timestamp not live :(&lt;br /&gt;
&lt;br /&gt;
Anyway, love it or hate it- It nice to know that the twitter service is moving along and not stagnating (google buzz) or killing itself (facebook)</content><link rel='replies' type='application/atom+xml' href='http://gaiussensei.blogspot.com/feeds/6609382743025069063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gaiussensei.blogspot.com/2010/05/name-zetta-and-i-gonna-overlord-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/6609382743025069063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1769338688785084840/posts/default/6609382743025069063'/><link rel='alternate' type='text/html' href='http://gaiussensei.blogspot.com/2010/05/name-zetta-and-i-gonna-overlord-your.html' title='The name&amp;#39;s Zetta, and I&amp;#39;m gonna Overlord your faces off!'/><author><name>Gaius Sensei</name><uri>http://www.blogger.com/profile/01382097147891015057</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgyXsYBG0DHQ2uM52umoST1rFZcTpqDK2Xq_DtgXDTrRPejRomNiDNKNse-f-yOOKVyaDuRMjc5NgyrLt82K03safxrQtDsTqcSqoDD8HEBtiF5p-nDtfayQkHWcFPBqE/s220/n1629049610_6071.jpg'/></author><thr:total>0</thr:total></entry></feed>