Hey, I just noticed we didn’t go offline today. Should I poke Murphy again and hope it was the effect of transferring our 100K+/day RSS feeds to Feedburner? (Oops, I guess I just did.) Don’t hurt me too much, Murphy, but cutting out all that bandwidth and server overhead has to ...
LGF, Technical Info, Database, MySQL, Abstraction Layer, PHP, Refactoring
If you’ve installed our LGF Headlines javascript at your site, you’ll be happy to know that our little widget will now stay online even if our main server goes down from traffic surges—I’ve relocated the Javascript code to server 2, which operates at much lower load levels. This means your ...
LGF, Technical Info, Database, MySQL, Abstraction Layer, PHP, Refactoring, Headlines
In the ongoing LGF Blog Engine Makeover Project, huge progress was made today on the display side of the application. I’ve settled on the database table designs for entries and comments, converted most of the existing entries/comments to MySQL, and now the display engine is capable of building and sending ...
LGF, Technical Info, Database, MySQL, Abstraction Layer, PHP, Refactoring, Design Patterns, MVC, Blog Engine
After poring over system logs, I’ve discovered another big drain on our system resources. At the bottom right of each post on the front page are links to versions of the individual post with and without comments. Sometimes people link to the pages with comments, even though they’re only interested ...
LGF, Technical Info, Database, MySQL, Abstraction Layer, PHP, Refactoring, Comments, Referrers
To decrease the load on our main server, and help us to better handle peak traffic times on weekdays, we now have a five minute cache on the front page, and a 15 minute cache on individual entry pages that don’t show comments. Judging from emails I received, some of you ...
LGF, Technical Info, Database, MySQL, Abstraction Layer, PHP, Refactoring, Cache
It took about 9 hours to read through 24,745 flat files and import 3,625,599 comments into MySQL, but it’s done. I imported all of them up to about 7 days ago, so that when I’m ready to switch the Blog Engine to MySQL entirely (and it’s not very close yet) ...
LGF, Technical Info, Database, MySQL, Abstraction Layer, PHP, Refactoring, Registration
I’m testing a script right now that, if all goes well, will add every post and every comment at LGF into our MySQL database; nearly 25,000 posts and over 3.6 million comments. The comments section is so huge and takes so long to convert (several hours, probably) that it kept ...
LGF, Technical Info, Database, MySQL, Abstraction Layer, PHP, Refactoring, Registration
The LGF Makeover project, intended to help us stay online even if/when a huge-traffic site like Drudge Report links to us (or Digg, where the Diggbats continue to furiously bury every LGF post), is proceeding. Almost all of our logging functions are now being handled by the MySQL server; this ...
LGF, Technical Info, Database, MySQL, Abstraction Layer, PHP, Refactoring, Registration
The MySQL conversion of our registration database had one small glitch on launch, quickly tracked down—I had written a variable name as $lowername instead of $lowerName. On such things do mighty lizard empires reside. To really give this thing a Texas-style workout, I’m going to open registration to the seething masses, ...
LGF, Technical Info, Database, MySQL, Abstraction Layer, PHP, Refactoring, Registration
At about 3:20 pm Pacific time (give or take a few minutes) I’ll be briefly shutting down comments while I run the conversion script to import our existing registered user database, then install the new MySQL-based registration/authentication modules. See you on the other side... UPDATE at 3/10/07 4:14:16 pm: Success! Our registration system ...
LGF, Technical Info, Database, MySQL, Abstraction Layer, PHP, Refactoring, Registration
This place is a mess, although you probably can’t tell. I’ve been ripping out the walls and the floors at LGFHQ, doing what coders call “refactoring” the codebase of the LGF Blog Engine to transfer all our existing content into a MySQL database system, instead of the unwieldy collection of ...
LGF, Technical Info, Database, MySQL, Abstraction Layer, PHP, Refactoring, Registration
The LGF Blog Engine Scalability Project, born out of necessity, is proceeding apace. (If anyone’s keeping track of such things, a decently-designed flat file system starts to get creaky around the 200K unique visits/day mark, on a mostly-dedicated server. I’m sure there are flat file aficionados out there who can do ...
LGF, Technical Info, Database, MySQL, Abstraction Layer, PHP, Refactoring
We have yet another improvement to the LGF Blog Engine. At the bottom of every comments page, right above the posting form, there’s now a special link that says “Show all links.” Click this little rascal and you’ll see an extracted list of all the links in the comments—a quick ...
LGF, Technical Info, CSS, PHP, LGF Blog Engine, Link Extraction, URLs
Yes, another one. I’ve been on a programming binge, taking a lot of my pre-existing procedural PHP and slowly, carefully transmuting it to nice shiny object oriented code. The latest section of the LGF Blog codebase to come under the microscope is the RSS feed reader, especially on the LGF ...
LGF, Technical Info, CSS, PHP, HTML, PEAR, Google, Search, SOAP, RSS, XML
The latest improvement to the LGF Blog system is a better way to use Google’s search mechanism. (Yes, it’s Google, and I know they do some things we don’t like—such as including jihad sites as legitimate news sources at Google News—but the bottom line, after much research and investigation of ...
LGF, Technical Info, CSS, PHP, HTML, PEAR, Google, Search, SOAP
Behind the scenes, a lot is changing. I’ve converted all our code that emails people for any reason (registrations, emailing articles to friends, contact form, etc.) to use an authenticated SMTP account with a very nice PHP mailer class, instead of the ‘sendmail’ based system we used to have. What ...
The comment posting code has been greatly improved, with a new URL autolinking routine that works much more reliably than the dated, buggy one we’ve been using for at least three years. It also produces prettier links than the previous autolinker; the title for the link is set to the ...
Progress continues on the LGF back-end renovation project. The HTML code sanitization routines are working really well, producing pages that get much closer to the holy grail of user comment validation. I’ve also made improvements in an important part of the LGF comment posting script: the code that automatically replaces raw ...
Most readers probably don’t realize that Little Green Footballs is semi-unique in the blogosphere, because the whole site runs on a custom-designed PHP platform, instead of one of the various open source or commercial blog packages. It’s a flat-file based system, which makes it very fast, and it has many ...