Wednesday, December 14, 2011

Options on Budget Multi-user Computing

The internet shop is probably the most common business for internet-savvy technophiles with entrepreneurial pursuit. I kept away from it for so long because, whether you go for business-only internet access or cater to online gamers, you might as well have invested somewhere else given that the PC hardware depreciates quickly, new and better hardware can appear any time at lower cost, and setting up online gaming access is more of a gamble since players could always go for new and better games that you have to buy just to keep them coming back.

It all translates to intensive investment and cut-throat price competition with neighboring Internet shops. At the end of the day, practically all shops in a particular neighborhood, unless you're the only Internet shop in your area, will luckily just break even or lose.

Sunday, December 11, 2011

Reveries on the Rat Race Tragedy

In the time I've been speaking, over eighty million people have died of stress!
(waits a moment then snaps his fingers)
There's another one! -- Denholm Reynholm, IT Crowd
It may not yet happen now, but inevitably in the future, in your career you'll feel disillusioned, helpless, completely worn out, problems look unsolvable, the future looks dark, and you're disengaged enough not to care about practically anything to do with your career, even personal life and it could be fatal.

Welcome to career burnout. Tragically, you may not be aware that you're already suffering from it.

Monday, November 28, 2011

On Chess, Design Patterns and The Dying Art of Programming

Chess is probably one of the best game or sport to instill discipline and sportsmanship: you win or lose not because you did or didn't listen to and followed the counsel of your coach, but because of the choices you made. While basketball has Michael Jordan as its greatest player, billiard has Efren 'Bata' Reyes and Edison Arantes do Nascimento, better known as Pele, is the best soccer player of all time, chess has the late Bobby Fisher. It's notable that of the sports greats I mentioned, chess again stands unique: its greatest and most popular representative has already passed away.

Sunday, October 9, 2011

Reveries on Database Systems and Hiring

First, an apology is in order, I have to admit I've been on blogging hiatus for over a month, and hopefully you'd understand that my enthusiasm for blogging has not waned. My blogging hiatus is just that, a brief hiatus (and tons of events happened since then, like I'm in between jobs as of this writing, enjoyed the Westlife concert with my better half, had an opportunity to step back and see where I am and where I want to go to, Apple's Steve Jobs passed away a day after my birthday, and most importantly, got me Dr. Dobb's Essential Books on Algorithms and Data Structures CD-ROM Release 2 CD as gift for my birthday from my youngest sister), and what better way to blog actively again than to talk about my favorite IT infrastructure, the database system (could even be the most important!) and since I'm currently in between jobs, about hiring IT professionals.

But first let me relate an incident about a friend's newly bought desktop PC, built from choice components, you can consider this computer a bazooka to kill a fly off the wall. The problem was that my friend later updated the BIOS firmware and the new PC has since had mysterious behavior like shutting down for no apparent reason. In short, that BIOS firmware upgrade cost my friend wasted time bringing the rig to the shop to be fixed, good thing the PC is still within warranty and replaced. Moral of the story is: if it isn't broken, you have no reason to fix it, so don't mess with it, same goes with the database back-end of your application.

Monday, August 1, 2011

ArgoUML: Revisiting CASE Tools

If there's only one martial art I would recommend, it would be Aikido and The Secret Teachings of Aikido as guide because it's the only one designed as antithesis of war, using your opponent's strength as their weakness to subdue their aggression, and promotes peace and reconciliation.

Ironically, Computer Aided Software Engineering (CASE) tools are powerful software development aids whose strength proved to be its very downfall, thus they seem to be a rarity nowadays; the 1990s may have been the peak of its popularity, but it doesn't mean the idea behind it is already obsolete. Conceptualizing, designing and software development would be better coordinated using CASE tools and ArgoUML turns out to be a free, functional and practical system (not to mention the great documentation it has) that can aid in software development, be it for small to medium-scale development on tight budget (IBM Rational if you have cash to burn, I'm not paid to recommend this mind you).

Tuesday, July 26, 2011

AppArmor and Server Security

I was tasked recently at work to create a new instance of MySQL in a server where there were two (2) instances already existing and running. This task should have been a breeze and done in no time. Unfortunately, I was working on a GNU/Linux distribution, okay Ubuntu, with AppArmor activated with security profile for MySQL, and I figuratively banged my head on the wall for almost a week why the steps I follow doesn't work, I already stripped the config file to the minimum and the setup still won't work. Turns out AppArmor is in my way in it's objective to secure the system it runs on.

Wednesday, July 20, 2011

History of Number Systems, Civilisation and Our Digital Future

What does Jef Raskin (father of the Apple Macintosh, whom I proposed should be a saint in a previous article), Daniel J. Bernstein (author of qmail and djbdns), Edgar F. Codd (inventor of relational database management systems), Donald Knuth (father of algorithm analysis) and Google's Sergey Brin have in common? Aside from being some of the luminaries in the computer industry, they are also mathematicians, earning degree in mathematics either initially, solely or alongside computer-related courses.
Mathematics is probably the most dreaded subject by almost anyone who became a student. I've had my brief episodes of sleepless nights over some of math's specific branch (don't get me started with calculus!), but as this blog I read summarily points out:

You don’t need math skills to be a good developer but you do need them to be a great one.

Friday, July 15, 2011

A Walk Through Dead Tech Lane

The computing industry has come a long way, but it seems parallel to human evolution, there's no end in sight, just continuous change for the better. Computers and their related technologies were ironically devices for the purpose of World War 2 that found more productive use in the academe and on the consumer's hands.

Even the internet as we know it was designed for the US military requirement of a network that automatically re-routes network packets when a network node was unreachable (could have been obliterated by a nuclear bomb attack, seriously this is the idea behind TCP/IP). Worse than the body count of war atrocities, there were many computer technologies that were left for dead or put aside considered obsolete but whose contribution to the advancement of our computing user experience deserve revisiting.

Thursday, July 7, 2011

The OpenVPN Odd-venture

Virtual Private Network (VPN) is Local Area Network (LAN) on steroids powered by the internet, and also more complex to setup. I was tasked at work to setup an OpenVPN server to a client that already has an existing connection to another OpenVPN server, so my task is to add this other server to the client while ensuring the current VPN connection won't be disrupted.

Thanks to this blog, the OpenVPN documentation, and this blog (albeit focused on OpenBSD), I was able to figure out how to setup the VPN, but not without some trial and error adventure along the way.

Monday, July 4, 2011

What You Should Learn About Database Systems

If IT meant Information Technology, then arguably and syntactically having relevant information is first and more important than the technology that delivers it. Information may be stored in a text file, a word processor document, a spreadsheet, a presentation, or an XML file, but for easier, faster and reliable search and retrieval, the database management system rules.

Unfortunately, I have observed that most books available in local stores in my so-called third world country tragically lack the fundamentals that should be learned to maximize the beneficial use of database management systems or (DBMS). Worse, many are tied to proprietary systems like Oracle and Microsoft SQL Server, which are usually tied to particular (and usually expensive) platforms (i.e. Windows or Solaris only), will almost cost you your soul to put into hands on practiality, and worst, subject to whimsical changes and features that the vendor may deem important to differentiate their product from the rest; resulting to obsolete skills for outdated systems.

Michael Jordan didn't become the greatest basketball player by just going straight for the hoop and shoot the second he has the ball on hand. By the same principle, what should you learn about database systems?

Wednesday, June 29, 2011

On Food, Software Licence and Extinction by Starvation

In this collection of parables on free software, the first parable related to food struck a cord within me. For one, the food, or in broader sense anything we can acquire and consume, by virtue of the process we obtained them (i.e. bought the food to be cooked and eaten), should be considered already our own.This article won't discuss the difference and issues between the proprietary/closed source solutions and free and open source ones, it's already been discussed to death since the last quarter of the 20th century. In this article we discuss the issues on free and open source software licences (that's spelled with a 'c' rather than 's', I'll stick to real English on this one), particularly between the GNU General Public License (hereafter to be referred to as simply GPL) and the Berkeley Software Distribution (BSD), making it simpler when analogized with food preparation.

Tuesday, June 21, 2011

Google Docs and Time-Saving Tips on Encoding Very Long Text Documents

As I have already written before, I still keep a day-job and recently, I realized having the alter-ego of a startup apartment owner. Along with that role, I have to formulate a just, tenant- and owner-friendly rental agreement, thanks to Landlording: A Handymanual for Scrupulous Landlords and Landladies Who Do It Themselves for the great assistance.

How does Google Docs figure in this equation? Their new feature that goes by the tonguetwister Optical Character Recognition or better known as OCR, which was very very handy when I needed to encode a long document from the aforementioned book as model for the rental contract. In this article I'll discuss the steps I took, how it went, the plus and minuses of the process and the overall benefits.

Thursday, June 16, 2011

Proposal for a Federated Telecommunication System

My application for postpaid cellular phone service was recently denied, and what's worse, they just sent me an SMS saying so without any explanation why. Their very brief if not cryptic message further rubbed into my person that their time is more important than mine.

In frustration, I thought of an alternative: VoIP-based telecommunication infrastructure that any cellular phone or computing platform with VoIP and Wifi can connect to, call, chat and exchange email over. Thus, the idea of a federated telecommunication system is born. I will outline here a system architecture to build this infrastructure as far as my experience can guide me, hopefully you'd send in comments and suggestions to make this better. I hope you'd bear with me that it took me some time to go over this setback and also to refine and polish this article.

Tuesday, May 31, 2011

Operating Systems Utopia: Alternative, Academic Systems and the System of the Future

My background with and enthusiasm for free and open source operating systems started when, back in college here and then here, I needed to use a computer and there's only MS-DOS (and its GUI for your personal confuser, Windows) together with its quirks and virus bandwagon, not to mention the agony of inconvenience they bring. As I mentioned in my previous article, I learned to program computer viruses and realized there's no creative, social or educational benefit from it. Frustrated, I pined for the day I can have an operating environment that's impervious to computer viruses, can run multiple applications, is free (haven't yet imagined it's source code is also accessible) and most importantly, shouldn't crash (at least compared to DOS and Windows that pulls this stunt on a regular basis).

Tuesday, May 24, 2011

Compromised Server Security Measures

Recently, my employer's web server hosted on Rackspace Cloud was compromised (yes I still have a day job), and I helped resolve the issue, consequently formulating some security measures which I hope to impart today wishing you won't have to go through the upheavels we had. You may also learn more on this from Linux Server Security and Secure Architectures with OpenBSD.

From the experience we had at work, here are some of the measures I would advocate (some advise you may have encountered somewhere else):
  • Isolate access to the compromised server
  • Secure the workstation that solely accesses the server
  • For web application scripts, have trusted copy in version control systems
  • Your .htaccess may be the culprit
  • Setup routine file change monitor
As our modus operandi goes, below are the rationale and discussion of the measures above.

Tuesday, May 17, 2011

What a Tablet Computer Could and Should Be

With all the hype over Apple's iPad and the feasibility of having your own custom-made touchscreen tablet computer, I think we deserve a better user experience of how we can acquire and interact with a touchscreen tablet computer (which from here onwards we will refer to as tablet computers to save on tongue twisting effort). We will not discuss the usual desirables, like durable and eco-friendly parts and components, fast responding user interface, smooth graphics, and high fidelity (that's oldspeak for hi-fi) sound, they should be standard features.

Below is a list of proposed improvements every tablet computer could and should have:
  • Have Dvorak keyboard layout as option
  • Make Internet access via Wi-fi AND Bluetooth easy
  • Fast, compact, standard compliant web browser
  • Open standard video and audio support
  • Text-to-speech book and news reader built-in
  • Must be social network agnostic
  • Interface port
  • No cellular phone capability
  • Use BSD operating system instead
Below are the rationale for the proposals we have above.

Monday, May 16, 2011

The Computer Renaissance: Return of the Homebrew Computer

I can't recall when and where I read it particularly, but the saying I think still rings true and goes:

If you love software, you have to make your own hardware

One of the reasons I cherish my college alma mater is that I found in their library the book Build Your Own Z80 Computer, that fortunately is now available in free to download PDF here, which served as my guide on homebrew computer design, gave me a peek into how the likes of Apple's legendary Steve Wozniak think and compelled me to have more respect and take a second look at (digital) electronics.

During my college days (yes the 90s), I made a bet that software is where the money is, and thankfully, that bet paid off by having a software development career that pay the bills and serve food on the table. But recently, I have observed that the hardware and software we use in the workplace is not fit for educational purposes. The hardware and software platform we have is so advanced that it's technically the new main frame machines that was so valuable to the corporate world, but offers very little or no educational benefit.

Tuesday, May 10, 2011

Bandwidth Cap: Twilight of the Internet Access Middleman

In early 2000, the historic Water Wars of Cochabamba happened in Bolivia, because a water concession corporation sanctioned water rates that are too high for many to afford and avail of decent supply of water, while forbidding people to collect rainwater, you can read about it on Water Wars: Privatization, Pollution, and Profit. In the documentary The Corporation showing footage of what happened in that part of Bolivia, people were so outraged, this is their battlecry: "It's our water, damn it!"
Proponents of bandwidth or bit cap cite justifications, such as this article discusses. They want to convince broadband consumers that internet bandwidth is a finite, limited resource like water, thus rationed . Unlike water, bandwidth is only artificially regulated and limited,  but like water, can be projected to be so for profits.

What is there to regulate when what the people contributed is what makes the internet valuable? The blogs and articles online? It's our content! The videos? It's our content! The pictures? It's our content! The social networks and forums? It's our content! The online game experience and scoreboard? It's our content! Internet is first and foremost an information highway, and with our right to know, we have right to have access to information, moreover, we have the right to access information we created and/or care about.

Thursday, May 5, 2011

OpenBSD and GNUstep: Falling in Love with OpenStep All Over Again

Apple's MacOS X has head and shoulder advantage over the competiton for user experience and rapid application development thanks to Cocoa, based on NeXT's OpenStep, the pioneer in cross platform rapid application development with Interface Builder and Project Builder a.k.a. Xcode (Microsoft's Visual Basic still pales in comparison).

GNUstep is a free and open source implementation of the OpenStep standard, and ironically, I first read about it from Microsoft Bookshelf Internet Directory(pointing to a project mirror in Europe with URL that can be challenging to type to hideaway the project perhaps?) back when I was in the province. What piqued my curiosity about OpenStep in general and GNUstep in particular is that, once you've overcome the learning curve of Objective-C, it enables a developer to create distributed systems, fast software prototyping, cross-platform development, and can be used with Java and Ruby, all for free.

My favorite free and open source operating system is OpenBSD, with the release of version 4.9 having ready to install GNUstep packages, we have an opportunity to see how OpenBSD and GNUstep fits together to create a free and open source OpenStep environment.

Wednesday, May 4, 2011

Node.js and NPM: Key to Dynamic Web Applications Beyond AMP

I keep reading mention of blog articles on Node.js, Node.js Package Manager (NPM), Socket.io and web socket programming like this on Twitter and given that I had time to check it out, researched and updated myself on what the rave is all about.

The Node.js website (<rant>) isn't very helpful how to install this supposed to be Javascript file, given that the example invokes the script in a different manner, and you'll even be more confused if we add NPM to the mix. Another disappointment I have against Node.js is that it didn't build on OpenBSD 4.9(</rant>). What I have below is how I was able to set this up on my two Ubuntu 10.04LTS boxes, one with SSL and the other without.

Sunday, May 1, 2011

Systems Every (Starting) Developer or Software House Should Know and Have

Regardless of programming language of choice you work or specialize in, there are processes or systems developers and software development shops must make sure are in place and know how to use to help develop robust, reliable and good reputation-building application with little fuss.

What are these processes that every developer and software house should have? They are:
  • Coding standard
  • Source code documentation
  • Software application testing system
  • Bug tracker system
  • Version control system
  • And hopefully, continuous integration system
In this article we discuss them, their rationale and examples to help you find some to try for fit in your software development workflow.

Tuesday, April 26, 2011

Proposal for Boyer-Moore String Pattern Search Algorithm Optimization

I first encountered the Boyer-Moore string search algorithm in mid-1990s when it was mentioned in a local computer magazine discussing virus detection mechanisms and referred to Cormen's Introduction to Algorithms for more details.

Back then, DOS was king and Microsoft was omnipotent, with computer viruses as nuances in one's computing experience, the holy grail of computer programming enthusiasts in my former university (but my college alma mater is here) was anti-virus programming.

The paradox is that to learn how to create an anti-virus you have to create a virus against which it should work. Mark Ludwig's bookwas a coveted possession but the only one I got my hands on was Ralf Burger's work and I learned how to make a functional computer virus then. To fix the problem, you have to find it (fast!); this is where virus detection becomes critical, and Boyer-Moore string search algorithm is one of the best algorithms known then for this purpose.

Tuesday, April 19, 2011

The Odd Encounter with jQuery, jQuery UI and Input Validation

I recently had a web app project that in the beginning simply had to have a form that will submit something to some recipient as a particular format. We won't delve into what format it is but with my brief encounter with the modus operandi of the orchestrated effort of jQuery and jQuery UI on input validation.

Monday, April 11, 2011

Quest for the Home Office Essentials: The Adventure with Ubuntu 10.04LTS and Canon Pixma MP140

My youngest sister handed down to me her Canon Pixma MP140 printer from UK, one of those multi-function device, it can print, scan and copy printed documents and pictures. Checking with OpenPrinting indicated possible disappointment since it's not listed as supported there.

Previously, GNU/Linux's reputation as a desktop computer platform was spotty, but this has not deterred me from settling for it as our desktop of choice at home with Ubuntu 10.04LTS. I document here the experience I had setting up the Canon Pixma MP140 printer with Ubuntu 10.04LTS, what pleasant surprises I encountered and drawbacks that almost made me look for something else.

Sunday, April 10, 2011

The Woe and Wow of Mozilla Firefox 4 Downgrade

When I got into work today (yes I still have a day job), I read an advisory that we should not yet upgrade to the newest Firefox 4 web browser. I looked into this and found it was because of Selenium, the PHP application testing goes quirky, it works, but there were some functionalities that just doesn't work as expected (our OS is <gasp!> Windows 7 Professional).

Monday, April 4, 2011

Poke URL with PHP for Response and Stay Sane

I recently had a project to parse the response of a web URL using PHP and based on that, to perform an action. The confusing part isn't which action to take once the URL is processed, but how to obtain the response from the URL, when the response is merely 0 (zero/false) or 1 (one/true).

Thursday, March 24, 2011

OpenBSD CD: When the Net Install Fails

You can call me biased (or an evangelist), but my favorite free open source operating system is definitely OpenBSD because it's secure by default (turning off open ports off any Unix-like system should indicate incompetence rather than system admin machismo), easy to install and to manage. If you're like me coming from the so-called third-world country and cash-strapped, you can't afford the original CD (along with the heck of cash customs will make you bleed with) or worse, your internet access isn't fast enough to use the network install ISO provided by the project. So what are we to do to appreciate this very elegant, secure, free and functional Unix-like system? We can create our own installer ISO (provided that you don't have broadband access to use the network install ISO that will download the installation files).

What will you miss out when you go through the process we'll discuss in this article? You're missing out on the freebies that comes with the original CD: the nice artwork and a song (some swear by the stickers). But most importantly, when you buy the original CD, you support funding the OpenBSD project, so that they keep churning out new versions with new features and functionality while not compromising system security, safe in the knowledge that you have a system that's a labor of love.

Wednesday, March 23, 2011

My Oh My! This is How MySQL Daemon is Done in OpenBSD

If you were to setup a secure Unix-like server, don't walk, run for OpenBSD, probably the most secure operating system on the planet. On databases, I frankly have personal and professional bias for PostgreSQL, but for the benefit of the uninformed masses, most prefer MySQL.

Putting two and two together, one way or another, being a systems administrator, you will one day need to setup an OpenBSD to house a MySQL server. As of this writing, OpenBSD is version 4.8 going to 4.9.

Monday, March 14, 2011

Flick Your RedBean: The Alternative PHP ORM

Object Relational Mapping or ORM according to Wikipedia, is a programming technique for converting data between incompatible type systems in object-oriented programming languages. This allows flexible processing of data to and from any database system with a given object-oriented programming language.

When it comes to PHP-based ORM systems, the usual suspect or most popular choice is Doctrine, but as in any programming endeavor there are many ways to skin the cat, and one of the alternatives I found online is RedBean; the project's website highlight the virtues and merits of this ORM like ease of use, implementation and prototyping while being fast and lightweight (I wonder if it be in kilograms or pounds).