Skip to content

Instantly share code, notes, and snippets.

View hclewk's full-sized avatar

Kurtis Welch hclewk

View GitHub Profile
@hclewk
hclewk / appconsole-usage.cs
Last active April 11, 2018 18:08
AppConsole Usage Example
var console = new AppConsole()
{
ConsoleName = "Web Monitor - web" + id + ".zensales.net",
ConsoleDescription = "A simple app that monitors the status of web" + id + ".zensales.net and heals it if necessary.",
ConsoleID = "tskhrnetsr802tTNR80S" //any sufficiently long random string to prevent guessing - can generate an one-off with StringHelper.RandomString(64)
};
console.Write("This is a log line that I'm writing");
//Console can now be viewed at http://www.appconsole.net/console/tskhrnetsr802tTNR80S
@hclewk
hclewk / new_folder.bat
Created February 12, 2018 14:29
Create a random folder in windows that you can dump stuff into
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
set "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%"
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
cd j:
@hclewk
hclewk / eventCollision.cs
Created February 23, 2017 18:25
Event Collision Detection Algorithm
//a.start, a.end, b.start, b.end are all DateTime's
bool hasCollision = a.start <= b.start && a.end > b.start || b.start <= a.start && b.end > a.start;
@hclewk
hclewk / slug.cs
Created December 31, 2016 18:13
Make Slug - Makes a url-friendly "slug" Input: "St. Patrick's Day: Awësöme tö-dö's" Output: "st-patricks-day-awesome-to-dos"
//Input: "St. Patrick's Day: Awësöme tö-dö's"
//Output: "st-patricks-day-awesome-to-dos"
public static string MakeSlug(string url)
{
url = RemoveDiacritics(url.ToLowerInvariant());
url = Regex.Replace(url, @"[^a-z0-9\-\s]", "");
url = Regex.Replace(url, @"\s+", "-");
url = Regex.Replace(url, @"\-+", "-").Trim('-');
return url;
@hclewk
hclewk / mime.cs
Created December 31, 2016 18:12
Get MIME type from extension in c#
public static string GetContentType(string extension)
{
if (extension.StartsWith("."))
extension = extension.Substring(1);
extension = extension.ToLower();
if (MimeTypes.ContainsKey(extension))
return MimeTypes[extension];
@hclewk
hclewk / password.cs
Created December 31, 2016 18:11
Hash a password in c#
using System;
using System.Text;
using System.Security.Cryptography;
namespace PasswordHash
{
/// <summary>
/// Salted password hashing with PBKDF2-SHA1.
/// Author: havoc AT defuse.ca
/// www: http://crackstation.net/hashing-security.htm
@hclewk
hclewk / getFilename.js
Created December 31, 2016 18:10
Get Filename from URL in JS
var getFileName = function (url) {
return url.replace(/\?.*$/, "").replace(/.*\//, "");
}
@hclewk
hclewk / dynamoToSns.js
Created December 31, 2016 18:08
DynamoDB Streams Events to SNS - NodeJS Lambda
var AWS = require('aws-sdk');
AWS.config.region = 'us-east-1';
var sns = new AWS.SNS();
exports.handler = function(event, context) {
var count = event.Records.length;
var completed = function(err, data){
@hclewk
hclewk / gzipexample.cs
Created December 31, 2016 18:06
GZip a string in c#
MemoryStream mem = new MemoryStream();
using (GZipStream gz = new GZipStream(mem, CompressionLevel.Optimal, true))
{
var b = Encoding.UTF8.GetBytes(json);
gz.Write(b, 0, b.Length);
gz.Flush();
}
var data = mem.ToArray();
@hclewk
hclewk / gzip.cs
Created December 31, 2016 18:05
Upload GZipped String to S3 - Fire and Forget
AmazonS3Client client = new AmazonS3Client(RegionEndpoint.USWest2);
MemoryStream mem = new MemoryStream();
using (GZipStream gz = new GZipStream(mem, CompressionLevel.Optimal, true))
{
var b = Encoding.UTF8.GetBytes(json);
gz.Write(b, 0, b.Length);
gz.Flush();
}