Skip to content

Instantly share code, notes, and snippets.

@alastairtree
alastairtree / PacketSplitter.py
Last active January 11, 2024 10:27
This scripts takes a binary file containing CCSDS packets and splits them into one file per packet. Assumes CCSDS packets always have a secondary header, and that the first 4 bytes of data are a SCLK timestamp in seconds with 2010-01-01 as epoch as per the NASA IMAP Mission spec.
#!/usr/bin/python
# This scripts takes a binary file containing CCSDS packets and splits them into one file per packet
# Usage > python3 PacketSplitter.py -i <InputFile> -o <outputFiles>
import datetime
import sys, getopt, os
from os.path import exists
using System;
using System.Configuration;
using System.Linq;
using System.Reflection;
using System.Threading;
using System.Threading.Tasks;
using log4net;
namespace Utils
{
@alastairtree
alastairtree / PluralisationHelper.cs
Last active October 2, 2022 07:48
Detecting plurals
using System.Collections.Generic;
using System.Text.RegularExpressions;
namespace LanguageUtils
{
public static class PluralisationHelper
{
private static readonly Dictionary<string, string> KnownCommonPluralsDictionary = new Dictionary<string, string>
{
{"children", "child"},
@alastairtree
alastairtree / gist:6777218c2c7facc17282
Created July 28, 2014 14:45
grant read execute permissions to a folder via powershell
$path = "C:\Sites\Website123"
$user = "domain\user"
$acl = Get-Acl $path
$arguments = $user, "ReadAndExecute", "ContainerInherit, ObjectInherit", "None", "Allow"
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $arguments
$acl.SetAccessRule($accessRule)
@alastairtree
alastairtree / index.html
Created September 23, 2015 15:11
simple HTML5 holding page
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta content="IE=edge" http-equiv="X-UA-Compatible">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title>[TITLE]</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<style>
@alastairtree
alastairtree / HttpCorrelation.cs
Created December 30, 2020 08:46
Using stevejgordon/CorrelationId inside Azure Functions
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using CorrelationId;
using CorrelationId.Abstractions;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
choco install authy-desktop -y
choco install git –y
choco install putty -y
choco install gitextensions -y
choco install vscode –y
choco install 7zip –y
choco install googlechrome -y
choco install firefox –y
choco install powershell –y
choco install powershell-core -y
@alastairtree
alastairtree / CreateSite.ps1
Last active July 7, 2021 12:47
IIS site stop and create website/appPool utility scripts
## FYI: These scripts are now maintained in a proper repository:
## https://github.com/alastairtree/deploy-websites-with-powershell
## Intro: Simple powershell script to install (or replace) a local website and app pool
## Usage: CreateSite.ps1 [WebsiteName] [AppPoolName] [Port] [Path] ([domain\user] [password])
## Note : These scripts require local admin priviliges!
# Load IIS tools
Import-Module WebAdministration
sleep 2 #see http://stackoverflow.com/questions/14862854/powershell-command-get-childitem-iis-sites-causes-an-error
@alastairtree
alastairtree / RoutingLinkBuilder.cs
Created February 22, 2021 01:05
MVC Route aware ILinkBuilder for JsonApiDotNet 4 & aspnet core 3.1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using JsonApiDotNetCore.Configuration;
using JsonApiDotNetCore.Controllers;
using JsonApiDotNetCore.Middleware;
using JsonApiDotNetCore.Queries;
using JsonApiDotNetCore.Queries.Expressions;
using JsonApiDotNetCore.Queries.Internal.Parsing;
@alastairtree
alastairtree / run-tests.ps1
Created June 28, 2020 00:34
Quick integration tests of terraform modules using powershell
Function TC-Escape ([string] $text){
return $text.Replace("|","||").Replace("'","|'").Replace("\n","|n").Replace("\r","|r").Replace("[","|[").Replace("]","|}")
}
Function Invoke-Exec
{
[CmdletBinding()] param([Parameter(Position=0,Mandatory=1)][scriptblock]$cmd)
$scriptExpanded = $ExecutionContext.InvokeCommand.ExpandString($cmd).Trim()