Skip to content

Instantly share code, notes, and snippets.

@koduki
koduki / parse_vci.rb
Last active February 12, 2021 10:28
バーチャルキャストのVCIをRubyで解析
# Read glTF
io = open('suika_vci.vci', "rb")
## Header
glb_h_magic = io.read(4)
glb_h_version = io.read(4).unpack("L*")[0]
glb_h_length = io.read(4).unpack("L*")[0]
### Chunk 0 (JSON)
@Path("/index.html")
@GET
@Produces(MediaType.TEXT_HTML)
public String goIndex() throws IOException, TemplateException, URISyntaxException {
return view("index.ftl", Map.of(
"hello", "Hello",
"world", "World"
));
}
FROM debian
RUN apt-get update && \
apt-get install -y --no-install-recommends && \
unoconv \
imagemagick \
xpdf && \
apt-get -y --purge autoremove && \
rm -rf /var/lib/apt/lists/*
String traceparent = headers.getRequestHeaders().getFirst("traceparent");
TraceId traceId = TraceId.fromLowerBase16(traceparent, TRACE_ID_OFFSET);
SpanId spanId = SpanId.fromLowerBase16(traceparent, SPAN_ID_OFFSET);
TraceOptions traceOptions = TraceOptions.fromLowerBase16(traceparent, TRACE_OPTION_OFFSET);
try (Scope ss = tracer
.spanBuilderWithRemoteParent("Span Name", SpanContext.create(traceId, spanId, traceOptions))
.setRecordEvents(true)
.setSampler(Samplers.alwaysSample())
.startScopedSpan()) {
@koduki
koduki / cloud-sdk_install.sh
Created April 18, 2020 10:18
GCPのCloud SDKをCOSとかにコンテナで入れるようのコマンド
docker pull gcr.io/google.com/cloudsdktool/cloud-sdk:latest
docker run gcr.io/google.com/cloudsdktool/cloud-sdk:latest gcloud version
docker run -ti --name gcloud-config gcr.io/google.com/cloudsdktool/cloud-sdk gcloud auth login
echo "alias gcloud='docker run -it --rm --volumes-from gcloud-config -v `pwd`:/work --workdir /work gcr.io/google.com/cloudsdktool/cloud-sdk:latest gcloud'" >> ~/.bashrc
apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
name: che-tls
namespace: che
spec:
secretName: che-tls
dnsNames:
- '*.che.hnakada128.com'
issuerRef:
@koduki
koduki / JsonParse.java
Last active March 11, 2020 09:02
JSON文字列をList+HashMapに変換するコード。他言語に比べてちょっと冗長なのでメモ。
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.core.type.TypeReference;
var json = "[{\"name\":\"nanoha\", \"age\":10}, {\"name\":\"fate\", \"age\":10}]";
var mapper = new ObjectMapper();
var data = Arrays.asList(mapper.readValue(json, HashMap[].class));
System.out.println(data);
@koduki
koduki / gcp_memo.md
Last active December 22, 2019 01:06

GCEでデフォルトのサービスアカウント名を取得する

$ curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/email" -H "Metadata-Flavor: Google"
gsu-xxx@xxxxx.iam.gserviceaccount.com

berglasによる暗号化

TLS_KEY=berglas://${BUCKET_ID}/tls-key?destination=tempfile berglas exec irb

@koduki
koduki / load_bq.sh
Last active December 9, 2019 06:49
This script to import from GCS to BigQuery
#!/bin/bash
JFR_NAME=$1
JFR_JSON_PATH="gs://jfr-storage_json/$(echo ${JFR_NAME}|sed 's/.jfr$//g')"
bq load --autodetect --source_format=NEWLINE_DELIMITED_JSON jfr_logs.jdk_CPULoad ${JFR_JSON_PATH}/CPULoad.json
bq load --autodetect --source_format=NEWLINE_DELIMITED_JSON jfr_logs.jdk_ExecutionSample ${JFR_JSON_PATH}/ExecutionSample.json
bq load --autodetect --source_format=NEWLINE_DELIMITED_JSON jfr_logs.jdk_GCHeapSummary ${JFR_JSON_PATH}/GCHeapSummary.json
bq load --autodetect --source_format=NEWLINE_DELIMITED_JSON jfr_logs.jdk_GCPhaseParallel ${JFR_JSON_PATH}/GCPhaseParallel.json
bq load --autodetect --source_format=NEWLINE_DELIMITED_JSON jfr_logs.HttpRequestEvent ${JFR_JSON_PATH}/HttpRequestEvent.json
REPO=/var/log/myapp/jfr_logs
WORKDIR=/tmp
CURRENT_REPO="$REPO/"$(ls -1 $REPO|sort|head -1)
ls -l $CURRENT_REPO|awk '/jfr/{print $9, $5}'|sort > $WORKDIR/jfr.list
diff ${WORKDIR}/jfr.list ${WORKDIR}/jfr.list.prev |grep jfr|awk '$NF > 0{print $2}' > ${WORKDIR}/jfr.diff
mv $WORKDIR/jfr.list $WORKDIR/jfr.list.prev
cat ${WORKDIR}/jfr.diff|xargs -n1 -P1 -I{} gsutil cp "${CURRENT_REPO}/"{} gs://jfr-storage/