Skip to content

Instantly share code, notes, and snippets.

View seraphy's full-sized avatar

seraphy seraphy

View GitHub Profile
@seraphy
seraphy / CustomSerializeExample.java
Created June 25, 2019 09:10
データポイントのような大量データを効率よくJSONで扱う実装例。簡略化した文字列でJSON表現とする方法と、リストをバイナリにして単一のbase64文字列にする方法。
package jp.seraphyware.example.java8learn.json;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Base64;
import java.util.List;
@seraphy
seraphy / MapJsonExample.java
Last active June 25, 2019 02:49
JacksonでStringでない独自型のキーをもつMapをJSONにシリアライズ/デシリアライズする実装例
package jp.seraphyware.example.java8learn.json;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
@seraphy
seraphy / Pkcs12RsaEncryptExample.java
Created June 18, 2019 08:35
JavaのKeytoolを使ってRSA署名用のキーペアをPkcs12として作成し、公開キーをderファイルとしてエクスポートし、そのキーを使った暗号化と復号を行うための実装例。
package jp.seraphyware.example.java8learn.security;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.util.Base64;
@seraphy
seraphy / Pkcs12RsaSignatureExample.java
Last active June 18, 2019 08:05
JavaのKeytoolを使ってRSA署名用のキーペアをPkcs12として作成し、公開キーをderファイルとしてエクスポートし、そのキーを使った署名と検証を行うための実装例。
package jp.seraphyware.example.java8learn.security;
import java.io.InputStream;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.Signature;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.util.Base64;
@seraphy
seraphy / Pkcs12DsaSignatureExample.java
Created June 18, 2019 05:14
JavaのKeytoolを使ってDSA署名用のキーペアをPkcs12として作成し、公開キーをderファイルとしてエクスポートし、そのキーを使った署名と検証を行うための実装例。
package jp.seraphyware.example.java8learn.security;
import java.io.InputStream;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.Signature;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.util.Base64;
@seraphy
seraphy / ScalaTryWithResourceExampleTest .scala
Last active June 11, 2019 03:57
ScalaでTry-with-resourceの実装例。https://medium.com/@dkomanov/scala-try-with-resources-735baad0fd7d の実装例のテスト。類似の仕組みについては、 このあたりにまとまっている。http://www.ne.jp/asahi/hishidama/home/tech/scala/sample/using.html#h_loan_pattern
package jp.seraphyware.example
import java.io.IOException
import org.junit.Test
import jp.seraphyware.example.ScalaTryWithResourcesExample._
/**
* テストクラス
@seraphy
seraphy / determine_launch_from_explorer.bat
Created May 5, 2019 06:28
バッチファイルがExplorerかTerminalのどちらで起動されたか判定する方法
echo off
rem ====================================================================
rem バッチファイルがExplorerかTerminalのどちらで起動されたか判定する方法
rem ====================================================================
rem
rem %cmdcmdline%環境変数にはシェル起動時のコマンドラインが格納されている
rem explorerから起動した場合は、
rem C:\WINDOWS\system32\cmd.exe /c ""C:\Users\archa\Desktop\determine_launch_from_explorer.bat" "
rem のような内容となり、
rem ターミナルからバッチファイルを指定した場合は
@seraphy
seraphy / TitledPaneStackingExample.java
Last active April 22, 2019 01:55
JavaFXでTitledPaneを縦分割するSplitePaneをTitledPaneの開閉に伴って自動的に均等リサイズする実装例。
package jp.seraphyware.example.lava8learn.jfx;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.beans.InvalidationListener;
import javafx.beans.value.ChangeListener;
@seraphy
seraphy / CreateLogStream.java
Created April 18, 2019 00:15
標準出力に差し替え可能なプリントストリームを作成し、System.outをログに転送する実装例
public static void redirectLogs() {
// 標準出力・標準エラー出力のログへの転送
Logger stdoutLog = LoggerFactory.getLogger("console.out");
Logger stderrLog = LoggerFactory.getLogger("console.err");
System.setOut(createLogStream(stdoutLog::info));
System.setErr(createLogStream(stderrLog::info));
}
/**
* 標準出力に差し替え可能なプリントストリームを作成します.<br>
@seraphy
seraphy / JavaFXMenuBarDump.java
Created April 12, 2019 09:33
JavaFXのMenuBarのダンプ
private void dump(MenuBar menuBar) {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
pw.println("<MenuBar>");
pw.println(" <menus>");
for (Menu menu : menuBar.getMenus()) {
dump(menu, pw, " ");
}
pw.println(" </menus>");
pw.println("</MenuBar>");