Skip to content

Instantly share code, notes, and snippets.

@ryankennedy
ryankennedy / VendorJsonProvider.java
Created April 16, 2013 06:25
Brief exploration into what it takes to do vendor extensions in JAX-RS.
package com.yammer.testvendor;
import com.yammer.dropwizard.jersey.JacksonMessageBodyProvider;
import com.yammer.dropwizard.json.Json;
import javax.ws.rs.Consumes;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
@ryankennedy
ryankennedy / asmifier.c
Last active January 4, 2017 13:27
Quickly creating a command line utility to run ASMifier (http://asm.ow2.org/asm40/javadoc/user/org/objectweb/asm/util/ASMifier.html).
#include <stdio.h>
#include <errno.h>
int main(int argc, char* argv[]) {
int i;
char* argv2[argc+3];
argv2[0] = "java";
argv2[1] = "-cp";
argv2[2] = argv[0];
argv2[3] = "org.objectweb.asm.util.ASMifier";
@ryankennedy
ryankennedy / Audited.java
Created September 24, 2013 17:48
Example of adding audited REST endpoints to a Dropwizard service.
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Audited {
}
@ryankennedy
ryankennedy / GithubClientTest.java
Created March 25, 2015 23:04
Using DropwizardClientRule to test the GitHub API.
package com.hypnoticocelot.github;
import io.dropwizard.jackson.Jackson;
import io.dropwizard.jersey.jackson.JacksonMessageBodyProvider;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
### Keybase proof
I hereby claim:
* I am ryankennedy on github.
* I am rckenned (https://keybase.io/rckenned) on keybase.
* I have a public key whose fingerprint is 85FC 20AA E092 3128 DBE7 61F6 5344 89C6 1213 23D0
To claim this, I am signing this object:
@ryankennedy
ryankennedy / output.txt
Created September 11, 2015 05:19
node trying to do substring on unicode
$ node substring.js 🙅🏿
🙅🏿.substring(0, 1) = �
🙅🏿.substring(0, 2) = 🙅
🙅🏿.substring(0, 3) = 🙅�
🙅🏿.substring(0, 4) = 🙅🏿
@ryankennedy
ryankennedy / BulkUpdate.java
Created September 11, 2015 19:24
Bulk re-enable SNS endpoints
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.regions.Region;
import com.amazonaws.regions.RegionUtils;
import com.amazonaws.services.sns.AmazonSNS;
import com.amazonaws.services.sns.AmazonSNSClient;
import com.amazonaws.services.sns.model.Endpoint;
import com.amazonaws.services.sns.model.ListEndpointsByPlatformApplicationRequest;
import com.amazonaws.services.sns.model.ListEndpointsByPlatformApplicationResult;
import com.amazonaws.services.sns.model.SetEndpointAttributesRequest;
import com.google.common.collect.ImmutableMap;
@ryankennedy
ryankennedy / asplode.log
Created September 28, 2015 04:49
telemetry-example blowing up in Java 8
WARN [2015-09-28 04:48:24,010] org.eclipse.jetty.server.AbstractConnector:
! java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: Could not initialize class java.lang.invoke.CallSite
! at sun.net.ExtendedOptionsImpl.<clinit>(ExtendedOptionsImpl.java:47) ~[na:1.8.0_20]
! at sun.nio.ch.SocketChannelImpl$DefaultOptionsHolder.defaultOptions(SocketChannelImpl.java:241) ~[na:1.8.0_20]
! at sun.nio.ch.SocketChannelImpl$DefaultOptionsHolder.<clinit>(SocketChannelImpl.java:228) ~[na:1.8.0_20]
! at sun.nio.ch.SocketChannelImpl.supportedOptions(SocketChannelImpl.java:250) ~[na:1.8.0_20]
! at sun.nio.ch.SocketChannelImpl.setOption(SocketChannelImpl.java:169) ~[na:1.8.0_20]
! at sun.nio.ch.SocketAdaptor.setBooleanOption(SocketAdaptor.java:271) ~[na:1.8.0_20]
! at sun.nio.ch.SocketAdaptor.setTcpNoDelay(SocketAdaptor.java:306) ~[na:1.8.0_20]
! at org.eclipse.jetty.server.AbstractConnector.configure(AbstractConnector.java:391) ~[jetty-server-8.1.10.v20130312.jar:8.1.10.v20130312]
import io.dropwizard.Application;
import io.dropwizard.setup.Environment;
import javax.ws.rs.GET;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import java.util.UUID;
public class TestUuidApplication extends Application<TestUuidConfiguration> {
@ryankennedy
ryankennedy / east_coast_nodejs_wrk.log
Last active October 23, 2015 05:20
AWS Lambda Latency
$ ./wrk -t 10 -c 50 -d 60s --latency --timeout 15s http://hw9j2li3ma.execute-api.us-east-1.amazonaws.com/prod/NodeSayHello
Running 1m test @ http://hw9j2li3ma.execute-api.us-east-1.amazonaws.com/prod/NodeSayHello
10 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 3.22ms 3.93ms 206.21ms 93.68%
Req/Sec 1.72k 366.83 2.19k 83.31%
Latency Distribution
50% 2.34ms
75% 2.59ms
90% 4.61ms