-
Update the spec when you add features. When a new feature, decision, or constraint is introduced, append it to the plan file at
PLAN.mdbefore (or alongside) implementing it. The plan is the canonical record — don't let it drift. -
Test new behavior in browser before signing off. Use the browser to load the relevant page, exercise the new flow end-to-end, and verify it works visually. Don't claim a feature is done from typecheck + curl alone if there's UI involved.
| package main | |
| import ( | |
| "fmt" | |
| "log" | |
| "net" | |
| "net/http" | |
| "os" | |
| "path/filepath" | |
| "sort" |
| #!/bin/bash | |
| echo "Updating Apt..." | |
| sudo apt-get update | |
| sudo apt-get install ca-certificates curl | |
| sudo install -m 0755 -d /etc/apt/keyrings | |
| sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc | |
| sudo chmod a+r /etc/apt/keyrings/docker.asc | |
| echo "Adding to sources..." |
| pm.test("Successful status code [200, 201, 204]", function () { | |
| const goodStatusCodes = [200, 201, 204] | |
| // If there is a non-2xx failure, notify Slack: | |
| if(goodStatusCodes.indexOf(pm.response.code) === -1) { | |
| pm.sendRequest({ | |
| url: 'https://hooks.slack.com/services/<<SLACK_URL_ID>>', | |
| method: 'POST', | |
| header: 'Content-type: application/json', | |
| body: { |
| #!/bin/bash | |
| # Usage: | |
| # ./exec.sh api | |
| NAMESPACE="qa" | |
| CONTAINER_NAME=$(kubectl get pods -n $NAMESPACE | awk -v pattern="$1" '$0 ~ pattern { print $1 }') | |
| kubectl -n $NAMESPACE exec -it $CONTAINER_NAME /bin/bash |
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="utf-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |
| <title>Random String Generator</title> | |
| <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/kognise/water.css@latest/dist/dark.min.css"> | |
| <style type="text/css"> | |
| .randomString { |
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="utf-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |
| <title>Internal Server Error</title> | |
| <!-- Fonts --> | |
| <link rel="dns-prefetch" href="//fonts.gstatic.com"> |
January 6th, 2012
https://hwrnmnbsol.livejournal.com/148664.html
When I was a younger person, my first full-time adult-type job was designing automatic fire sprinkler systems. It was an eye-opening and educational experience, and even though the job basically sucked, I learned all kinds of crazy stuff in that job that I use daily in my present-day non-sucky job, so I can't complain.
One interesting lesson was learned at the hand of the Chief Superintendant, Bob. Bob was in charge of installing the systems that me and my group designed. People who put things in, I quickly learned, have a wealth of knowledge and experience about things that people who only design never gain. As a result, when I first started in that job, I wound up going and bugging Bob for answers on a regular basis.
This annoyed Bob. Bob liked to sit in his office and shoot the shit with his buddies on the topics of fishing or hunting. He did not like fielding questions from young designers. This was especially true becaus
| /* | |
| * Easing Functions - inspired from http://gizma.com/easing/ | |
| * only considering the t value for the range [0, 1] => [0, 1] | |
| */ | |
| EasingFunctions = { | |
| // no easing, no acceleration | |
| linear: function (t) { return t }, | |
| // accelerating from zero velocity | |
| easeInQuad: function (t) { return t*t }, | |
| // decelerating to zero velocity |