VimのSingularityシンタックスハイライトプラグインを作った。
最近SingularityというDockerの親戚みたいなのをいじっている。 runするときにsudoいらなくて便利。
このSingularity、コンテナイメージを作成するためのDockerfileみたいなSingularityってファイルがある。 個人的にはDockerfileより好きな文法。
なんだけど、SingularityファイルをVimで編集してて、シンタックスハイライトがないのが気になる。 そこでシンタックスハイライトするプラグインを作ってみました。
Vimのプラグインを作ったのは初めて。 普段Neovimを使っているんだけど、Pythonとかでもプラグイン書けるらしいし、また何かあれば作ってみたい。
大学のバスの時刻表を取ってくるgolangパッケージを作った。
大学から帰る時に、いつも次のバスが何時か探すの面倒なので、 次のバスの時間を教えてくれるslackbotがあるといいなと思っている。
そのbotを作成するための前段階として、大学のホームページからバスの時刻表を取ってくるgoのパッケージを作りました。
ほんとは大学のホームページにAPI用意してくれてると楽なんだけど。。そんなもの存在するはずもなく。 html取ってきてスクレイピングしました。
通常の月曜から金曜の時刻表と、土曜日、休業中の時刻表がフォーマット違くて面倒だった。。 スクレイピングには、 https://github.com/PuerkitoBio/goquery
を使いました。まだあんまり使いこなせてないけど、便利。
久しぶりにコード書いたけど、やっぱり楽しいなあ。 今回ゴリ押しで書いてしまったので、もっときれいに書けるようになりたい。
juliaのPyCallを使おうとして手こずった話
homebrewでjuliaを入れるのは非推奨。
使っているパソコンはMacBook Air。
なので、はじめはhomebrewでインストールした。
Pkg.add("PyCall")
でインストールするまではうまくいったが、
いざスクリプトを書いて実行しようとすると
using PyCall
のところでエラーになる。
どうもhomebrewでインストールしたjuliaだとこのエラーが発生するらしい。 公式のバイナリを落としてくることにした。
公式juliaの設定
公式のダウンロードページ からjuliaをダウンロードし、インストールした。
最初、/Applications/Julia-0.4.6.app/Contents/MacOS/Julia
を起動したらなぜかターミナルが起動して別ウィンドウが開いた。
iTermで普通にjuliaを使いたいので、調べたら/Applications/Julia-0.4.6.app/Contents/Resources/julia/bin/julia
が普通にiTermで使えるやつらしい。
このままではコマンドとして使えないので、シンボリックリンクを貼る。
$ ln -s /Applications/Julia-0.4.6.app/Contents/Resources/julia/bin/julia /usr/local/bin/julia
これでjuliaが使えるようになった。
PyCallの設定
私はpyenvでpython2と3両方使える環境にしているのだが、普通にPyCallをインストールするとpython2のライブラリを見に行ってしまう。 python3を見に行ってほしいので、以下のようにインストールした。
ENV["PYTHON"] = "/Users/username/.pyenv/versions/3.5.2/bin/python3" Pkg.add("PyCall")
これでPyCallが使えるようになった。using PyCall
してもエラーが出ない! 素晴らしい。
自宅サーバにSSH接続しようとしてハマった。
つい最近、自作PCをしまして、centos7を入れた。 で、ポート変更やfirewalledの設定などして、SSH接続しようとしたら... 内部からは接続できた。でも、外部から接続しようとすると...
接続できない!
その後、いろいろ調べてどうにかなったのでメモ。
そもそもプライベートIPアドレスを指定していた
外部に露出してるのはWAN側のグローバルIPだけ。内部のIPを 指定してたらそりゃ繋がらない。
ポートマッピング
グローバルIPはルータ側に1つ割り当てられているらしいので、ルータの設定画面(私のルータではhttp://192.168.0.1で接続)で特定のポートに対する接続要求が来たら、内部の特定のプライベートIP宛に流すポートマッピングをした。
しかし接続できない...
色々調べたところ、内部からだとグローバルIPを指定した接続ができないみたい。ポートマッピングが外部からの接続に対してしか働かないっぽい。
最終的に
内部からの接続にはプライベートIP、外部からの接続にはグローバルIPで接続することで解決。
biblatex+biber+latexmkで参考文献の埋め込み
参考文献の埋め込みがうまくいったのでメモ。
設定方法
1 .latexmkrcに以下のコマンドを追加。(latexmkの設定については省略。)
$bibtex = 'pbibtex';
$biber = 'biber --bblencoding=utf8 -u -U --output_safechars';
2 参考文献を書いたファイル(hoge.bib)を作る
内容はこんな感じ。
@book{yamada,
author ={山田太郎},
title = {「ももたろう」},
publisher={昔話新書},
year= {1821},
}
3 プリアンブルに以下のように書く。(ここから.texファイル)
\usepackage[backend = biber,bibstyle =ieee,]{biblatex}
\addbibresource{hoge.bib}
4 文献を参照するときは、以下のように書く。
ももたろうは桃から生まれたとされている\cite{yamada}。
5 参考文献を出力する場所で以下のように書く。
\printbibliography[title=参考文献]
ももたろうは、ももから生まれた。\cite{yamada}
以上。これでlatexmkすれば完成するはず。