Skip to content

Instantly share code, notes, and snippets.

Avatar

Patrick Pelletier ppelleti

View GitHub Profile
@ppelleti
ppelleti / svg-to-dxf.pl
Created May 4, 2016
Convert SVG files to DXF files on Mac OS X
View svg-to-dxf.pl
#!/usr/bin/perl -w
# svg-to-dxf.pl - convert SVG files to DXF files on Mac OS X
# by Patrick Pelletier, public domain (or cc0)
# based on the commands suggested here:
# https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Other_2D_formats
# assumes Inkscape.app is installed in /Applications
# and pstoedit is installed in PATH, such as via "brew install pstoedit"
use Cwd qw(abs_path);
@ppelleti
ppelleti / Diffie.java
Created Aug 19, 2013
A simple program which will detect the maximum Diffie-Hellman size supported by the JRE.
View Diffie.java
import java.security.AlgorithmParameterGenerator;
import java.security.InvalidParameterException;
public class Diffie {
public static void main (String[] args) throws Exception {
AlgorithmParameterGenerator apg = AlgorithmParameterGenerator . getInstance ("DiffieHellman");
int good = 0;
for (int i = 512 ; i <= 16384 ; i += 64) {
try {
apg . init (i);
@ppelleti
ppelleti / feather.txt
Created Aug 31, 2018
Feather pinout ASCII art
View feather.txt
This is an unofficial pinout diagram of the Adafruit Feather
specification:
https://learn.adafruit.com/adafruit-feather/feather-specification
For more information about this diagram, see:
http://funwithsoftware.org/posts/2018-08-31-feather-ascii-art-pinout.html
+-------------------+
@ppelleti
ppelleti / Relay_DPDT_Panasonic_JW2.py
Created Jul 24, 2017
script to generate KiCad footprint for Panasonic JW2 relay
View Relay_DPDT_Panasonic_JW2.py
#!/usr/bin/env python3
import sys
sys.path.append("/Users/ppelleti/src/kicad-footprint-generator")
from KicadModTree import *
footprint_name = "Relay_DPDT_Panasonic_JW2"
f = Footprint(footprint_name)
@ppelleti
ppelleti / alitove_with_button.ino
Last active Dec 24, 2016
Arduino sketch for displaying several different patterns of lights on WS2811/WS2812 LEDs, controlled by a pushbutton.
View alitove_with_button.ino
/* This Arduino sketch is for controlling a string of Alitove lights
* from an Adafruit Trinket. The lights are connected to the
* Trinket's pin 1 through a resistor. A pushbutton is connected from
* pin 0 to ground. You can use the pushbutton to cycle through the
* following modes:
*
* 1. Solid purple
* 2. Blue with white twinkles
* 3. Rainbow
* 4. Multicolored blinking
@ppelleti
ppelleti / Setup.hs
Last active Aug 12, 2016
copy photos from my phone using Android Debug Bridge
View Setup.hs
import Distribution.Simple
main = defaultMain
@ppelleti
ppelleti / rand-trouble.c
Created Aug 21, 2013
This is a simple program which demonstrates that OpenSSL's default random number generator is not fork-safe if the pids wrap.
View rand-trouble.c
/* Patrick Pelletier, public domain / cc0
*
* OpenSSL's default random number generator (RAND_SSLeay) is not
* fork-safe in the case where the child pids wrap around without the
* parent having used or reseeded the RNG in the interim. Which makes
* this a rare problem, but one which recently cropped up on Android:
* https://plus.google.com/+AndroidDevelopers/posts/YxWzeNQMJS2
* and Nikolay Elenkov wrote a program to demonstrate the bug on Android:
* https://gist.github.com/nelenkov/581f9be65dcc0b6b35b9
*
@ppelleti
ppelleti / strings returned by FormatMessage
Created Feb 8, 2013
A comparison of the error strings returned by evutil_socket_error_to_string, versus the error strings returned by the Windows function FormatMessage.
View strings returned by FormatMessage
WSAEINTR -> "A blocking operation was interrupted by a call to WSACancelBlockingCall."
WSAEACCES -> "An attempt was made to access a socket in a way forbidden by its access permissions."
WSAEFAULT -> "The system detected an invalid pointer address in attempting to use a pointer argument in a call."
WSAEINVAL -> "An invalid argument was supplied."
WSAEMFILE -> "Too many open sockets."
WSAEWOULDBLOCK -> "A non-blocking socket operation could not be completed immediately."
WSAEINPROGRESS -> "A blocking operation is currently executing."
WSAEALREADY -> "An operation was attempted on a non-blocking socket that already had an operation in progress."
WSAENOTSOCK -> "An operation was attempted on something that is not a socket."
WSAEDESTADDRREQ -> "A required address was omitted from an operation on a socket."
@ppelleti
ppelleti / hokey-hash.rs
Created Aug 12, 2012
list of hokey hash functions in rustc
View hokey-hash.rs
/* list of hokey hash functions in rustc as of August 12, 2012
* in response to https://github.com/mozilla/rust/issues/3041 */
// libsyntax/ast_util.rs:
pure fn hash_ty(t: &@ty) -> uint {
let res = (t.span.lo << 16u) + t.span.hi;
return res;
}
@ppelleti
ppelleti / NoekeonVects.java
Created Apr 22, 2012
Generate Noekeon test vectors using BouncyCastle
View NoekeonVects.java
/*
NoekeonVects.java - Generate Noekeon test vectors using BouncyCastle.
Written in 2011 by Patrick Pelletier <code@funwithsoftware.org>
To the extent possible under law, the author(s) have dedicated all
copyright and related and neighboring rights to this software to
the public domain worldwide. This software is distributed without
any warranty.