WordPress plugins I like

A friend recently asked what WordPress plugins I could recommend. So far, I have been happy with the following:

JetPack by WordPress.com

Jetpack adds a number of neat features that integrate with WordPress.com, so you can benefit from wordpress.com services with your self-hosted wordpress installation. It’s more like a suite of plugins, 31 different modules all together. Very good, highly recommended.

Administration

  • Search and Replace: Easily search/replace your wp database. Use with caution as there is no undo. But very powerful if you need to update your database content.
  • WordPress Importer: Allows you to import content from another WP site export.

Authoring

  • WP Document RevisionsVersion control for your post drafts, allows you to see changes from revision to revision and diff them.
  • TinyMCE AdvancedThe built in WP post editor doesn’t give you tables, I guess because of all the sins committed by HTML layout guys who don’t believe in CSS. But if you really do need an honest table in your article, this will let you build it. In fact, it will unlock all the features of TinyMCE, the WordPress WYSIWYG editor.

Content

  • Advanced SpoilerConceal “spoiler” content so that it remains hidden until clicked on, so as to not spoil the spoiler for readers who don’t like to be spoiled.
  • FancyBox for WordPressNice fancybox.js implementation for displaying images and galleries.
  • Fast Secure Contact FormEasily set up contact forms so that your readers can send you messages without the need to expose your email address to the world.
  • WP Most PopularWidget you can stick into your Theme customizer to display listing of your most popular posts so readers can see what else is good on your site.

Performance

  • WP-OptimizeCleans up the mysql backend, clearing out clutter like saved drafts, revisions, etc. so that your database is smaller and performs faster.
  • W3 Total CacheCaching, minifying, compressing. Boosts the performance of your wp application so that pageloads happen faster. My Yslow! Score went from a 70 to an 80, and the difference in speed is noticeable.

Quality

  • Broken Link CheckerScheduled scans your site for links returning 400 and 300 http errors, gives you a nice report showing the link href and the redirect url, and allows you to edit it right there. Saves a lot of time compared to hunting them down manually. Supposely can even find embedded youtube videos that have been taken down, using YouTube api.

Security

  • Akismet: Blocks spam comments very well, cutting down on the amount of moderation you have to deal with.
  • BackUpWordPressCreates scheduled backup of your wp installation, which you can then download. Useful for disaster recovery OR migration. To move backup files off site you can either manually download the backup, or set up a cron job to do it for you. Nice if you don’t have a server backup already in place.
  • Better WP SecurityPretty comprehensive hardening and intrusion detection. Provides recommendations for securing your site and enables you to implement most of them from within the plugin UI. There are other security plugins similar to this one, but I haven’t looked at them all. If you find a better one let me know!
  • WordPress HTTPSIf your site has an SSL and serves HTTPS, you can easily force visitors to HTTPS with this plugin, or set up custom rules for which pages force HTTPS. Using this plugin helped me address a couple problems that I couldn’t find to get my lock icon in the address bar to turn green, even after I’d set up .htaccess redirects to serve everything over https and did search & replace all the urls in mysql to convert all links.

Traffic

  • Google Analytics Dashboard for WPPuts a Google Analytics report right in your WP admin dashboard so you can easily see what’s happening with your site traffic (but you need to set up Google Analytics first — see the next plugin.
  • Google Analytics for WordPressAdds the necessary code to your WP application to integrate with Google Analytics so that it can track your traffic for you.
  • Google XML Sitemaps: Adds a google sitemap to your site to assist googlebot to find your pages so it can index them so people can find your site when they search.
  • RedirectionEnables you to easily set up redirect rules so you don’t have to mess about with apache settings or .htaccess files if you don’t want to.
  • WordPress SEOGreat, full featured SEO tool that helps you create meta description tags and so on so that your site is even friendlier to search engines. The features are well documented and explain how to use the plug in very clearly.

Wish list?

I have a few things that I’m looking for, too.

E-commerce: It should be easy to use, allow for selling digital assets, and have a “pay what you like” feature like Humble store or BandCamp. There are so many features to think about, and it seems like the amount of effort to set up and manage an e-commerce store is significant enough that you really don’t want to pick the wrong one and have to start over later with a different one if you can help it. It’s intimidating, enough so that I haven’t even begun to investigate it. But it’s a goal of mine to have it done sometime in the next year.

Code: I’m not entirely satisfied by the way WordPress formats source code. I’d like to be able to display both blocks of code as block elements, and in-line mentions of code keywords to be styled, such that it is obviously programming code, with good syntax highlighting. There are a number of plugins to choose from, and I’ve used a few different ones but I’m not ready to recommend one yet. I’m going to look into these and testing them out in the near future.

Network Neutrality struck down

I’ve just learned that a Washington court of appeals has struck down the FCC’s Network Neutrality rules. This is incredibly bad news.

“Its ruling means that Internet users will be pitted against the biggest phone and cable companies—and in the absence of any oversight, these companies can now block and discriminate against their customers’ communications at will.”

If you care about freedom on the internet, you must be in favor of network neutrality. Contact your representatives in congress and demand that they act to strengthen and restore network neutrality and establish that all ISPs are common carriers.

More coverage:

Migration post-mortem

It’s been a busy and productive week for the site.

Site Migration

After several months of intermittent poor uptime, I migrated csanyk.com to a new host. (more…)

New GML variable scope rules will break old code

[Update: Please read the comments from YoYoGames CTO Russell Kay, at the bottom of this article. As it turns out, the implications of the changes that I expressed concerns about in this article were overblown. The YoYoGames tech blog article that caused my concerns wasn’t clear enough in describing them, resulting in my misunderstanding of the severity of the changes.]

Today’s YoYoGames tech blog deals with GML variable scope rules. I was dismayed to read that they are changing the scoping rules, which will result in old code breaking.

I’m normally very supportive of the decisions YYG has made with the development of GameMaker, particularly in the GM:S era, but this is probably the single worst thing that I’ve read about the development of GameMaker since I started using it in 2010.

I have a lot to say about this. First, I’d like to address the specific changes. Then I’ll talk a bit on the philosophy of how I would like YYG to treat me as a developer who relies on their tools.

(more…)

csanyk.com re-homed, now served over https

The site is now running from csanyk.com, and I’ve tested old links from when the site was homed to /rants, and they should redirect automatically to their new location.

As well, the site is now being served exclusively over https. This is an important step toward eventual ecommerce. At present, there are still parts of pages that are not being served over https (ie, images, etc.) and I’ll be taking care of those in the near future so that the entire site is served securely.

Host migration

If you are reading this, it means that DNS transfer has completed successfully, and csanyk.com is now running on its new host. The main benefit to this will be greater uptime. The old host was having a lot of problems in recent months, and the new host should be more stable.

If you should happen to notice any problems with the site, please contact me or leave a comment below, and I’ll look into it.

Fun plays from Ludum Dare 28

I don’t get to vote on LD28 games since I didn’t submit a game of my own, but I can still play them. Here are a few that I found worthwhile so far… these are in no particular order, other than the order I found them.

Asshole Ducks

Asshole Ducks

I love this take on the theme, “You Only Get One”. Gameplay has the feel of an Atari 2600 game, although the graphics are not done in that style — in the early 80’s game designers took a lot of inspiration from everyday life and would take demented inspiration from seemingly mundane activities such as crossing the street or sorting baggage. Asshole Ducks fits right into that type of game concept — you’re feeding ducks, and to make it fun you’ve made a little game out of it, the goal being to feed each duck exactly one piece of bread. But of course once a duck gets a taste for bread, it turns into an asshole and tries to eat all of it. It’s hilarious how well this reflects real-life duck behavior. Despite it being a bit of a one-trick pony, it’s quite fun to play, and pretty difficult. Graphics and sound are crude, but not essential to the success of the game, which is all about gameplay, humor, and that slice of life that is familiar to anyone who’s been to the park.

Javel-ein

javel-ein

Javel-ein is great. Full stop. One of the best games I’ve played in a long time, and one of the best LD48 games I’ve ever played. It’s amazing how well done it is, in all aspects, but particularly core gameplay and level design. It’s a fairly standard platformer, but with a twist. You move using the arrow keys or WASD, and you aim and throw a javelin with the mouse. You Only Get One, so once thrown, you have to retrieve it before you can throw again, leaving you defenseless in between shots. The enemies are just challenging enough, and you have to kill all of them before you can activate the gateway to advance to the next level. You have to stay alive, can’t get hit once or touch lava, and there are also optional bonus pickups scattered throughout the levels for added challenge. Graphics are quite good for the style, using an amazing 16-color palette. The only weak point is the sound effects, which are typical bfxr blandness, but fill the intended purpose adequately. Early levels aren’t terribly challenging, but it ramps up pretty quickly, and the “boss” at the end of the enhanced edition is one of the best, most satisfying videogame battles I’ve won in a long, long time, overcome only by mastery over the controls AND a shrewd strategy that I discovered after dozens of attempts.

A Ronin Heart

A Ronin Heart

Just as impressive as Javel-ein, but a bit less innovative in terms of play mechanics; in this action platformer, your “only get one” thing is your life — take one hit and your artificial heart is cut loose, and you have a few seconds to try to grab it before you die. Since this only comes into play briefly, when you get hit, it doesn’t open up a lot of potential for interesting play, but it’s every bit as well polished as Javel-ein. A strong art style evokes Edo period Japan, the pixel samurai animation is rendered masterfully.

I Can Haz One?

I Can Haz One?

Even though this is a very simple game and kindof stupid, I still like it. The cat is cute, the music is cute, and it is fun to see all teh thingz u can hazzing. Joo r a cat, things fall from teh skyez, an joo haz to haz only one thingz. Try to haz teh moast raer thingz to get moar pointz.

You Only Get One Chance To Save Xmas

youonlygetonechancetosavexmas


Simple, but fun. You run around a shopping mall, trying to find the right colored gift for each person on your list before time expires. Shove other shoppers out of your way if you want to. The minor-chord variant on “Jingle Bells” is fitting. This could really be a fun holiday satire title if developed a bit more — I think there should be a Boss Santa or something that you have to fight at the end.

Ninja Kun’s Final Exam

ninja_kun

This difficult platformer provides challenge through stealth puzzles. You must evade the samurai and get to the door. The samurai are very difficult to defeat if they are alert to your presence, so your best bet is to sneak around them with your stealth, or to hit them with a shuriken while they are still unaware. You can use a rope to climb to the ceiling and hang, which makes for an interesting alternative to jumping, which you also can do. The graphics are well done, cute pixel art, similar in style to the original GameBoy. The major downside is the controls: using the left/right arrow keys to run, up/down arrows to use the rope, space to jump, and the number 1 key to shoot a star makes for a very awkward control layout. Also, if you make any mistakes, you start all over from the very beginning — I really wish the doors served as save points.

1111 pt 1

1111pt1

This literal take on the “You only get one” theme is brilliant. Flying around in space, shooting numbers >1, breaking them down to 1’s, collecting the 1’s to gain points to power up and face ever larger numbers.

The game is very easy, there’s no real challenge here, just button mash your way to victory. But it’s fun to see how your ship changes as you level up, and the interesting forms the higher numbers take.

 That One Coin

thatonecoin

This is a simple platformer, but it comes with a twist. You can win simply by collecting ONE coin. So the challenge becomes how far can you go WITHOUT collecing a coin? It’s like a very difficult platformer where one mistake kills you, but instead of ending the game through death, it ends it through “rewarding” you. It’s an innovative gameplay idea that turns the game on its head. Core gameplay is not terribly sophisticated — I’ve played many run and jump games that were done better — but the music and the sarcastic instruction text make it a fun play.

 One Shot

One Shot

Tiny pixel art stealth platformer where you get one bullet per level to get past multiple lethal sentries. There are also obstacles that will kill you, most of which you’ll discover inadvertently. This game is seriously hard, and will take a determined player a long time to beat all 11 levels. The developer wasn’t able to complete the game by deadline, but I hope they finish the remaining four levels originally intended.

Natural Sheep Care

natural_sheep_care

If you like grinding, then Natural Sheep Care is the game for you. I don’t like grinding, but I have to admit that I found this to be a captivating and well-realized game. It was far too difficult for my patience, but I really felt drawn to the game world, and wanted to find out what would happen if I could win enough to make it through the portal. The difficulty stems from the carefully balanced economy that demands frugality and perfection, as well as intelligent power-up tree management, and the controls, which includes a novel aiming system that demands pinpoint timing and execution.

YouTube reviewer RockLeeSmile is much better than I was at the game, and managed to play through in his video:

The game consists only of one level, and the reward payoff is anticlimactic, but the game shows a lot of promise if the story elements were expanded and allowed a sense of journey to develop.

 One Take

One Take

One of the most original games I’ve ever played, you’re a camera operator shooting a movie. You have to get the shot perfect in a single take — you only get one. Shoot three different movie scenes. Your score is based on how well you capture a sequence of moments that happen during the scene. If you hit your marks and follow the Director’s instructions, your movie will receive a good rating.

Blomster

Blomster

A nonviolent puzzle platformer, Blomster is a well-polished hike through a dark cave to hunt for flowers. The challenge is to figure out how to get to the exit gateway in each cave. You find a glowing ball that lights up when you are carrying it, and which has the power to make some platforms become solid or immaterial. You need to be clever in order to get the platforms to become solid when you need them to be, so you can walk on them and move through the level. The physics, lighting, controls, and camera are fantastic. It’s a fairly short play, and more relaxing than challenging, but quite enjoyable.

Looking forward to GameMaker Studio 1.3

There’s been a lot of news coming out of YoYoGames lately about the upcoming release of GameMaker Studio 1.3. They’re delivering a lot of new features that have me excited.

From the official roadmap:

Version 1.3

Debugger

Rewrite of the GameMaker debugger to include full source level debugging, break points and watch windows. Will also target cross platform support, allowing remote debugging of Mac, Android and iOS devices.

I really like that they’re delivering an improved debugger with breakpoints and watched variables. This is something that is frankly long overdue, the functionality that was provided in the current debugger would be considered barely adequate compared to what’s been offered in other IDEs for at least the last 10-15 years.

On the other hand, I credit the lack of a decent debugger in GameMaker for making me a better programmer by teaching me not to over-rely on a step-through debugger to understand my code.

Because I lacked a proper debugger, I learned to build myself a logging system. Because I lacked watch variables, I learned to draw the values of variables I wanted to read to the screen, next to the instance.

It turns out, when you have a game with a lot of objects, all of which are updated in a loop that runs at 30 iterations per second, stepping through your code to see what’s going on must be extremely slow and tedious. I am not sure how much use I’ll get out of a debugger — I’m sure there’s times where it’ll still come in handy for me, but for me, logging and drawing variable state to the screen so I can continue to run the game at realtime and see what’s going on faster will likely be more valuable to me.

One highly valuable programmer’s tool that I’d love to see added to GameMaker Studio in the future is unit testing. Programming benefits from unit testing by proving that existing functionality still works as intended when new code is added or existing code is modified. It can accelerate development by reducing the time it takes to find bugs, immediately identify when they are introduced, understand the scope of their effect, and so on. I don’t believe that unit testing can help prove whether a game design is fun, but it is very valuable to proving that code is correct. I’d rather spend my time in GameMaker playing with design experiments, not trying to figure out why something I coded doesn’t quite work like I thought it should, and if I could write unit tests for my GML code and use them, that would be a huge win.

Extensions

Windows and HTML5 already allow custom extensions, so this will add them to iOS and Android.

As I understand it from what I’ve read elsewhere, this means native code extensions. So far, I’ve done a little bit of work in creating extensions for my projects, and all of that has been done in GML, at first because that was the only thing I was comfortable writing them in, and then later because I wanted my extensions to be usable no matter what platform I was targeting. Being able to write extensions in other platforms that are native to the platform will mean substantial performance boosts, and the capability of leveraging existing code libraries, and potentially even entire engines or frameworks. This is great because it means a lot of existing functions are soon to become available to GM:S projects, and won’t require a lot of re-invention of the wheel. Instead, developers can just glue existing wheels written in other languages onto their GM:S projects.

The only downside to this is that I fear this will turn into an excuse not to implement language features in GML, when it comes to future development of the GML language and the GameMaker framework. “Why bother implementing [requested feature], it already exists in [other language], so just go install [some extension] or learn [other language] and implement the extension yourself!” may become a frequent response to feature requests and criticism of GM:S.

One of the really nice things about GameMaker was that it was a small, simple, self-contained language. As well, non-GML extensions have not historically had full access to the GameMaker runtime engine, meaning that in essence when you made a call to a native-code .dll extension, you were passing some data values out of GameMaker into the .dll, which would only know of those values, and it would do whatever it did, and return a value back to GameMaker, which you could then do something with. This scope boundary made native extensions a bit more difficult to work with, and a bit more clunky as well, and as such I tend not to use them.

As we’ve seen with the newly-added features such as source control, Box2D physics, and shaders, GM:S has for some time now been bolting on more and more stuff in order to quickly deliver features it has historically lacked, which are already familiar to experienced programmers and really don’t need to be re-invented. But this means that non-programmer game designers will have to stretch themselves increasingly further in order to gain mastery over these new features.

Much as web development in the mid-90’s was all about learning HTML, which was dead simple and easy to learn in no time, and then later along came CSS and Javascript, and SQL, and backend scripting languages like Perl, PHP, and ASP, which made things increasingly complex and difficult to learn, and then specialized Javascript libraries and frameworks like Rails, I see the same thing happening with GM:S — a tool that was once very simple to pick up and learn is growing more capable at the cost of increasing complexity, sacrificing ease of use.

True Type Fonts

The ability to add True Type Fonts to your game from an external file and support for non-roman alphabet languages.

This is a nice thing to see. It’s a little bit hard to feel truly excited about fonts, but TrueType support is another one of those things that is long overdue and will make GM:S feel no-longer antiquated in its typeface options.

Simple Flash Asset Importer

Allow importing of certain Flash assets directly, including things like vector images, and PSD files.

I never did get into Flash, so this isn’t especially important to me, but it will allow vector sprites and therefore resolution independence, which is pretty awesome.

Spine Animation Importer

Allow importing of animations created using Spine.

2D Animation runtime

Visualize in GameMaker any assets imported from Flash or Spine.

I haven’t used Spine, but it sounds a lot like the Spriter project, which I helped fund the kickstarter project for. So, hopefully this doesn’t mean that GameMaker won’t support Spriter in favor of Spine — one of the Spriter project’s stretch goals was support for GameMaker, and I still would like to see that delivered.

Push Notifications

Will permit you to use push notifications to inform the user of things on iOS and Android.

Mobage

Integration of the Mobage SDK will permit you to use their social gaming network in your games.

These last two are of special interest to developers targeting mobile platforms and social networks, which is pretty much everyone these days who wants to make money doing independent game development.

Early Access Builds

This is a very big deal for me. To date, GM:S has offered two update channels: Beta (for the latest builds), and Stable (for more well-tested builds) — but only one installation. So you had to decide whether you wanted to get the latest release and risk bugs, or the stable channel with its slower delivery of cool new features. Now, however, they’ve changed the way this works, so that the “Early Access Build” can be installed adjacent to a stable release, allowing the developer to play and experiment and learn the newest features before they’re ready for official integration, and not have to give up having a stable IDE for serious work. I’ve been burned at times by trying to use features that weren’t ready yet, and now I feel like I can safely do that without being punished by project-breaking bugs from the beta channel.

A few quick updates

Did not complete Ludum Dare 28

I even liked the theme this time: You Only Get One. I came up with an idea pretty quickly: a platformer in which you are given the choice of several power-ups, but you only get to have one. Once you made your choice, you have to get through the level using that ability.

Alas, I did not get very far and did not complete the game. I started out trying to build a platforming engine from scratch, ran into bugs, and a few hours later concluded that without declaring a pre-existing base code for a working, tested platform engine, I just wasn’t going to have any hope of completing a game in 48 hrs.

really needed to do this in order to free me up to do things like come up with the various power up items, and devise level designs that would be solvable with each of them, just in some different, uniquely challenging way. That’s a rather tall order, really — level design in platformers takes a lot of talent and testing.

Once I realized that I wasn’t going to be able to finish that project idea, I could have scrapped it and started something else, but I opted not to — mainly because I was very frustrated by that point by a couple of technical problems.

This culminates a year of mostly failed projects for me: I was sick the weekend of Global Game Jam 2013 and didn’t partake, then the wheels fell off my computer just in time for our local Cleveland Game Developers Summer Jam event, when a dying hard drive put me out of commission for the weekend as I struggled (mightily, and successfully) to move my OS to a SSD. I blew off LD26 because I hated the theme “Minimalism”, and then skipped LD27 entirely because I hated the theme “10 Seconds”.

Of course on the plus side, I helped put out a book on GameMaker, and am currently working on another, but in terms of releasing finished products, this has been a bust year. Nothing to do about it but pick myself up and get back into it, though.

Site has been down a lot lately, hasn’t it?

Since I went and registered this domain name in 2010, I’ve been hosting on a server that a friend of mine generously provided me some space on for free. At first I had no idea what I was going to do with my domain, at all — I just wanted a web server of my own to play with in my spare time, and learn from. I dabbled briefly with trying to build a native HTML website before realizing how not-fun that really is, and switched to using WordPress, and have been blogging with it ever since.

This year, the server started having issues with downtime. I’ve been in contact with the server administrator, who at various points has explained that the outages have been caused by all sorts of things: database server disk storage full, upgrades, DDoS attacks, aging hardware, you name it. It seems the problems have gotten worse over time rather than better, and so a few weeks ago I began shopping around for a new hosting service. I’ve got one now, and am in the process of migrating the site over to the new server. I’m hopeful that I’ll be through doing that sometime this week, and then I can cut over the DNS registration to point to the new server, and all will be well again. This weekend there was another bad outage, and the site was down for about 24 hours. Dealing with that had me distracted, anxious, and frustrated, and not at all in the right frame of mind to be focused on my LD48 project.

Despite the ease of setting up WordPress initially, I’ve found it fairly difficult to migrate the site over to the new host, mainly due to differences between the hosts, but also due to my relative lack of experience in doing this sort of thing. So I’d like to say I’m learning a lot from this, but really at the moment I’m just learning that it sucks to do something when you don’t really know how, and the documentation and tools that you have available to you are not all pertinent to what you want to do, and it’s up to you to figure it out. I’m muddling through, and perhaps by the time I’m done I’ll understand how stuff works a lot more than I did before I started, but I haven’t seen that payoff just yet. I haven’t yet resorted to the tech support at the new host, but I plan to this week when I can get to it. Getting the current host to be up at the same time when I have a large block of time to throw at migrating seems to be an issue, and I don’t want to waste my time talking to tech support when the old host is down and something that I may need to pull off of there isn’t accessible.

So that sucks.

YoYoGames Support rocks

On top of that, I also had a bit of frustration with GameMaker Studio this weekend while I was still trying to work on my LD48 project.

Somehow or other, the auto-suggest feature in the GML code editor went glitch on me, drawing a super-tall suggestions box that drew off the top of the screen, and wouldn’t allow me to scroll up to see any of the suggestions.

Tl;dr: it turns out that the autosuggest box is resizable by dragging the edge with the mouse, making this quite easy to fix. However, I did not know that at the time, as there’s no UI widget that hints at this functionality, and I expected that it was like a regular “Tool Tip” widget in Windows, which are not normally resizable. I tried exiting/relaunching, and even removing/reinstalling GM:S to no avail, before resorting to tweeting my SOS. I also submitted a bug report with YYG.

Within an hour or so of my SOS tweet, xot of GMLscripts.com had offered me some suggestions which fixed my problem. I really appreciated him taking the time to do it. I don’t know who xot is in real life — if he’s connected in any way to YYG, a former employee, or just a long time GameMaker developer, but I’ve gotten a lot of use out of gmlscripts.com over the last couple years, and so I donated $25 to him for providing such a valuable resource to the community, and since then he’s been quite friendly and generous with his time — he also contributed quite a bit to the draw_text_rtf() script that I posted about earlier this year. So, three cheers for xot, wherever you are — you’re a great guy.

This morning, I woke up to find an email from YYG Support in my inbox:

Hi there,

Reading through the twitter feed you linked it looks like you managed to solve the issue.
Is this correct?

Thanks

Peter
YoYo Games Customer Support Technician

Since the bug report tool doesn’t let you upload files, I had pasted the url of the twit pic, and Peter had apparently followed up, reading the conversation, and, seeing that I’d apparently sorted things out on my own, checked in with me to make sure I was doing OK. Awesome!

I wrote back to him:

I don’t know what caused it to happen in the first place, though, so you still may want to investigate that end of it, in order to prevent a recurrence of the issue. It seems to me that while it makes sense for the height of the auto-complete suggestion box to size itself dynamically, it ought to have some “sanity checks” to make sure it’s not sizing itself larger than the display resolution, and more specifically to size itself to no larger than needed to display the suggestions.

To which, he replied:

I’ll let our coding team know about this issue so they can add some checks to prevent this sort of thing happening again.

I’m extremely pleased with this exchange.

A year or so ago, back when YYG’s Mantis bugtracker was still open to anyone to submit bugs, it often took a long time for anyone to respond to a bug report, and often that response was unsatisfying — you felt like you’d annoyed someone with a concern or question that they felt was stupid, or that you were guilty of misusing the bug reporting system to ask for help merely using the tool rather than reporting a genuine bug, bug reports would often be closed prematurely, before allowing you to engage their developers who were working on it to communicate about the issue, and if the issue did merit a fix, it could be months before someone got around to it, because there’s a zillion bugs and they have to be properly prioritized, planned, and implemented.

By contrast, this experience left me feeling that they cared about my problem, not just the bug report, that they were interested in taking care of it the right way, and that it was their pleasure to do so. Submitting issues is also simplified compared to what it used to be in the Mantis system, which is also appreciated.

I really, really can’t say enough good things about how it feels to be using GameMaker these days.

Site update: New theme

There are always N+1 problems, where N = the number of problems you think you have.

Yesterday, I updated some WordPress plugins and the site broke:/ Some kind of CSS problem, as though a stylesheet failed to load.

I determined that the most recent update to JetPack apparently causes the problem, though exactly what the bug is I haven’t determined — all I know right now is that if I install and activate Jetpack, everything is fine, but the moment I connect my site to wordpress.com, which is necessary to make any meaningful use of Jetpack, something happens to cause the .css from my wp theme to fail to load and/or render. Update 2013/12/15: I have determined the cause of the problem to be a conflict between Jetpack and an outdated extension called Scripts Gzip, which I have since discontinued using.

In troubleshooting, I noticed that the theme I’d been using for the last year plus, Fudo, hasn’t been updated in a few years, and may not be compatible with the latest WP. Potential problem #2.

So I ditched it, and am currently running the 2013 WP theme until I figure out what I like. But actually I might like 2013 just fine. It’s typographically attractive, and I assume it should be well supported by Automattic since it’s an official theme.

But whatever the problem is that is being caused by JetPack 2.7 on my site, it seems to affect all themes (or at least all that I have tried so far) so I’m guessing WP will release an update to JetPack in short order and fix the problem. In the meantime I’ve started a dialog with their support and am attempting to work with them through the issue.

Until then, I’m running with JetPack disabled, so the features it provided will be absent until I turn it back on. Yay.

So, wp support advised me to delete the jetpack directory from my plugins, and try manually re-installing to see if that will fix the problem. Only thing is, right now I can’t, because for some reason I’m being denied when I try to delete the files. Not sure what’s going on there, but I surmise it may be due to some server migration issues that my current host has been experiencing lately. Regular readers (ha!) may have noticed considerable problems with uptime lately, and the host is working on migrating the server to new hardware in order to alleviate the issue. I’m not very aware of the details of this, but it seems to be an ongoing issue that has been getting worse in recent weeks. Problem #3.

Due to these problems with uptime, I’ve decided that it’s time for me to move the site to a more capable host. I’ve been with my current host since the site went up in late 2010, and I don’t feel like I have a right to complain about the recent problems because I’m not paying for the hosting service. But considering how google pagerank treats sites with poor uptime, I really can’t accept it, either, so it’s time for this site to move. I’m coming up on my 60,000th visitor, according to my wordpress stats, and the daily site traffic continues to grow (although thanks to the frequent downtime of late my monthly numbers have been rather flat.)

So hopefully, I’ll be updating soon from the new host, just as soon as I get files and database moved over, and working, and switch DNS over.

Stay tuned:)