Clinton Paquin

Clinton's Blog

Forever a Whitehall Trojan & Montana State Alum.  2x MSU Billings Men's Soccer player, Denver Broncos & US Soccer fan, surver & Beer Prospector.   Software Developer rooted in PHP, MySQL, jQuery and web develpment standards.


“So let it grow, for when your endurance is fully developed, you will be perfect and complete, needing nothing. If you need wisdom, ask our generous God, and he will give it to you. He will not rebuke you for asking. But when you ask him, be sure that your faith is in God alone. Do not waver, for a person with divided loyalty is as unsettled as a wave of the sea that is blown and tossed by the wind.”
James 1:4-6 NLT

The Election Of Donald Trump — NPR Politics Podcast — Overcast


NPR Politics Podcast: The Election Of Donald Trump

“President Trump”, never stops sounding crazy to me. Good breakdown here though on the 1st 100 days and and what might be coming next.

Quote of the Day


This is a nation made up of states, not the undifferentiated population as a whole. Those states have different political, economic, and cultural interests — Massachusetts and Arkansas are not interchangeable — and the Founders designed a federal system that respects each state’s identity and autonomy. The Electoral College, as part of that system, ensures that voters in a handful of densely populated urban regions cannot hand the presidency to a candidate that a significant majority of the states oppose.

Source: In defense of the Electoral College - The Boston Globe



If it’s been awhile since you last updated Homebrew-Cask, you may still have the old phinze/cask tap installed. Run the following to clean up, then try your command again:

$ brew untap phinze/cask; brew untap caskroom/cask; brew update

Engineer-to-Engineer Recruiting


Engineers are tired of being spammed by recruiters and rarely respond to their emails. An email from the person you’d be working with is much more compelling.

Rubberband - A jQuery plugin for adding responsive breakpoint events.


Ben Plum is sayin what I been thinkin, this is pretty sweet.  Credit to Brett Terpsta’s daily web excursion for the tipoff

Sometimes you need to know when a responsive page changes. Rubberband allows scripts to act on media query changes in real time by making use of the browser’s internal media query matching system, window.matchMedia.

I am Clinton


As if you didn’t already know that the Simpson’s were awesome.  I had forgotten about this clip, but you should know by now that “I am Clinton”

Semantic Versioning 2.0.0


Everyone who does deployments should read this (and silently wonder to themselves why they didn’t read it sooner)

Instapaper: Ready for your testing: the new Instapaper web beta



When the betaworks team sat down with Instapaper’s creator, Marco Arment, back in April to get a download of his ideas and to-dos for improving Instapaper, the first thing on his list was to update the Instapaper website. Well we’ve done it, and it’s now ready for you to check out and test.

Had a chance to login and poke around a bit.  AWS, web fonts, Compass, and responsive design.  These guys are heading in the right direction and deserve kudos.

Beanstalk: How we migrated Beanstalk to Rails 4 and Ruby 2



In October 2011 the groundwork began to migrate Beanstalk to Rails 3, the latest version of Rails at the time. In a few weeks it became apparent that the migration would take much more effort than we originally anticipated and the work had been scrapped. Since then the idea to migrate to newer…

Long no doubt, but this is the kind of thing developers deal with all the time. Migrating legacy code ain’t no picnic

Writing Testable JavaScript


I have an recipe to get updates from the A List Apart.  I’m a backend developer, and there is a lot of chatter over there from the design world that I filter out.  However, the other day they a great article titled “Writing Testable JavaScript” by Rebecca Murphey.

She starts the article off with the problem all frontend developers** have had:

We’ve all been there: that bit of JavaScript functionality that started out as just a handful of lines grows to a dozen, then two dozen, then more. Along the way, a function picks up a few more arguments; a conditional picks up a few more conditions. And then one day, the bug report comes in: something’s broken, and it’s up to us to untangle the mess.

Where she really hits it on the head is not in the solution, but with the problem:

we’ll have a very hard time writing unit tests until we start writing testable JavaScript

I concur, now I need do a better job at practicing it.

** I’ve never really considered myself a front end developer. My passion lays in PHP/MySQL and reusable MVC framework code.  However, the back side of the nickel is pretty boring if Lincoln isn’t on the front.

5by5 | The Changelog #89: Doing incredible things with linux containers and Docker with Solomon Hykes


I’ve never had time to get deep into Linux containers, I’ve just used VirtualBox VM’s where I need them.  However, some guys I work with have lately been getting pretty heavy into Vagrant and Puppet*.   Overall, I see the value of Linux containers.  Having a precise environment anyone on your team can spin up is valuable.  Being able to deploy a simple binary is pretty awesome too.  I’m just not to the point yet where I’m ready to abandon good ol’ fashioned Homebrew on Mac OSX, Capistrano, and Github

* Here is a fun tutorial on getting started with Puppet and Vagrant

Coming back


I left Tumblr almost a year ago, when they refused to offer extended RSS feeds. Mostly because I have a surf blog here with 5 years worth of content that I couldn’t get to. It pissed me off and I left. I also got tired if thinking I would write more tech tutorials to share. Truth is that I’d love to write more tech tutorials, but I like to surf and program more. Look for more stories on those two topics from here on out.

Give it five minutes


5 minutes really isn’t too long to wait when you’re frustrated.  If/when you feel your blood pressure start to rise just go grab a cup of coffee or do 20 jumping jacks.  

Jason Fried’s recent article hit home for me today, and I’ve been waiting for a good chance to talk about his well written article.   It’s easy to take a defensive stance on a subject, especially when you consider yourself to be an “expert” in the area.  When someone  challenges your stance, a true “expert” will take the opportunity to absorb the argument, digest the content, and formulate an intelligent response.  Snapping back with the first “you’re wrong” response you can think of not only makes you look like the bad guy, but it doesn’t provide you the opportunity to admit you’re wrong.  

Being wrong isn’t such a bad thing, and neither is taking five minutes to admit it!

Montana State University satellite surpasses goal; NASA taps MSU to queue up for another launch


10 years ago I had the opportunity to work on the MEROPE project, the VERY first satellite designed, built, and tested in Montana.  Good to see that the project is still rolling and is actually very successful!  Here’s hoping they keep up many years of continued awesomeness.

javascript - setTimeout with zero delay used often in web pages, why?


Do you need to do live polling on events for your site on a time interval?  For example, pull a new set of results from a twitter feed every 10 seconds.  If the call/calculation takes awhile to complete, your user might be left with the feeling that the action they performed (clicking a button) didn’t do anything.

The crux of the problem is that the browser places all its “TODO” tasks resulting from events into a single queue. And unfortunately, re-drawing the “Status” DIV with the new “Calculating…” value is a separate TODO which goes to the end of the queue!

So, to fix your problem, you modify your onClick handler to be TWO statements (in a new function or just a block within onClick):

  1. Populate the status “Calculating… may take ~3 minutes” into status DIV

  2. Execute setTimeout with 0 timeout which calls “LongCalc” function. LongCalc function is almost the same as last time but obviously doesn’t have “Calculating…” Status DIV update as first step, and instead starts the calculation right away.

I stumbled onto this link on, it gives a full breakdown on the problem, the solution, and why you would want to do this.  Read up, it’s a nugget of knowledge that can really save your bacon (and make you look like a much smarter developer than you really are)

WAMP reset phpMyAdmin password


Ever mess up your root user password for MySQL when working locally?  Well, hopefully you’re working locally and didn’t lose the pass to the production server, but just the same here are some steps for the MySQL password setup

  1. Install wamp server 
  2. Start->run->cmd-> 
  3. Type cd\ and press enter 
  4. Locate your mysql directory(like this is my default directory C:\wamp \bin\mysql\mysql5.1.36\bin) 
  5. After like this you should have do C:\wamp\bin\mysql\mysql5.1.36 \bin> mysql -u root -h -P 3306 -p press enter after you got Enter Password don’t put anything simply click enter button 
  6. After like this mysql> 
  7. simply type mysql>use mysql; mysql>show tables; mysql>select * from user \G; 
  8. You can set your new password: mysql> UPDATE mysql.user SET Password=PASSWORD(‘xxxx’) WHERE User='root’; (where replace 'xxxx’ with your new password) (eg.mysql> UPDATE mysql.user SET Password=PASSWORD('muthu’) WHERE User='root’;) 
  9. Finally type mysql> FLUSH PRIVILEGES; mysql>exit; 
  10. Check your settings: mysql> mysql -u root -p enter password:***** press enter button…..

Wordpress Custom Taxonomies


Custom Taxonomies in Wordpress have been around since release 3.0, special thanks to the gurus at Wordpress for this inovation because you can do some fun stuff with them.  Taxonomies are essentially an extension of Categories.  

Background and Basic Case Study

Let’s say you have a blog and you want to create some basic categories to assign to your posts.  You can create these categories then assign your posts as you go (Happy, Sad, Mad).  Categories allow you find all posts that are marked within the category, or better yet get a full RSS feed of everything in the category (maybe someone wants to subscribe to my “Happy” feed, but not the “Sad” feed).

So, what if you want to create a category that you don’t want to be accessible with normal Category functionality?  For example, what if I wanted a “category” (like “f$cked up”) that didn’t have RSS feed access?!  Enter taxonomies, categories that don’t behave like categories.

Today I set out to write a custom taxonomy that I could include on posts then provide a custom RSS feed for.  The only way people would be able to find the feed was if I specifically provided them the URL.  The taxonomy might have some special rules, for example the posts might only be a certain length (default Category RSS feeds are full length).   

Getting Technical

When you initiate a new Taxonomy you are basically cloning the existing Post Category or Post Tags logic.  However, with Post Categories you are provided an additional field for parent because post categories are hierarchal. But what if you want to add additional fields to the interface?  That’s where it gets a little harrier.  I suggest following up with a more in depth example.

Give Credit Where It Is Do

Ready to learn more?  Give props to Paul Menard’s article that makes this as painless as possible!