Skip to content

Instantly share code, notes, and snippets.

View jamessdixon's full-sized avatar

Jamie Dixon jamessdixon

View GitHub Profile
open System
open System.IO
open System.Drawing
type PictureFile = {FileName:string; NumberOfColumns:int; NumberOfRows:int}
let createTargetDirectory (fileName:string) =
let targetDirectory = "//Users//jamesdixon//Desktop//Images//" + fileName
let directoryinfo = new DirectoryInfo(targetDirectory)
match directoryinfo.Exists with
open System
let getLastDirectory (filePath:string) =
let lastSlashPosition = filePath.LastIndexOf(char 47)
let totalLength = filePath.Length
let tokenLength = totalLength - lastSlashPosition - 1
filePath.Substring(lastSlashPosition+1,tokenLength)
let subDirectoryInfos (path:string) =
let baseDirectoryInfo = System.IO.DirectoryInfo(path)
#r "System.Xml.Linq.dll"
#r "Newtonsoft.Json"
open System.IO
open System.Xml
open System.Xml.Linq
open Newtonsoft.Json
let convert xmlPath jsonPath =
namespace ChickenSoftware.PanzerGeneral
open System.IO
open FSharp.Data
open Xamarin.Forms
open System.Reflection
type TileContext = JsonProvider<"Data//Scenario_Tile.json">
type UnitContext = JsonProvider<"Data//Scenario_Unit.json">
type EquipmentContext = JsonProvider<"Data//Equipment.json">
@jamessdixon
jamessdixon / CSharpToFSharp
Created August 31, 2018 12:17
Convert Auto-Generatd C# classes to F# Types
open System
open System.IO
open System.Collections.Generic
let path = @"C:\Git\..."
let folderInfo = System.IO.DirectoryInfo(path)
let files = folderInfo.GetFiles("*.cs")
let parseClass (values: IEnumerable<string>) =
let className =
@jamessdixon
jamessdixon / FSAuth0
Created February 21, 2019 01:19
Auth0 with F#
namespace sameroom.mobile.iOS
open System
open Xamarin.Forms
open sameroom.mobile
open Auth0.OidcClient
type LoginParameters = { audience : string }
type AuthenticationService() =
@jamessdixon
jamessdixon / Dream Cheeky Thunder Conrtoller
Created August 20, 2014 21:49
Control the Dream Cheeky Thunder via code.
namespace ChickenSoftware.WeaponSystems
open System
open System.Threading
open UsbLibrary
type public MissileLauncher() =
let usbPort = new UsbHidPort()
let handle = new IntPtr()
let mutable devicePresent = false
@jamessdixon
jamessdixon / WebCrawling
Last active December 19, 2019 20:53
WebCrawling With F#
#r @"C:\Users\DIXON2019\.nuget\packages\microsoft.azure.storage.blob\11.1.0\lib\netstandard2.0\Microsoft.Azure.Storage.Blob.dll"
#r @"C:\Users\DIXON2019\.nuget\packages\microsoft.azure.storage.common\11.1.0\lib\netstandard2.0\Microsoft.Azure.Storage.Common.dll"
#r @"C:\Users\DIXON2019\.nuget\packages\microsoft.azure.cosmos.table\1.0.5\lib\netstandard2.0\Microsoft.Azure.Cosmos.Table.dll"
#r @"C:\Users\DIXON2019\.nuget\packages\microsoft.azure.documentdb.core\2.1.3\lib\netstandard1.6\Microsoft.Azure.DocumentDB.Core.dll"
open System
open System.Net
open System.Windows.Forms
@jamessdixon
jamessdixon / BioinformnaticsPatternCount
Created September 15, 2020 19:15
Bioinformatics: Pattern Count
let patternCount (text:string) (pattern:string) =
text
|> Seq.windowed pattern.Length
|> Seq.map(fun c -> new string(c))
|> Seq.filter(fun s -> s = pattern)
|> Seq.length
let text = "ACAACTCTGCATACTATCGGGAACTATCCT"
let pattern = "ACTAT"
patternCount text pattern
@jamessdixon
jamessdixon / BioinformnaticsFrequentWords.fsx
Created September 23, 2020 12:01
BioinformnaticsFrequentWords
let frequentWords (text:string) (k:int) =
let patternCounts =
text
|> Seq.windowed k
|> Seq.map(fun c -> new string(c))
|> Seq.countBy(fun s -> s)
|> Seq.sortByDescending(fun (s,c) -> c)
let maxCount = patternCounts |> Seq.head |> snd
patternCounts
|> Seq.filter(fun (s,c) -> c = maxCount)