Skip to content

Instantly share code, notes, and snippets.

Avatar

Shane Cowherd shanecowherd

View GitHub Profile
@shanecowherd
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
//https://developer.apple.com/documentation/foundation/urlsession/1411511-downloadtask
let url = URL(string: "https://www.shanecowherd.com")!
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 {
return
}
@shanecowherd
shanecowherd / 7-19-2019 Blog.md
Created Jul 17, 2019
I am attempting to use Github Gist as a blog engine.
View 7-19-2019 Blog.md

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 myspace.com 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
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
//https://github.com/futurejones/Swift-Lite/
////Install
// curl -s https://packagecloud.io/install/repositories/swift-arm/swift-lite/script.deb.sh | sudo bash
// sudo apt-get install swift-lite-rpi
////Compile
// swift-lite-build raspberry-pi-ffmpeg.swift
////Run
// ./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
shanecowherd / randmail.sh
Created Oct 11, 2019
Bash script to automate sending email from Mail.app using AppleScript. (For debugging)
View randmail.sh
#!/bin/bash
# Generate a random text email and send it to test@example.com
# Used for testing email apps when you need a lot of messages in a test account.
# Configure the script in this section.
NUMBER_OF_MESSAGES=10
WORDS_IN_MESSAGE=10
RECIPIENT=test@example.com
@shanecowherd
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
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
shanecowherd / CircularQueue.swift
Last active Nov 17, 2019
LeetCode 622. Design Circular Queue
View CircularQueue.swift
//https://leetcode.com/problems/design-circular-queue/
//Passed
//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?
You can’t perform that action at this time.