ごはんと飲み物は紙一重

このブログは,自己のモチベーションアップのために情報工学関連について記事を更新していこうと思います。三日坊主にならないよう頑張ります…

無事夏休みへ突入

気がつけばなんと更新に1ヶ月もかかっていたみたいです。途中途中技術的な投稿をしようと思っていたのですが、下書きのままお蔵入りへ・・・
とにかく7月は色々忙しく、前半は主にバイト関係でいろいろと手続きしたり動かないといけなく、さらにその後インターンをどうするかのあたりも考えていました。後半は大学の試験期間ということもありひたすらに忙しかったです。ぐう。

とはいえ無事ある程度のタスクを終え夏休みに突入できました。ということはついに俺妹のキャラクター分類のプログラムを作成してもう1年ですよ。はやいこった。

とりあえず現状報告としては、

  • Pythonのコミュニティ関連でうまくつながりを作っていたおかげで、県内インターンの話をいただくことができました。
  • せっかくの夏休み、本格的な機械学習や画像認識の力がほしいということでPRML(Pattern Recognize and Machine Learning)を読んでます。
  • 夏休み突入2週間前から、Python以外にも重たい言語を触れるようになっておこうと思ってC++を触ってます。

な感じです。なので、一応いろいろと触っていると正直学校ある時と何ら変わらないくらい忙しいです。

んでもって、

ですが、なかなかに難しい・・・1年や2年に触った、線形代数微分積分・確率統計をガッツリ使って解説してます。最初に読んだ時、なんだっけってなりすぎて講義で使用した教科書をひっぱりだしました。んで、更に演習も演習でなかなか難しい・・・数式を触らなすぎってのもあるのである程度我慢な感じです。

とにかく今は実際にPRML読み進めつつ、ちょこっと演習問題触りつつ、どうやって勉強していくのが効率いいかを模索している感じです。どなたかどういう風にすると数学的な知識を抑えられるか教えてください(懇願)。

C++についてはSoLoLearnってサイト使ってます。英語のサイトですが無料で基本が押さえられるうえに何より英単語が簡単なので正直全然いける!いけます!もう少しで全部終われそうなので8月末までにはきっちり終わっていきたい。

どれもこれも来年3月に自分の進路を確定させるための材料にしていきたいのでしっかり頑張りたいと思います。

P.S. 9月はPyConJPとFIT2017参加します。

インターン面接は難しい・・・

今週で応募したすべての企業との面接がおわり,残るは結果待ちと,課題提出だけとなりました.のですが・・・

既に5社中3社失敗・・・*

という悲惨な結果に.(1社についてはエントリーしたもののやりたいこととマッチしてなかったのでエントリーやめたのですが)

落ちた2社はというと面接したときは楽しく話せてたから良いのかなと思ったのですが楽しいだけではまだまだみたいですね.
受けた2社については面接官の名前をメモしていたこともあり,たまにfacebookでつながっている方のいいねのなかにその人がいておっふって感じ・・・

やっぱ県外の学生さんはもっといろいろ頑張っているのかな.それとも企業に適応することがインターン勝ち取る秘訣とか・・・?それだと俺はインターン面接20連敗ぐらいしそう・・・

やっぱり企業的にも企業に柔順でスキルの高い人を優先的にやりたい感じなのかなぁ・・・

それならいっその事起業してしまおうか笑

pyenv + anaconda + conda っている?

condaで仮想環境管理をするようにしたものの・・・

正直わざわざanacondaにする必要ってあった?というお話.

何故?

pyenvによってバージョンの管理が行えるが,condaコマンドを用いるためにanacondaをこれまで突っ込んでました.そしたらcondaで作った時点で仮想環境にモジュール突っ込めるからめちゃくちゃいいじゃんと思っていたのですが実際のところ,

conda create -n python=version 以下モジュール

となるので仮想環境作成段階でanaconda突っ込んだほうがいいんじゃないかと.つまり,

  • pyenv
    • anaconda2/3
      • conda仮想環境+モジュール

ではなく

  • pyenv
    • miniconda2/3
      • conda仮想環境 + anaconda2/3

がいいのかなぁって思いました.しかしanacondaの上にcondaの仮想環境する利点もあって,

  • プロジェクトごとで使用する際にはcondaによる仮想環境に乗せることでモジュールを新しく管理する
  • 普段pythonを叩く時,用途が特に決まっていないときはpyenv上のanacondaを使う

って事ができるからいいのかな?

で結局何が言いたいの?かというと

好きな方(便利な方)を選んで楽しいpythonライフが送ることができたらいいじゃないですか

って感じで調べていくうちにanaconda上の仮想環境も悪くないなってことがわかりました(((((((((

Itermにとりあえず乗り換えてみた & fish shellの環境構築

情強必須らしいiterm2

これまでずっとターミナルから色々と動かしていたのですが,最近周りのMacユーザを見ているとiterm2が良いらしい話をよく聞くので2年間お世話になったターミナルからiterm2へ移行することに.

brew cask install iterm2

brewさんほんと素晴らしい.簡単に入る.QiitaのまとめサイトをみながらフォントをRictyにして起動すると.

f:id:ST_ha1cyon:20170620134624p:plain

はぁ,良さ味が深い.(とはいえここまでならターミナルとほとんど変わらない)

んで,調べていると細かい設定やなによりもショートカット設定が非常に強いとのこと.この辺は追々いろいろと設定することになりそうですね.

fish shell とかいう 魚

サクサク動いてなおかつモダンであると聞いたので,ゴリゴリ設定しまくったzshからfishに乗り換えることに.下手に設定せずまずは普段通り使っていると・・・

f:id:ST_ha1cyon:20170620141529p:plain

予測してフォルダを出してくれる!良い!「the friendly interactive shell」って言うだけあるね!

んで次にいろいろとぶち込んだzshrcの設定をconfig.fishに移行.

以下のサイトを参考にしました qiita.com

まぁzsh依存の設定が半分以上あったので,その辺をうまく適応させながら経過を書いていきましょうかね.

prompt

プロンプトはfish_configから簡単に設定ができるようなのですが,

f:id:ST_ha1cyon:20170620150838p:plain

こだわり意地っ張りオタクはzsh同様な形にしたい(個人的にカラフルでお気に入り)のでここも変更しました.fishではCの書き方を使うような感じで書いているみたいですね.

function fish_prompt
    if test -z $WINDOW
        printf '\x1b[1m%s%s\x1b[0m%s@\x1b[4m%s\x1b[0m[%s]\n' (set_color magenta) (whoami) (set_color normal) (prompt_hostname) (pwd)
        printf '\t\x1b[1m%s>%s>%s>' (set_color yellow) (set_color green) (set_color cyan)
    else
        printf '\x1b[1m%s%s\x1b[0m%s@\x1b[4m%s\x1b[0m[%s]\n' (set_color magenta) (whoami) (set_color normal) (prompt_hostname) (pwd)
        printf '\t\x1b[1m%s>%s>%s>' (set_color yellow) (set_color green) (set_color cyan)
    end
end

基本的にはprintfにて文字列の出力をするような感じですね.あとは下線(underline)を引くためや太字にするために少々ごちゃごちゃしてますがちゃんと出力できました.

とりあえず見た目はばっちりzsh同様にできたので,残りのPATH設定等は実際にfishを使いながら色々と設定をしていこうと思います.まず第一印象としてはgood!

f:id:ST_ha1cyon:20170620172026p:plain

condaの仮想環境でglpkが動いてくれない.

闇の環境構築編ですね・・・

授業でglpkを使うと聞いて,pythonで使いたいと思っていた私はさっそくpythonでできるか探してみることに.するとあるには有るものの・・・インストールしimportしてみると,

>>> import glpk
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'glpk'

はい.よくあるパターンですね.と思って色々試してみるもなかなかうまくいかない.挙句の果てにインストールとアンインストールを繰り返すと,仮想環境でconflictしてしまったらしく,調べてたらなんかconflictというわけではなく単純にバージョンが合っていない模様.3.6から3.5へバージョンダウンさせるとインストールできました(importできたとは言ってない)

glpkをインストールするにあたって,openoptやfuncdesignerをいれましたと.でもだめ.

cvxoptが原因かと思ってバージョンを行き来するも効果はなし.

結局悩みに悩んだ挙句PuLPモジュールを使用することに・・・まぁここに固執しても仕方がないっちゃ仕方がないが悔しいのう・

日帰りで東京に行った話

いわゆる出張ってやつですね

今回の目的は夏休みに参加したいと思っている企業先への二次面接をするために東京に赴いたわけで,東京はやっぱりハイテクで素晴らしいですね(過大評価).

普段からキビキビ動いている(はず)こともあって東京の足の速さや電車の試練は難なく通りましたよと.実際の面接はと言うと,いかにもって感じのイメージした面接の感じでしたが,少しづつ打ち解け合ううちに私の口がしゃべるしゃべる.結果的に自分はだいぶ満足でした(相手方にうまく伝わっていたかな?).合格にせよ不合格にせよ今回面接したことが企業に対するイメージを変えたり,自分自身の考えを伝えてそのレスポンスをもらう良い機会になったのではないかと.

なかなか日帰りというとハードな感じもしたのですが,朝1便で飛ぶと昼をゆっくり食べられる余裕くらいは生まれるみたいです.ある程度東京での経験があったからこそ今回の1人出張がうまく行ったのかなと.

できることならぜひともインターンは受かっていてほしいです(懇願)

nbconvertでsvgがうまくpdfに変換されなかった話

nbconvertをよく使う.

ipynbをよくtexに変換する.なんだかんだ最近はこれが便利すぎて,レポート作成もnbconvertでそのまま変換してpdf出力をしている.ソースコードに色がついてわりと見栄えが良いのでよく使っているんだけど,今日はこんなエラーが.

TypeError: Inkscape svg to pdf conversion failed

Inkscapeってなんだ?って調べたら画像処理に使うらしい.とりあえず,

brew install caskformula/caskformula/inkscape

で入れてみる.付属品もいっぱいでインストールはまぁまぁ時間がかかった.

svgがうまく変換されたみたいだが,どうも画像ファイルをうまく読み込まないみたいtexファイルをみると,画像ファイルにアンダースコアで名前がついてる・・・nbconvertさんよ・・・画像生成のときに名前にアンダースコア使いたい気持ちはわかるが,texだとだめなんだよ・・・

っていうわけで名前を正規表現でぱぱっとハイフンに.すると.

f:id:ST_ha1cyon:20170609235137p:plain

f:id:ST_ha1cyon:20170609235204p:plain

おお,きれい.すばらしい.色付きレポートは単純に見やすくて素晴らしい.あとはソースコードのサイズとか必要最小限の設定すればjupyterでコードを書いてそのままレポートにできる.最高(n回目).