Miss All Sunday


I would tell you to go to hell, but I think you're already there

New blog! yeah, again



new blog!


I realize there is an entry already but hey! I need to keep on writing new entries.

I've been working on a new blog platform these past weeks, I always wanted to work with cutting edge PHP and try different things. This idea isn't knew, its been on my head for a few years, yeah... I realize I waited too long but meh, doesn't matter, here I am.

Building my own framework was out of scope, using a framework was the overall best choice. The question was what framework. After trying things here and there I narrow it down to two options, fatfree and lithium, I've been toying with both for a few years now so I was already familiar with them. Trying a new framework also was an option, however the learning curve drive me away from any. So, between fatfree and lithium I chose fatfree, again the learning curve was easier and I also liked the fact that there was no hardcoded file structure. The only thing that I do not like is its license, this was a very heavy thing against fatfree, I very much avoid anything that has the GPL stamp on it and unfortunately, fatfree its GPL3.

The license was a very big thing, however since this project its only going to be used by me and will not really be redistributed or anything, I kinda accepted the license, plus, the freedom of file structure also played a big role into choosing fatfree. So, fatfree it is! Next thing, front end.

I was familiar with materialize, however one very big thing against it was the usage of HTML elements to display icons, this means google will crawl them as HTML elements which makes the pages indexed by google to be ugly and with extra words. That alone was enough to go with a different option. I tried a few options but since fatfree had native support for bootstrap I decided to use bootstrap ?

Next thing, an editor, summernote was the chosen one, mainly because I found it easy to customize and also because it has native support for bootstrap ?

Once I got the very basic stuff, I started working on a converted, got that cover for the most part, I still have some issues with emojis and I still haven't decided how the urls are going to be saved and displayed but its a minor thing. Having sorted out the converted quite easy made me go the extra mile and build a forum platform, so the blog quickly became an hybrid between a blog and a forum.

Building a forum means extra stuff but since, again this is a personal thing, I built just what I'm going to use, it makes no sense to write stuff that I never going to use such as a moderation center for example. I prefer to focus on stuff I do use.

After getting used to fatfree, the rest was easy, specially because I'm not really following a proper MVC approach and I also ain't following fatfree's RESTful approach either. Again, this is a personal thing and it of course it shouldn't be used as an example of how to do stuff properly ? but I'm happy with the result. There was a few things I built for the previous platform, mostly the cron jobs. Building those on the new platform its a must do thing. Fortunately composer makes life easier.

I also code a few custom things, mostly related to the structured data stuff and some others to make things easier while posting new blog entries. After getting all the back end stuff, the next thing was the structured data stuff. Google says, monkey do. As simple as that. Fortunately for me, building stuff from the ground makes it easy or rather makes it less annoying to add that crap.

And this is currently where I am, between the structured data and start making changes to the front end. While I'm typing this I realize I almost burn out all the writings I accumulated since last year. I hope I am able to finish the new platform before I ran out of entries ? Edit, I wrote this entry a few weeks ago thinking the site wasn't gonna be ready by the time this entry was going live, turns out it did!


Last edited by Suki reason: add compressed image on 3 Apr 2017, 9:27 am

Re: New blog! yeah, again

By Suki on 18 Mar 2017


oh well, I went with the hackish thing of adding an additional check on post controller... not nice but meh... also removed the full editor to guest.

Re: New blog! yeah, again

By Suki on 21 Mar 2017


Today I got my first spammer, it was just a matter of time and I was kinda curious to know what and when it will happen.

Bright side is I now know the "new registered user" mail is working and I also got fresh, real spammer data to test the stop forum spammer API against.

I also have no way to automatically delete an user, perhaps this incident will finally push me to write a decent admin panel.

Re: New blog! yeah, again

By Suki on 22 Mar 2017


I removed the captcha and implemented a very raw check using stopforumspam API. Lets see how it goes 🤔🤔

Re: New blog! yeah, again

By Suki on 25 Mar 2017


Worked on automatic keyword generation, have no idea if this is still relevant or not but did it anyway.


Also found out the sitemap were generating wrong urls and of course Google have to check it exactly when it was showing those errors so now webmaster tools shows I have ZERO urls indexed. Awesome 😬 🤐


Edit, It also stopped to recognize my structured data stuff, even though it shows zero errors and fully complies with every annoying thing Google demands...


Last edited by Suki reason: on 25 Mar 2017, 1:44 pm

The tags cut off special chars and its been annoying me greatly...  instead of displaying "México" it shows "Mxico". annoying...

Other than that, the keyword generation seems good enough, it combines the actual topic tags with keywords extracted directly from the message itself.


Perhaps the reason google decided to dismiss my structured data stuff was because I was using a generic image for the entries in the home page...  I dunno, have no way to find out.


But anyway, I added a few foreachs, switch, ifs and DOMDocument to extract the images in each post and show it next to the blog title.


I don't know if I like it or not, I prefer not to give it too much attention because I know I will end up changing something and spending way too many hours on this. 


Today on "what google bitched about this time" : Images.

Yeah, I didn't compress any before uploading them to imgur so here I am, using online tools to compress and editing each entry to add the new compressed image...

I gotta find a faster way to do this, one where I only upload the image to a folder and it gets compressed automatically or something like that, even using the image title as a reference to know to which blog post the image is suppose to be added and actually add it automagically!   that would be great and I'm pretty sure theres a way to do it but meh, for now I will store the compressed images in a folder and will add a note or something to remind myself to compress the frigging image before use it!


Its not really google's fault, I mean, I did use a 1.3mb image on purpose  😅 and it's happily been displayed on very request to the front page...


I've been thinking about way to make the whole image thing more efficient and automatic, so far it all point out to let the cron job do the heavy work of getting the image, compress it, create a thumb and insert the needed meta back to the post if it doesn't contain any metadata already.

Seems doable, the only thing that worries me is getting the thumb url to display it on the front page, currently I'm using Domdocument() but it seems overkill, perhaps by storing the actual thumb using the topic id or the topic title? that way I don't have to extract any info from the post anymore.


Didn't found out a good script to compress images and I def don't want to deal with that myself.

So I end up with a half done thing, the cron generates a thmb but thats it, it doesn't compress the image nor it normalizes all images into one common format either.

I'm still using DOMDocument to extract the image, not ideal but meh, seems pointless and over the top to have a separate table to store this data or even a separate file or some other method to store the image data.