Skip to content

Instantly share code, notes, and snippets.

Avatar

Lincoln Atkinson latkin

View GitHub Profile
@latkin
latkin / table.md
Last active Aug 25, 2020
JNI Object Lifetimes Quick Reference
View table.md
JNI Object Use across JNI calls? Use on different thread? Notes
JavaVM Yes
View code.fsx
open System
open System.Collections
open System.Collections.Generic
open System.Diagnostics
open System.Linq
module Algos =
//
// non-lazy solutions
//
@latkin
latkin / regexinfo.ps1
Last active Aug 23, 2018
Regex matching helper
View regexinfo.ps1
<#
Dumps capture group locations and names/numbers
Example:
> regexinfo 'Jenny: 555-867-5309' '(?<name>\w+):\s+(?<phone>(?:(?<area>\d{3})-)?(\d{3}-\d{4}))'
[Jenny]: [[555]-[867-5309]]
| || |
| || 1
| |area
| phone
@latkin
latkin / func.ps1
Created Oct 14, 2017
PowerShell engine stack overflow
View func.ps1
# dot-source this function and try running `f 0`
# It work on Windows in Windows PowerShell and PowerShell Core
# On Mac the powershell process terminates with `Process is terminating due to StackOverflowException. Abort trap: 6`
# programmatically generated by parsing https://www.unicode.org/Public/10.0.0/ucd/LineBreak.txt
function f { param($codepoint)
if(($codepoint -ge 0x0000) -and ($codepoint -le 0x0008)){ 'CM' }
elseif($codepoint -eq 0x0009) { 'BA' }
elseif($codepoint -eq 0x000A) { 'LF' }
elseif(($codepoint -ge 0x000B) -and ($codepoint -le 0x000C)){ 'BK' }
View keybase.md

Keybase proof

I hereby claim:

  • I am latkin on github.
  • I am latkin (https://keybase.io/latkin) on keybase.
  • I have a public key ASCflg_ClIWLE2q9NWAhQHrj7HkQGqf0na2Msud4uTsV6Ao

To claim this, I am signing this object:

@latkin
latkin / ripgrep-gitgrep.md
Last active Jul 13, 2017
Ripgrep v git grep speed comparison
View ripgrep-gitgrep.md

Environment

// OS
OS Name:                   Microsoft Windows 10 Pro
OS Version:                10.0.15063 N/A Build 15063
System Manufacturer:       Apple Inc.
System Model:              MacBookPro11,5
System Type:               x64-based PC
Processor(s):              1 Processor(s) Installed.
@latkin
latkin / benchmark.ps1
Created Aug 2, 2016
Benchmark of PowerShell de-duplication cmdlets
View benchmark.ps1
#
# Benchmarking code used to produce results from blog post
# http://latkin.org/blog/2016/08/02/curious-behavior-when-de-duplicating-a-collection-in-powershell/
#
# home-grown HashSet-based approach
function hashunique {
param(
[Parameter(Mandatory=$true, ValueFromPipeline = $true)]
[Object[]] $InputObject
@latkin
latkin / extendAPIWithUnits.md
Last active Mar 31, 2016
How to extend a 3rd-party API with F# units of measure
View extendAPIWithUnits.md

Extending a 3rd-party API with F# units of measure

F# units of measure are nice, but what if I'm using a 3rd-party library which doesn't support UOM? I don't want to re-implement the library, but it would be nice to add the extra safety afforded by UOM. Can I somehow annotate the APIs of the 3rd party library with units?

Yes!

How to do it

Say you have some unit-free external library like this, which you can't modify:

@latkin
latkin / NativeMethods.fs
Created Feb 22, 2016
F# p/invoke example with structs
View NativeMethods.fs
namespace Test
open System.Runtime.InteropServices
// F# implementation of http://pinvoke.net/default.aspx/mpr.WNetAddConnection2
module NativeMethods =
type ResourceScope =
| Connected = 0x1u
| GlobalNet = 0x2u
@latkin
latkin / TestResults.xml
Created Feb 16, 2016
FCS test failures
View TestResults.xml
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!--This file represents the results of running a test suite-->
<test-results name="C:\src\FSharp.Compiler.Service\bin\v4.0\FSharp.Compiler.Service.Tests.dll" total="373" errors="2" failures="14" not-run="8" inconclusive="0" ignored="8" skipped="0" invalid="0" date="2016-02-15" time="21:36:11">
<environment nunit-version="2.6.3.13283" clr-version="2.0.50727.8670" os-version="Microsoft Windows NT 6.2.9200.0" platform="Win32NT" cwd="C:\src\FSharp.Compiler.Service" machine-name="LINCOLN-PC" user="lincoln" user-domain="LINCOLN-PC" />
<culture-info current-culture="en-US" current-uiculture="en-US" />
<test-suite type="Test Project" name="" executed="True" result="Failure" success="False" time="112.439" asserts="0">
<results>
<test-suite type="Assembly" name="C:\src\FSharp.Compiler.Service\bin\v4.0\FSharp.Compiler.Service.Tests.dll" executed="True" result="Success" success="True" time="52.240" asserts="0">
<results>
<test-suite