Coursera Week4 machine-learning
all_theta(c, :)と書くべきところ、all_theta(c)と書いてしまった。
c行の列を全て取得する。
a=[1 2 3;4 5 6]
a =
1 2 3
4 5 6
octave:11> a(1)
ans = 1
octave:12> a(2)
ans = 4
octave:13> a(3)
ans = 2
octave:14> a(4)
ans = 5
PHP
- password_hash()、 password_verify() というパスワード用の関数がある。
- 任意精度数値での除算はbcdivを使う。無ければ、floorやnumber_formatなど他の関数を使う。https://stackoverflow.com/questions/9944001/delete-digits-after-two-decimal-points-without-rounding-the-value/9944052
あずき本
DNSサーバの役割はホストとIPアドレスを相互に変換すること。
これを名前解決という。
ホスト名からIPを求めることを正引き、その逆を逆引きという。
参照先のDNSサーバを設定する。
問い合わせる順番を設定する。files(/etc/hostsファイル)、dns、ldapのように書く。
ホスト名の一覧を取得。
systemdを採用したディストリビューションでは名前解決をsystemd-resolvedサービスで行う。
サービスを有効にするコマンド
$ systemctl restart systemd-resolved.service
参照先のDNSサーバを記述する。
名前解決の問い合わせをする。
DNSへ問い合わせ、登録されている情報を詳細に表示する。
Week4
特徴がx_1, x_2だけであればロジスティック回帰で良い。
しかしx_1〜x_100もの数を扱うとなると、それらを二次や三次の方程式で表したx_1^3やx_1 * x_2といった特徴も扱うことになり、合計で5000以上の特徴を扱う必要が出る。
特徴が多いとオーバーフィットにつながり、また計算コストが高くなる。
この問題は画像認識を解く際、特に顕著になる。
x_0はbiasを表すが、常に1なので省略する時もある。
この講義ではθをparameterと呼ぶが、weightと呼ぶ人もいる。
jがレイヤーのインデックス、sがユニットの数だとする。
下の例ではs_1=2、s_2=4となる。

この時のΘの次元は下記の式で求めることができる。

先の例に当てはめると、4*(2+1)から次元は4*3であることがわかる。
LPIC Lv1
LPIC あずき本
ある宛先のメールを別のメールアドレスで受け取る。
設定には2通りの方法がある。
- /etc/alieasesでエイリアスを設定する方法。
- 各ユーザに~/.forwardを用意する方法。
LPICあずき本
定期的なジョブはcrontab、1回限りの予約はatコマンドを使う。
-e Edit
-l list
-r remove
crontabファイルは/var/spool/cron以下に置かれている。
LPIC あずき本
障がいによっては複数のキーを同時に押す操作が困難。
スティッキーキーを有効にすると、別のキーを入力するまでの間、修飾キーが押されたままになる。
この状態をラッチという。
修飾キーを押したままの状態にしたい場合、連続で押すとロック状態にできる。
キー押下を認識する時間を調整したり、キー押下に合わせてビープ音を鳴らす。
同じキーを連続して押しても、入力は連続とみなさないようにする。
NumLockなどはキーボードのLEDランプで状態を示すが、それをビープ音でも報せる。
LPIC あずき本
- bashの引数にシェルスクリプトを指定すると、実行したシェルの子プロセス(bash)の上で実行される。
- シェルスクリプトはSUIDやSGIDでなく実行したユーザの権限で動作する。これはセキュリティ上の理由によるもの。
https://twitter.com/HiromitsuTakagi/status/1294641521321365505
「noteのIPアドレスが個人情報に該当するのは、〜(割愛)〜個人に紐づいたデータセット内の1属性として記録されているからである。」という説明がわかりやすかった。
Javascriptのデバッグで便利だと思ったメソッド
- debugger
- JSON.stringify(dict) [New!]
LPIC
LPICあずき本
-atime access時刻
-mtime modified時刻
-exec rm {} \;のように書ける。
ファイル名DBに基づいて検索を行い、findより高速。DBの更新が必要となる。
ファイル名DBの更新。
ディストリビューションによってはcronで更新される。
自分の環境でもcronに設定されているのか確認しようとした。
どうやらcrontab -lで確認できるらしい。
自分の環境だと下記のように表示されたので、crontabは使ってないのだろうか
$ crontab -l
crontab: no crontab for user
ユーザーごとに設定ファイルを持つこともあるようなので-uオプションも使ってみたが、やはり設定ファイルはなさそう。
参考:crontabして何も見つからないのに設定ファイルはあるとき
$ sudo crontab -u root -l
crontab: no crontab for root
私の環境はMacなので、そもそもupdatedbがNot Foundなことに気づいた。
Macではlocate.updatedbを使うらしい
localeとlocateを見間違えた。
Attach and Validate Many-to-Many Inserts- EPISODE 33
下記の変更前のコードは検証した結果をnew Article()メソッドに渡しているが、これだと例外が発生する。
tagsはarticlesテーブルのカラムではなく、Relation?であるためだ。
変更後のコードのように検証とインスタンス作成の処理は分ける必要がある。
変更前
$article = new Article($this->validateArticle());
変更後
$this->validateArticle();
$article = new Article(request(['title', 'excerpt', 'body']));
protected function validateArticle(): array
{
return request()->validate([
'title' => 'required',
'excerpt' => 'required',
'body' => 'required',
'tags' => 'exists:tags,id'
]);
}
モデルの中でwithTimestampsメソッドを下記のように使う。
return $this->belongsToMany(Tag::class)->withTimestamps();
パーフェクトPHP
P88
- issetが速い
- issetは値がnullの場合にfalse、array_key_existsはtrueを返す。
P91
PHPにおける式は値を持つ全てのものを指す。
例えば$var, =, 1はそれぞれを1つの式として扱う。
Attach and Validate Many-to-Many Insertsを勉強していたところエラーが出た。
フォームからリクエストを送ると「Database connection [tags] not configured」というエラーが表示される。
ドットとカンマを間違えていた。
Database connection [users] not configured