yopi note

yopiのブログ

よぴのおと。

proxy環境下でHomebrewでTeX環境

よぴです。

 

研究室に配属されてデスクトップPCとしてiMacが支給されました。嬉しい。

様々な環境構築とのことで、TeX執筆環境は必要かなと思い、入れていきます。覚え書きです。
OSはmac OS High Sierraです。
 

例によってここは大学ですのでプロキシがインストールを阻んできます。

Homebrewのインストール

brew.sh

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

他のサイトでも紹介されている通り、こちらをターミナルに入れて実行してください。

ここでcurlが弾かれます。vi /.curlrcとして以下を追加しておきましょう

proxy=http://proxy.hoge.jp:port

これでcurlが実行できるようになります。再度、実行してHomebrewを導入しましょう。

MacTeXをインストール

MacTeX - TeX Wiki
ここに従ってHomebrewで入れていきましょう。

$ brew cask install mactex
$ sudo tlmgr update --self --all
$ sudo tlmgr paper a4

MacTeXは入りますがTeXLiveのパッケージ管理ツールのtlmgrで、commandが見つからないと出ました。
ただPATHが通ってないだけなので、

$ export PATH=$PATH:/Library/TeX/texbin

を追加してあげましょう。

$ sudo tlmgr update --self --all

なかなか実行してくれません。何故ならwgetもプロキシ環境下では通用しなかったからです。
vi /.wgetrcとしてファイルを作ってあげましょう。

http_proxy=http://proxy.hoge.jp:port
https_proxy=http://proxy.hoge.jp:port
use_proxy = on

再度実行すると、tlmgrが動いてくれると思います。

これで一通りインストールは終わりです。もっと簡単にproxy通す方法ってあるんでしょうか。教えてすごい人。

おわり

"tama cafe" at Kunitachi

よぴです。

 

休日で好きなcafeに行ってきました。

東京都国立市大学通り沿にある "tama cafe" です。

 

f:id:forzautta:20180106160411j:plain

tama cafe | 毎日の暮らしの中から健康に、そして美しく!

 

2014年に開店して、もう4年目になるそうです。韓国料理・韓国茶を提供しており、優しい味わいで、好きです。

店内はゆったりとしていて雰囲気もいいので、お一人様でもデートでも、過ごしやすいところです。

 

f:id:forzautta:20180106160430j:plain

f:id:forzautta:20180106160441j:plain

ビビンバをいただきました。しっかり混ぜてコチュジャンをかけて好みの辛さにしていただけます。

lunch timeだと、セットでドリンクも頂けるので\1000JPYで、お手軽です。

 

次回はデザートも頂きたいです。

-----

 

国立はいいところです。1952年に文教地区として指定を受け、学園都市としての歩みをしているので、レトロで静かな街並みです。

母校があるのですが、御三家都立国立高校、名門桐朋高校一橋大学と名だたる学び舎が大学通りにはあります。立ち並ぶお店や、景色も綺麗なので、是非足をお運びください。春は桜、秋は紅葉が綺麗です。

 

おわり

 

年越しはジンクスと共に。

よぴです。

 

2017年が終わりです。さよなら。

年越しの時にジャンプをして年越しの時に地球にいなかった人になったり、CDJやガキ使などTVショーを見て過ごす訳でもなく、僕は毎年、勉強をしながら年を越しています。

以下のジンクスに従って年を越しています。

 

「勉強しながら年を越した時、その勉強していた科目が成就する。」

 

僕が中学二年生の頃、塾にいた先生(東大生、後の僕の母校となる高校の卒業生)が言ってたことです。この人を目指して高校に入学しました。中学二年生の頃から毎年欠かさず行なっていることです。今年はこのジンクスを続けない予定だったのですが、その予定がなくなり、継続となりました。具体的なジンクスの効果は、物理を勉強していた時はセンター物理うまくいったり(1問ミスかな?)、数学を勉強していた年は模試の成績が数学だけやたらよかったりしています。よくわからん。

 

なんとなくやってるといい感じ、なので今年はB4でやる研究に沿うように統計学機械学習のことを勉強しながら除夜の鐘を迎えたいと思います。以下の本です。

 

機械学習のための連続最適化 (機械学習プロフェッショナルシリーズ)

機械学習のための連続最適化 (機械学習プロフェッショナルシリーズ)

 

機械学習系の本で最近もりもり出版されてますMLPシリーズです。名前の通りMachine Learning Professional なので、Professional向けに書かれていたりなど、趣があります(ない)。 この本は配属先の研究室の先生が眺めてみてって言われたので眺めることにしました。基本的なアルゴリズム多様体について興味があります。なるほど。

 

 こちらの本は図書館で見つけてきたものです。薄いのでパッと読めそうですね。内容は凝縮されていてちょい難がありますが、MLなどのバックグラウンドがあるとかなり読みやすいです(既に少し読んでいる。)

 

今夜はこの二冊で過ごします。年を越して十数分したら戻ってくることでしょう。

 

2018年もどうぞ、宜しくお願い致します。

 

おわり

来年のことを書きました。

よぴです。

 

もう年の瀬です。年越してしまうと忙しいので、年越す前に、抱負を考えました。抱負というより、2018年の設計のような感じです。ちなみにジョジョの奇妙な冒険を見ています。前にですが、北斗の拳を漫画で読んだ時のようなクサさがあって、良いです。良い。

 

kotobank.jp

学業

  • とりあえず進級します。実験の単位を落単しないように頑張る。
  • 勉強をします(研究ではない)、自分で勉強するという容量を掴んでM1,2に繋げる。
  • 研究をします、力強く推し進めていきたいです。実績を残す。
  • アカデミックだけでなく、共同研究やインターンなどにも余力があれば参入していく。
  • 常に技術動向をリサーチします、何が流行っているのか。
  • 技術系の記事を投稿していきたいですね。(input -> output)

生活

  • よく眠ります。私にとって睡眠は運気を呼ぶので、運をどんどん呼びこみます。
  • 料理をします。楽しく料理していきたいです。
  • 掃除をします。必要だと思って持ってきたもので、不必要なものを捨てていく。

精神面

  • ポジティブさを取り戻します
  • 筋トレを続けます、筋肉は最高のソリューションだってMSの人がいってた。
  • 松屋を食べます。

 

2017年は、濃霧の中に入り、周りだけでなく自分さえ見えなくなるような心持ちでした。各位にご迷惑をお掛けしたことはこの場を借りてお詫び致します。申し訳ありませんでした。

息苦しかった1年間が過ぎたので、新年の空気を体に循環させながら毒抜きをしていきたいなど。

 

そういえば深大寺にいきました。

f:id:forzautta:20171230193448j:plain

可愛い団子など見ました。全身おもちです。全身おもちじゃなかったら何なんだ。

f:id:forzautta:20171230193509j:plain

年末で年越しそばを食べに来る方も散見されました。賑わいです。

f:id:forzautta:20171230193551j:plain

昼からビールを飲んで勝ちになりました。WIN.深大寺と緑色の字が書かれていますね。

f:id:forzautta:20171230193636j:plain

暖かい蕎麦を添えて。青木屋というお店でした。素晴らしい。天ぷらというものが蕎麦の上に添付されました。

 

おわり

 

多くの学を深めました。

よぴです。

 

先日、仮配属先の研究室にて本配属後のスケジューリングや卒研のテーマについてのミーティングがありました。私が配属された研究室はI科MI(3)コースの統計学機械学習などをやっている先生のところです。はて、僕はEI(2)コースなのに?となるのですが、紆余曲折あり、他コース配属を選択しました。紆余曲折を追って行きたいと思います。

 

 

高校3年11月頃〜

私の高校は(確か)9月の頭に文化祭があるのですが、本来は受験勉強に励むべき時間を投げ売り、それまでなぁなぁで過ごし文化祭を乗り越えます。よって文化祭終了後は虚ろな目をしていました。すぐ虚ろではなくなりました私は。虚ろな目をして何ヶ月も過ごす人もいました。大変ですね。

僕は適当に大学を理系の国立とか決めていたので、モチベーションがゼロでしたが、本当にやりたいことってなんだろうと問いかけ、高校3年間で注いできたことといえば音響くらいしかなかったので、どうせなら好きな音響を大学でもやろうと決め、いくつかの大学をピックアップしました。

ピックアップされた大学は3つくらいでしたが、一番家から近い今通っている大学を選びました。

入試は簡単だったので、合格しました。めでたし。

 

B1

入学しました。わーい。大学に入ったので、大学生らしくアクティブになんでもチャンレンジしてみようとベンチャービジネスなんとかのプログラムに参加しました。正式名称は忘れました。僕は普通科卒業なので、一緒に参加していた半数くらいの人がなんらかの技術を持っている、使えるという人ばかりで相当な劣等感を抱きました。つらい。

C言語のプログラミングに触れる機会があり、初歩を学びました。夏頃、中高生?対象のプログラミング教室がありました。講師役で参加しました。ここで転機が訪れました。当日、オープンラボがあり、私がこの大学を目指したきっかけとなる研究室を覗くことになりました。

研究室を覗きました。そこでD1の方とお話ししました。今やってるプログラミング教室のことなどを話しました。「また遊びにおいで」と言われました。

後日本当に遊びに行って見ました。そこで話がぶっ飛び夏休み期間中だけ研究室インターンをすることになりました。1ヶ月ほどでしたが学業と研究・技術との繋がりが見えた時間でした。これは私にとって大きな出来事でした。基礎教養学問として線形代数微積分など何に使われるかわからないままやっていたことが、自分が将来やらむとしていることと結びついたのです。

自分がやっていることに理由づけできた時でした。何のためにこの勉強をしているのか、ということがわかるというのは重要だと思います。当たり前のようですが、理工系大学生の多くはこれをほとんど理解せずに基礎科目を勉強する時間を過ぎて行ってしまっていると思います。

 

B2

ベンチャー何とかは搾取されているように感じたので行かなくなり、自然消滅しました。B2は特に大きなことはありませんでしたが、B1の時に知った、学業と技術の繋がりの面白さをモチベーションに日々の学業に励みました。大学のカリキュラムの効率の良さと、その反面目的を見失いモチベーションダウンの悪さを見出しました。

ほどなくして冬ごろに塾講師のアルバイトをやめました。原因は給与です。昇級条件が自分のワークスタイルには合いませんでした。そしてそれを意識した瞬間に自分が搾取されていると感じたので、やめました。まぁぼちぼち楽しかったよ。

仲良くなった生徒とまた会いたいなぁ。

 

B3

B1からやっていることですが、様々な技術系のつぶやきをしているTwitterアカウントをフォローして、現在流行っていることを追うということでした。ともかく技術(何でもいいPythonが流行り出したとか)に疎かったので、言葉を知るところからでした。手探り状態でしたが、まだ春先のことでしたが機械学習、AIというものが流行り出している、Pythonというのが流行っている(ML系のLibraryが豊富)等のことを、よくわからず認識していました。

新しいアルバイトはないかと生協前の求人を見ていたところ、「C+MATLAB、ポーティング作業、プログラミング経験があれば大丈夫です。機械学習が学べます」とのある研究室からの募集があったのでMATLABは全く書けませんでしたがとりあえず応募して見ました(2月くらい)。

この応募は自分にとって素晴らしい成長を生み出しました。C言語なら...と思っていたらC++だったし、MATLABもがっつり書くことになって最初は本当に何もわからず「そんなんじゃ仕事にならないよ、このままじゃアルバイト続けてもらえないから」などと厳しいお言葉を頂いたり、ヒヤヒヤしながらだんだん環境に慣れていき、今では良好に関係を築いています。

初めの仕事はC++ -> MATLABのOnline Dictionary Learningのポーティング作業でした。その後もPython -> MATLABなどいくつかの作業を乗り切りました。3,4つプロジェクトを進めたと思います。そんなことから、自分の所属しているEIコースの内容と、アルバイトで行なっている作業の大きな乖離を感じました。

 

研究室選択時期

すごく悩みました。B1の時にインターンした音響の研究室でもいいじゃないかということもありましたが、音響に興味がなくなりました。南無三。自分の興味があることをまとめました。

などありました。私が選択した研究室は多くを充します。他コース枠で、EIコースで学んできたことはあまり活かされないかもしれないですが、やりたいことができる方がストレスなく実績を残せると思ったので、ここにしました。今のところは不満はないです。喜び。

 

まとめ

とりあえず一区切り、自分の興味のある研究室にスムーズに入ることができたのは、B1もっと早く言えば高3からの自己分析です。常に自分がやりたいことを模索していたと思います。多くの選択肢を広げて、いざ選択するぞとなった時にたくさんの選択肢をふるいに掛けられるようにしました。

また研究室選択を安心して行うためには確固たる強いGPAが必要です。私は幸いにして、B1の夏期休暇中に学業と技術の繋がりを見出し、ある種の面白さを理解しました。そしてモチベーションを保ちました。おかげで成績は良い方だったと思います(自慢できるほどではありませんが。)

今、勉強していることは何に使われるのか?何のためなのか?、問い続けて自分なりの答えを持つことは大切なんじゃないか、など考えました。

 

勉強していても楽しくない気持ち、わかります。目的があれば、まだ良いのかもしれないですね。

 

おわり。

 

 

 

字を読みました

よぴです。

 

もうすぐ年末です、数日前まで街を飾って居たクリスマスの装飾は、跡形もないです、さよらなクリスマス。お正月ムードです。

 

アルバイトや研究の関係で今年は思いがけずいくらか多くの論文を読めました。主に分類器に関する論文です。よく読んだものをまとめました。スパース推定に関するものばかりですが、面白いを得ました。

他にも多様体への拡張に関する論文も眺めましたがさっぱりだったので省略です。来年はB4(無事進級できていれば)なので、多様体のこと頑張って行きたいですねウキウキ(何もわからないですが)。

 

あとコーディングと実験が主な担当でしたがある学会に査読論文が通ったので、第二共著者ですが、一つの成果が生まれてUresiがあります。数理とか分かりたいですねおしまい。

 

  • J. Wright, A. Yang, A. Ganesh, S. Sastry, and Y. Ma, "Robust face recognition via sparse representation," IEEE Transactions on Pattern Analysis and Machine Intelligence, vol.31, no.2, pp.210-227, 2009.
    Sparse表現を用いた分類器で有名な論文とのこと、よく読みました。

LEDの点灯を制御してみた。

はてなブログ初めて数日、まだ続いてる。いつまで持つか。

今日はLEDをコマンドラインC言語で制御してみた。

Raspberrry Piのサイドに生えているトゲトゲの部分、「GPIOポート」というらしい。

GPIOポートはGeneral Purpose Input/Outputの略で、汎用入出力を行えるもの。

他の電子部品に対して命令を送ったりするときに使えるものだそうだ。

GPIOポートのピン配置は以下の通り

f:id:forzautta:20160305003639p:plain
http://www.raspberry-pi-geek.com/howto/GPIO-Pinout-Rasp-Pi-1-Model-B-Rasp-Pi-2-Model-B


とりあえずLEDを点灯させる。

ポート1から電源を取り、ポート6をGNDとして以下のような配線

f:id:forzautta:20160305004255j:plain

当然のことのように光った。

抵抗が2個あるのは抵抗値が一つの抵抗では低すぎたため、直列にして抵抗値を全体として上げたのだ。


続いて

コマンドラインでLEDを制御

GPIOポートはコマンドラインから制御することができるのだ。

まず初めに使用するポートを宣言する。(今回はポート4を使用する。)

$ echo 4 > /sys/class/gpio/export

このようにすると/sys/class/gpio/gpio4という仮想ディレクトリが出現する。(最後に消える)

次にこのポートは入力と出力、どちらに使うのか設定する。

$ echo out > /sys/class/gpio/gpio4/direction

この状態になったら、GPIO4が制御できるので、/sys/class/gpio/gpio4/valueに対して値を書き込み、LEDを制御していく。

$ echo 1 > /sys/class/gpio/gpio4/value
$ echo 0 > /sys/class/gpio/gpio4/value

1にすると光り、0にすると消えます。

最後にポートの使用終了を宣言します。

$ echo 4 > /sys/class/gpio/unexport

コマンドラインでLEDを制御(おまけ)

Unixシェルスクリプトの「while」を使うことで、LEDの点滅をさせることができます。

以下のように記述すればbreakするまで永遠ループして点滅してくれます。

$ while true
> do
> echo 1 > /sys/class/gpio/gpio4/value
> sleep 1
> echo 0 > /sys/class/gpio/gpio4/value
> sleep 1
> done


C言語でLEDを制御

Raspberrry PiにはGPIOポートを簡単に制御できるC言語用のライブラリWiringPiがあります。

まずこれを入れましょう。

WiringPiを使用するにはI^2Cの開発用ライブラリが必要なのでそれをまずインストール。

$ sudo apt-get install libi2c-dev

Gitを使ってWiringPiは入手できるので

$ git clone git://git.drogon.net/wiringPi

あとはコンパイルすればOKです。

$ cd wiringPi
$ ./build

次にC言語での記述です。

いつまでも光らせるわけにもいかないので、10回点灯させるプログラムを書きます。

ソースコードは以下。

/*led1.c*/
#include <wiringPi.h>

#define LED_PORT 4  /* GPIOポートを設定しておく */

int main(void){
    int i;
    
    if(wiringPiSetupGpio() == -1){
        return 1;  /* エラーが起きて-1が帰ってたら1に初期化しておく */
    }
    pinMode(LED_PORT, OUTPUT);  /* GPIO4をOUTPUTモードにする */
    
    for(i = 0; i< 10 ; i++){
        digitalWrite(LED_PORT, 1);   /*LED ON*/
        delay(100);                  /*100ms待つ*/

        digitalWrite(LED_PORT, 0);   /*LED ON*/
        delay(100);                  /*100ms待つ*/
    }
    return 0;
}

結構分かりやすい。あとはコンパイルして実行だけ。

$ gcc -o led1 led1.c -lwiringPi
$ sudo ./led1

「-lwiringPi」を入れないと、ライブラリがロードできないので忘れず注意。
sudoじゃないとGPIOポートにはアクセスできない。

今日はここまで、無事ファーストステップはクリアなのかな…?


参考サイト
tool-lab.com




おまけ。

オス-メスのジャンパー線がないから、フラットケーブルを使い、気合で接続してました。

f:id:forzautta:20160305004033j:plain