Skip to content

Instantly share code, notes, and snippets.

View matthewmccullough's full-sized avatar

Matthew J. McCullough matthewmccullough

View GitHub Profile
@matthewmccullough
matthewmccullough / terminal.scpt
Created January 5, 2010 00:30
AppleScript to open a Terminal tab at the specified path
-----------------------------------------------------------------------
-- A Script that opens a specified command line folder name in a new
-- terminal tab.
--
-- Composed by Matthew McCullough, 2010
-- MIT License. Share freely.
-----------------------------------------------------------------------
--Reference for tab opening
-- http://lambie.org/2007/11/03/tabs-in-terminal-using-applescript-on-leopard/
--Reference for other scripting approaches with Terminal

1st Round Interview

  • Q: How would you describe your demanor and how does that contribute to the outcome in a client engagement?

  • Q: When a customer says "We have all kinds of GHE problems and need your help." how would you narrow that down to a set of tasks that could be put into a statement of work?

  • Q: What tactics would you employ to suss out what the real (not just perceived) needs of a client are via a phone call?

  • Q: What is a process or criteria that you use to evaluate any kind of opportunity, such as a new technology, a new product feature, or a prospective client engagement?

  • Q: What are criteria by which you might prioritize the requests the Sales team makes of the Services team?

  • Q: What is a GitHub Integration that you find invaluable? Why do you find it useful?

  • Q: Have you investigated personal access tokens vs. OAuth flows for tools that use the GitHub platform?

  • Q: What type of questions do you find yourself asking in past client engagements?

@matthewmccullough
matthewmccullough / O'Reilly-Fringes-Of-Git-Webinar.markdown
Created April 13, 2011 23:24
Matthew McCullough & Tim Berglund's O'Reilly "Fringes Of Git" Webinar Source

O'Reilly Git Webinar

The Fringes of Git

Overview

Matthew McCullough and Tim Berglund, authors of the O'Reilly Git Master Class videos will introduce you to the very edges of Git's capabilities. There are plenty of "Getting Started with Git" sessions on the web, but we'd like to take 40 minutes of your time in an entirely different direction. These 40 minutes will primarily be live coding with a few diagrams for reference. We'll show you how Git reaches farther than any other version control system to provide capabilities for both the novice and the master craftsperson.

Webinar Outline

Rebasing

@matthewmccullough
matthewmccullough / settings.xml
Created April 13, 2009 19:41
Maven settings.xml Mirror Setup for Nexus
<mirrors>
<mirror>
<!--This is used to direct the public snapshots repo in the profile below over to a different nexus group -->
<id>nexus-public-snapshots</id>
<mirrorOf>public-snapshots</mirrorOf>
<url>http://localhost:8081/nexus/content/groups/public-snapshots</url>
</mirror>
<mirror>
<!--This sends everything else to /public -->
<id>nexus-public-releases</id>
@matthewmccullough
matthewmccullough / Copywithoutnewline.sh
Created June 29, 2011 01:33
Copy to the Mac clipboard without a new line
alias pbcopynn='tr -d "\n" | pbcopy'
@matthewmccullough
matthewmccullough / init.el
Created June 20, 2011 01:17
Wiring Groovy emacs mode to Gradle files
;; Get the Groovy support for Emacs from http://svn.codehaus.org/groovy/trunk/groovy/ide/emacs
;; Symlink the downloaded Groovy support into your .emacs.d folder as "groovy"
;;; use groovy-mode when file ends in .groovy or has #!/bin/groovy at start
(add-to-list 'load-path "~/.emacs.d/groovy")
(autoload 'groovy-mode "groovy-mode" "Major mode for editing Groovy code." t)
;; For some reason, these recommendations don't seem to work with Aquamacs
(add-to-list 'auto-mode-alist '("\.groovy$" . groovy-mode))
(add-to-list 'auto-mode-alist '("\.gradle$" . groovy-mode))
@matthewmccullough
matthewmccullough / JavaShellExecute.java
Created January 12, 2009 15:25
Executes a shell command (a.k.a. Shell Execute) from java, such as to open a PDF file or other registered file type
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* A Java method to execute and wait for a shell command to complete
*/
public class JavaShellExecute
{
public static void main(String[] args) throws Exception {
@matthewmccullough
matthewmccullough / rulesofprogramming.md
Created August 13, 2012 02:56
Rules of Programming

Rules of Programming

  • All Development is Interface Driven Development, be it Web, Desktop, Mobile, or API.
  • statics or class methods should be inconsequential and isolated to be used in a production method. Inconsequential means that the method doesn’t go outside the VM to another system, doesn’t block, or requires a hard dependency that isn’t guaranteed.
  • The new keyword should be inconsequential and isolated to be used in a production method, unless it used inside of either a Builder or Factory pattern.
  • If a class has already met the requirements for it’s existence, leave it alone, use the Adapter, Observer pattern or AOP to enhance it’s functionality.
  • Using floating-point may not be a good solution, use an integral based number for the smallest unit in your domain (e.g. seconds, pennies, pence)
  • Copying and pasting the same thing multiple times is a sign that refactoring is in order, but do so after making sure your tests run.
  • Matthew McCullough: The tool you use the most should be the most
@matthewmccullough
matthewmccullough / gist:47267
Created January 15, 2009 05:15 — forked from halbtuerke/gist:31934
Show Git dirty status in your Unix bash prompt (symbols not compatible with CygWin)
RED="\[\033[0;31m\]"
YELLOW="\[\033[0;33m\]"
GREEN="\[\033[0;32m\]"
BLUE="\[\033[0;34m\]"
LIGHT_RED="\[\033[1;31m\]"
LIGHT_GREEN="\[\033[1;32m\]"
WHITE="\[\033[1;37m\]"
LIGHT_GRAY="\[\033[0;37m\]"
COLOR_NONE="\[\e[0m\]"
layout title description path
bare
Continuous Delivery
The next step in the evolution of software development is making ever smaller changes and continually deploying to production.
technology/_posts/2001-01-01-lesson-continuous-delivery.md

Continuous delivery is the current buzz, but let's take a few minutes to demystify it. 1. Does it work? 2. How would you go about getting towards that mode of operation? 3. Why would you want to have continuous delivery? 4. What tools facilitate this? You'll leave a transformed developer. The idea of releases being non-stressful and able to be merged in on Friday at 4pm is attractive to the majority of us who have suffered at the hands of the "awful rollback" and the "long weekend." These travails are partially the result of being on the opposite end of the spectrum from continuous delivery. Come with an open mind to branching strategies, feature toggles, and Readme-driven development.

Resources