#author("2023-09-05T08:41:39+00:00","default:f.t.camera","f.t.camera") #author("2023-09-16T12:30:40+00:00","default:f.t.camera","f.t.camera") *コニャックがうまい [#z2a1f5ce] 最近アルコール度数が高いお酒を少しずつ飲むのにハマり始めてる 二日酔いになりにくいし、一人で飲むのにオヌヌメ #ref(cognac.JPG,,10%) 最近飲んでるコニャック(ウマイ ブランデーなんてスパイ映画みたいだなぁと思ってパシャり こんな写真学生課が怒りそうだけどまぁ誰も見てないから大丈夫でしょ! おや、誰か来たみたいだ...... *bibliographyをスライドでうまく表示する [#la90973d] \begin{frame}[allowframebreaks] \bibliographystyle{} \bibliography{} \end{frame} スライドの資料をTexで書いている奇特,ではなく真面目なみなさん、 参考文献のページに[allowframebreaks]をframeに書き加えるとbibTexで見切れそうになったら改ページを勝手にやってくれるようになります *Graphvizについて [#h7eb553b] Cygwin入ってない人入れた方がいいかもしれない→http://cygwin.com/ *インストール[#h1b752bb] Graphvizを取ってくる→http://graphviz.org/ ページの下の方の「download」押す スクロールして「windows」の欄の「Stable 2.38 Windows install packages」 graphviz-2.38.msi をダウンロード graphviz-2.38.msiをダブルクリックで実行 #ref(Graphviz1.png) インストール進めていけばGraphvizデビュー! *Graphvizテンプレート [#i24f8f82] たぶん自分よりも原田先輩あたりの方が詳しいと思うのですが自分のためにと思って テンプレートとか書いたけど基本的に自由度が高い感じだから結構なんでもあり 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; } #ref(cantPairingCase-crop.pdf) では適当に解説 最初の行「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 [#bc0041b4] 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 [#nc9e19ea] 研究室のパソコンで実験した結果をグラフにしたいあなたにオヌヌメ!その名もgnuplot そこそこの苦労できれいにグラフを書いてくれるいいやつ 自分は今ルール順序最適化アルゴリズムの実験結果しか出さないからx軸をルール数,y軸を遅延とした棒グラフの書き方で紹介いたしやす **使い方 [#g2270258] 先ず、実験結果を作る。これが一番大変 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でスペルチェッカー実装方法 [#d0e4494e] https://texwiki.texjp.org/?TeXworks%2F%E8%A8%AD%E5%AE%9A#vd0f0d24 ↑これにすべてが記されている. *bibtexでurlがはみ出るなら [#a0b219d2] .bibファイル内のはみ出るurlを探してurlを"\url{}"で囲むとtexがurlを認識していいところで改行してくれる.すでに{}で囲まれてるならその外に\urlを書き足すだけで認識される. *texliveのインストール方法 [#w5bd6eea] ディスクを入れてディスクのディレクトリで"./install-tl"を入力する. コマンドを要求されるので"I"を入力してエンターを押す. *texliveをインストール中エラーを吐かれたとき [#l77db467] 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ファイルを読み込む部分でのエラーについて [#ca94912c] 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などをバックアップから戻すときの注意事項 [#je7dc795] cpなどして復元させようとすると,ファイルの属性が変わっている場合がある(前回ホームページ等をアップデートしたとき,これで苦労した). 属性が変わっていると当然ながら正常に動作しない.ネットで先駆者たちの話に耳を傾け,ファイルの属性を合わせてあげる必要がある. *SDNのベンチマークツールmininetとOpenflowコントローラ「Ryu SDN Framework」について [#m5515e13] 研究室の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>、さもなければ選択肢の番号のキーを押してください: ubuntuの動作にpythonが絡んでいるからか知らないが,pythonのバージョンを変更する場合rebootが必要らしい(やったことない.). 次にmininetのインストールを行う.[[mininet:http://mininet.org/]]のホームページでは,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 //*渕野のいい加減な発言 [#p2b2a97a] //全部ネットが教えてくれたわ //"そんなリストで大丈夫か?" "一番いいのを頼む(白目)" //自分は最近,公共機関の中で騒ぐ老害に対する一定の許容を持てるようになった.これが大人になることなのだと実感した.ところで,横並びに低速で歩く学生どもには男女構わず後ろから蹴りを入れても正当な行いとされるべきではと思う. //遅延を減らそうと散々画策したのに,蓋を開けてみれば,ほどほどに考えてあとは丸投げってやつに負ける悲しみ //*Mr.柴原語録 [#l7a40634] //研究は,自分でやらないといけないんですよ.(引継ぎを行うとき,後輩に投げかけた言葉)