Last week, while on vacation in the northwestern corner of the United States, I was notified by a few people that my article Stack Overflow Hates New Users had made it onto a news site I was previously unfamiliar with, hackernoon (actually, the article was a part of a longer piece entitled The decline of Stack Overflow). It's rather amusing that an article I wrote over four years ago is still being cited by people, and I think that says a lot about the community surrounding the venerable question and answer site. I've been a user at said site for over four and a half years, and I have a few additional things I'd like to discuss.

Seeing as I have already written about things I learned using Stack Overflow, a list of my gripes with Stack Overflow, and a few suggested improvements for Stack Overflow, I won't rehash those here. What I would like to talk about, however, is how I think new users should approach the Stack Overflow experience:

Search, Search, and Search Again

I cannot stress this point enough. Before you ask a question on the site, search it to see if a similar question has already been asked. Over 95% of the time, at least one person will have already asked a question that should point you in the right direction. Don't use the built-in search, by the way; like many site search boxes, it's pretty lousy. Search with Google using the site:stackoverflow.com operator, and include any relevant keywords that could narrow your search (searching is an art form and non-trivial!).

Ask Detailed Questions

This is probably the biggest mistake new users make: they don't provide enough detail. Asking detailed questions takes some practice to master (I still haven't mastered this). Before you click that "Ask Question" button, ask yourself these questions:

  1. Is my question clear, concise, and easy to read?
  2. Have I mentioned what I've tried in the question I'm about to post?
  3. Have I provided all relevant details about my question (any specific library versions, or specific database flavors, or the operating system in use, etc.)?
  4. Do I have an idea of the direction to head, or am I flying blind? Have I made it known in my question that I know (or don't know) where to go?
  5. Where else have I looked for solutions? Did I mention these in my question?

Being short and to the point, yet detailed, is a difficult balance to achieve, but find that balance and you'll reap the rewards.

Be Patient

It's very difficult to get a lot of rep points in the beginning, so be patient; building trust takes time. Set mini-goals for yourself. I personally set a goal to get to 2000 rep points so I could edit other posts without having to have my edits approved. Once I reached that goal, I stopped worrying about points altogether (it's not worth worrying about)! Also, be courteous to everyone, even the jerks on the site (of which there are a number). Know-it-alls tend to like to flaunt their intelligence, and Stack Overflow is an outlet through which they can scratch that itch.

Join a Sister Site

I'm a big fan of Arqade, a sister site to Stack Overflow focused on video games. The community there is much more friendly and welcoming, and if you earn enough reputation at a site like that (only 200 points), you'll automatically get 100 bonus points on every other Stack Exchange site!

Stack Overflow is a great resource to use, but it's one that I keep at arm's length. These days, I tend to ask more questions than I answer, and I often find answers to questions I have through other people's postings. It's easy to get swept up in the competitiveness of the site at the beginning, but if you avoid doing that, you'll have a much more pleasant experience.

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.

Pasta e Fagioli Recipe

Dec 29, 2015

This delicious recipe was sent to us by my wife's grandmother. It's incredibly tasty!

  • 1 and 1/2 tsp oil
  • 1 lb ground beef (or turkey)
  • 6 oz onion; chopped
  • 7 oz carrots; slivered (a bag of shredded carrots also works)
  • 7 oz celery; diced
  • 24 oz tomatoes; canned, diced
  • 1 can red kidney beans
  • 1 can white kidney beans or cannellini beans
  • 44 oz beef stock
  • 1 and 1/2 tsp dried oregano
  • 1 and 1/4 tsp pepper
  • 2 and 1/2 tsp fresh chopped parsley
  • 3/4 tsp Tabasco sauce
  • 24 oz spaghetti sauce
  • 4 oz dry pasta ditalini (or any other small pasta)

Saute beef in oil in large 10 qt pot until beef starts to brown. Add onions, carrots, celery, tomatoes, and simmer for about 10 minutes. Drain and rinse beans and add to the pot. Next, add beef stock, oregano, pepper, Tabasco, spaghetti sauce, and pasta. Add chopped parsley. Simmer until celery and carrots are tender, about 45 minutes to 1 hour. Makes 4.5 quarts of soup.

Pulled Party Pork

Nov 8, 2015

My wife was sent a recipe by a family member down in Florida that's really good. This recipe comes from the Junior League of Tampa, and I'm transcribing it here just in case their electronic copy ever disappears.

  • 1 (3-lb) pork tenderloin or Boston butt roast
  • 1 cup water
  • 1 (18 oz) bottle prepared BBQ sauce
  • 1/4 cup packed brown sugar
  • 2 tablespoons Worcestershire sauce
  • 1 teaspoon each salt and pepper

Combine the pork and water in a slow cooker. Cook on high for 7 hours. Drain, reserving 1 cup liquid. Shred the roast in the slow cooker with a fork. Add the remaining ingredients. Add the reserved cooking liquid if necessary. Cook on low for 1 hour. Serve on rolls for sandwiches if desired.

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!

Lenovo 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
Brown Sugar Saver

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).

GitLab 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, 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.

In 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, 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.

French Toast

May 6, 2014

I'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.

I 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, 2014

I 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, 2013

For 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.

Let 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:

  1. You select the make, model, and year of the car you're looking for.
  2. You select the color and options you're interested in.
  3. 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.

By 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):

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.