Ubuntu 16.04でSATySFi環境構築&コンパイル

2017/02/12時点の情報です. まだSATySFiは絶賛開発途中であり,特に今インストール周りが改善中のようですので,うまくいかない場合はgithubのページを追ってください.

↓ココらへんを参考にした.

qiita.com

github.com

SATySFi

型づけがしっかりしていて,エラーメッセージのわかりやすい組版システム(を目指しているらしい). texのように文章の構造や装飾をマークアップして記述する. 未踏に採択されて先日成果発表会が行われた.

github.com

依存関係をインストール

$ sudo apt-get update
$ sudo apt-get install opam autoconf

opam構築

.profileを読んでくれないので,.bashrcに直接書き込んだ

$ cd
$ opam init
$ echo "¥n. /home/satysfi/.opam/opam-init/init.sh > /dev/null 2> /dev/null || true" >> $HOME/.bashrc
$ opam switch 4.05.0
$ eval `opam config env`

SATySFi構築

$ cd
$ git clone https://github.com/gfngfn/SATySFi.git
$ cd $HOME/SATySFi
$ git submodule update -i
$ opam pin add satysfi .
$ opam install satysfi
$ satysfi --help
  -o  Specify output file
  --output  Specify output file
  -v  Print version
  --version  Print version
  --full-path  Display paths in full-path style
  -help  Display this list of options
  --help  Display this list of options

demo/demo.satyをコンパイル

フォントや画像が足りないので用意する

$ cd $HOME/SATySFi/demo

ArnoPro-Regular.otfを用意

$ wget https://www.wfonts.com/download/data/2014/12/28/arno-pro/ArnoPro-Regular.otf -P $HOME/.satysfi/dist/fonts/
$ wget https://ipafont.ipa.go.jp/old/ipaexfont/ipaexm00201.php -P /tmp
$ unzip -d /tmp /tmp/ipaexm00201.php
$ cp /tmp/ipaexm00201/ipaexm.ttf $HOME/.satysfi/dist/fonts/

Osaka.ttf

ttc→ttfに変換するために,unitettcをインストールする

UniteTTC

$ wget http://yozvox.web.fc2.com/unitettc.zip -P /tmp
$ unzip -d /tmp /tmp/unitettc.zip
$ chmod +x /tmp/unitettc/unitettc64
$ wget http://osaka.is.land.to/files/Osaka.zip -P /tmp
$ unzip -d /tmp /tmp/Osaka.zip
$ /tmp/unitettc/unitettc64 /tmp/Osaka.ttc
$ cp /tmp/Osaka001.ttf $HOME/.satysfi/dist/fonts/Osaka.ttf

satysfi-logo.png

png→jpgに変換するために,imagemagickをインストールする

$ sudo apt-get install imagemagick
$ wget https://raw.githubusercontent.com/wiki/gfngfn/SATySFi/img/satysfi-logo.png -P /tmp
$ convert /tmp/satysfi-logo.png satysfi-logo.jpg

コンパイル

$ make

make satysfi/demo/

$ file demo.pdf
demo.pdf: PDF document, version 1.7

C:¥windows¥installerの容量が大きすぎる

Cドライブの容量がいっぱいになっていた.

ちなみに実家パソコン

f:id:miettal:20180211174842p:plain

WinDirStatで見たらC:¥windows¥installerが20GB以上食っていた.

Windows Updateインストーラが入ってるらしい

windirstat.net

f:id:miettal:20180211174928p:plain

PatchCleanerでWindows Updateインストーラを削除した.

PatchCleanerを使うと,いらないインストーラだけ削除してくれる

www.homedev.com.au

f:id:miettal:20180211175042p:plain f:id:miettal:20180211175049p:plain

直った.

よかった

f:id:miettal:20180211175301p:plain

httpstatを使ってみた

インストール

ubuntu

$ sudo apt install python-pip
$ sudo pip install httpstat

mac

$ brew install httpstat

使い方

httpstat http://example.com

httpstat --help

所管

httpリクエストを見やすく整形して出力してくれるツール. 内部でcurlを使っているようで,curlのオプションがそのまま使える. タイミング系はいつもgoogle chromeのdevelopper toolsで見たけどこれでいいなと思った.

cicleciでWarning: Git is not installed in the image. Falling back to CircleCI's native git client but this is still an experiment feature. We highly recommend using an image that has official Git installed. worktree is not clean

circleci 2.0でcheckoutするとタイトルみたいなエラーが出るんだよね。使ってるdocker imageにgitが入っていないので、gitを入れましょ。

apt-get install -y git

買い切り型VPS CloudAtCostを使ってみた感想

要約

クソ安いけど、障害起きまくりなので、冗長化や自動化の勉強になる。

CloudAtCostって何

Cloud At Cost - You don't have to pay sky high prices to be in the Cloud.

カナダの企業のクラウドサービスで、VPSとかWebHostingなどの機能を提供している。 特徴は、"買い切り型"で、多くのVPSサービスでは普通使用量が月額課金であるのに対して、なんとここでは契約時に1回払えばそれ以降は払わなくていいのである。 一瞬耳を疑うような話であり、ビジネスモデルはどうなっているんだとという気もするが、とりあえずクレイジーでカオスなサービスなので是非契約しよう。 詳しいことは下記のページを読もう。

nemumu.hateblo.jp

メリット

  • 安い。 → 1CPU/512MB MEM/10GB SSDが$17.5(2017/03現在定価$35の50%OFF)
  • VMの性能毎にプランが用意されているように見えるが、基本的にはリソースを買って、あとからコントロールパネルでVM必要なリソースを割り当てる形式になっている
  • 2chtwitterで阿鼻叫喚している人を観察できる
  • ドジっ子ちゃんぽさがあって可愛い/微笑ましい

デメリット

  • CPUの性能は良くない
  • DISK IOの性能は良くない
  • webコンソールが平文
  • 特にセール中・後(80%OFFなど)下記の状況が頻発する
  • セール中・後でなくてもそれなりに下記の状況が頻発する
  • VMが作れない
    • IPアドレスが無いと言われる→別のデータセンターを選択するとうまくいく場合も/IPアドレスが空くまで根気よく待ちましょう
    • VMの作成に失敗したと言われる → 根気よく作り直しましょう
    • ぱっと見VMの作成に成功したようだがログインできない → 根気よく作り直しましょう
    • 出来た直後はログインできたのに、時間が立つとログインできなくなる → 根気よく作り直しましょう
  • ログインできなくなる/IP到達性がなくなる → 根気よく待ちましょう/根気よくrestart掛けましょう/webコンソールからアクセスしてみましょう
  • webコンソールからアクセスできなくなる → 根気よく待ちましょう/根気よくrestart掛けましょう
  • diskがreadonlyになる → 根気よくrestart掛けましょう
  • 他のVMとIPが被ってる疑惑
  • 他のユーザと同じVMが割り当てられてる疑惑
  • APIがあるが、一部のAPIにおいて仕様どおりでない明らかに内部のエラーが返ってくる

tips

基本的に上記の対策。

  • VMの作成に成功したら、すぐログインして、OSアップデート・各種設定をする
  • diskがreadonlyになるのは、IOがタイムアウトになるのが原因らしいので、タイムアウトを伸ばす下記のコマンドを/etc/rc.localあたりに仕込む(2chより)
    • echo 600 > /sys/block/sda/device/timeout
    • echo 600 > /sys/block/sr0/device/timeout
  • diskがreadonlyになってしまったらもうどうしようもないので、下記のような自動で再起動するcronを仕込む
    • 0 * * * * touch /tmp/write_test || /sbin/reboot
  • IP unreachableになってしまったら再起動する下記のようなcronを仕込む
    • 0 * * * * ping -W 1 -c 1 8.8.8.8 || /sbin/reboot

cpuinfo

gistfcb1156c10c24e9211e4940354bc4e95