タグ

ブックマーク / qiita.com (221)

  • 祝🎉 POSIX.1-2024 (Issue 8) 改定!16年ぶりの大幅改定でシェルスクリプトはどう新しくなるのか? - Qiita

    FreeBSD では 2024-05-31 に 200112 から 200809 への変更がようやく行われました(一度間違えて 200808 と書いてしまっていますが)。 https://cgit.freebsd.org/src/commit/?id=2e30926a68 https://cgit.freebsd.org/src/commit/?id=6e0278408e macOS は FreeBSD のユーザーランドのコマンドを使用しているため、そのせいで 200112 のままだった可能性も考えられますが、シェルやカーネルは FreeBSD のものではないため、FreeBSD が変更になったからと言って macOS が更新されるとは限らないでしょう。Solaris 10 と 11 ではディレクトリごとに準拠バージョンが異なるバイナリが配置されており以下のようになります。Solaris

    祝🎉 POSIX.1-2024 (Issue 8) 改定!16年ぶりの大幅改定でシェルスクリプトはどう新しくなるのか? - Qiita
  • 【zsh】zshのヒストリ関連の変数、オプションまとめ。おまけでfcコマンドについて - Qiita

    はじめに zshのHistory関連のオプションとかについてまとめてみた記事 ですが履歴展開については触れません メモベースなのはご愛嬌 man 記事での用語 イベント:履歴として積まれるコマンドライン群 履歴リスト:メモリに記憶する履歴一覧 履歴ファイル :履歴一覧を保持するファイル zshの仕様的な話 デフォルトだと イベントは履歴ファイルに保存されない ファイルとして保持したい場合は HISTFILEおよび SAVEHIST を指定 履歴ファイルが存在する場合は、シェル起動時にファイルに保持している履歴が履歴リストに読み込まれる。また、セッション終了時に履歴リストの内容が履歴ファイルに書き込まれる ヒストリ関連の変数一覧 histchars イベント呼び出し等に使用される3つの文字列。 ! とかのこと。変えるな。 HISTFILE 履歴ファイルの保存先。 設定なしの場合、ファイルと

    【zsh】zshのヒストリ関連の変数、オプションまとめ。おまけでfcコマンドについて - Qiita
  • シェルとUNIXコマンドの未来 ~ これからの10年で起きるシェルスクリプトの変化 - Qiita

    はじめに シェルスクリプトの世界は今後 10 年で大きく変化します。10 年という数字は切りが良い数字を持ってきただけで根拠はありません。これより長い時間がかかるかもしれませんし、もしかしたら短くなるかもしれません。しかし確実によりよい方向に変わっていくでしょう。Unix/Linux の標準コマンドはさまざまな問題を抱えています。Unix/Linux の標準コマンドに依存している限りシェルスクリプトに大きな改善はありません。これからのシェルスクリプトの世界は Unix/Linux の標準コマンドに依存しない世界です。それがどういうものになるのかをこの記事で解説しています。この記事は私の予言であり目標です。 シェルスクリプトの失われた30年の進化を取り戻す! 残念なことに、シェルスクリプトの世界は 30 年前から大きく変わっていません。それまでの間、プログラミング言語の世界、ソフトウェア開発

    シェルとUNIXコマンドの未来 ~ これからの10年で起きるシェルスクリプトの変化 - Qiita
  • シェル芸の可読性を向上させるマルチライナー記法のススメ - Qiita

    マルチライナー記法とは? マルチライナー記法とは、その名の通りシェル芸をワンライナーではなくマルチライナー(複数行)で書くことです。長すぎる行をワンライナーで書くと以下のように横スクロールが必要になって非常に読みにくくなります。(コードは Convert long single line command to a bash shell script より借用。長いコードとして利用しているだけで中身に意味はありません)。マルチライナー記法はこのようなワンライナーを読みやすく書くことです。 nice --20 iperf3 -c somelocation.com -f k | while IFS= read -r line; do echo "$(date) $line"; done | tee onespeed.txt | tee -a speeds.txt; sleep 30 ;cat o

    シェル芸の可読性を向上させるマルチライナー記法のススメ - Qiita
    itchyny
    itchyny 2023/12/26
    タイトルの通りシェル芸をする人に向けた記事で、業務で書く自分には関係ない話だなと思った。スクリプト化して再利用が基本で、物理的だろうと論理的だろうと、こんなに長いワンライナーを人に渡すことはないなぁ。
  • Java 21新機能まとめ - Qiita

    Java 21が2023/9/19にリリースされました。 https://mail.openjdk.org/pipermail/jdk-dev/2023-September/008267.html The Arrival of Java 21! LTSであり、パターンマッチングや仮想スレッドが正式化され、プレビューとして入ったString Templatesや無名クラス&インスタンスメインメソッドも面白い機能なので、大切なリリースになっていると思います。 詳細はこちら JDK 21 Release Notes Java SE 21 Platform JSR 396 OpenJDK JDK 21 GA Release APIドキュメントはこちら Overview (Java SE 21 & JDK 21) 追加されたAPIまとめはこちら https://docs.oracle.com/en/

    Java 21新機能まとめ - Qiita
  • PGP 鍵を用いたファイルの暗号化 - Qiita

    PGP 鍵を使うためには、gpg コマンドをインストールする必要があります。 mac ならbrew, CentOS ならyum でインストールできます。 鍵の作成 gpg --gen-key コマンドでできます。 鍵の種類、有効期限、名前、メールアドレス、パスフレーズ、コメントを入力します。 以下はコメント、パスフレーズなしで作ってます。 % gpg --gen-key [~/.gnupg] gpg (GnuPG) 1.4.20; Copyright (C) 2015 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. ご希望の鍵の種類を選択

    PGP 鍵を用いたファイルの暗号化 - Qiita
  • SVGの属性について理解する - Qiita

    はじめに ロゴやアイコン、テキストなど昨今のWeb制作では当たり前に使われているSVGですが、その属性については意外と把握できていない部分が多いのではないでしょうか。(自分もその1人) また、SVGをデザインツールから書き出した場合、しばしば必要のない属性が付与されます。不要な属性なら僅かながらも軽量化にもつながるので削除しておきたいですよね。 ということで、SVGにおいて必要・不要な属性を概要とともにまとめたいと思います。 必須属性 SVGに最低限必要な属性は以下の2つです。 属性の詳細についてはよく使われる属性として後述します。 1. xmlns 2. viewBox よく使われる属性 xmlns 外部ファイルとして使用する場合には必須 インラインで使用する場合は省略可能 xmlns="http://www.w3.org/2000/svg" 名前空間を宣言するための属性で、HTMLとS

    SVGの属性について理解する - Qiita
  • Process Substitutionとexec redirectで画面出力を加工するときの問題点と解決、そして無限に寝る話 - Qiita

    Process Substitutionとexec redirectで画面出力を加工するときの問題点と解決、そして無限に寝る話ShellScriptBash // すんごく久々に日語長文書いたらなん文体が変……。 はじめに1: Process Substitutionの話 bashにはProcess Substitution(プロセス置換)という機能がある。 簡単にいうと、子プロセスを起動して、その入出力をパイプで繋げられる機能。 タダのパイプと何が違うの?というと、例えば複数のコマンドを繋ぎたいときに便利。 例えば二つのコマンドの結果のdiffを見たいとき、パイプだと1つのプロセスの出力しか繋げないので、一時ファイルや名前付きパイプのお世話になる。

    Process Substitutionとexec redirectで画面出力を加工するときの問題点と解決、そして無限に寝る話 - Qiita
  • 3年の運用で編み出した CircleCI 超設計大全 - Qiita

    個人でも業務でもすごくお世話になっている CircleCI について説明したいと思います。 設定する際の Tips など個人的な観点を元に紹介していきます! CircleCI の構造をざっくりと理解する CircleCI で設定する .circleci/config.yml ファイルの中身の構造について理解していきます。 config.yml は大きく分けて、 version, orbs, executors, commands, jobs, workflows の6つのキーワードに分かれています。 この6つのキーワードを理解することで CircleCI がよくわからない方もざっくりと理解することができます。 version キーワードを除くその他のキーワードを見てもらうとわかりますが、基的に ****s になっているので複数指定することができます。 では順番にそれぞれのキーワードについ

    3年の運用で編み出した CircleCI 超設計大全 - Qiita
  • シェルの歴史 総まとめ(種類と系統図)と POSIX の役割 〜 シェルスクリプトの現在・過去・未来【POSIX改訂間近】 - Qiita

    シェルの歴史 総まとめ(種類と系統図)と POSIX の役割 〜 シェルスクリプトの現在・過去・未来【POSIX改訂間近】ShellScriptBashUNIXPOSIXksh はじめに Linux / Unix をターミナルから使う時に使用するソフトウェアがシェルです。シェルの役目は CLI ベースのユーザーインターフェースとしてユーザーからの操作でプログラム(主に CLI コマンド)の実行を仲介したり、その操作を自動化するためのシェルスクリプトを実行する機能を持っています。現在最も使用されているシェルは GNU プロジェクトが開発している bash ですが、OS によって異なるさまざまなシェルが使われています。 シェルの最低限の仕様は POSIX で標準化されています。この標準規格に準拠しているシェルは「POSIX(準拠)シェル」と一般的に呼ばれています。シェルは大別すると「POSIX

    シェルの歴史 総まとめ(種類と系統図)と POSIX の役割 〜 シェルスクリプトの現在・過去・未来【POSIX改訂間近】 - Qiita
  • echoコマンドの移植性が低い歴史的理由とPOSIXの改定方針 ~ 次期POSIXでbashのechoはPOSIX準拠になる! - Qiita

    echoコマンドの移植性が低い歴史的理由とPOSIXの改定方針 ~ 次期POSIXでbashのechoはPOSIX準拠になる! はじめに 実は bash に組み込まれた echo コマンドは POSIX に準拠していません。しかし 2023 年に予定されている次期 POSIX (Issue 8) の改定で、POSIX 準拠の動作になります。🎉🎉🎉 私のこの言い方には違和感を感じるかもしれません。「POSIX に違反している bash が問題点を修正して、POSIX に準拠させるのではないのか?」と。いいえ違います。POSIX 側が仕様を修正することで、bash は何も変更せずに過去のバージョンも含めて POSIX に準拠するようになります。面白いですね。 この記事は echo コマンドの移植性の問題の歴史を振り返りながら、それを例に POSIX 標準化団体がどのような方針で標準規格を

    echoコマンドの移植性が低い歴史的理由とPOSIXの改定方針 ~ 次期POSIXでbashのechoはPOSIX準拠になる! - Qiita
  • シェルスクリプトの変数はダブルクォートしなければいけない!という話 - Qiita

    TL; DR 変数をダブルクォートしない使い方は上級者向けの危険な機能です! $@ と $*(または配列の全要素)をダブルクォートしない使い方は知る必要すらありません! ShellCheck を導入すれば誰でも簡単に正しい書き方がわかります!! 2021-08-21 補足 この記事は dash や bash などの POSIX シェルの一般的な動作を解説しており zsh のデフォルトとは異なります。記事の中でも説明していますが zsh の場合はシェルのオプションを変更することで POSIX 準拠の動作に変更することができます。zsh に関しては後半の「zsh に関する注意点」も参照してください。 はじめに プログラミング言語は、言語によって記号の意味が異なることがよくあります。クォーテーションマークはその一つです。C 言語ではシングルクォートは文字リテラル(一文字)を意味し文字列はダブルク

    シェルスクリプトの変数はダブルクォートしなければいけない!という話 - Qiita
  • シェルスクリプトの [ ] と [[ ]] の違いを歴史的に解説 〜 言語設計者の気持ちになって理解しよう - Qiita

    はじめに bash などのシェルには [ ... ] と [[ ... ]] の二種類の比較方法があります。一つはコマンド、もう一つはシェルの文法なのですが、具体的にはこの二つは一体何が違うのでしょうか? そもそもなぜ似ている機能が二つもあるのでしょうか? この記事は言語設計者の気持ちになって考えることで、その理由を解き明かそうという記事です。 なお、違いについての簡単な説明については「test と [ と [[ コマンドの違い - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog 」の記事がよくまとめられていますので紹介します。一通りの違いを素早く知りたい方はこちらを参照してください。 参考 シェルの歴史や種類については「シェルの歴史 総まとめ(種類と系統図)と POSIX の役割」に詳しくまとめています(系統図とか頑張って書いたので見

    シェルスクリプトの [ ] と [[ ]] の違いを歴史的に解説 〜 言語設計者の気持ちになって理解しよう - Qiita
  • Bashの入出力リダイレクトまとめ - Qiita

    # 入力 command < file # ファイルの内容をコマンドの標準入力に渡す #----------------------------------------------------------- # 出力 command >&2 # 標準出力を標準エラー出力にリダイレクト command > file # ファイル作成 or 上書き command >> file # 追加出力。ファイルがなければ作成 command 2> file # 標準エラー出力をファイルにリダイレクト(作成 or 上書き) command &> file # 標準出力/エラー出力を同一ファイルにリダイレクト command > file 2>&1 # 同上 command &>> file # 標準出力/エラー出力を同一ファイルに追加書き込み command >> file 2>&1 # 同上 comm

    Bashの入出力リダイレクトまとめ - Qiita
  • ID生成大全 - Qiita

    セッションIDやアクセストークン、はたまた業務上で使う一意の識別子など、いろんなところで一意のIDを生成しなきゃいけないケースが存在します。 そこで世間で使われているIDの生成方法について調べてみました。 選択基準 ID生成における要求として、以下の観点が上げられるかと思います。 生成の速度 大量にデータを短期間で処理し、それらにIDを付与する場合、ID生成そのものがボトルネックとなることがあります。 推測困難性 IDを機密情報と結びつける場合、IDを改ざんされても、機密データが見れないようにできている必要があります。 順序性 採番した順にデータをソートする必要がある場合は、IDがソートキーとして使えないといけません。 それぞれについて各生成手段を評価します。 ID生成の手段 データベースの採番テーブル 採番用のテーブルを作り、そこで番号をUPDATEしながら取得していくやりかたです。古い

    ID生成大全 - Qiita
  • 【エンジニアリング組織論への招待】を10~15分で読めるように1万文字程度でまとめてみた - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? ■ はじめに エンジニアリング組織論への招待というを読みました。 ジョブ理論 に続く名著でした。 理想に向けて、事業を最速かつ生産性高く成長させるには、「未来」と「他人」という2つの不確実性をマネジメントすることで、成し遂げられる ソフトウェア開発における不確実性のマネジメントには、不確実性に立ち向かえるチーム開発が何よりも重要である(ex. メンタリング、権限移譲、信頼関係、透明性) の2点を中心に、事業成長×組織の幸せに必要なフレームワークを提供してもらえるものでした。 ソフトウェア関連の事業やプロダクトに関わっている人(特にマネ

    【エンジニアリング組織論への招待】を10~15分で読めるように1万文字程度でまとめてみた - Qiita
    itchyny
    itchyny 2022/01/11
  • 「技術的負債」への処方箋と「2つのDX」 - Qiita

    はじめに 稿は、日経クロステックにて筆者が昨年連載していた3回分の記事一部変更して1つにまとめたものです。 https://xtech.nikkei.com/atcl/nxt/column/18/01394/ 有料記事として配信されておりますが、無料でも閲覧できるようにということで日経クロステック様に許可を得てQiitaにも掲載しています。 第1回:技術的負債はなぜ生じるか。 第2回:ソフトウエア開発を「制御」する意外な処方箋 第3回:技術的負債への取り組みはなぜ「2つのDX」につながるのか。 第1回:技術的負債はなぜ生じるか。 年間12兆円ものマイナスの影響をもたらす技術的負債(あるいはレガシーシステム)はどのように生まれるのでしょうか。それを防ぐ方法はあるのでしょうか。第1回は、技術的負債をとりまく歴史をたどりながら、ソフトウェアエンジニアではない人にも理解できるようにその正体に迫り

    「技術的負債」への処方箋と「2つのDX」 - Qiita
  • なぜ、ソフトウェアプロジェクトは人数を増やしても上手くいかないのか - Qiita

    はじめに ソフトウェアプロジェクトには不思議な性質があります。現状のスケジュールに課題を感じて、短くするために人員を投下しても、なかなか思い通りに短くならない。それどころか悪化してしまうことがあります。場合によってはプロジェクト自体が破綻して失敗してしまうことすらあります。 今回は、このようなソフトウェアプロジェクトに潜む直感に反する性質を数理的なモデルを介して理解していく試みです。ある種の思考実験としてお楽しみください。 宣伝 Qiitaさんとコラボ企画でアドベントカレンダーをつくりました。 DXをめちゃくちゃ改善した話を募集しています。 https://qiita.com/advent-calendar/2021/dx-improvement 10人の妊婦がいても1ヶ月で一人の子供は生まれない これは誰かの技術力やプロジェクトマネジメント力に欠陥があるのではなく、「人月の神話」で有名な

    なぜ、ソフトウェアプロジェクトは人数を増やしても上手くいかないのか - Qiita
  • macOS Big Sur で 日本語 IM のスペースを常に半角にする - Qiita

    目次 目次 ⚠️ 注意 環境 手順 1. FileVault をオフにする 2. System Integrity Protection (SIP) を無効にする 3. Signed System Volume (SSV) 認証を無効にする 4. システムファイルを書き込み可能としてマウントする 5. 設定ファイルを編集する 6. SSV を更新する 問題 参考文献 ⚠️ 注意 Big Sur でも Catalina 以前と同じように KeySetting_Default.plist と KeySetting_Windows.plist を編集することで、スペースを常に半角にすることができました。 しかし、副作用として SIP と SSV 認証が無効な状態でしか起動できなくな (るのと、恐らく FileVault の有効化をしたらまずいことにな) ります。 なにか続報があったら追記します。

    macOS Big Sur で 日本語 IM のスペースを常に半角にする - Qiita
    itchyny
    itchyny 2021/10/22
  • GoのInterfaceについて - Qiita

    この章ではGoのinterfaceが内部でどのように機能しているかを解説する 例を挙げるなら 関数やメソッドが実行時にどのようにコールされるか interfaceがどのように形成されるか dynamic dispatch がいつ、どのように、どれくらいのコストを伴って機能するか 空のインターフェース interface{} や その他の特殊なインターフェースが通常のインターフェースとどう異なるか インターフェースの合成について Type assertion(型アサーション)がどう実行されコストはどの程度か などだ。 掘り進めていくと、Goコンパイラによる様々な最適化手法や現代のCPUの実装の詳細などの低レイヤの技術に触れることになるだろう Table of Contents Interface 入門 関数とメソッドの呼び出し 直接呼び出し 暗黙の参照外し 詳解interface データ構造

    GoのInterfaceについて - Qiita