定期的に忘れて混乱するのでメモ。
remote tracking branch と upstream branch と remote branch
fetchとmergeは何をしているのか
originとは何か
参考:
定期的に忘れて混乱するのでメモ。
参考:
個人用設定 -> タスクバー
の タスクバーの配置
にて、 左揃え を選択。
手順を調べるのに、少し時間がかかったのでメモ。
以下のscoop bucketを追加することで、Adobe Acrobat Readerのinstallが可能になる。
管理者権限でPowerShellを起動し、前述のbucketのgit repoのREADMEの案内に従い、以下を実行
scoop install 7zip git sudo dark innounp lessmsi aria2 --global --no-cache scoop config SCOOP_REPO 'https://github.com/Ash258/Scoop-Core' scoop bucket add Scoop-Apps 'https://github.com/ACooper81/scoop-apps' scoop update scoop install AdobeAcrobatReader-Install
scoop install 7zip git sudo dark innounp lessmsi aria2 --global --no-cache
を実行すると、各種パッケージがglobalにinstallされます。つまり、別のWindowsアカウントに対しても影響を与えるinstallとなります。その影響下、この操作をしたのちに同一PCの別のWindowsローカルアカウントでログインをし、POwershellを非管理者権限で実行したところ、以下の Global install, Install failed
となりました。管理者権限を使えば、global installに成功することも確認しましたが、この方法ですと非管理者権限で実行可能なScoopの良さが損なわれてします気がします。そこで、以下のインストールについては非globalインストールでやりなおそうと思います。
scoop list Installed apps: Name Version Source Updated Info ---- ------- ------ ------- ---- 7zip 2024-02-23 18:59:09 Global install, Install failed aria2 2024-02-23 18:59:10 Global install, Install failed dark 2024-02-23 18:59:11 Global install, Install failed git 2024-02-23 18:59:21 Global install, Install failed innounp 2024-02-23 18:59:28 Global install, Install failed lessmsi 2024-02-23 18:59:29 Global install, Install failed sudo 2024-02-23 18:59:30 Global install, Install failed
新PCの初期構築に際し、Scoopを使ってみたので備忘メモ。
SccopはWindows向けのCLI操作が可能なパッケージマネージャーです。*1macでいうところのHomebrewの位置づけですね。類似の製品にChocolatelyがあります。
scoop --help
の結果より使用頻度の高そうなものを以下にピックアップします。
install
-> Install specific applicationbucket
-> Manage local scoop buckets.update
-> Update installed application(s), or scoop itself.
scoop update
では、bucketのみが更新されるようです。Appを更新したい場合は scoop update firefox
のように、引数に明示的にApp名を渡すことで更新がされます。また、installした各Appにavailableな更新があるかどうかは scoop status
で確認できるようでした。list
-> List installed applications.checkup
-> Check system for pontential problems.status
-> Show status and check for available updates for all installed applications.search
-> Search for applications, which are available for installation.以下、作業メモになります。
Powershellより、以下手順を実施。
# install > Set-ExecutionPolicy RemoteSigned -Scope CurrentUser > irm get.scoop.sh | iex # 動作確認 > scoop --version
ダウンロードの高速化のために aria2
を入れます。詳細は以下を参照ください。
scoopはデフォルト状態だと、install可能な製品が限定的です。そこで、パッケージを追加して導入可能な製品を拡張します。このパッケージのことをscoopでは bucket と呼称するようです。 extras
という名称の bucket があれば一通りのツールは導入できそうでしたので、ここでは extras のみを追加します。パッケージの追加に際しては、gitが必要な様子でしたので、gitをinstall → extras bucketを追加の順に進めます。
scoop install git scoop bucket add extras
これで、extras bucketが使えるようになりましたので、必要なツールを順番に入れていきます。
scoop install firefox scoop install googlechrome
※以下については、Scoop経由で導入したところ、Windowsのタスクバー上にアイコンが表示されないことを確認したため、手動で入れなおしました。
scoop install slack scoop install notion
sakuraエディタについては、別の bucket が必要になります。
scoop bucket add iyokan-jp https://github.com/tetradice/scoop-iyokan-jp scoop install sakura-editor
初めて触ったツールですが、割と好感触でした。暫く試用してみようと思います。
2019年より使用のLG GRAMが調子が不調気味になり始めたため、新しくHPのデスクトップPCを購入しました。
構成・スペックは以下となります。
HP 285 Pro G8 Microtower
自宅でPCを作業をする時間が長くなり、 常時起動状態を保ち、いつでも使いたくなった時に1分以内に触れるPC環境が欲しい
と思ったため、ノートPCではなくデスクトップPCを購入しました。
実際に導入後は、自宅でPCに触る機会が増えたため、狙いとしては今のところ成功だと感じています。
KVMスイッチャーを使うことで、リモートワークで使用の会社貸与のPCとマウス/キーボード/モニタを共有できるため、 机の上を広く使える
点も魅力でした。ノートPCですと、机の上に乗せる運用になり机が狭くなりがちですので、机の下におけるデスクトップPCのほうが省スペース性が高いと考えました。
Disk、Memoryについては拡張が可能な様子ですので、実際に使ってみて不足があれば増設も検討しようと思います。
OSやM/Wというのは、「極端に間違ったことをしなければ、手を入れなくても一定の機能要件を満たす(動いちゃう)」という性質がある。もっと雑にいうと、「根拠はわからないがパラメーターの変更をランダムに試行錯誤したら、ほしい結果(振る舞い)が得られた!」ということがしばしば起きる。(障害対応にも言える話だけど)
このため、内部構造とかシステムの設計思想とかを考えずに適当に動かして、「動いたからこれでいい」「このシステムはこういうものなんだ」みたいに自分は考えてしまいがちだ。(なんかわかんないけど、パラメーター変えたら直ったのでよし!的な)
そういうときに「欲しい結果が得られたから対応をクローズします」ではなく、「やったこと(action)と得られたこと(システムの振る舞い)に因果関係って本当にあるんだっけ? どういうメカニズムでこの結果が得られたのか、もう少し考えてみようか?」と粘って理解しようとする、考えることが大事に思う
設計において方式や設定値を決める時はこの因果関係を逆順に考える。つまり、結果→原因、ではなく、こういう手段(原因)を採用することで、こういう目的(結果)を得ようとみたいなことを考える
そのときに「何を考えてこうしたのか?」というのをできるだけ残したほうがベターだ。そうしないと、後で引きついた人がその(設計時に設計者が考えたこと)のよしあし」を評価できないから。科学で言うと、反証不可能な仮説が誕生してしまう。
「結果」という観点で見た設計の品質は「要件を満たしているのか?」であるが、「プロセス」で見たときの設計品質=「設計者の思考や構想の組み立てのプロセス、出来上がったものの整合性・一貫性(coherentであるか?)」である。設計の瑕疵により障害発生したときに前者が槍玉にあがりやすい(なんでこんなつくりになってるんだ!)が、本質的には後者(設計時にこれって想定できていたんでしたっけ?)の方が大事に思う。
最近の考え方で言うと、ADR的な話なのかもしれない。
2024.01.06.追記
bat(1)
ですがコマンド名が bat
-> batcat
に変わった様子でしたので、 .bashrc
の内容を微修正しました。
Note that on these distros, you must use the “batcat” command to use the bat command due to a conflict with an existing package called bacula-console-qt.
以前から気になっていた、cat互換のCLIツール bat(1)
と同じくls互換のツール exa(1)
を開発機@Ubuntuに導入してみました。いずれも、既存のツールと同じような使い勝手で、より見やすい形にコマンドの実行結果を出力してくれるツールとのことです。
.bashrc
は以下のようにしています。この設定で暫く様子を見ようと思います。
# cat を置き換え : コピペの時に邪魔にならないよう、行番号の表示は抑止する alias cat='batcat --style=plain' # ls を置き換え alias l='exa' # exaはデフォルトではgroupをomitするので、 -g を与えて出力させる alias ll='exa -lg' alias la='exa -la' # tree を置き換え : 実際に使う時は "-L 2" みたいにdepthを指定して使う alias tree='exa -T'
参考:
(1) ファイル
→ その他
→ オプション
の順に選択
(2) 全般
→ PowerPointデザイナー
にて以下2か所のチェックを外し、 OK
を選択
WSL2 / Ubuntu22のデフォルト設定だと、LS実行時のディレクトリの表示色が以下のようにすごく見にくい
(1) 以下のコマンドを実行して現在の色設定をファイルに書き出す
dircolors -p > ~/.dircolors
(2) ~/.dircolors
の以下のレコードの 01;34
を任意の色に変える ※自分は、 40;36
(緑)に変更
DIR 01;34 # directory
(3) bashを閉じ、再度起動しなおして、ls -l
の実行色が変わったことを確認
Ubuntu22の ~/.bashrc
には、以下の設定が初期状態で含まれているため、~/.dircolors
を作成するとbash起動時に自動で読み込まれる。
# enable color support of ls and also add handy aliases if [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" alias ls='ls --color=auto' #alias dir='dir --color=auto' #alias vdir='vdir --color=auto' alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' fi
git config --global user.email hoge@example.com
git config --global user.name piyo
~/.gitconfig
に書き込まれ、gitにcommit時の Author
として使われる有料契約しているSlack Workspaceで以下のようなメールがきたので2要素認証の設定を行う。
We are contacting you to let you know that beginning September 26, 2023, owners and admins on Slack paid plans will be required to set up two-factor authentication.
Two-factor authentication (2FA) adds an extra layer of security to your account by requiring an authentication code from your phone whenever you sign in.
Our records indicate that you haven’t set up 2FA for your account on [契約のSlack Space名]. Please take the time to do that now by following the instructions here in our Help Center: https://slack.com/help/articles/204509068.
https://[Slack Space名].slack.com/account/settings#two_factor
にアクセスし、
以下スクショ赤枠部分を選択。
Slack SpaceのPWを入力。
今回は、2Factor App( Twilio Authy )を使うのでUse an appを選択
Twilio Authyを操作し、ブラウザに表示にQRコードをスキャン後、Verification Codeをブラウザ側で入力
コード紛失時のバックアップに使う電話番号を入力
スマホにショートメッセージが送られるのでブラウザ側で入力。
最後にバックアップコードが出力されるので、保管しておく。
冒頭のアカウント画面にて、Two Factor Authenticationが Active
になったことを確認。
WSL2上のUbuntu22を起動の際にdockerdを自動起動したい。
しかし、WSL2はsystemctlではなくsysvinitのため、sudo systemctl enable docker
的なことができない。
参考:
解決方法:
~/.bashrc
に以下エントリを追加。
if [ $(service docker status | awk '{print $4}') = "not" ]; then sudo service docker start > /dev/null fi
これだけだと、WSL2起動時に毎回PWの入力を求められて面倒なので、
/etc/sudoers
にエントリを追加する。
(1) sudo visudo
(2) 以下の個所の値を %sudo ALL=(ALL:ALL) NOPASSWD:ALL
に変更する。( NOPASSWD:ALL
を追記する)
(3) Ctrl + s
で編集内容を保存、 Ctrl + x
でnanoエディタを終了。
※sudoersの文法的に不正な編集をすると、このタイミングで以下のメッセージが出力されるので、e
を入力してエラー箇所を再度修正する。
>>> /etc/sudoers: syntax error near line xx <<< What now?
参考:
WSL2で vim(1)
を実行の際にデフォルトのカラーテーマでは以下のように色が見にくいので見やすい色に変えたい。
~/.vimrc
を作成し、以下のようにコメント行の色を変えてあげればOK。
$ cat ~/.vimrc highlight Comment ctermfg=green
次回vim実行時より、以下のようにコメント行のハイライト色が変わる。
上記のみだと、 sudo(1)
実行時にカラーテーマが適用されないので合わせて以下を実行する。
$ sudo ln -s ~/.vimrc /root/.vimrc
Google Colaboratory
以下の記事のコードをベースに、一部改変を加えています。 zenn.dev
!pip install langchain==0.0.145 !pip install openai==0.27.4
import os #TODO: APIキーの登録が必要 os.environ["OPENAI_API_KEY"] = "..."
from sqlalchemy import text, create_engine, MetaData, Table import pandas as pd # サンプルデータの定義 df = pd.DataFrame({ "name": ["佐藤", "鈴木", "吉田","松崎"], "age": ["20", "30", "40","35"], "sex": ["男", "女", "男","男"], }) # sql_uri = "sqlite:///sample.db" engine = create_engine(sql_uri, echo=False) # メタデータのインスタンス作成 metadata = MetaData() # テーブルが存在する場合、それをドロップする with engine.connect() as conn: users = Table('users', metadata, autoload_with=engine) if users.exists(conn): users.drop(conn) # Pandas DFをテーブル化 df.to_sql("users", con=engine) # 作成されたテーブルの確認 with engine.connect() as conn: print(conn.execute(text("SELECT * FROM users")).fetchall())
プロンプト
db_chain.run("sexが男のユーザーの平均年齢は?")
実行結果
> Entering new SQLDatabaseChain chain... sexが男のユーザーの平均年齢は? SQLQuery: SELECT AVG("age") FROM users WHERE sex = '男'; SQLResult: [(31.666666666666668,)] Answer: 男のユーザーの平均年齢は31.67歳です。 > Finished chain. 男のユーザーの平均年齢は31.67歳です。
プロンプト
db_chain.run("sexが男かつ、ageが25歳以上のユーザーの一覧を出力して")
実行結果
> Entering new SQLDatabaseChain chain... sexが男かつ、ageが25歳以上のユーザーの一覧を出力して SQLQuery: SELECT "name" FROM users WHERE "sex" = '男' AND "age" >= 25 LIMIT 5; SQLResult: [('吉田',), ('松崎',)] Answer: 吉田さんと松崎さんがsexが男かつ、ageが25歳以上のユーザーです。 > Finished chain. 吉田さんと松崎さんがsexが男かつ、ageが25歳以上のユーザーです。