Skip to content

Instantly share code, notes, and snippets.

View jonathanstiansen's full-sized avatar

Jonathan Stiansen jonathanstiansen

View GitHub Profile
@jonathanstiansen
jonathanstiansen / Profiling.swift
Created November 4, 2015 03:00 — forked from pyrtsa/Profiling.swift
Profile a block of code in Swift 2.0
import Foundation
public func profiling<R>(label: String, @noescape _ block: () -> R) -> R {
NSLog("*** %@...", label)
let start = NSDate()
defer {
let end = NSDate()
NSLog("*** %@ took %5.3g seconds", label, end.timeIntervalSinceDate(start))
}
return block()
// Examples are: "tell application \"Google Chrome\" to return URL of front document"
// Other web app specific versions here: https://gist.github.com/vitorgalvao/5392178
let myAppleScript = "..."
var error: NSDictionary?
if let scriptObject = NSAppleScript(source: myAppleScript) {
if let output: NSAppleEventDescriptor = scriptObject.executeAndReturnError(&error) {
if let result = output.stringValue {
print(output.stringValue)
}
} else if (error != nil) {
#!/bin/bash
#
# An example hook script to make use of push options.
# The example simply echoes all push options that start with 'echoback='
# and rejects all pushes when the "reject" push option is used.
#
# To enable this hook, rename this file to "pre-receive".
# check if back merges are happening from important branches
echo "checking for bad branch names"
const express = require('express');
const app = express();
// Application
app.get('/', function(req, res) {
if (process.env.NODE_ENV === 'development') {
for (var key in require.cache) {
delete require.cache[key];
}
}
@jonathanstiansen
jonathanstiansen / machine.js
Last active December 9, 2019 17:51
Generated by XState Viz: https://xstate.js.org/viz
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions
// - XState (all XState exports)
@jonathanstiansen
jonathanstiansen / elixir.json
Created June 14, 2020 19:20 — forked from paridin/elixir.json
VSCode Elixir Snippets
{
// Place your snippets for elixir here. Each snippet is defined under a snippet name and has a prefix, body and
// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the
// same ids are connected.
// Example:
// "Print to console": {
// "prefix": "log",
// "body": [
// "console.log('$1');",
@jonathanstiansen
jonathanstiansen / encrypt-decrypt-react-native-node.js
Last active September 22, 2020 23:24
Encrypt in Node and Decrypt in React-Native (the reverse is almost identical)
// The purpose of this is that there was as cipher vulnerability found in the javascript implementation of the main
//. crypto-js library.
//. The native implementation they created made it unusable on react-native
// The reason we are using the node version of crypto is because the only supported AES from the react-native
//. implementation is aes-128-cbc
//. The node crypto library seems to be the only lib that supports that specific version.
// requires installing - https://www.npmjs.com/package/react-native-simple-crypto also linking
import RNSimpleCrypto from 'react-native-simple-crypto'
const toUtf8 = RNSimpleCrypto.utils.convertArrayBufferToUtf8
@jonathanstiansen
jonathanstiansen / .github-workflows-main.yml
Last active October 9, 2020 16:40 — forked from edvinasbartkus/.github-workflows-main.yml
Github Action for React Native Detox
name: Detox
on:
push:
branches:
- master
paths:
- 'customer/**'
- 'shared/**'
@jonathanstiansen
jonathanstiansen / machine.js
Last active January 30, 2021 22:54
Generated by XState Viz: https://xstate.js.org/viz
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions
@jonathanstiansen
jonathanstiansen / machine.js
Last active February 5, 2021 23:13
Generated by XState Viz: https://xstate.js.org/viz
// import { Camera as RNCamera } from 'expo-camera'
const recordVideo = (cameraRef, options) =>
cameraRef.recordAsync(options)
// VideoScreen is where the actual picture taking happens
const videoLimit = 11
const Video = Machine({
id: 'video',
initial: 'init',