Skip to content

Instantly share code, notes, and snippets.

Braccio:~ craig$ brew install mtr
==> Tapping homebrew/core
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core'...
remote: Enumerating objects: 52, done.
remote: Counting objects: 100% (52/52), done.
remote: Compressing objects: 100% (28/28), done.
remote: Total 742888 (delta 29), reused 42 (delta 24), pack-reused 742836
Receiving objects: 100% (742888/742888), 299.21 MiB | 3.00 MiB/s, done.
Resolving deltas: 100% (492001/492001), done.
Error: Invalid formula: /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/step.rb
#!/bin/sh
# usage: waitfor.sh myserver.example.com
ping_func(){
host="$1"
$(ping -c 1 -t 1 "$host" &> /dev/null)
return $?
}
result=2
@tanaikech
tanaikech / submit.md
Last active November 10, 2025 10:24
Workaround for Retrieving Direct Links of All Sheets from URL of 2PACX-### of Web Published Google Spreadsheet

Workaround for Retrieving Direct Links of All Sheets from URL of 2PACX-### of Web Published Google Spreadsheet

This is a sample script for retrieving the direct links of all sheets from the URL like https://docs.google.com/spreadsheets/d/e/2PACX-###/pubhtml of the web published Google Spreadsheet. This sample script can be used for the following situation.

  1. The Spreadsheet is published to Web and the URL like https://docs.google.com/spreadsheets/d/e/2PACX-###/pubhtml is known
  2. You are not the owner of Google Spreadsheet.
  3. You don't know the Spreadsheet ID and Sheet IDs.

Under above situation, unfortunately, the direct links of each sheet cannot be directly retrieved. I think that this is the specification of Google side. So in this post, I would like to introduce a workaround for retrieving the direct links of each sheet under above situation.

// UIFont+CharacterWidth.m
- (CGFloat)characterWidth
{
CGFloat characterWidth = 0.0;
// get the width of a character by doing a layout with two spaces and measuring the position of the second glyph
NSAttributedString *measureAttributedString = [[NSAttributedString alloc] initWithString:@" " attributes:@{ NSFontAttributeName: self }];
CTLineRef lineRef = CTLineCreateWithAttributedString((CFAttributedStringRef)measureAttributedString);
CFArrayRef arrayRef = CTLineGetGlyphRuns(lineRef);
@chockenberry
chockenberry / tot.sh
Last active October 30, 2025 02:14
A shell script for Tot
#!/bin/sh
basename=`basename $0`
if [ -z "$*" ]; then
echo "usage: ${basename} <dot> [ -o | -r | <file> | - ]"
echo ""
echo "options:"
echo " -o open dot in window with keyboard focus"
echo " -r read contents of dot"
@chockenberry
chockenberry / ScreenRecordingDetection.m
Created November 21, 2019 22:38
Detecting Screen Recording Permission in macOS Catalina
BOOL canRecordScreen = YES;
if (@available(macOS 10.15, *)) {
canRecordScreen = NO;
NSRunningApplication *runningApplication = NSRunningApplication.currentApplication;
NSNumber *ourProcessIdentifier = [NSNumber numberWithInteger:runningApplication.processIdentifier];
CFArrayRef windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly, kCGNullWindowID);
NSUInteger numberOfWindows = CFArrayGetCount(windowList);
for (int index = 0; index < numberOfWindows; index++) {
// get information for each window
@chockenberry
chockenberry / Slack Formatting Bar Feedback.txt
Last active October 22, 2020 19:26
Slack Formatting Bar Feedback
There are a couple of problems with the new formatting bar:
1) The icon to turn it on/off doesn't make sense. It's a toolbar, and the "Aa" doesn't get that concept across. It's in a strange place, next to "@" and ":-)", icons that cause an element to come up over the text field without changing it. A lot of smart folks aren't figuring this out (and let's face it, no one reads the fricken' manual.) Don't believe me, check out the replies to this tweet:
https://twitter.com/chockenberry/status/1196992017143779328
2) Once you have the epiphany to turn it off, it doesn't turn off the functionality. I've been using Markdown since it was just a glint in John Gruber's eye, and it's actually easier for me to _read_ text *like this* even when it contains `code`.
If I opt out of the formatting bar, it feels like I should be opting out the fancy completion stuff, too.
@sanzoghenzo
sanzoghenzo / compare.py
Last active December 11, 2025 15:38
Compare Excel sheets with Pandas
"""
Compare two Excel sheets
Inspired by https://pbpython.com/excel-diff-pandas-update.html
For the documentation, download this file and type:
python compare.py --help
"""
import argparse
import pandas as pd
@chockenberry
chockenberry / Debug.swift
Last active April 11, 2024 13:22
Debug and release logging in Swift that's reminiscent of NSLog()
//
// Debug.swift
//
// Created by Craig Hockenberry on 3/15/17.
// Updated by Craig Hockenberry on 2/20/24.
// Usage:
//
// SplineReticulationManager.swift:
//
@sanzoghenzo
sanzoghenzo / do2gj.py
Created September 25, 2019 21:51
Day One Classic to GitJournal
"""
Convert Day One Classic/Narrate journal entries to GitJournal entries.
Parse the plist XML files to extract useful metadata to be added as yaml headers for the markdown file.
Handle sifttter-redux XML indentation problems by removing leading whitespaces.
"""
import glob
import io
import os
import plistlib