The Joy of ds106: Week 3

Paul and I continue to churn out the cheesy Joy of ds106 weekly videos, and I have to say they’re a blast. No only do they take very little time and exude an air of sub-par quality, but they’re also fun as hell to record. Today was the first time we did a second take because I botched the first one so bad, and I think the whole process takes 7-8 minutes with zero editing. Once we’re done I upload it to bava.tv for Paul to download and do what it is he does.

We are starting to include more media and I still have to figure out a fun intro that is almost like a 1970s/1980s sitcom opening, think Three’s Company:

Anyway, my avocation as an ornery TV producer is becoming a reality! Who knows, I may even be the over worked manager of a public access, web-based TV station one of these days, a bava can dream!

Posted in digital storytelling | Tagged , | 1 Comment

Playing with Community Edition of Ant Media Server

This morning I played with the Community Edition of the Ant Media using Digital Ocean’s Marketplace image for this media streaming software.

Digital Ocean’s success emails provide guide and advice to get folks up and running with their app of choice.

I ran it on an AMD 8 GB droplet with 250 GB block storage, but after some testing the stream was fairly latent. Not sure if this is because it’s a free version of the software or if I need a CPU-intensive Droplet, but going to move it to Reclaim Cloud shortly to see if I can increase resources to deal with latency issues.

One of the key things learned while playing around today was that I needed to setup SSL on the Ant Media server in order to get the iframe for the stream to work. I realized this as a result of the stream returning an invalid response from the iframe.

How to Enable SSL Certificate for Your Ant Media Server with 1 Command?

Luckily, this Stackoverflow thread led me to the solution and after following the steps in this useful guide I was able to embed the iframe Ant Media without issue within a simple html page at stream.bava.tv.

I’ll be continuing to play with Ant Media, and create a proper guide for installing on Reclaim Cloud, as well as figure out a one-click installer. A Stream of Your Own is just a click away 🙂

Posted in bava.tv | Tagged , , , | 2 Comments

Some Notes on Migrations

This post will be as much about thinking through account migrations for Reclaim Hosting, as trying to capture some of the technical aspects of moving sites to Reclaim Cloud. In fact, it promises to be all over the place, but that is the prerogative of this blog and that’s why I love it so.

Migrations: the act of moving people’s shit from one server to another.

The vernacular for what I am talking about here when saying migrations, not pretty but true.

Domains migrations: This can be a very straightforward process, for example when we have someone on one of our school cPanel accounts that wants to move to our shared hosting. CPanel has a transfer tool baked in and we can move accounts between servers within seconds (assuming they are under 10 GBs or so), and after that just make sure all the details in our client management software WHMCS are aligned and we are good to go. What’s more, migrations like this are easy enough that there is no charge for anyone migrating from a Domain of One’s Own school to our shared hosting.

Third-party free site migrations: There are too many of these to list, but a few popular ones are WordPress.com, Wix, Weebly, and Squarespace. Interestingly enough the only one of these listed with anything resembling a migration option is WordPress.com. You can export and import the posts, pages, media, and author data, but you have to re-build the site design with appropriate themes and plugins. All the other services would be a straight-up copy and paste of page content which should tell you everything you need to know. No HTML files to download, no easily accessible media, no database … nothing. Say what you will about WordPress, but at least it’s an ethos.  WordPress.com migrations are fairly straightforward, you just need to prepare folks that some plugins and themes on wordpress.com may not be readily available for free outside that space (I still hate the plugin and theme marketplace and always will). These migrations usually cost $25.

Everything else: Pretty much everything after those two categories is a crap shoot. We have done a fair amount of migrations from just about every host imaginable: Bluehost, Host Gator, Godaddy, Dreamhost, Webfaction, 1and1, etc. And while a few of these use cPanel (Bluehost, Host Gator and sometimes Godaddy) they’re by no means similar. It’s next to impossible to get a full backup from Bluehost without an upsell, Godaddy’s interface is as confusing as they come, and good luck making it through the advertisements in Host Gator. What’s more, if you live and die by the command line (which I don’t but should) getting SSH access is often another level of hell. Services like Webfaction (soon to be gone) and Dreamhost are better in that regard, but given they run their own hosting software there is no straightforward migration path, so the migrations are often manual, and if you have an account with 5-10 sites, that is 5-10x the work as one cPanel migration, which wraps everything up into one neat package.

So, long story short, these migrations are by definition more time intensive and as a result expensive. As a rule of thumb we charge $25 per site migrated in these cases, but as we have learned some of these services allow folks to run beefy sites on their shared hosting services, which is not something we can afford to do. For example, we limit our accounts to no more than 100GB of storage for a shared hosting account, and no more than 1 GB or total server resources. For some sites that want to come over to our shared hosting these limitations will be a hard stop given the amount of storage and CPU resources needed, so that raises two crucial questions before a migration like these even starts: 1) how much data?, 2) how many resources? A few others is what PHP versions they are running and whether or not they are running the latest version of the application (issues with folks needing to run older apps on older versions of PHP is always a red flag).

I’m sure there are other variations, but for sake of memory and dragging this post out I’ll leave it to these three categories, and taking the last as an example of how a site previously run on webfaction‘s shared hosting needing to be migrated to Reclaim Cloud. The site in question had 170 GB of data, a 2 GB database, and was running Drupal 7 on PHP 5.6. The storage was an immediate flag for our shared hosting, and while previously we would point folks to managed hosting (which can run as much as $400 per month), Reclaim Cloud offers a much more affordable, albeit unmanaged, option. Storage is quite cheap at .08¢ per GB per month, or less than $1 per 10GB per month. Also, for large sites with regular traffic and a long history Reclaim Cloud provides dedicated resources wherein you can reserve up to 2 GB of CPU but allow your instance to expand to 4 GB or more if need be, while only paying for those resources if and when needed.

On the Cloud we are able to install a container-based full-stack LiteSpeed server, also known as LLSMP, that is optimized for a PHP app running LiteSpeed (a drop-in replacement for Apache) that also gives the user root access to only that container. So, the client gets more storage, more resources, root access, and an overall more secure experience for roughly $50 per month (this is based on using 10 cloudlets, 150GB of storage, a dedicated IP address, and the LiteSpeed license). What’s more, you have the option to scale instantly should that be of concern.*

So that’s the argument for the Cloud in this case, and it really is a good solution when it comes to speed and experience, and the reason I even took on this migration was it would force me to get more familiar with Reclaim Cloud, in particular creating a LLSMP environment and importing a large Drupal instance. As I predicted, these migrations are never simple, and one of the trickiest pieces beyond understanding what environment you are coming from and where it is going to, is making sure the DNS points from one server to the other cleanly, more tears have been shed over DNS in the previous 8 years than I care to acknowledge in this post.

That said, here comes the notes part of this post because I’ve learned a few things here that I will be referencing in the future, cue blog as outboard brain.

LLSMP was dead simple to setup on Reclaim Cloud, I installed 6.0.2 and ran PHP 7.3.27 and once that was done I was able to login via the web-based SSH and start migrating the files to /var/www/webroot/ROOT

I ultimately had to enable root access on the container and thankfully Webfaction provides SSH access to their server, so most of this migration was done using command thanks to the rsync command, which is amazing. Logged into the Reclaim Cloud I ran the following command to sync files from webfaction:

rsync  -avzh [email protected]:/home/user/webapps/app /var/www/webroot/ROOT

Thanks worked cleanly, then I needed to grab a dump of the database on Webfaction, which this worked for:

mysqldump -u db_username -p db_name > database.sql

After that I rsynced it to the Reclaim Cloud instance

rsync  -avzh [email protected]:/home/user/database.sql /var/www/webroot/

After that I had to create the database user, datamase, and create privileges via command line, cause I am kind of a big deal. Well, I thought I was until I hit my first snag:

ERROR 1045 (28000): Access denied for user 'user_db'@'127.0.0.1' (using password: YES)

This is where I reached out to help from my Reclaim Hosting colleagues, and the always awesome Chris Blankenship bailed me out with some detailed instructions on how to fix this in Reclaim Cloud:

MySQL actually sees db_user@localhost and [email protected] as two separate accounts, which can cause problems. cPanel handles this automatically by creating both for all db users, but you’ll have to manually create both in Jelastic containers; so like this:

CREATE USER 'db_user'@'localhost' IDENTIFIED BY 'securepassword';
GRANT ALL PRIVILEGES ON db_name .* TO 'db_user'@'localhost';
CREATE USER 'db_user'@'127.0.0.1' IDENTIFIED BY 'securepassword';
GRANT ALL PRIVILEGES ON db_name .* TO 'db_user'@'127.0.0.1';

To make it simple usually add skip-grant-tables under the mysqld section of /etc/my.cnf, restart mysql (systemctl restart mysql), log in as root without the password. From there I run this:
FLUSH PRIVILEGES;

Followed by those commands above. Then I comment out, skip-grant-tables under  the mysqld section of /etc/my.cnf, restart mysql (systemctl restart mysql) again.

Once I figured out the permissions i was able to import the database.sql file using the following command from the /var/www/webroot/ directory:

mysql -u db_user -p db_name < database.sql

Once that imported I did a final rsync of files using the following command, with the -u flag to skip files that are newer on the destination.

rsync -avzhu [email protected]:/home/user/webapps/app /var/www/webroot/ROOT

There was also the bit where Chris updated ‘localhost’ to ‘127.0.0.1’ in the settings.php file for the Drupal instance given Reclaim Cloud is particular.

So those are very specific notes for this migration of a larger PHP application to a Reclaim Cloud instance, what’s more I had to do it again a week later given this was just to test the instance before moving the production site (this is where rsync is very useful, although the SQL dump had to be re-done though). As you can tell by now, this is not a $25 migration, this requires spinning up a server, syncing files between servers, and providing a testing environment. Luckily Reclaim Cloud environments automatically have a test unique URL that the mapped domain overwrites (namely something like site.uk.reclaim.cloud as opposed to site.com) that makes testing the environment easy before pointing DNS, which was quite convenient—even better than pointing localhost files.

Anyway, this is a long post about migrations and Reclaim Cloud, as much a series of notes as a way of narrating what I hope will be a deeper dive into the possibilities of Reclaim Cloud over the next 12 months or so given i have been freed up from other responsibilities, but more on that in my next post.
__________________________________________

*The hard part of the Cloud to wrap your head around is the variable pricing, I know it does remain fairly consistent from personal experience, but need for predictability is what Digital Ocean understood and has seemed to figure out, which I admire.

Posted in reclaim, Reclaim Cloud | Tagged , , | Leave a comment

ds106: The Waves of Creativity

I’m starting to feel the ds106 creativity rise and hopefully crest here soon, and it feels good. Getting back into the groove is everything, and I figured it was time for a long overdue Daily Create to prime the pump. Today’s TDC features a wild project called Mystic Symbolic Art wherein you use the site to create a design by controlling various elements such as color palette, design complexity, gradient, etc. I got to exploring and found the Waves creator, and that was brilliant because it was as much math and physics as it was design fun. I played with velocity, axes, and cycles for a bit, and after doing so decided to screencast my playing around and setting it to the music of waves thanks to this YouTube videos featuring 8 hours of wave music to put you to sleep. I still love the internet 🙂

Update: On a lark I grabbed 12 seconds of video of my final product and used the IMGUR Video to GIF tool to create what might be one of my most perfect GIFs yet!

https://imgur.com/yEFNh1V

Posted in digital storytelling | Tagged , , | Leave a comment

The Joy of ds106, Week 2


Paul Bond and I are starting to get into the flow of The Joy of ds106 and students are posting! We did a rush job on Week 2’s intro video, but I like that we are keeping it focused and a very manageable 7 minutes or so. Right now it is all about on-boarding the students, and we’re not in the heart of the class, which is all about featuring and championing the work happening by students in the course. When that starts to happen, as it always does, we can spend more time discussing their creations—which is the true joy of ds106.

I do love the new intro music Paul incoporated, and the next project will be finding a video template to introduce featured guests/artists when we highlight student work. We want them (or their personas) to be front and center in these weekly broadcasts, and Paul and I chatted about that briefly after recording this one in order to spice things up and encourage engagement. So, next up is working on some kind of groovy show intro/credit sequence. #4life

Posted in digital storytelling | Tagged , , | 1 Comment

Docking the New Reclaim Robot

We got an updated version of the Double Robotics robot, Double 3, and I spent a bunch of time playing with it this afternoon in Reclaim Arcade. The previous Reclaim the Robot had taken one too many knocks on the head as a result of my terrible driving, but luckily the Double 3 can self-drive to avoid obstacles as well dock itself. on the charger with some augmented reality, as the following video demonstrates!

I’ll be streaming my Reclaim the Robot antics more regularly in the future, and very much looking forward to the next generation of robot presence in the arcade.

Posted in Reclaim Arcade | Tagged , | Leave a comment

Reclaim Arcade Repairs: Like and Subscribe!

With some headspace slowly freeing up between running Reclaim Hosting and Reclaim Arcade, Tim and I have been getting back to some of the joy of Reclaim. As it often begins, Tim got a couple of toys to help me see the repairs he is doing in the various cabinets more clearly. This included some cool camera stands that can attach to the cabinets for some more detailed views. In fact, the following screenshots were from our experimenting with how this might work with BurgerTime, which we had to swap out the inline power supply with a switching power supply—a common fix for these games.

You also can see this in action in this screenshot where Tim is reading a mutlimeter, and I can see that quite clearly:

And soon after Tim fixed the Burgertime cocktail he made the first Reclaim Arcade fix-it video about an issue with our Frogger. It was awesome to wake-up and watch a video capturing the fix.

I’ve been feeling the video bug for a bit now, and the idea of recording fixes of these machines is not only useful for us, but most likely for others out there that are trying to wrap their head around these machines. It’s a brilliant way to share what we are doing at Reclaim Arcade, and I’m fired up Tim has made the idea a reality in roughly 24 hours, so like and subscribe for more 🙂

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

Producing The Joy of ds106

I’m officially back in the ds106 saddle as a producer for the ds106.tv public access station. I think the last time I had any significant presence in a ds106 class was 2015 or so, so this feels good, especially in the wake of the 10.6 year anniversary of this craziness. Paul Bond and I work quite well together, and part of that is he’s not only always prepared but pretty mellow about whatever happens after that. Paul framed the course around the theme of Bob Ross‘s “The Joy of Painting,” and after ghosting him for a couple of weeks given I can be a flake, we met earlier this week to hash out how this might work. We quickly decided to frame it as a low-budget public television that I was helping to produce. With me as the annoying producer who interrupted regularly and Paul as the ray of sunshine imparting knowledge and encouragement to the students, how could we go wrong?

We hashed out a make-shift script yesterday and today and then recorded this morning. It’s rough, but the running gag is the producer telling the artist they need to up their game when it comes to production value. Where is the musical intro? How about a video bumper? Any graphics? The idea being that would all come over time as we learn and build on top of the canvas that is ds106, ideally with the students providing the art!

It’s fun to be back in the land of ds106 more fully because it allows for further honing of the OBS skills. On that note, obs.ninja is an absolute godsend for producing shows like this when the hosts are both remote. There is much joy in ds106, and this blog will be chronicling that story over the next few months. Lock it in!

Posted in digital storytelling | Tagged , | 1 Comment

Love Games at Reclaim Arcade

Tim shared a music video that was recorded at Reclaim Arcade this Spring from the artist Devsoul X VIVA MONSTA with a song titled “Love Games.” It is pretty awesome to see the artists playing Pitfall in the living room and then dance and grinding in a room full of old school arcade cabinets. I am all about the Love Games!

I loved seeing the Star Castle marquee highlighted so prominently, as well as Crystal Castles, both gorgeous cabinets from the amazing DNS Games! The shots with the Reclaim Arcade logo and the LED strips are quite impressive too. Pretty awesome to see the space from their perspective, and kudos to them for renting out the arcade bringing in some smoke machines, and making some art, dammit!

Posted in Reclaim Arcade | Tagged | 2 Comments

A Couple of High Scores for Gyruss and Phoenix

I’ve been trying to deal with ongoing separation anxiety from the magic that is Reclaim Arcade by building a mini-replica here in my basement in Trento. I currently have 10 machines, and hopefully by late Fall it will be twice that. After that I’ll probably have to get a warehouse and workshop which I’m not ruling out in my current state of arcade mania 🙂

But right now I have but one mission besides minting out all the games here in Italy (post to follow on the ongoing troubleshooting of Sidam’s Explorer) is to get Pac-man delivered to Trento—-along with 7 or 8 other classics. That’s the game of all games for me, and my baby sister sent along a photo of a 10 or 11 year old bava in Montauk sporting the iron-on Pac-man jersey 🙂

But even without the yellow ghost-eater, the games must go on in this odd self-imposed exile from my childhood glory—is that just adulthood? I have been focusing on Phoenix and Gyruss these days. My Phoenix cabinet is in pretty amazing shape, but I’m starting to see some compression on the left-hand side of the monitor so there may be some work to do in the near future (which often means a cap kit wherein you replace all the capacitors on the monitor chassis). But it plays well and the monitor still pops so no rush just yet. I was playing a 2-player game last week and I got my personal best score with player 2 clocking 65,610. On average 20 or 30,000 is a really good game for me, so this was a new personal high watermark.

Soon after that I broke the 300,000 mark on Gyruss, which was a goal I set for myself by the end of summer as soon as I picked the game up last month. I got there sooner than imagined, and I have to say Gyruss may be my second favorite game of all time behind Pac-man.

Gyruss 364500!

Then just yesterday I locked into Gyruss and hit a new high racking up a whopping 441,500. This was done with 5 ships on the very difficult setting, although there is a “most difficult” mode I might need to set it to pretty soon.

Gyruss high: 441,500!

I think the joy of this hobby for me is not only do I love playing the games, but I am really enjoying trying to figure out how they work. In the short time since starting the collection, I’ve been learning a ton about power, circuits, CRT monitors, PCB boards, and the bizarre ways folks figured out how to interface the analog with the digital during the golden age of video games.

There is no end to the possibilities depending on the game maker, the year it was made, and the challenges they were working around. I can get obsessed with the fixes—which is always tricky for a maniac like me—but I’m finding it’s a very generative way to focus my thinking in order to learn something new and channel my seemingly endless longing for what was and what could/should be.

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