サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 17
qiita.com
凡例: 互換性表示: ✓=明確に表示、△=部分的/限定的に表示、✗=表示しない ソート可能: ✓=容易にソート可能、△=一部条件付きでソート可能 それでは各戦略について詳しく見ていきましょう。 SemVer(Semantic Versioning) SemVer(セマンティック バージョニング)は最も広く使われているバージョン戦略の一つです。2010年にGitHub創設者のTom Preston-Werner氏によって提案され、事実上オープンソースコミュニティの標準となっています。npmやRubyGems、Cargoといった主要なパッケージ管理システムでも採用されており、もはやバージョニングと言えばSemVerと言っても過言ではありません。 概要 バージョン番号にソフトウェアの後方互換性の有無を明示し、開発者と利用者の双方に安心感を与えることを目的としています。変更内容の重要度に応じてバー
背景 私たちは、バージョニングすべきでないソフトウェア、またはバージョニングを自動化すべきソフトウェアに対してバージョニングを行うことで引き起こされる、回避可能な混乱、対立、そしてコストの源を特定しました。 歴史的に、ソフトウェアの変更を示すために、ベータ、ファイナル、リリース候補などの明確に定義されていない言葉や、特定のルールに従って(または悪い場合はルールなしで)増加する1つ以上の数字を含む任意の番号付けスキームなど、数え切れないほどのバージョニングスキームが使用されてきました。 時間の経過とともに、セマンティックバージョニングが提案され、多くの開発チームに採用されました。これは、バージョン番号の各部分が何を意味するかを明確に定義しています。例えば、最初の数字(メジャーバージョン)を増やすことで、「互換性のない」変更であることを示します。これは人間とマシンの両方が作業を改善するために使
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Next.jsのCVE-2025-29927という脆弱性情報はもうご存じでしょうか? Next.jsのMiddleware(ミドルウェア)で行っている認証・認可チェックを攻撃者にすり抜けられてしまう恐れがあるというのです。 結論から言えば、Next.jsをセルフホストで運用している場合は直ちにアップデートが必要になります。Next.js公式ブログでも「セルフホスト環境のユーザーは直ちにアップデートすべきだ」と強く呼びかけています。 本記事では、この脆弱性の影響範囲や深刻度、発生する仕組みと再現方法、そしてワークアラウンド(一時的な対処)
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Q. 「DNS浸透待ち」「DNS propagation」という言葉について以下について知りたい。 ・「DNS浸透待ち」「DNS propagation」はどのような現象と定義できるか ・「DNS浸透待ち」「DNS propagation」への正しい対処法は何か? ・「DNS浸透待ち」「DNS propagation」が正しい表現でないと批判される理由 ・「DNS浸透待ち」「DNS propagation」がそれでも使われることがある理由 ・「DNS浸透待ち」「DNS propagation」を最初にこの言葉を使い始めたのは誰か A.
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
2025年のReact状態管理、正直どれがいいの? - Zustand, Jotai, Redux, Recoil, Valtio, XState, TanStack Query をざっくり解説ReactreduxjotaizustandTanStackQuery 「Redux使ってるけど、もっと軽いの無いのかな...」 「Recoilって今でも現役なの?」 「ZustandとJotai、どっちがいいんだろう...」 Reactの状態管理ライブラリ、みなさんも選択に悩んだことありませんか?確かに2025年の今、選択肢の多さに頭を抱えてしまいますよね。Redux、Zustand、Jotai、Recoil、Valtio、XState、TanStack Query...それぞれに「これがウリ!」というポイントがあって、どれを選べばいいのか正直迷っちゃいます。 特にReact 18の登場で状況が更
qiita.com/suin
【保存版】GitHubアクセストークン全種別解説: Personal Access Token、OAuth、GitHub App、GITHUB_TOKENの違いGitHubGitHubAPIGitHubApps GitHubを使用する開発者にとって、アクセストークンの理解は非常に重要です。本記事では、GitHubの各種アクセストークンについての概要、その特徴や使用方法、有効期限、セキュリティ上の注意点などを簡単にまとめています。 アクセストークンの種類 GitHubには以下の種類のアクセストークンがあります: Personal Access Token (Classic) Fine-grained Personal Access Token OAuth Access Token GitHub App User Access Token GitHub App Installation Acc
今回は、SSH接続を劇的に高速化する方法をご紹介します。たった3行の設定を追加するだけで、接続時間を10分の1に短縮できます。しかも、2回目以降の接続では認証も自動的に行われるので、パスワードやパスフレーズの入力も不要になります。 要点 .ssh/configファイルのHost *セクションに以下の3行を追加するだけです。 詳しい説明 1. ControlMaster auto この設定で、1つのSSH接続で複数のセッションを共有できるようになります。新しくSSH接続を確立するたびに認証情報を入力し直す手間が省けて、接続がぐっと速くなります。具体的には: 初回の接続時のみ認証が必要 2回目以降は既存の接続を再利用するため、認証プロセスをスキップ パスワードやパスフレーズの入力が不要になり、接続がほぼ瞬時に完了 2. ControlPath ~/.ssh/mux-%r@%h:%p Contr
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 株式会社クラフトマンソフトウェアでは、Kubernetesに力を入れており、11名ほどのKubernetesエンジニアが働いています。社内のKubernetesエンジニアに「これは知らないともったいないツールを教えて!」と聞いて回ったので、そのまとめをこの記事にしました。ちなみにこの記事は、私個人による執筆ではなく、チームのメンバーで協力して執筆したものです。 Lens Kubernetesクラスタの管理と監視を簡単に行うためのオープンソースのデスクトップアプリケーションです。 k9s Kubernetesクラスタを操作するためのターミ
時間に依存する機能を持つアプリケーションのテストは、しばしば複雑で時間を要する作業です。「24時間後にログアウトしていること」といったテストのために1日待つのは辛いものがありますね…。 システムの時計を変更することなく、特定の日時でコードが正しく動作するかをテストする方法はないでしょうか。 ここでは、libfaketimeを利用してNode.jsのアプリケーションで時間を自由に操る方法をご紹介します。 libfaketimeとは libfaketimeは、プロセスに報告される現在日時をマシンのシステムクロックとは異なる値に偽装することを可能にするライブラリです。これは、システムコールに介入し、ユーザーが定義した日時を返すことで実現します。システム全体の日付を変更せずに、特定のプロセスだけのシステム日付を変更することが可能です。テスト環境で時間を操作し、特定の時点でのアプリケーションの動作を
僕は現在、TypeScript入門書『サバイバルTypeScript』を書いています。この本を書く過程で、わかりやすくて効果的な学習体験を提供するため、サンプルコードの制作には特別な注意を払っています。 サンプルコードは教育的な文書で重要な役割を果たします。しかし、よく考えられていないサンプルコードは学習者を混乱させ、思考の妨げになることさえあります。そのため、以下の6つのポイントに基づいてサンプルコードを制作するように心がけています。 シンプルにする クリアにする コメントで解説する 未導入の機能を避ける 完全な動作を示す コードの長さに注意する 1. シンプルにする コードは学習者が取り組んでいる特定の問題を解決する最短・最も簡単な方法を示すようにします。無関係な要素は省いて、特定のコンセプトや機能に焦点を当てます。 例: TypeScriptのforループを解説したいとき ✅Do:
オブジェクト指向プログラミングにおいて、シングルトンはクラスのインスタンス化を1つのインスタンスに制限し、そのインスタンスへのグローバルなアクセスポイントを提供するデザインパターンです。Rustでは、staticキーワードとunsafeブロックを使用してシングルトンを実装することができます。 以下のコードを見てみましょう。 use derive_getters::Getters; use std::env; #[derive(Debug, Getters)] pub struct SingletonInteger { value: i64, } pub fn singleton_integer() -> &'static SingletonInteger { unsafe { if SINGLETON_INTEGER.is_none() { SINGLETON_INTEGER = Some
この投稿では、JavaScriptのモジュールを定義する方法について説明します。この記事で紹介する方法は、文字列形式でモジュールコードを定義し、それを動的にインポートする方法になります。 モジュールコードを文字列で定義する まず、以下のように、文字列形式でJavaScriptのモジュールコードを定義します。 このコードでは、export文を使用して、デフォルトのエクスポートと定数aをエクスポートしています。 文字列のモジュールコードをURL形式に変換する関数を定義する 次に、createModule関数を定義します。この関数は、文字列形式で渡されたJavaScriptのモジュールコードをURL形式に変換します。これは、後でimport文で使用するためです。
Google Chromeをスクリーンショットを撮るためだけに起動する場合、ブックマークや拡張機能などの設定を無効にすることが望ましい場合があります。以下のコマンドを使用することで、ブックマークや拡張機能などを無効にした状態で、Google Chromeを起動することができます。 まっさらなChromeを起動するコマンド /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \ --disable-extensions \ --disable-plugins \ --bwsi \ --no-first-run \ --no-default-browser-check \ --user-data-dir=/tmp/temporary-chrome-profile \ --disable-features=Translat
Unicodeの異体字セレクター(variation selectors)を使い、ユニコード文字列内に隠し情報を埋め込む方法です。 異体字セレクターとは 異体字セレクターは、文字の字体を詳細に指定するモディファイアのようなもの 異体字セレクターは16種類のコードポイントがある(FE00~FE0F) 仕組みの概要 隠したい文字列(hidden)を文字単位にバラす (例: js → j, s) 文字ごとに16進数に変換する (例: j → 6A) その16進数をひと桁ずつ異体字セレクターのコードポイントにマッピングする (例: 6→FE06, A → FE0A) 異体字セレクターの配列をひとつの文字列にまとめなおす 最後にそれを埋め込み先の文字列(body)に混ぜ込んで隠す。 よくあるユニコードステガノグラフィーとの違い ゼロ幅文字を使ったステガノグラフィー 次のようなゼロ幅空白文字を用いたス
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 「TypeScriptとは」などシングルワードの検索結果に強いTypeScript入門記事の多くに、誤解を招く内容があることを確認しています。 以下にあげる記事を参考にされた方は情報のアップデートをしていただきたいですし、記事を公開しているメディアにおきましては内容を見直していただけるとありがたいです。 TypeScriptならクラスが書ける 「JavaScriptにはクラスがない、TypeScriptにはクラスがある」「ゆえに読みやすい短いコードが書ける」といった記述が見られますがこれは誤解です。 Udemy メディア - TypeS
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この投稿ではJavaScriptで文字数をできるだけ正確にカウントする方法について取り上げます。 文字数とは? 要件で「文字数を表示してほしい」「○文字以上はバリデーションエラーにしたい」と文字数を考慮しないとならないことがあります。 そもそも文字数とは何でしょうか。 たとえば、アルファベットの「A」は1文字と数えられそうです。 次の絵文字は、何文字になるでしょうか? この絵文字はiOSであれば14.5の環境では、UI上では上のように1文字のように表示されます。しかし、それ以前のバージョンでは、同じ文字列データでも😵💫のように2文字
今日はエープリルフールなので、JavaScriptに関する、にわかに信じがたい話(実話)をしたいと思います。実用的な話ではないので、息抜きがてらお読みいただき、「嘘だろ!?」とツッコミながらJavaScriptへの関心を少しでも深めていただければと思います。 思いつきでゆるめにとりとめもなく書いたため、内容がざっくりしているところがあります。詳しい方はコメントなどで補足いただけると助かります🙇🏻♂️ できるだけ十分に調査したつもりですが誤りなどあればご指摘いただければ幸いです。 JavaScriptは10日で作られました JavaScriptは最も利用される言語のひとつで、JetBrainsの統計によれば70%近くの開発者が使ったことがあるほど、広く普及している言語です。 ここまで普及したとなると、JavaScriptはどれほど練りに練って、じっくり作り込まれた言語だったのでしょうか
本稿では、JavaScriptのWeb Workerを手軽に試すために、Web Workerを動かすための最小限の手順とコードを示します。 使わないもの 最小限構成でいくので以下は使いません: コンパイラ: TypeScriptなどは使わず、素のJavaScriptで。 バンドラー: webpackなどは使いません。 フレームワークやライブラリ: ReactやNPMモジュールも一切なしでいきます。 コード量も最小限 コードも過剰にならない範囲でシンプルにします。 ファイル数もできるだけ少なく済ませます。 Web Workerとは Web Workerは、雑に言うと、ブラウザ上でCPU負荷が大きい処理を動かすのに役立つ仕組みです。ワーカーの処理は、UI側の処理をブロックしないのが特徴です。ワーカーにはUIとは別のスレッドが割り当てられます。CPUを複数台積んでるパソコンなら、ワーカーはマルチ
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この投稿では、「TypeScriptの文法や用語がよく分からない」という問題を解消してくれそうなツールを紹介します。 勉強しながらの見切り発車 最近はTypeScript未経験でも、TypeScript案件にアサインされることが増えてきているように思います。 運がいいと着手前にTypeScriptをじっくり学習する時間を与えられることがあります。しかし、多くのケースでは、見切り発車で開発に参加するのではないでしょうか。 コードリーディングから始まる TypeScript案件は、理解すべき既存のTypeScript/JavaScriptコ
ファイルの変更日時(modify date)を写真の撮影日時に変更する方法です。 exiftoolというEXIF情報を扱えるCLIツールを入れます。 $ exiftool -time:all -a -s CIMG2461.JPG FileModifyDate : 2019:10:23 10:38:14+09:00 FileAccessDate : 2019:10:23 10:42:15+09:00 FileInodeChangeDate : 2019:10:23 10:38:15+09:00 ModifyDate : 2015:03:15 09:21:53 DateTimeOriginal : 2015:03:15 09:21:53 CreateDate : 2015:03:15 09:21:53
次のページ
このページを最初にブックマークしてみませんか?
『@suinのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く