Skip to content

Instantly share code, notes, and snippets.

Avatar

Kevin Jalbert kevinjalbert

View GitHub Profile
@kevinjalbert
kevinjalbert / git-bisect-branch.sh
Last active Sep 1, 2022
Git Bisect: Only the Current Branch
View git-bisect-branch.sh
#!/usr/bin/env bash
while getopts 'b:dh' OPTION; do
case "$OPTION" in
b)
divergent_branch=$OPTARG
;;
d)
debug=true
;;
h)
@kevinjalbert
kevinjalbert / git_dig.rb
Last active Aug 1, 2022
Git Dig (find deleted files whose content matches a regex)
View git_dig.rb
#!/usr/bin/env ruby
require 'optparse'
require 'open3'
def files_with_search_query(sha, search_query)
`git show --format="" --name-only #{sha} -i --pickaxe-regex -S #{search_query}`.split("\n")
end
def grep_over_file(sha, file, search_query)
@kevinjalbert
kevinjalbert / import-raindrop-highlights-into-readwise.rb
Last active Jul 26, 2022
Import Raindrop.io Highlights into Readwise
View import-raindrop-highlights-into-readwise.rb
#!/usr/bin/env ruby
require "httparty"
require "nokogiri"
require "open-uri"
require "uri"
RAINDROP_AUTH_TOKEN="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
READWISE_AUTH_TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
LAST_SAVED_HIGHLIGHT=000000000 # <- Keeps track of import position (Updates automatically)
@kevinjalbert
kevinjalbert / mirror.scpt
Last active Sep 16, 2022
AppleScript to Mirror iPhone to QuickTime
View mirror.scpt
set deviceName to "Kevin’s iPhone"
activateScreenKeepAwake()
readyQuickTime()
setVideoInput(deviceName)
setAudioInput(deviceName)
setVolume(1.0)
setScreenSize("maximize")
# ----- Functions -----
@kevinjalbert
kevinjalbert / Coronavirus.js
Last active Aug 17, 2021 — forked from planecore/Coronavirus.js
Coronavirus Scriptable Widget (For Canadian Provinces)
View Coronavirus.js
// Variables used by Scriptable.
// These must be at the very top of the file. Do not edit.
// icon-color: deep-green; icon-glyph: user-md;
// heavily inspired by https://gist.github.com/planecore/e7b4c1e5db2dd28b1a023860e831355e
const province = "ON" // change this to your province
const url = "https://api.covid19tracker.ca/summary/split"
const req = new Request(url)
const res = await req.loadJSON()
@kevinjalbert
kevinjalbert / bluetooth_headphones.scpt
Last active Jun 27, 2020
AppleScript to connect bluetooth headphones and show its battery level
View bluetooth_headphones.scpt
activate application "SystemUIServer"
set deviceName to "Kevin Jalbert's BeatsX"
tell application "System Events"
tell process "SystemUIServer"
set bluetoothMenu to (menu bar item 1 of menu bar 1 whose description contains "bluetooth")
tell bluetoothMenu
click
set deviceMenuItem to (menu item deviceName of menu 1)
View keybase.md

Keybase proof

I hereby claim:

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

To claim this, I am signing this object:

View enhanced-vim-searching.md

Enhanced Vim Searching

Basic Searching

Vim provides rather simple searching capabilities using the following keys while in normal mode:

  • / performs a forward search of the provided pattern
  • ? performs a backward search of the provided pattern
  • * performs a forward search of the word under the cursor
  • # performs a backward search of the word under the cursor
@kevinjalbert
kevinjalbert / vim-over.md
Created Apr 24, 2015
Vim substitution feedback using vim-over
View vim-over.md

Vim substitution feedback using vim-over

It is common while in vim to perform substitution tasks over the text you are editing. This is often accomplished using the following command:

:%s/<find>/<replacement>/g

The %s command will perform substitution over every line within the buffer. The /<find>/<replace> specifies the substitution to perform. Finally the /g indicates that this should apply to multiple occurrences if they are present on the same line.

This works great, although there is little affordance in determining whether the specified <find> will hit the matches you are interested in. The aforementioned command is a all-or-nothing with respect to execution, there is no visual feedback until you execute the command.

Visual Feedback via vim-over

@kevinjalbert
kevinjalbert / record_screen.applescript
Created Apr 10, 2015
Record Screen with Applescript
View record_screen.applescript
on run {input, parameters}
tell application "QuickTime Player" to quit
delay 0.5
tell application "QuickTime Player" to activate
delay 0.5