Engels started playing with Linux® in 1991 and obtained his Red Hat Certified Engineer (RHCE), Red Hat Certified Instructor (RHCI), and Red Hat Certified Examiner (RHCX) certifications in 2002. He is in charge of Bluepoint's Total Linux®, Linux Kernel Internals®, Perl & Python Programming, and Extreme PHP curriculum and instruction development.
/* Conveniently yanked from the Bluepoint Institute profile page */
Elvin Joseph Sanico was one of the best professors I was privileged to have at the UP National Institute of Physics in Diliman. His use of the continuity equation for steady one-dimensional flow to prove the "silent waters run deep" axiom was really cool!
In loving memory of CPT Mario B. Mortega Sr., USAFFE, VET (1920-2004)
MAJ - My Activity Journal
Saturday, May 21, 2005, 12:00 AM (Revision 243 - Friday, Jun 17, 2011, 9:16 AM)

My Activity Journal is a simple, PHP-based, GPL'ed blog written from scratch as a spare time family project by Psylocke, Magie, and Engels Antonio.

We started with a simple blog that used flat text files and had a clean, minimalist look. We ended up with a little bit more.

• Flat File Operation
• Entry Ante-Dating
• Auto-Smileys
• Simple Photo Album
• Filedrop and Individual Download Counters
• E-mail Comment Notification and Management
• Comment Spam Protection
• RSS 0.91, 1.0, 2.0
• Sticky Entries
• Google Visit Counter
• Technorati Auto-Ping
• SFX Affiliate Button

Watch your to-do's, they become features.

Revision Counter (20050731)
Private Entries (20050804)
XML Sitemap (20050809)
Multiple Entry Images (20050827)
Basic BBCode Support (20050923)
Comment Editing (20050923)
Categories (20051005)
Settings (20051021)
Category Isolation (20051031)
Background Image (20051208)
Hidden Categories (20051223)
Site Search (20060118)
Album Auto-Thumbnails [requires php-gd] (20060213)
User-Defined Colors (20060221)
Password-Protected Public Entries (20060521)
PHP Panels (20060616)
Safer HTML Entries (20060618)
Archives (20060719)
PDF Generation [thanks to FPDF] (20060813)
[majBB] Simple Bulletin Board (20061031)
Simple Mailing List (20061109)
[majBB] Reserved Usernames (20061201)
Profanity Filter (20061203)
[majBB] Avatars and Ranks (20061218)
Photo Album Captions (20070206)
Display Last Modified Date and Time (20070603)
Center PHP Panels (20070615)
CSS Round Corners (20070704)
[majBB] Member Password Reset (20070718)
Improved Colors Selection (20070719)
Random Entries Panel (20070807)
Color Schemes: Save, Restore, Delete (20070930)
Color Schemes: Upload [thanks to unzipFile](20071001)
Color Schemes: Download [thanks to ZipStream-PHP](20071004)
Photo Album Image Rename (20071007)
Photo Album Image Delete (20071007)
User-Defined Fonts (20071017)
Comment Relocation (20071102)
Comment Search (20071109)
Member Search (20071118)
Wiki-Style Editing (20071130)
Wiki Diff [thanks to Simple Diff Algorithm](20071219)
Comment Automatic Approval (20080521)
Multiple Categories (20081125)
• Pretty URLs
• Code Highlighting
• Smiley Packs
• Standardize Variables
• Aggregate Recurring Functions
• Valid RSS 1.0 and 2.0 Compliance
• W3C Valid HTML Compliance
• Code Optimization

$HTTP_POST_FILES not working in PHP 5 (20050826)
RSS feeds empty if entries per page is undefined (20051028)
Categories cannot be deleted if ID has white space(s) [discovered by RJ Mortega] (20060213)
RSS feeds show password-protected entries [discovered by Dominique Cimafranca] (20060604)
Some browsers won't download on-the-fly generated PDF files (20060821)
Site search shows password-protected entries [fixed by Psylocke Antonio] (20060911)
Album thumbnails break when parent image filenames contain a space (20061031)
Entries break when PHP magic_quotes_gpc is on [discovered by Cara Bébé] (20061210)
[majBB] Flaky profile views updates (20061218)
[majBB] Wrong translation of some bb2ml characters (20070605)
[majBB] Mismatching of some ml2bb entries [fixed by Magie Antonio] (20070707)
Album thumbnails break under GD2 (20071008)
Some HTML entries break edit CSS (20071018)
Profanity filter not applied on search results (20071109)
Wrong $ratio_posts computation (20071231)
• ISO 8601 lastmod format invalid in Google Sitemaps (Google problem?)

• Blog Buttons [thanks to Adam Kalsey]
• JavaScript Color Picker [thanks to Luis Romero]
• FPDF PHP Class [thanks to Olivier Plathey]
• Farbtastic: jQuery Color Picker Plug-in [thanks to Steven Wittens]
• unzipFile PHP Function [thanks to Vladimir Ghetau]
• ZipStream PHP Library [thanks to Paul Duncan]
• Simple Diff Algorithm [thanks to Paul Butler]

Although MAJ is "just" a family project (actually a "patched" collection of Psylocke's PHP exercises), care has been taken to make it as "safe" as possible. But with different people now working on MAJ on an as-time-permits basis, each with a different coding style and technique, it is not unlikely for bugs and exploits to slip in. We invite you to poke around and see if you can find any. Generally, there are two things you can do when you find a MAJ or PHP-related bug or exploit:

1. Take advantage of it. But hey, what's so exciting about messing up someone's blog? Ho-hum, right?
2. Report it here so that we can work on a fix and make MAJ better.

Download MAJ here or from

Extract the archive into a directory on your web server's document root. Access login.php with a browser. Enter "maj" and "php" as initial credentials. Customize and blog away!

If you are using MAJ, tell us so that we can add you to the list below. Please note that inactive URLs will be automatically unlinked. (20050502) (20050502) (20050502) (20050918) (20060109) (20060131) (20060207) (20060223) (20060304) (20060403) (20060403) (20060403) (20060409) (20060731) (20060731) (20060910) (20060910) (20060929) (20060929) (20061016) (20070628) (20071129) (20071208) (20080924) (20090317) (20090612)