Browsing all posts tagged site-updates

New Backend

Mar 18, 2024

This website is now running on a DreamCompute instance. One perk of this is that I can run the software stack of my choosing, rather than having to rely on whatever the shared stack is. One drawback, however, is that I'm now in total control; if there's a problem, I have to solve it.

Migrating to this has been fairly rough so far, but I got there in the end. I'll likely have another post in the near future detailing some of the headaches I ran into. There are still a ton of loose ends to tie up, but at least this site is back on the air. Let me know if you spot something broken. Note that I will likely pull down my photos subdomain, as I don't really keep it up to date, and it's not worth migrating in my opinion.

Minor Site Tweaks

Mar 30, 2022

This shouldn't affect too many viewers to this site, but I've tweaked the stylesheets (and markup) slightly to improve the reading experience on mobile devices. If you spot anything that's obviously broken, let me know.

Spam Mitigation

Dec 18, 2020

One of my primary concerns in writing my own web publishing platform was how to manage spam. In the WordPress world I used both Akismet, as well as another third-party plugin, to keep things under control. In looking around at various options, I stumbled upon a terrific article at Ned Batchelder's blog on how he manages spam.

His technique can prevent both playback bots, as well as form-filling bots, from submitting garbage data. The process is fairly basic:

  1. A timestamp field is inserted as a part of the commenting form.
  2. A spinner field is included, its value being a hash of four key data elements:
    • The timestamp
    • The client's IP address
    • The entry ID of the post being commented on
    • A secret
  3. Field names on the form are all randomized, with the exception of the spinner. The randomization process uses the spinner value, the real field name, and a secret.
  4. Honeypots are scattered throughout the form, and made invisible to humans through CSS.

Once the form data is submitted, valdation occurs to detect whether a bot was present:

  1. The spinner gets read to figure out which form fields match which data.
  2. The timestamp is checked and rejected if it's in too far into the past, in the future, or not present.
  3. The spinner value is checked to ensure it hasn't been tampered with.
  4. Honeypots are checked to see if data is provided in any of them.
  5. The rest of the data is validated as usual.

Ned's article goes further into the details than I have above, so I highly recommend reading it if you're interested in this kind of thing. Time will tell as to whether this technique will be successful at keeping bad comments out, but I'm optimistic that it will.

Dumping WordPress

Dec 17, 2020

Today is the day I dump WordPress for a custom-built, Django-powered platform. The site look and feel has changed, so click through from your RSS reader (if you're reading from one) to see the new look. In addition, comments are now enabled on all posts. I'm using an interesting spam mitigation technique that will hopefully keep things clean. Time will tell how well it works.

I made a few design decisions with this redesign and with the platform itself:

  1. Site search is now simply powered by Google. They do search better than most anyone around, so why reinvent the wheel?
  2. Posts and pages are Markdown-aware by default. Comments accept Markdown too!
  3. I'm using off-the-shelf components from Bootstrap, as well as icons from FontAwesome.
  4. Things should, generally, be responsive and pleasing on mobile.

Working with Django is, generally, a real pleasure. I was able to stand up this platform in just under three weeks time:

Commit graph for this site's platform

If you spot any issues, please let me know; bug reports are a big help. I'm sure there are broken images here and there, especially on some of my older posts. Additional details on this new platform are coming soon, including a pointer to a great article on spam mitigation. I'm hopeful that I will get back into a more frequent writing cadence now that I have a better platform to use.

Slimming Down

Nov 30, 2018

After what seems like an eternity, I've finally had some spare time to dedicate to this website. I've developed a brand new theme for the site, which is visually a lot simpler than the old one. I've ditched the old branding, deciding to stick with a simpler-is-better mindset. In the process of doing this update, I've removed a number of old posts that I feel no longer fit here (namely all the posts on my now-unsupported Firefox extensions and tutorials).

I hope to take this website in a slightly different direction than I have gone in the past. This visual refresh is one step on that journey.

This post serves as a notice that all Firefox content on this website has been removed. This includes:

  • CoLT
  • Googlebar Lite
  • Firefox Toolbar Tutorial
  • Firefox Profile Tutorial
  • Automatic Extension Updates Tutorial

All links to that content should now redirect to this notice statement. If you're looking for information on the above, here are a few external references for your use:

I have removed my Firefox toolbar tutorial from this site, since it is now woefully out of date. If you're looking for Firefox extension development information, turn to the official documentation.

Contact Form Issues?

Mar 26, 2016

I've seen a couple of different reports here that the contact form isn't working properly. That said, the form seems to work for me in the latest versions of Firefox, Chrome, and IE. If you have tried to contact me via the form and gotten an error, please leave a comment with this post. I'd love to know what browser you see the issue in, and what the error is. Thanks.

Securing Born Geek

Feb 7, 2016

This website now enforces the use of https, thanks to the Let's Encrypt initiative and the good folks at DreamHost. I initially had a number of problems in getting WordPress to behave, but I found this helpful article that pointed me in the right direction. I believe the bit of magic that helped me was running the wp CLI tool:

wp search-replace https://borngeek.com https://borngeek.com --precise --recurse-objects

Things now seem to be working, though if you spot a problem anywhere, let me know.

Commenting Fixes

Jan 21, 2016

The commenting system on this site was throwing some nasty errors, as I found out this morning. They were due to an outdated comment spam plugin I was using. I have removed the offending plugin, replacing it with another, so commenting should work once again.

Contact Form Fixed

May 4, 2015

Well, that was fast! I've found the problem with the contact form and corrected it, so emails should now actually make it to my inbox. Apologies for the problem!

I discovered this morning that my site contact form is not working properly. I will investigate why and hope to have a fix in place soon. Until then, if you've sent me an email recently, I likely didn't get it. Feel free to leave a comment here or email support at borngeek dot com. It's been fixed!

Migrating to HTML 5

Jan 20, 2015

After sitting on an XHTML Strict template for years and years, I've finally migrated this site's theme to HTML 5. A number of new elements have been put to use, styles have been trimmed a little, and I'm using one less web-font. Hopefully I haven't broken too much; if you spot something, let me know in the comments below. As always, expect sporadic updates as I add polish.

Redirection Woes

Sep 5, 2014

I recently made a change to this site to remove the 'www' from the front of the URL. Well, it turns out this caused a large number of headaches with WordPress (though I think the actual root cause of the problem lies in a custom .htaccess rule set that I wrote). Anyways, I'm going back to the old-school 'www' style URL until I have more time to fix it. If you see problems with the site, please let me know.

I have just pushed out the responsive version of this site's theme, so you should see it immediately. Though the various tweaks may not be immediately apparent, the experience of this site on a mobile device or tablet (or a smaller screen in general) should be much better than before. Resize your browser window in the horizontal direction to see the style changes in real time!

There are still a few pain points to work through:

  1. I'm still a little unsure how to handle the syntax-highlighted code snippets in the various posts around the site. Snippets that don't use syntax highlighting will word-wrap, but the syntax-highlighted blocks currently just offer a horizontal scroll bar.
  2. Various images in older posts need to have their hard-coded sizes removed from the img tags, so that they'll scale appropriately. This is just a matter of going through and making those changes.

There could be other issues that I have yet to stumble across. From my limited testing, the site looks alright in Firefox, Chrome, and IE-9. I'm sure I'll be tweaking stuff here and there over the next few days. If you spot problems, please let me know by leaving a comment.

I have decided to start using the SyntaxHighlighter package here at this website, to make various code snippets a little easier to read. This package really appeals to me since it supports a number of languages, has a graceful fallback mechanism, and looks nice. Rolling out these changes will be slow, however, since I have to go through and apply some styling to all the appropriate code blocks. As always, let me know if you spot a problem with this new feature.

Missing Backslashes

Feb 14, 2013

I just realized that a number of posts that were imported to this site from my old blog are missing backslash characters. After doing some investigation, I found out that there's an associated WordPress bug (Ticket #21007) against the importer utility. Apparently, backslashes aren't preserved as they should be.

I'm working to fix all of the relevant posts and comments. When I've completed this task, I'll update this post.

Update: I believe I have fixed all of the relevant posts. If you spot a problem somewhere, let me know!

After a great deal of preparation, I have finally closed the doors on Year of the Code Monkey, my former blog URL. All of the old URLs should redirect to this site instead, including the RSS feed. If you have a subscription to the old Year of the Code Monkey RSS feed, please update the URL to point to the Born Geek feed instead. At some point in the future, I will remove the redirection rule for that feed.

As always, let me know if you spot some sort of problem with this migration.

I'm in the process of moving my blog posts here to Born Geek. Lots of links, photos, and styles are broken at the moment, so please bear with me as I move all of this data.

Update: The migration has been completed.

Code Articles Moved

Jun 21, 2012

In further preparation for merging my blog with Born Geek, the "Code" section of this website has been relocated. You will now find all of the old Visual-C++ articles filed as back-dated posts beneath the Visual-C++ tag. If you spot a problem with any of them, let me know by leaving a comment here. Below is a master list of the articles, for convenience:

General Articles

Dialog Based Applications

Window Placement and Sizing