Skip to content

Instantly share code, notes, and snippets.

@ccampo133
ccampo133 / apkcg.sh
Created October 16, 2025 14:36
Shell script to search Chainguard packages (using Docker)
#!/usr/bin/env sh
if [ $# -eq 0 ]; then
echo "Usage: apkcg <command> [options]"
echo "Note: Quote wildcards to prevent shell expansion (e.g., apkcg search \"php*8.2*xml*\")"
echo "Examples:"
echo " apkcg search curl"
echo " apkcg info busybox"
echo " apkcg list --available"
exit 1
@ccampo133
ccampo133 / apksearch.sh
Created September 16, 2025 18:52
Chainguard apk search script
#!/usr/bin/env sh
if [ $# -eq 0 ]; then
echo "Usage: apksearch <search_term>"
echo "Note: quote wildcards to prevent shell expansion (e.g., apksearch \"php*8.2*xml*\")"
exit 1
fi
# Ref: https://edu.chainguard.dev/chainguard/migration/migrating-to-chainguard-images/#searching-for-packages
@ccampo133
ccampo133 / duck.go
Last active August 21, 2024 16:33
Duck Typing (horror) in Go
package main
import "fmt"
type Duck interface {
Swim()
Quack()
}
type Mallard struct{}
@ccampo133
ccampo133 / merge_channels.go
Created September 12, 2022 19:19
Generic function to merge multiple channels into a single channel (fan-in)
package main
import (
"sync"
)
// Adapted from https://go.dev/blog/pipelines
func mergeChannels[T any](channels ...<-chan T) chan T {
var wg sync.WaitGroup
wg.Add(len(channels))
@ccampo133
ccampo133 / CHANGE_MAC_COMPUTER_NAME.md
Last active May 2, 2022 14:50
Change Mac computer and host name

Change a Mac computer name:

sudo scutil --set ComputerName "newname"
sudo scutil --set LocalHostName "newname"
sudo scutil --set HostName "newname"
dscacheutil -flushcache

Reboot.

@ccampo133
ccampo133 / README.md
Created May 4, 2021 21:21
SQS Exponential Backoff

Usage

I recommend using a virtualenv:

$ python -m venv venv
# ... assuming that 'python' points to a Python 3.7 installation

Then activate it:

$ source venv/bin/activate

@ccampo133
ccampo133 / ULID.kt
Last active August 24, 2022 19:06
ULID in Kotlin
/**
* Adopted from https://github.com/JonasSchubert/kULID
*
* MIT License
*
* Copyright (c) 2021 GuepardoApps (Jonas Schubert), Christopher J. Campo
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
@ccampo133
ccampo133 / bbpr
Last active July 10, 2020 14:38
Script to create Bitbucket Cloud PR
#!/usr/bin/env sh
# Create a Bitbucket Cloud PR from the command line. Expects the following
# environment variables:
# * BITBUCKET_CLIENT_ID
# * BITBUCKET_CLIENT_SECRET
#
# These can be obtained by creating a Bitbucket "OAuth Consumer". See:
# https://support.atlassian.com/bitbucket-cloud/docs/use-oauth-on-bitbucket-cloud
#
@ccampo133
ccampo133 / dynamic_version.md
Created May 11, 2020 15:28
Dynamically set a Maven project version from the command line

Here's a little trick to set a Maven project's version from the command line and environment variables, using a build profile.

Assuming your POM looks something like this:

<artifactId>example</artifactId>
<version>${project.version}</version>
...
<properties>
 1.0.0
@ccampo133
ccampo133 / install_helm2.sh
Created April 8, 2020 15:10
Installing Helm 2 on Mac (w/ Homebrew)
brew install helm@2
brew link --force helm@2