nekyo のすべての投稿
【Linux Board】Raspberry Pi Zero
ラズパイZero
癖があるマシンではある。最近の Raspbian は初期設定で ssh 接続がオフになっているので、ネットワークケーブル一本で設定できるわけではない。
Zero4U
Zero4U という専用USBハブとかがあると便利。これははんだ付けとかしなくてもいいので簡単。
別のアプローチ
他のラズベリーパイがあるなら、そっちで初期設定とかアップデートまでやって、microSD を挿しなおすのが簡単。ピンアサイン
【Laravel】URLに指定したidなどをフォームリクエストでバリデーションする方法
URLに指定した値をバリデーションしてくれない!?
フォームリクエストバリデーションについては Laravel 5.4 バリデーション を参照してもらうとして、例えば routes/web.php に
[crayon-662937215ba39941874372/]
[crayon-662937215ba44987741094/]
これにフォームリクエストを追加した場合
[crayon-662937215ba49735463260/]
心情としては \$id のバリデーションも CustomRequest で一括してやりたい。
推察
フォームリクエストのルールは $request に含まれているものに反応する。上記の \$id の様に URL に直接指定した値は、上記の配列に含まれないので評価されない。
解決方法
validationData 関数を使用する。フォームリクエスト内で \$this->id の様に変数名を直接指定した場合は値が取得できるので、リクエスト配列の後ろに値をマージしてやる。
これで通常の rule() で評価できるようになる。
[crayon-662937215ba4f965383294/]
Pi Desktop – Raspberry Pi用ミニPC作成キット
なんじゃこりゃ。ラズパイをSSDからブートできるキット!ええ!本末転倒感が半端ない(笑)
NUCより安価にNUCっぽくできるってわけだね。
Pi Desktop – Raspberry Pi用ミニPC作成キット(switchscience)
【Linux Board】Nano pi NEO2
4cm角サイズだけれど、CPU は 64bit のクアッドコア、ギガビットイーサも持っている Linux基板。
イーサーとタイプAのUSBが一つあるだけで、音声や HDMI 出力等はなし。
基本、SSH などで接続して使う感じ。でも小ささは正義(笑) 低スペックで低価格の Nano Pi NEO 512MB もあるので注意!!
こっちで十分という方は利用シーンに合わせてチョイスしてください。
入手方法
秋月電子のホームページ http://akizukidenshi.com/catalog/g/gM-12302/ から通販するか、秋葉の秋月電子に直接足を運んで、入り口前の平台の奥側にある。箱なしなので見つけにくいかも。
熱暴走が怖いなら、専用ヒートシンクも買っておくこと。http://akizukidenshi.com/catalog/g/gP-12303/
microSD の作成
OSダウンロードページhttps://www.mediafire.com/folder/ah4i6w029912b/NanoPi-NEO2
の offical-ROMs からイメージをダウンロード。今回は ubuntu-core-xenial を使用。
Win32diskimager を使って microSD に書き込み、本体に挿す。
接続
起動するとDHCPでネットワークにつながる。IPアドレスを調べて、ssh で接続する。初期の接続ユーザは root パスワードは fa。非 root ユーザとして pi パスワードは pi がある。
両方ともパスワードはすぐ変更しておくこと。
npi-config
コマンドラインユーティリティ。言語設定とかアップデートとかできる。CPU温度の表示
cat /sys/class/thermal/thermal_zone0/temp で表示された値を 1/1000 した値。1つだけ表示される。または cpu_freq コマンドを実行。CPU毎に4つの情報が表示される。
ピンアサイン
GPIOを操作する
/root/WiringNP/gpio コマンドが使える。[crayon-662937215cb15591711872/]
5V とか 3.3v とスイッチ経由でつなげればボタン状態が取得できる
関連サイト
メーカーページ | サポートページ | 回路図NanoHatOLED
こんな hat もある。NanoHat OLED
加筆中
Postgresql でジオメトリを扱う基礎の基礎
環境及び想定
環境は CentOS 7.3.1611, Postgresql 9.2.18店舗情報などに緯度経度情報をもって、現在位置から一番近い店舗を検索する程度を想定
インストール対象確認
[crayon-662937215ce0d494950715/]
インストール
[crayon-662937215ce15231453714/]
確認
[crayon-662937215ce1a434849067/]
追加されるデータ形
型 | 定義 | 説明 |
---|---|---|
ジオグラフィ | geography | 地理座標(基礎が球面) |
ジオメトリ | geometry | 平面座標(基礎が平面) |
ジオメトリダンプ | geometry_dump | geomとpathを持つ空間データ型 |
ジオムバル | geomval | geomとvalを持つ空間データ型 |
テーブル作成
[crayon-662937215ce21996190597/]
値の設定
[crayon-662937215ce24725356038/]
値の取得
[crayon-662937215ce28306984434/]
おまけ
Postgresql のインストール
インストール、初期化、自動起動登録、起動 の順[crayon-662937215ce2d529673613/]
ユーザー追加
新しいユーザーが(の)...-P:パスワードのプロンプト表示
-no-adduser:他ユーザー作成禁止
--no-createdb:データベース作成禁止
--no-createrole:ロール作成禁止
[crayon-662937215ce31307169164/]
データベース作成・接続・削除
[crayon-662937215ce35733104629/]
トラシュー
Peer authentication failed といわれたら
パスワードを変更[crayon-662937215ce39692339525/]
Ident authentication failed といわれたら
pg_hba.confを修正 ident の部分をすべて trust にして保存[crayon-662937215ce3d359965155/]
【Laravel】ログインした後、固定ページに飛ばさずにログインボタンを押した画面に戻りたい。
ことの発端(ほったん)
色々な仕事があるわけで…通常の管理画面とか必ず認証が必要なサイトであれば、
- 最初にログイン画面を出す。
- ログイン処理を行う。
- トップページに遷移する。
- ゲスト(未ログイン)でもサイトを参照できる
- 各ページの右上とかにログインボタンがある。で、好きな時にログインボタンからログインできるが、ログイン後はボタンを押したページに戻りたい。
- 認証が必要なページに行った場合は自動的にログイン画面になり、ログイン後は目的のページに遷移したい。
- ログインすると、各画面でユーザ情報が参照できる。
2 は、標準機能で、そのまま実装すると / に戻ってしまいます。
いろいろ解説
LoginController 解析
make:auth で作られる app\Http\Controller\Auth\LoginController.php はほぼ空っぽで中味は、フレームワークの Illuminate\Foundation\Auth\AuthenticatesUsers で実装されています。 AuthenticatesUsers を見てみると
ログインできた後は redirect()->intended($this->redirectPath()); を呼んでいます。 これは、認証フィルターでキャッチされる前にアクセスしたURLへリダイレクトさせる処理です。
このため、上の「こんな仕様」の3番は、ログイン後に目的のページにリダイレクトできるのです。
instended 解析
instended は「意図された」という意味ですが、機能は以下です。- セッションの 'url.instended' に値が設定されていたらそこにリダイレクトする。
- 値が設定されていなかったら '/' にリダイレクトする。
今回の問題と対策
認証フィルターはキャッチ前に 'url.instended' に参照元URLを設定しているわけですが、ログイン画面が直接呼ばれた場合は、その値が設定されないため '/' 画面に固定で遷移してしまうわけです。
であれば、ログイン画面に遷移した際に 'url.instended' を設定してやれば認証フィルターでキャッチされたと同様の流れになるはずです。
実装
ログインフォームを表示する showLoginForm メソッドを LoginController.php にオーバーライドします。直前画面を 'url.instended' セッションに設定します。
これで認証フィルターと同じ流れになるはずです。
LoginController.php
[crayon-662937215d1d4633595981/]