Hello, journal people! I haven't really been updating this because there's kinda been a dearth of coherent Cammy updates. I can say I'm definitely doing better than my low point last month. No buts! Definitely feeling a lot better. It just hasn't resulted in a ton of stuff rolling off the line that I feel the urge to talk about.
Now, though, I have some. I return to my kingdom of webshit to discuss the thing that has reinvigorated my interest in making websites, and that's PHP. I fuckin' love PHP.
PHP was always one of those things I'd say I'd eventually get to learning, but I just never had a reason to actually go through with it. I was happy with my static HTML pages and using AutoSite if I needed any kind of automation. But then Protoweb came into the picture, and after seeing a Web page get put together in front of me, from HTML I wrote as a template and data from another file stuffed into it, I was suddenly awash with ideas for my own usage. Of course, Dreamhost Shared gives us the latest-and-greatest on both PHP and MySQL, which is basically all you need to write any sort of Web app.
PHP has been a lot of fun to work with. Stuff comes together with it really quickly. You can mix it with HTML in any form you'd like or need, PHP-in-HTML or HTML-in-PHP. It's got all the things you'd need to read from files, databases, and URLs built-in. Dreamhost installs the ImageMagick PHP extension for you, so you're covered for literally any kind of image manipulation, all done on the server. My favorite bit is undoubtedly the fact that everything is done on the server. JavaScript is a pain in the ass because old versions of it are supremely limited, and new versions obviously don't work on my target browsers most of the time. PHP? Functions introduced in the current version of it, 8.2 as I write this, work the same on Vivaldi and fuckin Netscape 3.0.
For a couple days, I was working on an art gallery. I wanted to be able to drop images into a folder and have them formatted nicely on a page on my site. That worked! I even got it generating thumbnails for me. I quickly realized that I was gonna need to rely on a database of some kind to have anything fancier and more involved, though, and I wasn't sure how well that all would scale if you were someone like Caby with tons of art to throw at the script. Instead, I'm gonna put the knowledge I gained from that into working on a RetroZilla-targeted Somnolescent art portal we can all post to. Caby's been wanting us to have our own Yerf for a couple years now, and dreams should really come true at least some of the time.
Today, I took the plunge into MySQL queries, building them, passing them along parameterized to a database server, and getting back usable information. I put all my old album reviews into a database table, and from just one script, I can list them out and read my reviews, in identical form to how they were as static HTML. Just as fast too. It's actually frankly more featureful than the static reviews were, because I can retrieve one review, an entire artist, an entire year, or every single album I've given a certain rating to. I can generate an RSS feed of new reviews. I still have to code in the easier way to add new reviews, since at the moment I'd have to poke them into the table on the backend to have them appear, but words cannot describe how excited I was seeing it all come together.
I've realized the import PHP could have on my rather insane goal to have three different mari.somnols for three different groups of browsers. Instead of having three different changelog pages I'd have to maintain individually, I just have my changelog in a CSV and then three PHP scripts. Update the CSV, and magically, the changes appear on all three sites. I did the same thing for my essay list. This isn't theoretical, I've implemented all this! I'm sure none of it's impressive to anyone who's worked on dynamic sites for a while now, but y'know, it's impressive to me. I'm used to maintaining static HTML pages, and now, I'm writing frontend and backend stuff. It's making perfect sense. It's coming together so quick! Admittedly, I forget semicolons about as often as I forgot to change all my tabs to spaces when I was working with Python, but having a reason, good reason, to flex my coding muscles has gotten me totally reinvigorated to work on my sites, especially since I find myself in a slight lull with art.
I'm gonna be sunsetting mari@macintosh.garden over the coming days. All the pages will remain there, but my new path forwards with mari.somnol has effectively necessitated my return. It was never meant to be permanent anyway, and some of the stuff I still have to add to mari@macintosh.garden, like my stories with Caby's illustrations, will probably fill up the remaining 20MB or so of my 100MB disk quota there. I think it's just time to come back home, and it's been a long time coming.
As I said, mari.somnol will be available in three flavors, nofi.mari.somnol, lofi.mari.somnol, and the normal "hifi" mari.somnol. nofi is aimed at ancient 90s browsers who can't reliably handle CSS; they get a zero-layout HTML 3.2 experience that's zippy and looks great at 800x600. lofi is aimed at slightly newer browsers (RetroZilla is my target, thereabouts) who work well with HTML4 Strict, probably two-column like mari_v3, but still no multimedia or client-side scripting outside of just linking to MP3s, and hifi will be where I go nuts, make it super modern, responsive, CSS grid, with a theme switcher to let you view the site in the garb of any website I've ever built. Each will have a different one of my sonas as the mascot to give each one an extra sprinkle of uniqueness, Alexi on nofi, Setter on lofi, and Cammy and mari on hifi. nofi is already partially built, as linked above. The other two will be completed sequentially once all nofi content is in place.
This is the solution to making one site work on all browsers. I'm pretty sure I am the only person crazy enough to put this together. If you know of anyone else, do let me know so I can make immediate friends with them.
I haven't been this excited to work on Web stuff in a while. I'm in the class of programmer that enjoys it, but needs a particularly good reason to write code, and a whole slew of reasons have fallen into my lap as of late. I'll keep you updated! Well, ideally. I always have the best intentions.