Skip to content

Instantly share code, notes, and snippets.

@hohonuuli
hohonuuli / loom.sc
Created October 19, 2022 04:12
Scala/Loom example for a medium article
#!/usr/bin/env -S scala-cli shebang --scala-version 3.2.0 -J --enable-preview -J --add-modules=jdk.incubator.concurrent
import scala.util.Using
import java.util.concurrent.ScheduledThreadPoolExecutor
import jdk.incubator.concurrent.StructuredTaskScope
Thread.startVirtualThread(() => println("Hello from virtual thread"))
println("Hello from main thread")
@hohonuuli
hohonuuli / Loom.java
Created October 19, 2022 04:06
Loom example for medium article
import jdk.incubator.concurrent.StructuredTaskScope;
// java --enable-preview --source 19 --add-modules jdk.incubator.concurrent Loom.java
public class Loom {
public static void main(String[] args) {
run();
}
public static void run() {
@hohonuuli
hohonuuli / voc_to_csv.sc
Created October 19, 2022 03:58
Scala script to convert Pascal VOC to CSV. For a medium article
#!/usr/bin/env -S scala-cli shebang --scala-version 3.2.0
//> using lib "org.scala-lang.modules::scala-xml:2.1.0"
import scala.xml.Elem
import java.io.File
import scala.xml.XML
import java.nio.file.Paths
import scala.util.Using
import java.nio.file.Files
<template>
<div class="map-box" id="maptest"></div>
</template>
<script>
import Vue from 'vue'
// If you need to reference 'L', such as in 'L.icon', then be sure to
// explicitly import 'leaflet' into your component
import L from 'leaflet'
@hohonuuli
hohonuuli / ifdo-to-fathomnet.sc
Last active May 26, 2022 01:26
Proof-of-concept to convert https://marine-imaging.com/fair/ifdos/iFDO-overview/ to FathomNet-friendly CSV
#!/usr/bin/env -S scala-cli shebang --scala-version 3.1.2
/*
Proof of concept to convert iFDO YAML to FathomNet CSV
Requirements:
- Install scala-cli https://scala-cli.virtuslab.org
Usage:
ifdo-to-fathomnet.sc <ifdo-yaml-file> > <fathomnet-csv-file>
@hohonuuli
hohonuuli / Logging.scala
Created May 2, 2022 16:33
Gist for Medium article
import java.lang.System.Logger
import java.lang.System.Logger.Level
import java.util.function.Supplier
/**
* * @author Brian Schlining
*/
object Logging:
case class LoggerBuilder(
@hohonuuli
hohonuuli / build_m1.sh
Last active March 16, 2022 19:35
Example build script for docker containers on M1/Arm
#!/usr/bin/env bash
echo "--- Building vars-kb-server (reminder: run docker login first!!)"
VCS_REF=`git tag | sort -V | tail -1`
docker buildx build --platform linux/amd64,linux/arm64 \
-t mbari/vars-kb-server:${VCS_REF} \
-t mbari/vars-kb-server:latest \
--push . \
@hohonuuli
hohonuuli / Logging.scala
Last active February 3, 2022 20:30
Simple pass through logger
import java.lang.System.Logger
import java.lang.System.Logger.Level
object Logging:
private def logAndReturn[T](obj: T, logger: Logger, level: Level, fn: T => String): T =
if logger.isLoggable(level) then
logger.log(level, fn(obj))
obj
@hohonuuli
hohonuuli / Transformer.scala
Last active November 2, 2021 20:30
Method to convert case classes to CSV
import java.net.URL
import scala.deriving.*
import scala.compiletime.{summonAll}
import java.nio.file.Path
/**
* Base function we use to convert case classes to CSV
* @param a The object to convert
*/
def transform[A : Transformer](a: A) = summon[Transformer[A]].f(a)
@hohonuuli
hohonuuli / fetch_async.scala
Last active October 25, 2021 19:39
Scala version of python download code in Medium article
#!/usr/bin/env scala
/*
@author Brian Schlining
@since 2021-10-25
Scala version of example code at
https://python.plainenglish.io/send-http-requests-as-fast-as-possible-in-python-304134d46604
*/