卒論環境周り
無事提出!ありがとうございました。
論文
背景 & 環境
卒論はLatexが必須だった気がするのでLatexで書く。
ただ、学内のTemplateを使ってCompileしないといけなかったりして
しんどいのでMarkdownで自動生成&Deployする環境を作った。
使ったもの
- Fabric3(python)
- Pandoc
学内環境でCompileしないといけなかったのとたまたまFabricを別のやつで使っていたので使った。
code
# -*- coding: utf-8 -*- from fabric.api import * from fabric.colors import * from fabric.operations import * from config import passwd, user import os env.hosts = ["***.ac.jp"] env.port = 22 env.user = user env.password = passwd env.tmp_filename_prefix = "temporary" env.thesis_filename = "thesis.tex" env.template = "thesis_template.tex" @task def compile(): print(magenta("+++++++++++++++++++")) print(magenta("+ * * * +")) print(magenta("+ Start! +")) print(magenta("+ * * +")) print(magenta("+++++++++++++++++++")) print(yellow("++++++++++++++++++++++++++")) print(yellow("+ Remove previous files +")) print(yellow("++++++++++++++++++++++++++")) if os.path.exists(env.tmp_filename_prefix + ".tex"): os.remove(env.tmp_filename_prefix + ".tex") if os.path.exists(env.thesis_filename): os.remove(env.thesis_filename) print(blue("++++++++++++++++++++++++++++++")) print(blue("+ Convert markdown -> latex +")) print(blue("++++++++++++++++++++++++++++++")) local("pandoc thesis.md -o " + env.thesis_filename) print(magenta("+++++++++++++++++++")) print(magenta("+ Open template ! +")) print(magenta("+++++++++++++++++++")) template = open(env.template, "r").read() print(cyan("+++++++++++++++++++")) print(cyan("+ Open thesis !! +")) print(cyan("+++++++++++++++++++")) thesis = open(env.thesis_filename, "r").read() tex = open(env.tmp_filename_prefix + ".tex","w") print(blue("+++++++++++++++++++")) print(blue("+ Write thesis !! +")) print(blue("+++++++++++++++++++")) tex.write(template .replace("@THESIS", thesis .replace(r"\tightlist","") .replace(r"\begin{verbatim}", r"\begin{lstlisting}[basicstyle=\ttfamily\footnotesize, frame=single]") .replace(r"\end{verbatim}", r"\end{lstlisting}") .replace(r".png}", r".eps}") .replace(r"\includegraphics",r"\includegraphics[clip,keepaspectratio, width = 8.5cm]") .replace(r"\begin{figure}",r"\begin{figure}[h]") ) ) tex.close() run("rm ~/thesis/"+ env.tmp_filename_prefix + ".*", warn_only=True) run("rm ~/thesis/images/*", warn_only=True) put("images/*.png", "~/thesis/images/") put(env.tmp_filename_prefix + ".tex", "~/thesis/") with cd("~/thesis"): with cd("images"): run("convert pic1{.png,.eps}") run("convert arch{.png,.eps}") run("/usr/local/texlive/bin/latex "+ env.tmp_filename_prefix + ".tex") run("dvipdfmx "+ env.tmp_filename_prefix +".dvi") get(env.tmp_filename_prefix + ".pdf",".")
やってること
thesis.mdをPandocでTexにする
templateに埋め込む
一部の構文を置き換える
できたLatexFileを学内環境に送りCompile、手元に持ってくる
( git add & commit & push)
やってみて
大体うまく行った。
URL、Table、Code類はReplaceを組み合わせる事でうまくいく
東山奈央さんに大学院生活を応援された
応援された。
2月某日、ラゾーナ川崎プラザでの「虹のはじまり」に行ってきた。
True Destiny/Chain the world(初回限定盤)(DVD付)
- アーティスト: 東山奈央,ヒゲドライバー
- 出版社/メーカー: FlyingDog
- 発売日: 2017/02/01
- メディア: CD
- この商品を含むブログ (3件) を見る
Chain the world良い……、良いよ……
以下内容(敬称略)
東山奈央「ありがとうございます!」 一般人(僕)「応援しています!’」 一般人(僕)「東山奈央さんのお陰で大学院合格しました!」 東山奈央「えぇ〜すごい!!大学院頑張ってください!!」 一般人(僕)「ありがとうございます!応援しています、よろしくお願いします!」
職業病ではないが
“よろしくお願いします”
と言ってしまったが良かった。
論文発表も終わり、大学院やっていきが高まってる。がんばろう
dream_theater録画するやつ
ネットにいろいろ落ちてたがめんどくさかったのでこんな感じにした
準備
mizuki@AandGrecord:~$ sudo apt -y install rtmpdump ffmpeg
crontab
mizuki@AandGrecord:~$ crontab -l 29 21 * * 1 /usr/bin/rtmpdump -r rtmp://fms-base1.mitene.ad.jp/agqr/aandg22 --live -B 1870 -o "/home/mizuki/dream_theater/nao_$(date +'\%y\%m\%d_\%H_\%w').fly"
ハマったこと
- crontabは%が意味を持つのでエスケープしないといけない
- Timezoneをしっかり確認しないといけない
東大の院に行くのやめた
この記事はAizu Advent Calendar 2016
の21日目の記事となります。遅くなってしまい申し訳ないです。21日61時 なお14日の記事もあげますので
taroooyanさん <= ぼく => a_r_g_vさん taroooyan.hatenablog.com
です。よろしくお願いします
続きを読む英語を勉強したくなった
初めに
今ニューヨークに居る。内容については後でまとめる。 こっちに来て現状の英語学習の限界とモチベーションが上がったことについて書く。
現状の英語学習
DMM英会話
これで一日30分英語で会話している。
1ヶ月5000円ぐらいなのでふつうに良い、基本的にフリートークにして英語で会話を作ることに専念してる。
大体1ヶ月たったぐらい
NYに来て
DMM英会話のお陰で少しは聞き取る事ができると実感した(本当に)
英語は慣れというのは本当っぽい
気がついた点
体力、大事
酒を飲んでいたり作業をしてたりしていても体力があると聞き取れるが .
疲れてくると本当に聞き取れない、やばい
訂正機能が機能しなくなり何言ってるのか全くわからなくなる。しんどい
そもそもこっち来てデフォルトで英語を聞き取る事に体力を使っているので1日持たない。
技術的な話は割となんとかなる。「ここの設定教えて」とか「どういうアルゴリズム使っているの?」は元が英語なのでそのまま意思疎通ができる。良い
英語やりたくなった点
今回は自分達が作ったライブラリの紹介、宣伝として来ているのもあるが日本発のOSSということでみんな日本のことについてとても聞いてくるし、適当に話しかけると割と盛り上がる。日本に関してみんなある程度興味持ってる。
- 「日本て○○が○○なんでしょ!???」「そうだよ」「Oh!!!My!!Goooood!!!」
- 「日本は前2年間行った事があるわ」
- 「あの料理、○○がすき」
- 「アニメ、見てるよ」
等々結構盛り上がる。が、盛り上がり過ぎて聞き取れなくなる問題が発生する
せっかく日本について盛り上がってるのに意思疎通できないのホンマにしんどい
そういう意味では英語を学習しよう、と言うモチベが湧いてきた。
あと今回は上司と二人できているが理由はともあれ上司はめちゃくちゃ英語ができる。
上司が流暢に日本の事について話してるのをみるとやはり日本の事を英語で伝えられる程度の英語力は必要だと感じた
とりあえずDMM英会話の4倍の速度で会話できるようになりたい
カプチーノと言うライブラリを使いたかった
初めに
この記事はごちうさ Advent Calendar 20167日目の記事です。
www.adventar.org
遅れてしまって申し訳ないです .
(と思いつつ,今の時刻は2016/12/7 14:00(EST東部時間)なので許していただけると……、と言う気持ちです。)
モチベーション
このようなライブラリを見つけました。
GitHub - cappuccino/cappuccino: Web Application Framework in JavaScript and Objective-J
しかし JavaScriptもObjective-Jも触ったことがないのとより身近なライブラリを作って
出来る限りチノちゃんと一緒にコントリビュートしたということでカプチーノと言うライブラリを作りました。
今回はこれを紹介したいと思います
- 「この部分はチノちゃんに働いてもらう?」
- 「ココはチノちゃんが働いているから問題ないと思うよ」 等が聞こえるチームにしたいです。
作ったもの
C言語のSocket周りの練習がてら上の夢をかなえるために動きだしました。
環境
READMEにも書いてあるのですが基本的にc++14がビルドできる環境なら動きます。 シンプルにしたかったのでboostは使ってないです。
簡単な例
#include "../cappuccino.hpp" #include <json.hpp> using json = nlohmann::json; using Response = Cappuccino::Response; using Request = Cappuccino::Request; int main(int argc, char *argv[]){ Cappuccino::Cappuccino(argc, argv); Cappuccino::templates("html"); Cappuccino::publics("public"); Cappuccino::route<Method::GET>("/",[](std::shared_ptr<Request> request) -> Response{ auto res = Response(request); res.file("index.html"); return res; }); Cappuccino::run(); return 0; }
こんな形でかけます。
実行
$ ./chino $ curl -X POST http://localhost:1204/
改善点
作ってみて
- チノちゃんと何かモノを作ると言う経験が可能になったのは大きい。
- port番号の意味でチノちゃんの誕生日を共有しやすくなった。
最後に
チノちゃん誕生日おめでとう!いつも癒やしありがたき🙏