MOFU MOFU

技術的なことから、趣味の分野までいろいろメモ程度に書いていきます

pdflatexのすすめ

今卒論を書いているのですが、dvips + ps2pdfをTEXmakerのQuickBuildで実行していたところ、どうも画像がうまく入らない。

\begin{figure}[!h]
	    \centering
    		\includegraphics[width=7.8cm]{./figure8.png}
		\caption{Figure}
		\label{fig:8}
\end{figure}

こんなかんじで入れていたのですが、うまく入らなかった。やはり、eps形式じゃないとダメなのかと思ったのですが、

\includegraphics[width=16.0cm,bb=0 0 1420 800]{./figure8.png}

こんなかんじで、bbを指定してdvipdfmxを使ったところうまくいきました。

bbは、

bb=lx ly x y

と言った形で指定します。lx,lyが画像の左下の座標らしいので、0 0を指定し、x,yが画像のサイズなので、画像のプロファイルを見て指定します。

この方法でもうまくいくのですが、めんどくさいのでpdflatexを使うことにしました。
この場合bbの指定はいりません。
前述の書き方でOKです。

コンパイル方法も特に変わらず、
hoge.texが本文だとすると、

pdflatex hoge
bibtex hoge
pdflatex hoge

で、pdfが作成されます。
便利便利。

一昔前まで使われていたパッケージとか、古い書き方とかもあるみたいで大変です。最近では、pdfやpng形式で画像を入れるのが普通らしいです。

LaTexで文献データベースを利用するときの注意

卒論を今書いているのですが、最後の参考文献を書くときに、文献データベースを作成して一括で貼りたいなと思って、

biblist.bibに、参考文献を一括して書き、
本文で

\bibliography{biblist}

と書けば、いいのかなと思ったのですが、
bibtexコンパイルしたところ、

I found no \citation commands---while reading file 

どうやら、本文中で、\citeで文献を使用していないと反映されないらしい。

\usepackage{cite}

を書いてるから大丈夫だと思ったのだが。。

調べてみると、

\nocite{*}

を\bibliography{biblist}の前に書けばいいらしい。
これでエラーはなくなった!

ついでに、文献データベースで、

Too many commas in name 1

とかでて怒られた。これは、authorのところをカンマで区切って書いていたのだが、カンマが多すぎるとのことらしい。bibtexの場合は、andでauthorを区切ると勝手にカンマにしてくれるので、andに修正した。

コンパイルするときの手順、
hoge.texが本文だとすると

latex hoge
bibtex hoge
latex hoge
dvipdf hoge

ShellShock脆弱性確認

今、世間を騒がせているShellShockの脆弱性をチェックします。

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

が表示されたら脆弱性ありなので対策しましょう。

サーバー上で実行した結果、

this is a test

で、だいじょうぶですね。

Macでも、Appleが公式にパッチを出しているので、修正しておいたほうがいいでしょう。

CGIを使ったサービスを提供していないので、大丈夫だと思いますが。

avast for macのアンインストール方法

以前使っていたmac用のウイルス対策ソフトだと、webブラウジングで不都合があったので、avastに乗り換えました。

avastを一度インストールしたのですが、ちょっと再インストールする必要が出てきたので、アンインストール方法を書きます。

まずは、メニューバーにある、avastのアイコンから、open avastをクリックし、avast->uninstall avastでいけるかなと思ったのですが、error!!

ちょっと調べてみると、メニューバーの表示をオフにしてアンインストールという方法があったので、試しましたが、error!

じゃあ、シールド全部無効にしたらいいのではと思い、
avast->Preferences->shieldsのenabledのチェックを全て外します。
もちろん、miscellaneousのshow avast icon in menu barのチェックも外します。

その後、avast->unistall avastで無事アンインストール完了。

その後インストールしなおしました。

インストーラーに付属のアンインストーラーなら普通に削除できるのかな?
試してません。

マインクラフトサーバー1.8への更新(導入)

色々環境が違ったり、導入の状態が違ったりする可能性もあるのであくまでも参考までにしてください。アップデートの場合は、バックアップを必ず取ってから!
基本的には、以前書いた

マインクラフトサーバー1.7.10への更新 - MOFU MOFU
と同じです。

今回は、アップデートでの変更点も多く、今まで作っていたギミックとかがちゃんと動作しなくなる可能性もあるので注意してください。私の場合は村人無限増殖機とか。。

ただ、それ以上に追加要素が盛りだくさんで新しいバイオームや、ブロック、アイテムなどが追加されています。
なので新しくワールド生成しようかなとも思ったりしてます。

それで今回は、新しくワールドを生成する方法です。

以前と同様に、環境は、Cent OS 6.5、java,
screenなど導入済み。

こちらも参考までに

マイクラサーバーのたてかた - MOFU MOFU


まずは、適当な名前のディレクトリを作ります。(作業前にマイクラサーバーを止めてください)

mkdir minecraft18
cd minecraft18

次に、そのディレクトリで、マイクラサーバーをダウンロードします。

wget https://s3.amazonaws.com/Minecraft.Download/versions/1.8/minecraft_server.1.8.jar

アドレスは、公式サイト上にあります。

次に、起動します。起動用スクリプトを作る前に、起動テストです。

java -Xmx1024M -Xms1024M -jar minecraft_server.1.8.jar nogui

で、起動すると1.7.10同様、多分

You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

みたいなメッセージが出るので、
stopで停止し、

vim eula.txt

エディタでeula.txtのeula=falseの部分をeula=trueに変更します。
eulaは、End User Licence Agreementの略で、まあ、ちゃんと読んでください。

これで起動できるはずなのでもう一度、

java -Xmx1024M -Xms1024M -jar minecraft_server.1.8.jar nogui

ワールドデータの生成とかいろいろはじまります。
終わったら、stopで停止し、
起動用スクリプトを書きます。

#!/bin/sh 
screen -AmdS minecraft java -Xmx1024M -Xms1024M -jar minecraft_server.1.8.jar nogui 

ついでに、停止用スクリプト

#!/bin/sh
screen -S minecraft -p 0 -X eval 'stuff stop\015'

あとは、それぞれのスクリプトファイルに実行権限を与えます。

chmod u+x start.sh
chmod u+x stop.sh

スクリプトファイルの名前は任意です。

起動!

./start.sh

あとは、クライアントからアクセスしてテストするだけです。

1.7からのアップデートは試していないのですが、自分のローカルの環境でワールドデータはすんなり読み込んだので問題はなさそうです。ただ、追加要素のバイオームとか生成されないよね。せっかくなので、新しいワールドを生成してもいいかもしれません。

emacs24での注意 モードライン modeline

自分のmacとか、Linuxではすでに、emacs24をつかっていて、アップデートした時にこの問題は解決済みだったのですが、学校で使っている環境でもようやく、emacs24になったので環境設定のファイルをちょこちょこいじって、起動したりしていました。

まずは、設定ファイルの場所が変更になりました。ホームディレクトリに.emacs .emacs.elとかおいとくのが普通でしたが、.emacs.d/init.elに設定ファイルを置くのがデフォルトになりました。
(確か、.emacs.elのままでも読み込んだ気がするけど。

今回の注意点は、emacsのモードラインの色をカスタマイズしている人向けです。

変更前

  (set-face-foreground 'modeline "MidnightBlue")
 
  (set-face-background 'modeline "MediumPurple2")

このままだと、modelineって何?ってエラーがでるので、

変更後

  (set-face-foreground 'mode-line "MidnightBlue")
 
  (set-face-background 'mode-line "MediumPurple2")

これで解決!

Wiresharkを使って、Wifiのパケットをキャプチャ

最近、某サイトでのログインがセキュアじゃないと、友人と話していたので、実際スニファってどんな環境でできるのかなということになり、独立したネットワーク構築してやってみればいいんじゃねって軽く言ったんですが、実際どうやるのか考えてもいなかったので、ちょっと試してみました。

これを、公衆無線LANとか、実際の環境でやったらダメですよ!!

で、どういう環境で、実際スニファリングできるかというと、
バカハブにつながっている端末上、同じWifiに乗っかている端末上です。他にもルーターのパケット直接読むとかいろいろありそうですが。

実際にやってみたい(もちろん、自分のプライベート環境で)と思ったのでバカハブ売ってないのかなと思ったのですが、今売られているのが、ほとんどスイッチングハブといって、パケットをバッファリングし、ターゲットに直接送信しているもの。バカハブはブロードキャストしているだけだからスニファリングできるんですね。

じゃあ、Wifiでやればいいじゃん、ということで、自宅のWifiルーターをつかって、スマホの通信を見てみました。

スマホ(キャプチャされる奴) -> ルーター <- PC(キャプチャするやつ)

こんなかんじです。
まず、Wiresharkを起動し、menuのCapture->Optionsを開きます。

次に、Wi-Fi:en0をダブルクリックし、
capture packets in promiscuous mode
capture packets in monitor mode
の両方にチェックを入れて、メニューを閉じます。

次に、パケットを複合するための設定をします。
Edit->Preferencesを開き、
Protocols->IEEE 802.11をクリック、
Enable decryptionにチェックを入れます。

OKでPreferenceを閉じます。

View->Wireless Toolbarにチェックを入れると、
ツールバーが追加されるので、Decryption Keysをクリック。

Newをクリック
TypeはWPA-PWDを選択し、じぶんのSSIDとWPAキーを入力し
OK

あとは、キャプチャするだけです。

WPAの場合、クライアントごとにキーが生成されるので、最初の通信を読み取る必要があります。
そのため、この場合はスマホWi-FIをキャプチャ開始してからオンにします。

どんどんパケットが流れるので、あとはip.addrとかでフィルターをかけて見るだけです。
スマホのブラウザから、POSTしてみたところ、

平文の通信は、全て見えます!!
こわいこわい

もちろん、SSLで暗号化されている場合は見れませんが。

公衆無線LANが暗号化されている、されていないにかかわらず、利用する際は、特に気をつけたほうが良さそうです。

あとこの方法は悪用厳禁です。試す場合はくれぐれも、自分の環境で