見習い魔法使いの日常

果たして魔法が使える日は訪れるのか!?

線形代数の勉強してます

本を読んだら感想をブログに書こうと思ってはや、4ヶ月。
これまでたった一冊の本も完読することができてませんでした。

平行して同時に読み進めているのはいくつかありますが...。
教授に「参考書に1週間もかけるな!!」って言われたのを思い出します。

早速本題へ。

今日はとある事情により図書館で時間を潰そうと立ち寄ったところ、「マンガでわかる線形代数」という本に目が止まりました。
中を見ると登場人物の女の子がたいそう可愛いではないか。
それに、中も絵(マンガ)がメインで、線形代数の全体像を掴むのに適してるかも。

ということで全部読みました。

全体像を掴むことが目的だったので、本の全てを理解するほど深くは読み込まず、2時間かからないくらいで読めてしまいました。
うむ、満足。

別の教材を使って線形代数を勉強していますが、字・数式ばかりでなんちゃって理系の僕には辛かったんですよ。
マンガ本は敬遠しちゃう傾向があったのですが、副教材としては素晴らしいかもしれないですね。

とりあえず、完読一冊目!!

線形代数をやるに至った経緯とかは、本命の別教材を終えた時にでも書こう。

図書館に来て、適当な本を読むのも案外楽しいかも。

www.amazon.co.jp

YAPC::Kansai2017に参加!!

 2017年3月4日のYAPC::Kansaiに参加してきました。このイベントが私にとって初YAPCになります。普段刺激のない生活を送っているため、こういったイベントで様々な方のトークやLTで得られた刺激は自分の殻を破る大きなチャンスだったと感じています。今回のブログでは新しく気がついたことをテーマに3つの項目に分けて書きました。

1.パフォーマンスについて

 私の拝聴したトークでは、Webアプリのパフォーマンス向上という内容を含んだものが多かったように思います。ミドルウェアの極力排除や、キャッシュの導入の検討などこれら全てが新たな知見となりました。これらは、学生という身分で好き勝手に書いている私にとって、今までこれらをかけらも検討したことがないことに気がつきました。はじめは考えていたような気もしないでもないですが、最終的に動けばオーケー状態です。別のトークでホワイトハッカーの話がありましたが、パフォーマンスを極限まで向上させてこそ、社会で役立つエンジニアだと感じています。私もスクリプトが動いたところで、一息いれパフォーマンスに関して検討する習慣を取り入れていきます。最後に、しかしお金をかければパフォーマンスは上げられるという話を聞いて、学生にはまだ早い?大人の事情もあるのだと感じました。

2.バージョンについて

 次に普段全く意識してないと感じたことがバージョンです。Perlのバージョンに関してのトークを聞いてそう思いました。あるバージョンから使えなくなるとか、新しい機能が追加されるなど正直全く気にしたことがありません。単に、最新を入れる不具合があったら落とすというのが私です。OSの標準Perlのバージョンが異なるなどありましたが、それによって各OSのバージョンにあったスクリプトを書かないといけないとすると確かに大変。お恥ずかしい話ですが、新たなバージョンがリリースされたら、変更点も意識するよう頭の片隅に留めておきます。

3.Perlについて

 最後はPerlについて、YAPCPerlが大元のイベントです。関西にこれだけの人が集まる気かっけとなったPerlの魅力というものは凄まじいものだと参加して、改めて思い知りました。Perlに関して笑いが起こるたびに私も楽しくなりましたね。一番感動したのは、Perlの良いところを理解してPerlを駆使している人たち。多くのプログラミング言語の特徴を理解し要所要所で使い分けて運用している人はどの言語もある程度かけるそうです。普段は色々書いていてもやっぱりPerlが好きなんですね。

まとめ

 うーん、読み返すと技術的な気づきはしょぼい気もしますが...精神的には数多くの刺激を受けることができて大収穫です。このイベントに来なければきっと考えなかったことや見落としていたことがたくさんあります。また、学生が社会人の中に混じるのもいい経験になりました。全体を通じてひしひしと感じたは、必死に食らいついていくこと。新しい技術がどんどん出てきて、皆さんそれらの知識に幅広く精通していました。多くの人が分かっている中で分かっていないのは完全な努力不足。学生生活も残り1年になってしまった。残りの時間、悔いのないよう精進し続けます。

 最後になりましたが、スポンサー企業の皆様、個人スポーサーの方々、運営スタップ及び参加者の皆様ありがとうございました。

Goを始めてちょうど一ヶ月。go doc は素晴らしいぞ!!

Goを勉強し始めてちょうど1ヶ月となりました。
といっても、まだ使っているわけではないため初歩的なことしか書けません...。

今日はGoを勉強していく中で便利と思ったことを書こうと思います。

はじめに、Goの学習状況について。
利用した本は以下のものです。

https://www.amazon.co.jp/プログラミング言語Go-ADDISON-WESLEY-PROFESSIONAL-COMPUTING-Donovan/dp/4621300253/ref=sr_1_4?ie=UTF8&qid=1480901701&sr=8-4&keywords=golang

本を全部読んだわけではないのですが、Goの初歩的な文法は抑えられていると思います。この後、インターフェースをやり、噂のゴルーチンとチャネルをやる予定です。


では、メインのgo docについて。
ドキュメント読む時は、Goの公式サイトにアクセスしてドキュメントを読んでいました。

ある日公式サイトが落ちてドキュメントが読めないという状況で、友人から紹介された方法に感動しました。

% godoc -http=:8080

これで、ローカル環境に指定したポートでサーバがたち、htmlでドキュメントを読めます。

始めての体験に思わず感動。
これで、ネットが無くてもプログラミングできるじゃないか!!

この感動を誰かに伝えたいという願望にかられ、別の友人に伝えたところ...。
「わざわざ、htmlで見る必要あるの?godoc で観れるでしょ 」
との言葉をいただきました。

確かに( 笑 )

思えば、perldocもそうやって使ってました。

ここでふと思ったのが、pythonではこういう機能を使ったことがないということ。

調べてみると、下の記事でわかりやすく説明されてました。
http://symfoware.blog68.fc2.com/blog-entry-884.html

まとめると、大抵のプログラミング言語にはドキュメントを簡単に読める環境が出来上がっているということ。
そして、ドキュメントを読みましょうということですね。

いつの間にか、Goと関係ない方向に行ってしまいました。

次は初心者がゴルーチンとチャネルを触ってみたって記事を書きたいと思います。
また、年内にghqの読み会をやりますので、そのことについても書けたらいいかな。

GithubのSSH Key の設定

今まで、作成したプログラム置き場としてGithubを使ってきましたが、ごちゃごちゃしてめんどくさかったので自分なりに綺麗にしてみました。

そのメモです。結構はしょってます。

SSH Key の設定

$ ssh-keygen -t rsa -C "email@address"                         
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/user_directroy/.ssh/id_rsa): github
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 


これでgithubgithub.pubファイルができるので、これらを~/.sshに移動させます。

$ mv ./github* ~/.ssh/

次はGithubSSH Keyを登録します。
ユーザ情報からSettings -> SSH and GPG keys でいけます。

New SSH Key で 適当なtitleを設定し、SSH Key を貼り付けます。
貼り付ける内容は以下の出力をコピペすればいいでしょう。

$ cat ~/.ssh/github.pub

Github上での設定が完了しましたら、あと少し!!

$ ssh -T git@github.com -i ~/.ssh/github

これで、成功すればSSH Keyの登録完了です。

(おまけ)

最近友人からghqというツールを紹介してもらいました。
クローンしたリポジトリを ~/.ghqで管理してくれというありがたいものです。
私にとっては非常に便利ですので、おまけで。

詳しい情報は以下を参考に。
Goで書かれているそうで、落ち着いたら一度読んでみたいですね。

github.com

では、brewを使って入れていきます。

$ brew install ghq

無事完了しましたら、早速使っていきます。

$ ghq get repository-URL
$ ghq list

私はかなりずぼらなので、どこにクローンしてきたのか忘れて探したりすることもあったのですが、これでもその労力はなくなったと思っても良いでしょう。

といっても、Githubで開発経験はありませんし、しばらくは作成したコード置き場になりますが...

ではでは

plenv入れました!!

しばらくの間中途半端にしていたPerlの学習を本格的に始めることになりました。

数日前、Perl製のAmon2というWebフレームワークを使ったのですが、ソースコードが全く読めなくてびっくり!!

Perlはメインではなくサブとしてのんびり学習してきましたが、現状私のPerl力の低さが判明しましたので、近日中は本腰入れてやろうと思ってます。

ということで、システムのPerlではなくplenvをいれて使おうとしたのですが、うまく切り替わらなかったりしたので、メモを残しておきます。

至らない箇所などありましたら加筆、修正します。


まずは必要なものをインストールして、パスを通す。

brew update
brew install plenv
brew install perl-build
echo 'if which plenv > /dev/null; then eval "$(plenv init - zsh)"; fi' >> ~/.zshrc
echo 'export PATH="$HOME/.plenv/bin:$PATH' >> ~/.zshrc

Perlのバージョンを指定してインストール。

plenv install --list
plenv install 5.18.0

ちょっと時間がかかりますが、完了後バージョンを切り替えましょう。

plenv rehash
plenv versions
plenv global 5.18.0
perl -v

この時にきちんとバージョンが切り替わっていることが確認できれば安心。
私はここでうまく切り替わらなくて時間がかかった。

できればcpanmも入れてしまいましょう。

plenv install-cpanm
cpanm --self-upgrade # cpanmのアップグレード

これで、とりあえず環境は整ったかな...という感じ。

さて、やるぞ!!

Happy Hacking Keyboard Professional BT 届きました!!

贅沢してます...。

数週間悩んだ果てに、HHKBを購入しました!!

これまではデフォルトのキーボードでやってきましたが、ここで交代です。キーボードを打つ時の、全身の血が沸騰するようなハイテンション!!たまんねー。これといって、現状のキーボードに不満などなかったので、完全に贅沢です。

ただ、キーボードが欲しいなと思うきっかけはありまして、近くのお店を回りキーボードを触っては投げ触っては投げ、数時間にらめっこして自分の気に入ったものを見つけました。

サンプル用のキーボードを展示してるお店は少なくてちょっぴり苦労しましたね。

その甲斐あってか、ただの道具でしかなかったキーボードさんに絆意識のようなものが芽生え、相棒を使っている時はテンション上がりまくりです。

このキーボードをフルに活かせるように、Vimの勉強をしたりしています(いつの間にかver.8になってた!!)。

こいつと共に今後も精進していきたいです。



余談

新調したタイミングもあって、僕の今のタイピング能力を図ろうと思いe-typingさんで腕試しをやりました。

www.e-typing.ne.jp

何度かトライをしてprofessorの称号をいただきました。

地味ですがタイピングスキルの方も今以上に向上させていきたいと思います。

ではでは。

インターンシップに行ってきました

 時間が経つのは早く、ブロク名の変更から早2ヶ月が経とうとしております。大学によって多少日程は異なると思いますが、そろそろ夏休みが終わり後期学期がスタートした頃ではないでしょうか。さて、今回は夏休みにインターンシップにいってきたので、その感想であったりフィードバックなどを書いてみようと思います。

 どこに行ったのか、何をしたのかを具体的に記述することはできないため漠然とした内容になると思いますが、目的・目標・達成・今後・感想の流れで書きました。

 インターンに応募した目的は2つあります。

1つがインターンの内容や技術が私にとって興味があるものであったこと。
もう1つは就職して働くという感覚を知っておきたかったことです。

 参加するにあたり、これらの目的を少し派生させて、3つの目標を設定しました。

1.実習で用いたツールの理解を深める。
2.インターンシップを経て、残りの大学生活に活かせるものを持ち帰る。
3.実習中は求められる以上の成果を残せるよう取り組む。

これらを達成すべくインターンに取り組みました。


 次に、目標項目をどれだけ達成できたかを100点満点で点数をつけ振り返っていきます。

1.実習で用いたツールの理解を深める ... 75/100

1の項目に関しては75点くらいだと評価します。実習期間中毎日朝から夕方まで触るため嫌でもある程度は理解できます。しかし、それ以上はなかったという評価。
原因の1つは予習不足です。事前に業務内容について知らされていたのですが、予習段階では大雑把な概要だけしか掴めていなかったため、基本的な動作等を調べることに時間を費やしてしまいました。
ただ、実習の中で調べ実行・検証することで、ツールの特徴を掴むことはできたので概ね達成できたのではないかと思います。

2.インターンシップを経て、残りの大学生活に活かせるものを持ち帰る ... 90/100

インターン期間中は大きな発見から小さな気づきまで数多くの刺激を受けました。全部を書くわけにもいかないので、インターンで気づき持ち帰ってきたことを2つに絞って書きます。

 ・同期生のレベルが非常に高かった

 私の大学付近には他大学がなく、交流するにしてもいささか骨が折れるような環境にいます。いわば一種の閉鎖的な環境です。今回、他大学の人と交流して一番痛感したのがすばり能力の差。今回はインターンシップでしたが、これが就活であったなら売れ残っていたのは間違いなく私でしょう。
思っていた以上に参加者はレベルが高く、思っていた以上に私はヘボかったということです。発表の仕方であったり、質問の受け答えであったり、ざっくりというならばコミュニケーション能力と言われる能力に差がありました。
期間中私が感じた中で、一番ショックなことでした。ただ、これを就活の時になって気づくのでは遅すぎます。今この悔しさを感じることができたことは幸運なことであり、いざという時に手遅れで状態にならないよう今から補っていきます。

 ・大学生サイコー

 大学生はサイコーと言わせていただきます。私、魔法使いになるべくPC関連の知識を日々磨いております。それくらいPCが好きなのですが、朝から夕方までPCで作業を行い帰宅後PCを開く気になれるでしょうか?私は無理でした。
また、自分の時間というのも大学生と比べて非常に少なくなります。社会人になると今のような夏休みなんてものが一生来ないと考えると、大学生って本当すごい。一生でこれだけ時間があるのは大学生の時だけでしょう。ボケーとして終わらすのはあまりにもったいなさすぎます。
今までそういうことを考えたことがなかったので、これも良い発見でした。


3. 実習中は求められる以上の成果を残せるように取り組む ... 20/100

 言われたこと以上のことをやろうと意気込んでいたのも最初だけで、日をおうごとにスケジュールは遅れて行きました。前述した予習不足もあるのですが、完全に経験不足が遅らせてしまった原因だと思います。私の配属部署の関係で、普通はスケジュール通りになんていかないものだと言われました。しかし、遅れたことに対する対処がひたすらやること以外にとれなかったことがまたマイナス点です。代替案を提案したり、機能の取りやめなどの案を用意して相談しに行けば良かったと思います。臨機黄変に動くことができませんでした。今回のインターンでは目標とは逆で求められるレベルの仕事をこなせなかったというのが事実です。
ただ、最後まで挽回を諦めず取り組めたことは、今回一番頑張った部分だと思います。


インターンを振り返り今後に向けて、以下の点を意識して大学生活に戻ろうと思います

・一般教養、語彙力を鍛える(新聞、本を読む)
・私はこれをやっていますという趣味を見つける
・発表方法について学ぶ(他人の発表を分析)
・今まで以上に時間を有効に使う
・インプットで終わらず、アウトプットを行う(ブログの更新等)
インターンで身についた規則正しい生活を維持する


感想

小学生から中学生に上がった時、小学生のうちにもっと遊んでおけば良かったと考えたことはないでしょうか。
高校生から大学生に上がった時、あの時もっと勉強しておけば良かったと後悔したことはないでしょうか。
同様に大学生から次に進んだ時、もっとあの時間を大切にすれば良かったと思うのではないでしょうか。

その時々で大人たちは口酸っぱく言ったはずです。しかし、当時はピンと来ない。

今の気持ちを例えるなら、このような一種の後悔を感じるような気持ちです。
本来であれば後悔をしても時間を巻き戻してやり直すことはできません。

ですが、幸いにも私はまだ大学生です。

今この時間を大切にやりたいことや勉強したいことに挑戦し、卒業した時誇れるようになろうと思います。

インターンシップに参加できて本当に良かったです。