Skip to content

Instantly share code, notes, and snippets.

View brigleb's full-sized avatar

Raymond Brigleb brigleb

View GitHub Profile
@brigleb
brigleb / git-and-github-classes.md
Last active August 29, 2015 13:56
A "course plan" for a very informal set of videos, discussions, and resources for getting better at using Git and GitHub at Needmore.

Git and GitHub Learning at Needmore

This is "course plan" for a very informal set of videos, discussions, and resources for getting better at using Git and GitHub at Needmore. We're spending an hour a day, one day at a time.

Largely, we're basing our conversations on the Lynda.com videos which are excellent. Our development process in our Notebook is obviously essential reading.

Day 1: Monday, February 24

  1. Intro: Why are we doing this? (To have a solid foundation, ensure we're using the same process, and answer lingering questions)
  2. Chapter 4: Git Concepts and Architecture
@brigleb
brigleb / github-assisted-web-development.md
Last active August 29, 2015 13:56
GitHub-Assisted Web Development

GitHub-Assisted Web Development

GitHub is a great tool, and while our developers use it extensively when building out websites, its usefulness is magnified when everyone on the team is using it. We don't expect everyone to necessarily check in and out code, but there's a lot more to GitHub than that.

Issues

Issues in GitHub are like discussions in a project management system like Basecamp, although they wrap a ton of features into one bundle. Issues can be treated as simple checklists, or they can contain checklists within themselves.

They are formatted using Markdown, which our team knows from using many other tools.

@brigleb
brigleb / happy-mac-command-line.md
Last active August 29, 2015 13:57
Happy Mac command line!

These are the things I typically set up on a new Mac to make it a bit more pleasant. Basically from the command line.

Install Xcode and its command-line tools.

Generally I just do this from the App Store.

https://itunes.apple.com/us/app/xcode/id497799835?mt=12

Install Homebrew, and some apps

@brigleb
brigleb / agile-scrum-needmore.md
Created March 10, 2014 22:53
Some key Agile (mainly Scrum) concepts we use at Needmore.

User stories

In software development and product management, a user story is one or more sentences in the everyday or business language of the end user or user of a system that captures what a user does or needs to do as part of his or her job function. User stories are used with agile software development methodologies as the basis for defining the functions a business system must provide, and to facilitate requirements management. It captures the 'who', 'what' and 'why' of a requirement in a simple, concise way, often limited in detail by what can be hand-written on a small paper notecard.

http://en.wikipedia.org/wiki/User_story

Product backlog

The product backlog is an ordered list of requirements that is maintained for a product. It consists of features, bug fixes, non-functional requirements, etc.—whatever needs to be done in order to successfully deliver a viable product.

@brigleb
brigleb / GitInAnHour.md
Last active August 29, 2015 14:03
Big concepts in Git, what I might explain to a non-technical crowd in an hour...

Why We Use Git

  • In the past, we kept files on disk and maybe backed them up. It might be impossible to recover anything useful ever.
  • Then we started using Dropbox. This was nice because each file got a linear history. Better.
  • With Git, you get a snapshot taken of your project whenever you want, as much as you want.
  • You can also use branches for multiple timelines, which lets you write better code because you are safer.
  • Git also provides features and integrations designed to make your life easier if you work with this stuff all day long.
  • We want to keep as much stuff as possible checked in when working on a project, including style guides, documentation, requirements, non-massive file assets, etc.

Git Principles

@brigleb
brigleb / clearfix.scss
Created July 6, 2014 05:24
SASS clearfix mixin
@mixin clearfix {
display: inline-block;
&:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
* html & { height: 1px }
@brigleb
brigleb / cumbersome-wp.md
Last active August 29, 2015 14:03
Cumbersome WordPress process

Right now our process for getting a WordPress site running on a laptop sucks.

I'm writing it all down to help me figure out how to make it better.

  1. Install WordPress in your ~/Sites/sitename folder, or pull down the existing site via FTP to that folder.
  2. Init git repo or check out existing one into proper theme folder.
  3. Set up local MAMP server for project.
  4. Import existing database, or create new one with WordPress configurator.
  5. Configure local wp-config.php to point to appropriate places.
  6. Set up Grunt compliation toolchain and make sure all tasks are working. You may just have to run npm install and grunt if the tasks are already there.
@brigleb
brigleb / wp-theme-deploy.md
Last active August 29, 2015 14:04
Pseudo Code for WordPress Client Theme Deploy

The goal here is to have a script of some kind that lets you "deploy" your WordPress theme to GitHub, and the auto-updater plugin that supports GitHub will then pull the latest tagged release on your master branch onto your website.

We want to try replacing FTP-based methods for deployment, while having a record of each deployment to our sites. Presumably, this would be more useful for the "staging" site. On the production site, you might want to update the theme in a more manual (and less frequent) fashion.

1. Update version number in style.css and elsewhere.

I am theorizing that we want to increment a global variable in functions.php

2. Checkout master branch, merge

@brigleb
brigleb / example-rule.scss
Last active August 29, 2015 14:04
An example of using a basic breakpoint mixin...
body.single-peopleandplaces {
.wrap .photo {
height: ( $photoheight / 2 );
width: 100%;
@include bp(medium) {
height: ( $photoheight * .75 );
width: ( 100% / 2 );
}
@include bp(large) {
height: $photoheight;
@brigleb
brigleb / developer-goals.md
Last active August 29, 2015 14:05
Developer Goals at Needmore

One of the most important concepts to understand at Needmore is Kaizen. This means continual improvement. Apply this to everything you see below. The following are just guidelines, part of your job is to keep improving, getting better, refining the process, learning, and teaching.

Your goal as a member of the Needmore team is to feel empowered to make sure that you continue to improve, and we do as well. We don't expect you to do something just because it's written here, we expect you to do it better. Learn how to improve the process to end up with a better result, with less mistakes, with less problems. Don't keep doing something a certain way because that's the way we've been doing it.

There are six key aspects to being a successful, productive part of development at Needmore.

Process

Get comfortable using Trello for development and issue tracking. Make sure you use it in a way you can keep the whole team in the loop at all times. Remember to notify the project manager when making changes tha