すべての記事
-
Google Gemma 4|マルチモーダル対応の Apache 2.0 オープンモデル、スマホでも 1.5GB で動く
Google DeepMind が公開した Gemma 4 は Apache 2.0 ライセンスのオープンウェイトモデルファミリで、31B Dense・26B MoE・E4B・E2B の 4 サイズを揃えています。マルチモーダル入力、ネイティブ function calling、エッジ環境では 1.5GB のメモリで動作するなど、ベンチマークから新しい Agent Skills、スマートフォンからワークステーションまでの実行方法までを実機目線で紹介します。
-
nano テキストエディタの使い方|Linux・macOS ターミナル入門ガイド
ターミナル内で設定ファイルやスクリプトを編集するとき、初心者にもっとも優しいテキストエディタが nano です。vim のようにモード切り替えを覚える必要がなく、開いたらそのままタイピングで編集でき、画面下部にショートカットキーが常時表示されるのでコマンドを暗記する必要もありません。本記事では Linux と macOS でのインストールから始め、ファイルの開く・保存、カーソル移動、検索と置換、切り取り・コピー・貼り付け、undo/redo の復元機能、さらに .nanorc によるシンタックスハイライトと行番号表示の設定まで、nano の操作を一通り紹介します。完全なショートカット対応表も付いているので、ターミナル内のファイル編集で迷うことがなくなります。
-
OpenJDK ディストリビューションの選び方|Temurin・Corretto・Zulu・GraalVM ほか主要 9 種の比較
Java をダウンロードしようとすると OracleJDK、OpenJDK、Eclipse Temurin、Amazon Corretto、Azul Zulu、Microsoft Build of OpenJDK、IBM Semeru、Oracle GraalVM、BellSoft Liberica と選択肢が多すぎて迷います。同じ "JDK" でもライセンス、メンテナー、プラットフォーム対応はすべて異なります。本記事では Java 8 から Java 25 までの Oracle ライセンス変遷(2023 年の従業員数ベース課金を含む)を整理したうえで、主要な 9 種類のディストリビューションを用途別に比較します。
-
Java の Arrays.asList() と List.of() の違い|可変性・内部実装・使い分け
Java で 1 行で List を作る方法は 2 つあります — Java 1.2 からある Arrays.asList() と、Java 9 で追加された List.of() です。一見同じように見えますが、返ってくる List の実装クラスと可変性ルールはまったく別物です。本記事では両者の違い、内部でどう実装されているか、そしてどちらを選ぶべきかを解説します。
-
Content-Disposition で Unicode ファイル名を扱う方法|Java / Spring の IllegalArgumentException 対策
ダウンロード API で IllegalArgumentException が発生し、「code point が 0〜255 の範囲外」と怒られる場合、原因は ISO-8859-1 です。HTTP Header は生の UTF-8 を受け付けないため、Content-Disposition ではファイル名をパーセントエンコードして filename* パラメータで渡す必要があります。本記事では Java / Spring での最小限の修正方法を紹介します。
-
Java 8 日付・時刻 API 入門|LocalDateTime / Instant / Duration 実用サンプル集
Java 8 以前は Unix タイムスタンプを long で保持したり、java.util.Date に頭を悩ませたりしていました。Java 8 で導入された java.time パッケージは、イミュータブルでタイムゾーン対応の日付・時刻・期間を扱える、すっきりした API です。本記事では主要クラスの概要と、実際に使う操作のサンプルコードをまとめて紹介します。
-
Java で拡張子と MIME タイプを取得する方法|Files.probeContentType / Path.of 対応
Apache Commons や Guava を入れなくても、Java の標準ライブラリだけでファイル名から拡張子と MIME タイプは取得できます。Java 7 の NIO(Files.probeContentType)と Java 8 の Optional / Stream API を組み合わせれば、短く null 安全に書けて、そのままコピペで使えるユーティリティクラスに仕立てられます。Paths.get と Path.of の違い、そして Files.probeContentType の OS 依存な挙動も合わせて整理します。