コニャックがうまい

最近アルコール度数が高いお酒を少しずつ飲むのにハマり始めてる

二日酔いになりにくいし、一人で飲むのにオヌヌメ

cognac.JPG

最近飲んでるコニャック(ウマイ

ブランデーなんてスパイ映画みたいだなぁと思ってパシャり

こんな写真学生課が怒りそうだけどまぁ誰も見てないから大丈夫でしょ!

おや、誰か来たみたいだ......

bibliographyをスライドでうまく表示する

\begin{frame}[allowframebreaks]

\bibliographystyle{}

\bibliography{}

\end{frame}

スライドの資料をTexで書いている奇特,ではなく真面目なみなさん、

参考文献のページに[allowframebreaks]をframeに書き加えるとbibTexで見切れそうになったら改ページを勝手にやってくれるようになります

Graphvizについて

Cygwin入ってない人入れた方がいいかもしれない→http://cygwin.com/

インストール

Graphvizを取ってくる→http://graphviz.org/

ページの下の方の「download」押す
スクロールして「windows」の欄の「Stable 2.38 Windows install packages」
graphviz-2.38.msi をダウンロード

graphviz-2.38.msiをダブルクリックで実行

Graphviz1.png

インストール進めていけばGraphvizデビュー!

Graphvizテンプレート

たぶん自分よりも原田先輩あたりの方が詳しいと思うのですが自分のためにと思って

テンプレートとか書いたけど基本的に自由度が高い感じだから結構なんでもあり

digraph cantPairingCase{
graph[
       charset= "UTF-8",
       layout = dot
];
       rmax[label="r_max:"];
       r1[label="r_1"];
       r2[label="r_2"];
       r3[label="r_3"];
       r4[label="r_4"];
       r5[label="r_5"]; 
       r6[label="r_6"];
       rmax -> r4;
       rmax -> r5;
       rmax -> r6;
       r4 -> r2;
       r5 -> r2;
       r6 -> r3;
       r2 -> r1;
       rmax -> r1;
}

では適当に解説

最初の行「digraph cantPairingCase{」
cantPairingCaseはグラフの名前で、ほとんど出てこないから実際なんでもいい
digraphはグラフの種類の指定でこれは有向グラフである(指定しなければ矢印で要素を結ぶ.ぶっちゃけこれでも無向グラフも作れる)
無向グラフはgraphとする
graph[ ];
グラフ全体の特性を決めるセクションここを頑張ればたぶんかっこよくなる.レイアウトのあれこれを「,」で繋いでいって最後は何もつけなくておk.
charset= "UTF-8"
これは書式なんでUTF-8でほぼ決まり
layout = dot
要素の配置.dotは階層型二分探索木みたいな配置になる
他にもcirco, fdp, neato, nop, nop1, nop2, osage, patchwork, sfdp, twopi がある

それぞれの配置の感じは→ http://melborne.github.io/2013/04/02/graphviz-layouts/

dot2tex

Graphvizは下付き文字とかが入力できないんだが、dot2texを使うと数学記法の一部が使えるようになるんやで

少なくとも自分はその程度(下付き文字を使う程度)しか使ってないけど、もっと上手く色々できる人はむしろ俺に教えて

基本的にはgraphvizと互換性があるので、graphvizで図を作成する体で作って大丈夫です。

コンパイル
作ったdotファイルをtexファイルにコンパイルして、platexでdviファイルにコンパイル。それをdvipdfmxでpdfにすれば完成
$ dot2tex -tmath hoge.dot > hoge.tex
$ platex hoge.tex
$ dvipdf hoge.dvi
コマンドオプションとして,--figpreamble="\Large"を使うと,文字が大きくなる.\Large<\LARGE<\Huge<HUGEの順にでかくなる.

gnuplot

研究室のパソコンで実験した結果をグラフにしたいあなたにオヌヌメ!その名もgnuplot

そこそこの苦労できれいにグラフを書いてくれるいいやつ

自分は今ルール順序最適化アルゴリズムの実験結果しか出さないからx軸をルール数,y軸を遅延とした棒グラフの書き方で紹介いたしやす

使い方

先ず、実験結果を作る。これが一番大変

x軸の値を縦に並べたファイルを作成する(latency.txt)

latency.txt
1000
2000
3000
4000
5000

次に実験で得られた各アルゴリズムの実験結果を縦に並べたファイルを作成する(SGM,Ogasawara)

SGM
268216926
4.96526e+08
7.04782e+08
8.48017e+08
1.17249e+09
Ogasawara
2.67993e+08
4.96356e+08
7.04155e+08
8.47685e+08
1171751856

下のコマンドを実行すると任意のファイルにSGMとOgasawaraのデータそのファイルの中で合体する!

$paste latency.txt SGM Ogasawara > hoge.txt

latency.txt
1000 268216926 2.67993e+08
2000 4.96526e+08 4.96356e+08おこ
3000 7.04782e+08 7.04155e+08
4000 8.48017e+08 8.47685e+08
5000 1.17249e+09 1171751856

必須じゃないけどファイルの上に何のアルゴリズムの実験結果か書いておくと確認しやすいぞ

latency.txt
#    SGM       Ogasawara
1000 268216926 2.67993e+08
2000 4.96526e+08 4.96356e+08
3000 7.04782e+08 7.04155e+08
4000 8.48017e+08 8.47685e+08
5000 1.17249e+09 1171751856

次にどんなグラフを作るのかっていう設計図pltファイルを作る。どっかに転がってるテンプレートファイルを参照することをおススメする。めんどくさそう

Texworksでスペルチェッカー実装方法

https://texwiki.texjp.org/?TeXworks%2F%E8%A8%AD%E5%AE%9A#vd0f0d24 ↑これにすべてが記されている.

bibtexでurlがはみ出るなら

.bibファイル内のはみ出るurlを探してurlを"\url{}"で囲むとtexがurlを認識していいところで改行してくれる.すでに{}で囲まれてるならその外に\urlを書き足すだけで認識される.

texliveのインストール方法

ディスクを入れてディスクのディレクトリで"./install-tl"を入力する.

コマンドを要求されるので"I"を入力してエンターを押す.

texliveをインストール中エラーを吐かれたとき

   Can't locate Digest/MD5.pm in @INC (...) at tlpkg/TeXLive/TLUtils.pm line 204.
   BEGIN failed--compilation aborted at tlpkg/TeXLive/TLUtils.pm line 204.
   Compilation failed in require at ./install-tl line 53.
   BEGIN failed--compilation aborted at ./install-tl line 53.

こんなエラーが吐かれたら以下のコマンドで対応するパッケージをインストール

yum install perl-Digest-MD5

texでpdfファイルを読み込む部分でのエラーについて

LaTeX Error: Cannot determine size of image (no BoundingBox)の場合

pdfのバージョンの違いによってtexがpdfのサイズを認識してくていない場合発生する.

extractbb *.pdf

のコマンドを使うと,ファイルサイズを含む.xbbファイルが生成される.

xbbファイルをcatすればBoundingBoxの項目が出てくる.

tex内部の\includegraphicsの[]オプションにbb="xbbファイルのBoundingBoxの部分"と記述すればtexが対象のpdfファイルのサイズを認識してくれる.

wikiやhtmlなどをバックアップから戻すときの注意事項

cpなどして復元させようとすると,ファイルの属性が変わっている場合がある(前回ホームページ等をアップデートしたとき,これで苦労した).

属性が変わっていると当然ながら正常に動作しない.ネットで先駆者たちの話に耳を傾け,ファイルの属性を合わせてあげる必要がある.

SDNのベンチマークツールmininetとOpenflowコントローラ「Ryu SDN Framework」について

研究室のPCのOSがubuntuになったため,mininetの運用が格段にやりやすくなった.それに伴い,SDNベンチマークツールであるmininetとその周辺アプリケーション「wireshark」と「Ryu SDN Framework」についての備忘録のようなものを残そうとこれを記述する.

始めに,現在,mininet,wireshark,Ryuのインストールは比較的整備されており,「apt-get install」コマンドやgithubからのダウンロード,スクリプトの実行により,インストールが可能となっている.しかし,Ryuが最新のPythonに対応していないため,Ryuを運用するためには「Python3.9x」かそれ以下が必要となる.単純にmininetをインストールするとおそらく最新のPythonがインストールされるようになっているため,注意が必要である.

また,mininetの運用にはxtermの実行が推奨されているため,これのインストールも必要である.xtermとは,新たにコンソールを起動するアプリケーションであり,mininet上で使用することで,対応するノードのコンソールを新たに生成することができる(ただし,挙動の確認をしていないため,元からCUIのみで運用しているPCでは動作不明).また,xtermをインストールしていれば,別ウィンドウにwireshark等のアプリケーションのGUIを表示させることができる.しかも,リモートでログインしていてもウィンドウの展開が可能である.ただし,その場合,手元のPCにもxtermもしくはxtermを実行できるアプリケーションのインストールが必要である.また,windowsでxtermを運用する場合,大体面倒なことになる.

現在,やってきたことを順次行ってきたことを記述するため,正しくない可能性があるため,注意

python3をインストールする.まず,インストール環境をアップデート

$ sudo apt update
$ sudo apt upgrade -y

python3のパッケージをインストールしたり管理したりするためのパッケージpipをインストール

$ sudo apt install -y python3-pip
$ pip3 -v #バージョン確認で動作確認

上述のとおり,バージョンは3.9も入れたいが,現在のaptでは3.9はインストールできない(apt list python3.*で確認できる.).そこでリポジトリ情報を登録する.一方で,mininetはpython10でも動くため,alternativesを用いて切り替えられるようにする.

$ sudo add-apt-repository ppa:deadsnakes/ppa

これで改めてapt list python3.*を行うとpython3.9がある.alternativesで切り替えられるようにpython3.9-venvもインストールしておく

$ sudo apt install python3.9 python3.9-venv
$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1
update-alternatives: /usr/bin/python3 (python3) を提供するために自動モードで /usr/bin/python3.9 を使います

これでupdate-alternativesで二つ目のpythonバージョンを選べるようになる.

$ sudo update-alternatives --config python3
alternative python3 (/usr/bin/python3 を提供) には 2 個の選択肢があります。
  選択肢    パス               優先度  状態
------------------------------------------------------------
  0            /usr/bin/python3.9    1         自動モード
* 1            /usr/bin/python3.10   0         手動モード
  2            /usr/bin/python3.9    1         手動モード
現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください:

次にmininetのインストールを行う.mininetのホームページでは,mininet埋め込み済みubuntuのOSデータを公開しており,VirtualBoxなどのPCエミュレータを使用して起動する方法が推奨されているが,研究室のPCには最初からubuntuがあるのでgithubからデータをダウンロードしてきて中に入っているスクリプトを起動することでmininetをインストールする.

$ sudo apt install git
$ git clone https://github.com/mininet/mininet
$ cd mininet
$ git tag #mininetのバージョンを確認.大体最新のものを使用して問題ない
1.0.0
2.0.0
2.1.0
2.1.0p1
2.1.0p2
2.2.0
2.2.1
2.2.2
2.3.0
…
2.3.1b4
$ git checkout -b mininet-2.3.1b4 2.3.1b4 #ブランチを変更し,欲しいバージョンをインストールする
$ cd ..
$ mininet/util/install.sh

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS