program

新着順 人気順

純関数・参照透過性・冪等性(べきとうせい)の違い

https://zenn.dev/kkeeth/articles/pure-function-referential-transparency-idempotency#%E5%86%AA%E7%AD%89%E6%80%A7%EF%BC%88idempotency%EF%BC%89%E3%81%A8%E3%81%AF%EF%BC%9F 純関数、純粋関数 関数の性質。 同じ入力(引数)を与えられたとき,常に同…

javascript ES2025 Iterator helpers

https://www.tohoho-web.com/ex/es2025.html#sync-iterator-helpers javascriptのES2025で実装された、配列に実装されているfilterやmapなどと同様の機能をイテレーターに対して実装したヘルパメソッド群。 これらはIteratorオブジェクトが持つ、Iteratorオ…

go言語のレシーバー

https://qiita.com/ryo_manba/items/c567858befd04602e3ec goで定義した構造体の型に対してメソッドを追加するための構文がレシーバ。 // 構造体の定義 type Person struct { Name string Age int } // Person構造体にGreetというメソッドを定義する func (p…

Podman

https://zenn.dev/rhene/articles/podman-desktop-for-windows Dockerと互換性のあるデーモンレス・コンテナ環境管理ツール。

NuShell

https://www.nushell.sh/ja/ PowerShellに大きな影響を受けたコマンドラインシェル。 以下のようにPowerShellとかなり似た構造のコマンドが使える。 # NuShell ls | sort-by size --reverse | first 3 # PowerShell ls | sort Length -Descending | select -…

タイムゾーンとサマータイムの関係

https://zenn.dev/cybozu_frontend/articles/calc-time-diff-on-your-own サマータイムは「協定世界時との差」を変更することで実現されている。 例えばタイムゾーン「America/New_York」は、標準時(冬時間)を利用する期間はUTC-5の時間を現地時間としてお…

git history サブコマンド

git 2.54 で追加されたgitのサブコマンド。 git rebase よりも簡易的な操作でコミットメッセージの変更(reword)やコミットの分割(split)を行える、リベース操作コマンド。 直接指定したコミットの履歴修正ができる代わりに、ユーザの判断が必要になる可能性…

git log -S で「この行、いつ追加された?」を一発で探す

https://qiita.com/torifukukaiou/items/5fcbb884bdc0c0c9d5df git log -S "探したい文字列" -- ファイル名 指定した文字列が増減したコミットを抽出するオプション。 git blame では最後の変更コミットしか見えないが、これは過去の変更コミットが全て見え…

SQL

https://uyan39.hatenablog.com/entry/20120807/1344359963 上記URLではSQLAgentとMSSQLのみ再起動しているが、なんか最近のSQLServerバージョンだとMSSQLLaunchpadも再起動させないと上手く行かなかった。 REM エージェントから停止 net stop "SQLAgent$MSS…

MySQL の create temporary table は暗黙コミットを発生させないのでトランザクション内に入れても問題ない

https://dev.mysql.com/doc/refman/8.0/ja/implicit-commit.html CREATE TABLE および DROP TABLE ステートメントは、TEMPORARY キーワードが使用されている場合はトランザクションをコミットしません。 なんとなく問題ないことは把握していたが、はっきりし…

playwright - プレイライト

https://www.tohoho-web.com/ex/playwright.html playwrightは、node.jsなどで動作するブラウザ操作用ツール。 Selenium などより洗練されたもの。 ブラウザを実際に操作してテストを行うことが主目的だが、ブラウザを自動操作して簡単なスクレイピングなど…

gitブランチ戦略「トランクベース開発」 - Trunk-Based Development, TBD

https://zenn.dev/miyan/articles/agile-trunk-based-dev-feature-flags-2026 全開発者が単一のmainブランチに対して少なくとも1日1回コミットするブランチ戦略。 フィーチャーブランチを使う場合でも、最長2日以内にマージする。 未完成コードは「フィーチ…

gitのブランチ戦略 Stacked Diffs

https://engineering.mercari.com/blog/entry/20231209-git-branch-strategy-stacked-diffs-case-study/ https://newsletter.systemdesign.one/p/stacked-diffs GitHubフローのように変更とレビューを管理するサービスを前提としたブランチ戦略。 変更A→変更…

gitのブランチ戦略 Stacked Diffs

https://engineering.mercari.com/blog/entry/20231209-git-branch-strategy-stacked-diffs-case-study/ https://newsletter.systemdesign.one/p/stacked-diffs GitHubフローのように、変更のレビューと管理を提供するサービスを前提としたかなり特殊なブラ…

MySQLのGenerated Columns (算出列)

https://dev.mysql.com/doc/refman/8.0/ja/create-table-generated-columns.html https://qiita.com/naka_kyon/items/f3e19ab7a6275ab394bf 実データを格納するのではなく、計算した結果を返すカラム。 データ追加・更新時に算出値を自動保存しておくSTORED…

MySQLのTime型は24:00:01以降を表現できる

https://dev.mysql.com/doc/refman/8.0/ja/time.html MySQLのTime型の表現できる範囲は、 '-838:59:59' から '838:59:59' である。 他のRDBMSやSQL標準のTime型は '00:00:00' から '23:59:59' を表現できるので、MySQLだけ仕様が異なっている。 ・SQL Server…

JavaのJPA - Java Persistence Api

https://zenn.dev/tkmttkm/articles/c64b55f846ff09 Java EE標準のO/R MappingのAPI仕様。 ORマッパなのでコードの書き方は大きく違うが、PHPで言うところのPDOみたいなもん。 以下はレコード追加して、追加したデータ内容を確認するサンプルコード。 void s…

TOON - Token-Oriented Object Notation トークン指向オブジェクト記法

https://github.com/toon-format/toon https://zenn.dev/akari1106/articles/ba99c8702ee732 jsonやyamlのようなデータ表現記法。 トークン数を節約してLLMにデータを渡すために考えられた、新しい記法。 以下が例。 hikes[3]{id,name,distanceKm,elevationG…

MySQLのtrue/falseは1と0のエイリアス名である

https://dev.mysql.com/doc/refman/8.0/ja/boolean-literals.html select '-1 = true --> ' + (case when -1 = true then 'TRUE' else 'FALSE' end) -- -1 = true --> FALSE , ' 0 = true --> ' + (case when 0 = true then 'TRUE' else 'FALSE' en…

RDBMSのパーディション化、パーティショニング

https://dev.mysql.com/doc/refman/8.0/ja/partitioning-overview.html https://qiita.com/ta1m1kam/items/4adc074bd35caec05b64 パーディション化、パーティショニングとは、1つのテーブルを分割してそれぞれを別の物理領域に保存する機能。 レコードがどの…

フォントサイズを横幅ぴったりに合わせるfit-width cssの提案

https://qiita.com/rana_kualu/items/bbdffd6ec5e8d596812e Excelセル書式「縮小して全体を表示する」の強化版だが、まだ提案段階。 text-grow, text-shrinkというcssプロパティで実現する案が提案されている。 `font-size:fit-width`という一見すると自然な…

css入れ子

https://developer.mozilla.org/ja/docs/Web/CSS/CSS_nesting/Using_CSS_nesting 2023年頃から利用できるようになったcssの仕様。 .parent { /* 親スタイル */ & > .child { /* 親の直下の子のスタイル */ } }

危険なURLを安全に共有する提案

https://qiita.com/rana_kualu/items/485b9bc20963267bbd8e 自動リンクされるべきでない危険なurlを文書内で紹介したい場合の、共通化された表記方法。 プロトコルの"t"を"x"にして、アットマークとドットをカギカッコで囲む。 hxxp://username:password[@]a…

ECIコードの値とその意味

https://en.wikipedia.org/wiki/Extended_Channel_Interpretation 「\000026」…UTF-8。 「\000020」…Shift_JIS。

最頻値を求めるSQL

分析関数(ウインドウ関数)でグループ内の件数の多い順を求めて、最初のアイテムの値を取得する。 出現数が同じアイテムが複数ある場合にどれか1つではなく全ての最頻値を取得したい場合、ROW_NUMBER()の代わりにRANK()を使う。 分析関数のOVER(ORDER BY x…

MySQLではINDEXを貼られていない列を条件にすると、行ロックではなくテーブルロックになる

https://qiita.com/kinpira/items/f4606c4a19cfbe82c607 MySQLでは `select ... for update` や `update ...` で行ロックをかけるには必ず INDEX が必要。 対象レコードの検索にインデックスが使われない場合はテーブルロックになる。 これはインデックスが…

EJS - Embedded JavaScript templates

https://ejs.co/ phpにおけるSmartyのようなhtml内にテンプレート命令タグを埋め込んで変数値の表示やループ表示を行うことができるテンプレートエンジン。 node.jsで利用できる。

CSS - @scope

https://www.tohoho-web.com/css/rule/scope.htm @scopeは特定のセレクタ内にのみ効くスタイルを定義するためのアットルール。 2025年5月現在、firefoxではまだ使えない。 @scope (scope-start) { ... } @scope (scope-start) to (scope-limit) { ... } <element> <style> @s</element>…

sdiff

https://hydrocul.github.io/wiki/commands/sdiff.html 2つのファイルの差分を確認できるように、左右に並べて表示するコマンド。 GUI画面でdiff表示するツールは大抵横に並べて表示するが、それをCUIで再現するような表示形式でdiff表示をするコマンドであ…

gitで実際にマージされる内容をdiff表示するエイリアス

# git merge --dry-run というコマンドは無いが、それでやりたいのはこういういことだと思う。 [alias] merge-diff = "!f() { git show $1 > /dev/null; git merge-tree HEAD $1; git diff HEAD `git merge-tree HEAD $1 | head -1`; }; f" # 最初のshowは、…