Categories
General HTML, CSS and Javascript

I made a Spot-it Clone

tl;dr: I made a Spot it game clone. Go give it a try

Spot-It-Game-by-Blue-OrangeOur family purchased the original Spot it game a while back and after playing it for a while I started trying to figure out how it worked.  I was fascinated by how there could only be one match no matter what two cards you looked at.

From their website: “There is always one, and only one, matching symbol between any two cards!” Wait, out of 55 cards if you grab any two cards there is only one match between them? How is that possible?

Matching example

Finding out how it works

I went to the internet to find out how it worked. I found several discussions about it that were all above my mental capacities for math. Then I bumped into an article called Spot-it – How’d They Do That by RadiganEngineering that had examples of what the cards would be for different item counts. Well, if I didn’t have to figure things out, I could do something with that.

Making my own version

I thought it would be really cool to make my own Spot It game with my own pictures. So I started digging into making a web version that could accept input and generate the game for me to be printed out. After way too many hours of playing with the code and neglecting my family, I was able to create a Spot it game clone. It allows you to provide your own images or words and cards will be “randomly” generated. I used the structure from RadiganEngineering but randomize the card order and randomize the order of the items within each card.

first-print
The first print on 3×5 cards

Naturally I had to keep adding functionality, demo content, saving the data locally, pass content in via the URL, load demos via URL, drag and drop images, etc. The basic card generation and game I had done in a day, all the other stuff took too many weekends.

I hope this is of benefit to others. I found this blog post about creating a Spot It game with family pictures. It looks like it took a LOT of work to make that happen. Hopefully my site allows similar creations in a fraction of the time.

Second print on 3x5 cards, with 6 items per card
Second print on 3×5 cards, with 6 items per card. I have since fixed the cropped text at the bottom.

Technical details

I don’t pretend to think this is perfect. It was hacked together pretty quickly despite it taking so long. I debated between using newer technologies (SASS, ES6, etc) to help myself improve in those areas, but for now I decided to leave it as basic JavaScript so that it is easier for others to understand. Some day I may make it fancier. So for all my techy friends, don’t mock my lack of using the latest and greatest, it was for the greater good 🙂 Some day it will bother me enough to update everything, but for now it is what it is.

It is entirely done client-side via JavaScript. Nothing is sent to the server.  Most of it is custom written, but I did find an amazing drag and drop library called Dropzone that helped out a lot with some cross browser issues.

If you have any feedback, questions, etc you can find me on twitter, post a comment below, or give feedback on the GitHub project.

Categories
General Technology

Don’t use Neighborhood ISP – A review

I have been with Neighborhood ISP, based out of Orem, Utah, for almost a year.  It has been hands down the worst experience I have ever had with a paid service of any kind. If you are looking at what they offer and think “wow high speed for such a low price?? it’s just too good to be true!” IT IS. It is absolutely too good to be true.

Never a great experience

Our connection was never stellar. I sent regular emails to them about connection speeds, both up and down.  Sure, I’d have a week here or there where things were great. Nothing to complain about. But most the time it was far, far below their advertised speeds.

But the price was great, so I stuck with it.  Whoops.

From bad to worse

Then the last few months (Aug-Oct 2013) it became abysmal.  Regularly less than 1mb download speeds.  I sent repeated emails with screenshots of our connection speeds (through their suggested site of speedtest.net, see below). All I got in return was regular excuses.

Excuses, excuses

“We are currently working on the issue effecting your speed and hope to resolve it soon” – Aug 25
“More work is being performed tomorrow on the wireless facility tomorrow.” – Sep 4
“We believe there are a handful of speed issues related to our switch to a new fiber line which has not occurred on your wireless facility yet. You should soon receive an e-mail from our infrastructure team about this upgrade process over the next few days.” – Sep 20
“we are trying everything we can to resolve the issues. Our field technicians are working solely on this issue as there are still a few customers remaining that this is happening to. … We take speed issues very seriously and I have escalated this e-mail chain to our Director of Broadband Services.” – Sep 24 (never heard from the Director)

[[While writing this post I couldn’t save a draft because of no connection. Lets see how often that happens]]

I made a call and they said that the “new tower would be done Oct 21” and there wasn’t much they could do until then. So basically being told “don’t call us until then”.  Weeks of additional sucky internet ensued.

I called again around Oct 21 when I was trying to work from home (trying being the key word here) and couldn’t get web pages to load. I worked with the tech to determine it was not my router, but a UDP vs TCP issue on their end.  An issue that “only 2-3 people on this tower are experiencing”.

Come to my house… please!!

I couldn’t even get them to come out to my house and check things.  They did come out once to replace something on my roof, but they were doing that for everyone in the area already due to the upgrades that were supposed to make everything better. Oh, I made the appointment, waited around for all afternoon on Saturday, and they never showed up. I wrote to complain and they said we weren’t on the list, even though the email chain I responded to had their confirmation of the appointment. They came a few days later.

In my last email to them I pleaded “Come check my POE [their equipment], check the wiring, switch my equipment out, find out what makes me special to have such terrible connection issues. Point me to a different tower, it can’t get any worse”. Nope, no offer to come out to the house, other then to remove my equipment if I wanted to cancel my service.

[[no connection, no save again]]

Why am I still here?

I have no idea why I subjected myself to such pain and stayed with them for so long.  My wife texted me several times to curse their name, even my children noticed enough to regularly complain.

One of the reasons I wanted to go with Neighborhood ISP (other than the too good to be price for the speed) was to support the local guy. I have given them chance after chance after chance to make things right.  Only responding to emails with excuses is not a way to make things right.

Credit where credit is due

Now to give credit where credit is due, I was always treated very well.  Their techs on both the email communication and phone calls were always very courteous. They gave me credit for the last month or two since my service was not what they promised.  They have also promised to refund my installation cost because of their not being able to provide good service.  Props for that.

Slow, slower, slowest

Here are some of the screenshots I sent to plead my case. All I got in response was excuses.

Sep 9
image

Sep 19
image-1

Oct 24
image-2

The above 3 images took about 5 minutes to upload (Oct 24 10pm). So I thought I’d check my speed again. At the moment I can’t even upload the screenshots of my current speeds.

Finally got them up (10:30pm)

First try, the upload speed didn’t even register
Screenshot 2013-10-27 21.36.22

Second round, it wouldn’t even connect. Left it trying for more than 5 minutes
Screenshot 2013-10-27 21.48.57

Just switched to connect through my phone because I couldn’t even get the page to save and I didn’t want to loose my work. (11pm)

Final Warning

This is a final warning. If you came to this page looking for a review of NeighborhoodISP take my advice and stay clear. Some day they may get their act together, but if there are problems the above should make it abundantly clear that you will not get anything but excuses from them.

Even if they get their act together with their speeds, their customer service is abysmal. Saying that you take speed very seriously in general, but taking no action for the individual customer suffering with minutes of load time per page is the big problem. I as an individual did not matter to them.

Again, this is hands down the worst customer service experience I have had with any company. As full disclosure, I did tell them that if they couldn’t get things taken care of I would make sure to post about my experience and ensure that any place that had reviews for them got a negative review.  They didn’t seem to care.  Responding with yet another set of excuses, no offer to come to my house to look into things, and the offer of a refund.

Do yourself a favor and look elsewhere. You have been warned.

Categories
Responsive

A responsive retrofit of LDS.org

I just got back from the Breaking Development conference in Dallas. A phenomenal conference on mobile goodness. You should go.

One of the presentations was by Karen McGrane titled Uncle Sam Wants You (To Optimize Your Content for Mobile) in which she, in part, goes into how President Obama has mandated that federal agencies should optimize for mobile web content.  Each agency had something like 90 days to get two main feature on mobile… or something along those lines. The crazy thing was, they were starting to deliver.

A bit of history

I don’t know that I have really mentioned that I work for The Church of Jesus Christ of Latter-day Saints on here previously.  I’m the front-end development lead for LDS.org.  We have naturally wanted to support mobile for a LONG time, but we have a huge site that is sometimes difficult to get to change direction.  The decision makers are on board with responsive web design, but sometimes getting new content and sections out is more important than improvements, and rightly so.  We do strive to make anything new responsive though.

We have a LOT of content. The site is the web presence for 4 magazines with 40+ years of monthly content, curriculum for various age levels, scriptures and the text, audio and video of the semi-annual General Conference of the entire church membership (over 14 million). Yes… a LOT of content.

Most of that content is simple article pages.  Just text and the occasional image.  Prime pickings for responsive.  But we have lots of other pages that are more complicated with carousels, features, etc. Stuff that is definitely responsiveizable (yes I made that word up), but not as easily as the articles.

…and we’re back

Back to the Government. After hearing about their mandate, and success, I reflected back to project from the beginning of 2012 where I needed to make some existing content (our global header and footer) work on a new site that was going to be responsive. The header/footer is used on various sites, controlled by different teams. It wasn’t something I could go in and just change up on a whim.  So I started playing around in Google Chrome’s debug tools to see what I could do by only changing the CSS.  I was surprised by how far I was able to get.

I then started working on a separate responsive.css file that could be dropped into any site that wanted to be responsive.  It wasn’t perfect, but provided a way for us to support responsive and non-responsive at the same time. We have since released a completely new header/footer that is responsive from the ground up.

I also attended an online conference called Responsive Web Design Summit back in August. One of the talks was called Retroffiting Sites for Responsive Web Design by Ben Callahan, where he described doing much the same process that I did for our old header/footer. It was nice to have a good name for that type of process.

During Karen’s talk, I started to lament how the government could get to mobile before I could. I started to ponder what I could do with a retrofit of LDS.org, instead of waiting for a new design. It worked before, why not again?

The retrofit begins

That night (ok maybe during that talk… and the next one…) I started playing around in my inspector. I made progress quickly, so I jumped to the CSS files themselves.

I came back to work and pitched the idea to the project project manager.  My pitch was that this would be a true retrofit. This would be CSS and JS changes only, no code changes. He was very enthusiastic and gave me the go ahead to dive in fully.

I made progress quickly. We consciously did NOT try to tackle the homepage or section landing pages that had large image carousels and other fanciness.  We wanted to target the content specific pages.  First I got them working pretty well, then I got to wondering if I could get our index (table of contents) pages working. These also came together pretty well.  As the day went on more and more of the site was starting to be responsive, and it was actually looking good.  Not as kludged together as I had feared it might look.

Now being that this is a retrofit with no code changes, things are definitely kludgey (they apparently just don’t look that way). I have to use JS to look for certain classes or ID’s on the pages that I want to target, and if found add an additional class to the page to trigger all the responsive goodness to fire.  This means you may see the desktop version for a quick second before it changes to the responsive version. We all know this isn’t great, but it is better than nothing.

How fast can I get this out?

This weekend (tomorrow) is our General Conference.  Wednesday, during a one on one with my manager, I asked what the possibility of us launching this retrofit (that I had started like 2 days prior) to the live site *before* General Conference would be.  My thinking is that General Conference is a huge event. Every year it gets more and more popular in social media.  #ldsconf regularly trends on Twitter during the conference sessions. This means lots of people on mobile devices talking about and going to the General Conference pages.  How cool would it be if when they went there, it was a good experience.

He looked at me in shock, and I admitted it was a long shot, but figured I would ask.  He said he would talk to those in charge of the site and let me know.

The next day he came back, I looked at him with anxious eyes and he gave me a thumbs up.  My jaw hit the floor and I got this huge grin on my face at the same time (is that what happend to the joker?). I couldn’t believe it was going to go from idea to implementation to release in under a week.  Suddenly the butterflies were flapping like crazy in my stomach. I had lots of polishing to do.

I got to it. I got some input from a designer, our QA team started working on it as well. Things started looking better and better. We found more and more pages that we could add to the list.  Thursday we got the full green light and I pushed it out about an hour ago (3pm MST).

It lives!!!

Wow. What a whirlwind. I am so amazingly stoked to get this retrofit out to the world. Is it perfect? Oh no… far from it.  Does it work on every mobile device out there? Nope. Is it a HUGE improvement for the majority of mobile users visitor our site? Yup. I couldn’t be happier to have gotten so much done in such little time. I love the trust that other put in me to make this happen.  There is no way I am going to let us rest in this current state. If anything, this makes me want to push harder for a better experience across the board.

We have 10’s of thousands if not 100’s of thousands of pages of content. We just got 80-90% of them responsive for the majority of smartphones in less than a week.  This may not be a microsoft.com or disney.com level of responsive release (which also happened this week). But I’m pretty proud of what we accomplished.  Hopefully we can retrofit our homepage and section landing pages soon. It would be great to be responsive end to end, but some of those changes will require more efforts than CSS and JS alone can provide.

Responsive design can be done, even on a ginormous site. It’s just a step along the path to a better site for the users who come to consume our content.

Update:

A few more details based on questions I have received in person or elsewhere.

Why the need to have “no code changes” (html)?

For a period of time before and after our General Conference we go into a limited release period to make sure we don’t do anything that will cause problems with the site during this critical time of getting content out via various methods (live streams, downloads, etc). We have moved our CSS and JS to a separate CDN server and so updating there had very little risk of causing a problem, as opposed to trying to stick in a new class on the HTML but missing a semi-colon (or something) making the page break. Had this not been done, there would have been zero chance of this going out.

We have full intention of going in and hardcoding the needed additional classes once the limited release period is over, as well as making any other small tweaks to the HTML that are needed. These should start coming out within the next few weeks.

Why do I see the desktop version real quick before the mobile version kicks in?

See the above. Because we have to do a JS insertion of the needed classes, that sometimes takes a second to run. We will hardcode the classes soon, and that should take care of the blink.

Why only one breakpoint? The world isn’t just desktop or handheld you know.

This was in the interest of time. Desktop is an existing design, and handheld is relatively easy (stop floating things into column, make them 100%, etc).  The various decisions of “how far down can that 70/30 two column layout go with a side nav, and now without a side nav” are where a lot of the time and complexity come. By skipping that portion (for now) we were able to get something out WAAAAY faster.  Of course we will go back and make things better in that middle area. I’ll be realistic and say that it may not be very soon. But tablet are currently no worse than they were before this effort. We are working on getting more pages/sections into this first phase of support (breadth) before making the previously patched pages work even better (depth).

You’ve shot yourself in the foot. Now that you have a poor responsive implementation, you won’t do it the right way.

This is a worry that lingers in my mind.  Prior to doing this, a responsive design was always way out in the distance.  Something we all want, but would never come. This effort has had an unexpected side effect, there is a huge increase in interest for responsive design now. The higher ups are asking if we can do this in more places.  It’s creating a fire (as in passion, not a bad thing to be extinguished), not putting it out.

Another nice advantage is that the current solution is definitely a patchwork of what we could do with limited time and limited ability to insert classes where we wanted them as hooks. This makes an experience which is passable, but not optimum.  Do you really think our designers will let that last very long? They are chomping at the bit to put some polish on this effort.  Their design reputation is now on the line. You better believe they have a strong desire to make this a priority in their own queues now 🙂

But users are still downloading tons of extra stuff they don’t need to. Big images, extra JS, etc etc.

Yup. They were doing that before the retrofit too. So at least now it looks a little better after they get all that. Again, I’m not going to rest on this current solution. Optimizations will be made. My team will soon be annoyed with me as I continually harp on them that we can’t leave this only half done. But for me it’s better to have content at least look good on a handheld and be enjoyable to consume now, than to wait another 6-12 months for the perfect solution to come along. Thus my calling this a retrofit, not a redesign. Unfortunately it comes with some baggage, but hopefully the benefits outweigh the disadvantages.

The header and footer are too fancy to be just a retrofit, what’s going on here!?!?

We released a new version of our header and footer a few months ago. Part of that redesign was to make it fully responsive for use in sites that have been released since then that are responsive. So that part was in place before the retrofit occurred.

Categories
Uncategorized

LDS.org resources

Here is a summary of the sites that I listed in my presentation.

Of course we have the main site: lds.org

To login to anything you need an lds account.

Tools dropdown

These sites are ones that you must be logged in to use that are particular to you or your unit. Except for maps. You get more information if you are logged in, but can still do general searches when you are not logged in.

Other Sites

Youth Related

Social Media

Categories
Performance

SORT 2010: Creating Faster Websites

I recently gave two presentations about creating faster websites at an internal conference at work. This is a list of the references I used in those presentations. I may continue to add to this as questions come up in the comments or via twitter.

Creating Faster Websites (Tuesday, Oct 12 @ 10am)

JSLint
CompressorRater
Sprite Generator
Steve Souders
Yahoo Performance Rules
Stubornella designing fast websites presentation
Aaron’s performance links on delicious

Creating Even Faster Websites (Tuesday, Oct 12 @ 11am)

CSS3 Stuff

Bandwidth

Bandwidth doesn’t matter much

Tools

Websites

Sprite Test

Full Size – Page, Results
Minified – Page, Results
Sprited – Page, Results
Gzipped – Page, Results

Categories
HTML, CSS and Javascript

CSS Icon Sprite System

At work, we make a lot of web apps. These are usually very data driven, so lots of tables and forms. To help identify actions on each page we use a number of icons for easy recognition.

We use icons in a few distinct ways. As a stand alone icon with no text and as an icon with text. The icon with text could be on it’s own, or floated left or right with other icons with text as potential actions.

As often happens in teams where many people are touching the CSS, we don’t know what all other team members have added to the site. I would find several declaration of the same icon, sometimes with the same styling but with different names such as “add-property” and then again as “add-agreement”.

So I set out to make a more efficient system for using our icons. I think this may have been around the time I first saw Nicole Sullivans Object Oriented CSS talk so I was inspired to make things a little more… object oriented (reusable chunks not tied to any given structure).

This is what I came up with.

How it works

First, lets make the element we want to act on semantically correct. Use the appropriate element (anchor, span, etc) and insert the appropriate text.

<a href="#d">Delete property</a>

Delete property

To make the site a bit more performant I wanted this system to use CSS sprites. So I combined the most commonly used icons into a diagonal sprite. Adding the class of “sprite” loads the sprite image into the layer. Since we are using a diagonal sprite that is positioned to 0,0 by default, it would show nothing. Or more specifically, the empty white space in the top left corner.

<a href="#d" class="sprite">Delete property</a>

Delete property

Not much of a change.

You then call the class of the icon within the sprite (code near end of article) that you want such as delete, edit, info, etc. This positions the sprite correctly to show the specific icon you want but it is still not spaced correctly.

<a href="#d" class="sprite delete">Delete property</a>

Delete property

Then you can add one of the following classes that define how the icon will be used (spacing). Each must be accompanied by the sprite class or they won’t work. They are as follows:

.icon

This will hide the text and show the icon only. The element will be set to the icon height (usually 16×16). Useful for a delete/edit/etc column in a table. The text is hidden, but still there for accessibility and potentially SEO if public.

<a href="#d" class="sprite delete icon">Delete property</a>

Delete property

.prefix

This will add padding to the left side of the element to make room for the icon and a little space in-between (20px total).

<a href="#d" class="sprite delete prefix">Delete property</a>

Delete property

.right

Floats the element to the right and adds a margin-left to provide spacing between multiple floated elements.

<a href="#d" class="sprite delete prefix right">Delete property</a>

Delete property

.left

Floats the element to the left and adds a margin-right to provide spacing between multiple floated elements.

<a href="#d" class="sprite delete prefix left">Delete property</a>

Hopefully it’s obvious how, by mixing the correct classes, you can create many more options then are specifically defined. You can easily add or change icons without having to go back to the CSS to create new combinations each time. You can just add a new “print” icon and instantly use it with the icon/prefix/etc classes. You don’t need to add print-icon, print-prefix, etc.

Here is the CSS

/* Set up the utility classes */
.sprite { background:url(/files/diagonalsprites/sprite-diagonal.png) no-repeat top left;}
.sprite.icon { height:16px; width:16px; overflow:hidden; display:inline-block; text-indent:100em; cursor:hand; cursor:pointer; }
*+html .sprite.icon { text-indent:0; width:0; padding-left:16px; } /*IE7 sucks*/
.sprite.prefix { padding-left:20px; height:20px; display:inline-block; }
.sprite.right { float:right; margin-left:15px; }
.sprite.left { float:left; margin-right:15px; }
/* Now the individual icons */
.accept { background-position: -234px -0px; }
.add { background-position: -208px -26px; }
.bomb { background-position: -182px -52px; }
.delete { background-position: -156px -78px; }
.feed { background-position: -130px -104px; }
.heart { background-position: -104px -130px; }
.lock { background-position: -78px -156px; }
.pencil { background-position: -52px -182px; }
.star { background-position: -26px -208px; }
.user { background-position: -0px -234px; }

Conclusion

I hope this system, or a derivative of it, can help you in your work. Several on my team have found this to be a great time saver. Once you understand the system and can remember the names of the specific icons, you can easily create many different displays for your icons without ever having to go back to the CSS. I use this almost daily at work and love the simplicity it bring to my pages.

I would love any feedback on how it can be improved and to hear of how you leverage it your own projects.

Categories
HTML, CSS and Javascript

Diagonal CSS Sprites

So you’ve got your sprite created, and it’s working great. 30+ icons in one image… major HTTP connections saved. You have made your little corner of the interwebs a little happier and faster. Steve Souders would be proud.

Until you find that your sprite is used on an element that is tall enough to expose the next image component down in the sprite.  The 50px of spacing between components you thought would be enough… isn’t. 50px isn’t enough so 100px should be right? Better make it 200px to be ultra safe. So you increase the space between all of your components from 50px to 200px which increases the height by 400% and probably increases the filesize a bit too.

The 200px spacing surely is tall enough… right?  RIGHT??!? Surely no content maintainer would ever put more then 200px of content in there after you hand it off. *gulp*

I figured there had to be a better way to make sure this didn’t happen. Horizontally spacing the sprite would solve the too tall issue, but then it has to be spaced out pretty decently as well. Probably even more than the vertical spacing.  What I wanted was the best of both worlds. Horizontal AND vertical spacing.

What do you get when you both horizontally and vertically space something? A diagonal.  I searched around but couldn’t find any mention of a diagonal sprite. I didn’t know if that meant this was a new idea, or a bad one that no one was willing to publish. I’m hoping it’s the former.

Why a Diagonal Sprite?

With the sprite built on a diagonal there are no components below or to the right of the component you are showing. This allows for the element using the sprite to be as wide or as tall as it needs to be with no worry of exposing the next component.

Unfortunately there is a filesize tradeoff. You add a LOT of unused whitespace. For one 30 or so component sprite that I changed from vertically stacked to diagonally stacked, there was only about a 10% increase in size.  For another that had around 60 images, it was a 45% increase. The 10% increase was pretty easy to swallow for the benefit gained. The 45% is a bit harder. So your mileage may vary.

Since you don’t have to put as much spacing between your sprite components (I do 10px vertically and horizontally to allow a little per component manipulation) the sprite dimensions are significantly smaller.  My 60 sprite image with 50px of space between components was 2142px tall. Spacing it out to 200px between components took it to over 8000px. The diagonal sprite using the same 60 components, with 10px padding ends up being around 1500px tall and wide. As far as I can tell this only really matters to the Opera browser. I can’t find information on any other browser having issues with ginormous dimensions, but would love to hear feedback if you know of other issues.

So that you can see this in practice, I created a simple 10 component sprite from a few icons from the famfamfam silk icon set (seen above). You can view an example page that shows the 50px, 200px and diagonally spaced sprites. The filesizes and dimensions ended up being: 50px – 16×610 5,723 bytes, 200px – 16×1960 5,967 bytes, diagonal – 250×250 6,554 bytes.

Resize the page to be fairly narrow to get content to wrap and even the 200px spaced sprite exposes an additional component.

Making the Diagonal Sprite

When making my normal vertically stacked sprites I use the fantastic online tool CSS Sprite Generator.  I noticed that the back end for that was open source and so grabbed a copy.

After significant pain in getting the required components installed on my local machine (post on that coming later), I tweaked their code to output the sprite in a diagonal. At the moment the code is kind of quick and dirty since I wasn’t sure if it was going to work. If there is interest in me making it available, please let me know in the comments below and I’ll try to get it cleaned up and released.

In the end I think this is a pretty decent solution to the problem I ran into. It probably doesn’t work for everyone and the filesize increase is something to consider, but it is an interesting option to have in the back pocket. I would love to hear your thoughts on this solution.

Categories
Uncategorized

SXSW 2010: Amazing Food

Wow.  What an amazing week of food. I’m really nervous to step on a scale when I get home.  Here’s the highlights.

Right after touching down in Austin we headed off to Lockhart, Texas.  This is a town about 30 miles outside of Austin that has 3 legendary BBQ joints.  The first one we went to was Blacks BBQ, a place that has been run by the same family for like 75 years.

Here we learned to be careful about what you ordered.  My ribs were some of the best I have ever had, but my brisket was so-so and kinda dry.  For others on the table it was the exact opposite.  Awesome brisket (nice and moist) and so-so ribs.  It all depends on where you get the cut from within the slab of meat.  Some of that can be chalked up to timing of when you reach the counter vs where they are in the slab.  Some you can actually ask for (wet end of brisket).

We got to go on a tour of their pit that are the originals the grandfather had built 75 years ago with 300lb lids.  They use post oak to smoke the meat. The oak is plentiful in the area and is aged a year after cutting.  They cook their meat to about 90% done and then put it in a cooler for a few DAYS, not a few hours like I do.  This gives the meat a lot of time to redistribute juices and stuff.  Then they pull it out and cook it the last 10% before serving.

We went back the next day to another of the 3 places.  This time to Smitty’s Market. More awesome ribs, but in a different way.  They had a bit of a sweet glaze on them that rocked. No utensils are provided (much to the dismay of the ladies in the group) so it’s all with your hands. A great ambiance to this place, but I think Black’s barely edged them out.

The next day we stayed more local to Austin and went to a chain BBQ place called Rudy’s. The place was awesome. Great atmosphere, great brand, great food!  Of the four (one more coming up) BBQ places I ate, on this trip. If someone only had time to go to one place, this would be the one I would tell them to eat at. Best all around experience, close to town, great food.

Last time I came to SXSW we ate at a wing place called Pluckers, and we just HAD to make a return trip. My two favorite flavors are the Dr. Pepper wings and the Lemon Pepper. Sooo yummy.  We just don’t have good wing places in Utah.  We found out too late that they have a Buffalo Wild Wings as well (weekly visit back in KC).  Sadly, no pictures were taken.

Last, but not least is the Salt Lick.  This is a BBQ joint out in the middle of nowhere.  But they also serve thousands of people a week.  This one is all you can eat pork ribs, brisket, sausage and sides.  This time Salt Lick ranked at the bottom of my list BBQ wise, but was second (after Rudy’s) for experience. But being last in this list is like saying a 2011 Camero is last after a Ferrari, Lamborghini and 2011 Corvette Grand Sport. It’s still better then anything you have probably ever driven (or eaten as the case may be).  So you’d take it on any day of the week.

That’s the end of the list.  There were a few “lighter” meals along the way, but nothing worth mentioning.

I sure miss living in a BBQ town, especially now that I am a lot more into it. I would definitely take more advantage of the KC area if I moved back.  So many places I heard of but didn’t try.

Utah is sorely lacking in iconic places to eat.  It’s starting to get a few good BBQ places, but not enough.

Thanks for the extra poundage Austin.  It was a pleasure to get fatter with your BBQy goodness.

Oh, and we hit Rudy’s one more time on the way out.  The scale said I am now about 8lbs more pig and cow then I was before I left 🙂

Categories
Uncategorized

OK Go – This Too Shall Pass – Rube Goldberg Machine version

I know I’m late to the game (since it has over 6 million views as of now), but this is hands down the coolest music video I have ever seen.

No computers. No trickery. All one camera shot.  Amazing

Categories
General

Defending the Family

XD40SubcompactFor the past year or so I have kept it kind of hidden that I now own a handgun and occasionally carry it out in public. For some reason the other day I thought that I should share my thoughts on why I do this, so here it goes.

Why own a gun in the first place?

Yet again this is Randy‘s fault as he got into it first and got me thinking about it. About a year ago there was rumor of a few robberies in my neighboorhood.  Randy had recently purchased a handgun and as a good friend was trying to suck me into it as well.  One night Kaylene and I were talking about the neighborhood break-ins and I wondered what I would really do if it happened in our home.  If some crazed individual (or individuals) were to break into our home what would I do?  How would I get to my sons’ rooms across the hall crossing in front of whatever danger was on it’s way up the steps? How would I defend them?  Go ahead and think through this scenario right now.  Imagine you are in bed and you hear a window break.  What is your plan of action?  How do you get your family safe and what will you use to defend them?

I did this very thing.  I looked around the bedroom to see what I could use as some form of a weapon if it happened right then.  The most threatening thing I could find was the $10 table lamp from Wal-mart… literally.  There was no bat or pole or metal bar to use as clubs. Nothing heavy to throw.  I had a lamp to defend my family with.  My inner cave man was screaming that this was not acceptable.  I had no way to defend my family other then my fists and a lamp.  This wasn’t going to dissuade someone who had already crossed the line of coming into my home.

This started a several month process of research, pondering and convincing on my part to get Kaylene to let me get the gun.  One day she finally said yes, and I bought the gun the next day before she could change her mind.  The gun I purchased is a Springfield Armory XD Sub-Compact 40S&W. I also immediately signed up for a class to allow me to get my Concealed Firearm Permit to allow me to carry my gun in a concealed manner. More on this further down.

Think of the Children

How to keep the kids safe around a firearm was my top priority.  The day I purchased the gun I also purchased a safe for it on the way home.  The safe I purchased is a GunVault Mini. This is a small safe but it is large enough to hold the gun and an extra magazine of rounds.  What good would the gun be if it took a while to get to in an emergency (in the closet under some clothes or wherever). I wanted it within reach when I was asleep and the small size allowed it to fit under my bedside table.

It has a keypad that your fingers can easily find for entering the combination in the dark. After 3 incorrect attempts is locks for a few minutes.  This means that when the boys inevitably were playing with the buttons they had 3 chances at that 1 in 12 million chance of guessing my combo before it locked up.

On the microscopic chance they got into the safe, or if by my stupidity the safe was left open or the gun laying around (at point I would get rid of the gun myself due to negligence) then the gun I chose has a number of safety’s built into it.

  1. At this point in time I do not leave the gun in a state where you can just pull the trigger to fire it.  You would first need to pull back the slide to rack the first round (you know, like you see in the movies).  This takes a decent amount of force and is a hair difficult for me, a bit difficult for Kaylene and near impossible for a 4 year old.  Keeping it in this state makes it slower for me to be ready to engage a threat, but for now it gives me peace of mind with the kids.
  2. If another evil miracle occurs and a 4 year old is able to rack the slide there are two safetys built into the gun for firing.  There is a trigger safety as well as a grip safety.  You have to pull the trigger as well as be pushing in fairly hard on the back of the grip for the gun to fire.  Fairly hard means there have been a few times where I have gone to shoot when practicing and it wouldn’t fire because my grip was incorrect or I wasn’t squeezing hard enough.  These safety’s make it so it won’t go off if it’s dropped.  You can’t just pull the trigger by itself and have it go off. In the world of handguns… this is a fairly safe gun.

With these precautions in place (which were all part of my discussions with Kaylene before hand) I feel very safe with a gun in the house with children.  Kaylene is still a bit wary, but that is a good thing and keeps me in check.

Randy also gave me a link to a cheesy little video that he has shown to his kids about gun safety. I have watched this many times with Dallin and will review the principles from it with him from time to time.

Carrying Outside the Home

As of this writing, I don’t carry outside of the home every time I leave. Nor do I carry most the time when I am at home.  I will carry when I am going to the store, out to run errands, or going on a family drive.  Unfortunately my place of employment does not allow carrying on the premises, nor leaving the gun in a vehicle (I have another safe for in the car). So this makes it difficult to carry on a daily basis. But when I am not going to work, or to church (they don’t allow it either) I try to carry as often as I can remember to.

For carrying at home I have the dilemma of how to interact with my rambunctious 4 year old.  It’s hard to spontaneously wrestle with him or have him grab me with a painful hunk of metal on my hip, which happens to be his head height.  I have to constantly be aware of what side to keep him on in the wrestling so he doesn’t get hurt by it, and I don’t like having to do that.  So for now, playing with the kid trumps the extra safety at home.  Yeah that doesn’t match with my logic for having the gun in the first place, but that’s just how it goes.

fire-extinguishers-2-02But Aaron, we live in Happy Valley… nothing is going to happen where you will need a gun.  Tell that to the people who were at Trolley square or this story of a guy simply driving down a dirt road. I honestly hope that I never have to use my gun in self defense.  But I also wear a seatbelt hoping to never get in an accident. I don’t wear it because it’s the law, I wear it because in the rare chance I get in an accident, I want to come home to my family. I don’t have a fire extinguisher in the closet hoping to put out a fire (ok, secretly that would be awesome… just not INSIDE my house please), but just in case there is one.  There are many precautions we take every day on the off chance of bad things happening.  For me, this is just another one of those precautions.  Something that will allow me to get home to my family in the rare chance that it is needed.  Or if inside my home, keep the bad thing away from them so they are safe.

Guns Aren’t for Everyone

I respect the fact that not everyone wants guns in their home.  In addition to the places I listed above, I have a friend or two that I have brought it up with and they said their wife isn’t comfortable with guns in their home. I either don’t wear my gun when going there, or I leave it in the gun safe in my car when I get there.  If I haven’t brought it up with someone yet, I err to the side of caution and leave the gun in the car.  This can be a very touchy subject (although I personally don’t think it needs to be), and so I feel it’s best to avoid the issue of them finding out I brought a gun into their home without their knowledge.

Hopefully this article gives me a chance to open a dialogue with more friends and family about why I choose to carry and what it’s all about.

I try to go out to practice every now and then and would love the opportunity to take any of my friends or family who are interested in learning more about guns or just want to try to shoot one to see what it’s like. I try to be very safety conscious and will make it a good experience.  I take gun ownership very seriously and would expect anyone who wants to handle one to do so as well.

Conclusion

So that’s it. That’s my announcement to the world that I have a gun, I occasionally carry it around, and why I have it in the first place.  Hopefully it has been enlightening to some.  If you made it this far, congrats.

I now have the ability to defend my family.  If I hear the window break, I can reach down to the side of my bed and have a significant weapon in my hand within a few seconds.  When I need to go into the hallway to get to my kids rooms the odds are that I will be more prepared then the threat that could be coming up the stairs.  I will feel more comfortable taking that step out into the hallway knowing that just the sight of a gun will deter a threat, let alone the force of actually using the gun.  Again, I hope to never have to use it for defense, just like I hope to never really NEED my seat belt.  But it is a comfort to me to know that it is there if the need arises.