Skip to content

Instantly share code, notes, and snippets.

View houstonhaynes's full-sized avatar

Houston Haynes houstonhaynes

View GitHub Profile
@houstonhaynes
houstonhaynes / ext-link-card.html
Last active June 12, 2021 18:00
Hugo shortcode - responsive Bootstrap 4 card that parses external web URL and populates meta data.

tl;dr

The main problem is not that the "F# option" is presented and rejected on its merits - the main problem is that the "F# option" is suggested and the answer is ...

  • 'What are you talking about?'
  • 'What is that?'
  • 'I've never heard of that before.'

F# has a mindshare problem. There are many ways to approach correcting that, and will probably require multiple approaches. For the FSSF's part of that effort there are both top-down and bottom-up efforts that should be considered.

FSSF Meeting Minutes, 2021/10/21 (October 21st, 2021)

This regular meeting of the F# Software Foundation Board was held over Slack on October 21st, 2021, beginning at 4:13 PM UTC with full quorum, ending at 5:02 PM UTC.

Votes are reported in the form “Y-N-A” (in favor-Y, opposed-N, abstentions-A; e.g. “5-1-2” means “5 in favor, 1 opposed, and 2 abstentions”).

Redactions may be used to protect information that has business sensitivity (e.g., negotiating positions), when a third party’s name is used without the third party’s knowledge (e.g., discussion of candidates for a volunteer position or award), or to protect the subject of personnel discussions.

Attendance

@houstonhaynes
houstonhaynes / FSSF_meeting_notes_20220113.md
Last active January 14, 2022 23:39
FSSF_meeting_notes_20220113.md

FSSF Meeting Minutes, 2022/01/13 (January 13th, 2022)

This regular meeting of the F# Software Foundation Board was held over Slack (text chat) on January 13th, 2022, beginning at 4:00 PM UTC, ending at 5:00 PM UTC.

Votes are reported in the form “Y-N-A” (in favor-Y, opposed-N, abstentions-A; e.g. “5-1-2” means “5 in favor, 1 opposed, and 2 abstentions”).

Redactions may be used to protect information that has business sensitivity (e.g., negotiating positions), when a third party’s name is used without the third party’s knowledge (e.g., discussion of candidates for a volunteer position or award), or to protect the subject of personnel discussions.

Attendance

@houstonhaynes
houstonhaynes / FSSF_meeting_notes_20220210.md
Last active February 10, 2022 20:08
Feb 10 meeting notes

FSSF Meeting Minutes, 2022/02/10 (February 10th, 2022)

This regular meeting of the F# Software Foundation Board was held over Slack (text chat) on February 10th, 2022, beginning at 4:00 PM UTC, ending at 5:00 PM UTC.

Votes are reported in the form “Y-N-A” (in favor-Y, opposed-N, abstentions-A; e.g. “5-1-2” means “5 in favor, 1 opposed, and 2 abstentions”).

Redactions may be used to protect information that has business sensitivity (e.g., negotiating positions), when a third party’s name is used without the third party’s knowledge (e.g., discussion of candidates for a volunteer position or award), or to protect the subject of personnel discussions.

Attendance

@houstonhaynes
houstonhaynes / FSSF_meeting_notes_20220310.md
Last active March 10, 2022 20:50
Mar 10 meeting notes

FSSF Meeting Minutes, 2022/03/10 (March 10th, 2022)

This regular meeting of the F# Software Foundation Board was held over Slack (text chat) on March 10th, 2022, beginning at 4:00 PM UTC, ending at 5:00 PM UTC.

Votes are reported in the form “Y-N-A” (in favor-Y, opposed-N, abstentions-A; e.g. “5-1-2” means “5 in favor, 1 opposed, and 2 abstentions”).

Redactions may be used to protect information that has business sensitivity (e.g., negotiating positions), when a third party’s name is used without the third party’s knowledge (e.g., discussion of candidates for a volunteer position or award), or to protect the subject of personnel discussions.

Attendance

@houstonhaynes
houstonhaynes / AzureFunctionSecret.fs
Created June 13, 2023 14:29 — forked from ninjarobot/AzureFunctionSecret.fs
Example of retrieving a secret from an F# Azure Function App
namespace AzurefnSecret
open Microsoft.Azure.KeyVault
open Microsoft.IdentityModel.Clients.ActiveDirectory
module Example =
let getSecret (appKeyDescription:string) (appKeyValue:string) (secretUrl:string) =
async {
use keyVault = new KeyVaultClient(fun authority resource (_:string) ->
async {

.NET OSS Documentation tools

Houston's Note

My goal is to find a way to adapt/co-opt Hugo templates into an .NET driven static site generator.

Right now the two main candidates are Statiq and Fornax

Criteria

@houstonhaynes
houstonhaynes / scratch.fsx
Created July 20, 2023 20:10
Solar tracker hack for Asheville, NC from July-19 to Oct-18 2023
#r "nuget: CoordinateSharp"
open System
open CoordinateSharp
let calculateSolarNoon latitude longitude (date: DateTime) =
let celestialTimes = Celestial.CalculateCelestialTimes(latitude, longitude, date, 0.0)
celestialTimes.SolarNoon.Value.ToLocalTime()
// Helper function to convert degrees to radians
@houstonhaynes
houstonhaynes / BluethoothModule.fs
Created July 28, 2023 18:16
Plugin.BLE functions to use in cross platform Bluetooth Client apps
module BluetoothModule
open System
open Plugin.BLE
open Plugin.BLE.Abstractions.Contracts
open Plugin.BLE.Abstractions.EventArgs
type BLEConnectionResult =
| Success of unit
| Failure of string