Phoenix Bug or Easter Egg?

Last night I had a moment, and it was awesome!

As I was playing Phoenix in my foyer, as I am wont to do after work, and something happened I thought I might have hallucinated from my quarter-stealing days in Baldwin, Long Island happened: as the birds were ascending on the second lap of my second run through the game’s stock 4 stages I shot three or four birds in quick succession and was awarded 200,000 points and a second free guy (I believe I already got the first). It was amazing!

I vaguely remembered this was a possibility, but at the same time thought it may have been some kind of 80s video game lore akin to the 13th level in the “Bishop of Battle” episode of Nightmares. Turns out it is true, and it is even documented in the games’s Wikipedia article as a bug:

When the player shoots three birdlike enemies in a row very quickly as they fly upwards, the total score is set to a value in the vicinity of 204,000 points.[17]

Bug or Easter egg? Either way it marks a new high score for me on Phoenix, blowing away my previous 65,610, which to be fair was still my best game to date. Maybe another screenshot of the new hi score is in order 🙂

How about another for posterity?

I kid. But while I do have a freeplay chip for Phoenix I installed recently, I don’t have a hi-score save kit for Phoenix. That means this score vanished after I turned it off, but thanks to a brilliant KLOV community member in the UK a custom hi-score save kit is being made for my Phoenix as I write this. I hope I can reproduce this “bug” and maybe even get to 300K?! One can still dream after 50, right?

Posted in bavacade, bavarcade | Tagged , , | Leave a comment

Reclaim Hosting and the Space of Possibility

About a week ago Hosting Advice published an article featuring Reclaim Hosting. It was pretty cool given it is the second article Hosting Advice published about Reclaim, the first being back in 2016 when we were just getting our legs. It’s interesting to reflect where we are 5 years later, and one of the biggest, most welcome differences is the visibility and leadership of Lauren Hanks in the recent article. The relevance of Reclaim Hosting is premised on the growth of the folks that work with us, and it that regard I believe we are continuing to grow. The Reclaim is really starting to take shape and I believe by year’s end we will be in a position to start being far more pro-active to the demands of growth and scaling, a process made trickier by our insistence on resisting outside funding and investment.

In this regard, the recent article tells a story of a company working to provide new services, while simultaneously preserving a sense of personal service and attention that made us compelling from the start. Forgetting your community and turning your back on what made you relevant to begin with often goes hand-in-hand with venture capital investment, and we have seen it all too regularly in edtech. At the heart of this, at least for me, is the fact that Reclaim Hosting continues to lead with support and follow-up with a promise that cheap or free, while crucial, is not just a way to get your foot in the door or promote open educational resources, it’s a commitment to a community around providing them the tools and resources to build their own world online outside the online architecture of data extraction that everywhere surrounds us:

“I do think there’s a bigger question to be asked about how far we can go with free before it either catches up to us or we’re selling more than just student data, and we’re giving away the farm,” Jim said. “When you’re a hosting company, what’s your responsibility to the sacredness of that data?”

This is Reclaim’s perspective on data monetization — something Jim said he is very proud of.

“We try and keep as much of that outside of the relationship,” he said. “They pay for a service, and that’s what they get. And there’s no additional extraction of information.”

It’s a privilege and an honor to continue to provide a service to the educational community that I’m proud of. It gets me up in the morning and puts a smile on my face. There is no casuistry needed when explaining this: we provide a space of possibility for faculty, students, and staff to build a better web.

Posted in reclaim | Tagged | Leave a comment

50

It seems like just yesterday I was blabbing about turning 48, but so it goes in blog years. I’ve used this space to track time over the last 16 years or so, and it truly does feel like my site of record. I’ve watched a bunch of folks I grew up with celebrating this landmark passage into old age on Facebook and it seems deeply depressing to me, it’s like having your 50th birthday party at Chuck E. Cheese.

Nothing beats the blog, it’s a space where I’m not afraid to admit this was a weird one for me. I’ve spent much of my 40s trying to recover both physically and financially from my 20s and 30s. My 40s ruled, in large part because the scales dropped from my eyes when it came to institutional servitude: I started Reclaim Hosting, left UMW, moved to Italy, spent much more time with my family, and even got into collecting arcade games.

I also came to terms with the fact I don’t have world enough and time and I need to start thinking beyond my EDUPUNK guns. Being sober for almost all of this time helped tremendously, and accepting my manic depression and learning to live with it made me a better husband, father, colleague, and, hopefully, mentor. You’re never cured of your brain, and those of us who regularly struggle to trust it might even become stronger for it. It’s kinda like Venom, you learn to live with, and maybe even control, the alien invader within.

In that sense, the passing of time has been a godsend for accepting my real hard limits as a person and doubling down on what I enjoy (and might even be decent at). But time looms, and while 50 is symbolic and it’s only a number and all that new age shit, I was young once and I know 50 isn’t that. In fact, we live in a delusional moment where we believe enough mountain climbing and dog walking can counter-act our fate, but I know the cold, hard reality is still out there and it tolls for me! I’m honestly not sure what this next set of numbers will bring my way, hence the idea of this being a weird one, but I do hope the personal and professional work I put in over the last decade makes whatever comes my way that much more manageable, or even enjoyable!

50 fucking years old, old man bava and the blog 🙂

Posted in bavatuesdays, blogging | Tagged | 43 Comments

Catching Up with the Joy of ds106

It’s been a while since I posted about this semester’s Bob Ross-inspired instantiation of ds106, but, like Luther, I’ve been busy!

Looks like the last weekly video I posted was over a month ago for week 3, so below are the weekly intros from week 4 through week 8 that Paul Bond and I have been producing for the class. I think we have this week off for Fall break, so a good time to catch up. While definitely not high art, I do enjoy doing this 7-8 minute intros weekly. I get to see and breifly comment on student work, produce Paul’s weekly missives, and also play the ornery public access TV produce. That is retirement in a nutshell 🙂

The Joy of ds106: Week 4

The Joy of ds106: Week 5

The Joy of ds106: Week 6

The Joy of ds106: Weeks 7 & 8

I nice element of the last two videos is that with streaming built into Peertube I can simply stream our session from there and an archive lives on at the URL that Paul can then share with the course. It is readily apparent the Paul scripts his stuff and I just parachute in, setup OBS Ninja, and do the recording—but the nice piece is it makes it easy and we can get the whole thing done in 20 minutes tops each week. If you can’t make art, at least make it easy, dammit 🙂

Posted in digital storytelling | Tagged , | Leave a comment

Reclaim Arcade: Cap Kit for a K4900

Last week Tim and I did some Reclaim Arcade repairs, this time replacing the capacitors (often referred to as a cap kit) for the monitor chassis of a Wells Gardner K4900. I wanted to see Tim do a full cap kit given I’m going to do a G07 cap kit here soon. I am particularly attuned to some of his tricks, like reading negative/positive for capacitors, marking all replaced capacitors with a blue Sharpee, reading fully through instructions in cap kit before hand, etc.

I’m also pretty happy with this recording. We had some connection issues in the back office using Reclaim Arcade’s internet in previous videos, so for this one Tim ran the connection off the phone. It was solid, and we also decided to use obs.ninja for the camera on the workbench so any connection issues with the robot would not effect the work camera capturing the majority of the action and audio. The Robot was for establishing shot and for Tim and I chatting “face-to-face.”

One note on the recording of this video is that it was streamed using the live stream feature of Peertube through bava.tv. Which means it also captured everything and immediately publishes it once the stream ends for posterity, which is really nice.

We did not have the ability to test the chassis during this video because of time constraints. Although we did capture the test of this cap kit in the above video. Turns out the chassis was still not working given there was video collapse, and as we discovered during the cap kit the chassis was literally cracked at a key spot, and is probably destined for parting out for our other K4900 chassis. While a bit of a bummer, every project is crucial for learning how to repair these old games given it is an ongoing labor of love.

Posted in Reclaim Arcade | Tagged , , | Leave a comment

Peertube’s Live Streaming Option

I have been working on a side project that will be using Peertube and as a result realized after installing the latest version that this awesome open source software now includes live streaming. I’ve been playing around a bit with live streaming apps like Owncast recently, so this was pretty exciting. I tried live streaming a VHS tape I was archiving, and was blown away by the minimal buffering. The stream was solid!

In fact, I tried another version of the same VHS archive with some audio filters on the incoming signal and got a solid archive for posterity:

A nice part of this setup is you can choose between streaming to a unique URL that archives the video at the same namespace for posterity or you can have a consistent URL (what they call permanent live) dedicated to streaming from a single URL for an ongoing event that you can stream to multiple times from different sources. So the fact it has the option between one and done archiving and permanent live stream boiled-in is quite nice.

Live Settings for Peertube’s live streaming option released with version 3.0

As of now there is no live chat as part of a stream in Peertube, which is a deal breaker for many who want a Youtube or Twitch alternative. But have no fear because this is open source software and someone is developing a livechat plugin for Peertube. I will be playing with that later this week, so I’ll definitely share what I learn. Below is a quick overview I recorded of Peertube’s live stream if you are interested in seeing more.

When I realized this functionality was available I knew I had to upgrade bava.tv to the latest version of Peertube. I was apprehensive because I haven’t had much luck upgrading Docker containers, but luckily the upgrade instructions were clear and worked beautifully. One of the things I realized is that the latest version of Peertube is using Nginx for the  reverse-proxy as opposed to Traefik (which my install was using). This led to an issue opening up port 1935 for the stream, but luckily the great Chris Blankenship bailed me out after I asked for help in Reclaim’s community forums. So, I am running bava.tv on Peertube 3.0 with traefik as the reverse-proxy and everything is working well, which is awesome!

Posted in bava.tv, Reclaim Cloud, Streaming | Tagged , , , | 4 Comments

Phoenix Freeplay and Scramble High Score Save Kit

This week I mustered up the courage to try replacing chips on game boards and soldering sockets. This was fairly new territory for me, but I’ve been watching Tim work (as well as many Youtube videos) and taking notes, so it was time to take the leap. I started small and easy with simply replacing a couple of ROMs on my Phoenix PCB game board to add the freeplay functionality thanks to Jeff’s Romhack.

ROM 48 replacement

ROM 48 replacement on Phoenix PCB

I have to admit this was fairly easy, I just had to carefully remove two socketed ROMs numbered 45 and 48, and then be sure to replace them with the modified ROMs making sure the notch was aligned the right way.

Align notches of replacement chips to ensure they are all facing the same way

One of the things you figure out (which is useful info) is these chips are stronger than you think, and they can take a bit of push and pull. That said, the fear of breaking off a leg is real. I did have to pull chip 48 back out gain given one of the legs did not align, but other than that it was quite painless given there was no soldering required, just pull out the old chips and insert the new ones.

ROM 45 replacement on Phoenix PCB

ROM 45 replacement on Phoenix PCB

So with the Phoenix free play ROMs in, I was ready to return to the last bit for my Scramble restore, namely installing the high score save kit with free play I ordered this summer. This should have been simple like the Phoenix ROMs swap, but the snag with this one was the 40-pin Z80 processor on the Scramble board was soldered in and I couldn’t simply pop it out. I needed to desolder it, and then solder in a socket that the high score save kit could plug into. Trick was I needed to make sure the Z80 chip came out cleanly cause that was going to be seated in the mod chip set for the high score save kit.

My first desoldering and re-soldering job on a 40-pin Z80 socket. Not pretty, but it worked.

So I was a bit nervous, but I decided to bite the bullet yesterday and desolder the pins for the Z80 processor, which was a royal pain in the ass. It wouldn’t come out cleanly, and I was afraid to break it with too much force. I must have desoldered the pins five times. Eventually I got the chip out relatively clean and was able to solder in the socket:

Soldered 40-pin socket, you can see the signs of me trying to remove the z80 chip on the board 🙂

It felt pretty good to get this far, but now I had to seat the Z80 chip into the high score save kit, and then plug that into the socket:

Scramble High Score Save Kit Z80 chip plugged into mod kit

So the Z80 went in cleanly, and you can see on the other side of the high score save kit there is a 40 pin that sits in the socket I soldered:

Underside of high score save kit

With all that done, I was now ready to test the board. Moment of truth, and on the first go I got garbage on the monitor, and amongst the scrambled graphics I saw the term PLOOOP. I thought that might help with a search for a fix, but I got nothing. So I went back over the pins I soldered and turns out I missed one (I could tell because it was loose), so I re-soldered it and tried again. Not feeling all that optimistic I re-connected the PCB and BAM—the high score save kit was working!

Freeplay working in Scramble

High Scores saving in Scramble

This may have been the most rewarding arcade project yet, simply because I never thought it would work. If you would have told me I’d be desoldering and re-soldering 40-year old arcade circuit boards I would have laughed. But if you will it, it is no dream!

Posted in bavarcade, video games | Tagged , , | 1 Comment

The Sisyphean Labor of Link Love

I woke up this morning to a Twitter exchange between Alan Levine and Ken Bauer about creating a plugin that points dead links on a blog to the Internet Archive’s Wayback Machine:

I do believe my career as a plugin developer is under-rated, never built a bad one 🙂 That said, I did dabble with the plugin Amber, as Tim reminded me, for archiving links both on my site as well as on the Internet Archive, but it was a lot of database overhead and was seemingly inconsistent on WordPress Multisite—so it fell by the wayside.

I’m sure Alan will blog the wonders of how he is augmenting the WordPress Broken Link Checker plugin to point folks at the Internet Archive and I, for one, would immediately install any fork he created. Alan blogged an early example of this plugin modification on his Secret Revolution blog, which in turn linked to this blog post on the bava that then sent me down a rabbit hole of link rot maintenance—a task that will never end until I die, but is oddly comforting in the meantime.

Turns out the article Brian Lamb and I published with the Open University of Catalonia in 2009, “The un-education of a technologist,” was no longer available resulting in a dead link. No problem, I thought, we created a site for the article with all the content at http://unartist.wpmued.org, but when I went there this morning it was throwing a cPanel error. Oh noes!

My Advancing Web Years: Issues with Trading my WPMS Mansion for a Florida Condo

I immediately knew what the issue was, I had started dismantling my WordPress Multisite instance (http://wpmued.org) several years ago to pull out bavatuesdays, my personal site jimgroom.net, and a few others, but forgot this one. I still had the database and all the files, so I pulled it out of the multisite and stood it up again, and will probably site sucker it up into straight HTML for the most reliable long-term archive. And that, dear reader, is the Sisyphean labor of maintaining the integrity of your blog over the long haul. It’s work I deeply enjoy, but can understand it being overhead for many. So making it easier and better is important and I’m glad Alan is always mindful of the long history of the web we inhabit.

Digital Structures: Institutions Abandon / Individuals Preserve

The detour this morning also made me aware that one of my favorite ds106 videos from back in the day, “News on the March,” I’d linked to in that post from 2015 was now private. I had asked the student on several occasions to make it public again, and he always obliges but that can get annoying. So I finally uploaded my version to bava.tv, and embedded that across my blog so it is available apart from Youtube, which makes me very happy.

While searching for that video I noticed that many videos I had linked to for ds106 were no longer working because Youtube had changed their link/iframe structure, so I had a ton of dead links I needed to update, so I then started work on that, and will soon do a database find and replace. Which reminded me how happy I am to have my own little Youtube clone through Peertube that allows me to store and archive all the videos I watch and create. It’s been a game-changer for me, and I quickly archived those ds106 videos on my Peertube instance cause you can never have enough copies.

In fact, as much as I love the Internet Archive, and I do, I like even better the idea we each have some kind of spider tool for the links on our site, like the Amber plugin mentioned earlier, so that there are copies and backups beyond the Internet Archive. Depending too much on one site may prove problematic in the long run, or just unevenly distributed in terms of what you did or didn’t want as part of your personal archive.

Posted in Archiving, digital storytelling, Instructional Technology | Tagged , , , , , , , | 4 Comments

Installing Owncast on Reclaim Cloud

I am starting to turn my streaming, recording setup to good use, like demonstrating how to get the open source, self-hosted Owncast up and running in Reclaim Cloud. Below is the text guide to accompany the video.

Once you login to Reclaim Cloud you will need to create a New Environment:

Image of Reclaim Cloud Dashboard

Reclaim Cloud Dashboard

Once you click Add New Environment, you will select the Docker tab, rename the environment to something more friendly, and then select the Docker image. You can also choose the data center region from this screen:

Image of Docker tab with various elements for building your owncast Docker image

Docker tab with various elements for building your Owncast Docker image

When you click on Select Image you will be brought to the following screen, and you should search owncast and select the official image which is gabekangas/owncast:

Image of screen where you would select the gabekangas/owncast Docker image

Select the gabekangas/owncast Docker image

Once you have selected the image you should see a blue check mark and can then click next.

Image of selecting the 1.18.0 version of the Nginx load balancer

Create Nginx load balancer

The next step is creating a Nginx load balancer for this environment. This will enable you to issue an SSL certificate for Owncast. Use the latest version of Nginx and be sure to turn on the Public IP option:

Image reminding folks to turn on the public IP option for the Nginx load balancer

Turn on the public IP option for the Nginx load balancer

At this point you can click the Create button and the environment will start spinning up:

Image of Owncast environment spinning up in Reclaim Cloud

Create your environment

Once the environment is created you can see the two containers you have within it. The Nginx Load Balancer, that has the environment’s public IP address, and the Owncast container:

Image of the two containers within the owncast environment

The two containers within the Owncast environment

Notice the public IP address, you will be needing to copy this in order to map a domain to the Load Balancer. I mapped demo.bava.tv to this IP address using an A record:

Image of Mapping a domain to the Load Balancer public IP

Mapping a domain to the Load Balancer public IP

After that we want to issue a let’s Encrypt certificate for that domain. You can do this by click on the Addons button next to the Nginx Load Balancer container:

Image of Add-ons button in Nginx container

Add-ons button in Nginx container

After that you will see several Add-ons for the Load Balancer, you want the Let’s Encrypt option:

Several addons for container

Now you can Install Let’s Encrypt specifying the domain you want to map on the container, for my example demo.bava.tv:

Image of Let's Encrypt screen

Install Let’s Encrypt certificate using the addon domain you creating

After that, the SSL certificate should install. The final step in Reclaim Cloud is going to the Settings area of the environment and adding an Endpoint so that the Load Balancer can can communicate with with the RTMP port 1935 in the Owncast container which is where the livestream is served:

Once you are in settings choose Endpoints and Add a new Endpoint for the Owncast container, in this instance Node ID: 8347 (every container in Reclaim Cloud has a Node ID):

Then specify the name (RTMP_, the port (1935), and the Protocol (TCP) and click Add:

After that Reclaim Cloud will create the public port and URL for you to use for your streaming URL:

The public URL will look something like the following

node8347-owncast.ca.reclaim.cloud:11015

And for that to work in Owncast it will need to add the https:// at the beginning and /live/ to the end, which will give you this:

https://node8347-owncast.ca.reclaim.cloud:11015/live/

Rather than the default Stream URL Owncast gives you, this will be the URL you add to applications like OBS, Streamyard, etc.

Image of Owncast up and running

A secure Owncast Installation is the endgame!

Finally, we should now be up and running with Owncast at https://demo.bava.tv, and the login for Owncast will be your domain /admin. For my example, demo.bava.tv/admin should be the login and the default password for Owncast is always abc123. The password is also the stream key, so be sure to change that immediately. Finally, the default Stream URL will show up as https://demo.bava.tv:1935/live/ but on Reclaim Cloud you will be using the Endpoint you created, which for my example is https://node8347-owncast.ca.reclaim.cloud:11015/live/

Happy streaming!

Posted in Reclaim Cloud | Tagged , , | 1 Comment

Some Welcome Love for the LAMP Stack

I really enjoyed Ernie Smith’s article “I Love Lamp” over on his Tedium.co blog, big thanks to David LaCroix for the link. He provides a succinct and fascinating history into the rise of the killer stack that has reigned for over 20 years. There has been a lot of talk about the New Hack Stack, and I’ve been fascinated with those developments for the last decade and what they could mean for Reclaim Hosting. But at the end of the day, LAMP is still very much the workhorse behind the modern web. And if you’re like WTF is LAMP, it’s the suite of open source technologies Linux, Apache, MySQL, and PHP that were combined to build the web servers that still power much of the web.

The article helped fill in a few gaps of my understanding of the rise of this stack, in particular the fact that the creators of MySQL went to O’Reilly in order to popularize the idea that LAMP was actually a thing.

The terminology dates to around 2000 or 2001, with David Axmark and Monty Widenius, two of the cofounders of the relational database MySQL, credited for making the initial connection between the various parts into a combined service that could be sold to developers as an open-source framework. After the developers met with staffers at the publishing firm O’Reilly Media, the firm—which specializes in technical learning manuals that target programmers and IT departments—had embraced the term, evangelizing what it meant to the broader digital community.

It’s interesting to me how the rise of a technology is accompanied by a linguistic sense making through a term or acronym that stands in for a more complex idea—think MOOC or Docker more recently. The power of naming and metaphor plays an often under appreciated role in the adoption of technologies, and just a few years after popularizing LAMP O’Reilly would bring us Web 2.0 (much of which was built on the LAMP stack).  And say what you will about the term Web 2.0, it was a key term in many of us grok the cultural moment of the web during the mid 2000s. In fact, the following quote from the “I Love LAMP” article really hits home for 2004/2005 me:

For years, LAMP stacks had natural advantages for end users, as their ubiquity allowed for the rise of web hosts that could offer cheap processing and storage for PHP-based services, meaning you could have a working interactive website for maybe $5 a month or less, depending on the size of the app and its use case.

That was democratizing—and allowed bedroom experimenters and large corporations alike to try new things online, outside of a walled garden. For the average consumer, the types of tools that won out allowed them to create polished presences for their businesses or creative work with a relatively limited amount of fuss.

This emerging reality in the early 2000s was something Zach Davis at CUNY was tuned into and he got me started down the path of cPanel LAMP hosting in 2003 or 2004. A pastime that soon became a career opportunity when I saw the work UMW was doing under Gardner Campbell in 2005. It was remarkable! This was a university ed tech shop willing to venture outside the controlled spaces of the learning management system to allow “bedroom experimenters” like myself and the rest of the DTLT team to play. What’s more, it was eminently affordable; I think my first Bluehost account at UMW was something like $100 per year with a free domain. This was not a big investment in the technology per se, but rather a realigning of the value of people in communicating the cultural shift that was happening on the web at that moment. Faith in a seed, and a Reverend will bloom. Looking back, I think it was definitely a time and a place thing: being an educational technologist focusing on the power of an open source driven web in higher ed was simply the best job one could have in 2005. And UMW was ground zero for awesome in that regard.

But I digress, another thing that resonates in this article is the the longevity of this technology stack. I have been writing about a post-LAMP environment for Reclaim Hosting for at least 7 years,  and while the next-generation of applications are here, getting them up and running easily and affordably is another thing. Just recently I have been playing with Owncast, an open source streaming software, and I could spin it up in 3 seconds using a Docker container on Reclaim Cloud, but getting a reverse proxy for the SSL certificate led me down a rabbit hole. But in cPanel DNS, SSL, and one-click installers are integrated in such a way that the LAMP environment is seamless. Hosting companies like Digital Ocean are closer than anyone at providing a similar experience for the new generation of applications written in Ruby, Node,ja, Go, Java, etc., but the same level of ease and fluidity you find in a LAMP environment that keeps most folks out of the command line is not there yet.

This article was really encouraging to me because when you help someone get up and running with a LAMP environment you are really giving them access to many of the tools that not only shaped but still drive the modern web we inhabit. This was a welcome reminder that faith in a seed approach to the educational web is still as valuable as it was 16 years ago.

Posted in experimenting, Instructional Technology | Tagged , , , | 2 Comments