As of today Maximus, the BlitzMax Module Manager, has been taken down. I’ve blogged about this some time ago and today I’ve decided it was finally time to go through with it. The website now redirects to the GitHub organization that hosts the code for the client and the website. These will still be available online of course.
So what does this mean for Maximus and BlitzMax?
- The Maximus client can no longer fetch the sources file from the Maximus website and thus it can no longer download modules from the website as well. You’re back to downloading and installing BlitzMax modules manually yourself. If you’ve got a Maximus webapp instance running somewhere you can however configure the client to use the sources file from there.
- Development on both the client and webapp had stopped some time ago, but I would still fix bugs if they popped up. With the cancellation of the hosted webapp this also means I won’t be doing any development on Maximus anymore.
- With the source code being available anyone is free to host their own Maximus instance. Since the webapp uses Vagrant and Puppet you should be able to get a local instance running quickly. There’s also an INSTALL file for manual installation on Ubuntu.
Developing Maximus and providing this service has been a fun ride of which I’ve learned a lot and resulted in a well crafted piece of software. I can however no longer provide the service and support it and so it’s time to move on. I want to thank everyone who has supported Maximus in any way possible. Thanks.
Server provisioning tools such as Chef and Puppet make it easy to automate installation and configuration of your servers. I’ve used both now in two projects where they provisioned my virtual servers built with Vagrant.
I’ve first heard of Chef and Puppet when I started using Vagrant. With Vagrant you can quickly get a virtual server up and running for your project. In its most basic form Vagrant can execute a shell script in which you setup your server. Because this is a bit limiting it’s interesting to look into a more automated provisioning process.
Just over a year ago I started using Vagrant for Maximus and after giving both Chef and Puppet a quick review I decided to go with Puppet. At the time I thought it looked easier to use and it had lots of modules available for installing software.
Earlier this week I decided to add Vagrant to a new project of mine: a small and simple CRM system which is adapted to my workflow, and decided to give Chef (Solo) a try. At first Chef looked like a lot more hassle than Puppet, but that’s mainly because you start off with a big chef directory just to get started and cookbooks have a folder hierarchy of their own as well. In contrast, with Puppet modules basically have a files, manifests and templates directory.
If I compare my experience between Puppet and Chef I had more trouble setting up my Puppet manifests than I did setting up my Chef cookbooks and recipes. I’ve found Chef cookbooks easier to use than Puppet modules. Mainly because configuring software with Chef seemed a lot easier. Maybe that’s because the available Chef cookbooks actually provide this functionality as it seemed totally absent in most Puppet modules I’ve come across. Maybe it was there but I couldn’t find it. That’s another thing, the Chef cookbooks seem to be better documented than the Puppet modules I’ve seen. One thing I do like about Puppet is that you can define dependencies between every step or command you want to run. I’m not sure if Chef supports this as well.
Just to make clear, my experience with Puppet and Chef is limited and I currently don’t use it to provision servers used in production (at least not yet, but I’m sure that’ll change in the future). This is just based on my experience. If you’re interested in these tools I suggest you try them both to see what it’s all about. They both have a solo/standalone version which doesn’t require a main server where your cookbooks or modules are stored.
One great resource of getting started with Chef can be found at Christopher H. Laco’s website.
A couple of weeks ago I talked about the future of Maximus and said that I would inform you about my decision once it was made. I’ve come to a decision about Maximus and have decided that I will pull the plug on it. I just don’t know when yet.
For the time being the website will stay online but I’m no longer making an effort in keeping it up and running. As soon as I need the server resources that Maximus is currently taking I’ll be shutting it down.
There’s a slight chance I’ll move Maximus to my local homeserver which isn’t always available. The only reason I would do this is so I’ll still have a hosted module repository in case I want to use BlitzMax again. But considering I haven’t touched the language in a while I’m not sure yet.
I had originally planned for this post to be a bit different, but due to recent events the idea of a (or my) module manager for Monkey has become obsolete.
Not too long ago I asked around Twitter, the BlitzMax and Monkey forums to see if there was any interest in a module manager for Monkey. I’ve had some positive responses and so I decided to start a IndieGogo crowdfunding campaign for a Monkey Module Manager. I started to write down things I would want to do for this module manager and made a cost estimate. Setting up a decent looking crowdfunding campaign takes quite some time and I had originally planned on launching the campaign 1st of June.
But then BRL released a simple module manager with a recent Monkey release. Though very different from what I had in mind it’s capable of installing modules from 3rd party developers. Although I haven’t tried it out yet and am unsure of how useful it is the fact is that there’s now a module manager for Monkey.
So what’s going to happen to the IndieGogo campaign? I’ve decided not to launch it. There now is a BRL supported way to manage and install 3rd party modules. And while I think having the option to choose which solution to use would be better (competition is always good for innovation) I have little faith in the Monkey community supporting another solution. Yes, I would’ve loved to develop a Monkey Module Manager but as it is now it’s not going to happen.
Lately I’ve been thinking of Maximus‘ future. I’ve had a draft blog post with the title ‘Pulling the plug on Maximus’ poking me in the face for at least 6 months now and I’m still not sure if I should be writing it or not. I’ve got a number of reasons to end the project but also to continue it.
Reasons to pull the plug would be that I no longer use BlitzMax and thus it’s wasting precious server resources. I’ve also got little time for maintaining the codebase (it’s stable software, so not much going on there though) and keeping the service running. Furthermore I’ve got no clue on how big the Maximus user base is. I know a couple of BlitzMaxers (though it seems they’ve moved on from BlitzMax) who use Maximus, but that’s about it. As far as I know it could be 5, 10, 100 or 0 users. Aside from the users there has also been little participation from module authors.
There are also reasons to keep the project alive. It’s still one of the coolest things available for BlitzMax. It’s a big central repository with almost all available BlitzMax modules and currently there’s no other solution for easily installing your desired BlitzMax modules and their dependencies. It’s also a stable code base and the way it’s running now doesn’t require much maintenance. I’ve still got plenty of ideas to implement and improve Maximus as well. It can also be a nice playground for trying out new technologies. One such example was adding Vagrant support which is something I now use on a daily basis.
Still, I’m more and more feeling like ending the Maximus project. It no longer scratches an itch of mine since I’m not using BlitzMax anymore and like I’ve said I’ve got no clue if other people actually use it. Sure, from time to time I can find an entry in my log files that shows a module has been downloaded, but that’s about it.
For the time being I’m going to think about what my decision is going to be. Once one has been made I’ll inform you again on my blog. In case of termination I’ll inform ahead of it. Comments and suggestions are more than welcome.