Day 7

The last day! I thought I was going to be able to sprint across the finish line, but sadly I'm gonna call this my first real OCC failure. I've bent/changed some personal rules before, but this time the game didn't make it across the finish line. I learned a lot and had a ton of fun, but while I was working I was slowly accumulating memory corruptions, and I don't have time to restart the whole thing again before midnight. The kicker was that my delay word would now just hang the computer, and because of how forth works I can't just redefine it to a working version. This is totally my fault for doing it the "wrong" way I think. My development process was that I just live-coded it without going through he text editor, frankly because I enjoy live systems more. The problem is that it made it impossible to fix problems like this. If I were smart I would've defined a marker at the start of each file and loaded the files. It would be nice if the forth gave me an option to save a defined word (or series of them) into a text file. Maybe that'd be a word to write myself :)

If it's any consolation, I still plan on making the full game for catjam. The code I did write which is fresh in my head is mostly standard forth too, so I miiight try to bang it out on the macbook and post it on the website tomorrow? That'll probably be easier for people to run than a d64 image anyway.

Overall I had a ton of fun this year! I was able to keep pretty chronistic (if tht's not already a word,) with the radio and tapes. I didn't get to play as many video games as I wanted, and I'm probably only finishing 1 book, but that's life I suppose. I definitely wasn't expecting to be running the show as much as I did, that only really developed in the 2 weeks before the start, but I think I handled it okay? I just need to plan on less hardcore challenges in future years with the work involved in that, or allow a chat like this year's Macbook. Oh no, I have to cook on a new theme too. Good thing I have a whole year for it :)

See y'all next July!

END

Day 6

As usual, thing have pretty much chilled out by today. Work happened, not too bad for once, Twelfth and I went out to get lunch together. I'm not like, totally convinced I'll have something to show for the game by the end of the challenge, but we'll see how much I get done after work. Especially after I noticed that bug with the return stack manipulation (I think it's some sort of memory corruption? When using the return stack operators sometimes I get garbage, sometimes I crash forth.)

That's more or less it for now I guess? People appreciated the digest again and this one was much smoother. I still missed jason though, since his site wasn't behaving in the proxy I was using. Hopefully I'll have another update tonight about the game.

Well, I've restarted the game. I'm at the point on the learning curve where even my forth yesterday is total garbage relative to today. I'm blogging right now because I corrupted memory again, though. In my opinion this vocabulary is much smoother though, and I have some hopes. The idea right now is that this version is gonna be more arcade-ey, so basically cars are constantly coming and you just have to get them to the right train, if possible, without derailing.

Dinner was a delicious curry Twelfth made. He also tried some Korean(? I think?) meme food which is like, deep fried frozen eggs. I don't really recommend it. The eggs were just raw in the middle and it really wasn't worth the effort I think.

Things were quiet on the MacOS front. I really am mostly just using it for IRC and e-mail, plus looking up documentation and other OCCers. I installed VICE to doule check some Forth stuff. I've discovered that a lot of what I thought were bugs actually just seem to be me subtly corrupting memory, which is a relief. Not knowing what's secretly broken was one reason for starting from scratch again.

I'm actually deeply enjoying forth. I feel like I haven't really had an epiphany language since I first learned lisp in high school. Especially in the context of catjam it's interesting to think about how much of a forth UXN isn't. After the jam I may try to write a forth for it, it's a good platform for them but tal itself is definitely not a forth. I think in my own system I'd like a little convenience feature in the editor though. In forth you can only refer to words which already exist, but I think the editor smoothing that over might be helpful? ie : dothing this that ; would, on seeing this is undefined, immediately let me define this, insert that before dothing, then continue compiling. I also wish durex forth had a way to *replace* a word, but I don't think that's common in any forths? As in I defined this word with a bug, change the code but no the dictionary entry but the way the language is implemented makes that inconvenient, I think. Just some stuff for me to stew on.

Day 5

And back to our regularly scheduled OCC. I just felt it was appropriate to type the switch on the macbook. Aside from wrangling with builds I do basically plan on just using it for admin work, mostly keeping up with people's pages and creating those summary e-mails, the first of which went out today! That counts as making something, right? Sadly creativity is a bit lacking this week. Some of it has just been helping Twelfth stay in a stable mood, some of it work stress. Some of it the stress of running OCC, which is actually more juggling than I've expected! Not in a bad way, and people seem to appreciate the effort.

On that topic, I left it out of the announcement because he seemed to be the most burnt out / no longer interested in associating, but shoutout to all the work Headcrash put into the OCC over the years. Hopefully this is a small enough venue to not be offensive. He was the one running the website before it was on SDF.

Actual-today wise, it's a lot of admin work. I have a it of a forth itch again though I think train may be ambitious for a first c64th project. I'll see what I can come up with otherwise, but I like the environment (when I'm not corrupting it.) It has strings, maybe some basic text adventure? I'm also thinking a little about abstractions to build up on UXN too. I wonder how many libraries are floating around to take inspiration from. I remember from messing with MikeOS back in high school that with some decent libraries even something as gross as x86 asm can be tolerable, much less a cute ISA like UXN.

Okay, creativity hit. It turns out that when I'm allowed to use the c64 without thinking in the back of my mind that I need to be checking IRC and e-mail it's a lot easier. I spent most of the night with Durex Forth on the start to something like trains, but a bit more arcadey. I've discovered that at least on the version I have the return stack functions are bugged though, which is a pain. Bein able to read documentation is another big plus, I ran through a small forth book and many of its exercises as a warmup, I think it helped a lot. Forth is really interesting as a language both in terms of how it works and like, culturally? I can't think of any other languages where the definition of useless words is encouraged. Like, literally an example was If you're working with units (say cm), it may make sense to define words like meters (divides by 100), millimeters (multiplies by 10) and centimeters (which does nothing, for consistency.)

Twelfth also made a delicious pasta salad for dinner, done up with roast peppers, anchovies, garlic, olive oil. We also played a little Digimon, and now we're sitting next to each-other writing posts.

This might be a bit of a viewer question, but it's struck me a little how....bad a lot of commodore games are? I mostly blame the 1 button joystick, but I'm also surprised at the lack of like, deep games. Maybe they just weren't popular? Something which is keyboard based like strategy/tactics games, you know? A lot of what's out there is very arcadey and doesn't take advantage of the computer aspect which we think of as defining a Computer Game as opposed to a Console Game.

Day 4

A sudden change of venue! I decided to go ahead and use the mac that just arrived, for two reasons. One, I decided on the C64 months ago, months before I suddenly found myself doing so much running of the show. When I initially planned on my OCC it wouldn't be a big deal at all because I wouldn't have to update the website, didn't need to manage the mailing list much, didn't handle IRC at all etc. 2 of those 3 have changed. With a single tasking computer there's a lot of context switching needed because people need to reach me via irc or e-mail, and it takes several minutes to jump between the two. Much less what's needed on the creative side. The other part is that I'd kind of solved all of my problems already? When a computer doesn't do much, there's not a ton to go wrong. Whereas right now I'm trying to compile a new clang on MacOS 10.8 because the version whichs shipped with Mountain Lion, for whatever reason, is having trouble detecting one of its own headers. I've been fighting to get a browser working, to get ssl working, all sorts of stuff.

Aside from all the problem things have been fairly smooth, though. I was shocked to learn that pkgsrc still just supports 10.8. I was more shocked to learn that there's a backport of modern firefox to 10.7 and 10.8 called Momiji, though youtube doesn't work. I don't recall if I said why I bought this macbook in the first place: it probably won't be running OSX for terribly long. I'm just tired of having to replace or do really time consuming repairs every few years when the hinge on my Thinkpad inevitably breaks. I'm hoping that a unibody MBP will be a bit sturdier in that respect. It's going to get its first travel session soon: the Philly permacomputing meetup is tonight :)

The permacomputing meetup went really well! I think both Twelfth and I had fun, though the walking was a bit miserable on him.

On the conputing front I continue to descend into madness. I wanted to install uxn to play with the train game a little, but I needed git for that. Eventually I gave up on trying to have git (and got, even,) work and found a tarball. From there I was able to get uxn compiling at least, but along the way I had to install macports so that SDL2 would be in a place that uxn could see it. Is there a clean way to tell MacOS to just use everything from pkgsrc? That'd make my life much easier. Presumably there's some way since I've done it on NetBSD, I just don't know how here.

Day 3

Shockingly busy! I would've thought everyone had their submissions in after yesterday but I've stayed pretty busy. I'm less exhausted today so I'm thinking I'll get something done. Already got laundry out of the way, Twelfthmoon went to a job fair which didn't work out but had some nice info anyway. We're supposed to go shopping tonight for some new sheets.

Is it too early to be thinking of my traditional off-kilter day? My new (in 2012) Macbook arrived yesterday, too late to do anything with before the challenge. I'm thinking that it might be still a little thematic to do somethin with it, since I pretty much always have a side quest on Friday anyway. Running AROS maybe? I should be able to burn a CD through the telnet host, though getting the iso will be another matter. Maybe they have an FTP server, still. I've never gotten networking to work, or much of anything else, so it could be a fun challenge now that I mostly know how to use the C64.

After work I did some work on Train. I'm not so sure about the prototype idea, since I keep wrecking my forth environment. It wouldn't be so bad if it weren't for the fact that every time I do so, it's several minute of reloading from a floppy image. Maybe I'll try the train game in basic, maybe I'll try and come up with some other type-in games. I hink I might just focus on the short story though. We'll see if I'm not too embarrassed to share at the end.

Day 2

This year is both easier and harder than most. Computing-wise this is absolutely the most limited I've done. Maybe if I need to one-up I'll go really crazy and drop down to a VIC-20. I don't want to deal with the hardware for that though. I had a VIC as a kid, it's a neat system but so overshadowed in every way by its big brother with 64k of ram (61k more than the vic, I think?) real graphics (the VIC-1 chip does nothing but text mode,) real sound, etc. For the most part today I just didn't use the computer, which is a lot easier when I'm living with someone. Twelfth did my nails, I did some reading, I did some studyin for work. Maintaining the website is a lot more annoying than I'd anticipated. Honestly I thought most people were going to submit before I had to go old.

So aside from work, what did I actually do today? Well there was a nap in there. Mostly I read and listened to music. My tape collection is super anemic (and tapes are a it hard to collect anyway, they wear down much faster than CDs or records,) so I pretty much blew through it all just getting my nails done. On CD I picked up an Italo Disco compilation and I've listened to that today, plus the NIN album which is kinda eh. I guess by 2017 Trent had already gotten old. That's why you hear him writing soundtracks for Disney now. KMFDM never did me dirty like that.

That was about it as far as OCC stuff. Spent some time on IRC, probably gonna do ht again because it's really the only OCCing I can do during work. I feel guilty if I do real writing there, and coding has some liability worries. Illuminatus is a certified banger by the way; I was planning on going to the library this week but I honestly think I'll be covered.

Before I go, quick thank to Emilio for his e-mail earlier about some typos on the website. Hard for me to spot those :) Some of it is that I type faster than the C64 can telnet, so stuff gets eaten constantly.

Day 1

Not the worst start. I did have the inevitable first day cheat though: all that prep work and I forgot to move the ssh keys to access occ.sdf.org to the box I'm telnetting into. Theoretically I could just telnet into my laptop, but this constrained system felt more reasonable. With that taken care of I was able to list the people who'd messaged overnight to the website, which I hope is going to look okay. With no curses and obviously no native web browsers for the c64 (fun challenge maybe?) I can't see how the site is rendering, even in something like Lynx.

Funnily enough I did think about trying to write a gopher client this week, but I think in assembly that's a bit too big of an ask. The current plan is gonna be plenty. This morning I went to a cafe with Selkie, he fought his macbook while I did sudoku and read the paper. Right now I'm on call so I'm bringing my phone places, but tomorrow mornin that's not leaving home. I don't always carry it with me anyway, not too big of a change.

I mentioned it on IRC, but not here I think (you'll forgive me for not rereading every entry using ed on an actual 80x24 screen,) but we had a hell of an opening party for OCC this year. Twelfthmoon lives with me now, so I had him. Selkie is visiting. Yesterday was, of course, the 250th anniversary of 4th of July, so we kicked off OCC with fireworks, drinking, a storm blasting through throwing trash across the street, it was very dramatic :D . Then we came in and got working on our last second prep, then went live.

I probably won't be at the computer too much overall. I got a little bit of Castlevania in (a surprisingly good port, honestly. If you can get a controller which lets you map up/jump to a button,) later on today we're gonna go record shopping and hang out at a board game store. I recently got a game called Deep Regrets which is neat, though I've only played it once. It's like, an eldritch fishing game where the deep is populated by freaks. A few shades of Darkest Dungeon in there too. That should keep me busy a good chunk of the night. I'm also taking the opportunity to pick up the Illuminatus Trilogy, which has been on my to-read list for literal years but I never get around to. It was that or A Storm of Swords, but I wasn't feeling fantasy so much.

Well, most things accomplished. We went to the record store and I bought 6 new albums since they have a pretty healthy used section. This is about as much of a tradition as I can set in 2 years, since I got some bangers last year as well. The haul actually does include a Rave the Reqviem album I didn't have before, a NIN album I didn't have, then my traditional I have no idea what this is, let's do it fare. After that we hit up Chinatown, ate way too much, and stumbled home in a collective food coma. I also booted up Durex Forth earlier. If y'all don't know, OCC this year has some overlap with catjam, a game jam for concatenative (stack-ey) languages. I plan on my full entry being for UXN, but I figure I might as well try some prototyping on the C64. I did fuck up a little: I only grabbed the cartridge for Durex Forth, apparently the disk comes with some libraries and examples, though the base system isn't bad at all and should be fine for my needs.

The other big theme today was helping Selkie with his OSX Nightmare. The short version is "install the right version of XCode", though finding out which version was right took almost a whole day all things told. Check out his blog for more about it. Sadly he'll be leaving us tomorrow, so no more OCC party house.

Day 0

Oh my god, I was not expecting to spend all of my prep time fighting the linux side of things rather than the c64 one, but here we are. I guess linux without a working vt100 is more rare than you'd think deeply about. The main reason I need this set up is just managing the mailing list, plus obviously updating the website / gopher hole.

The latter wasn't too bad. I was able to install 9pfuse on the linux box and edit files from there. Using Linux itself is. Largely due to the fact that the standard Linux assumption is vt100 control codes, which my c64 terminal software doesn't support. This means no line editing. No curses. No cursor movement. Essentially my only text editor is ed, so learning that is paying off nicely. The next problem is e-mail. The only clients I'm aware of which don't assume a vt100 are those derived from the original unix kenmail, then through BSD mailx. All of these except on are bitrotted: s-nail.

I actually like s-nail a fair bit in concept. I might give it a try for real afterwards as well. My problem has been sending mail. I spent a good, I dunno, 8 hours on it? Normally, for years, I've sent mail through msmtp. I think that was breaking because I had -t. Luckily s-nailx also supports direct smtp. I tried that and was having a lot of trouble there too. Great.

Well, s-nailx is derived from heirloom-mailx, maybe that? Unfortunately, its ssl support is bitrotted. Neither NSS nor OpenSSL would compile cleanly even with some tweaks, I think it might be an issue with musl or something. That's fine though, I can just fetch the mail elsewhere. Well there's no getmail on alpine linux. Fetchmail exists but it needs a local delivery agent. So I went back and tried s-nailx again.

It worked? I wasn't sure what I'd done. I'm pretty sure passing -t was causing problems. But I still couldn't send in interactive mode. It would just freeze after I composed my e-mail. But then I scrubbed through the man page and realized tht I needed to hit ^D to get it to send. Oops. So now I think I'm fully prepped!

I am waiting for one thing in the mail though: my CRT monitor is VGA and my hdmi to vga converter doesn't split audio. So until that arrives I have to live without sound while at my desk until it gets here.

A few more tidbits. In addition to the c64 I plan on using my dumb phone more or less as a landline, not leaving the house with it and such. Music's gonna be cd, tapes, and radio, I plan on (mostly) not playing overly anachronistic games. TG16, NES, fine. I might allow game boy (original) games on my DS, I'm not sure. On the topic of Echoes, you might wonder how I can actually work on that. Well, it turns out that the C64 ultimate has the option to have the emulated printer just output text files tht I can upload later, after the week is over :) I'm also thinking about prototyping my catjam game on here using Durex Forth. It's a match 3 game about a train hump/switch yard. Set up the switches, let the train go, build trains with the right destination. Long term it'll be on uxn/varvara, but I can get more used to forth on here while I'm trapped.

Prelude
Typing this on the C64 now. The rough shape and challenges are thus: 1. 40 column displays break a lot of unix assumptions
Luckily I was able to find a version of ccgms which supports software 80 columns. I had a lot of trouble connecting with it but I think the trick was that I had the baud too high.
2. No curses
I had to find some retro tools. The best I found for mail is s-nailx though it has some weird issue where it's redrawing the line with every character press. I think it's tryin to rewrite the line but ccgms doesn't support that ansi.

But let's back up. What am I doing this year? Well I'm writing on a Commodor 64 Ultimate. I have a problem in that my server runs 9front and I have no way of accessing it from here. So I have a raspberry pi zero w runnin as an intermediary. When I write to the website I telnet to the rpi, then hop from there to the server. That's only for email and web updates though (plus gopher).

The bulk of the challenge should be c64 native. This is where I'll get on IRC. I plan to see some BBSes. The big artifact I want out this year is maybe some type in games? I also installed a word processor, so maybe I'll give Echoes another shot.