type: PIN
Consumer key: 3nVuSoBZnx6U4vzUxf5w
Consumer secret: Bcs59EFbbsdF6Sl9Ng71smgStWEGwXXKSjYvPVt7qys
type: PIN
Consumer key: IQKbtAYlXLripLGPWd0HUA
| <Project> | |
| <ItemGroup> | |
| <Solution Include="*.sln" /> | |
| <PublishProject Include="XXX.Mvc\XXX.Mvc.csproj" /> | |
| <TestProject Include="**\*.Test*.*proj" Exclude="XXX.Tests.Shared\XXX.Tests.Shared.csproj" /> | |
| </ItemGroup> | |
| <Target Name="Build"> | |
| <MSBuild Projects="@(Solution)" Targets="Restore" ContinueOnError="ErrorAndStop" UnloadProjectsOnCompletion="true" UseResultsCache="false" /> | |
| <MSBuild Projects="@(PublishProject)" Targets="Publish" Properties="Configuration=Release" ContinueOnError="ErrorAndContinue" /> |
| # ------------------------------------------------ | |
| # Config files are located in /etc/wireguard/wg0 | |
| # ------------------------------------------------ | |
| # ---------- Server Config ---------- | |
| [Interface] | |
| Address = 10.10.0.1/24 # IPV4 CIDR | |
| Address = fd86:ea04:1111::1/64 # IPV6 CIDR | |
| PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # Add forwarding when VPN is started | |
| PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE # Remove forwarding when VPN is shutdown |
| /* Fixes the header to the top of the page */ | |
| div#entry > div#main .main-menu-content { | |
| position: relative !important; | |
| top: 0 !important; | |
| } | |
| div#entry > div#main .main-menu .backdrop { | |
| position: fixed !important; | |
| } |
| /* | |
| Snippet is nuts and bolts for creating/moving to an isolated tempdb drive. | |
| After you run this, SQL Server must be restarted for it to take effect | |
| */ | |
| DECLARE @DriveSizeGB INT = 40 | |
| ,@FileCount INT = 9 | |
| ,@RowID INT | |
| ,@FileSize VARCHAR(10) | |
| ,@DrivePath VARCHAR(100) = 'T:\' + @@SERVICENAME + '\'; |
| (* | |
| WHAT'S GOING ON HERE?! | |
| Sometimes you don't care about a particular type, you're interested in one field only, let's say `EntityId`. | |
| Instead of using interface (which isn't even possible if don't own a type), | |
| we can do structural typing in F# using SRTP and Active Patterns. | |
| Active patterns are not required for this, but they do make code much easier to use. | |
| *) | |
| // So we have 2 types with field `EntityId: string`: |
| module Drone.Control.Ukf | |
| open System | |
| open Drone.Control.Matrix | |
| type IDiscreteModel = | |
| abstract Process : Matrix -> Matrix | |
| abstract Observe : Matrix -> Matrix | |
| abstract InitialState : Matrix |
| // Change this to your profile folder for nuget packages | |
| #I @"C:\Users\Isaac\.nuget\packages\" | |
| #r @"XPlot.GoogleCharts\2.0.0\lib\netstandard2.0\XPlot.GoogleCharts.dll" | |
| #r @"Newtonsoft.Json\12.0.3\lib\netstandard2.0\Newtonsoft.Json.dll" | |
| #r @"Google.DataTable.Net.Wrapper\4.0.0\lib\netstandard2.0\Google.DataTable.Net.Wrapper.dll" | |
| open System | |
| open XPlot.GoogleCharts | |
| /// Executes an asynchronous workflow and provides some simple statistics on the results. |
This is a collection of the things I believe about software development. I have worked for years building backend and data processing systems, so read the below within that context.
Agree? Disagree? Feel free to let me know at @JanStette.
Keep it simple, stupid. You ain't gonna need it.
| type ThirdLevel = | |
| | Payload of int | |
| and SecondLevel = | |
| | Nested of ThirdLevel list | |
| | Payload of string | |
| and FirstLevel = | |
| | Nested of SecondLevel list | |
| | Payload of double | |
| | EmptyLine | |
| and AllBuilder() = |