Trying out photoblogging...

http://gaiussensei-photos.blogspot.com/
Check it out guys~ New blog! I'm kindof busy right now, but since I'll be out and about a few places this month, I'll be capturing quite a bit of photos. It'll be low resolution since I currently don't own a DSLR, but I'll make sure to post my best shots.

Photos taken using: HTC Wildfire and the Vignette Camera App. ^^ Sayonara~

UPDATE: Ok, got tired of tweaking BlogSpot. This platform is NOT for photobloggers, so I'm moving to a better on: DeviantArt. See you guys there~

Reaction Paper: An Encounter with an Anthropologist

Dr. B, despite having an Phd. in anthropology, proved quite tactless in our first meeting. The first lesson discussed a range of topics from religion, to a recent suicide of a prominent general, and even to sex! Honestly, I am both impressed and entertained- having experienced teaching first hand, I know that getting your student's attention while sticking to the lesson plan can be quite a chore.

There are quite a few things that struck a nerve in the discussion. I am a devout catholic, despite being a computer scientist, and I have had many sleepless nights and heated discussions with my fellow professionals about the age-old debate concerning “Science vs. God”. On one hand, science, or as Dr. B have discussed, the scientific method, relies on proof. Even knowing something a priori, science still needs at least logic and reason. Faith, on the other hand, relies on belief without proof, about hope and the inherently unexplainable miracles.

In my opinion, Science is just a way of comprehending God's ways- an instrument from Him, through our scientists. Its a lot like the Bible in some ways, an instrument written by (divinely-inspired) humans, open to interpretation. A few examples: The Bible tells the story of genesis eg. “God created the world in six days, rested on the seventh”. When taking into consideration who wrote that story, even if he/she is divinely inspired, it would be impossible to measure time and translate it to something that we can comprehend. Maybe the writer simplified it, or maybe not- something to think about.

Another example: From year 2000 to 2005*, several scientific journals was published that confirms the existence of a single Creator. Of course, the scientists did not name who (God, Allah, etc.) but still- these journals have NOT been reverted yet. Several journals have tried to disprove these, the latest of which is Stephen Hawking's The Grand Design (2010). A good read, to be sure.

I find it distrubing when people generalize scientists to be godless heathens- people who rely on proof only. I'd like to believe, that I'm not the only Catholic Scientist/Skeptic here. Also, if I may offer a friendly advice from one (former) professor to another: Respect your student's beliefs. It would also be wise assume that there are catholics in a catholic college- not everyone would be devout, of course, but it would help to take care, none the less.

My two cents.

* related: Cosmic Microwave Background Theory

This whole post is my reaction paper for my first meeting with Dr. B, my current professor in "Theories in Research". This was written with only my stock knowledge (minimal to no references) and my opinions: read with a grain of salt.

The Flaws of College Education Today

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 Philippines 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's fingertips.

What does all these mean, in the context of our current college education system?

This means that memorizing theories are no longer needed. It will not matter if you don't know the answer, because the answer is only a few clicks away, right in your pocket. Seatworks, homeworks , quizzes and tests becomes obsolete, since these are the ways to test if a student remembers a lesson, which is unnecessary with the current technology. You forgot the next ingredient for the recipe? so what? LMGTFY. What's the difference between the star, bus and ring topologies? This. What's the truth table and the logic circuit for the function: P && (Q || R)? Easy.

The way the current system measures the abilities of the students is outdated (and in my opinion, no longer work).  And remember: What you can't measure, you can't control.. and if the colleges are not controlling what our students are learning, then what'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 download a free app that knows most of what you do?

So what do we do? Stop going to school? NO.

Let me tell you guys a story. Two fresh CS graduates land a job in a company. They were given identical tasks- let'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's documentation as well as the internet. The problem is: there'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.

If I'm the manager, the graduate who have grasped the program quicker gets the job. Since everybody can become an effective employee (in the sense that the resources to learn how to do stuff are both accessible and free), then you have to become an efficient 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'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 Fibonacci sequence appear on your computer is cute, but applying the Fibonacci sequence by creating a game will make you experience more (not to mention a lot more fun and challenging).

Bottom line: A parrot can memorize words, but will never understand its meaning. Don'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~

Failure

Have you ever noticed that when everything goes as planned, you actually learn less? Do not 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.



Edison quote mug by ~estranged-illusions on deviantART


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 and error, and being wrong is an integral part of the learning process. When the program doesn't work as intended, we find the bugs and fix it. We test more. We think more. We learn more.

However, constant failure is another beast entirely. The saying goes: "Fool me once, shame on you, Fool me twice, shame on me". This is particularly true in programming, where a correct line of code will always produce the correct output and vice versa.

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.

Until next time, Sayonara~

Dates and Primary Keys

I've got a story to tell :D I remembered this because 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~

T'was a dark and stormy night..

It was a dark and stormy night by =aki-no-mia on deviantART
[/kidding]

Anyway, several months before I started in my current job, I got this project to expand an HR 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'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).

One of the Database Tables had a column named "ID", which is the table'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:

1.) Change the key of one record from 20100129 to 20090101, which is a valid key
2.) Open the 2010 monthly reports.

And lo and behold, the record disappeared from the reports. It turned out that one of their developers was using the ID of the records to filter the reports:

If CDbl(Record.ID) >= 100000 Then Report.Add(Record)

I don't know if it was brilliance or plain stupidity. I guess it does work. IDs are supposed to IDentify specific records, and not keep track of dates- its data formatting does not, should NOT matter.

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. The month AlphaNum works like so: 1 through 9 for January to September, X for October, Y for November and Z for December.

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

Until next time, Sayonara~

Optimus Prime (a.k.a Transformational Leadership)

Attending a seminar at Newlife is one-part worship, one-part pure content, and one-part advertisement. Anyways, me and the systems department where I'm currently employed attended this seminar there called "Transformational Leadership", sponsored (prominently) by World Vision. It was a good seminar, although the speaker (Pastor Boris Joaquin) was not very engaging, but still- I'd like to share a few thoughts about it~

Ok, what striked me the most is the 5-part "Training Cycle"
  1. "The Teaching"
    • Develop their skills through detailed instructions 
    • Stay with your "disciple" every step of the way
  2. "The Demonstration"
    • Show, don't tell
    • Let the "disciple" try their skills out in real situations
  3. "The Coaching"
    • Find their flaws, make constructive criticism 
    • Inspire your "disciple" to increase his/her skills
  4. "The Release"
    • Stay in the background, help only when necessary
    • Give the "disciple" the power to decide for him/herself 
  5. "The Next Generation" 
    • Confirm that your visions and goals are still aligned
    • Let your "disciple" spread his expertise to others through this 5-part cycle

Another topic that I liked is the transformational leadership model~ This is how I understood it..
  • Start with yourself, to give yourself some perspective. If your don't walk the talk, then you'll lose followers faster than you can gain them. [Additional Reading: Mat.3:13-4:11]
  • One-on-one with a few of your most trusted people. Don't try to "change the world" as soon as you can, start with those nearest and most open to you. [Mat.4:18-22]
  • Start building your team. Let your 'chosen few' choose their own 'chosen few', stay in the background and guide the vision of your community. [Mat.10:5-10, Mat.28:19-20]
I guess that's that, I've got an "Open Source" seminar to prep, so expect the slides about it on my next post. Until then, Sayonara :D

Object-Oriented Seminar

Slide Notes Here: http://ow.ly/2Coay
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 Lazy Initialization and Singletons in this blog, and I've talked about object-oriented programming stuff as well, so I don't think I should more stuff in this post :D

If you have any questions, clarifications or suggestions about any of the topics I've discussed in this blog, just message me in my Google Profile, Facebook or Twitter. Until next time, sayonara~