Skip to content

Instantly share code, notes, and snippets.

View atwalsh's full-sized avatar

Adam Walsh atwalsh

View GitHub Profile

Story Points vs. Time-based Estimates

Story points...

Abstract Complexity, Not Time:

Story points measure the relative complexity of a task or user story rather than the absolute time it takes to complete. This abstraction allows teams to focus on the effort required to deliver a feature rather than getting bogged down in estimating hours or days, which can be highly variable and affected by external factors. Time is also heavily based on WHO is going to do the work. This can add another level of variable which can throw off the expectation for a sprint. If the individual who was “SUPPOSED” to work on the story is now no longer available, you MAY NOT have another individual as skilled to complete the work which risks a delay, or the work being deferred to another sprint.

Promote Relative Sizing:

@atwalsh
atwalsh / run.py
Created May 12, 2023 14:05
Stripe Connect account update business icon
import stripe
stripe.api_key = ''
file_path = ''
connected_account_id = ''
with open(file_path, "rb") as fp:
# Upload file to the platform account
file = stripe.File.create(
purpose="business_icon",
@atwalsh
atwalsh / mouse.sh
Last active March 1, 2023 14:11
Move mouse on Raspberry Pi
#!/bin/bash
# Credit: https://fitzcarraldoblog.wordpress.com/2018/08/06/how-to-move-a-mouse-pointer-automatically-in-linux-to-simulate-user-activity/
# Script to keep mouse pointer moving so that, for example, Suspend to RAM timeout does not occur.
#
# The mouse pointer will move around its current position on the screen, i.e. around any position
# on the screen where you place the pointer. However, if you prefer it to move around the centre
# of the screen then change mousemove_relative to mousemove in the xdotool command below.
#
# Set LENGTH to 0 if you do not want the mouse pointer to actually move.
# Set LENGTH to 1 if you want the mouse pointer to move just a tiny fraction.
@atwalsh
atwalsh / lab1.py
Created September 16, 2021 23:35
CS 437 - Lab 1
import picar_4wd as fc
from picar_4wd import Ultrasonic, Pin
import time
import collections
import random
us = Ultrasonic(Pin('D8'), Pin('D9'))
power_val = 25
2020-05-15T14:55:14.145878+00:00 app[worker.1]: 2020.05.15 14:55:14 LOG3[3]: transfer: s_poll_wait: TIMEOUTclose exceeded: closing
2020-05-15T14:55:14.145893+00:00 app[worker.1]: 2020.05.15 14:55:14 LOG5[3]: Connection closed: 100 byte(s) sent to TLS, 12 byte(s) sent to socket
2020-05-15T14:55:14.147217+00:00 app[worker.1]: 2020.05.15 14:55:14 LOG3[4]: transfer: s_poll_wait: TIMEOUTclose exceeded: closing
2020-05-15T14:55:14.147259+00:00 app[worker.1]: 2020.05.15 14:55:14 LOG5[4]: Connection closed: 892 byte(s) sent to TLS, 9 byte(s) sent to socket
2020-05-15T14:55:14.345875+00:00 app[worker.1]: 2020.05.15 14:55:14 LOG3[2]: transfer: s_poll_wait: TIMEOUTclose exceeded: closing
2020-05-15T14:55:14.345883+00:00 app[worker.1]: 2020.05.15 14:55:14 LOG5[2]: Connection closed: 100 byte(s) sent to TLS, 12 byte(s) sent to socket
2020-05-15T14:55:15.249901+00:00 app[worker.1]: 2020.05.15 14:55:15 LOG3[8]: transfer: s_poll_wait: TIMEOUTclose exceeded: closing
2020-05-15T14:55:15.249927+00:00 app[worker.1]: 2020.05.15 1

Keybase proof

I hereby claim:

  • I am atwalsh on github.
  • I am atwalsh (https://keybase.io/atwalsh) on keybase.
  • I have a public key ASC0Yn5HT554e9wQT8kDvagJiFqruwq4xK96mP6n4fwGswo

To claim this, I am signing this object:

@atwalsh
atwalsh / README.md
Created July 17, 2018 21:18 — forked from magnetikonline/README.md
AWS Elastic Beanstalk deploy user restricted IAM policy.

AWS Elastic Beanstalk deploy user restricted IAM policy

An IAM user policy document to give minimal rights for deploying an Elastic Beanstalk application.

Where:

  • REGION: AWS region.
  • ACCOUNT_ID: AWS account ID.
  • APPLICATION_NAME: Desired target Elastic Beanstalk application name(space).
  • IAM_INSTANCE_PROFILE_ROLE: The instance profile (IAM role) Elastic Beanstalk EC2 instaces will run under.
@atwalsh
atwalsh / MultiTenantFlask.py
Created October 23, 2017 20:45 — forked from TonyFrancis/MultiTenantFlask.py
Creating multi Tenant system with multiple Database. Switching between databases based on subdomain related to tenant
from functools import wraps
from flask import Flask, g, session, request, abort, jsonify
from flask_migrate import MigrateCommand, Migrate
from flask_script import Manager
from flask_sqlalchemy import SQLAlchemy
flask_app = Flask(__name__, static_folder='./static')
db = SQLAlchemy()
migrate = Migrate()
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</head>
@atwalsh
atwalsh / block.java
Created April 14, 2015 13:35
Block moves
//horizontal
for(int i = 0; i<3; i++){
if(gameBoard[0][i] == (gameBoard[1][i]) && gameBoard[0][i] == (hmarker)){
if(gameBoard[2][i] != marker && gameBoard[2][i] != hmarker){
gameBoard[2][i] = marker;
//boolean placed = true;
return;
}
}
}