https://medium.com/@walkert/fun-building-shared-libraries-in-go-639500a6a669
https://www.darkcoding.net/software/building-shared-libraries-in-go-part-2/
| FROM azul/zulu-openjdk:17 AS builder | |
| RUN apt-get update \ | |
| && apt-get install -y --no-install-recommends git libprotobuf-dev \ | |
| && git clone -b development --depth 1 https://github.com/Grasscutters/Grasscutter /work | |
| WORKDIR /work | |
| RUN export GRADLE_OPTS="-Dfile.encoding=utf-8" \ | |
| && git submodule update --init \ | 
| #!/bin/bash | |
| # | |
| # Install Oracle JDK 8 for use with SDKMAN | |
| # | |
| set -eu | |
| # This URL can be discovered using https://sites.google.com/view/java-se-download-url-converter | |
| DOWNLOAD_URL="https://javadl.oracle.com/webapps/download/GetFile/1.8.0_331-b09/165374ff4ea84ef0bbd821706e29b123/linux-i586/jdk-8u331-linux-x64.tar.gz" | |
| TARBALL="jdk-8u331-linux-x64.tar.gz" | 
| 1. Put app.ico in directory. | |
| 2. Create app.rc in same directory with one line: | |
| IDI_ICON1 ICON DISCARDABLE "app.ico" | |
| 3. Run command (Warning: it's app.o, not app.res, how it is mentioned in other manuals!) | |
| windres app.rc -o app.o | |
| 4. add_executable(app | |
| ... | 
| using System; | |
| using System.Runtime.InteropServices; | |
| using System.Windows.Interop; | |
| namespace HostingAppTest | |
| { | |
| // based on https://stackoverflow.com/q/30186930/426315 | |
| public class HwndHostEx : HwndHost | |
| { | |
| private readonly IntPtr _childHandle; | 
| # cat > /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/gradle4.rb | |
| # brew install --build-from-source gradle4 | |
| class Gradle4 < Formula | |
| desc "Open-source build automation tool based on the Groovy and Kotlin DSL" | |
| homepage "https://www.gradle.org/" | |
| url "https://services.gradle.org/distributions/gradle-4.10.3-all.zip" | |
| sha256 "336b6898b491f6334502d8074a6b8c2d73ed83b92123106bd4bf837f04111043" | |
| # not needed in newer gradle releases | |
| # bottle :unneeded | 
| # 1. put frpc and frpc.ini under /usr/local/frpc/ | |
| # 2. put this file (frpc.service) at /etc/systemd/system | |
| # 3. run `sudo systemctl daemon-reload && sudo systemctl enable frpc && sudo systemctl start frpc` | |
| # Then we can manage frpc with `sudo service frpc {start|stop|restart|status}` | |
| # See also: https://nosame.net/use-frp-to-reverse-proxy-your-nas/ | |
| # Alternative for server: | |
| # - Offical: https://github.com/fatedier/frp/blob/a4cfab6/conf/systemd/frpc%40.service | |
| [Unit] | 
| package dk.im2b | |
| import java.io.OutputStream | |
| import java.net.ServerSocket | |
| import java.net.Socket | |
| import java.nio.charset.Charset | |
| import java.util.* | |
| import kotlin.concurrent.thread | |
| #include <FS.h> | |
| #include <ESP8266WiFi.h> | |
| #include <WiFiClientSecure.h> | |
| #include <PubSubClient.h> | |
| #include <time.h> | |
| // Insert your FQDN of your MQTT Broker | |
| #define MQTT_SERVER "mqtt.srvx1.local" | |
| const char* mqtt_server = MQTT_SERVER; |