Skip to content

Instantly share code, notes, and snippets.

IanColdwater / twittermute.txt
Last active May 16, 2022
Here are some terms to mute on Twitter to clean your timeline up a bit.
View twittermute.txt
Mute these words in your settings here:

Quick Tips for Fast Code on the JVM

I was talking to a coworker recently about general techniques that almost always form the core of any effort to write very fast, down-to-the-metal hot path code on the JVM, and they pointed out that there really isn't a particularly good place to go for this information. It occurred to me that, really, I had more or less picked up all of it by word of mouth and experience, and there just aren't any good reference sources on the topic. So… here's my word of mouth.

This is by no means a comprehensive gist. It's also important to understand that the techniques that I outline in here are not 100% absolute either. Performance on the JVM is an incredibly complicated subject, and while there are rules that almost always hold true, the "almost" remains very salient. Also, for many or even most applications, there will be other techniques that I'm not mentioning which will have a greater impact. JMH, Java Flight Recorder, and a good profiler are your very best friend! Mea

yoyama / Schema2CaseClass.scala
Created Jan 20, 2017
Generate case class from spark DataFrame/Dataset schema.
View Schema2CaseClass.scala
* Generate Case class from DataFrame.schema
* val df:DataFrame = ...
* val s2cc = new Schema2CaseClass
* import s2cc.implicit._
* println(s2cc.schemaToCaseClass(df.schema, "MyClass"))
View circe-geojson.scala
import io.circe._
import io.circe.parser._
val jsonPoint = "{ \"type\": \"Point\", \"coordinates\": [100.0, 0.0] }"
val jsonLineString = "{ \"type\": \"LineString\",\n \"coordinates\": [ [100.0, 0.0], [101.0, 1.0] ]\n }"
val jsonPolygon = "{ \"type\": \"Polygon\",\n \"coordinates\": [\n [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ]\n ]\n }"
val jsonPolygonWithHoles = "{ \"type\": \"Polygon\",\n \"coordinates\": [\n [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ],\n [ [100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2] ]\n ]\n }"
val jsonGC = "{ \"type\": \"GeometryCollection\",\n \"geometries\": [\n { \"type\": \"Point\",\n \"coordinates\": [100.0, 0.0]\n },\n { \"type\": \"LineString\",\n \"coordinates\": [ [101.0, 0.0], [102.0, 1.0] ]\n }\n ]\n }"
pathikrit /
Last active Apr 24, 2021
My highly opinionated list of things needed to build an app in Scala
anonymous / GAME_MASTER_v0_1.protobuf
Created Jul 16, 2016
Pokemon Go decoded GAME_MASTER protobuf file v0.1
View GAME_MASTER_v0_1.protobuf
Result: 1
Items {
Badge {
BadgeRanks: 4
Targets: "\nd\350\007"
Items {
samdvr / Uncle Bob Scribe's Oath
Last active Aug 25, 2018
Uncle Bob Scribe's Oath
View Uncle Bob Scribe's Oath
Uncle Bob's Scribe's Oath
1. I will not produce harmful code
2. I will not produce code that's not my best
3. I will provide with each release a quick testable repeatable proof that code works
4. I will not avoid release that will impede progress(short term rapid releases)
5. I will fearlessly and relentlessly improve the quality of code. I will
never make the code worse
6. I will keep productivity high I will not do anything that decreases
7. I will continuously ensure others can cover for me and I can cover for them
tenderlove / h2_puma.rb
Last active Apr 27, 2022
Demo HTTP/2 server with Puma
View h2_puma.rb
require 'socket'
require 'openssl'
require 'puma/server'
require 'ds9'
class Server < DS9::Server
def initialize socket, app
@app = app
@read_streams = {}
@write_streams = {}
chsh / pg_pub_sub.rb
Last active Apr 28, 2022
PostgreSQL LISTEN/NOTIFY example for ruby
View pg_pub_sub.rb
# A:
# pubsub ='channelname')
# pubsub.subscribe do |data|
# puts "data: #{data} is coming!"
# end
# B:
# pubsub ='channelname')
# pubsub.publish("hello world")
sivel /
Last active Apr 26, 2022
Better SSH Authorized Keys Management

Better SSH Authorized Keys Management

A seemingly common problem that people encounter is how to handle all of your users authorized_keys file.

People struggle over management, ensuring that users only have specific keys in the authorized_keys file or even a method for expiring keys. A centralized key management system could help provide all of this functionality with a little scripting.

One piece of functionality overlooked in OpenSSH is the AuthorizedKeysCommand configuration keyword. This configuration allows you to specify a command that will run during login to retrieve a users public key file from a remote source and perform validation just as if the authorized_keys file was local.

Here is an example directory structure for a set of users with SSH public keys that can be shared out via a web server: