Improv Wiki

I teased this is my last post, but now it’s live!

But what is it you, absolutely do not ask? Inquiring minds would like to know, is a thing no one has said about this.

Well, sit back, fair reader, and let me spin you a yarn you almost surely do not care about.

A long time ago in the year twenty-hundred and twelve I was helping to set up a website for the Purdue college improv group, The Ship of Fools. I was helping save their old site and their old wiki. It took a bit of doing, but it was brought back together with a lot of help.

The wiki portion turned out to be an invaluable resource outside of just Ship of Fool’s needs.

In improv, after a while you notice games are hard to manage. There are often several different names for the same game depending on the group, rules are forgot, or you just have a hard time coming up with stuff to fill a set list for a show. There is many uses for a central database for this information, but sadly, as The Ship of Fools changed hands the website went away and that info and tool and lost.

Luckily (knocks on every wood), I am paranoid about that stuff, and I think I mostly backed up that information. I definitely had a database snapshot when the site was first launched back in 2012, so for sure I have the initial crop of info.

The real news is that the website is now live! It exists at https://www.improvwiki.com

It is right now on the 2012 snapshot, but I will add more info from my backups going forward. It is closed off for editing right now, but I want to give this to other groups to fill in their info as well, or just use it as a resource.

Getting this site up was not “as pie” as I would like it to be. I would like it to have been several more clicks in the direction of “as pie”.

If you read a post ago, I rebuilt my web server I have running in the cloud. It’s a LEMP (Linux, NGINX, MySQL, PHP) server. My other one was out of date and needed to be rebuilt. This is normal. The problem is sometimes as the underlying infrastructure is updated it breaks old software packages.

This was what I was like for the SoF-Pedia (precursor to Improv Wiki). I had the newest version of MediaWiki (the software that powers Improv Wiki, and Wikipedia for that matter) running on my server, and tried to rebuilt the database then run an upgrade script. Well, nothing doing. I suspect it was just too many versions behind. To get the original site up, I decided to grab a version of Ubuntu from around 2012, as this would probably have the pre-compiled software packages of the versions of software to run the original incarnation. I downloaded VirtualBox and built a local VM of Ubuntu and configured it to run a local web server for the original website. It worked!

After that mess I had to figure out how to get those pages to the new wiki. My original thought was stepping through every version of MediaWiki and running the upgrade script until it eventually hit the latest version then doing a SQL dump of the database and re-importing that. This would almost surely work but be much more a hassle. I found there was an export page option. It is built into MediaWiki at least since that version, and outputs all selected pages as an XML file. You can then import those into any MediaWiki. The old version of MediaWiki that was used has an export page option, but you have to either select each category individually or type in every page. There might have been another way to do things, but I couldn’t find anything. After the export, I imported it, and that’s where Improv Wiki sits today.

I am going to be working on it when I get the time, but I hope someone or someones finds the content useful. I know I’ll. be using it.

New and Improved Killer Tofu!


Welcome to the new and improved Killer Tofu! Yes, there is a little visual sprucing up. The old logo is back (I love that logo) and the site has a little more minimalist flair. It also works fantastically on mobile and tablets now, too. That is not the big news though. The back end is now changed! The part you don’t see a.k.a. everyone’s favorite part. I am proud of it, so strap in for a technical explanation on how things are different now.

To start off, I am now running my site off a VM (Virtual Machine) controlled entirely by me. That means I can choose what is updated, when, and have complete control of the customization. It’s far more work, but the result, for me at least, is better. I have the VM hosted through Digital Ocean, which I can’t recommend enough. I originally chose them because they would let me run a FreeBSD VM, but abandoned that idea. The VM is currently running Ubuntu 16.10 x64 which is the latest version of Ubuntu as of this writing.

This site runs on WordPress software, which was a choice I made a while ago, but since then has some major drawbacks. The prime downside is that it is written in PHP. PHP is an interpreted language and due to that is slow. When the page loads, the server must compile the page and then serve it to you. A thing I found out a little bit ago though is that Facebook is still written in PHP. Due to that, Facebook has written its own PHP interpreter called HHVM (HipHopVM) and open sourced it for anyone to download and use. This significantly speeds up page load times. This is great, but it also is not 100% compatible with all PHP in the wild. I wanted to have a fallback in case HHVM crashed. In this case I installed PHP 7.0 (newest version of official PHP as of this writing) and have it render the page in the event some code crashes HHVM. HHVM also comes back alive every 60 seconds if the process dies. This all happens automatically.

I changed out the web server portion, too. I originally was running Apache (well, *I* wasn’t, my hosting company was), but I wanted to switch to NGINX. It is supposed to be event driven and have a lower memory footprint, which is great for a smaller VM with not a ton of memory available. That took considerable configuration because I had never used NGINX before this and it has its own configuration styles and files.

In terms of database, this is the least improved, it’s just the latest version of MySQL. The old standby. Nothing much to talk about here. Still works great.

The last cool thing, is that now the site is secured with an SSL certification. Check the little green lock in the corner of your browser. When I was on my previous hosting site it would cost an additional $50/year to get an SSL cert. It’s all tied up in registration fees and all kinds of nonsense. With the web becoming increasingly less secure, any additional hardening of security is needed. This might just be a little, personal website, but I still wanted to secure login info and anything else like that. There is an organization now called Let’s Encrypt which allows anyone with the means to get a *free* SSL cert for their site. It’s awesome. They even developed a tool called Certbot that automates a lot of the process. If you put it as a cronjob it will automatically renew certs for you every 60-90 days and you won’t ever have to worry about replacing dead certs again. This seems mundane, but it’s so tedious, annoying, and expensive usually.

OK, OK. So, you’ve listened to me ramble. It’s just that I’ve been meaning to do this for years now, and to finally have it completed feels amazing. I learned a whole crazy amount and hope to use that for my next venture which is to write my own website CMS style engine to port around. That’s a whole different story though.

Hopefully this will cause me to update this thing more, but as this is my 1000+ time making that remark, I’m not going to hold my breath, and neither should you.