Cammy's Big Rambly Journal

Hello! I notice you're using Netscape (or other CSS-noncompliant user agent—in which case, consider this an easter egg) to view this journal. Because Netscape is so titanically shit, I have disabled image viewing on Netscape specifically. If I didn't, you would notice random images being replaced with each other and similar such strangeness. The posts are still visible, but you'll be missing the images, which are half the context of these posts.

You should use RetroZilla if you can; it runs on Windows 95 and up and gives you a perfect cammy.somnol viewing experience, plus more comfortable Web browsing on retrocomputers in general. Failing that, Internet Explorer 3 (which amusingly also displays this message, since it doesn't support the display CSS property) and up will also work perfectly fine for seeing my journal posts.


May 17, 2024
Returning home

Remember to close your tables right


Lots more work on nofi.mari.somnol has occurred since my last blog post! We're getting fairly close to having everything moved over from the old site—only the modding section really remains. Even better is that, with the stories and, in a bit, music sections implemented, this is actually not just more fully featured than mari@macintosh.garden was, it's actually everything I wanted on mari.somnol implemented. Like, that's it. I was pondering some kind of Web design gallery, showing off some of my favorite website designs I've done and acknowledging all these skills I've acquired in the past six years of being a webmaster, but that can be added later. Art would be nice to have on the site, but I'll leave that for when I can decide how I want to build that section. I just need the Alexi drawings after that (thinking little chibis would be best with the limited viewport space) and it's complete. Not basically—complete. Cammy has a portfolio site again, and one-third of the move is done.

PHP continues to be a curious mistress that treats me well for the most part. I spent today cleaning up the internals of the music recommendations page, better integrating PHP into the HTML (no more echo spam!) and adding logic to add the artist and album name to the title and page heading, depending on what you're looking at. I'm really happy with the language still. Basically everything I want to do with it, there's a really clean way to do it, even if that thing happens to be slightly esoteric. Great example: two-dimensional arrays (which are arrays inside arrays, if you're not a programmer—but if you aren't, you don't know what an array is anyway, so just hold tight). I figured, if I wanted to access the data in the inner array, I'd need to split it out into a separate array first and do my logic on that. Nope! You just add on a second key to the array variable address, like so:

$rows[0]["year"]

This accesses the year key inside the first array that's in the $rows array, which in my case, is the data being returned from the database. So in practice, that gives you the release year of the first album in the search results. It's that easy.

The only time I really get confused with PHP is when tables get involved. Browsers get really weird if you don't close your tables correctly. I had a bug early on where the table for the last artist in the list of artists and albums (currently, that's Wrong Way Driver, a side project of one of my favorite bands Pine Marten) was missing, but only in Netscape 4. Turns out, it was in the page source; Netscape was just not rendering it because it wasn't closed correctly. Yesterday, I had an issue with the game reviews page (no link yet because it's not working yet) where there was no table under the Game Boy Advance heading, and then the GBA table was appearing under the PlayStation heading, and everything else was moved down a console as well. After an hour of thlamming my penith in the car door, I discovered—yep, another table unclosed. (I had messed up my logic for building the tables programmatically. Happens.) I don't know why or how not closing a table right can make it appear somewhere else on the page, but thankfully, it's solved.

There's still a whole world of other stuff I'd like to do with PHP even after all this is done as well. The ACNES compatibility list page is currently being manually updated as I also update a Works database alongside it, and it probably takes me an extra ten minutes that I could absolutely automate. Export out a CSV, and then when you view that page, it reads the CSV and turns it into a page. I could take that CSV and put it into a MySQL database when I'm done and let you search games, or view games by their year (if I put that data in) or their working status. I'd like to finally get sleeby.art built at some point too! I have experience with all the base components, making database queries, displaying data, making thumbnails with ImageMagick—I'd just need to put it together with a login system. Like, I already own the domain, and Caby's been wanting this for years now. Years! I'll be at this coding thing for a while.

But yeah, I keep telling folks in Somnol how big of a relief it'll be to have a main site again. It's now been about three years since I last had mari.somnol in a usable state. For some of that time, it redirected to archives. For the rest, it's been parked. I don't like to make myself ever anything more than another member of Somnol generally, but mari.somnol kinda is and always has been the subdomain the entire site gravitates around, thanks to it being my group. It's weird not having that center there. It's weird not having a home base to catalog all my work at. cammy.somnol is adorable and I'd like to give that the care it deserves as well (and finally get Cammy on cammy.somnol), but it's not mari.somnol. It's not the site that's been here since the beginning.

Having it again, and seeing it come together again, and seeing it come together more powerful and using all these new technologies I learned just for this? Seeing how much less work I'll have to do to maintain it in the future because of all the database work I'm doing now? It really has reinvigorated my love of site building. I've been making websites since I was 6 years old. From the age I was old enough to comprehend what a computer was, the coolest thing in the world to me was having a website—and now I'm enjoying working on them again. Once it's all in place, I can go back to my writing and music and art full-time, with the ideal platform for it all right on my own domain. I can't think of much that'd make me happier.


May 13, 2024
Kevin and Theo is now up for reading!

Only took a year


So as I move further into getting nofi.mari.somnol filled out, I realize that I've been putting off a story section. Stories used to be a huge part of the mari.somnol stew, but it's been so long since I've written anything now that bringing stuff that old back feels a bit unflattering. I was still growing as a person and also just plain gaining confidence in my work. When you're scared of failing, you don't do things to the greatest extent you could have. You don't sing loud, you don't draw dynamic poses, you don't write eccentric, animated characters. I've had to learn that—and now I have! But I'm happy to leave the old stuff on archives. Like the mtlx EP for my music, I really oughta get some properly new writing that shows off what I'm capable of.

That leads me to a little thing you might remember if you're a longtime journal readerKevin and Theo's Multiverse Misadventure. For as long as Pennyverse has been around, it's funny that the first thing that got truly published from it was a post-main plot story after Kevin's left the trio. True to that post, I did rewrite the story and it did come out a hell of a lot better, and Caby is a machine as always, so she came up with about two dozen illustrations in four different art styles, across digital and traditional. Despite some bumps in the road with the printed hardcover copy (which is in a weird mix of American and British spellings due to oversight) and the promotional poster (which got printed at the wrong size and fucked with by one of Caby's tutors, the period was not optional, thank you), it all came out killer. We were super proud of it.

And then it just kinda sat next to us, unfortunately. I always had plans to make a Web version, but Caby never sent over the images. We wanted to refine the printing and do an on-demand thing for family, friends, and Internet folks who'd like to own some physical Caby art, but those plans never materialized.

Kevin and Theo, poster and cover

So, this year, I'm making it official. I grabbed everything from her art files when I was over there in February and I've now got it up as the first story you see on nofi.mari.somnol. For those who remember reading stories on my old sites with the color-coded dialogue, that's all back. The images will be small on modern displays, but it's super comfortable at 800x600. This is basically as good as reading one of my stories on a website gets:

Kevin and Theo story text with Hasan as a Techo

So, since none of you got to read it a year ago, if you want some new Cammy writing and a ton of unreleased Caby art, go check it out! I'm absolutely gonna be working with Caby, now that we're both fresh from having read all this again and being proud of it, to get an on-demand printing going of it in case you'd like to throw her some extra money for all the hard work. And, of course, lofi and hifi mari.somnol will have higher-quality art assets, custom fonts (I will bring Los Altos back as my dialogue font, don't you worry), and maybe even a printer-specific stylesheet because those sound fun. Lots of options!

Oh, and uh, new stories. I have a couple ideas for 'em, I just have to get to writing. And then illustrating, because it's hard to convince Internet people to stare at plain text.


May 10, 2024
PHP has won my heart

What the hell? I like programming now?


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.

A review of a Better Than Ezra album, brought to you by PHP

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.

Listing some album reviews in PHP in Netscape 3.0

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.


April 28, 2024
Distant depots

Cammy returns with a new Quake level out of nowhere!


Ah, it feels good to be busy again. I said I'd do this journal post two days ago, but then I got working on starting up the ACNES compatibility list project again, I'm streaming again tonight, I've been chatting with people and actually enjoying it again (protip, mute and hide all the channels you're not interested in in any public Discord you're a part of and your life will instantly feel less cluttered) and I've been going on walks again. Every period of being antisocial comes with a burst of being social afterwards. Swings and roundabouts.

Nevertheless, we have a Quake map to discuss! I've been itching to do some Quake mapping for a long time now. I used to be very active at it back when the place to be was Terrafusion instead of the Quake Mapping Discord (no, I am not in that), but life took me other places and I was still recovering from being a little shitflinger who got shit flung back at him. Honestly, it feels silly to even let it continue to be a topic of discussion. Looking at the names on the Quaddicted submissions now, I don't even recognize most of them. Everyone's moved on, I'm an adult now, I'm sure I could shoot the shit with the people who had issues with me now if we did cross paths and there'd be no problem, and most importantly, I don't get into fights anymore and I suck less at mapping.

I don't recall if I talked about this back when I started working on it (no mention of it on the journal from around then, so I suppose not), but back in Spring 2023, a month or two before the first Wales trip, I was playing a lot of Half-Life 2: Deathmatch and found myself drawn to what I've since learned is still a fairly popular custom map in that game's cult following, dm_lostvillage. It's a simple and fun two-level layout with some center hallways, but it's pretty apparent the person who built it wasn't much of a level designer. The texture work is one step above hideous, there's a lot of line-of-sight issues (I'm not sure it was even vis'ed), it doesn't make much sense as a place—but it's fun. The layout is good.

I wanted to take that layout and rebuild it in Quake as an idbase deathmatch level, making it make at least a little more sense as a place and also tailoring it to a game with a more fluid feel to combat. As much as I like Half-Life 2: Deathmatch, the Source engine was starting to tip heavily towards realism, the gunplay wasn't as fast and furious, and the thin catwalks and chunky, undetailed building facades that were the bread and butter of hardcore clan level design for Quake and GoldSrc were no longer cutting it visually. It's probably why the game has only had cult success despite my enjoyment of it—people who like fast and fluid gunplay a la arena shooters have no use for its limited sprint and weapon cooldown, and it's very classicist and limited as far as its modes go (basically entirely deathmatch, no CTF, no control points, no last man standing, no vehicles, etc).

I got roughly 30% into the level before the first trip to Wales knocked me out of it, and despite all the castles we visited on both trips inspiringly me great to map for Quake as soon as I got home, I just never returned to it. (In all honesty, I had to refactor one of the center hallways to make the layout work, and that was just, like, so much effort. That's why I dropped it for so long. When I got over it, it took about a half hour.) I guess during this recent bit of moping, going back to what I was doing as an angsty teenager felt comforting, so I finished it up in about a week. Have some screenshots at long last:

While I kept true to the overall layout, I did make a few changes in connecting some areas to others where they originally weren't, and I expanded out the dinky little combine metal hallway in the far east of the map into an additional little sewer bit with a lift. One thing I'm always hungry for in my levels is making them feel like believable places, places that sprawl beyond where you're actually able to go. I did that a little bit with this level, decorative doors, a slipgate area, catwalks high above the playable level area, and I think it looks terrific. idbase also feels like putting together Lego after a fashion—layering wall textures separated by chunky metal supports that occasionally act as key light sources, it all just makes sense to me.

As far as lighting goes, this is very ericw, all bounce, automatic skylights, basically no fill lights, colored lights to separate various areas (warmer in rooms, colder in the hallways, and pale blue from the sky, and red to mark special areas). Fog is so huge for atmosphere in both drawings and levels; a slight bit in the distance makes any level feel instantly colder (or stickier!). Especially with the software simulation in Ironwail cranked, I think it's gorgeous. Dimension of the Past is a perennial inspiration for me as far as base stuff goes, and I don't think I've fully mastered that episode's design language, but I think this is closer than I've ever gotten.

With regards to how it plays? I don't know yet. I gotta set up a little QuakeWorld server and get some tests going. It's nice having access to both seasoned deathmatch players and Somnolians who don't play these games as much as I do, because it means I can see how people from all skill levels handle it. I'll probably do a couple rounds with both, some with me playing and some with me just watching to see how it pans out. As an aside, while I didn't intend for this to be a singleplayer level, once I sent NewHouse the level to run around in, he immediately wanted to do a singleplayer remix of it. He's apparently very close to being done with it, and I asked him to not send me any screenshots so I could see what he did with my work blind.

Glad everyone's liked how it looks! I can only hope it plays nice as well—and either way, it's just nice to still have it, and really have it better than ever, with my level design abilities. Many games I'd like to map for in the future, some more complex, some less. (And I will return to the Source engine someday. Parts of it are a disaster, but it's a disaster that feels uniquely like home.)


April 26, 2024
Disillusionment

This is a dark one, but I promise it has a good ending


This past week, and really the month as a whole, has been odd. Frankly, I was wondering if any of this making-stuff-and-posting-it-online business was still worth it. To be clear, it's been a mixture of things—the 25 year itch (I'll be 25 in June), folks in Somnolescent being busy or stressed out with life on their own, alternating indecision and disinterest in my art and writing, my own struggle at finding a job—but the last straw, and where this affects the Internet, a place I'd really like to go to have fun in all honesty, was seeing the way the groomer Discord server leaks got discussed.

If you don't know, this month, a site called spy.pet popped up selling access to the logs of publicly-accessible Discord servers. Some of them were, really, a thinly-veiled child grooming operation using cute memes and anime boys as a way to gain access to and prey on teenagers, getting them to take photos of themselves and all that, I don't need to go on. The spy.pet guy joined the Kiwi Farms to post his discoveries publicly, and folks closer to home than I would've liked had...difficulty with the news.

Predators are an upsetting enough topic, but when I saw people in servers I'm in desire violent revenge on that guy for shining a light on the shit currently being done to teenage boys, boys just like I was—insecure, from dysfunctional homes, figuring they were just so precocious for their age—I was alienated. If you don't know, and I'm about to put this very not delicately, so be warned: I was a grooming victim. From age 14, I had an older woman encourage me to write snuff for her, violent, painful snuff. She withheld her affection for me until I gave her something to shlick to. She preyed on the stuff that I was into. We roleplayed both, and then she handed all the logs over to another underage person to humiliate me publicly with. She wanted me to move to Canada someday, pretending to be a deeply sick person with about every condition under the sun so I'd feel bad and take care of her forever.

I don't let any of this affect me these days, but that's where I'm coming from. It's a topic very close to home, and seeing people unbelievably fold the kinds of abuse I took under the umbrella of "queer servers"—phenomenal, just the community I want to be associated with, as someone who's learned not-so-quietly over the past year that he might just like dudes as much as chicks. That's all this is, being queer! And not pedophilia or anything.

You can think that's retarded, you can tell me I'm projecting, you can tell me to stop paying attention to the news, but it was everywhere I went. Sheezy had a discussion, boomer shooter Discords I was in had discussions about it, I think it might've even gotten posted in Protoweb? Naturally, folks were worried their own messages had been posted publicly, but the more concerning, and frankly more telling, reactions of fury and upset let me know that I was sharing very different air than I was when I first joined Discord. That's the Internet I share with people? That's who tell me they "worry" about me poisoning their social well? People not upset that kids were being targeted, but that someone decided to show everyone what was happening to them. That's the bad guy.

The classic tale of people seeing two different movies strikes again. I kept my mouth shut through all of this. All it'd do is get me banned and more people cursing the meanie old mariteaux once again anyway for having a heart about the fucking kids and not wanting them to get preyed on or anything. It all fed into a feeling of "maybe I should just leave". "I don't fit in, shit is different now, this isn't my Internet, I'll figure out something else." That's not the only reason I felt that, like I said. I've been more and more aware that the folks on Discord and IRC, even servers about retro tech and old video games, really stuff you'd expect adults to be into more than kids, never get older, but I do. I'm lucky to have Somnolescent, a tight-knit group of people my age who share my interests and I love talking to, because goddamn, that shit is hard to come by out there.

Of course, I'm not leaving. I got blackpilled for a bit, but I'm coming to my senses. I have good chats with people, especially on small Web forums these days, and I'm contributing more and more to Protoweb—it's been really nice to have an outlet for my specific skills and interest in early Internet development. (I wrote a NoSQL CSV database and search thing in PHP for my bleem.com restoration! That didn't even get a journal post, sadly, but you can read a little about the process in the writeup I did on the Protoblog.) Most folks are alright. Quirky, but alright.

And hey, let's continue rolling with the good news, since I got the exorcism out of the way. I meant to announce this on here when I was officially at 160 (maybe I'll focus on it more in another post), but I'm now 18lbs lighter than when I started trying to lose weight in January! I was never super heavy, but I was a couple into overweight territory, and after a Christmas season of a lot of chocolate and booze, I was curious how much I could truly lose, since I'd never really given my diet much thought. It really became apparent today, after an interview I had (which I'll hear about how I did tomorrow, hopefully it's good news since I think I did well)— all of my nicer clothes are a size too big now, and I have to do my belt one notch tighter to fit my work pants as comfortably as they did at Staples. That's wild to think about.

Finally, creatively! I've got a plan for cammy.somnol now; not too drastic as far as changes in the content go, but I have in my head an idea for a new, much fancier front page graphic featuring Cammy as opposed to Setter, plus everyone else's sonas. (Setter will be moving to lofi.mari.somnol, as part of the three-pronged "support all browsers" approach I want to take for that, so no worries, the puppy will not be without mascot work!) I've also decided on a new page banner style, something a lot tidier and a lot less work than the fullbodies I've been doing since the site started. (I gotta get back into drawing, it was something I wasn't much in the mood for lately. Is a shame—another thing I've come a long way on and rather enjoy.)

Oh yeah, and I've been working on a Quake map! It's a little thing for deathmatch I started last year before I went to Wales the first time, but finished it over this oddball period where I didn't want to do much else. I'll save the full details for a post I'm gonna write tomorrow. For now, have a crunchy screenshot:

MXDM1, box room

So yeah, kind of a heavy post, but I'm coming out of the other end. Good timing too; Caby just finished the last of her schoolwork last night, so I'll be hanging out with my girl more! (After she gets in a nice nap, of course. Lots of twelve hours days and not a lot to talk about other than schoolwork, rough times...)


No page to go back to! Page 1 of 21

Previous months