Skip to content

Instantly share code, notes, and snippets.


Shane Cowherd shanecowherd

View GitHub Profile
shanecowherd / ImageCachingService.swift
Created Dec 20, 2017 — forked from tjbarber/ImageCachingService.swift
Simple Image Caching Service Version 00000001
View ImageCachingService.swift
// ImageCachingService.swift
// Exuberant
// Created by TJ Barber on 12/20/17.
// Copyright © 2017 Thomas J. Barber. All rights reserved.
import UIKit
View download.swift
let url = URL(string: "")!
let downloadTask = URLSession.shared.downloadTask(with: url) { (downloadedFile, response, error) in
// Make sure the temporary file exists and you have access to it
guard let downloadedFile = downloadedFile, FileManager.default.fileExists(atPath: downloadedFile.path) else {
shanecowherd / 7-19-2019
Created Jul 17, 2019
I am attempting to use Github Gist as a blog engine.
View 7-19-2019

I'm a developer and I use GitHub all day, so naturally it would be awesome if I could use it for my blog. I've done the whole "roll your own" so many times I have lost count.

I started making my own blog/personal site back in 1997 and really fell in love using Microsoft Frontpage 1997. It was an awesome time to be on the internet. The .com bubble was starting and new web innovations were happening all over the place.

DHTML (Dynamic HTML) was my first foray into javascript. I remember using DHTML snippet websites and copy/pasting little javascript snippets into my source code. This allowed me to do some amazing things like…. On hover menus, simple fade animations, blinking text, and every other terrible design abomination a teenager thought would be cool. Those were good times.

Later I started building sites with PHP and rebuilt my contentless website with every blog engine or cms I could try.

  • PHPNuke
  • e107
shanecowherd / raspberry-pi-ffmpeg.swift
Created Aug 8, 2019
This file lets you record using ffmpeg on a raspberry pi, in swift!
View raspberry-pi-ffmpeg.swift
// curl -s | sudo bash
// sudo apt-get install swift-lite-rpi
// swift-lite-build raspberry-pi-ffmpeg.swift
// ./raspberry-pi-ffmpeg.swapp
View AaronCodableBook.swift
import UIKit
struct JSONBook: Codable {
let book: Book
// MARK: - Book
struct Book: Codable {
let isbn, language, binding, publisher: String
let dimensions: String
shanecowherd /
Created Oct 11, 2019
Bash script to automate sending email from using AppleScript. (For debugging)
# Generate a random text email and send it to
# Used for testing email apps when you need a lot of messages in a test account.
# Configure the script in this section.
View ExampleOperation.swift
let operationQueue = OperationQueue()
class ExampleOperation: Operation {
var delegate: SomeDelegate
var callbackDelegate: SomeCallbackDelegate
var success = false // I mark this when the operation has succeeded. Optional
init(delegate: SomeDelegate, callbackDelegate: SomeCallbackDelegate) {
self.delegate = delegate
self.callbackDelegate = callbackDelegate
shanecowherd / fileBiggerThan0KB.swift
Last active Nov 12, 2019
Check if a file is bigger than 0 KB
View fileBiggerThan0KB.swift
func fileBiggerThan0KB(path: String) -> Bool {
do {
var fileSize : UInt64 = 0
//return [FileAttributeKey : Any]
let attr = try FileManager.default.attributesOfItem(atPath: path)
fileSize = attr[FileAttributeKey.size] as! UInt64
//if you convert to NSDictionary, you can get file size old way as well.
let dict = attr as NSDictionary
shanecowherd / CircularQueue.swift
Last active Nov 17, 2019
LeetCode 622. Design Circular Queue
View CircularQueue.swift
//Runtime: 104 ms, faster than 78.33% of Swift online submissions for Design Circular Queue.
//Memory Usage: 21.7 MB, less than 100.00% of Swift online submissions for Design Circular Queue.
class Item {
let value: Int
var next: Item?
var prev: Item?