Skip to content

Instantly share code, notes, and snippets.

View zorgiepoo's full-sized avatar
🌴
Away for some weeks

Zorg zorgiepoo

🌴
Away for some weeks
View GitHub Profile
@zorgiepoo
zorgiepoo / update-reminders-inlined
Last active June 19, 2026 21:31
Re: Providing new updates are available in inlined UI (or window titlebar)
To my knowledge some apps do use Sparkle to provide new update reminders in
an inlined view way (e.g Nova, ChatGPT, Ghostty). Sparkle provides ways for
developers to to implement lightweight reminders[1] (like a window title badge
to redirect to the standard UI) or custom UIs[2]. But it's not automatically
built in nor the default.
For some apps I use, I prefer Sparkle to automatically download & install
updates silently on quit and reduce prompts/badges altogether, and this is one
of the opt-in options it provides to both developers and users. Some apps can
be very long running though and some developers want to notify those users of
#!/usr/bin/env bash
# Add to jj config:
# [aliases]
# advance = ["util", "exec", "--", "jj-advance.sh"]
set -euo pipefail
target_bookmark=""
target_bookmark_revset=""
usage() {
@zorgiepoo
zorgiepoo / jj-commit-onto-bookmark.sh
Last active February 5, 2026 04:25
Jujutsu workflow for advancing a bookmark after creating a commit.
#!/usr/bin/env bash
# Add to jj config:
# [aliases]
# cob = ["util", "exec", "--", "jj-commit-onto-bookmark.sh"]
set -euo pipefail
target_bookmark=""
target_bookmark_revset=""
commit_args=()
@zorgiepoo
zorgiepoo / printf_ex.idr
Last active December 20, 2017 20:14
Type-safe printf in Idris including a practical run-time validation example -- https://zgcoder.net/ramblings/typesafe-printf.html
%default total
Prefix : Type
Prefix = String
data Format = Number Prefix Format | Str Prefix Format | End Prefix
parse : List Char -> String -> Format
parse [] prefix_acc = End prefix_acc
parse ('%' :: 'd' :: xs) prefix_acc = Number prefix_acc (parse xs "")
@zorgiepoo
zorgiepoo / ui-tests
Last active December 24, 2016 00:45
Unable to run UI Tests because Xcode Helper does not have permission to use Accessibility.
To enable UI testing, go to the Security & Privacy pane in System Preferences, select the Privacy tab,
then select Accessibility, and add Xcode Helper to the list of applications allowed to use Accessibility.
// I'm not using the passed editRange and delta because I've found them to be quite misleading...
// This happens to be a new API (macOS 10.11) so maybe it's not really battle tested or I don't know what I'm doing
// Either way I'd like to support older systems so for portability sake it's easier to not use these parameters
- (void)textStorage:(NSTextStorage *)textStorage didProcessEditing:(NSTextStorageEditActions)editedMask range:(NSRange)editedRange changeInLength:(NSInteger)__unused delta
{
if ((editedMask & NSTextStorageEditedCharacters) != 0)
{
//[self updateTextProcessingForTextStorage:textStorage];
//NSLog(@"Edited range: %lu, %lu", editedRange.location, editedRange.length);
[textStorage removeAttribute:NSBackgroundColorAttributeName range:NSMakeRange(0, textStorage.length)];
// This uses a legacy version of swift
import Foundation
class Model: NSObject, NSSecureCoding {
let bar: String
init(bar: String) {
self.bar = bar
}
@zorgiepoo
zorgiepoo / copyfromnetworkvolume.m
Last active October 9, 2015 05:30
Can't figure out how to copy a symbolic link, or a directory containing a symbolic link, that is originating on a different Network Volume (eg: in my case it's via AFP, or is it SMB2 these days..?)
// Note that on the command line cp -R /Volumes/mayur/bar.txt /Users/msp/Desktop/bar.txt
// works just fine; the symbolic link is copied, and it's not followed
// But I have *no idea* how to do this programatically as shown below
// (Note: My end goal is being able to copy an app from a volume to my local disk, but
// it fails when it encounters a symbolic link)
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
NSURL *sourceURL = [NSURL fileURLWithPath:@"/Volumes/mayur/bar.txt"]; // this is a symbolic link
NSURL *destinationURL = [NSURL fileURLWithPath:@"/Users/msp/Desktop/bar.txt"];
// this outputs 1, so the source does exist
@zorgiepoo
zorgiepoo / protocol-generics.m
Last active August 29, 2015 14:27
Protocols break Obj-C generics in every sense (rdar://22204367)
@protocol M
@end
NSArray<M, NSValue *, NSURL, NSArray <id <M>>> *foo = @[@"a"];
NSNumber *bar = foo[0];
NSLog(@"%@", bar);
// No warnings
cargo rustc --release -- -C no-stack-check -C target-cpu=native --emit llvm-ir