粗大メモ置き場

個人用,たまーに来訪者を意識する雑記メモ

Windows10からRaspberry Pi 3 にリモートデスクトップ接続

前回の続きです。
ossyaritoori.hatenablog.com

リモートデスクトップ接続

平たく言うとPCから他のPCの画面を操作するといったところでしょうか。
左下のメニューから「リモートデスクトップ接続」と検索することで以下のウィンドウを出現させましょう。

f:id:ossyaritoori:20170330211829p:plain

ここに前の記事で設定したIPアドレスを打ち込むことでリモート接続が可能です。

ラズパイ側の設定

リモートデスクトップ接続では基本的に操作される側で許可を出す必要があります。
どうも僕はこれを設定した覚えがないのでどこかの段階でパスしたか,ラズパイでは必要ないかのどちらかかと思われます。

とにかく,次に必要なのはリモート接続用のソフトのインストールです。

xrdpのインストール

Debian環境で用いられるxrdpというソフトをインストールします。

$ sudo apt-get install xrdp

はい,これで終了です。
記事を別にしなくても良い気がしてきた。

デフォルトではUSキーボードらしいので変更するには以下のサイト等を参照すると良いでしょう。
Raspberry Pi でリモートデスクトップ - Qiita

バグ報告

なんでか知りませんが,リモート接続中にWebカメラ制御UIのguvcviewを起動すると接続が落ちます。
なんでだろ?

これで,ラズベリーパイをディスプレイに繋がなくとも操作&確認することが出来るようになりました。
ゆくゆくはボス出現監視カメラとか作ってみたいですね。

Windows10からRaspberry Pi 3 にSSH接続

奨学金関連で記事を書いたので勢いづいてラズパイの記事も書くことにします。

今回はWindows10からラズパイに接続して遠隔操作する為のセットアップ等について書きます。

SSH接続によるターミナル操作

SSH接続とは遠隔でデバイスを操作する際の一手法です。
qiita.com
今回は特別なことはせず,ラズパイ側のIDとPassを使ってラズパイを制御することにします。

ラズパイ側の設定

raspberry pi 3 で raspbian jessieを使っている方は,
左上のメニューから
f:id:ossyaritoori:20170330195026p:plain
「設定」→「Raspberry Piの設定」と進んでいき,
f:id:ossyaritoori:20170330195219p:plain
このように「インターフェイス」の欄からSSHを有効にしてください。

この作業は終わった後再起動をすることを推奨します。

DHCPの設定と固定アドレスの割り振り

次にサーバから振られるIPアドレスを固定化します。

ネットワークインターフェイス の変更

以下の過去記事を前提にしていますので,ここを触ったことのある人はスルーして構いません。
Raspberry Pi をutroamにつなぐ (WPA2-EnterprizeのIDとpassを必要とするwifiネットワークにつなぐ) - 粗大メモ置き場


/etc/network/interfacesのファイルを編集します。
当然スーパーユーザーで行ってください。

$ sudo emacs /etc/network/interfaces

なお,emacsの代わりにgeditやviなどを用いても構いません。

参考文献3 にならって以下の様に変更を加えてください
iface eth0 inet manual
↓変更
iface eth0 inet dhcp

(以下は不要ですが念のため)
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
↓変更
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
追加
iface default inet dhcp

/etc/dhcpdc.confの書き換え

次にetcの下に存在するファイルを編集します。

$ sudo emacs /etc/dhcpdc.conf

このファイルの最後尾に次の4行を追加します。

interface eth0
static ip_address=X.X.X.X/24
static routers=X.X.X.1
static domain_name_servers=X.X.X.1

なお,X.X.X.Xに入るのはイーサネットIPアドレスで,

$ ifconfig eth0

等を打ってInetアドレスとある所を見てください。
詳しくは他のサイトを当たってください。

本章は以下の記事の手法に倣っています。
hattotech.hatenablog.com

Bash for Windowsから接続

WindowsからSSH接続を行うにはTeraTermなどのSSH接続用のソフトを使うか,Windows10から追加になったBash for Windowsという機能を用います。
コマンドプロンプトを開いて

$ bash

と打つことで起動可能です。初回設定時には結構な容量のダウンロードと再起動が必要になるので予め準備をしておくことをおすすめします。

bashの画面では通常のLinuxのターミナルと同様に操作が可能です。(なおたまにバグるのでCtrl+Cは乱発しない方が良さげ)

$ ssh X.X.X.X(先程設定したIPアドレス) -l pi

とすることでpiユーザとしてログインできます。
他のユーザ名を設定している場合は,

$ ssh (IPアドレス) -l (ユーザ名)

という風に入力します。
成功であれば,初回接続の確認とパスワードの入力を求められます。

プロセスを終了させたい場合は,

$ exit

で終了できます。


ここまでできれば,ラズベリーパイをディスプレイに繋がずとも他のPCからプログラムを実行させることが可能です。
次の記事では,リモートデスクトップ接続について書きます。

追記:無線ネットワークの固定化

無線ネットワークも同様に固定化できるかと思いきや,別のやり方が必要のようでした.
/etc/network/interface の一部を以下のような感じで編集するそうです.
事前にifconfigをうって現在取得しているアドレスを割り振るのが無難と思われます.
(他の人が使っていたらどうなるか知らないので)

allow-hotplug wlan0
iface wlan0 inet static # "manual"もしくは"dhcp"となっていれば"static"に変更
address 192.168.1.130 #2~254までの使いたい固定IPアドレスを書く(ここでは130とした)
netmask 255.255.255.0 #接続するネットワークの設定に合わせる。
gateway 192.168.1.1 #接続するネットワークの設定に合わせる。

wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf #ここは以前変えたところ

・参考サイト
http://ysdyt.github.io/blog/2015/06/28/raspi-wifi-static-ipaddress/

怠惰な学生がJASSOの第一種奨学金の取得のために準備するべきこと(気をつけるべきこと)

結論から言うと保証人が立たなかった関係で私は奨学金はやめました。

腹いせに,事務作業の苦手な学生を想定して注意点とかつらつら書いて置くことにします。
なお,学校によって必要書類が若干違うという噂も聞いているのでそこんところは臨機応変に。

Q:奨学金って私でも貰えるの?

A:一人暮らしの大学院生なら大体もらえます。

奨学金には本来所得制限があり,マジモンに困ってる人以外は受けられないのですが,
大学院生になると実家の所得状況に関わらず,一人暮らしの世帯の収入と支出で判断してもらうことが可能です。


従って,「実家はそこそこお金あるけど一人暮らしきついのでお金ください」という事が可能です。

奨学金の書類を受け取りに行こう

大学の事務に行って,奨学金の書類を受け取りましょう。話はそれからだ。
複数のキャンパスにまたがっている場合は中心的な1キャンパスでしか配ってないとか受け付けないとかザラです。
殺意が湧きますね。

後は,分厚い冊子をよく読んで必要書類を準備すればいいです(記事終了)。
このやる気を削ぐ書類を見るより身近な人に聞いたほうが良いです。


友達や頼れる先輩の居ない人のために
以下幾つかの注意点についてまとめてみました。

収入に関する証明書で親からハンコとサインをもらう

月々の親の仕送り額を親に書いてもらってハンコとサインを貰う必要があります。
この書類は大事な上,親元を離れて一人暮らししている君達には非常に面倒くさいと思うので最優先でやってもらいましょう。

なお,最低限名前とハンコだけ貰えば仕送り額は自分で書いても良いようです。
まぁうまく調整してください。

先生に推薦書をいただく

必要書類の中で早めにやったほうが良いものとして,推薦書があります。
この推薦書には先生のハンコとサインが必要なので締め切りギリギリにいきなり手に入る人は少ないでしょう。

早めに動くんだよ。(なお,うちの大学は事情を説明して待ってもらうことが可能。)

なお,推薦所見は基本的には自分で草案を書いて先生の負担を減らすのが普通です。
大学院生たるもの自分のアピールポイントくらい自分で用意できるようにしましょう。
奨学金申請のための推薦状/推薦文の例文

収入に関する証書はめんどくさいぞ!

もし貴方がバイトをしていたなら面倒な事が起きます。
貴方の前年度の収入と今年度の収入がどんなものになるのか,きちんと雇用主に証明して貰う必要があります。

それに加えて源泉徴収票もきちんと添えなければ行けません。捨てるなよ。
なくしたらバイトはしていなかったことにしとけ

通帳のコピーも要求される

収入の欄に貯金の取り崩しなどの項があり,それに当てはまる人は直近三ヶ月の通帳コピーも要求されます。
普段通帳に記帳しない諸君は銀行に行く必要があります。

また,通帳の1ページ目も要求されるので忘れずにコピーを。
ていうか通帳なんか複数持ってて当たり前だしこんなのみても何の意味もないぞ。

保証人を2人立てたか?

返済の仕方において,保証人を立てる方法と機関保証に頼る方法があります。
後者は他の機関に返済時の保証を頼む代わりに毎月奨学金のいくらかを天引きされるシステムになります。


つまり貰った額より多く返さなければいけないので,なるべく前者の方が良いです。

保証人の条件

保証人の条件はざっくりいうと「逃げない」かつ「十分返済能力のある」親族です。


そして,「父母」に加えてもう1人選出する必要があります。
おじやおばに頼るのがよくあるパティーンですが,親族が海外にいる場合は厄介です。(実際断られました。)
親族以外にもこれをお願いすることが出来ますが,収入の証明書や誓約書を出させるなんて,
今時儀父母くらいにしか頼めないのではないだろうか。(嫁はダメだそうな)

申請窓口には早く並べ

当然ですが申し込み当日にはたくさんの人々が奨学金を申請しに来ます。
窓口の狭いこと人の多いこと。早めに書類を仕上げて並んで提出するのが精神衛生上最も良いかと思われます。

そしてこういう手続は漏れがあるのが前提なので多少書類が足りなくてもとにかく期日までに行ってみること!

おわりに

お金周りはめんどくさい!

パワポのお洒落テンプレートを作ろう

ご無沙汰しております。

最近ずっと堅い内容についてばかり記事を書いてきたので
たまには女子力を発揮してお洒落なPPTのテンプレートを作ってみようかなと思います。

自作テンプレートの作り方

PPTのテンプレはネット上にたくさん落ちていますが,一手間かけることで自分だけの書式を作ることが可能です☆

具体的には「表示」タブの中の「スライドマスター」という項目からこれを編集できます。
support.office.com

スライドマスターの中で図や写真を挿入することによって,
f:id:ossyaritoori:20170309224545p:plain

このように全てのスライドに変更を適用できます。
f:id:ossyaritoori:20170309224657p:plain

こうやってテンプレートが出来るってわけ。


デザインセンス0でも出来る ♡ お洒落テンプレートの作り方

ぶっちゃけオシャレなスライドを作るにはセンスが必要です。
でもセンスが皆無な我々にもそれっぽいものを作ることは可能です。

その方法は…「お洒落な画像を使う」ことです。


お洒落は結局イケメン(良い素材)を選ぶところが大きいってことです。
残酷ですね!!!
f:id:ossyaritoori:20170309225330p:plain
それにしても誰だこんな画像作ったやつは。


つまりこういうことです。
f:id:ossyaritoori:20170309225736p:plain

おしゃれな画像探し

おしゃれな検索ワードで画像検索しましょう。
その際「壁紙」とつけることで良い画像にめぐり逢う確率が上がります。

何故なら,壁紙はその時点である程度デザイン性を考えられているものがほとんどだからです。
すでに厳選済みのイケメンをスカウトすることができるというわけです。


ただ,できるだけシンプルな画像をチョイスすることをおすすめします。
最重要キーワードは「シンプル」です。
f:id:ossyaritoori:20170309230009p:plain

スライドへの加工

加工もなるべく簡単にすべきです。
四角いオブジェクトを被せて透過するのが最も素材を活かせて簡単かと思います。

端っこのほうを少しだけ露出することで透過している感を出すテクとかは結構使えます。
f:id:ossyaritoori:20170309231621p:plain


最も難しいのはタイトルだと思っています。
正直全然うまく作れませんでしたが,お洒落画像+透過+影 くらいのシンプルさでそれなりに見れるものには仕上がりました。
f:id:ossyaritoori:20170309231723p:plain

まとめ

イケメンはシンプルに清潔な格好をするだけでお洒落。

中国に来た時の連絡手段をどうするか

現在中国に来ています。

中国に来た時に1番困るのは食べ物でも空気の悪さでもなく
SNSの類が使えないことです。

具体的には,

の類が使えないです。インスタもダメなんでないかな?
これは結構由々しき問題でして,他の方々と全く連絡が取れないなんてザラです。


使うサービス

Yahoo

Google検索も死ぬので,Yahooを使っています。
Yahooメールもきちんと動作する数少ないメールなので,出張などの際は持っておいて損はないでしょう。

Gmailからの自動転送機能を使用することによって緊急の案件をキャッチアップ出来るようにしています。

Wechat

中国語では微信と書きます。
LINEにいろいろ機能がついた用な感じです。

中国における最もPopularなSNSで(多分)実際使い勝手も普通に良いので
滞在中に連絡しあいたい場合は携帯にインストールしておくと良いです。

はてなブログの扱い

はてなブログの記事は更新できるようです。
はてなブログは記事を更新した時にSNSに投稿できます。この機能を使ってSNSへの投稿を試してみることにします。

2017/02/21追記:やはり無理でした~w

TexStudioの機能集/Extention

先日TexStudioを布教したものです。
布教活動の一環として便利機能を幾つか紹介したいと思います。

TexStudio入れてない方は以下のページ等参考にどうぞ。
ossyaritoori.hatenablog.com

ドラッグアンドドロップによる図の貼り付け

TexStudioニキはドラッグアンドドロップD&D)で図を張れます。
実際にエクスプローラーからD&Dすると次のような画面が出ます。

何もいじらないでも図は出せますが,黄色マーカを引いたサイズの指定と
Captionの設定,後は論文の場合はtopに配置するように記述するようにしましょう。
f:id:ossyaritoori:20170211181625p:plain:w300

今気づいたのですが左下で設定を保存できますね。

  • 良いところ:ファイルを全て相対pathの形で貼るため何処からでも貼れる。
  • 注意点:ディレクトリ名が日本語だとghostscriptが場所を読めない時がある。

基本的には使い得な機能です。

簡単行列or表作成

[ウィザード]→[簡単行列作成]で簡単に行列を作れます。
意外とbegin{array}と&書くの面倒ですからね。

f:id:ossyaritoori:20170211185933p:plain:w450
これも重宝している機能の1つです。

英文スペルチェック

英語で文章を書く際にリアルタイムでスペルチェックを行ってくれるのはとても便利な機能です。
専門用語等は教える必要がありますが…

「エディタ」で以下のインラインチェックという箇所を「有効」にします。
f:id:ossyaritoori:20170211185310p:plain:w450
なお,日本語文書ではスペルチェックが超うるさくなるので適宜ここを開いてON/OFFしてください。

次に,「言語チェック」あるいは「Language Checking」を参照して使用する辞書の言語を設定します。
デフォルトではde_DE(ドイツ語)ですので変えないと悲惨なことになります。
f:id:ossyaritoori:20170211185547p:plain:w450

追加の辞書の入手

なお,デフォルトでも辞書は入っているようですが上手く動かない場合もあります。
英語版の辞書ファイルはオンラインで入手可能です。以下のoxtファイルをダウンロード後解凍します。
US English Spell Checking Dictionary | Apache OpenOffice Extensions
解凍して出来たフォルダをtexstudio\dictionary以下に移動してその位置を「スペルチェック辞書のディレクトリ」へとコピーします。

最終的な見た目はこんな感じ。
f:id:ossyaritoori:20170507151101p:plain
文法も見てくれるらしいですがどの程度かは不明です。

赤線で表示されない時

「構文の強調表示」の「言語の確認」において,「スペル間違い」で赤下線を引くように設定しないと何も起こりません。
一度ハマったのでメモとして残しておきます。

なお参考:
TeXstudioでの(英語辞書のインストール方法) - #include"blog.h"

簡単?数式作成(ネタ)

数式補助のところを押すとこんなのも出ます。
f:id:ossyaritoori:20170211182517p:plain:w300

お絵かきで数式を書けるのは初心者に優しいですね。
ペンタブがある環境などでは比較的活躍の余地があるかもしれません。

ちょっと使い慣れない感じの記号を入れてもきちんと出来るようです。
f:id:ossyaritoori:20170211182839p:plain:w300
案外有能な機能な気がしてきた。
こんな形式でコードを生成してくれるようです。

$\left\{\begin{array}{c}\stackrel{.}{x}=Ax+Bu\\ y=Cx+Du\end{array}\right\$

すごーい!

lとかiとかの識別は苦手っぽいです。

背景色変更

TexStudioの欠点として背景色で暗い色を選べないという問題があります。
これは目に悪い…

tex.stackexchange.com
ここの記述を参考にして以下の
1.darktheme.txprofileというファイルを
AppData/Roaming/texstudio以下に作る。

2.中身はこんなん

3.Texstudioのオプションから上記ファイルを選択し,再起動

MatlabでLevenberg-Marquardt法

過去記事が地味に反応あったので調子乗って続きをば。
ossyaritoori.hatenablog.com

前回のGauss-Newton法に引き続き,
Levenberg-Marquardt法についてです。

フィッティングの手法としてはGauss-Newtonより多用される王道中の王道ですね。

概要

前回のGauss-Newton法を前提にしているのでそっちを先に参照してくださいな。
matlabはstudentバージョンで2015aで動作します。
symbolic math Toolboxを使っております。

アルゴリズムについて私的見解

以下の記述は私の持ってるイメージですのであしからず。
間違ってたらコメントにて教えてください,

Gauss-Newton法は2次収束するNewton法において,ヘッセ行列をヤコビ行列の二乗で近似した手法ですが,
勢いが良すぎてぶっ飛んでしまうことがあります。
そこで,適切なダンピングファクターλを下のように導入します。

\Delta v =  - (J^TJ+\lambda I)^{-1}J^T \  r

適度にダンピングをかけることで吹っ飛ぶのを回避できるってわけ。


なお,ダンピング項のIは最も簡単には単位行列,もう少し賢く行くにはヤコビアンの二乗の対角項を使うようです。
減衰最小二乗法とも言うようですね。

\Delta v =  - (J^TJ+\lambda diag(J^TJ))^{-1}J^T \  r
matlabで書くならダンピング項はこんな感じか,簡単すな。

I = diag(diag(J.'*J))

知恵袋の秀逸な解答

なお,以下の知恵袋の解答も秀逸です。
Levenberg-Marquardt法(LM法)は非線形最小二乗問題を解く有力な... - Yahoo!知恵袋

最急降下法とGaussNewton法の組み合わせ」という言はたしかにしっくり来ます。

以下の式は数学的には超間違い!!ですが,
感覚としてこんな感じってことなのはなんとなくわかります。
\Delta v =  - (J^TJ)^{-1}J^T \  r - \lambda^{-1} J^T \  r

この式は怖い人がなんか言ってきたら消します()

問題設定

前回のと同じ,wikipediaの例題です。
ガウス・ニュートン法 - Wikipedia

関数:
 y = \dfrac{ax}{x+b}

Gauss-Newton法との比較

λをいじった場合どのように収束速度が変わるかを示す図が以下の通り。
f:id:ossyaritoori:20170201221137p:plain

Legendが適当なのはごめんなさい。ダンピングと言う通り,λを大きくすると収束速度は鈍ります。

補足:パラメータ空間でのアルゴリズムの様子

変更するパラメータa,bを0~1の範囲で変えて残差の二乗和の関数の様子を見ました。

残差の二乗和:  S = \sum_{i=1}^n (r_i)^2

f:id:ossyaritoori:20170201224437p:plain
なるほど今回の例では傾きの急な所から1方向にガツンと降りていくだけなのでそれほど差がないのも頷けます。
向かい側にも山があるお椀型の場合,GN法だと行ったり来たりする時がある印象です。

f:id:ossyaritoori:20170201225553p:plain
降りた時の軌跡はこんな感じ。我ながら結構わかりやすくなって満足。


Levenberg-Marquardt法:コード

基本的な解説はGaussNewton法の所を読んで下さい。
ダンピング項を加えただけです。

%%  https://ja.wikipedia.org/wiki/%E3%82%AC%E3%82%A6%E3%82%B9%E3%83%BB%E3%83%8B%E3%83%A5%E3%83%BC%E3%83%88%E3%83%B3%E6%B3%95
% http://org-technology.com/posts/gauss-newton-method.html

%% get data
clear all;
% data for fitting
xhat = [0.038, 0.194, 0.425, 0.626, 1.253, 2.500, 3.740].';
yhat = [0.050, 0.127, 0.094, 0.2122, 0.2729, 0.2665, 0.3317].';

%% making evaluate funciton
syms a b x y

% evaluate fuction
func = a*x/(x+b);
R = y - func;
S = R^2;

% partial derivative
Ra = diff(R,a);
Rb = diff(R,b);

% make jacobian matrix
Ja = subs(Ra,{x,y},{xhat,yhat});
% subs(fa,[x,y],[xhat,yhat]); ではダメ
Jb = subs(Rb,{x,y},{xhat,yhat});

Jacob = [Ja,Jb]; % jacobian


%% initial value
vinit = [0.9;0.2];
v = vinit;
iteration = 10;

% lambda
lambda = 1;
I = eye(size(Jacob,2));
% evaluate function
SumOfError = zeros(iteration,1);
SEF = subs(S,{x,y},{xhat,yhat});


%% iterative optimization
% error function
r = subs(R,{x,y},{xhat,yhat});

for i = 1:iteration
   J = double(subs(Jacob,[a,b],v'));
   df = double(subs(r,[a,b],v'));
   delta = - ( J.' * J  + lambda * I)\J.' *  df;
   v = v + delta;

   SOE = double(subs(SEF,[a,b],v'));
   SumOfError(i) = SOE.' * SOE;
end

%% showing
fit = subs(func,x,xhat);
yfit = double( subs(fit,[a,b],v') );

figure(3);
plot(xhat,yhat,'+',xhat,yfit);
xlabel('x');
ylabel('y');
legend('data','fitted value','Location','Best');
grid on;

figure(4);
plot(SumOfError);
xlabel('iteration');
ylabel('Sum Of Squared Error');
legend('Squared Error value')
grid on;

マッピングのコード

ndgridを初めて有効に使った気がします。
及第点。

%% mapping
Ms = 20;
Map = zeros(Ms);
% evaluate function
SEF = subs(S,{x,y},{xhat,yhat});
A = ndgrid(1:Ms,1:Ms)/Ms;
B = A.';


for i = 1:Ms
    for j = 1:Ms
        v = [i/Ms;j/Ms];
       SOE = double(subs(SEF,[a,b],v'));
       Map(i,j) = SOE.' * SOE;
    end
end

%% showing
figure(5);
mesh(A,B,Map);
xlabel('a');
ylabel('b');
grid on;