Automating Photoshop With C#
I recently dumped PhotoImpact and took the Photoshop learning curve plung... special thanks to the ...
Who's ready to have their mind blown? I wasn't, so when I saw Adobe's Photoshop A...
I've been working to automate Photoshop quite a bit lately. In September I wrote Automate Pho...
Photoshop Scripting - User Interface
Grayscale to Transparency with Photoshop
Five years ago, David Chess wrote a blog post that blew my December 13, 2010 mind. It is titled: ...
Reading and Writing Text Files from Photoshop Scripts
My latest posted discussed showing a UI that had textareas, buttons, and more so users could i...
iOS Auto Renewing Subscriptions
Auto-renewing subscriptions in iOS are confusing. These are my notes on how the process works and ...
WhichPic - iPhone Photos Game
WhichPic is coming to the iTunes App Store in August 2019.
What is WhichPic?
WhichPic is ph...
Tiny Troops iPhone Game
At MTM we spend our Fridays working on creative projects that plunge us into new technologies. I...
Objective-C String Formatting
String formatting isn't especially a strength in Objective-C. Actually, it's just plain bar...
Pocket Potato iPhone Game
Play while your phone is IN YOUR POCKET!
See Pocket Potato in the iPhone App Store
Getting an iPhone UDID from Mobile Safari
Getting your app into beta tester's hands is a pain. Even with new services like Test F...
Migrating an LLBLGen Project from 2.X to 3.X
Migrating a project from V2 to V3 LLBLGen project was a huge pain. Since I work in 30+ projects tha...
Today's Weather for iPhone
See Today's Weather in the iPhone App Store
When you look at the weather forecast, what are...
Outside Connections With Cassini (VS2010)
Cassini is the little baby version of IIS that is built into Visual Studio. It makes debugging won...
StringSmash - Compress JS Strings
you embed so...
Remote Connections with VS2010
From time to time, I find myself needing to connect to a debugging VS website from another mach...
Memorize Anything for iPhone & iPad
UPDATE (3/21/2012): Having issues with crashing? Version 1.3 released today & fixes crashes on...
Connecting to SQL Express Remotely
Setting up remote connections for SQL Express is brutal. Especially for a dope like me.
But I ...
Boss of Toss iPhone Game
Rejected from the App Store! :)
Boss of Toss is the latest, greatest new form of iPhone competit...
How To Setup NodeJS With Dokku on Digital Ocean
This is a walkthrough of setting up a NodeJS website on digital ocean droplet by Dokku 0.4.2. If y...
Weather Nerd for iPhone and iPad
I needed to touch up on iOS dev, so over the last year I've spent s...
Flower Shop Subscription Service
If you live around Norman, OK, you should check out the The Flower Shop on North Porter.
Lenstoss Contact Lens iPhone App
See Lenstoss in the App Store
Lenstoss is another app I developed for an eye doctor. It reminds...
Words With… Foes!
Words with Friends is a fantastic iPhone game where you play scrabble with your friends. The onl...
Sending & Receiving Email in CSharp
When I develop in C#, there are a lot of seemingly simple tasks that are incredibly hard to figure ...
Hopper for House
Hopper for House is a political website for David Hopper. David ran for the Oklahoma House Distric...
Understanding Generations Video
Understanding Generations is a video I made for MTM . The video is part of a much longer presenta...
Setting up a Lets Encrypt Certificate on Heroku
Update (April 2017)
Heroku now has first-class support for Let's Encrypt so installing it ...
The Evolution of (My) Code
Ironically, only one of these does not actually work. But the tests pass...
Rounded Corners With CSS
The Old Way
Apparently I've been doing rounded corners like a three-year-old from 1993. L...
OKDate - Dates for Objective-C
OKDate is an open source date library I just released for objective-c. If you've ever worked...
Cocoa Bird Cocoa to Twitter API
Today I open sourced my Objective-c/Cocoa to Twitter open-source library under the title CocoaBird...
Two days ago, Maria hits me with the old "Your website doesn't work on my computer" s...
Weather Dashboard for iPad
Weather Dashboard tells you the weather exactly how you want it... by comparing yesterday to today....
iScout Safety and Training Software
From HazardScout to iScout
Back in 2015, I joined two friends to start a company called HazardSco...
I took my wife skydiving yesterday (Feb 24) for Valentine's day. Here are some pics and ...
2018 has been a busy year because we've also added a new training module called...
Kindle Notes & Apps
When I got my Kindle, I immediately signed up to be a Kindle developer but wasn't accepted. Si...
Why You Want It
Let's say a client wants to list your iphone apps on their webpage. Ye...
Prop Bets Website
Last year my wife and I made a list of 20 questions for everyone to answer before our Superbowl par...
Love Tap iPhone app
See Love Tap in the iPhone App Store
Discover your love compatibility with someone in a tap!
This realtor website included a calendar of weekly house showings, searchable MLS listings, a mortg...
Four years ago, I co-founded iScout - a safety reporting and training web applicat...
Whack a Champ iPhone Game
For Christmas I made my nephews a game featuring them and our whole family. We all call my dad ...
MemorEYES for iPhone
See MemorEYES in the App Store
MemorEYES is an app I developed for an eye doctor. While you pla...
Memory Card iPhone Game
My wife's sister has 4 kids that really enjoy iPhone games. Just for fun, we decided to make a...
Pocket Tap iPhone Game
Play while your phone is IN YOUR POCKET!
See Pocket Tap in the iPhone App Store
No one will ...
Recipes For Life: React Native
Shhhhh.... don't tell my mom, but I've built an iPhone / iPad app for her birthday.
Laser Tag!!! iPhone Game
See Laser Tag in the iPhone App Store
Play Laser Tag using your iPhone as the gun!
HOW IT WOR...
GeeVee - Google Voice iPhone App
Rejected from the App Store! :)
GeeVee Phone Lite is the fastest, easiest way to place a call ...
HazardScout Safety Management
In 2014, I joined two friends to start a company called HazardScout . HazardScout is a safety m...
Get Buzzam Radio, Free On The App Store
Download Buzzam Radio for free from the iTunes App Store
We finally went live on the App Store,...
FloMoJo - Convert Text to Flowchart
Yesterday I created a proof of concept site that converts text to a flow chart. See it at http://...
Native Regex vs. UIWebView Regex
My latest project has me doing A LOT of string manipulation which is a huge pain in objective-c. T...
Core Data Migrations and Cave Monsters
Migrating the core data schema on an iOS app is like a monster in a cave. When I walk by, the mons...
Setup A GoDaddy SSL Certificate on Heroku
I'm using AppHarbor to host an ASP.NET site I built a few years ago. This year I s...
MTM builds all kinds of websites to help people order awards online. This website takes in team ...
At MTM we have an innovative process for encouraging communication throughout the company and it&...
DraftNight Smack Mode
There are two keys to a great fantasy football draft. Grub and a little friendly banter. That'...
Yippee-Ki-Yay... Merry Christmas!
2016 Christmas Card
I think our Christmas Card was a little too subtle this year. See if you get it...
Christmas Card 2012
We got a golden-doodle this year named Sunny, so of course she's featured on our 2012 Christmas...
My blog gets a redesign every 18 months. There's no schedule, but that's about how long it ...
Christmas Card 2011
Here's our 2011 Christmas Card. We went through a lot of versions, (some slightly inappropriat...
Sign Up Sheet for iPad
See Sign Up Sheet in the iPad App Store
At MTM , we needed a good way to sign people up for in...
Core Data - Simplified
Every time I make an iOS app, I shy away from Core Data and end up storing data in a plist or sq...
Bendy Tree iOS Library
With a year of iOS development under my belt, I've got a decent code base that I copy from proj...
Heads Up Dashboards
To keep a high level view of how manufacturing processes are going at MTM , we designed these head...
Anonymous Types in Ruby
Anonymous Types in C#
Anonymous types are new in C# 3.5 and while they are easily abused, ...
Commercial Brick is a website designed to display samples of brick for distributors and other cus...
Christmas Card 2009
Here's our 2009 Christmas Card. Merry Christmas!
Wright's Family Market
Wright's Family Market is my grandfather's small grocery store chain in Norman, OK. Afte...
Inland Hills Church
The Inland Hills website was for a new church in California. It included multiple blogs, photo gal...
Christmas Card 2008
Here's our 2008 Christmas Card. Merry Christmas!
The Kibera Project
The Kibera Project website was for a group from Canada who raise money for micro-loans for people i...
On - The New jQuery Event Handler
jQuery has a new method of wiring up events. It's called 'on'.
Fantasy Footbal Draft Board for iPad
I've been through enough Fantasy Football drafts to know how painful the drafting process is. ...
What Can MTM Create For You Video
From time to time, I get to make a video for MTM . We make a lot of really impressive trophies, i...