How To Avoid Showing Girls In Bikinis On Your Presentation

How To Avoid Showing Girls In Bikinis On Your Presentation

Whether you are using Windows or a Apple computer, there’s a feature called Accounts. Accounts allow you to set up your computer so that another person can use it. That other person will have his own Desktop, his own wallpaper, his own Documents etc. as if it was his own computer, all protected by a different password than the main account.
Continue reading “How To Avoid Showing Girls In Bikinis On Your Presentation”

Drupal 8 Tip: How To Patch A Module Via Composer

In my case I was using the Entity Auto Term module, which issued a patch fixing a known issue. The patch i’m trying to apply is and part of it looks like this:

To apply it, you have to edit your composer.json located at your website root, pictured here via Filezilla FTP:

I right click view/edit to edit it in Notepad++ here:

I will need to add the red part below. You will most likely have the green part already present, so just edit the red “patches” section to fit your needs.

"extra": {

"installer-paths": {

"web/core": ["type:drupal-core"],

"web/libraries/{$name}": ["type:drupal-library"],

"web/modules/contrib/{$name}": ["type:drupal-module"],

"web/profiles/contrib/{$name}": ["type:drupal-profile"],

"web/themes/contrib/{$name}": ["type:drupal-theme"],

"drush/contrib/{$name}": ["type:drupal-drush"]


"patches": {

"drupal/eat": {

"Drupal EAT fix duplicate terms": ""




Next run Composer Update, and the output should look like this:

That’s it you should be all set.

My Idea for LGUs: Online Village Sticker Administration

Every year small to large villages called barangays, villages or LGUs (Local Government Units) all over the Philippines issue annually renewed stickers to the public allowing entry into their villages. Tenants pay a regular fee while non – tenants are charged more for the privilege, a common practice for villages used as shortcuts for drivers to skip traffic or are home to schools or offices that non tenants need to visit.

Annual renewal is an arduous process especially for larger villages and the process is akin to car registration renewal – yet another one of the many annoying things car owners have to go through. I always thought IT could help so here’s a web based facility that may automate the process:

Sign Up and fill up a Profile

Here is the sign up process:

  1. Tenant or Not?
  2. Business or Individual?
  3. Full name / Company / Organization Name
  4. Date of Birth
  5. Address
  6. Gender
  7. Mobile / Telephone Number
  8. Government ID (Driver’s License, Passport, etc.); or DTI / Mayor’s Permit

Continue reading “My Idea for LGUs: Online Village Sticker Administration”

Government IT Idea: Centralized Document Clearing House

After a few years working at different government agencies I’ve come up with a few ideas. Some I thought of myself, many from discussion with consultants like myself, some seen from abroad, etc. I’ll be writing at least one per week, starting with this one:

Idea: Centralized Document Clearing House


Government agencies send hardcopy letters, memos, invitations, official papers and all sorts of documents to each other all the time. The potential for fraud is medium to high especially for example when LGUs write to ask support from government agencies and Congressmen or Senators for regional projects ie. bridges, buildings, medical facilities and all sorts of infrastructure. Continue reading “Government IT Idea: Centralized Document Clearing House”

‘Jargon – Free Contract’ Boils Down What An Agreement Really Is

I like this ‘jargon free contract‘ I saw recently from, which I copy here:

You give me money, I’ll give you creative.
I’ll start when the check clears.
Time is money. More time is more money.
I’ll listen to you. You listen to me.
You tell me what you want, I’ll tell you what you need.
You want me to be on time, I want you to be on time.
What you use is yours, what you don’t is mine.
I can’t give you stuff I don’t own.
I’ll try not to be an ass, you should do the same.
If you want something that’s been done before, use that.
If you want your way, you have to pay.
If you don’t pay, I have final say.
Let’s create something great together.

It’s enjoyable because for the most part this boils down my own experiences as a Consultant and Freelancer and more importantly how it relates to expectations while executing work.

Continue reading “‘Jargon – Free Contract’ Boils Down What An Agreement Really Is”

How To Revive A ‘Dead’ WordPress Website

My old WordPress site was actively maintained for five years until I lost interest. After a few years of lying mostly dormant the site developed errors and essentially ‘died’ as it was inaccessible.

I wanted to reactivate it again. Fortunately I had not deleted the files and database from my shared server so making it ‘alive’ again was certainly possible. However since the site had not been updated for several years it was using a very outdated version of WordPress and was incompatible with the latest versions of MySQL and PHP.

Simply reactivating and updating it via the normal ‘one click update’ WordPress is known for is ok for most recently upgraded websites, but for those that haven’t been touched in years it may result in unwelcome surprises.

In summary, here’s what I did to avoid these surprises.

  1. Set up the old website to function the same way as it did before the domain lapsed.
  2. Set up a fresh new WordPress site with nothing in it.
  3. Use the Export tool on the old website to produce an xml file of old users, posts and comments.
  4. Import it into the new website.

Continue reading “How To Revive A ‘Dead’ WordPress Website”

Project Profile:


SchoolEx, evolved from the ‘School Directory’ portion of MomEx. All 5,100+ schools and 1,600+ comments were transferred over to the new site, and an additional 4,000+ public schools were added as well. The site now has 9,460 schools and counting in its directory, all of which are ready to be commented and rated on as usual.

The reason this was done is because MomEx wasn’t reaching its potential anymore. The School directory portion was still very strong however, and by itself was hitting 500 – 1000 visitors per day. Also, the underlying software was badly in need of a major update (it was made in 2006, and the most major update was 2010!), and was also starting to become a security worry.

A second more urgent reason was that MomEx was still using outdated Drupal 6 core and modules, which was a huge potential security risk. Here’s how its status page looked:


Tech Used

Drupal 7 – Still my weapon of choice. Even with Drupal 8 well on its way I’d give Drupal 7 at least 5 to 7 years of active development still, and with migration modules having advanced as far as it has I’m sure it wouldn’t be very difficult to go to Drupal 8 when the time comes. Speaking of migration:

Migrate D2D – Migrate Drupal to Drupal is a dream to use, making transfer of nodes, taxonomy, pages, files, users, etc. as easy as clicking a few buttons. You will need a staging platform that’s an exact copy of the live host for it to work though, as the destination website opens the database of the source website to suck out its content. Previously you would have to do each task piece by piece which would probably make you want to tear your hair out. This task is best left for experts but once you know what you’re doing it can get easy.

Zen – I am a strong advocate of building off frameworks like the Omega and Zen theme and here I stuck to my guns. As a result I have a terrific responsive theme that’s easy to configure and read on most mobile screens as well. This was an enormous load off my back as the previous D6 Zen theme needed to be updated for the longest time as well as the core itself.


Two Challenges

• There were two challenges. Primarily it was vital that the comments would obviously come along with the nodes. The previous site’s comments held a wealth of information related to the school nodes they were attached to and if I lost them I would have essentially lost the value of the website itself. The initial migration attempts did not join the two and it turned out I had to transfer node and modules separately. It worked out eventually but I’m fairly sure there were a few that did not transfer. This may have been because the Drupal 6 source had also been a migration from WordPress sometime in 2008 or 09. I’m happy with the result anyway as the really good comments came later when it was already a Drupal 6 website.

• The second challenge involved making sure that the old website URL would execute a proper redirect. The old website enjoyed great SEO from searches of schools around the country, and I just wanted the ‘’ part to change from ‘’, with the rest of the URL proceeding to the same page.

In other words I wanted:

to redirect to:

I managed to do it with this .htaccess rule:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^mom\.exchange\.ph$ [NC]
RewriteRule ^{REQUEST_URI} [L,R=301,NE]
Options +FollowSymLinks

So now all traffic went directly to the correct site and to the correct page.

• A third semi – challenge involved the fantastic amount of spam the site immediately received once I got the URLs to properly redirect. I removed the Captcha module which proved useless and replaced it with google recaptcha, which immediately went to work blocking hundreds of thousands of spam.

So there you go I finally updated and transferred one of my most important websites to a better domain and an upgraded framework. I will be doing next.

‘The following module is missing..’ Drupal Error Messages After Update To 7.50

After updating your Drupal site from 7.44 to 7.50 you might see this message when you check your status report.

This happened to me. Below image explains that the admin should install the ‘webform’ module.


On another site, I also received the same message, this time looking for the ‘bestreply’ module. But since the error messages are set to ‘NONE’, it only displayed in the logs.


This also shows up when you use Drush:


Why is this happening?

According to the supporting page for this issue, there are three possible reasons:

  1. You removed a module from the file system without disabling and uninstalling it.
  2. You moved the module inside your Drupal installation.
  3. There is a bug in a module installed on your site.

Like most developers I do a lot of experimentation with modules I am not familiar with and in my case no. 1 definitely applied (you removed a module from the file system …). Sometimes I get confused with the number of attempts I do and I may delete a module without disabling it.

Why is this Necessary?

Removing a module without disabling it leaves a lot of ‘garbage’, eg. code that the module installed but is not necessary anymore. This may become a security risk. Third party modules are maintained independently from the core Drupal files and if the creators / people in charge of that module stop working on it, which occasionally happens, the code eventually becomes outdated and may allow malicious hackers access to other files or even the database.

It’s therefore appropriate to remove modules correctly by disabling it first. To learn more, read the part on the Changelog under ‘Improved performance (and new PHP warnings) when Drupal is trying to find a file that does not exist’

What to do?

The solution is very simple. Merely google the missing module and download it into the /sites/all/modules directory. In my case I didn’t even have to activate it and after checking the status page again the error message went away.


Always properly remove modules. And always read the Changelogs and Blogposts if any, to understand why things are happening the way they are. Version 7.44 to 7.50 represents a major jump as indicated by skipping over .45, .46, etc.. You should be at least even a little curious why that is so reading the Blogpost is extra important to keep updated and avoid surprises.