Huge changes happened to Planet Lotus last week. It’s safe to say it’s been rebuilt from the ground up.

TL;DR: PL has been stripped down, rebuilt, and upgraded. Please let me know if you see any odd behavior.

I had originally set out to find a more cost effective home for Planet Lotus. That home has always required some sort of virtualized server due to basic functions the site relies on, features normally turned off on lower cost shared hosting accounts. If I’m going to move to yet another VM, I might as well update everything. As you can imagine, porting 10 year old code to a brand new LAMP server will require some work, like a lot of work, like it’s a whole new site, at least under the hood.

If you haven’t noticed, the update started with stripping it down to it’s core. After years of experimenting with ideas, it’s always been about the Feed, wait that’s Facebook, but yes, for Planet Lotus too. My approach, less is more. With less it’s easier it is to maintain and with that comes longevity. My goal is to maintain this site as long as there is a Lotus in some way shape or form.

What was stripped?

Blog post content/body is no longer stored, resulting in the removal of content preview. The only values stored for each post is pubdate, title, guid and author. This will impact the quality of search results but Google is way better at this. Search results have also been stripped down as well. For example, I removed the score of the return, way over engineered.

The “blogs” page is gone. The list on the front page is good enough.

The profile page has been radically reduced. Hit count, is still a rolling 7 days if you notice your blog posts getting less hits over time. The refresh button now lets you know what items are skipped because they’re already in the system and which are new.

What’s been Updated?

GoDaddy to Google Cloud Platform
I’d love to think this move will help out the folks in EMEA due to Google’s insane fiber infrastructure; let me know if anyone’s noticed a performance bump.

CentOS to Debian
Planet Lotus is now on it’s 3rd distro. Fedoria > CentOS > Debian. I have no favorites; all 3 are awesome.

cPanel/WHM to command line
For years, I’ve suck with GoDaddy for hosting, 10 in fact, and I still LOVE godaddy’s virtual dedicated servers for one very awesome reason, cPanel. A ~$20US a month VDS includes cPanel which, for someone like me is a requirement. I’ve never considered myself a LAMP admin and cPanel makes admin tasks very easy. This all changed when a new project I’m working on required me to become a LAMP admin. Relearning command line with an older more patient mind turned out to be very rewarding and not all that difficult to grasp. This and the fact that any tidbit is out there, a quick search away. Knowing command line has it’s advantages. On the day Specter and Meltdown broke I was able to do the mitigation on my phone, in bed, 3 minutes into first reading about it.

Self hosted MySQL 5.6 to Google managed MySQL 5.7 via Google Cloud SQL
This will be the single biggest noticeable change to long time readers. I’m sure you’ve all seen brief outages over the years, this was always due to MySQL blowing out the servers memory, good riddance managing that end of things, and hello stability. (yes, my fingers are still crossed.)

phpMyAdmin to MySQL Workbench
Google Cloud SQL doesn’t provide phpMyAdmin. After a short time working with the desktop based Workbench, I really like it.

PHP 5.5 to 7.1
This update caused every database call to be slightly updated. The only way I was going to attempt this was if I completely stripped down the site down to it’s basics. Ther

MyISAM to InnoDb
This change was uneventful and simple.

mysql_connect to mysqli
This PHP connection function was depreciated and required updating before moving to 7.1. Over all, the site is more secure as I was able to add a ton of security best practices I’ve picked up over the years, in addition to moving to moving to mysqli.

MySQL tables from utf8 to utf8mb4
My war on blog titles is over. The war consisted of a hand full of regex expressions I’ve collected over the years to make sure the title is escaped to death. Now I’m using mysqli_real_escape_string to handle everything and it’s paying off with more accurate display of titles in all languages.

MagpieRSS to PHP-RSS & SimplePie
So long and thank you for all the magic you provided, MagpieRss and thank you @kellan for your work in creating it.

The use of both engines is able to parse 100% of the valid blogs on the site. Actually, there is only one blog that SimplePie couldn’t process, but there could be more in the future.
Both engines are also configured with Composer, which should make updates into the future easier.

Update frequencies changes…

The more often you post the more frequently your blog is checked for updates. All blogs are queried and sorted based on their latest blog post. This list is split into 4 groups and the frequency is as follows.

Group 1, every 15 minutes
Group 2, once an hour
Group 3, every 3 hours
Group 4, every 7 hours.


So there it is, version 2018 of Planet Lotus and a path to a smooth 2025. If you enjoy this site, if it’s helped you in any way, please consider saying thank you here… http://pmcdad.com

Server Upgrade Issues

How about that new server?

A few issues have risen over the past few days that have had me up until well after midnight. They seem to be under control with a band-aid but wanted everyone to have something to look to if they/you were/are affected.

Issue 1. Encoding. I just spotted this so i’ll discuss first. I know the fix but just don’t have the cycles right now to fix. The band-aid is changing:

$title = htmlspecialchars($blogtitle, ENT_QUOTES);
$title = htmlspecialchars($blogtitle, ENT_SUBSTITUTE);

The bigger fix will ¬†be a total revamp of how encoding is handled with both php and mysql. I’ll fix this over time. For now blog posts that use special characters in the title will look funny or fail to insert. There are very few cases of this happening in testing. The more you use them, the greater the possibility.

Issue 2. Dates. More specifically the posts published date stamp and how it’s presented in the 262 different ‘takes’ on the rss/atom standard. The time suck was two fold, one to identify the problem and two, stop my self from fixing all the bugs i found along the way.¬†The problem had to do with the PHP function strtotime(). “Parse about any English textual datetime description into a Unix timestamp.” The return¬†value changed. Previous to PHP 5.1.0, I’m pretty sure the old server was using an older version.

The bugs this effort dredged¬†was the silver lining. As a result there is¬†little need to use feedburner to ‘clean’ feeds. This includes atom feeds, connection feeds, etc. Pretty amp’d about that.

Here is a list of blogs that still have issues with their publish date. This is about¬†1% of the total. I’m pretty sure that if the owners of these blogs do a little magic to the¬†feed schema or tweak the feeds somehow, they could fix it on their end. Until now they’re sort of ok. Going forward, if ¬†the code can’t parse the¬†date it’ll use the current time, then it’ll make you a sandwich.

Radu Cadariu | http://cadariu.blogspot.com | http://cadariu.blogspot.com/feeds/posts/default?alt=rss

Tommy Valand | http://dontpanic82.blogspot.com | http://feeds.feedburner.com/dontpanic82

Sasa Brkic | http://blog.squareone.ba | http://feeds.feedburner.com/lsoy

Issue 3. A fun one, if you’re a developer i guess, and it was all me. I had a cron job hourly pruning aged blog posts (+365 days). Every hour or so a another job would go out and poll for now posts. In the process it would look for and compare all posts. Given the large number of feeds with posts over a year old.. you can see where this is going, can’ t you? Well add this loop to the few batch of blogs that were never able to be parsed because of the improvements in the parser, ¬†it opened a whole can of worms. They would be posted, then disappear shortly after. . Yup. all me. Good times. Old¬†posts are now ‘unpublished’ to be used as a stub to prevent future inserts.

In summary, if you own a¬†blog listed above, please tweak and get back to me if it worked. Also, use special characters in you’re titles and you’re own risk; for now.

Planet Lotus 2015 Update

Two weekends in the making, PL 2015 ships with some pretty exciting updates. The code changes were done to establish a new approach. The update culminated last night with moving the site to a state of the art server; more on this below. Please forgive the glitches this may have caused, they are being fixed. Switches be like, mess with me and I’ll drop yo packets. #geekhumor.

The change in approach boils down to this, when determining which blog to publish you can either wait for them to prove they post content that the community would be interesting in, or you can take a chance. The new approach is all about taking the chance. The time spent curating, adding the blog meta and reading the content of each blog to make the decision almost entirely goes away. The blog submission processes has turned self service allowing just a flip of a switch on my end to approve. This will expedient the publishing process and welcome in a new era of fresh content. It also removes the catch 22 (i think that’s correct), where you have a new blogger that doesn’t want to start blogging until they’re on PL but they can’t get on without having content… but i need your help. Please email me if the risk taken goes south.

The other theme is getting back to the basics. Over time, the site took on so many features in the pursuit of making it a full featured community site. Over time visitors came for the feed. l’ll leave the deprecated features (listed below) to other developers, downloads, events, forum, custom feeds, etc.

The focus on fresh also applies to data collection.

  • Counted clicks works well to understand what the community is reading and what author are on fire. The update will only collect 7 days of hits, life long or YTD hit counts have been removed to the tune of MILLIONS of rows from the database.
  • Extended profile information has been simplified. Please see linkedin, about.me, blog about page for this info.
  • Content has been pruned, PL is no longer the way-back machine for the Lotus community. Posts will live on the site for a rolling 365 days. Plus, Google does this way better :).
    Inactive blogs will be removed after a year if there are not posts published. If you are unlisted because of this and start blogging again, just send me and email. Blog meta is hidden not removed so it’s easy to get them back on line.

Feature Updates:

  • Events – Removed.
  • Downloads – Removed.
  • Keywords – The analysis of a posts relationship to “Lotus” has been removed.
  • Forum – Posts, profiles and design deleted.
  • Podcasts – Now treated just like blogs.
  • Blog Widget – Removed. http://planetlotus.org/widgets.php
  • MyPL, custom feeds, custom front page, accounts, deleted. This was a difficult decision but it was based on an old customized forum that was long figure out by hackers and filled with spam, etc.
  • Post hover over Tool Tip on front page, increased on the speed of page load.
  • Planet Lotus blog comments disabled. Not done to silence opinions, it was done to stop the fragmentation of site support questions. For example, people leaving their blog details to be posted on the page that tells them to email them. Feel free to always contact me at planetlotus@collaborancy.com if you need anything updated.

Data Retention Summary

  • Hit Count – 7 Days. This is based on a rolling 168 hours, not on calendar days.
  • Posts – 1 Year.
  • Blogs – 1 Year. Stale blogs will be unlisted if there are not posts for a year. All posts and hits are removed from the site when a blog is unlisted.

Deprecated User Detail

  • Blog Type (vendor, person, IBM employee, multiple person, etc)
  • Stats on hits in the user profile.
  • Language
  • Anything Twitter related. Your twitter handle, image, your tweets, etc.
  • IBM Employment status.
  • More to follow.


  • What’s Hot – 7d (The most popular post over the past 7 days.)
  • * As of 1/1/2017 clicks are only collected for posts that are less than a week old.
  • Hot blogs, the top 6 increased to top 10.
  • Self service blog submission form with link on the front page. Remember, updates to your blog meta are still done by emailing planetlotus@collaborancy.com.
  • A Faster Server. The site went from Fedora v7 (EOL’d in June of 2008), to a vm on a 24 core CentOS 6.5 running the last versions of Apache, MySQL and PHP. The server is currently using 0.74% of it’s allocated CPU.
  • Better poling algorithm. It is no longer based on how popular a blog is. The new break out is as follows:
    • Every 10 minutes. Blogs 1-50 based on the most recent post.
    • Every 30 minutes. Blogs 51-150 based on the most recent post.
    • Every 120 minutes. Blogs 151-last based on the most recent post.
  • New posts are sent to the @planetlotus twitter feed.


  • Date stamps have been moved way down the front page.
  • The preview and tweet icons to the right of the blog title has been removed.
  • Sharing has been enhanced. Click on the blog’s favicon and it will take you to the preview page where you can get all kinds of share buttons.
  • Brought the 7 day what’s hot listing inline with the one¬† day, so now there is two.

I’d love to get your feedback!!!

Favicons on Front Page

I’ve added favicons to the front page to liven up the branding of blogs. There is no override to this enhancement. If you see the default icon for your blog, do some searching of Googles favicon rendering service to troubleshoot.



2 months of free front page advertising on Planet Lotus!

In an effort to raise donations for my favorite charity I’m trading ad space on Planet Lotus for donations. All you need to do is make a donation directly to the charity and I’ll place your ad, any ad on the front page. The more you donate the higher your ad on the left hand navigation bar will be placed.

The charity:

The PMC donates 100% of every rider-raised dollar to Dana-Farber Cancer Institute through its Jimmy Fund. Founded in 1980, the Pan-Mass Challenge (PMC) is an annual bike-a-thon that today raises more money for charity than any other single event in the country.

The details:

  • Ads will be in the form of 125/125px images stacked in the left hand navigation of the front page.
  • Placement of the ad is determined by how much you donate, top ad = most donated. Dollar amounts will not be published.
  • I will publish almost any ad image/URL. Promote your blog or your favorite product, site, etc. But please, NO animation.
  • All ads come down on Sept. 30th.
  • The ad image should be exactly 125px / 125px.

To buy an ad:

  • Donate here: http://www.pmcdad.com
  • Email me your ad image and URL along with the name you used to donate. charity@collaborancy.com
  • If you already donated to this years ride, do the same thing.
  • Change of URL or image will require a second donation.
  • Ads will be posted in batch at end of business day EST.

Thanks in advance for your consideration!