13~14世代の不具合がニュースになっている。自分の場合は、コスパを考え、あえて最新のCPUを避けて、一昨年、第11世代にしたのだけど、新製品が必ずしも確実とは言えないことはよくあることかも。製品選びも難しいものです。
2024年4月30日火曜日
2024年4月29日月曜日
動的計画法について
アルゴリズムの定石?なのかもしれませんが、今まで知らずにいました。わかりやすい説明がありました。時間がかかる探索などに有効なようです。これを、実際の場面に適用するのは、また別の難しさがありそうですが。
https://dai1741.github.io/maximum-algo-2012/docs/dynamic-programming/
2024年4月27日土曜日
ウエブ最適化ではじめる機械学習 備忘録 P19 ベイズ更新について
p(x,y)=p(x|y)p(y) = p(y|x)p(x) 2つ目の=より
p(x|y)=P(y|x)p(x)/p(y) ベイズの定理
p(Θ|D)=p(D|Θ)p(Θ)/p(D) p(D)は定数とみなされるため(Θの影響なし)
p(Θ|D) ∝ p(D|Θ)p(Θ) :p(D)証拠(evidence) or 正規化定数(nomalizing constant) p(Θ)事前分布 p(Θ|D)事後分布
書籍にはないが p(D)=Σp(D|Θi)p(Θi) も頭に入れておいたほうがいいようだ。
p(Θ|D1,D2)=p(D1,D2|Θ) p(Θ) / p(D1,D2)
=p(D1|Θ) p(D2|Θ)p(Θ)/ P(D1)P(D2)
=( p(D2|Θ)/P(D2) )* ( P(D1|Θ) /P(D1) )* p(Θ)
= ( p(D2|Θ)/P(D2) )* p(Θ|D1)
p(Θ|D1,D2,D3)=(p(D3|Θ)/P(D3){(p(D2|Θ)/P(D2))* p(Θ|D1)}
=(p(D3|Θ)/P(D3)) { p(Θ|D1,D2) }
再帰的な構造ともいえそう。つまり
p(Θ|D1,D2,D3...Di)=(p(Di|Θ)/P(Di)* p(Θ|D1,D2,D3...Di-1)
事後分布=(p(Di|Θ)/P(Di)* 事前分布
ということなんだろうと思う。
「事後分布を次の事前分布で使って。。」 という説明があちこちで 見られますが、 最初、なかなかわからなかったけれど、たぶん、こういうことなんだろうと思う。
2024年4月26日金曜日
実用Git第3版 備忘録5 リモートリポジトリ
P258 git init -b main fluff 開発(ノンベア)リポジトリの作成
git init --bare -b main fluff-bare ベアリポジトリの作成(権威ある参照箇所)
--bareオプションを指定してgit cloneを実行すると、ベアリポジトリが作られる
P261 リモートの作成 git remote .git/configにリモートがある git configで操作
P263 リポジトリのブランチの分類: リモート追跡ブランチ(リモートリポジトリの追跡が目的)、ローカル追跡ブランチ(開発ブランチとリモート追跡ブランチの変更の両方を集める)、トピックブランチ(開発ブランチ)、リモートブランチ(リモートリポジトリにある)
main ローカル追跡ブランチ
mylocal-branch トピックランチ(開発ブランチ)
remotes/origin/main リモート追跡ブランチ
2024年4月25日木曜日
実用Git第3版 備忘録4 コミットの書き換え 一時退避
P201 A-B-C-D-E-F-G のコミットDに問題があり、取り消したい場合
git revert main~3
A-B-C-D-E-F-G-D' D'はコミットDの逆(Dの効果を打ち消すようなコミット)
P202 git commit --amend コミット後ログメッセージを修正できる。
それ以外の活用方法として:
例:①誤ったコミット ②ファイルを再編集して、新たにコミット もできるが、
①speech.txt修正 git diffでインデックスと作業ディレクトリの差分チェック
②git add speech.txt ③git commit --amend 必要ならコミットメッセージ編集
git show-branch --more=5 git shouで確認
A-B-C HEAD を A-B-C' HEAD に変更したというイメージ
P205 git reset A-B-C-D A-B-C-D
--soft 〇
--mixed 〇 〇
--hard 〇 〇 〇
P214 git cherry-pick 指定したコミットFをカレントブランチに加える 以下の場合はF’
A-B-C-D-E-F-G-H dev A-B-C-D-E-F-G-H dev
| |
V-W-X-Y-Z rel_2.3 V-W-X-Y-Z-F' rel_2.3
git checkout rel_2.3 のあと git cherry-pick dev~2
P217 reset,revertとcheckoutの関係
ブランチを移るとき:git checkout またはgit switch
git resetはブランチ切り替えはしない:ブランチ名指定するとカレントブランチをリセットしてしまう git rest --hardは既知の状態を復元することが目的
P218 他の開発者があなたの李ぴ時取りをクローンしたり、一部のコミットをフェッチしたりしているときは、リポジトリ内のコミット履歴を書き換えるようなコマンドを使うべきではない。代わりにgit revertを使う。git resetやgit commit --amendを使ってはならない。
P219 rebaseについて:書籍にはないが、簡単な例で試してみる
①topicブランチで git rebase main ②mainブランチで git merge --no-ff topic
(--no-ffはfast-forwardなしで、そのほうがあとで管理しやすいとのこと)
③git log --graph で確認できる
もし、①で競合が発生したら、②エディタで競合の原因(main_file)を編集し、競合を解決 ③git add main_file git rebase --continue(P220) ④mainブランチで git merge --no-ff topic
P221 rebaseを途中でやめたいとなったら git rebase --abort
P225 git rebase -i コミット とすると、指定したコミット以降のコミットが編集可
エディタで先頭のpickをsquashにすると、直前のコミットの結合され、新しいコミットメッセージのテンプレートができる。先頭の#は無視される。
git stash -m コメント でインデックスと作業ディレクトリの内容全体を一時退避 git stash popでもどす
git stash apply + git stash drop =git stash pop
例: ①file1とfile2を作成、add、commit ②file1に追加文字 ③git stash -m 'Tinkerd file1'
④git commit --dry-run 仮コミットしてみると、コミットするものなしと表示、git stashでまったく、残っていない状態であることを示している?
⑤ file3を作成 ⑥git stashしても失敗 新しい未追跡ファイルは-uが必要 ⑦ git stash -u -m 'add new untracked file3'
2024年4月24日水曜日
実用Git第3版 備忘録3 マージ 差分 bisect
P134 作業ディレクトリのファイルを書き換えたり、git addやgit rmでインデックスを書き換えると、リポジトリの作業ディレクトリやインデックスはダーティ状態になる。ダーティ状態でマージは簡単にはいななくなる。クリーンな状態にしてからマージが原則。
git diff --cached commit インデックスと指定されたcommitとの差分
git diff commit 作業ディレクトリと指定されたcommitとの差分
git diff commit1 commit2
実用Git第3版 備忘録2 ステージング
P122 git rm data コミットしたファイルを削除(インデックスと作業ディレクトリの両方から削除)
復活したいなら git checkout HEAD -- data (--はファイル名であること明示)
P129 ほぼすべての.oは無視するが、vendor_filesサブディレクトリのdriver.oは追跡したい場合は、 上の階層のディレクトリの.gitignoreに*.oとして、vendor_filesサブディレクトリの.gitignoreに!driver.oというようにするとよい。
P130 git check-ignore my_package/anotherfile で、.gitignoreにひかっかるかどうか確認できる。
git check-ignore -v my_page/anothrefileで、
.gitignore:3:my_package/ my_package/anotherfile
というように、.gitignoreの3行目のmy_package/の設定に適用されているということがわかる。
実用Git 第3版 備忘録1 ブランチ
P66 新ブランチを作成するためのコマンドの基本的形式は次のとおりである。
git branch branch-name start-point
start-pointを指定しなければ、ディフォルトで現在のアクティブブランチの先頭(HEAD)コミットが使われる。
P67 git branch ローカルのみ git branch -r リモートのみ git branch -a ローカル、リモート両方
P73 コミットしていない変更があるときのチェックアウト
Please ,commit your changes or stash them before you can switch branches.
ブランチを切り替えるためには、先に変更をコミットするか、一時退避(stash)
stashしたあと、 git stash applyを切り替え先で行うとマージが必要
P74 ファイルの状態を復元
git checkout dev~4 index.js 特定のファイルを4世代前のものに戻す
rm -rf server.js git checkout server.js 削除されたファイルを復元
git restore [options] file という新コマンドも使える
P75 別のブランチへの変更マージ
git checkout -m dev
作業ディレクトリの現在の状態と切り替えようとしているブランチの状態に矛盾がある場合、作業ディレクトリで加えた変更を活かした形で新ブランチに切り替えたい場合に、ターゲットブランチへの切り替えと同時にマージを実行。3方向(下図のA,A1,A2の3方向という意味か?)マージであることに注意。
A2 (dev)
↓
A←A1(main:コミットしてない)
P77 マージされたブランチのベースブランチ情報:枝分かれの起点をさがすコマンド
git merge-base original-branch new-branch で起点のコミットIDが表示
ブランチの起点となった最初のコミットは明示的に示されていないので、そのコミット(起点)は、新しいブランチ(new-branch)が作成されたもとのブランチ名(original-branch)からアルゴリズムによって見つけられるようになっている。
new-branch
↓
起点←original-branch
P96 git log --graph コミットグラフが枝分かれも入っていてみやすい
P101 gitkというツールをインストールしてみた。コミットグラフが表示されてわかりやすい。
2024年4月23日火曜日
detached HEAD 、Reject などよくあるミス対策をまとめてみた 備忘録
https://kaityo256.github.io/github/advanced/index.html
を参考にさせていただいた。(以下抜粋)
1)detached HEADの対処
git switchとgit restoreは追加された機能。以前はgit checkoutが使われていたが、git checkoutに役目が多すぎたためにコマンドが分けられたとのこと。
9b662ef (HEAD -> main) test
$ git checkout 9b662ef すると、以下の説明が出てくる
Note: switching to '9b662ef'.You are in 'detached HEAD' state.
Or undo this operation with: git switch -
ブランチを介さないでGitを操作するのは事故のもと。
$ git switch -c newbranch 9b662ef というように。
git checkoutの代わりにgit switchを使った方が良い。
2024年4月19日金曜日
クラウドについて
「クラウド人材」とはクラウド技術やクラウドサービスを設計・実装・運用する提供側の人材を意味する。AWSや Azureを活用したり、認定資格を取得したりすることではない。」とIPAの登氏が述べている。
https://japan.zdnet.com/article/35217768/
日本は、クラウド人材を育成しようとしたけど、結果的に、クラウド人材できず、高額な使用料を外資系クラウドに払い続けることになってしまった。障害が発生してもブラックボックスなので解決不可能とのこと。今後は、国内でも安定したクラウド環境ができていくことを期待したいものです。
reactを使ってみた
sudo npx create-react-app react-sample --template typescript
では、だめで、sudoなしだと、うまくいくようだった。
node関連のインストールを行うが、バージョンが合わないといろいろ設定に手間がかかるようだった。
なお、警告が出たので
npm WARN deprecated tar@2.2.2: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.
npm install tar@6 -gtar としたら、解決
Next.jsのほうは、細かい変更もあるらしく書籍の情報だと動かなかったりする。
2024年4月18日木曜日
車のエンジンが安定しない
18年目になる車なので、あちこち不具合も出やすい。一度、プラグがオイル汚れが原因で調子悪かった時があり、修理してもらったが、また似たような症状出ている。イグニッションコイルもまだ大丈夫なはずだし。
試しに、プラグへのケーブルの差込口すべてに、接点復活材をつけてみたら、少し安定してきたような気もする。イグニッションコイルへのヒューズも念のため、接点復活材をかけておいた。昔、カローラに乗っていたとき、エンジンが安定しないときがあり、ディーラーでもしばらく原因をつかめなかったが、しばらくしてプラグコードの断線が原因だったことが判明。エンジンの不安定は、電気系統が原因になっていることが多い感じもするので、これで、少し様子をみてみたい。
①エアフィルターのチェックと清掃/交換 ②スパークプラグの点検と交換
③プラグコードのチェック ④燃料フィルターの点検と交換
⑤エアフローメーターの清掃 ⑥バキュームホースの点検
⑦スロットルボディの清掃 ⑧センサーの点検
⑨燃料ポンプの点検 となっていた。
2024年4月16日火曜日
ChatGPTのAPI用コードをC#で
ネット上には、C#の例がなかったので、curlのサンプルをもとに、ChatGPTも活用しながら、コードをつくったら、うまくいった。
string apiUrl = "https://api.openai.com/v1/chat/completions";
var requestData = new
{
model = "gpt-3.5-turbo",
messages = new[]
{
new { role = "system", content = "ウオーキング愛好者です" },
new { role = "user", content = "東京都内のおすすめな散歩コースは?" }
}
};
string requestDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestData);
using (var httpClient = new HttpClient())
{
var request = new HttpRequestMessage(HttpMethod.Post, apiUrl);
request.Headers.Add("Authorization", $"Bearer {apiKey}");
request.Content = new StringContent(requestDataJson, Encoding.UTF8, "application/json");
var response = await httpClient.SendAsync(request);
string responseBody = await response.Content.ReadAsStringAsync();
MessageBox.Show(responseBody);
}
2024年4月11日木曜日
vs-code live serverがwslで動作しない
wslでLive Server使おうとしたらブラウザが開かない現象があった。
settignsを以下のようにしたら解消した。
"workbench.colorTheme": "Default Light+",
"liveServer.settings.donotShowInfoMsg": true,
"liveServer.settings.useLocalIp": true,
"liveServer.settings.CustomBrowser": "chrome",
"liveServer.settings.AdvanceCustomBrowserCmdLine": "/mnt/c/Program Files/Google/Chrome/Application/chrome.exe"
}
2024年4月8日月曜日
raspiでdocker(備忘録)
raspiでもdockerが使えそうなので試してみた。
https://tech-lab.sios.jp/archives/27798
上記が参考になった。ただ、OSは64bitでないとだめだった。dhcpcd.confの設定で手間取った。固定にするための設定が、こちら
static ip_address=192.168.1.ここに数字/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8
profile static_eth0
fallback static_eth0
2024年4月7日日曜日
minikube セット
https://qiita.com/trtrbohz/items/f7357d44b2b3d08d9c24
リンクを参考に、Wslでセットしてみたが、権限の関係でうまくいかない
minikube start --driver=docker --force として、--forceをつけたらうまくいった。
https://zenn.dev/yukiko_bass/articles/397e3270f1f3de
にあるように、minikube dashboardで、ローカルのリンクをクリックすると
ブラウザで状態を確認することもできるよう。まだまだ奥が深いようで、概要を把握するだけでも、時間はかかりそうです。
※その後、しばらくして 試したら
Exiting due to HOST_JUJU_LOCK_PERMISSION: というエラー
rm /tmp/juju-*で解決した。rootユーザーと非rootユーザーの切り替えあたりが関係しているとか、ネットにはでている。
コマンドだけで、簡単にサーバが追加できたり、なかなか便利なものだと感心する。そのためのコマンドを理解してないとだめなわけですが。
2024年4月6日土曜日
Vmware、raspiなどでWordPress ディフォルトの設定に注意が必要
最新版で試したが、ディフォルトでは、投稿などが保存されなかった。設定のパーマリンクのところは、[基本]にするとうまく動作するようになった。何らかの環境の違いが影響している?と思われる。