Skip to content

Instantly share code, notes, and snippets.

View kgn's full-sized avatar

David Keegan kgn

View GitHub Profile
@kgn
kgn / s3upload.swift
Created January 28, 2022 05:57
Simple function to upload files to S3 in Swift with no dependencies
import Foundation
import CryptoKit
extension String {
func hmac(key: String) -> String {
let secret = key.data(using: .utf8)!
let message = self.data(using: .utf8)!
var hmac = HMAC<Insecure.SHA1>(key: SymmetricKey(data: secret))
hmac.update(data: message)
@kgn
kgn / svg2png
Created October 12, 2021 04:32
Convert svg to png
import svg2img from 'svg2img';
module.exports = (req, res) => {
const url = req.query.url;
const width = req.query.width;
const height = req.query.height;
const size = Math.min(width, height);
svg2img(url, {width: size, height: size, preserveAspectRatio: true},
function(error, buffer) {
if (buffer) {
@kgn
kgn / svg2png.js
Created September 21, 2021 14:33
const svg2img = require('svg2img');
module.exports = (req, res) => {
svg2img(req.query.url, {width: req.query.width, height: req.query.height, preserveAspectRatio: true},
function(error, buffer) {
if (buffer) {
res.send(buffer);
}
});
};
enum Food: String {
case beef = "Beef"
case chicken = "Chicken"
case vegitarian = "Vegitarian"
case kids = "Kids"
}
protocol People {
var people: [Person] { get }
}
@kgn
kgn / End.swift
Last active August 19, 2019 05:58
for (i, table) in tables.enumerated() {
print("Table #\(i+1)")
print(table.people
.map{"\($0.name),\($0.food.rawValue)"}
.joined(separator: "\n")
)
}
protocol People {
var people: [Person] { get }
}
@_functionBuilder
struct PeopleBuilder {
static func buildBlock(_ people: People...) -> [Person] {
return people.reduce([], {$0+$1.people})
}
}
@_functionBuilder
struct PeopleBuilder {
static func buildBlock(_ people: Person...) -> [Person] {
return people
}
}
struct Table {
let people: [Person]
Table {
Family("Mr. & Mrs. Smith") {
Person("Mr. John Smith", .beef)
Person("Mrs. Jane Smith", .chicken)
}
Person("Mr. Ed Ford", .chicken)
Person("Mrs. Amanda Doolittle", .vegitarian)
Family("Mr. & Mrs. Appleseed") {
Person("Mr. Jonny Appleseed", .chicken)
Person("Mrs. Jessica Appleseed", .vegitarian)
enum Food: String {
case beef = "Beef"
case chicken = "Chicken"
case vegitarian = "Vegitarian"
case kids = "Kids"
}
struct Person {
let name: String
let food: Food
@kgn
kgn / Step 1.swift
Created August 19, 2019 03:31
Wedding Tables
enum Food: String {
case beef = "Beef"
case chicken = "Chicken"
case vegitarian = "Vegitarian"
case kids = "Kids"
}
struct Person {
let name: String
let food: Food