2017年03月

特集:Visual Studio 2017の全貌を探る:「Any Developer, Any App, Any Platform」 ―― Visual Studio 2017が目指す世界とは? (1/5) - @IT
このエントリーをはてなブックマークに追加 Clip to Evernote
ブログランキング・にほんブログ村へ
にほんブログ村

次世代jpegエンコーダのGoogle製「guetzli」とMozilla製「mozjpeg」を比較してみる - Qiita

guetzliは、まじ遅いからな〜

このエントリーをはてなブックマークに追加 Clip to Evernote
ブログランキング・にほんブログ村へ
にほんブログ村

マークダウンを使ってテキストを書くとき必要そうなもので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/)

画像

リンクと同じように書いて、前に"!"を付ける。

![画像](hoge.jpg)
このエントリーをはてなブックマークに追加 Clip to Evernote
ブログランキング・にほんブログ村へ
にほんブログ村

そー、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オプションなしで出力してそれをコピペすればいいな。

このエントリーをはてなブックマークに追加 Clip to Evernote
ブログランキング・にほんブログ村へ
にほんブログ村

前作ったプログラムで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);
                }
            }
        }

まー、こんな感じだ(^^;)

注意点は、コード中のコメントにも書いたが、起動したプロセスの標準出力、標準エラー出力は必要なくても読んどかないといけないことだ。ブロックしてしまうからだ。


このエントリーをはてなブックマークに追加 Clip to Evernote
ブログランキング・にほんブログ村へ
にほんブログ村

↑このページのトップヘ