Skip to content

Instantly share code, notes, and snippets.

View joenoon's full-sized avatar

Joe Noon joenoon

  • SF Bay Area - San Ramon
View GitHub Profile
@joenoon
joenoon / MailgunSender.js
Created October 9, 2017 00:59
This is a simple wrapper around mailgun.send that adds easy templating and forces tags to be used.
//
// MailgunSender
// Copyright 2017 Joe Noon <[email protected]>
// MIT License
//
// This is a simple wrapper around mailgun.send that adds easy templating and forces
// tags to be used.
//
// Initialize a MailgunSender with the path to your templates, and instance of mailgun:
//
# Creates classes in Obj-C and Java that contain values from
# config.yaml (which can be overridden by ENV).
# Values are obfuscated. (Untested as to how secure this is,
# but the point is to do better than completely plain
# public api keys visible in builds/plists)
# The key value pairs can be accessed from React Native via:
# NativeModules.AppEnv.XYZ
@joenoon
joenoon / cbldocs.sh
Last active August 29, 2015 14:23
CLI wrapper to simplify outputting a doc or all docs from a cblite db.
#!/bin/bash
#
# CLI wrapper to simplify outputting a doc or all docs from a cblite db.
#
# The MIT License (MIT)
#
# Copyright (c) 2015, Joe Noon
#
if defined?(PhusionPassenger)
# Rails.logger is not available at the time of adding the middleware
class PassengerRailsLoggerProxy
def info(*args)
if @logger ||= Rails.logger
@logger.info(*args)
end
end
end
PhusionPassenger.require_passenger_lib 'rack/out_of_band_gc'
@joenoon
joenoon / YapModel.rb
Created January 17, 2014 09:58
Rubymotion wrapper for YapDatabase. Tested on 1.2.2. Makes some assumptions about your objects, currently not abstract enough to be a gem. See the top of the file for some example usage.
# Copyright (c) 2013 Joe Noon (https://github.com/joenoon)
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
@joenoon
joenoon / gist:7950988
Created December 13, 2013 20:41
drop-in to see allocations and deallocations.
# [ UIViewController, UIView, etc. ]...
[ UIViewController ].each do |klass|
klass.class_eval do
def self.allocWithZone(zone)
super.tap do |x|
p " + alloc! #{x.inspect}"
end
end
alias_method 'old_dealloc', 'dealloc'
@joenoon
joenoon / update_plex_added_at.sql
Last active November 7, 2017 12:08
PLEX MEDIA SERVER: Update the added_at timestamp for each series to the most recently added episode's timestamp for that series.DO NOT RUN THIS UNLESS YOU KNOW WHAT IT DOES, AND BACKUP FIRST. IT WILL ALTER YOUR PLEX DATABASE. IT IS MOSTLY UNTESTED.
BEGIN;
DROP TABLE IF EXISTS tmp_series_episodes;
-- a temp table containing each episode with its cooresponding series
CREATE TEMP TABLE tmp_series_episodes AS
SELECT series.id series_id,
series.title series_name,
series.added_at series_added_at,
episode.id episode_id,
@joenoon
joenoon / gist:5846816
Created June 23, 2013 22:44
YapModel, coming soon
class YapModel
def self.database
Dispatch.once { @database = YapDatabase.alloc.initWithPath(App.documents_path + "/yap.db") }
@database
end
def self.dbconnection
Thread.current["yap_dbconnection"] ||= WeakRef.new(new_dbconnection)
end
Original http://pkgs.fedoraproject.org/cgit/htmldoc.git/plain/htmldoc-1.8.27-libpng15.patch?h=f18
From upstream 1.8 branch svn r1668
The previous libpng-1.5 conversion patch here caused corrupt PNG output
on 64 bit. e.g. http://answerpot.com/showthread.php?3662601-PNG+Rendering+Problems
The upstream version (below) works well.
Index: htmldoc/image.cxx
@joenoon
joenoon / gist:4156512
Last active October 14, 2020 20:21
RubyMotion - read entitlements from the provisioning_profile
# read entitlements from the provisioning_profile
# you can the set it like this:
# app.entitlements = app.read_provisioning_profile_entitlements
module Motion
module Project
class Config
def read_provisioning_profile_entitlements
text = File.read(provisioning_profile)
text.force_encoding('binary') if RUBY_VERSION >= '1.9.0'
text = text.scan(/<key>\s*Entitlements\s*<\/key>\s*<dict>(.*?)\s*<\/dict>/m)[0][0]