雑多メモ
目的
- 雑多なメモ
<メモフォーマット>
viteとは
- フロントエンドビルドツール
- 速い,安い(タダ),上手い(HMR)
<トラブルシューティングフォーマット>
問題
- dockerでviteプロジェクトを
pnpm dev
で起動しようとしたところ,localhost:port_num
にアクセスしても立ち上がらなかった.
原因
- 調査中
解決方法- coming soon
フロントにおけるdebounceとは
debounceは、高頻度で発火するイベント(例: ウィンドウのリサイズ、キー入力など)を制御するためのテクニックの一つです。このテクニックを使うと、特定の時間間隔内に再度イベントが発火しなかった場合にのみ関数を実行することができます。
JavaScriptのユーティリティライブラリであるlodashなどを使って簡単に実現できる。
参考
debounce: 一定時間止まったら実行させる。
throttle: 一定時間に1回というペースを守らせる。
UTMパラメータとは
urchin tracking moduleの略(urchinとは,google analyticsの前身サービス名らしい)
google Analyticsに自サービスへ流入経路を分析させるために使用される.
(技術的にというよりは,マーケティング文脈での情報が豊富な印象)
例)ChatGPTの参考サイトのURLにはutm_source=chatgpt.comがついている
→参考サイト側では,GAを使用して,utm_soucre=chatgpt.comのURLアクセス数を計測することで,自サイトに対するアクセスの何%がChatGPT経由なのかを知ることができるなどのメリットがある.
参考
PHPのuseとFQCN
(ChatGPT回答)
PHPでは、use
文を書かずにクラスを直接使いたい場合、完全修飾クラス名(FQCN: Fully Qualified Class Name) を使えば可能です。
つまり、
$instance = new \App\Services\MyService();
のように、クラスの名前空間を先頭に \
を付けて書くことで、その場でクラスを指定できます。
補足
-
use
文は 名前空間のエイリアス(ショートカット) を作るためのものです。 - 省略したい場合は
use App\Services\MyService;
としてnew MyService()
のように書けます。 -
\
をつけた場合、そのクラスを グローバル名前空間からの絶対パス として解決します。
例:
namespace App\Http\Controllers;
class TestController
{
public function index()
{
// 完全修飾クラス名を使う場合
$now = new \Carbon\Carbon();
// use 文がある場合
// use Carbon\Carbon;
// $now = new Carbon();
}
}
Slack API User Auth Token vs Bot User OAuth Token
両者の違いをあまり把握していなかったので、参考までに。
- User Auth Tokenを使う→tokenの発行者=slack Appの作成者のslackアカウントからのアクションになる
- Bot User OAuth Tokenを使う→チャンネルに追加したアプリのBotのアクションになる
メモリのはなし
ガベージコレクション
- 不要となったメモリ領域を自動的に解放する機能
スタックとヒープ
メモリ領域
- テキスト領域:コンパイルされたプログラムそのものを格納。
- 静的領域:グローバル変数などの静的変数を置く。
- ヒープ領域:データを置く
- スタック領域:関数呼び出しに使われる。
細かいところはさておいて,スタックはヒープより高速だよねという認識
- スタック
- スタックは上に積んでいくだけ
- スタック領域は連続して使うので,キャッシュ効率も良い(連続して使えない用途はヒープを使う必要がある)
- スタックのメモリ解放は,ただ1つのスタックポインタを移動するだけ
- ヒープ
- 実行時に空き領域を探索する必要あり
- メモリが分断されるためアクセス効率が悪化,キャッシュ効率も悪い
- メモリのフラグメンテーションを防ぐためのGCがオーバーヘッドになることも
操作 | スタック | ヒープ |
---|---|---|
メモリ確保 | O(1) | O(log n)〜O(n) 程度 |
メモリ解放 | O(1) | O(log n)〜O(n) 程度 |
キャッシュ効率 | 高い | 低い |
(by GPT) |
参考
- https://zenn.dev/sosukesuzuki/articles/0d991d76f778b7
-
https://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/MP/final/part06/node8.html
- メモリ領域は スタック、ヒープ、静的領域、テキスト領域に分かれるよー という話
-
https://keens.github.io/blog/2017/04/30/memoritosutakkutohi_puto/
- スタックとヒープとはなんぞやから各言語のGCまで説明していてわかりやすい
DRM(Degital Rights Management/デジタル著作権管理)
この記事読む中で気になったので
デジタル著作権管理(デジタルちょさくけんかんり、英: digital rights management、DRM)とは、電子機器上のコンテンツ(映画や音楽、小説など)の無制限な利用を防ぐために、オリジナルのデータを特定のソフトウェアあるいはハードウェアでしか再生できないようにすることで、第三者による複製や再利用を難しくする技術・管理方法のこと。
DRMは,コンテンツの一部を暗号化することで,特定の再生ソフトウェア以外での再生を不可能にしている.
商用DVDにはCSS(Contents Scrambling System),ブルーレイディスクにはAACS(Advanced Access Content System)などのDRM(コピーガード)があるが,インターネット上に暗号化キーが流出していて,そのキーを使うことでコピー可能
例えばEMEってやつはW3C使用のDRMらしい