Skip to content

Instantly share code, notes, and snippets.

@hansott
hansott / gist:a50f11dd106bf82f83ad
Created November 9, 2014 12:22
2D Grid for objects in Swift
struct Grid<T> {
var array : Array<Array<T>>
let rows : Int
let columns : Int
init(rows : Int, columns : Int, initialValue: T) {
self.rows = rows
self.columns = columns
self.array = Array<Array<T>>()
@hansott
hansott / gist:c4b9151920097be70f39
Created November 9, 2014 12:25
SKColor extension: create SKColor from hex value
import Foundation
import SpriteKit
import UIKit
extension SKColor {
convenience init(rgba: String) {
var red: CGFloat = 0.0
var green: CGFloat = 0.0
var blue: CGFloat = 0.0
var alpha: CGFloat = 1.0
@hansott
hansott / gist:fd53b4b10349ada1f16e
Created November 9, 2014 12:26
Generate random SKColor
func getRandomColor() -> SKColor {
var randomRed:CGFloat = CGFloat(drand48())
var randomGreen:CGFloat = CGFloat(drand48())
var randomBlue:CGFloat = CGFloat(drand48())
return SKColor(red: randomRed, green: randomGreen, blue: randomBlue, alpha: 1.0)
}
// Usage
@hansott
hansott / gist:a4f703ba801754aa964d
Last active August 29, 2015 14:09
Generate random number from min - max
func generateRandomIndex(#lower: Int , upper: Int) -> Int {
return lower + Int(arc4random_uniform(UInt32(upper - lower + 1)))
}
// Usage
var randomDice : Int = generateRandomIndex(lower: 1, upper: 6)
@hansott
hansott / toString.swift
Last active March 18, 2019 02:46
Swift toString() method
// Searching for a toString() method in Swift? Use the printable protocol!
// Implement Printable protocol and create a description variable
// https://developer.apple.com/library/ios/documentation/General/Reference/SwiftStandardLibraryReference/Printable.html
class Person : Printable {
var name : String!
init(name : String) {
self.name = name
}
@hansott
hansott / gist:e26ef1303dd703e0210d
Last active August 29, 2015 14:10
PebbleConnector
import Foundation
public class PebbleConnector : NSObject, PBPebbleCentralDelegate, PBWatchDelegate {
public class var sharedInstance: PebbleConnector {
struct Singleton {
static let instance = PebbleConnector()
}
return Singleton.instance
@hansott
hansott / edit.cshtml
Created December 15, 2014 21:48
Disable browser caching in razor templates (ASP.NET MVC)
@{
var random = new Random();
int r = random.Next(1000);
}
<p><img src="@Url.Content("~/images/records/" + Model.id + ".jpg")?time=@r" alt="Album cover" class="img-responsive" /></p>
@hansott
hansott / TimeAgo.swift
Created December 26, 2014 09:02
Time ago function swift ios cocoa
func timeAgoSinceDate(date:NSDate, numericDates:Bool) -> String {
let calendar = NSCalendar.currentCalendar()
let unitFlags = NSCalendarUnit.CalendarUnitMinute | NSCalendarUnit.CalendarUnitHour | NSCalendarUnit.CalendarUnitDay | NSCalendarUnit.CalendarUnitWeekOfYear | NSCalendarUnit.CalendarUnitMonth | NSCalendarUnit.CalendarUnitYear | NSCalendarUnit.CalendarUnitSecond
let now = NSDate()
let earliest = now.earlierDate(date)
let latest = (earliest == now) ? date : now
let components:NSDateComponents = calendar.components(unitFlags, fromDate: earliest, toDate: latest, options: nil)
if (components.year >= 2) {
return "\(components.year) years ago"
} else if (components.year >= 1){
@hansott
hansott / Instructions
Last active August 29, 2015 14:19
Gitlab Web Hook using Node.js
1. `$ npm install gitlabhook`
2. Copy webhook.js in directory
3. Create systemd service, instructions can be found here: https://github.com/rolfn/node-gitlab-hook#installation-hints-for-linux
4. Or test using `node webhook.js`
@hansott
hansott / app.js
Created May 21, 2015 07:25
Global socket.io in an application
var http = require('http');
var sockets = require('./sockets');
var server = http.createServer(app);
sockets.connect(server);
sockets.emit('event', { message: 'This is an event!' });