2017年03月
次世代jpegエンコーダのGoogle製「guetzli」とMozilla製「mozjpeg」を比較してみる - Qiita(リンクのみ)
guetzliは、まじ遅いからな〜
Markdownメモ
マークダウンを使ってテキストを書くとき必要そうなものでVisual Studio Codeのプレビューでちゃんと表示されるものをメモっとく。
段落
htmlに変換すると<p>に変換されるやつ。空行があるとそこで段落わけされる。
改行
行末にスペース2つで改行になる。文章中に改行入れてもhtmlと同じでむしられるので、強制的に改行したい場合は2つスペース入れて改行しておく。
強調
"¥*"や"_"で囲む。
*強調*
htmlに変換すると<em>になる。
**強調**
htmlに変換すると<strong>になる。
取り消し線
"~~"で囲む
~~取り消し線~~
取り消し線
見出し
htmlに変換すると<h1>や<h2>なんかに変換されるやつ。
# 見出し1
## 見出し2
### 見出し3
#### 見出し4
あと、見出し1、2はこんな感じでも書ける。
見出し1
======
見出し2
------
引用
メールの引用みたいなやつ。
> 引用だ。
VSCのプレビューだと">>
"で引用の引用の表示が出来るけどpandocで変換するとちゃんと変換できない。(オプションによってはできるのかも?)
pandocでもちゃんと変換するには"> >
"のように間にスペースを入れる。
コードブロック
プログラムを書いたりするのに使う。
"~"や"`"を3つ以上並べた行で挟むとそこがコードブロックになる。
```
#include <stdio.h>
int main() {
printf("Hello world.");
}
```
他には、4つのスペースまたはタブで開始される行がコードブロックになる。
リスト
項目の頭に"*"や"+"や"-"を付ける。
* 項目1
* 項目2
* 項目3
水平線
"-"や"*"や"_"を3つ以上並べる。
表
こんな風に書く。寄せは表のヘッダ部分の下の行の":"の位置で決まる。
|左寄せ|右寄せ|中央寄せ|デフォルト|
|:----|----:|:-----:|--------|
|1 |1 |1 |1 |
|23 |23 |23 |23 |
|456 |456 |456 |456 |
左寄せ | 右寄せ | 中央寄せ | デフォルト |
---|---|---|---|
1 | 1 | 1 | 1 |
23 | 23 | 23 | 23 |
456 | 456 | 456 | 456 |
リンク
"[]"でテキストを囲って、そのあと"()"でURLを囲うとリンクになる。
[リンク](http://www.hemohemo.jp/)
画像
リンクと同じように書いて、前に"!"を付ける。

[macOS] Markdownをhtmlに変換してみる
そー、Markdown便利なんじゃねって、今さら気がついた(^^;)
ということで、pandocってのを使って変換してみる。
homebrewを使っているとbrew install pandoc
ってやるとインストールできる。
test.mdってMarkdownのファイルがあったら、次のようにするとhtmlファイルができる。
$ pandoc test.md -f markdown -t html -s -o test.html
-sのオプションは、ヘッダとフッタを追加するってなっている。htmlだと-sオプションを付けないで変換するとhtmlのbody部分のみが出力されて、-sを追加するとhtmlやheadやbodyタグなんかを追加したちゃんとしたhtmlファイルができる。
ブログでhtmlタグ編集に放り込むなら-sオプションなしで出力してそれをコピペすればいいな。
[Java] 外部プロセスの実行
前作ったプログラムでGoogleのguetzliを使おうと思ったら、外部プロセスの実行方法知らんぞ!ってなったんで調べてみた。(^^;)
BufferedReader br = null;
// 起動するコマンド、引数でProcessBuilderを作る。
ProcessBuilder pb = new ProcessBuilder("./aaa.sh", "arg0", "arg1");
// 実行するプロセスの標準エラー出力を標準出力に混ぜる。(標準エラー出力を標準入力から入力できるようになる)
pb.redirectErrorStream(true);
try {
// プロセス起動
Process process = pb.start();
// 起動したプロセスの標準出力を取得して表示する。
// 標準出力やエラー出力が必要なくても読んどかないとバッファがいっぱいになって
// プロセスが止まる(一時停止)してしまう場合がある。
InputStream is = process.getInputStream();
br = new BufferedReader(new InputStreamReader(is));
while(true) {
String line = br.readLine();
if(line == null) {
break;
}
System.out.println(line);
}
// プロセスの終了を待つ。
int ret = process.waitFor();
// 終了コードを表示
System.out.println("ret = " + ret);
} catch (IOException ex) {
Logger.getLogger(TestProcess.class.getName()).log(Level.SEVERE, null, ex);
} catch (InterruptedException ex) {
Logger.getLogger(TestProcess.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if(br != null) {
try {
br.close();
} catch (IOException ex) {
Logger.getLogger(TestProcess.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
まー、こんな感じだ(^^;)
注意点は、コード中のコメントにも書いたが、起動したプロセスの標準出力、標準エラー出力は必要なくても読んどかないといけないことだ。ブロックしてしまうからだ。