Skip to content

Instantly share code, notes, and snippets.

View crozone's full-sized avatar
💭
Working on ipodloader2 and Tetris for macOS 9

Ryan Crosby crozone

💭
Working on ipodloader2 and Tetris for macOS 9
  • Unique Micro Design Pty Ltd.
  • Australia
  • 21:11 (UTC +10:00)
View GitHub Profile
@crozone
crozone / csharp-bytes-to-hex-fast.cs
Last active December 17, 2023 19:32
C# Bytes to Hex with Span and stackalloc.
// Copyright 2022 Ryan Crosby
// This code is licensed under the MIT license
//
// Methods to convert a byte array to hex, using new Span<T>
//
// C# no-alloc optimization that directly wraps the data section of the dll (similar to string constants)
// https://github.com/dotnet/roslyn/pull/24621
private static ReadOnlySpan<byte> HexAlphabetBytes => new byte[16]
@crozone
crozone / .vimrc
Created January 26, 2021 04:04
Good, sane .vimrc. Background=dark and mouse disabled.
syntax on
set background=dark
set showcmd
set showmatch
set mouse=
@crozone
crozone / HtmlExtensions.cs
Last active August 26, 2021 01:46
Html.DescriptionFor() extension method for ASP.NET Core 3.1 and 5
// Copyright 2021 Ryan Crosby
// This code is licensed under the MIT license
using Microsoft.AspNetCore.Html;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Linq.Expressions;
@crozone
crozone / HttpResponseMessageExtensions.cs
Last active August 26, 2021 01:45
EnsureSuccessStatusCodeWithStatus (HttpResponseMessageExtensions)
// Copyright 2021 Ryan Crosby
// This code is licensed under the MIT license
/// <summary>
/// Variations of the EnsureSuccessStatusCode() extension method for capturing and retreiving the HTTP Status Code and Response Body.
/// </summary>
public static class HttpResponseMessageExtensions
{
public const string StatusCodeKey = "StatusCode";
public const string ResponseBodyKey = "ResponseBody";
@crozone
crozone / CancellationTokenExtensions.cs
Created April 22, 2021 04:38
CancellationToken.WhenCancelled()
using System.Threading;
using System.Threading.Tasks;
public static class CancellationTokenExtensions
{
public static async Task WhenCancelled(this CancellationToken cancellationToken)
{
TaskCompletionSource<bool> taskCompletionSource = new TaskCompletionSource<bool>();
@crozone
crozone / nextpoweroftwo.cs
Last active June 10, 2022 08:42
Get next largest power of two
public static class IntExtensions
{
public static uint GetNextPowerOfTwo(this uint input)
{
--input;
input |= input >> 1;
input |= input >> 2;
input |= input >> 4;
input |= input >> 8;
input |= input >> 16;
@crozone
crozone / PathGlobbingHelpers.cs
Last active August 26, 2021 01:52
Glob Path To Regex
// Copyright 2021 Ryan Crosby
// This code is licensed under the MIT license
using System;
using System.Text;
using System.Text.RegularExpressions;
// ...
public static class PathGlobbingHelpers
@crozone
crozone / update-dns.sh
Last active November 14, 2023 06:31
Script for automatically updating the DNS record in CloudFlare, for dynamic DNS.
#!/bin/bash
# Dynamic DNS auto-update script for CloudFlare API
# Version 3 - Ryan Crosby 2023
#
# Supports IPv4 and IPv6 (A and AAAA records)
#
# Requires curl and jq
echo "Dynamic DNS auto-update script for CloudFlare API"
@crozone
crozone / putty-serial.ps1
Created May 11, 2023 04:05
Open all serial ports in PuTTY
# Powershell script to automatically open a putty window for each serial port on the computer
param (
[string]$baud = "115200"
)
$serialreg = Get-Item -Path Registry::HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM
foreach ($thisname in $serialreg.GetValueNames())
{
@crozone
crozone / change-network.ps1
Created June 30, 2023 03:34
Powershell script to rapidly switch between WiFi and Ethernet on Surface Book and MS Dock.
# Script to switch between wired LAN and WiFi on Surface Book and MS Dock.
# Initially, one should be disabled and the other enabled. The script will then flip their states.
[string]$wifi_ifdesc = 'Marvell AVASTAR Wireless-AC Network Controller'
[string]$eth_ifdesc = 'Surface Ethernet Adapter #2'
if((Get-NetAdapter -InterfaceDescription $wifi_ifdesc).Status -eq 'Disabled') {
# Switch to Wifi
Write-Output 'Switching to WiFi'