ぽんこつ自由研究

備忘録的な

MoodleBoxをRaspberryPiに入れた話(備忘録)

  • 0.はじめの動機
  • 1.作り方
  • 2.繋ぎ方
  • 3.とにかくSSH
  • 4.インターネットに繋ぎたい
  • 5.トラブル MoodleBox Wifiが居なくなる
    •  だめだったやり方
  • 6.iPhoneテザリングを有線接続してインターネット側につなぐ
  • 7.最後に

*間違いを発見したので、修正しました。

Moodleはウェブサーバは要件ではなく、NginxはMoodleboxで使用されているウェブサーバです。

 

0.はじめの動機

Learning Management Systemで研修コースを作るのを試してみたい。

でも、ある程度クローズドなネットワークで試してからにしたい。

と考えて、CanvasMoodleを比較していいたところ、MoodleはRaspberryPi用のRasbianベースのディストリビューション(?)があるというので、なにをするものだかよくわからないけれど、体当たり的に試してみることにしました。

ちなみにCanvasはDockerが動かないとだめで、開発言語がRuby、データベースがPostgreSQLです。

 

公式サイトはこちら。

moodlebox.net

ざっくり説明すると、MoodlePHPMySQLで構築されているLMSです。MoodleboxはWeb サーバにNginxを使っています。

MoodleboxはAPになって、無線LANを提供してくれる機能がついているラズパイ用のMoodleプラットフォームです。OSは、Rasbianをベースにしているので、ほとんどDebianです。

最終的な設定はこのネットワーク図がわかりやすいです。

moodlebox.net

 

手元には、買ったきり元気がなくて電源も入れてないRaspberryPi3B+と、先週ちょっとRaspbianを入れてssh使えるぐらいまでにしたRaspberryPi4(8Gメモリ)がありました。

マイクロSDカードはScanDiskの128GBとSAMSUNGの128GBを使いました。(どっちでも特に変わりないです。)

 

1.作り方

まず、下記から必要なイメージファイルをダウンロードします。

MoodleBox | Download the disk image

 

「俺はCUIで戦う、ddするんじゃ」というこだわりがなければ、ラズパイ側には公式でRaspbery Pi ImagerというSDカードにイメージをそのまま書き込んでくれるソフトウエアがあるので、こちらをダウンロードして使うのをおすすめします。

Raspberry Pi OS – Raspberry Pi

 

まず、マイクロSDカードをPCから書き込めるように挿入します。

「Choose OS」で「Use Custom」を選択して、先程ダウンロードしたMoodleBoxを選択しておきます。

「SD Card」は挿入したSDカードを選択します。

ここで、すでに書き込み先が「SD Card」と限定されているので、超うっかりしている私のようなものでも安心なのが、本当に素晴らしいところです。

 

書き込みが終わったら、ラズパイに刺します。

終了。

 

2.繋ぎ方

MoodleBox | How can I connect to the MoodleBox via Wi-Fi

SDカード挿入して、電源入れたら、Moodleとして最初から使うことができます。

ここで、MoodleBox | MoodleBox network topologyに戻って確認してみましょう。

電源を入れた時点で、このMoodleBoxというWifiネットワークがすでに構築され

wlan0はstaticで10.0.0.1に設定されています。

そこで、まず、PCのWifiをこのネットワークに無線接続します。

SSID:MoodleBox

初期パスワード:moodlebox

 

それから、ブラウザを開き、”moodlebox.home"あるいは”10.0.0.1"と入力します。

すると、ホーム画面が開きます。

初期の管理者ログインのユーザ名とパスワードは以下です。

username: moodlebox

Password: Moodlebox4$

 

3.とにかくSSH

MoodleBoxは最初からSSHで繋がります。そのため、PCがあれば、(トラブルがなければ)ディスプレイなしで使いはじめることができます。

ssh moodlebox@10.0.0.1

パスワードは

Password: Moodlebox4$

で、パスワードは変更しておくのが良いと思いますが、面倒なので、私はこの時点で公開鍵認証に変更しています。

sshの公開鍵認証については、記事を書いている方がたくさんいらっしゃるので、

"SSH 公開鍵認証 Raspberry pi"とかで検索してください。

設定したら、

/etc/ssh/sshd_configの設定を、

PasswordAuthentication no #パスワード認証しない

PermitRootLogin no              #ルートログイン許可しない

PubkeyAuthentication yes    #公開鍵認証を使用する

にしました。

sudo service sshd restart

もう一個、端末(ターミナル)を開いて、パスワードを聞かれずにsshログインできれば、OKです。ログイン出来なかった場合に設定し直すことができるように、端末は複数開いておきます。

 

4.インターネットに繋ぎたい

イーサケーブルがお手元にあり、DHCPルーターが近くにあったりして、すぐにNetwork Topology図にあるようにインターネット側に有線接続できる方はそのようにするのが簡単です。

インターネットに繋いでやりたいことは、全体的なアップグレードと日本語パックのインストールです。

 

5.トラブル MoodleBox Wifiが居なくなる

インターネット接続は後述するとして、この件はインターネットに繋がっている前提で記載します。apt-get upgradeしたら起きたものです。

以下の手順で、起きなくなると思われます。

 /etc/dnsmasq.confを開いて bind-interfaces の行を#でコメントアウト

sudo apt-get update

sudo apt-get upgrade

 

続きを読む

論文リンク備忘録 : テキスト分類系

ざっくり時系列。

 

[1810.04805] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

 

参考にしたいブログ。

techlife.cookpad.com

 

[1812.01207] Practical Text Classification With Large Pre-Trained Language Models

 

[1801.06146] Universal Language Model Fine-tuning for Text Classification

 

[1607.04606] Enriching Word Vectors with Subword Information

 

[1606.01781] Very Deep Convolutional Networks for Text Classification

 

Facebook fastTextの論文

[1607.01759] Bag of Tricks for Efficient Text Classification

 

[1408.5882] Convolutional Neural Networks for Sentence Classification

 

 

 

Chainerリファレンスその後

見出しのページ(全部で28p)は翻訳作業完了しました。

これから、各オブジェクトの説明を訳していきます。

その前にCSS設定するつもりです。

詳細な進捗は、ドキュメントのサイトに記録しています。

 

正直、

翻訳需要があるかわからないし

機械学習やってる1人ってみんな技術ドキュメントの英語ぐらい読めるんじゃ…みたいな気持ちと戦いながら作業しています。

 

 

自分の勉強にはなっているということと

媒体的存在としては、こういうドキュメント作成とかの方が正しい能力使用法かなという気もしなくもないので

最後まで続けてみたいです。

 

作業中は、写経気分です。

 

https://chainerfan.jimdo.com

 

 

 

 

 

Chainerドキュメント日本語化について

ブログでリファレンス翻訳ということに色々問題を感じたので、別途ウェブサイト作成しました。

まだ、こちらで書いた記事の移行作業中です。

 

https://chainerfan.jimdo.com/chainer-reference/

 

これ以上の翻訳コンテンツについては、上記サイトのみで更新し、こちらでは文字どおりブログを書いていくつもりです。

 

 

Chainer v3.0.0リファレンスマニュアル(日本語) /Utilities

この記事については、下記サイトにまとまっています。

また、他の項目についても追記中です。

chainerfan.jimdo.com

 

勉強のために訳している記事です。翻訳や技術的な理解について、間違いを発見した場合は、コメントなどでお知らせいただければ私の理解も進み、非常にありがたいです。

 

*2017/10/09現在で、文章中にリンクがある場合、目次以外のリンク先は、全てオリジナルの英語サイトです。各オブジェクトの詳細は未着手です。

 

Chainer Reference Manual(公式ドキュメント)

http://docs.chainer.org/en/stable/reference/index.html

 

Chainer v3.0.0リファレンスマニュアル(日本語非公式)

Core Functionalities

 

Utilities

CUDA utilities

CuPyでのデバイス、コンテクスト、メモリマネージメント。

ChainerはCuPyをGPU計算のスピードを利用するために(非常に薄いラッパーとともに)使用している。 以下のモジュールとクラスは、CuPyで定義され、Chainerへは便宜上、chainer.cudaモジュールでインポートされる。(Chainerのソースコードを読む際は、下記テーブル参照)

imported name original name
chainer.cuda.cupy cupy
chainer.cuda.ndarray cupy.ndarray
chainer.cuda.cupy.cuda cupy.cuda
chainer.cuda.Device cupy.cuda.Device
chainer.cuda.Event cupy.cuda.Event
chainer.cuda.Stream cupy.cuda.Stream

ChainerはCuPyのデフォルトのアロケータをメモリ確保プールの実装によって置き換えています。 このため、forward/backward演算時の複数のデバイスメモリや、連続する要素ごとの操作のための一時的な配列、を再利用することが可能になっています。

Devices 

chainer.cuda.get_device バイスオブジェクト、数値ID、配列オブジェクトからデバイスを取得する関数
chainer.cuda.get_device_from_id 数値IDによりデバイスを取得する関数
chainer.cuda.get_device_from_array CuPy array.CuPy配列、もしくはCuPy配列のリストからデバイスを取得する関数

 

CuPy array allocation and copy

chainer.cuda.copy Copies a cupy.ndarray オブジェクトをデフォルトストリームを使用してコピーする関数
chainer.cuda.to_cpu ホストCPUへ与えられtGPU配列をコピーする関数
chainer.cuda.to_gpu 与えられたCPU配列を特定のデバイスへコピーする関数

 

Kernel definition utilities

chainer.cuda.memoize 各属性とデバイスの結果を記憶するFunctionを作成する。
chainer.cuda.clear_memo "memorize"によってデコレートされた全ての関数の"memorize"の結果をクリアする。
chainer.cuda.elementwise elementwiseのkernel functionを作成する。
chainer.cuda.reduce global reduction kernel functionを作成する。

 

CPU/GPU generic code support

chainer.cuda.get_array_module または cupyから適切なモジュールを取得する。

 

cuDNN support

chainer.cuda.set_max_workspace_size cuDNNのワークスペースサイズを設定する
chainer.cuda.get_max_workspace_size cuDNNのワークスペースサイズを取得する

 


Common algorithms

chainer.utils.WalkerAlias

chainer.utils.WalkerAlias Walker’s alias method(Walkerのエイリアス法/重み付きランダム抽出)の実装.

 


Reporter

Reporter

chainer.Reporter 収集された値を観察するためのオブジェクト
chainer.get_current_reporter カレントReporterを返す
chainer.report カレントReporerで値をreportする
chainer.report_scope カレントReporterのreportスコープを返す

Summary and DictSummary

chainer.Summary オンライン数値要約のためのオブジェクト.
chainer.DictSummary オンラインDictionary要約のためのオブジェクト

 


Experimental feature annotation

chainer.utils.experimental

cchainer.utils.experimental Experimental featureを使用する宣言

映画「ダンケルク」聖地をGoogle Mapで旅した

映画「ダンケルク」。

普通の劇場で1ケルク、

「ああ、これはIMAXで観なければいけないやつ」と悟り、IMAXシアターで2ケルク、

「もう一回観たい。いっそ成田」で成田HUMAXで3ケルクしたあと

Google Map(ストリートビュー)でダンケルクのロケ地を旅して参りました。

http://www.monkbarmodelshop.co.uk/image/monkbar/cache/data/products/r3302-600x600.jpg

Dunkirk:砂浜

https://t.co/4GOlrOe9xN

 

土嚢積んであったとこ。

https://goo.gl/maps/4ggQKvDqhwx

 

Weymouth:Mr.Dawsonの出発する港。必見。

https://t.co/nYdUh9UHVg

 

Dover

https://t.co/Ihoaua5K8S

 

現在のウォーキング駅(Woking) *ここは面影もない

https://t.co/UCDcpcTteq

 

Swanage駅:最後に到着する駅です。かわいい!

https://t.co/MmssQj8JQA

 

ダイナモ作戦博物館

https://t.co/SFgv8DU1Ri

 

 

尊い

www.youtube.com