Skip to content

Instantly share code, notes, and snippets.

@hohonuuli
hohonuuli / FirebaseController.java
Last active September 19, 2020 00:00
Code for a Medium article
package firebase.jwt;
import javax.inject.Inject;
import com.google.firebase.auth.FirebaseAuthException;
import io.micronaut.http.HttpRequest;
import io.micronaut.http.annotation.*;
import io.micronaut.security.annotation.Secured;
import io.micronaut.security.authentication.UserDetails;
import io.micronaut.security.rules.SecurityRule;
@hohonuuli
hohonuuli / CirceDemo.json
Created January 17, 2021 20:19
Content for medium article on Circe
[
{
"uuid": "037fa69d-cc52-4d9c-90e1-68d12c455fbd",
"name": "My Name",
"blobs" : [
{
"uuid": "77bcfc71-1c2a-4872-b11d-501d65afd01a",
"url": "https://www.foo.bar/path/to/blob1",
"checksum": "MTIzNDU2Nzg5"
},
@hohonuuli
hohonuuli / CirceDemo.sc
Created January 17, 2021 21:35
Example for medium article on Circe
#!/usr/bin/env amm
import $ivy.`io.circe::circe-core:0.13.0`
import $ivy.`io.circe::circe-generic:0.13.0`
import $ivy.`io.circe::circe-parser:0.13.0`
import io.circe._
import io.circe.generic.semiauto._
import io.circe.parser._
import io.circe.syntax._
@hohonuuli
hohonuuli / pascal_vox_sample.xml
Last active March 16, 2021 00:00
Example Pascal VOC file
<annotation>
<filename>left_2019-11-04T16.59.22.762426Z.jpg</filename>
<object>
<name>Outer filter</name>
<bndbox>
<xmin>738</xmin>
<ymin>39</ymin>
<xmax>831</xmax>
<ymax>130</ymax>
</bndbox>
@hohonuuli
hohonuuli / VOC.scala
Last active March 15, 2021 23:51
Pascal VOC modeled in Scala. For medium article
case class Voc(
filename: String,
objects: Seq[VocObject] = Nil
)
case class VocObject(
name: String,
xmin: Int,
ymin: Int,
xmax: Int,
@hohonuuli
hohonuuli / VocParser.scala
Last active March 15, 2021 23:57
Scala VOC parser. For Medium article
import scala.xml.Elem
object VocParser {
def parse(xml: Elem): Voc = {
val filename = (xml \ "filename").text
val objects = xml \ "object"
val vocObjects = objects.map(n => {
val name = (n \ "name").text
// VOC is 1-based index. Convert to 0 based.
concept,image,x,y,width,height
Nanomia bijuga,http://dsg.mbari.org/path/image.png,10,20,30,40
Rock,http://dsg.mbari.org/path/image.png,21,22,23,24
@hohonuuli
hohonuuli / GraphQL.scala
Last active June 18, 2021 18:25
GraphQL support class for Scala
import io.circe._
import io.circe.parser._
import okhttp3._
import scala.concurrent.{ExecutionContext, Future}
import scala.util.Using
/**
* @author Brian Schlining
*/
object GraphQL {
@hohonuuli
hohonuuli / TrackService.scala
Last active June 18, 2021 18:25
Example using GraphQL.scala
package org.mbari.vaa.tv.graphql
import io.circe._
import io.circe.parser._
import okhttp3._
import org.mbari.vaa.tv.domain.CirceCodecs.{given}
import org.mbari.vaa.tv.domain.Track
import java.util.UUID
import scala.concurrent.{ExecutionContext, Future}
@hohonuuli
hohonuuli / scala3_microservice_wrk1_results.csv
Last active September 26, 2021 00:05
Statistics for Medium Article on Scala 3 microservice benchmarks - wrk1
Framework latency_ms latency_ms_std requests_sec mb_sec pct_max
Cask 22.15 4.72 11221.20 94.55 92.6
Helidon 21.25 3.39 11698.15 98.23 96.2
http4s 24.75 26.02 10460.28 87.82 86.1
Javalin 29.01 28.36 8765.20 72.52 71.1
Scalatra 21.97 2.25 11274.22 94.54 92.5
Spark Java 22.82 23.59 11273.21 95.29 93.4
Vert.x Web 36.75 3.50 6765.11 56.49 55.3
ZIO Http 20.42 1.59 12162.62 102.06 100