The release of b2evolution 2.4.5, code named Monument Valley, provided me yet another opportunity to reexamine the installation procedure on the OS/2 and upgrade the immediately previous version of the open source blogging software residing in my OS/2 Warp Server for e-Business (WSeB ). Nevertheless, I also wondered about the viability of using an non-server OS/2 Warp 4 (a.k.a. Merlin) to host b2evolution. Given the fact that the client version of the OS/2 is more readily available than WSeB, the installation of b2evolution 2.4.5 into OS/2 Warp 4 client is what this blog entry is all about...and more.
Of course, like its server counterpart, Warp 4 had to first be updated to the its last (2006) freely available fix pack 15, the TCP/IP stack and multi-protocol services stack (MPTS) updates and fixes. The low barrier accessibility of open source software (OSS), as evidenced by the OS/2 ports of the Apache, PHP, and MySQL OSS components, made it easy for me to select an desktop background JPEG image from an GNU/Linux Fedora 7 to replace the OS/2's original art. I used the GIMP OSS graphics editor to quickly create and superimpose an OS/2 Warp 4 logo over Fedora's in the GPL licensed image. I felt I had to say that because the subsequent screen shots will reveal the shameless deed.
Well, in retrospect, I could not find an more appropriate background image that had not been created by others while under the intoxicating effects of an inadequate branding focus, like e[C-This] or e[C-That] and their corresponding use of proprietary logos. Strictly speaking, this is OS/2 and theirs is OS/2 under the shallowness of fancier wrappers. And I will only use the e prefix to describe the complete range of services that we provide at Metztli Information Technology: e-Business implementations from the ground hardware/software infrastructure to The Cloud; and everything in between like IBM Lotus Collaboration and Web 2.0 technologies ...oh, yes, and open source Web 2.0 software like b2evolution.
Indeed, Fedora 7 desktop background is an beautiful image that I hope Hana found of her liking also. Incidentally, after having updated multimedia support for the Warp 4 OS/2 client with CW-Multimedia classes V0.2.7, I came across MMAudio Pak 2 for OS/2 that enable the playing of MP3 files, among others.
Short deviation...MP3 break.
Not being necessarily a music listener, I was intrigued by the viability of the OS/2 to play such files, nonetheless. Digging further into the no-cost available software to play MP3 files under the OS/2, I found a couple of Java based players which remained viable under the OS/2 environment. This latter is due to the fact that the last versions of Java for the OS/2 are 1.3.x and 1.4.x. The former is an SMP enabled implementation by IBM and will even execute under OS/2 Warp 3; the latter is an SMP capable implementation by Golden Code Development (GCD) and will not execute on earlier than OS/2 Warp 4 versions.
I found another MP3 player, PM123, but I uninstalled it after it became nonfunctional when the allocated resources (music) of the player apparently collided with the sound emitted by the opening of folders during my limited testing on my SMP machine.
The JlGui Music Player archives are made available at [J]zoom in both, zip and tar formats, for a manual installation --the only option that an OS/2 user has. JlGui 3.0 will run with GCD's Java 1.4.x whereas JlGui 2.3.2 will run even with IBM's Java 1.3.x.
Upon extracting either of the archives above, you will only find scripts with extension .sh and .bat; needless to say, this last is not for the OS/2. Accordingly, I make available --without any guarantee-- relevant OS/2 script files ending in .cmd that you may modify to suit your OS/2 environment:
- myJlGui30.cmd for GCD's Java 1.4.x OS/2 Warp 4 and above implementation.
- myJlgui232.cmd for IBM's Java 1.3.x OS/2 Warp 3 and above implementation.
These worked for me but by downloading or examining them for your implementation, you assume all risk.
It is important to note a few assumptions reflected in the above files. First, the relevant environment variable in your OS/2 CONFIG.SYS should end in a semicolon (;). myJlGui232.cmd sets your OS/2 IBM's Java 1.3.x environment by modifying (for the current OS/2 window session only) PATH, BEGINLIBPATH, INCLUDE, and LIB, environment variables in addition to executing the script to start JlGui 2.3.2 Java application. If your default Java 1.3.x installation already has those environment variables set (as is the case when the IBM Netscape installation routine is accomplished), then you should remove those line directives from myJlGui232.cmd.
If your version of Java is 1.4.x, please disregard the script file myJlGui232.cmd and use the script file myJlGui30.cmd
In both instances, however, take care to adjust the JAVA_HOME and JLGUI_HOME environment variables to point to your Java installation directory and the relevant JlGui directory as created by the version that you downloaded. For instance, Y:\jlGui2.3.2 and/or Y:\jlgui3.0 --where Y: is the hypothetical drive letter root to which you expanded the pertinent JlGui versions.
Back on track...MP3 break over.
Well, this blog entry is about b2evolution 2.4.5 on OS/2 and I was getting off track somewhat. I will select an OS/2 partition labeled as drive m: for the installation of the Apache2, MySQL and PHP5 open source software stack and the subsequent installation of b2evolution 2.4.5. Following the instructions by Al Savage (Also available at the OS/2 Documentation Project), I have retrofitted this version of OS/2 with a 386HPFS driver since we have an license for the OS/2 Warp 4 Server Advanced. The added protection, and possibly speed, in the HPFS 386 file system is adequate for the exposing of an organization's resources to the wild of the Internet when using OS/2 as an Internet hosting platform. Accordingly, we will explore how an Web 2.0 application like b2evolution might be installed and hosted in an non-server OS/2.
Hence, we create our workspace directory at drive m:
Once again, we visit the web site of OS/2 developer Mr. Paul Smedley and download the Unix-GNU/Linux OS/2 ports of Apache2, MySQL, and PHP5 (OAMP) to our working directory m:\workspace. Do not forget to download libc063.dll that (after extracting) you will place under your OS2/DLL/ directory --of course, if you do not have it already; else, your open source stack components may not work.
Subsequently, proceed to download Francois Planque and team's b2evolution 2.4.5. Please consider seriously making a donation to the respective developers of the open source software components that we download; this is quality software and the developers are not being formally compensated for their efforts.
These are the archive components that we should hava under m:\workspace,
Please note that the version or release numbers are ephemeral in nature and are only a reflection of those currently available.
I assume that you have an zip archive extracting utility to operate on those files. If you do not, you may download the self-extracting pkos2250.exe from Hobbes repository; after executing the file, find the file pkzip.exe and copy or move it to an directory in you OS/2's PATH environment. Adhering closely to the previous procedure under the Warp Sever for eBusiness, we extract the files to our root drive m: from our working directory m:\worksapce.
We extract Apache2:
pkzip /extr /dir httpd-2.2.10-os2-20081106.zip M:\.
and it creates a directory M:\apache2
Extract the PHP5 archive:
pkzip /extr /dir php-5.2.6-os2-20080504.zip M:\.
creates a directory M:\php5
And we extract MySQL:
pkzip /extr /dir mysql-5.0.67-os2-20080809.zip M:\.
and the operation creates a directory M:\mysql5
And finally we make a temporary directory to extract the contents of the archive libc-0.6.3-csd3.zip:
pkzip /extr /dir libc-0.6.3-csd3.zip TEMP\.
under the TEMP directory we will have the following files:
Copy the file libc063.dll to your root OS/2 installation drive, in the example below and those that follow, my OS/2 root drive will be f: --replace/modify to reflect your OS/2 root drive.
COPY TEMP\libc063.dll f:\os2\dll\.
And finally extract b2evolution 2.4.5 Monument Valley to your current directory location (note the dot (.) indicator) at the end of the command:
pkzip /extr /dir b2evolution-2.4.5-stable-2008-09-17.zip .
and b2evolution subdirectory will be created under our current workspace directory location.
We will only need to copy the b2evolution\blogs subdirectory to the M:\apache2\htdocs subdirectory to install our b2evolution blog.
As a matter of fact, we can do it now:
(all in a single command instance)
xcopy b2evolution\blogs\* M:\apache2\htdocs\blogs\ /h /o /t /s /e /r /v
After the above procedure, we will have an blogs subdirectory that can be referenced absolutely as M:\apache2\htdocs\blogs
Please note that you can rename the blogs directory to anything that may be more appropriate for your needs or fancy. But keep in mind that you should do it before you perform the actual b2evolution installation through the web browser.
As an pragmatic instance of renaming the blogs subdirectory to something else, it is of help for delaying the standard script probing efforts by wanna be crackers on the Internet --who often use scripts by real crackers that reference standard paths to exploit an known and easy weakness. Hence, for the sake of example, let us rename the blogs subdirectory to something meaningful ...like Mixtli. Yes, the Náhuatl word Mixtli embodies the notion of bringing the OS/2 platform into the modern buzz notion of The Cloud, because Mixtli, as written by the Spanish in their language, conveys the ancient Náhuatl sound to refer to that natural object named cloud.
REN m:\apache2\htdocs\blogs mixtli
Hence, make a note, when we are ready to install b2evolution 2.4.5 it will be done from our Apache path:
Needless to say, since we are doing a local installation, when we are ready to install our b2evolution and after we have our Apache web server serving our local site with (default) root at M:\apache2\htdocs, we will access our b2evolution installation and blog by appending mixtli to our local address http://localhost fed to our browser, as
Of course, if our OS/2 will be hosting our blog and participating in the Internet, then it will be accessible (as an specific instance) at
mozilla http://www.my_domain.com/mixtli/ or your relevant top level domain, like .net, .biz, .info, etc.
Setting up O/S2 AMP --the OSS foundation of Web 2.0 applications like b2evolution
Let us change directory to m:\apache2, make a backup copy of startup.cmd and conf\httpd.conf files.
COPY startup.cmd startup.cmdBAK
COPY conf\httpd.conf conf\httpd.confBAK
Use your text editor to open the file startup.cmd,
and, again, this is what we will modify:
Remove line 1 and 2 and the last four characters of line number 4 so that during our setup testing we will see error messages redirected to our OS/2 command window; subsequently we modify the dynamic environment variable beginlibpath to point to the drive letter where our Apache installation resides. In our case it is drive m:
Here is the result after our modifications:
After saving our changes but before starting the Apache web server to test it, we need to copy over the file conf\httpd.conf.sample over the httpd.conf because the included httpd.conf is for Unix - GNU/Linux.
COPY conf\httpd.conf.sample conf\httpd.conf
We set our HOSTNAME environment variable to point to our localhost OS/2 Warp 4:
and start our Apache web server from our m:\apache2 directory location,
(sample output to our OS/2 window)
[M:\apache2]bin\httpd -d .
bin\\httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
And we point our favourite browser to localhost:
And we should see the words, It Works!, as seen in this minimized browser window below,
Well we proceed to add PHP support to our Apache web server.
COPY M:\php5\apache2\modphp5.dll modules\.
and we add the directive LoadModule php5_module modules/modphp5.dll to the end of the Apache conf\httpd.conf module directory listing (approximately at line 111). Here is a fragment where the relevant entry of Apache PHP module directive is highlighted at the end:
LoadModule status_module modules/status.dll
# LoadModule unique_id_module modules/unique_i.dll
LoadModule userdir_module modules/userdir.dll
# LoadModule usertrack_module modules/usertrac.dll
# LoadModule version_module modules/version.dll
# LoadModule vhost_alias_module modules/vhost_al.dll
LoadModule php5_module modules/modphp5.dll
Now, before closing the conf\http.conf file, we need to set another file extension type that Apache will serve if a directory is requested. Hence, we should add the file index.php to the already existent index.html to satisfy b2evolution file requirements. Below is a (modified) fragment that surrounds our (highlighted) file of interest:
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
Additionally, one should scroll to the very end of the conf/httpd.conf entries and add the following 3 PHP directives:
Please, make sure that you modify the appropriate drive letter (in my example, the m: drive relevant to my particular installation) to point to your own drive letter --where the PHP5 component is installed in your system.
Now, it is time to place our php.ini into the MPTN\etc directory f:\MPTN\etc\. Since the file is not included in the OS/2 PHP5 port, as before, I used an pristine one from an fresh GNU/Linux Debian installation. Again, I will make the file available for your download. Evidently, it worked for this particular exercise but nonetheless it comes with no warranty of any kind and all risks are assumed by whoever references and/or downloads it in any form.
In this case, as opposed to one I made available for WSeB elsewhere, we will only add three entries relevant for the proper functioning of PHP, MySQL, and GD for b2evolution image manipulation (like resizing images automatically); if GD is absent, we will get many errors in our server logs when we go live:
extension_dir = "m:/php5/modules"
Now we create an file in our m:\apache2\htdocs directory, say test.php, and we enter the following line of php code:
From our current directory, M:\apache2, we change directories to M:\php5 and type start php.exe; subsequently we return to our M:\apache2 location. Alternatively, we can open another OS/2 command prompt window, change directories to m:\php5 and type php.exe
An window will appear and with a blinking prompt (the PHP5 daemon is executing):
Now, we start the Apache web server by changing our directory location back:
And we point our browser to the test file that we created:
We should see information relevant to our environment, as in the picture above. If that is not the case, we should go back and reexamine the procedures. Stop the Apache and PHP daemons by pressing CTRL-C; we will restart those after we create our MySQL database for b2evolution.
We proceed to set up MySQL's sample database before we can access MySQL even without a password. Change directory location to M:\mysql5 and extract mysql5_sample_database.zip
pkzip /extr /dir mysql5_sample_database.zip
Subsequently, We change to the bin directory and start the MySQL daemon:
We should remember to set the passwords for the root administrator(s) and anonymous user(s) among other security measures for an production deployment of MySQL. However for the sake so simplicity in this quick and dirty exercise, we will simply create an database for our b2evolution blog.
Accordingly, since we are at the M:\mysql5\bin, I will use one of the blank password root accounts to access the database functions:
mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.67 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SHOW DATABASES;
| Database |
| information_schema |
| mysql |
| test |
3 rows in set (0.02 sec)
And I create a database for b2evolution that I will name b2evomixtlidb, which name is relevant to its location in the file system:
mysql> create database b2evomixtlidb;
Query OK, 1 row affected (0.04 sec)
mysql> SHOW DATABASES;
| Database |
| information_schema |
| b2evomixtlidb |
| mysql |
| test |
4 rows in set (0.01 sec)
And we can see that our database for b2evolution was created. Now I proceed to grant all access to an user of the name Mixcoatl --which purportedly signifies cloud serpent ...humm, it is turning out to be quite interesting.
mysql> grant all on b2evomixtlidb.* to mixcoatl@'localhost' identified by '11-17-2008';
The password for mixcoatl at the localhost will be identified by 11-17-2008, evidently.
Query OK, 0 rows affected (0.03 sec)
Installing b2evolution 2.4.5 Monument Valley, finally!
Since we have created our database and have the mysqld.exe daemon running already, we should restart PHP and Apache to begin the installation of 2evolution into our OS/2 Warp 4 Merlin.
And we point our browser to the location of our (renamed) blog subdirectory:
We select the left link, which upon hovering our mouse pointer over it, we can see at the bottom of the browser: http://localhost/mixtli/install/index.php which is correct; whereas hovering our mouse on the right link we can see at the bottom of our browser the incorrect location: http://localhost/install/index.php
Remember, we copied M:\workspace\b2evolution\blogs directory to M:\apache2\htdocs\blogs but renamed blogs to mixtli, as our blogging software directory.
We click the left link: http://localhost/mixtli/install/index.php and I enter in the relevant fields:
MySQL Username: mixcoatl
MySQL Password: 11-17-2008
MySQL Database: b2evomixtlidb
And we check the rest of the fields to verify that those are correct. One field in particular that we should modify to reflect correct personal information is the Your email: field since the default is not suitable for an OS/2 environment.
I proceed to click the button Update config file. And from the ensuing page, I leave the (default) check mark on the New install radio button. You may want to leave checked the suboption to also install the sample blogs and content. The former is useful for an user to learn by example the capabilities of b2evolution. Additionally, do not forget to confirm tha data (entered in the previous instance of your b2evolution browser instance --including language selection), in the section Base config recap.... Press the GO! button when you are satisfied with the data shown; else, you are provided with option radio buttons and links to make corrections.
After pressing the GO! button, the next browser instance will display, the processes executed by b2evolution installation routines. For instance, database table creation, minimum default data, and sample (blogs) content. At the very end of the browser page, an blog adimistrator user name of admin and an temporary login password will be created --use it to login for the first time to b2evolution backoffice; however, after the administrator logs in, the password should be changed appropriately.
Selecting the log in link, will enable the user to log into b2evolution backoffice to perform relevant administrative duties like, security checks, for instance, as well as changing the assigned random password for an more convenient (but secure) alternative.
Upon our very first login, we are presented with the default theme and the Global aspect of the Dashboard. The Blog list shows the sample blogs created. Perusing those blogs will provide the blog adminstrator insight on the powerful features of b2evolution. The prior locale/Language selected will also be assigned to those blogs --even if those are in English . On the bottom right, the OS/2 user will observe the underlined link labeled Check system & security --do select it.
The section areas highlighted in yellow represent security risks that we should address to decrease the surface of attack on our OS/2 hosted b2evolution 2.4.5. Do not underestimate those if your blog will go live on the Internet --in addition to securing your MySQL database by updating your blank passwords with encrypted ones.
Addressing Security Issues in B2evolution 2.4.5 Check system and security page
Well, we can see that the first highlighted section refers to deleting the installation directory that, in my specific example local installation, would be
Accordingly, we proceed to do that, from the M:\apache2 location in our OS/2 command prompt window, by deleting all files under the directory of reference:
that is subsequently followed by deleting the offending directory itself:
We proceed to edit the php.ini file that, currently under OS/2, is located at
The search feature of the OS/2's native EPM editor is used to locate the first of the offending strings: allow_url_fopen = On.
We modify its value to Off: allow_url_fopen = Off and save the change.
We proceed to locate the next offending string in the php.ini file: magic_quotes_gpc = On
Again, we modify its value to Off: magic_quotes_gpc = Off and save the change.
Well, the next warning is relevant to the potentially inapproprite character set conversions for certain languages/locales if the PHP mbstring extension is not used/loaded. I selected the so-called Spanish (MX) option under the Language / Locale configuration during my b2evolution installation --as can be verified in certain prior screen shot(s). Accordingly, I add the following directive to my php.ini:
Please note that the extension modules that are available in this particular OS/2 port of PHP5 can be found, in this particular drive installation illustration, under the directory:
Read the M:\php5\readme.os2 to get an quick overview by the OS/2 developer.
The Apache web server must be restarted for the changes to our php.ini file to propagate. Please locate the relevant OS/2 window where the Apache2 daemon is executing and stop it by pressing CTRL and C keboard units. Restart Apache2 in the same OS/2 window by entering startup.cmd, since the particular location would be M:\apache2. Otherwise, if the OS/2 window where the Apache2 daemon was executing has been closed, change your command prompt location to the appropriate directory and restart the Apache web server daemon with the startup.cmd script.
Now, assuming that the b2evolution backoffice Check system & security page was not closed, refresh the page. Otherwise, log in back into b2evolution backoffice and open your Check system & security page. There should be no more warnings:
Exploring a Couple of b2evolution Features
If we installed (default) the sample blogs, we can access from the Dashboard the Photoblog that inspired the b2evolution 2.4.5 code name of Monument Valley. The thumbnail images are the result of our having loaded, by incuding the directive in our OS/2 php.ini file, the dynamic image manipulation extension gd.dll. Error entries in our Apache2 error.log file are generated otherwise --one for each of the thumbnail images not being displayed (resized from the larger original).
If we are going to experiment by modifying our sample blogs, then we should first disable any pinging notifications to the b2evolution web site. It is the default to ping b2evolution site every time an blog is created and its visibility is Public. Accordingly, while modifiying sample blogs and/or creating new ones, it is desirable to disable the default pinging selection. From the Features tab, under Global settings, below the section After each new post... set to Off the Outbound pings & email notifications; and we save our changes.
We can "recycle" one of the existing blogs, say blog A, by altering its Blog properties which are accessed, either from the link of that name, or by selecting the Blog settings tab. Accordingly, I will reasign values to the variables, like Title, in the General parameters section; as well as alter variables like Tagline and Long description in the Description fields section.
After saving our modifications by selecting the appropriate rectangular button at the bottom of the page, we can preview our changes by subsequently selecting the upper right (shown raised) button labeled Blog_B.
Please note that the Lush skin shown above did not come bundled in the b2evolution 2.4.5 distribution. Rather, it was availabe in compressed zip format from the online Skins subdirectory of b2evoluton web site.
Also note, in the screen shot above, the upper raised button labeled Upload since we are interested in uploading an MP3 file type to our blog so that visitors may sample an music file --or as a matter of fact any type of podcast. Well, we select the Upload button and the subsequent screen displays the relevant directories that were created; b2evolution has enabled those with the appropriate permissions to receive our uploads.
Hence, by selecting the Browse button, I proceed to access an MP3 music file that was acquired from Amazon: Parece Que Va A Llover that had been stored at drive/directory V:\MP3.
After selecting OK button to the OS/2 dialog prompt, I proceed to select the > Quick upload! rectangular button in the b2evolution browser interface.
And we get the error: The file does not seem to be a valid upload! It may exceed the upload_max_filesize directive in php.ini.
Consequently, I use OS/2 EPM editor to open the f:\mptn\etc\php.ini file and locate the string variable upload_max_filesize. And change its default 2M file value to 10M --following the modification with a save file operation. On the PHP5 side, this change should be sufficient since my MP3 file is less than 8M.
In the Files tab, under Global settings, I locate the section File creation options and under the Maximum upload file size option, I increase the default value of 2048 KB (2M) to 4 times its size, that is, 8192 KB. Subsequently, the updated values are saved by selecting the Update button.
As before, whenever we make modifications to our php.ini file, we should stop and restart our Apache2 web server for the changes to propagate. This time, performing the prior steps relevant to uploading the MP3 file, will yield success.
One way to access the URL of the MP3 file just uploaded is if we select the admin directory from the File browser drop down menu --since in this specific case I am the administrator of the blog. In the case of an blogger with appropriate privileges, his/her user name directory should contain the uploaded resources. After the directory focus selection modification, the MP3 file uploaded will appear and I copy the link for subsequent use.
Subsequently, we prepare to embed our uploaded MP3 file into our recycled Blog A that I had renamed as mixtli. I select its name from b2evolution 2.4.5 Dashboard and proceed to press the Edit-labeled (blog content) button.
Selecting the Expert tab, I paste the MP3 link, copied previously, as a value to the Link to url variable. Additionally, I give the blog content a Title, and from the Type drop down menu, I select the option Podcast. Yes, and I replace the original Blog A body content with a couple of lines.
Selecting the Preview button above, we can see that b2evolution 2.4.5 has embedded an flash MP3 player at the top of our blog content body. OS/2 is enabled to use up to flash version 7 with an Odin (OS/2 Wine semi-port) hack that decreases the legendary OS/2 stability. Notwithstanding, b2evolution embedded flash player is able to play the MP3 file embedded, and possibly all the other types, as can be seen in the progress bar in the snapshot below:
Native Flash support for OS/2 is but one of the many tasks that an interested developer might be willing to contribute in the spirit of free and open source software (FOSS). There is a petition being hosted at the OS/2 World Foundation that asks the parent company to open source any and/or all OS/2 source code --either for the x86 or the Power architecture. If interested to sign it, please point your browser appropriately to the link referenced above.
I hope that I have provided enough insight as to the continued viability of the OS/2 to host so-called Web 2.0 applications like b2evolution. Although harshly criticized by self-serving parties, the resilency shown by the technical design excellence of the OS/2 is outstanding. Nevertheless, OS/2 is showing its age and without open standards development of the kernel and core components, it will finally be left behind by the ever changing and dynamic technological landscape.
Unfortunately, there are parties, that license OS/2 from the parent organization, whose inadequacy in adapting their respective business model to the present simply stiffle potential open source --open standards-- components development for the OS/2 --not to mention OS/2 kernel and essential subsystems development.
I hope that you have found amusing, as I did myself while performing and writing this how-to blog entry, the b2evolution Road to Monument Valley --and a partial view of the landscape in the long and difficult road ahead for the OS/2.
NOTE The educated opinions expressed do not necessarily reflect those of Metztli Information Technology as a whole.
Suggestion code for commands entered at the OS/2 shell(s) prompt are provided on an as-is basis. Although due diligence has been applied, the information may not be accurate under all circumstances.
Debian derived php.ini file is available for download to illustrate something that may be alien to an OS/2er (and others) and may not be suitable for the environment of whoever downloads to use it, or examines for insight; hence, Debian derived php.ini is available AS-IS.
Consequently, please do not hold Metztli IT responsible if unforeseen effects are experienced. You are not obliged to use the information provided.
Metztli IT reserves the right to modify the procedure --including deleting the blog entry.