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!
Contact Form Not Working
May 4, 2015Fixing the Thinkpad Hot-key On-Screen Display
Apr 6, 2015Lenovo Thinkpads have an on-screen display for various hot-keys. For example, when you change the monitor brightness, or the volume level, an on-screen overlay will display showing the current brightness level or volume level, respectively. Twice, I have received laptops from Lenovo that have this software installed, but the on-screen display never appears. Frustrated by this bug, I used the Dependency Walker to troubleshoot this problem a while back, and subsequently found the solution.
Simply install the Visual Studio 2010 C++ redistributable, available from Microsoft (make sure to install the x86 version, even on a 64-bit system; the on-screen display application is a 32-bit process). Once this package is installed, and the laptop rebooted, the problem should go away.
Brown Sugar Saver
Mar 25, 2015
I've been meaning to post about this for a while now, because this product is as close to black magic as I've ever seen, even though I know the theory of how it works. My wife and I picked up a Brown Sugar Saver from Sur La Table while at our local mall a few weeks ago. We had a container of brown sugar that was literally as hard as a rock. Various metal implements were unable to pry the concrete-like material from its container, so we decided we'd give this a try.
The Brown Sugar Saver is simply a piece of terracotta pottery; nothing more. You soak the small medallion in a dish of water for 15 minutes, remove it, blot it dry with a towel, and place it directly in the container with your brown sugar. We did this, and in the morning found that our brown sugar was just as soft and pliable as it would be had you just opened a fresh bag of the stuff! Needless to say, we were really surprised. It only cost $4, and has solved an annoying problem that I've lived with for far too long. I highly recommend this thing (you can buy similar ones in a number of places).
Setting the Time Zone in GitLab
Feb 27, 2015GitLab defaults its time zone to UTC, which may not be what you want. Thankfully, you can update the value directly from your gitlab.rb file. Here's the relevant line:
gitlab_rails['time_zone'] = 'America/New_York'
Once you've added the field, simply reconfigure and restart:
sudo gitlab-ctl reconfigure sudo gitlab-ctl restart
A list of all the available timezones is available on Wikipedia.
Migrating to HTML 5
Jan 20, 2015After 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.
Electrolysis Growing Pains
Jan 16, 2015In their march to copy Google Chrome, Mozilla is moving Firefox to a multi-process architecture. The code name for this project is Electrolysis. As of this writing, this project's integration target for released levels of Firefox is at the end of 2015. Dates can always slip, and are likely to, but that target seems real soon now.
Frustratingly, Mozilla has been surprisingly quiet about this upcoming change, at least from a developer standpoint. For months the Mozilla Add-ons Blog has promised upcoming articles on the changes necessary for add-on authors, but as of this writing, nothing has appeared. What documentation does exist is, as usual, poorly written. The examples they provide aren't real-world enough for me to fully understand.
It frightens me that Mozilla should be so lackadaisical about evangelizing these changes. This architecture shift will affect the vast majority of add-ons in one form or another. I verified tonight in a nightly build that both Googlebar Lite and CoLT are affected by this change, the former being broken in a number of areas. It seems to me that Mozilla should shift their evangelism of this new architecture into high gear. Every developer who cares about application compatibility needs to be working on these changes sooner rather than later; otherwise, a ton of add-ons won't work properly come release day.
Redirection Woes
Sep 5, 2014I 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.
French Toast
May 6, 2014I've been meaning to transcribe this recipe for some time:
- 3 beaten eggs
- 3/4 cup milk
- 1 tablespoon sugar
- 1/4 tsp salt
- Ground cinnamon (optional)
In a shallow bowl beat together eggs, milk, sugar, and salt. Dip bread in egg mixture, coating both sides. Sprinkle cinnamon over the surface of each slice as you cook them.
Firefox Extension Utilities
Apr 28, 2014I have created a GitHub repo storing several Firefox extension utility scripts that I wrote. Here's the rundown on what this repository contains:
- compareLocales.pl
- Compares all of the locales it finds against a "master" locale (
en-US
by default) and reports the number of exact duplicate entries for each. This is useful for figuring out which locales have not been updated. - entityToProperty.pl
- Converts a given list of locale entities into corresponding properties. Handy for migrating existing entity localizations into a
.properties
file. - removeLocaleEntries.pl
- This script removes a given list of entries from all of the locale folders it finds in the current working directory and below. Useful for cleaning up strings that are no longer needed.
Hopefully others will find these scripts to be useful. I hope to add additional scripts to this repository over time.
Born Geek on GitHub
Mar 22, 2014I have uploaded the source of both CoLT and Googlebar Lite to GitHub:
This should make it way easier for folks to submit new ideas and bug reports for each extension, provide patches (if you feel so inclined), and view sample code for Firefox extension development. I've already posted a few issues to the CoLT repo, and a number should be appearing for Googlebar Lite as well.
Exploration in Gaming
Oct 10, 2013For a little while now, I've been playing and enjoying Terraria, a side-scrolling exploration game (somewhat similar, from what I hear, to Minecraft). Its 16-bit vibe really hits the nostalgia button for me, not to mention that it's just plain fun.
That said, I think the single most attractive feature of this game is that you get to really explore a computer-generated world (no two of which are alike!). It's the exploration factor that attracts me most. Once I hit the "hard mode" portion of the game, it starts to feel like a grind to me. The discovery of brand new places and items is my carrot on the stick; once I've fully uncovered the map, the game loses its luster.
I think the same thing can be said for a number of other games I have enjoyed in the past, including ones like Skyrim. The expansive world is just plain fun to explore; there's always a new cave, or city, or ruin to find and explore. Quests can keep things interesting, but it's seeing new places that really gets me excited.
Are there any games out there that are, to some degree, solely about the exploration? I'm pretty sure that Dear Esther fits that bill (and I have yet to play it), but I'm wondering if there are others I've missed. I have to believe that purely exploration-based games have a market (see Beyond Eyes, for example). If anyone can provide recommendations for titles in this space, I'd love to hear them.
NC SECU's Car Buying Service
Sep 26, 2013Let me get the crux of this review out of the way: the car buying service offered by the North Carolina State Employees' Credit Union (of which I am a member) rocks. Before I get to the details, allow me to provide a little background.
I've been driving a 1999 Mazda Protege since June of 2000. The Protege is an extremely reliable car, but mine was really starting to show its age: rust was visible in a few places, the pin stripes on the side were flaking off, and the car had gotten quite loud on the road (the wind and road noise were pretty unbearable). Having talked about getting a new car for a year or two, I finally decided to take action. In searching for a new car, I had a few essential criteria:
- It should be a four-door sedan
- It should have a quiet and smooth ride
- It should be a step up in quality from my Protege
I ended up test driving five vehicles, all in the same size and price class: the Honda Accord, Hyundai Sonata, Mazda 6, Nissan Altima, and Toyota Camry. All of these vehicles have their own strengths and weaknesses (e.g. the Mazda 6 was the sexiest on the outside, but had a rather loud and "active" ride), but I was able to whittle it down to two cars: the Altima and the Camry. I ended up choosing the Camry (though it was admittedly a tough choice; the Altima is a pretty nice vehicle).
Once I knew what I wanted, I started looking at local dealers' prices. My dad reminded me that our credit union had a car buying service, so I looked into it, mostly out of curiosity. Their process typically works as follows:
- You select the make, model, and year of the car you're looking for.
- You select the color and options you're interested in.
- You provide some contact information and submit.
Once the credit union has your information, they'll look for a car that most closely matches what you asked for. They'll then negotiate a price for that car, and will let you know what that price is. The turnaround time for this entire process was only two days (I submitted the request on a Monday and had a quote the very next day). My primary goal was to get an anchor price that I could use when negotiating with the local dealers.
The quote I received for the car I was interested in was way less than I expected it would be; nearly $5500 off the sticker price! Not only that, but they offered me nearly double what Carmax would have given me for my Protege! Needless to say, I was stunned at how competitive the deal was. Car shopping is an intimidating process and the negotiation phase was something I wasn't looking forward to at all. This service shortcut that headache altogether!
I decided to not even bother trying to negotiate for a better deal elsewhere. I'm sure there are people who could have gotten a better deal, but I decided that my time and efforts were worth something, and SECU's offer was very tempting. The car was delivered to my local SECU branch (they can deliver to your house, if you so desire), and most of the paperwork was handled for me. I essentially drove to my bank and swapped cars with the driver who delivered it (after signing the requisite forms, of course).
All in all, I would definitely use this service again. I'm so impressed with how easy it all was, and it took the most frustrating aspect of car buying out of the equation completely. If you're a member of a credit union, I highly recommend checking out this kind of service if it's available. It just might be the way I handle car buying from now on.
Font Rendering & Firefox Hardware Acceleration
Apr 11, 2013By default, Firefox ships with the Use hardware acceleration when enabled option turned on. Unfortunately, Firefox has a number of font rendering bugs under the hardware acceleration umbrella (the following are a select few):
- Line spacing problem with D2D enabled(use hardware acceleration when available)
- Text using hardware acceleration looks inferior to and considerably different from text with acceleration disabled and on other browsers
- Increased line heights with DirectWrite (unlike in IE9)
As a result of these bugs, I've run with hardware acceleration disabled on my personal systems for quite some time. This, however, has resulted in an unforeseen consequence with my web development. The apps and pages I've developed look great in every browser, except stock Firefox! I only recently ran into this issue when I re-enabled hardware acceleration on my work laptop (in the process of creating a new profile). To my horror, several sites I had developed looked pretty terrible, my photo site being one among them.
I have since rolled out an updated stylesheet to my photo site, fixing the problems that showed up in stock Firefox. It should (hopefully) still look alright in all other browser variants (if you spot a bug, let me know). It's worth knowing, however, that enabling hardware acceleration in Firefox is a worthwhile thing to do if you develop things for the web. The underlying bugs in the rendering engine may bring out underlying flaws in your design.
New Responsive Design is Live
Apr 2, 2013I 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:
- 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.
- 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.
Controlling Mobile Browser Layout
Mar 26, 2013I'm currently working on converting this site's layout to a fluid, responsive-design variant, which will make the site much more usable on mobile devices (as of this writing, the mobile experience is pretty bad). In my efforts to improve the design, I noted that the browser on my Android phone didn't respond to my changes at all. The Responsive Design View in Firefox yielded acceptable results, as did the developer tools available in Chrome (which, by the way, are pretty terrible). So why did my phone look so different?
The answer has to do with the concept of the viewport. I found a terrific pair of articles detailing the ideas behind viewports on both the desktop and mobile devices (be sure to read the desktop article first; it sets the stage for the second). It turns out that my page's header was missing a key meta
element, whose very existence we can thank Apple (of all people) for. The tag looks like this:
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=8" />
Using this meta
entry allows devices to scale their layout viewport appropriately. Adding this one element fixed my phone, causing the site to render as expected. There are other articles that discuss this element better than I could, so give them a look. And don't forget this one line if you're designing responsively; it'll save you a lot of potential headache!
Improving Code Snippets
Feb 15, 2013I 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, 2013I 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!
Logging to Firebug From XUL
Jan 24, 2013The Firebug extension is a very helpful tool for web development. But did you know that you can use its console as an output target for your Firefox extensions? It's pretty simple to do:
Firebug.Console.log("Text to log"); // Output text Firebug.Console.log(myObj); // Output an object
Is that easy or what? Having this capability is a great way to print out JavaScript objects from your Firefox extensions, making your debugging life much easier.
Fixing Location Services in Android
Nov 5, 2012I have a Samsung Galaxy Tab 7.0 Plus running the Ice Cream Sandwich version (4.0.4) of Android. For some unexplained reason, the location services feature stopped working a few months ago, but only for what seemed like a few applications. Google Plus no longer knew my location, Radar Now no longer knew it, and the stock web browser was also clueless. Google Maps, on the other hand, knew right where I was. Since I use the tablet in the house, GPS isn't much help. I frustratingly was unable to fix things, until today, when I stumbled on a solution. Here's how I did it:
- I opened up Settings » Location services and unchecked the Location and Google search option
- I rebooted my device
- Back in Settings » Location services, I rechecked the Location and Google search option
- I then toggled the Use wireless networks option, and answered a prompt that appeared about using my network location in third-party apps (or something similar; I don't have the exact message in front of me).
- Success!
Using GPS to lock in on my position worked outside, but that alone didn't seem to set things right. Disabling the above option, rebooting, and then re-enabling it seemed to do the trick. Hopefully this will help anyone else who might have a similar problem.
Installing iTunes Without the Bloat
Oct 25, 2012I went looking for how to install iTunes recently without the bloat (because I remember seeing an article about doing just that a while back), and though I found the article, it had apparently moved from its original location. As such, I'm going to note down the steps here in case said article ever disappears. The following is intended for use on a Windows 7 64-bit system, but I think these steps should work in general. It's also intended for using an iPod classic, which is the only Apple device I care to use (though these instructions also work with the nano, mini, and shuffle variants).
- Download the iTunes installer
- Unpack the installer using something like IZArc
- Run the installers, using the given commands, in the following order:
- AppleApplicationSupport.msi /passive
- Quicktime.msi /passive (if this installer is present)
- iTunes64.msi /passive