VPS上でliboctaveを使ったc++ソースコードがコンパイルできなかったので
備忘録的にメモ。
先生がよこしたreadme.txtの通りにやると、学校のPCではうまく言ってもVPSでは全然うまく行かなかったのを、四苦八苦しまくってようやくコンパイルできるところまでこぎつけたのでメモしておく。
OS
学校
VPS
Linuxよくわからないので本当に手探りでググりまくりながら何とかたどり着いたところのreadme.txtとの違う点。
共有ライブラリのパス
(変更前) LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib/octave-3.2.2/
(変更後) LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib/octave/3.6.4/
コンパイルコマンド
(変更前)
g++ -g -Wall -I/usr/include/octave-`octave-config -v` -L/usr/lib/octave-`octave-config -v` -loctave source.cpp -o a.out
(変更後)
g++ -O3 -fPIC -I/usr/local/include/octave-3.6.4 -I/usr/local/include -c -o a.o source.cpp
g++ -o a.out a.o -O3 -fPIC -L/usr/local/lib/octave/3.6.4 -loctave -lcruft
apt-getでインストールされたOctaveが3.2.4で、とりあえず
Matrix A(2,3);
と2行3列の行列を定義しただけでundefined reference to~~~~のエラーが出てトホホしてた。
最初はなるべく学校の環境に近づけようとOctave3.2.2をソースからビルドしようとしたんだけど、makeでよくわかんないエラーがたくさん出て、Linux初心者の自分には無理だと判断。
最新版入れてみようってことでOctave3.6.4をソースからビルドしましたが、makeにドチャクソ時間かかりました。研究室でやってたんだけど三色ショッピング終わってもmake終わってなかった。
まだ課題のプログラムは動かしてないけど多分動くでしょうということでとりあえずコマンドなんかを忘れないようにメモしておきました。
【未解決】Unityで物置くとY軸の角度が微妙にずれる件
こんにちは!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Unityのモバイル向けプラグインが無料になったとかでいじり始めました。
的立ててボールぶつけて吹き飛ばしてわーいとかやってるのもそろそろ飽きてきたのでちょっとゲームっぽいのを作ってみようかなと思いBlenderで星形の座布団を作って動かしてみました。
星形の座布団であってワープするスターではありません。
これをフィールド上に配置して実行すると
↑実行前はこうだったのが
↑!!!!!!!!!!!!!!!!!
(UCのBGM)
Y軸中心の角度が微妙にずれます。
ボタンを押した時にX軸方向に進撃するようにすると、傾いているからかどんどん左に曲がっていきます。これはゲームにならない。
手探りでやったモデリングが悪かったかな、とUnityでCubeを作っておいてみたら、やっぱり
ずれました。
これはどうしようもないのかなぁなぁなぁ。
解決したい。
Monster Absolutely Zeroを飲んでみた
モンスターカオスにはいつも主に試験前にお世話になっているが先日出先のコンビニで青いモンスターを見つけて気になっていたのを思い出し最寄りのファミマで購入。
真っ黒い間に水色のMマークにMONSTER ENERGY ABSOLUTELY ZEROの文字、缶の首の部分には「ゼロカロリー+無糖+ゼロカロリー+無糖+ゼロカロリー+無糖+」とぐるっと書かれている。
飲んでみると、無糖のくせにスッキリしたさわやかな甘味で、ゼロカロリーっぽさを感じる後味の軽さ(?)があった。
レモン味のスポーツドリンクみたいな味だと思う。
べたべたした甘さがない分、甘いものがっつり飲みたくないけど眠気は飛ばしたいときなんかにはカオスよりこっちのほうがいいかもしれない。逆に疲れ果てて甘いものでぐっと元気出したいときにはカオスの方が適していると思う。
味はカオスの方がジュースっぽくて好み。
[2013/05/27 追記]
なんか今日徹夜のお供に飲んでみたらすごくまずく感じた。
やっぱカオスが好きです。
PHP+CodebirdでAccess tokenとAccess token secretを取得する
GETでconsumer_keyとconsumer_secretを投げるとTwitterの認証ページに飛ばして認証後トークンを表示してくれるやつ。
<?php require_once('codebird.php'); session_start(); if(isset($_GET['key']) && isset($_GET['secret'])){ $consumer_key = $_GET['key']; $_SESSION['key'] = $consumer_key; $consumer_secret = $_GET['secret']; $_SESSION['secret'] = $consumer_secret; } else if(isset($_SESSION['key']) && isset($_SESSION['secret'])){ $consumer_key = $_SESSION['key']; $consumer_secret = $_SESSION['secret']; } Codebird\Codebird::setConsumerKey($consumer_key,$consumer_secret); $cb = Codebird\Codebird::getInstance(); if(!isset($_GET['oauth_verifier'])){ $reply = $cb->oauth_requestToken(array( 'oauth_callback' => 'http://0q0.biz/oauth/php/oauth.php' )); $cb->setToken($reply->oauth_token,$reply->oauth_token_secret); $_SESSION['oauth_token'] = $reply->oauth_token; $_SESSION['oauth_token_secret'] = $reply->oauth_token_secret; $auth_url = $cb->oauth_authorize(); header('Location: '.$auth_url); die(); }elseif(!isset($_SESSION['oauth_verified'])){ $cb->setToken($_SESSION['oauth_token'],$_SESSION['oauth_token_secret']); $reply = $cb->oauth_accessToken(array( 'oauth_verifier' => $_GET['oauth_verifier'] )); $_SESSION['oauth_token'] = $reply->oauth_token; $_SESSION['oauth_token_secret'] = $reply->oauth_token_secret; $cb->setToken($_SESSION['oauth_token'],$_SESSION['oauth_token_secret']); $_SESSION['oauth_verified'] = true; } echo "oauth_verified = ".$_SESSION['oauth_verified']."<br>"; echo "Access Token : ".$_SESSION['oauth_token']."<br>"; echo "Access Token Secret : ".$_SESSION['oauth_token_secret']."<br>"; ?>
Codebirdのサンプルを参考に、セッションに入れたり出したりしたりしなかったりするところをちょこちょこ書き換えてみた。
GETで投げるだけだけど、ちょっと使いやすくなるかなと思って専用のページを作ってみました。
TwitterOAuthHelper
/etc/sudoersがsyntax errorでsudo使えなくなった時の対処法
ちょっと理由があって/etc/sudoersをいじってて途中で保存しようとしたら、つい勢い余って:wqしてしまって詰んだのでメモ。
$ sudo vim sudo: >>> /etc/sudoers: syntax error near line 32 <<< sudo: parse error in /etc/sudoers near line 32 sudo: no valid sudoers sources found, quitting sudo: unable to initialize policy plugin
元に戻そうにもsudoが使えなくなったから/etc/sudoersを書き換えられなくなってしまって、これはどうしたもんかなと少し困った。
rootでログインすればsudoなしで行けるか、ととりあえずsu -をためしてみるけどrootのパスワード思い出せなかった(これも困るけど)。
'etc sudoers syntax error'とかでググったらこんな解決法っぽいの見つけた。
How to modify a invalid /etc/sudoers file? It throws out an error and not allowing me to edit again
この質問者の人も自分と全く同じ状況のよう。
それに対する解答が以下の通り。
On a modern Ubuntu system (and many other GNU/Linux distributions), fixing a corrupted sudoers file is actually quite easy, and doesn't require rebooting, using a live CD, or physical access to the machine. To do this via SSH, log in to the machine and run the command `pkexec visudo`. Assuming you (or some other user) are authorized to run programs as root with PolicyKit, you can enter your password, and then it will run visudo as root, and you can fix your /etc/sudoers.
`pkexec visudo`でスーパーユーザとしてvisudoを実行できるらしい。
$ pkexec visudo ==== AUTHENTICATING FOR org.freedesktop.policykit.exec === Authentication is needed to run `/usr/sbin/visudo' as the super user Authenticating as: (本名),,, ((ユーザ名)) Password: ==== AUTHENTICATION COMPLETE ===
GNU nanoエディタが起動して問題なく/etc/sudoersのエラーを修正することができた。`sudo vim`も出来るようになった。よかった。
pkexecについてはまた今度。