google colaboratoryを学校のレポートで使ってみた話
もともとjupyter notebookでレポートを書くのを試してみたりしていたのだが、エディタソフト用がローカルネットワーク内でしか使えないことに不満を覚えていたときに出会ったのがgoogle colaboratory。
googleのサーバで動いているのでログインするだけで学校のpcからでもスマホからでも常に最新版を見ることができる。
データサイエンティストの層から人気があったのだが、数式、グラフの挿入もきれいだし、markdownを書き込むこともできるのでいろいろなことに使用することができそうだと思った。
重いレポートにいきなり使用して実用に耐えなかったらば徹夜確定しかねないので時間がったときに軽いレポートで実際に使えるか一通り試してみたのが本記事。結果としてはmarkdownでは限界があったのでhtmlを書き込むという裏技っぽいテクニックが必要だったのでそれについて。
めんどくさいので今後colabって略すことがあると思う
実際にやってみたものを公開用に簡略化したもののリンクが以下
レポートのコピー - Google ドライブ
googleにログインすると上部にアプリケーションで開くと表示されるはず
今までに書いたノートまとめ
GitHub - sakakendo0321/notebook
google colaboratoryを使用する理由
word特有の型崩れがない
今まで使っていたword卒業したい理由として、画像を挿入したり、改行コードを入れたりしたときに意図しない場所に入ってしまい収拾がつかないことがあるのがある。またgoogle driveにアップロードしてgoogle documentで閲覧するとwordで編集した状態から崩れていることがある。 その点colabではすべてがコードして管理されており、ブラックボックスになっていないので突然意味不明な沼にはまる心配がないのは大きいと思っている
googleが運用してる
もともとのjupyter notebookでは自分でサーバを建てないといけなかったがcolabではインターネット環境があればどこでも編集できるようになった。またgoogleが運用したことによって、ほかのサービスとの連結が強固になった。例えば共有リンクを渡すことでほかのpcから同時に閲覧、編集することができる。またgoogle drive,githubでの管理もワンクリックでできるのでスマホからの閲覧、編集履歴の閲覧もできる。
tex,python,markdown,htmlで書ける
多数の言語をサポートしているので、綺麗な図表、数式の挿入が簡単になっている。
今までwordでグラフを挿入する場合はexcelを勉強しなければいけなかったが、普段使っている言語を使用することで学習コストを削減できる。また初心者にもわかりやすい言語といわれており、インストールの必要もないのでpython学習用の環境にしてもよいと思う。またtexは書きこむとすぐに更新されるのでかっこの数を間違えた時のリカバリも早く済む。コマンドのtexではpdfに変換して、ビューアを起動してと手間が多いはず。何より環境構築がめんどくさかった。
先頭に!を付けるとbashコマンドの実行ができるので一応cの実行もできる。(ちょっと無理があると思うけど)
pipとかpythonのライブラリインストールのために使うらしい。
!echo '#include"main.c"'>main.c;cat main.c;gcc main.c -o a.out;./a.out
こんな感じのコマンドを投げると、ちゃんと怒ってくれる。
実際に使ってみてわかったこと、苦労したこと
文字列を右寄せしたいときなどにmarkdownのシフト演算子では微調整ができなかった。また右寄せとアンダーバーを同時にすることができなかった。
markdownでは内部的にhtmlに変換しているので(はず、実際に文献を読んだわけではないが、markdown内でbrやhを入れてもちゃんと仕事してくれているのできっとそういうことなのだと思う)
右寄せは <div class="center">
アンダーバーは<u>
を使うことで解決した。これによりmarkdownの入れ子問題を解決した。
印刷する際にheader,footerのリンク、ページ数、日付等が意図しないところに出る。
pdfに印刷するときに詳細設定のoptionからheader,footerのチェックを外すと表示が消える。
改ページの位置が意図していない
brをtext cellに大量に入れることで改行の位置を無理やり変えた。
matplotlibのラベルの設定とかで苦労した
特に裏技とかではなく、ただの知識不足。
以下のサイトが参考になった。
python-remrin.hatenadiary.jp
表示する軸の値 : plt.xticks([-2*np.pi,-1*np.pi,0,np.pi,6.28],['-2π','-π','0','π','2π'])
表示する範囲 : plt.xlim([-2*np.pi,2*np.pi])
ラベルの文字列 : plt.xlabel("t[s]")
出力する図のサイズ : plt.figure( figsize=(15,6))
とかってのを使った。大体これできれいになると思う。
pandasの表の表示ができない
jupyter notebookの記事ではできると書いてあったがcolabではできなかった。これに関しては外部エディタを使って画像を挿入するか、markdownかtextで何とかするしかないように思われる。
参考文献
markdownの書き方
日本語版最速!? jupyter notebookをgoogleが神改造 colaboratoryについてまとめてみた。 - Aidemy Tech Blog
texの記法
jupyter notebookとgoogle colaboratoryの関係について
日本語版最速!? jupyter notebookをgoogleが神改造 colaboratoryについてまとめてみた。 - Aidemy Tech Blog
Bash On Windows 標準設定
linux from scratchをやってみたい。
前書き linux上でどのようなソフトウェアがそれぞれ何をしていて、どのような関係で動いているのか知りたいのでlinux from scratchをやりたい。 shell,c compilerがどのように呼ばれているのか知りたい。 友達に書けと言われたので書いているけれど、lfs-bookに全部書かれているはずだかほとんど書くことがない….
参考資料
lfs-book (html,pdf)
http://www.linuxfromscratch.org/lfs/downloads/stable/LFS-BOOK-8.0-NOCHUNKS.html
http://www.linuxfromscratch.org/lfs/downloads/stable/LFS-BOOK-8.0.pdf
2017/06/14 大垂水峠・相模湖
学校が休みだったので大垂水峠を往復してきた。休憩がなかったからか、相模湖方面に向かうほうがはるかに大変だった印象。 帰りは一定のリズムで登ったので息も切れることなく登れた。 1.5Lの炭酸水をもってそのうち1Lを飲み切った。相模湖駅にて給水して合計2L飲んだ。 行きも帰りも狭間のセブンイレブンで休憩した。ただで休憩するのは申し訳なかったので帰りは100円のアイスコーヒーMを飲んだ。 持久力が欲しいから遅筋繊維に筋トレを絞っていきたいんだが、目安の測り方がわからない。
8:45 自宅(発)
85min
10:10 狭間(着)
10:20 狭間(発)
55min
11:15 相模湖駅(着)
12:30 相模湖駅(発)
60 min
13:30 狭間(着)
14:00 狭間(発)
100 min
15:40 自宅(着)
https://latlonglab.yahoo.co.jp/route/watch?id=23468d0c0b6012159fe37b1a2d7afb30
yahooのこのサイトが標高も出してくれるからいいかな
atom開発環境構築
Windows
IDE本体
Atom
Release 1.17.2 · atom/atom · GitHub
プラグインというシステムがあり自分好みにカスタマイズするのが簡単
C言語
c compiler
MinGW - Minimalist GNU for Windows - Browse /Installer at SourceForge.net
‘mingw-get-setup.exe'をダウンロード
User Interface等のチェックボックスはそのままで大丈夫
'mingw32-base’,‘mingw32-gcc-g++'を'Mark for installation'して有効にして,'Apply'を押す
インストール場所がデフォルトのままならば'C:¥MinGW¥bin'をパスに通して終わり。
cmdにて'gcc –version'をすれば正常にインストールできたか確かめることができる。
vccではなくgccをつかう。vccは単体でダウンロードできないから多分visual stduio系列のIDEを入れていろいろ無駄なことすることになると思う。
C言語入門 - MinGW - gcc のインストール - Windows環境 - Webkaru
C言語入門 - MinGW - gcc の環境設定(パスを通す) - Windows環境 - Webkaru
c compiler plugin
python
python interpretor
https://www.python.org/ftp/python/3.6.1/python-3.6.1.exe
pythonのインタプリタ本体。個人的にpython3を推奨している。
python plugin
このプラグインを使えば[Alt + r]でpython インタプリタを呼び出せる。
java
AtomでJavaの開発環境を整える - Qiita ctrl+alt+shift+bをして [run] を押さないといけないのでめんどくさい。
こっちのほうが楽そう 【初心者向け】すぐできるIntelliJ IDEAの最初の使い方 - Qiita
vim plugin
なるべく覚えないviエディタの使い方 - ザリガニが見ていた...。
下手なctrl,shift,alt,矢印を酷使したショートカットを使わないのでホームポジションを崩さず高速にコーディングができる。
mac
gcc-make-run 開発環境がないからわからないけど、たぶんこれで行ける。
2017/06/04 相模湖・高尾
組み込みマイスターのためのlinux チュートリアル
まだ書き終わっていない。テスト期間終わったらぼちぼち続きかく。
開発環境構築
OS
今のところRaspibian
Python
python3
uinput
uinput moduleが必要
以下のpythonのライブラリからマウス,キーボードの位置を操作できる
https://github.com/tuomasjjrasanen/python-uinput
suinput.hをincludeしてuinput_fdにwriteしているらしい libevdev: Main Page
https://01.org/linuxgraphics/gfx-docs/drm/input/uinput.html
leap motion SDK
linux用 Desktop Setup — Leap Motion
vim
vim plugin
Shell
おすすめはfish shell
その他
c言語開発環境
gcc make
‘’‘ git clone https://github.com/tuomasjjrasanen/python-uinput
uinput
modprobe uinput
package
‘’'