Skip to content

Instantly share code, notes, and snippets.

View guitarrapc's full-sized avatar
:octocat:

Ikiru Yoshizaki guitarrapc

:octocat:
View GitHub Profile
@guitarrapc
guitarrapc / GenerateUniqueString.cs
Last active June 23, 2021 09:30
Generate Random ascii string
void Main()
{
const string chars = "abcdefghijklmnopqrstuvwxyz0123456789";
GenerateUniqueString(8, chars.ToCharArray()).Dump();
}
public static string GenerateUniqueString(int size, char[] chars)
{
var data = new byte[4 * size];
using var crypto = new RNGCryptoServiceProvider();
void Main()
{
var lb = new Vector2(1.1f, 2.2f);
var rt = new Vector2(5.6f, 3.4f);
ToCeilAndFlooredBoundingBox(lb, rt);
}
public static (Vector2, Vector2) ToCeilAndFlooredBoundingBox(Vector2 lb, Vector2 rt)
{
@guitarrapc
guitarrapc / visual_studio_version.cmd
Last active June 11, 2021 02:31
Get current installed Visual Studio version.
WHERE "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere" >nul 2>&1 && (for /f "usebackq tokens=2*" %%A in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere" ^| findstr DisplayVersion`) do set VS_VERSION=%%A) || (set VS_VERSION=NOT FOUND)
echo Visual Studio version %VS_VERSION%
@guitarrapc
guitarrapc / docker_desktop_version.bat
Last active June 4, 2021 04:56
get Docker Desktop for Windows version from cli
for /f "usebackq tokens=3*" %%A in (`reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Docker Desktop" /V DisplayVersion`) do set DOCKER_DESKTOP_VERSION=%%A
using System.Collections.Generic;
namespace Sample
{
public class Class
{
public void M()
{
var dic1 = new Dictionary<string, string>()
{
@guitarrapc
guitarrapc / IAsyncDisposeExtensionMethod.cs
Created May 19, 2021 10:48
Extension Method will not call.
async Task Main()
{
await using var hoge = new Hoge();
}
public class Hoge : IAsyncDisposable
{
public ValueTask DisposeAsync()
{
Console.WriteLine("DisposeAsync in class");
void Main()
{
(-5 % 3).Dump("-5 % 3"); // -2
(5 % -3).Dump("5 % -3"); // 2
}
@guitarrapc
guitarrapc / pkcs_to_pem.sh
Created May 14, 2021 04:27
export rsa private key and cert from pkcs (.p12) file. Used for Apple Push Notification Certificate extraction.
#!/bin/bash
for item in *.p12
do
filename="${item%%.*}"
openssl pkcs12 -in "${item}" -nodes -nocerts -passin pass:"" | openssl rsa -out "${filename}-key.pem"
openssl pkcs12 -in "${item}" -nodes -nokeys -passin pass:"" | openssl x509 -out "${filename}-cert.pem"
done
// https://sharplab.io/#v2:CYLg1APgAgTAjAWAFBQMwAJboMLoN7LpGYZQAs6AsgBQCU+hxAvsi0smpjOgEICmAOwDGACwC2AQwBOAa2QEkxdAAcpASwBuEgC590UvhOAB7AQBsAnujUDtAbQC66APoSA3MkZFO/YeOkydF4MikrErugAvOgCfADu1raO+OhwADToMBmoGWQZAKwZAGwZAOzoTB6hRGzBnDba6AAyggDm2iJB1SFhxFpS6BJRLu7BSmoAZujUEgB0LQLtIlHRcOgAZOtjvYPzbR0rmbTbRAo7YVDlcFXnbOeX6AAMN8ye3fW2zfsiTcbGyl0lGcdv1BsNXC9ehNjANqA1rMNngiADypNzWMBgWjA85ESbTOYLJaHNabE64wnfQ4wY7dc443FKB7XclKO47dm9B7PYJsNhAA===
using System;
public class C {
public void M() {
}
}
public class Benchmark
{
private readonly int[] _a;
void Main()
{
var summary = BenchmarkRunner.Run<BenchmarkSum>();
}
[BenchmarkDotNet.Attributes.MemoryDiagnoser]
public class BenchmarkSum
{
[Benchmark]
public void Slow()