Archive for the 'design + dev' Category

Making Progress = Time to Ship?

I’m making progress.

When I feel like I’m moving the needle on a project, I experience a lot of feelings: happiness, elation, excitement, challenged, productive, smart, and even a little trepidation or fear. But mostly the good stuff.


Is it our endorphins taking over? Is it the feeling of accomplishment, or pending accomplishment? The knowledge that what I’m working on is closer to completion?

And is the fear really the fear of “what will I do next?” or “what if it doesn’t work? And I prematurely dreading the pending completion, and subsequent vacuum of “stuff to do”?

Are projects ever really complete, or do they just continue to morph and grow? If so, will I ever ship the damn thing?

That whole line of thought got me thinking about the question:

What’s the minimum viable product I can launch, to start getting some feedback about what I’m building from people other than my friends, who are likely to just tell me that “it’s great” or “I’m impressed” but aren’t actually likely to ever be my customers?

So I read What is the minimum viable product? at Venture Hacks.

Why do we build products in the first place?

In the end, we hope to be able to launch product to lots of customers and have them give us money so that we build a great business.

So, I’m working on this project, and have built five customer facing web pages, integrated two outside vendor’s code/services, and I keep having ideas interuport my active work on the project.

I finally created a TODO.txt file that I’m storing on the server, so that I can keep track of those ideas, while getting them out of my head, so that I can stay focused and “heads down” on the tasks at hand, and as of today, all of the pages are pretty much ready to show to the public.

So, I think it’s almost time to launch the product. Need to finish up a little more development work, line up two key biz dev deals, and get it live. Probably next week!


Heads Down

Sometimes it’s important to turn off all of the “noise” that gets in our way, when we’re trying to do something.

  • Turn off the TV.
  • Turn off the radio.
  • Turn off the RSS Reader.
  • Turn off the phone.
  • Turn off the people around you if you can (close the door to your office, or go hide upstairs or something)

I call this time my “head’s down” time. Like “Hey, my head is down in my work over here. Leave me alone!”

I just spent the last four hours doing work that probably would have taken me 8 hours, if I’d done it in my normal reactionary, distractable nature. Instead I put my head down, and got a lot done.

Figure out how to put your head down, and get more done in less time.

The importance of focusing

As I work on this side project I’ve been writing about, I’m putting in about 2 hours a day on it actively, but the rest of the day, while I’m doing my full-time job, and running another company, my mind keeps drifting back to this side project.

Meaning I’m not focused 100% on whatever it is I’m working on at the moment.

That’s human nature, but it’s also distracting as hell.

So, I’ve started taking whatever is in my mind, and adding it to Evernote whenever I’m thinking about it, which helps me clear my mind, and store the extra ideas I’m having, so that I can think more about them later, while not sacrificing too much of what I’m working on right now, or forgetting the bolt of inspiration I’ve been given.

The system works.

I’ve also added a “TODO” section to each file I’m working on in my programming project. It’s at the top of each file, and I’m using it as a place to store thoughts that I have in a contextually relevant place, which again, let’s me preserve the inspiration, without getting in the way of what I’m actively working on too much.

For example: Yesterday, I was writing some code to insert some data into a database. Simple, but took some time, because I didn’t remember how to do it, so I had to do a bit of research. In the middle of doing all that, I had a thought that if I could do “X” on that page, it’d be awesome, so instead of spending a lot of time thinking through “X” I added this to the top of the page:

// TODO:
// Figure out how to do "X" on this page, or the page before it, or after it.
// "X" will let us do Y and Z here, versus later on in the process = more 
// $$$.

Focus when you need to focus. You’ll discover how unbelievably productive you can be when you’re focused. Then harness and keep that focus, and drive it deeper.

Connect, Insert and Explode

Yesterday, I found ADOdb, downloaded it, and uploaded it to my webserver, but I didn’t read up on it, or spend any time with it… so, today, after running a few errands, I retired to my home office to dig into the documentation, and see if I could get a database connection up and running, and if I could, then insert some data into rows in a table, and hopefully get my web app working.

Specifically, the user experience looks like this:

  1. Land on a landing page, or the home page of my site.
  2. Collect a little information on the landing page, and pass the user to a “more info is needed page”
  3. Collect more info on page 2 of the process.
  4. Insert all of the data collected on pages 1 and 2 into the database
  5. Send the user on to their “results page”

Granted, the above isn’t too complicated, but it’s also not something a) I’ve ever done before on my own (at most, I took other people’s code and hacked at it the last time I touched PHP) and b) someone that hasn’t looked at code in 8 years should probably attempt on their 3rd day of playing with code again, or so I thought.

Turns out… programming in PHP is kind of like riding a bicycle. Once you know the basics, even if you take some time off, once you get back on the bike, you can ride again pretty easily.

It took me about two hours to get the above process to work, but it works pretty well now.

On the first page, I collect the data for three fields, pass those as GET variables to the second page, were I collect another 21 fields. Then I pass the user to a “userhandler” page, that takes the data, processes it into the right formats, and then inserts it into the database, and the forwards the user on to the third page in the process, passing the two fields that are required to make the last page work.

I had to create the “get more info” page first.

After I had the HTML coded up, I added a bunch of PHP, so that it would grab all of the variables, and pass them to the “userhandler” page.

Then I created the database using PHPmyAdmin, which is the easy way to do it (as compared to actually reading up on all of the details on field types, etc… so my database isn’t nearly optimized, but I can go back and fix that later…

Then I had to create the “userhandler” page, and make it talk to the database, which took a little while, but was pretty straight forward, thanks to the documentation around “insert” and examples that comes along with ADOdb.

Once I figured all of that out, I got a little creative, and combined two fields on my “more info is needed” page, and figured out how to explode those two fields, so I can store them as distinct data in the database, but reduce the number of fields the user sees when they’re entering the data. Specifically, I wanted the user to be able to enter three or four words, but split them at the first space. Example #2 was exactly what I needed to see, to make it work.

There’s still a ton to do on this project, but I’m having a blast playing with it. Really gets the creative side of my brain engaged again.

Good Database Abstraction Layer for PHP

So I’m playing with this project that I’m working on last night, and I realized that I’ve completely forgotten everything I remember about database connections and querying MySQL from a PHP app (though I do remember Mark Hershenson who taught me most of what I used to know).

Regardless, after reading about thirty pages in my big red Professional PHP Programming and cross referencing a little in my old MySQL book. (It’s telling when your MySQL book was published in 1999, btw, isn’t it?), I decided that while I could easily retype all of the code in these books, and that would give me a good working knowledge of how DB operations work, I probably don’t need to do that much work.

Pear LogoSo, this morning, I searched for “php DB library” in Google, and I found the excellent Pear MDB2 database package, and I’m downloading it now to check it out.

I’d much rather download and use someone else’s library code for database abstraction than write my own at this point. Not only am I grossly out of practice, but while I’ve got a working app at this point (meaning I haven’t completely lost all of my coding skills) I’m far from being able to code without any reference material or example code from others…

That’s what I love about open-source projects. So much really high quality information out there about how to use it, what’s best, etc…

So, hopefully this weekend I’ll get a database system working, so I can tackle phase two of the coding (getting the data from my web forms into and back out of a database).

Update: I also found ADOdb, which Dreamhost recommends, so I’ll be checking that out too.

Fifteen Mac Applications for Affiliates and Affiliate Marketers

Here’s a quick list of applications I use on my Mac all the time as an affiliate marketer. Hope you find some use from these apps. I do:

  • BBEdit – is a catch all text editor for me. I use it for everything, from taking notes when talking to affiliates and advertisers, to debugging HTML, to writing PHP code. Truly the best money I’ve ever invested, and I’m not a developer at all anymore… but I’m hooked on BBEdit for sure. Super powerful multi-file find/replace (even using GREP patterns)… syntax coloring when looking at HTML and more (or in my case PHP)… if it’s related to text… you name it and I bet you BBEdit’s got it. If you’re too cheap to pony up to BBEdit, get TextWrangler for free. It’s not BBEdit, but has enough of the good stuff to be a lot better than TextEdit.
  • HTTP Client – bills itself as “A Mac OS X Leopard developer tool for debugging HTTP services by graphically creating & inspecting complex HTTP messages.” I love this program, because, while I’m technically savvy enough to understand the terminal and the concepts behind the power of curl and other programs, I really don’t want to have to learn those tools just to test a few things, or figure out what redirects are really involved in some of the tracking links I’m looking at, etc… I use it as a digital Sherlock Holmes type of application for the most part, following redirects so I can really find out who is involved in the different levels of online advertising: for example who owns an offer, and who are they running it through. Very handy.
  • Interarchy – My FTP client of choice. I’ve used Interarchy for about 10 years now, I guess. Back then it was called Anarchy, and it’s only gotten better with age. I use it to download lots of files from my remote servers on a schedule, so I have them when I get into the office. I use it to edit files on the server (combined with BBEdit, above, that is). I use it to download entire websites, when I want to keep a copy of them locally. I also use it to mirror certain directories on my compupter, and sync them up with a remote directory, so I’ve always got a backup of my most important stuff in one place.
  • JungleDisk – Remote backup, cheap and blindly easy. I signed up for this service after I lost my hard drive on my laptop the third time. Man, talk about easy remote backups of your important files. I now have it installed on all of my computers (my office iMac, my MacBook Pro, the wife’s MacBook, and our Mac Mini (that we use as a media center)). It’s brain-dead backups are super simple to set up, but more importantly, if I’m on one machine, and need a file from another machine, because I backup files once an hour on all of the computers, I can always find what I need, just by accessing the backups through my JungleDisk powered “network drive” that sits on my desktop.
  • AdiumX – This Instant Messenger client for Mac OS X, is like iChat without the hassle, and with 4 more cylinders. Adium supports all of the major IM services (AIM, MSN, YahooIM, GTalk, ICQ, MobileMe, Facebook, MySpace, and more) and puts them all on steriods, while keeping them in once place. It’s super configurable, and totally customizable, with oodles and oodles of custom “Extras” built by the community of users that use it. Get it, and take iChat out of your dock. You’ll thank me later.
  • NetNewsWire – The Best Damn RSS Reader for Mac. Period. I’ve used NetNewsWire since it was in early early beta, and have tried all of the other RSS Readers, and have always come back to NNW. I even paid for it back before the developer, Brent Simmons, sold it to NewsGator. Thanks to NewsGator syncing, I can read my feeds on my laptop, desktop or iPhone, and never get out of sync, or have to “re-read” a bunch of stuff I’ve already read. I use this to keep up with news in general, and with offers and blog posts coming from Shawn Collins, Jay Weintraub, or Sam Harrelson, or from networks like ClickBooth, etc…
  • Launchbar – I user LaunchBar to get to everything on my Mac without having to go find it. It’s an application launcher, address book interface, and more. Install it, configure it, and hit “command+space” to find someone’s contact info, launch an application, or find a file. Super time-saver.
  • ServerSiren – Need to keep track of whether your servers are up or not? ServerSiren does this for you, and tells you about it in your menubar. Totally a life saver that one time your server goes down.
  • MUMenu – This is a brain-dead simple to use menu bar that will check MacUpdate once a day for you, and tell you what software you have that is out of date, and let you get the update for it really easily.
  • LittleSnitch – Tells me when an application is trying to access something over the internet that maybe I don’t want it to, and let’s me stop it dead in its tracks. Great application for keeping your Mac from revealing too much information without telling you it’s going to do that.
  • VLC – Great for when you want to wind down a little bit. This media player supports everything Quicktime doesn’t, and looks great doing it. Also get Flip4Mac while your at it. It let’s Quicktime play .WMV files. Comes in handy for watching those video clips your uncle or cousin sends you that you know they’re going to ask you about when you see them next.
  • ImageWell – Need a way to quickly edit an image, upload it to a server, and give you the HTML code to put it into a blog post, etc? ImageWell does that and more. I use this app every day.
  • A Better Finder Rename – Ever need to rename a whole bunch of files quickly? ABFR has been around forever, and makes this a painless task. It can pretty much rename files using any method you want, including searching for patterns in file names, and replacing parts of the names using different patterns. Love it!
  • MAMP – A quick and painless way to set up Apache, MySQL and PHP on a Mac. Gives me a super configurable and easily installed lightweight development environment on my machine, so when I can’t get to the server, or don’t want to, I can do some work. If you don’t write code, you don’t need this.
  • SnapzProX – Best Mac OS screenshot and screen recording application out there. Only one thing it doesn’t do, Full Page screenshots. For that, I use Little Snapper which also creates a nice iPhoto like library of all of your screen shots.

Oh, and if you’re looking for a sweet deal on Mac software, check out MacUpdate’s latest MUPromo where you can get $500 worth of software for $49, including Parallels and Tech Tool Pro.

Hoffman’s Rule

Interesting quote:

A common rule of thumb I tell people is to target their performance goals in application design and coding so that their infrastructure (not including people) is ≤10% of an application’s revenue.

Does that mean if I’m spending 5% of revenues on application infrastructure, I’m way underspending, or making more money?

Disable Snap Previews

Q: Can I disable Snap Preview Anyhwere?
A: Yes, you can.

Goto the Snap FAQ page, wherein the second question tells you how to turn off those stupid Snap previews everyone seems so fond of putting on their website.

[via DaringFireball Linked List]

Beginners Guide to .htaccess

This one is for Frank: Beginners Guide to .htaccess


12 Lessons for Those Afraid of CSS and Standards

12 Lessons for Those Afraid of CSS and Standards – Excellent article if you’re interested in this kind of stuff.


Microchip Cufflinks – great geek gift for Christmas at $50/pair. They’ve got lots of other cools cufflinks too.


8 Invaluable WordPress Plugins!

8 Invaluable WordPress Plugins! – Awesome list. Found a few I didn’t know about.


Get Shorty

Shorty – TinyURL for your own server. Gonna have to install this… totally cool! Great for branding!


Javascript Reflection

Reflection.js – Reflecting images are everywhere now. Use this Javascript class to do it to your images.

(0) Adobe Adobe – Adobe has a group that people save bookmarks to. Very cool.


Rapid Learning Rails

Rapid Learning Rails – I am Ninja.


ClickTracks – Free Analytics

ClickTracks – free web analytics


Server Side Sessions are a Hack

Server Side Sessions are a Hack


50 Reasons Why More People Aren’t Using Your Website

50 Reasons Why More People Aren’t Using Your Website


Need a Favicon?

Favicon from picture – Upload a photo, and they’ll create a new favicon.ico file for you to download and use for your site. Too cool. Have no idea what a favicon is? Then read this introduction.


Well Designed URLs

Well Designed URLs are Beautiful! – totally agreed.


Designing the homepage

The Homepage – thoughts about designing that all important homepage from ALA. Good thoughts.


Converting a color photo to a black and white stencil

Converting a color photo to a single layered stencil with Photoshop – neat tutorial


5 Tips for Organizing Your CSS

5 Tips for Organizing Your CSS – finally some tips for CSS that I understand 😉


Good images

Where to find good images online – good list of stock art images for sale and for free.


Getting Things Done with PHP

Getting Things Done with PHP


Guy Kawasaki: The Art of Innovation

The Art of Innovation from Guy Kawasaki, one of those guys I’ve always wanted to call a mentor.


How to add a Google Map to any web page in less than 10 minutes

How to add a Google Map to any web page in less than 10 minutes – I had no idea it could be that easy.


WP-Cache 2.0

I just turned on WP-Cache 2.0, because I’m getting nasty notes from my hosting company (Dreamhost) that I’m using too many resources on my shared server. I totally understand their wanting me to use less resources, so, I’m hoping this cache plugin will help… Though, I’m not 100% sure WordPress is the thing that’s using all of the resources…

I hope this fixes the problem and I don’t have to go debugging all of my sites to find the problems.

If you see any problems with the site, or the RSS feeds, or anything, let me know.

Customizing WordPress

If you use WordPress, go read parts one and two of Claire Campbell’s Customizing WordPress series on


Top 10 Innovative Web 2.0 Applications of 2005

Top 10 Innovative Web 2.0 Applications of 2005 – ’nuff said.


Web 2.0 replaces Office?

Ana BeatrizI’m wondering when there will be a Web 2.0 application to replace PowerPoint.

Currently there is:

Writely, the ever capable browser based Word stand-in (I won’t call it a replacement yet, but it’s damn close) that lets you create documents that need a word-processor, share them, edit them, and publish them on the web. Cool. update: Writeboard is a Safari compatible (Writely isn’t) web app for word processing.

Num Sum, a web-based spreadsheet application that honestly does most of what I do with Excel, but doesn’t come close to having the full power of Excel yet… I’m sure it could with age though.

Where’s the PowerPoint replacement? I’m sure it’s either done and I don’t know about it, or it’s in the works… Is SoapBX it? Not yet, but someday, maybe?

These new online AJAX based web apps are pretty cool, in that they even work, but also if you’re a small or new business owner, they can provide a different way to get things done than the standard M$ route… your mileage may vary though, of course. I still wouldn’t trust a mission critical application to these largely unproved web app companies.

Is there anything else anyone needs from Web 2.0?

I ask because I’d love to be the guy that builds it and cashes out to Yahoo or Google – bwahahaha!

Just launch it

Simple means launching something – launching a new product? or a new company? pay attention to this advice: “If you find yourself talking more than walking, shut up, cut the vision in half, and launch it. You can always fill in the gaps later. In fact, you’ll know more about what gaps need to be filled after you’ve launched “half a feature” than if you tried to fill them in before launching anything.”


Beginner’s Guide to Search Engine Optimization

Beginner’s Guide to Search Engine Optimization


5 Great Background Masking Techniques in Photoshop

5 Great Background Masking Techniques in Photoshop – great tips.


The Five WordPress Plugins You Want

The Five WordPress Plugins You Want


Top 10 Tips for Great Pictures

Top 10 Tips for Great Pictures – pretty good advice from Kodak for those of you looking to become better photographers.


old shit

The Awesome Antiquated Look – cool photoshop technique.

(0) – a new site, totally in development (in my spare time thank you) that’ll evenutally grow to catalog our journey into financial freedom through smart budgeting… (hopefully) 😉 Go subscribe to the XML feed… you’ll like it as it develops, I think. We’ve been doing a lot of finacial planning lately, and I plan to add lots of long-form articles to the BLog (you like that? BudgetLog = BLog) as time permits…


If you could change one thing

– lots of good little tips that have big payoffs


two minute photoshop tricks

Two Minute Photoshop Tricks – some very cool photo related tricks…


San Francisco in Jello

San Francisco in Jello – go take a look at these photos… too cool, and totally eerie… love it!


Budding Film Maker?

Here are a few links to good resources for the budding film maker: – no nonsense answers to questions about film making
The Complete EEJIT’S Guide to Film Making
No Budget Video – the making of…
Beginners Guide To Digital Video Production

Seen originally here:

Wired News Design Documents

Remember when Wired News redesigned in 2002, to an all CSS+XHTML design? I do. Here’s the original design documents from 2002. Hat tip Douglas Bownman.


Never Get Involved in a Land War in Asia (or Build a Website for No Reason) – fantastic advice


What version of Flash do I have installed?

Have you ever wondered what version of Flash you have installed?

I needed to know what version I had installed this weekend, and I found this page:

If you visit that website, it’ll tell you what version I have. I have Flash 8… nice to know, and almost impossible to find out using Safari on a Mac without that page… I don’t even know where to start to look…

Continue using Photostack or… ?

Here’s three online photo gallery software solutions: Simple PHP Gallery, Plogger, ZenPhoto. My buddy Josh switched to ZenPhoto recently, but I haven’t asked him if he likes it yet… Plogger looks cool from a weblog integration standpoint… as does some of the future dev work for ZenPhoto…

If Noel doesn’t turn out a good upgrade for Photostack soon, I may have to look into one of those other tools… It’s been over a year since the last real beta release, though it’s encouraging to finaly see some movement on the website…

Photostack has served me well for over a year now (probably closer to two years) and I feel indebted to Noel to keep using it… so we’ll see where things go in the future…

Top Ten Web Design Mistakes of 2005

Top Ten Web Design Mistakes of 2005 – Jakob Nielsen brings it all home for us…


Mod_Rewrite Cheat Sheet

Nice little Mod_Rewrite Cheat Sheet for all of you .htaccess junkies. And here’s a litttle HTML Entities cheat sheet as well.


teh suck

Unit testing is teh suck, Urr.