1 of 17

Development Tools

That make money!

by Joey Novak

An overview of the tools I use to just get crap done!

2 of 17

Introduction - Joey Novak 

  @thejoeynovak, joeynovak.com, web2.0goodies.com

I specialize in custom Infusionsoft integrations.  Which frequently involve wordpress.

I love to make things. 

  • Catapults / Trebuchets
  • Camping Stoves
  • Interesting Cars
  • Potato Cannons
  • Replica Working Civil War Cannon
  • Useful Software

Random Facts About Me

  • Eagle Scout
  • Received Customer Compassion award twice, Rowan award (got to drive the h3 for a month), MVP twice, and Master Chief while at Infusionsoft.
  • Really good at javascript
  • High School Drop Out 
  • I've broken 3 bones while mountain biking (two separate accidents).
  • LDS

3 of 17

Why don't we always do what's best?!?

It's a human trait that we get emotions caught up in the decision making process. 

Emotions are part of being human.  The key is to find a balance between prideful arrogance, and Vulcan logic.

4 of 17

The Pragmatic Programmer

 

Pragmatism is a philosophical tradition centered on the linking of practice and theory. It describes a process where theory is extracted from practice, and applied back to practice to form what is called intelligent practice

5 of 17

The importance of good tools.

Two different pipe wrenches.  A modern one 

you can buy at any home improvement store, 

and an antique Trimo one.  The antique is of a

better design, has a spring, and sharper teeth

making it possible to use one handed, where 

as the modern one requires two hands.

Combination Honda Crank Pulley Holder, 

Cheater Bar, and Forget Me Stick.  Definitly 

not an effecient tool, but I still use it because 

of the good memories (emotional)

6 of 17

My Last Great Epiphany - DIY doesn't usually save me money anymore.

Sewer Backup

  • A Day of Digging
  • One $110 Metal Detector
  • One $35 USB Endoscope
  • Two days without showers
  • Another Day of Digging
  • Hours of trying to use the useless Endoscope

Calling rotor rooter and paying $400 to have them show me the blockage, and exactly where to dig...  Priceless.

7 of 17

Hardware

  • The Obvious
    • Fast Computer (i5, i7?)
    • Lots of memory (6GB+)
    • Dual monitors

  • Not So Obvious
    • Small SSD Drive (external?)
      • Build time at Infusionsoft dropped from 12 minutes to 3 minutes.
    • Good keyboard
    • Good mouse
    • Comfortable Chair
    • Good Headphones

8 of 17

ditto

AWESOME, Easy to use, clipboard history tool.  Saves me probably 10 - 20 min per day.

9 of 17

Uniserver - Develop Locally!

  • Compact
  • No Installation
  • Works Great
  • Includes most (?) php extensions, they just need to be enabled.
  • Nice admin interface

10 of 17

run.php, phpminiadmin.php and downthemall (ff plugin)

run.php

  • Provides Shell Access when all you have is ftp
  • Use it to zip / tar up an ENTIRE SITE for one quick download.
  • My favorite command 
    • tar zcvf ../../../all.tgz ../../../
    • Produces an all.tgz file of a wordpress install when uploaded as a plugin.

downthemall

  • Opens multiple connections to download a file.  Allowing really fast downloads when time is critical. (2gb all.tgz file generated with run.php in 10 min sometimes?)
  • Don't use on HIGH traffic sites.

 

phpminiadmin.php

  • Ultra Compact (1 file)
  • Use it to export databases

 

 

 

These 3 tools allow me to copy a site to my local dev environment in about 10 minutes.

11 of 17

IDE - My Favorite is PHP Storm

  • Easy to use
  • Real time debugging
  • Fast
  • Supports basic refactoring
  • Code Completion
  • Ctrl+Click code navigation
  • Built in php documentation.
  • Function definition on hover
  • Most used functions for me.
    • Ctrl+Shift+F - Global Find
    • Ctrl+Shift+R - Global Replace
    • Ctrl+Shift+N - Find / Open File With Name
    • Ctrl+Alt+L - Reformat Selected Code (or whole file)
    • Alt+F8 - Open Expression Evaluator While Debugging

12 of 17

Debugging

XDebug - PUTS ERROR MESSAGES IN YOUR FACE

Must get proper XDebug for your PHP Binary

Allows for real time

debugging.

Get an XDebug

  Helper plugin for 

  your browser.

13 of 17

Automate Deployment - winscp / github or repositoryhosting.com hooks / bash scripts scripts.

I have found that many launch errors / bugs are due to a complicated deployment process.  I always automate this.  Once you've done it a few times, it takes just a few minutes to do.  

 

Still looking for the right mysql db schema deployment tools.

 

14 of 17

SnagIt and YouTube - Say good bye to written documentation!

 

I never create written documentation anymore.  It's always videos, and my clients always love it.

 

Share non-public videos with clients using the "Unlisted" option in YouTube. 

15 of 17

Freshbooks

I sent out my end of month Invoices for Jan '12. In just 15 minutes 2 clients had paid their invoices.

Makes it EASY for your clients to give you their money.

16 of 17

Phone home on error - Amazon SES

Automatically phoning home on error allows you to proactively fix errors before your client even notices.

I recommend a server that collects these error reports (similar to syslog) and emails you when an error occurs, but with a max email of one every 5 minutes.

 

Havn't developed this yet, but it's coming...

17 of 17

Questions?