Skip to content

Instantly share code, notes, and snippets.

View brettwooldridge's full-sized avatar

Brett Wooldridge brettwooldridge

  • LogicVein, Inc
  • Tokyo, Japan
View GitHub Profile
@brettwooldridge
brettwooldridge / zfs_report.pl
Created May 4, 2020 14:23
ZFS and Smartctl status email script
#!/bin/env perl
use feature qw(say);
our %smartctl_raw;
say '<html><body><pre style="font-size: smaller">';
_build_smartctl(18);
_build_smartctl(34);
@brettwooldridge
brettwooldridge / Java2Kotlin.md
Last active November 15, 2018 09:33
Java to Kotlin comparison... just anecdotal:

Interesting Kotlin/Java comparison ... this Java:

         XMLOutputFactory factory = XMLOutputFactory.newInstance();
         XMLStreamWriter xmlWriter = factory.createXMLStreamWriter(writer);

         xmlWriter.writeStartDocument();
         xmlWriter.writeStartElement("html");
         xmlWriter.writeStartElement("head");

         xmlWriter.writeStartElement("title");
@brettwooldridge
brettwooldridge / ProcessTest.java
Last active May 8, 2023 07:03
JNA call to JVM internal JNI method failing
package com.zaxxer.jna;
import com.sun.jna.JNIEnv;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.NativeLibrary;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
@brettwooldridge
brettwooldridge / Issue1118.java
Last active March 20, 2018 16:40
HikariCP Issue1118
package com.zaxxer.hikari.benchmark;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import java.sql.*;
import java.util.concurrent.ThreadLocalRandom;
/**
* docker run --name some-mysql -e MYSQL_USER=brettw -e MYSQL_PASSWORD=secret -e MYSQL_DATABASE=issue1118 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -p 3306:3306 -d mysql:5.5
@brettwooldridge
brettwooldridge / Useful.MD
Last active May 25, 2017 05:03
Useful tools and commands
$ brew install webkit2png
$ webkit2png https://someweb.site/url
@brettwooldridge
brettwooldridge / DigestTest.java
Last active May 5, 2017 15:18
Cheap Java SHA1 Digest speed test
public class DigestTest
{
@Test
public void test() {
String sql = "SELECT count(ZDeviceLite.device_id) FROM device ZDeviceLite";
// This variable is meaningless and only used for benchmarking, to prevent the
// JVM from optimizing away the loops below due to non-use of the returned types.
int hash = 0;
@brettwooldridge
brettwooldridge / Issue828.java
Created February 22, 2017 11:56
HikariCP Issue#828
package com.zaxxer.hikari.pool;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.junit.Test;
import org.postgresql.PGConnection;
@brettwooldridge
brettwooldridge / genclient
Created October 28, 2015 03:16 — forked from wsargent/genclient
Create a working(!) client certificate for use with nginx, using only keytool
#!/bin/bash
export PW=`pwgen -Bs 10 1`
echo "$PW" > password
# Create a self signed certificate & private key to create a root certificate authority.
keytool -genkeypair -v \
-alias clientCA \
-keystore client.jks \
@brettwooldridge
brettwooldridge / ThreadStartMicro.java
Created October 2, 2015 06:00
JMH Benchmark to measure thread launch time overhead
package com.zaxxer.miscmicro;
import java.util.concurrent.TimeUnit;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Level;
import org.openjdk.jmh.annotations.Measurement;
import org.openjdk.jmh.annotations.Mode;
import org.openjdk.jmh.annotations.OutputTimeUnit;
public class InterceptorDataSource implements InvocationHandler {
private final DataSource delegate;
private InterceptorDataSource(final DataSource delegate) {
this.delegate = delegate;
}
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
return (method.getName().equals("getConnection")) ? getConnection() : method.invoke(delegate, args);
}