It’s a new year and time to start blogging once again. Today’s topic is about computer backup. If you’re a digital creator, I can’t stress how important data backup is. There are primarily two parts of data backup that will keep you up and running with minimal downtime. The first part is a cloned/bootable hard drive to keep your machine running. The second part is your data; and that’s what I’m going to talk about today.
There are two kinds of data backup: local and remote. Both Mac and Windows have built-in applications that work with “local” external USB, firewire, and eSATA drives. There are also a bunch of “free” back-up software packages that run from your computer. However, in the past couple years, the cost of remote/cloud-based backup has incredibly declined. For instance, CrashPlan+ which support file versioning, unlimited data, access to restore your data from any web-enabled computer, and next day delivery of your data (if you have a catastrophic crash) is around $50/year.
Most importantly, a very high percentage of designers and artists are primarily moving to working on laptops and from multiple locations. This growing laptop trend changes the dynamic of backup and what the user has access to when working from different locations. They may also not have room to attach external drives. I’ve been personally using CrashPlan+ for over a year and it’s been great! Now there are other web services out there (such as mozy.com) that offer low-cost, cloud-based backup to check out.
The key thing is to seriously start thinking about remote/cloud-based backup as part of your strategy to safeguard your creative data.
Read more..One major challenge I have encountered in this foray into cross-platform development has been getting consistent debugging and analysis information. Doing this on one platform can be tough enough, but when doing it across different platforms, there aren’t many consistent tools or standards.
Summarizing my needs:
1) I need consistent, fast text output for debugging.
2) I need clear messages from my program which indicate what went wrong.
3) I would like some kind of performance profiling tool, to measure what parts are too slow, so I can optimize them.
4) I would like to have some idea about what my RAM usage is, to help spot memory leaks.
As expected, delving deeper into SDL yielded the next step. I present to you, a white square bouncing off of a white line! Behold the cross-platform compatible miracle:
Actually, I’m pretty excited about this, since it is the first time I’ve ever made a cross-platform game demo, even though it’s a tiny one. It works! Woohoo! As planned for the main recipe, this uses OpenGL, GNU make, and SDL on all three platforms. Additionally, on Windows, I use MinGW to provide a common Unix-like build environment, to help match what I use on OS X and Linux. Seems to be working out pretty well so far!
Now that we have basic windowing and graphics up on all platforms, it’s time to get to work on the engine, 3QuadX, so we can do something a little more sophisticated.
– Jake
Read more..It’s not much, but I finally managed to learn how to use GNU make well enough to manage a cross-platform project successfully. All the project does is create a small library, which I call libFoo, and a main executable, called HelloWorld. I’m sure you know what an executable is, but for those who may not know what a “library” is, it’s basically a pre-made “sub-part” of the program. The engine, which you may recall is titled 3Quad, is designed to be built as a stand-alone library if needed, so it was necessary to make sure I could build it as a library on all platforms.
All the program does is output the string, “Hello, World!” from the main program and “Hello from libFoo too!”, to prove that the library is being called correctly. HelloWorld is notably simple, but it’s the traditional starting point for just about any new programming adventure. Here are the screenshots from each desktop platform:
(I named my Windows and Linux installations, beavis and butthead ;-P)
So there it is in all its glory (and about as exciting as dirt), our first truly cross-platform compatible program 😀
What’s really cool about it is that, as planned, I use only one set of source files and Makefile for all platforms, as opposed to an IDE project for each platform. To actually build the program on each platform, all I have to do is boot into the appropriate OS, then navigate to the project folder on the command line and type “make”, and it magically spits out the appropriate build for that platform. Yes, it is that easy!
That said, figuring out how to set it all up to be automatic like this took quite a bit of effort. Writing the Makefile itself, which manages the build process, took lots of trial and error and reading/studying/etc. Once I got it working on the Mac, it was trivial to get it running on Linux. Windows, on the other hand, was not as easy, but I managed to figure it out too, as you can see.
So the first step is accomplished, woohoo!
Next up: Make it a proper application on each platform, instead of a little command line executable. I’ll probably delve into SDL for that.
– Jake
Read more..