Skip to content

Instantly share code, notes, and snippets.

Tim Poulsen skypanther

Block or report user

Report or block skypanther

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View CIFilter+Extension.swift
//
// Created by はるふ on 2017/12/11.
// Copyright © 2017年 ha1f. All rights reserved.
//
import Foundation
import CoreImage
import AVFoundation
extension CIFilter {
@skypanther
skypanther / jetson_test.py
Created Jan 17, 2019
Test camera access on Jetson TX2
View jetson_test.py
import cv2
def main():
cam = open_cam_usb(1, 1024, 768)
# cam = open_cam_onboard(1024, 768) # Use Jetson onboard camera
if cam.isOpened() is False:
print('failed to open camera')
exit()
while True:
@skypanther
skypanther / slider.py
Created Oct 17, 2018
Trackbars (sliders) in OpenCV
View slider.py
'''
slider.py - Demonstrating a user of trackbars on OpenCV windows
Author: Tim Poulsen, github.com/skypanther
License: MIT
2018-10-15
Example usage:
python3 slider.py -i path/to/image.jpg
'''
@skypanther
skypanther / cam_test.py
Last active Jul 9, 2019
Accessing multiple PiCams with the Arducam adapter
View cam_test.py
import cv2
from multicam import Multicam
mcam = Multicam(gpio_mode='bcm')
cv2.imshow('Cam A', mcam.capture(cam='a'))
cv2.imshow('Cam B', mcam.capture(cam='b'))
cv2.imshow('Cam C', mcam.capture(cam='c'))
cv2.imshow('Cam D', mcam.capture(cam='d'))
# cv2.imshow('Cam E', mcam.capture(cam='e'))
@skypanther
skypanther / base64EncodeAscii.js
Created Jul 26, 2017
Titanium, alternative base64encode function; not the author, sorry I don't recall the original source for this; also untested in recent Ti versions
View base64EncodeAscii.js
// alternative to built-in base64 encode function, which has outstanding bugs
// alternatively, use:
// String(Ti.Utils.base64encode(theBlob)).replace(/(\r\n|\n|\r)/gm,"");
function Base64EncodeAscii(str) {
if (/([^\u0000-\u00ff])/.test(str)) {
throw 'String must be ASCII';
}
var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var o1,
o2,
@skypanther
skypanther / pushtest.js
Created Apr 20, 2017
GCM push test script
View pushtest.js
/*
Instructions
1. In the same directory where this js file exists, run `npm install gcm` (to install the required node module)
2. Get your GCM/FCM API Key from the Google APIs Console and paste it in place of "YOUR_GCM_API_KEY" below
2. You'll need your device's push token. You can get this by logging the token when your GCM-enabled app calls
the "success" callback after registering for push services. Paste it in place of "YOUR DEVICE_PUSH_TOKEN" below.
3. Run this with `node pushtest.js`
4. After a moment, you should get the push notification on your device
@skypanther
skypanther / encoder.java
Created Feb 11, 2017
scratch code for using the Talon SRX encoders
View encoder.java
int circumferenceInInches = 123;
int pulsesPerRotation = 1000;
protected void function auto1() {
RobotDrive drive = RobotMap.driveSystemdrive;
CANTalon talon = RobotMap.driveSystemCANTalon1;
//Change control mode of talon, other options are Follower Mode or Voltage Compensation
talon.changeControlMode(ControlMode.Position);
//Select either QuadEncoder or Pulse Width / Analog, we want Quad
View keybase.md

Keybase proof

I hereby claim:

  • I am skypanther on github.
  • I am skypanther (https://keybase.io/skypanther) on keybase.
  • I have a public key whose fingerprint is 902C 1285 BB32 4F2E 0CF0 FBC5 2329 CA36 9FAB 9DE6

To claim this, I am signing this object:

@skypanther
skypanther / Gruntfile.js
Last active May 3, 2017
Grunt - build your Titanium app and upload to Installr
View Gruntfile.js
var _ = require('underscore')._;
module.exports = function(grunt) {
grunt.initConfig({
settings: {
appName: 'YourAppName',
ppUuid: 'uuid', /* Provisioning profile UUID */
distributionName: 'cert_name', /* Distr. certificate name */
keystoreLocation: '/Users/path/to/android.keystore', /* path to keystore */
storePassword: 'keystore_password', /* keystore password */
@skypanther
skypanther / app.js
Created Jul 17, 2014
Android reorientation height/width
View app.js
// Ti sometimes determines platformWidth before, rather than after a
// reorientation. This works around that from @FokkeZB
if (OS_ANDROID) {
Alloy.Globals.platformWidth = Alloy.Globals.platformWidth / Alloy.Globals.density;
Alloy.Globals.platformHeight = Alloy.Globals.platformHeight / Alloy.Globals.density;
if (Ti.Gesture.landscape) {
console.info('switching!');
You can’t perform that action at this time.