読者です 読者をやめる 読者になる 読者になる

Mathematica Programming on RaspberryPi Zero

RaspberryPi Zeroが出た。Mathematicaを動かす。勉強会も開こう。

Mathematicaでプログラムするとはどういうことか

プログラミング言語があるからプログラムするのではない。プログラミングとは、ある意図をもって、何かをプログラム言語を通じて表現することなのであって、Mathematicaはそれを最大限にサポートするのだ。

 

www.slideshare.net


docs.google.com

プログラミングとMathematica from Hirokazu Kobayashi

www.slideshare.net

Mathematicaは何故使われないのだろうか

考えてみた。

 

www.slideshare.net

Mathematica のプログラミングとは

Mathematicaは誤解されているのではないかと思う。

 

www.slideshare.net

RaspberryPi Zero をセットアップ

Headless Raspberrypi Zero configure

 

 

Linux raspberrypi 4.4.34を対象に、Macを用いて*1、Headless configureを行なう。

 

 

 

1. 準備するもの

1.1 Raspberrypi Zero

1.2 micro-SD 8GB

1.3 usbケーブル

 

2. Rasibianのイメージファイルのダウンロードとインストール

2.1 “http://wakaba.c3.cx/s/apps/unarchiver.html”から、”Raspbian Jessie with Pixel”をダウンロード

2.2 “The Unarchiver”(別個にダウンロードする)でunzipして、imgファイルをデスクトップに置く

 

3. imgファイルをSDに書き込む

3.1 SDカードリーダーをMacにセット

3.2 ターミナルをオープンする

3.3 SDを探す(SDはtargetdiskという名前であるとする)->アンマウントする->imgをコピーする->途中経過はctrl-tでモニタできる->40分程度で終了する(>はプロンプトを示す)

mac$>diskutil list

mac$>diskutil unmountDisk /dev/targetdisk

mac$>sudo dd bs=1m if=/Users/“your user id”/Desktopi/mage.img of=/dev/targetdisk

 

4. bootファイルを編集する

4.1 MacのターミナルからSD(bootというディスク名である)を開き、nanoエディタで /config.txt を開きファイルの最後に”dtoverlay=dwc2”という行を追加する

mac$>cd  /Volumes/boot

mac$>sudo nano ./config.txt

4.2 同じくnanoエディタで /cmdline.txt を開き、modules-load=dwc2,g_etherの1文をrootwaitのあとに追記する。改行せずスペース区切りで続けて記述する

mac$>sudo nano /cmdline.txt

4.3 imgファイルの/ディレクトリにsshを起動するためのダミーファイルを作る

mac$>touch ssh

4.4 SDを取り外す

mac$>diskutil unmountDisk /dev/targetdisk

 

6. RaspberrypiとMacを繋ぐ

6.1 SDをraspberrypi-Zeroにセットし、USBケーブルでMacと繋ぐ

6.2 LEDの点滅が開始された後、点灯された状態になるまで待つ

 

7. Macのセットアップ

7.1 RealVNCをダウンロードしインストールしておく

7.2 システム環境設定->ネットワーク->WiFI -> 詳細から、Macにraspberrypiの持つネットワークを結びつける

  コンピュータとコンピュータネットワークを作成

 

8. SSHでraspberrypiを繋げてセットアップする

8.1 sshでraspberryにログインする

mac$>ssh pi@raspberrypi.local

pi$>password : raspberry

8.2 raspberrypiをセットアップする->raspi-configを起動

pi$>sudo raspi-config

8.3 expand_rootfsでルートサイズを拡大

8.4 vnc-enableによりvnc serverを起動可とする

8.5 raspberrypiが外部ネットワークに繋がっていることを確認する

pi$>ping www.google.com

 

9. Mac上のVNCviewerからraspberrypiの仮想画面を開く

9.1 sshからvncを起動しraspberrypiのipとport番号(192.168.2.47:1等)を得る

pi$>vncserver

9.2 Mac上のVNCviewerを起動し、raspberrypiのipとport番号を与えた後、usernameとpasswordを入力して、VNCウィンドウを開く

Username: pi

Password: raspberry

 

10. SSHなしにVNCviewerからraspberrypiの仮想画面を開く

10.1 /boot/config.txt をeditし、以下をuncommentする

#framebuffer_width=1024

#framebuffer_width=768

10.2 Mac上のVNCviewerを起動し、raspberrypo.localと名前による接続を行なった後に、usernameとpasswordを入力して、VNCウィンドウを開く

 

11. 日本語環境を設定する

11.1 ロケールタイムゾーンを設定する

11.2 日本語入力環境を設定する

pi$>sudo apt install fcitx-mozc fcitx-anthy

 

*1 Windowsを用いる場合には、

http://www.circuitbasics.com/video-raspberry-pi-zero-usbethernet-gadget-tutorial/

http://qiita.com/mt08/items/ce5e3911d74d7fad4563

などを参照すること。

 

*2 ssh接続しようとして、 WARNING: POSSIBLE DNS SPOOFING DETECTED!

が表示された場合には、以下でssh接続する。

>sudo ssh -o 'StrictHostKeyChecking no' pi@raspberrypi.local

その後、raspberrypiのフィンガープリントを削除するために、 mac上のファイルをeditする。実体は~/.ssh/known_hostsファイルである。

>host=“raspberry”

>ssh-keygen -R $host

参照:http://qiita.com/grgrjnjn/items/8ca33b64ea0406e12938

Parallel OOP

MathematicaOOPは、ParallelTable等の関数と馴染みがよいことは分かっていたが、改めて、Mathematica Communityに投稿してみた。燃料投下のつもりなんだが、なかなか燃え上がらないな。

community.wolfram.com

Wolfram community にOOPの話を投稿

国内のMathematicaに係るネット上の情報交換の場が殆ど機能していないようなので、Wolfram community にOOPの話を投稿した。community.wolfram.com

 

OOP for Mathematica をSlideShareに

アップしてみた。

www.slideshare.net

というより、国内ではMathematicaでプログラミングする人の絶対数がかなり限られているようなので、国内に限らず、あちこちに書き散らさないと、殆ど認知されないことが分かって来たから。