I hereby claim:
- I am jasonk on github.
- I am jasonkohles (https://keybase.io/jasonkohles) on keybase.
- I have a public key ASDct1967s50TUfSbObjpQyCXi0IYMbrRd0ZRzh2DDpaYwo
To claim this, I am signing this object:
#!/bin/bash | |
cd "$(dirname "$0")" | |
# CraftBukkit download URL | |
CBURL="http://repo.bukkit.org/content/groups/public/org/bukkit/craftbukkit/1.7.2-R0.3/craftbukkit-1.7.2-R0.3.jar" | |
# ScriptCraft download URL | |
SCURL="http://scriptcraftjs.org/download/2014-02/v2.0.4/scriptcraft.jar" | |
# Install CraftBukkit | |
if [ ! -f craftbukkit.jar ]; then |
#!/bin/bash | |
set -e | |
# This script monkey-patches MeteorJS to allow it to work from behind a MITM | |
# proxy that forges SSL keys. You may need this to get through a corporate | |
# content-inspection proxy, for example, since Meteor doesn't allow you to | |
# specify the CA certs to use. | |
cd "$HOME/.meteor" | |
cd "$(dirname "$(readlink meteor)")" | |
cd tools |
I hereby claim:
To claim this, I am signing this object:
To use, include them in your TamperMonkey script, like so:
// @require https://gist.githubusercontent.com/jasonk/24bd00ff72b686f0b8a098290ef754bf/raw/tampermonkey-utils.js
// @require https://gist.githubusercontent.com/jasonk/24bd00ff72b686f0b8a098290ef754bf/raw/tampermonkey-cleanup.js
Note that tampermonkey-utils.js
must be loaded before any of the others are loaded.
pipeline { | |
environment { | |
DOCKER_REGISTRY = 'https://my-docker-registry.example.com' | |
DOCKER_CREDS = credentials( 'my-docker-credentials' ) | |
} | |
} |
On my team we like to put ticket numbers in commit messages, so that Jira finds them and puts links to the commits in the ticket. The problem is that I have a really hard time remembering my ticket numbers. What I've been doing is creating a branch for each ticket, but while that helps me remember the numbers, it still doesn't help me remember which ticket is which. I had tried posting comments to myself in Slack to keep track of them, but then it occurred to me that I didn't need to be using just the ticket number as the branch name, so now I'm trying something new.
Instead of creating branches with just the ticket number, I'm using ticket/short-description
. The length of the branch name doesn't affect much, thanks to tab completion, and having that information available at a glance right in the repo is huge, especially since I have the branch name as part of my prompt.
[me@my-machine:dir PROJ-1234/fix-ci ]$ git branch
PROJ-1234/fix-ci
PROJ-1233/remove-stupid-widgets
PROJ-1232/fix-brok
I'm a big fan of hub, but I found myself wishing for the ability to use git hooks on pull-request messages the same way you can on commit messages with prepare-commit-msg
and commit-msg
hooks. People have been asking for hub to be able to do this for a while, but until that happens, here is a way you can do it yourself, right now.
To use this, just drop the script below into your $PATH
somewhere, and make sure you have your $EDITOR
environment variable set to whatever command runs your real editor, and then set your $GIT_EDITOR
environment variable to run the hub-editor
script.
The way this works is that when hub-editor
is invoked with a file named PULLREQ_EDITMSG
(which is the filename hub uses for editing pull requests) then it will run the prepare-pull-request-msg
and pull-request-msg
scripts from your .git/hooks
directory (if they exist and are executable). If hub-editor
is invoked with any other file
Starting with MongoDB 4.2, you can use [aggregation pipelines to update documents][$pipelines]. Which leads to some really cool stuff.
For example, prior to this you could easily add sub-documents to an array using [$addtoSet
][$addtoSet], and you could remove documents from an array using [$pull
][$pull], but you couldn't do both in the same operation, you had to send two separate update commands if you needed to remove some and add some.
With 4.2, now you can, because you can format your update as a pipeline, with multiple $set
and $unset
stages, which makes those things possible. However, since this is so new I had a really hard time finding examples of many of the things I wanted to do, so I started to collect some here for my reference (and yours).
See also:
Sentry is awesome, but their NodeJS Platform is slightly less great. It's basically entirely synchronous, so if you have a lot of async operations going on things like breadcrumbs and other context information will all get mixed up together.
I put this gist together to share with other people how I worked around this problem in our code base. It's not a perfect solution, but it works pretty well.
The way this works is that Sentry has a global store (global.__SENTRY__
) that includes a hub
property that stores the current hub. The hub has a stack of scopes that are the things you interact with when using things like Sentry.withScope
and Sentry.configureScope
. What I'm doing here is replacing that hub
property with a getter that return an async context local hub
instead of a global one. It does this by using the Node native AsyncLocalStorage mo
I had some difficulty finding simple examples of how to use the Reolink API and ended up digging through some python implementations to figure out how it works.
The official documentation is available at https://bit.ly/3rWxG6e but it is a bit lacking, and the API is somewhat weird, which makes it difficult. You should still look at it though, as it lets you know what commands are available through the API.
The main weirdness is that even if you are sending one command at a time, the payload has to be an array of objects and the response is always an array of objects. Also, you have to pass the command both as a URL parameter and in the payload.
Included here are a small(ish) bash script (also requires jq) for running API commands against Reolink cameras or NVRs.