Jun 3 2013

Faster InnoDB Imports

In dealing with Magento over the past few years, I regularly wait on multi-gigabyte MySQL dump files to import into my development database. While MyISAM tables are much quicker to copy and reload, there's doesn't seem to be much that can speed up InnoDB imports.

After browsing Stack Overflow far too long for answers and culling together piecemeal tips, I discovered that MySQL published the same information in the documentation. What a novel idea!

Before starting your import, run the first statement below via the MySQL command line tool to disable autocommit, unique and foreign key checks. Run your import and then the last line to enable them again:

mysql> set autocommit=0; set unique_checks=0; set foreign_key_checks=0;
mysql> source /path/to/dump.sql
mysql> commit; set unique_checks=1; set foreign_key_checks=1;

I've seen InnoDB import times improve dramatically with just those three statements. That said, ensure your database contains no duplicate keys before disabling uniqueness checks.

There is an additional setting you can tweak, innodb_autoinc_lock_mode, but it's not dynamic. It might be worth it to edit my.cnf, restart MySQL, process the import and then revert the settings for massive, one-off imports. However, that is one too many hoops to jump through for my own day to day usage.

Lastly, speaking as someone who previously relied heavily on our mutual friend, phpMyAdmin, I'd recommend to get into the habit of importing from the MySQL command line:

$ mysql -u user -p
mysql> use database_name
mysql> source /path/to/dump.sql

Side note: For the more adventurous developers out there, Percona opens up the possiblity of copying actual .idb files to Percona Server and MySQL 5.6 with XtraBackup. However, that's beyond what I choose to delve into at this time and I've seen some issues reported with Magento and MySQL 5.6.

Feb 7 2013

New Work from 2012

2012 was another good one. I worked with a lot of great people on great projects.

In the first half of the year, I lent a hand rolling out a reservations system for Bojangles’, contributed to the new Mint Museum website and helped build out Ride Rock Hill.

The latter half of the year, I helped Need Supply Co. with a complete redesign and integration for their online store and blog. In December, Samantha Crain was in the market for a redesign. I rolled up my sleeves on some design work and then built out a nice responsive site that she can use for years to come. It felt good to see a entire project through from beginning to end.

Samantha's WordPress theme utilizes Sass to manage the site's CSS and makes it dead simple to completely change up styles to match the artwork of a new single, EP or full-length. That said, the site will be featuring her new record, Kid Face, for some time to come. Watch the ingenious video for "Never Going Back" on Spin.

On the home front, I ported this site over to Laravel 3 (and eventually to Laravel 4). Overall, the design and content needed a little sprucing up. More importantly, the site is now responsive, since it's a good idea to practice what you preach.

As always, I look forward to the challenges of client work in 2013. Of course, I'd be lying if I didn't admit to having my own plans and schemes for the year. We'll see what shakes out between the ideas and the time for execution.

Jan 2 2012

New Work from 2011, Plans for 2012

Last year was a good one. I was lucky enough to work steadily throughout the year on some great projects. I've added some of said projects to the portfolio: SunGard, Bojangles', InVue Power Up, Wire Rope Exchange and BAM Architects. I can only hope for similar prosperity and clientele for 2012.

At the end of 2011, I made conscious effort to consolidate my focus. Accordingly, I've dropped several of my half-baked side projects and languishing domains. For the projects that made the cut, there are a few minor developments on the horizon and some grander plans, but I won't get into those until the time is right. As well, look for Quasi Object Labs here soon eventually.

Finally, I will breathe some new life into the blog this year. I realized that what is posted here doesn't have to be anguished over or amazingly articulate (not that any previous posts were either). Basically, whenever Twitter's 140 characters don't cut it, I'll probably post those thoughts here. Expect some cross-posting from Forrst, too.

Jan 3 2011

Updated Logo, Website

Updated Logo, Website

I've been wanting to make a few tweaks to the Quasi Object logo for a while now. The original Q came from a font I created back in college and it didn't have the exactness I felt warranted by the services it represents, web development.

Accordingly, I rebuilt the logo based on a 4x6 grid, with each block as one unit. For the blocks with rounded corners, I further broke them down into a 4x4 grid and rounded the corner at 25%. Whether it needed to be done or not, it at least appeases the OCD gods (for now).

Of course, once I started fiddling with the logo, that made me want to take a look at the website. I ditched my homegrown setup for Kohana 3 and expanded the site out with dedicated project pages, an about page and a contact page. The plan is to keep iterating on this throughout the year, but I wanted to start fresh for 2011.

Last but not least, I added all my notable work from 2010 to the portfolio. Out with the old, in with the new. Here's to a successful, productive 2011, everyone!

Nov 19 2010

Allowing Flash Uploads Through Apache Authentication in .htaccess

Occasionally, I run into issues uploading files through Flash to a development or staging site protected by Apache authentication. I've seen all kinds of recommendations to bypass the authentication, but nothing ever worked.

Recently, I realized you can limit the authentication to GET requests only, which leaves POST requests completely open. As it does leave POST open, I would only suggest using it for a development or staging environment.

<Limit GET>
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /path/to/htpasswd
Require valid-user
</Limit>

Since discovering the use of the <Limit> directive in .htaccess, I've seen this workaround mentioned several other places, sometimes using the <LimitExcept> directive instead. <LimitExcept> produced an Internal Service Error for me, so I can't vouch for it. Nevertheless, as the information is somewhat buried in comment threads and forums littered around the web, I wanted to post it out in the open for other frustrated developers out there to find and use.

Nov 3 2010

Silent Uproar Search

Silent Uproar Search

I recently relaunched Silent Uproar with some designs from art director and designer Clay Johnson at With. One of my favorite parts of the new design from Clay is the search overlay. When he first sent me the screen, I hadn't seen anything quite like it before and knew it might take people off guard, even with something as banal as a keyword search. Technically, it wouldn't have been possible without using @font-face embedding and OFL typefaces like League Gothic. Maybe it could be a tad clearer on the usability side (i.e., there's no submit button), but I was happy to put form over function in this case.

Aug 20 2010

Change is Coming

The longer you neglect something, the easier it is to neglect. Case in point: this blog hasn't been updated in over four months. Nevertheless, I've got about eight projects to add to the portfolio, a few tweaks and a possible face lift for this website. Not to mention, the handful of client and internal projects that are currently in progress.

Lately, I've been trying to be an active participant on Forrst, a new community for designers and developers. That community is motivating me to learn from and share more information with my peers. Hopefully, a steady stream of tips and snippets will again flow through these pages before too long.

How many times can I do these "it's been a while, I'll do better" posts before I'm the boy who cried wolf? I'll try not to make it a habit.

Apr 9 2010

Minor Yet Irritating Flash Bug in Mac Firefox 3.6

Shortly after upgrading to Firefox 3.6 on the Mac, I noticed a lot of Flash elements offset by one pixel on the top and left. I thought I was going crazy, until I downgraded to 3.5.x and it went away. I tried to find a workaround or explanation, but there was none. Like I said, minor yet irritating.

Apparently, it crops up if the elements are centered and if the browser window is sized to an even width. Thankfully, Mozilla now recognizes the bug, it's become a priority and is working on a fix. (Note: this is not an issue with 'focus' or 'outline' CSS properties.)

Indeed, this is a minor issue, but if you have any Flash elements that are width or height sensitive, chances are they're affected to this bug. I posted this note to save any of you Mac Firefox folks out there the headache of tracking down this issue.

Apr 6 2010

Brantley Barefoot

Designer, art director and friend Brantley Barefoot just launched a simple, new portfolio. I helped get him up and running, with ExpressionEngine as a back end. Toggle the background with "w" for some added fun.

Mar 5 2010

Is it 2010 Already?

Last time we talked it was November 2009. I've been slack on the blogging and slightly overwhelmed with work (which I'll never complain about, just stating the facts). For brevity's sake, I'll just provide the highlights.

I provided a little Flash and Papervision3D assistance to BigNoise on the NASCAR Hall of Fame home page. Then, I worked with my pals at Nice Outfit, handling development on a website for Los Angeles graffiti legend RISK. After that, I helped launch a website and partnership with Serious&Ly in Richmond, VA. Most recently, I built a website for African American string band Carolina Chocolate Drops and Crips founding member Greg “Batman” Davis (via R. Rock Enterprises).

On the horizon is a web app launch for Novelope. With Serious&Ly, there are projects ongoing for Work Labs' new, internal collaborative app, Lab Rats, and the launch of a digital media label, The Acme Thunderer. As well, I'm gearing up for a few in-house projects and will make an effort to keep the blog fresh with content. 2010 already sounds busy — I hope I can keep up.