タグ

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

  • 名著「入門UNIXシェルプログラミング」の超詳細なレビューをしてみた(古い内容の訂正) - Qiita

    はじめに そりゃまあ 30 年も経てば古くなりますよ。「入門UNIXシェルプログラミング」は今もシェルスクリプトに関するオススメのとして名前が挙がる名著です。しかしこのは古いです。POSIX でシェルが標準化される以前ので、内容から判断するとおそらく 1990 年ぐらいの常識に基づいて書かれています。 古いから参考にならないと言うつもりはありません。しかしどれだけ優れたでも時間の流れには勝てません。良書であると思っているからこそ、古くなってしまった内容は訂正する必要があると考えています。なおシェルスクリプトに関する古いはこれだけではありません。オライリーから出版されているも古いばかりです。いつ頃に(原書が)書かれたなのかを確認した方が良いでしょう。 ということでレビューというていで、古くなってしまった内容の訂正を行いたいと思います。新しく「入門UNIXシェルプログラミング

    名著「入門UNIXシェルプログラミング」の超詳細なレビューをしてみた(古い内容の訂正) - Qiita
    auient
    auient 2022/06/20
    すごい詳しい。
  • ここがつらい! Slack API - Qiita

    半分ネタ記事です。あんまり真面目に書きません。 項目数が多いので,気力でなんとか書きます。分類は諦めます。 他にもある!っていうのがあったらコメント欄で教えて下さい。気が向いたら追記します。 公式の TypeScript 型定義がもはや型定義を諦めている 辛い度: ★★★★★ 辛い中でもこれはかなり上位に来るやつ。 こちらに OpenAPI 形式で仕様が定義されていて, https://github.com/slackapi/node-slack-sdk/tree/main/packages/web-api/types ここに仕様に基づいて TypeScript の型定義ファイルが吐かれるようになっています。 Git 管理されていないので,実際のリリースを見てみましょう。 https://unpkg.com/@slack/web-api@6.7.2/dist/response/Reacti

    ここがつらい! Slack API - Qiita
    auient
    auient 2022/06/19
    RESTじゃなくてRPCスタイルなのは意図的かと思ってた。RESTにしたらどんなURLになるんだろう
  • シグナルハンドラにprintf()を書いてはいけない - Qiita

    三行でまとめると シグナルハンドラ内でprintf()してはいけない というより、余計な処理を書いてはいけない もう一度言う、シグナルハンドラで余計なことをするな、非常に大事なことだ はじめに シグナルハンドラでやってよい処理は非常に限られるのに、全くルールを守らないサンプルコードが世の中に大量に出回っている。printf()するなんてもってのほかなのだが、カジュアルにそこらじゅうで見かけて非常に悲しい。 この記事では、そんな状況を少しでも改善したいと思い初心者向きに書いたものだ。そのため、下記では、回避するにはどう実装すればよいのか、ルールを破るとどうなるのか、といった点を先に簡潔に記述する。 なぜしてはいけないのか、POSIXだとかリエントラントだとか、は下の方に追いやっている。玄人は読んでてウズウズするだろうが、細かい話はできるだけ目につかないような構成としたため了解いただきたい。

    シグナルハンドラにprintf()を書いてはいけない - Qiita
    auient
    auient 2022/05/10
  • POSIXコマンドは「どの環境にもあるコマンド」ではないよという話 - Qiita

    はじめに POSIX コマンドはどの環境にもある(追加インストールの必要がない)コマンドだと思われがちですがこれは間違いです。POSIX コマンドにどの環境にもあるという性質は有りません。POSIX コマンドの中でどの環境にもあるコマンドは実際には半分程度しかありません。 関連記事 POSIX準拠 とは当はどういうことなのか?「POSIXで規定されたものだけを使う」ではありません 補足 Linux は POSIX に準拠してないからだという意見もあるかとは思いますが、現実に使われている環境を無視して「どの環境にもある」と主張しても意味はありません。 当にどの環境にもあるコマンドとは? 全 POSIX コマンドは 160 個 POSIX コマンドは全部で 160 個あります。そのうち 22 個はシェルにビルトインされているコマンドなのでどの環境にもあると言えます。残りは 138 個のコマ

    POSIXコマンドは「どの環境にもあるコマンド」ではないよという話 - Qiita
  • そろそろ確定申告の季節ですね - Qiita

    はじめに 今年(2022年)1月から、久々に個人でスマホアプリ配信の副業を再開してみました。 脱税(違法)は絶対ダメですが節税(合法)は限界までしたい と思っているタイプなので、以前副業でやっていた時に税関連のこと(所得税法)をそこそこ調べておいたつもりですが、かなり久々なので現行ルールの確認がてら、主にスマホアプリで副業した際の確定申告の要点をまとめてみます。 ストーリー(ポエム?)として文章を書きたかったので、グダグダと長文を書いてますが、要点は最後の「まとめ」で簡潔に書いてあります。 エンジニアとして働いている私たちには少し縁遠い「経理」に関する話題ですが、 趣味でスマホアプリを出しつつ、ついでにマネタイズしているエンジニアは多いハズ サラリーマンはどうしても確定申告と縁遠い スマホアプリで確定申告が必要な水準まで収益を上げる事は困難である(個人の場合99%以上の人は確定申告不要で、

    そろそろ確定申告の季節ですね - Qiita
  • 「別プロセスの PHP が今何をしているか」を実況するプログラムを PHP で作った - Qiita

    0 fgets <internal>:-1 1 <main> <internal>:-1 0 fgets <internal>:-1 1 <main> <internal>:-1 0 fgets <internal>:-1 1 <main> <internal>:-1 ... 0 time_nanosleep <internal>:-1 1 PhpProfiler\Lib\Loop\LoopMiddleware\NanoSleepMiddleware::invoke /home/sji/work/php-profiler/src/Lib/Loop/LoopMiddleware/NanoSleepMiddleware.php:33 2 PhpProfiler\Lib\Loop\LoopMiddleware\KeyboardCancelMiddleware::invoke /home/sji/

    「別プロセスの PHP が今何をしているか」を実況するプログラムを PHP で作った - Qiita
    auient
    auient 2022/02/08
  • Git はなぜ空のディレクトリを無視するのか? - Qiita

    LAPRAS アドベントカレンダー2021 の 17 日目の記事です。 概要 Git では空のディレクトリをそのままリポジトリに追加することはできません。 この問題は.gitkeep等を作成することで解決しますが、そのやり方を知ったとき 「なぜ普通のファイルと同じように追加できないのだろう?」 と疑問に思った方も多いのではないでしょうか。 というわけで記事では、空ディレクトリを追加できない仕様になっている理由について調査してみました。 Gitが管理するのはファイルの内容 「空ディレクトリをaddできないのは何故か?」という疑問への答えとして、 「そもそもどんなディレクトリもaddはできないから」がまず挙げられるでしょう。 もちろんgit add directory/とコマンドを打つこと自体は可能です。 しかしこのとき実際にインデックスに追加されるのは、そのdirectory自身ではなく、

    Git はなぜ空のディレクトリを無視するのか? - Qiita
  • POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき! - Qiita

    POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき!ShellScriptBashshellPOSIX はじめに find の出力を xargs にパイプで渡すというのはよく見かける使い方ですが、find -print0 | xargs -0 が使えない POSIX 準拠のシェルスクリプトでは find -exec {} + を使った方が良いです。安全かつ十分に速いからです。よく見かける -exec {} ; ではなく -exec {} + ですので間違えないようにしてください。多くのケースでは + の方が優れているのですが ; ばっかり使われているのを見ると、意外と知られてない気がします。 少しだけ予備知識として、-exec {} ; は -exec {} \; と ; をバックスラッシュでエスケープするのがよく見る使い方

    POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき! - Qiita
    auient
    auient 2021/09/16
  • スケールする要求を支える仕様の「意図」と「直交性」 - Qiita

    はじめに どんなソフトウェアエンジニアも拡張しやすくメンテナンスしやすいソフトウェアを作りたいと思っているはずです。また、どんなプロダクトマネージャも同様に拡張しやすいシンプルな要求を作りたいと考えているはずです。 しかし、将来の不確実性や発展性に対して見通しを立てるのは難しいものです。そのため、開発チームの思いとは裏腹にソフトウェアの複雑性はどんどんと増大していきます。気がついたら技術的負債と呼ばれるような手もつけられない泥団子になってしまうということもしばしばです。誰もが生産性を下げるために機能を追加したいわけではなく、ビジネス価値を提供するために機能を追加したいだけなのにです。 このような状況を避けるためにはどうしたらよいのでしょうか。今回はその一つの手段として、要求には隠れた「意図」があり、それを発見していくことの重要性についてまずはお話しします。さらにわかりやすい要求が持つ仕様の

    スケールする要求を支える仕様の「意図」と「直交性」 - Qiita
  • Firefoxは危険なJavaScriptに対応しない - Qiita

    Firefox / Safari MozillaはMozilla Specification Positionsというリストを公開しています。 IETFやW3C、TC39などが提唱しているWeb技術に対して、Mozillaはどのように評価しているかという立ち位置を表明したものです。 あくまで現時点での評価であり、もちろん今後の仕様変更などに伴い評価は変わる可能性があります。 Mozilla's Positions Mozillaはどのように評価しているかの分類。 under consideration 評価の検討中。 important 優れた概念であり、Mozillaにとっても重要である。 worth prototyping 優れた概念であるが、プロトタイプを作成し、フィードバックを得て磨きをかける必要がある。 non-harmful 有害ではないが、良いアプローチではなく、取り組む価値

    Firefoxは危険なJavaScriptに対応しない - Qiita
  • 色々書き比べた結果Tailwind CSSにしたという話 - Qiita

    Twitterでこういう発言を見かけまして Tailwind CSSはデザインに凝ってるサイトでは使えない こだわりが無い場合に向いている は?何いってんの? って思ったので、自分がいろいろ試した結果、Tailwind CSSを選んだ話を書きます。 はじめに 以前、Tailwind CSSは結構いいぞって話を書いたんですが、この記事の立ち位置的にはその続きみたいなものなので、以下の記事を始めにご参照いただけるとより分かりやすいかもしれないです。 この記事では、前回記事を書いた後、個人仕事でWebサイトをGatsbyで作り、その中で、どうやってCSSを書くのが良いのか模索した結果、自分はこれを選んだっていうのを、同じUIを色々な方法で書き比べたコードを並べつつ、どうのこうの筆者の考えを述べていきます。 その仕事はほとんど筆者が「まかせてくださいよーいい感じに作りますよー。デザインそろってない

    色々書き比べた結果Tailwind CSSにしたという話 - Qiita
    auient
    auient 2021/06/08
    文書とレイアウトの分離という目的が間違っていたのかな。人間はレイアウトされた文書が読みたいし、レイアウトはだいたい1つで十分、文書構造のためにレイアウトを犠牲にするよりその逆にしちゃう。
  • US配列ライクなJISキーボードにするカスタムキーコードを作った - Qiita

    初めまして、初投稿です US配列ライクなJISキーボードとは 自作キーボード作ってる人は US配列 と JIS配列 の違いは当然ご存じかと思います OSに認識されるキーボードがUS配列かJIS配列かによって同じキーコードでも入力される文字は違いますよね 例えばこんな感じ JIS配列 KC_2 -> 2 LSFT(KC_2) -> " US配列 KC_2 -> 2 LSFT(KC_2) -> @ これのせいで「印字されてる文字と入力される文字が違うんだけど!」みたいなこともよくあるそうですね まあ、OS側の設定でキーボードの言語を正しく設定すれば問題ないですが、使ってるPCで全部その設定するの面倒じゃないですか それに、US配列で半角/全角切り替えするには Alt + ` 入力しないといけないし(そういうカスタムキーコード作れば解決しますがそれはそれで) あと、US配列の40%キーボードとか

    US配列ライクなJISキーボードにするカスタムキーコードを作った - Qiita
  • Raspberry Pi Picoでマクロパッドを作る - Qiita

    作った目的 身内でDiscordを使ってAmong Usをやってるんですが、 マイクミュート等をコマンド入力で対応しており、毎回打つのめんどくせぇな? って事でマクロパッドを作ることにしました。 (諸事情により自動ミュートbotは使ってない) 元記事 当初はProMicroとQMK Firmwareでやろうと思ってたんですが、 なんかRaspberry Pi Picoでお手軽に出来るっぽかったのでやってみました。 部品調達 Raspberry Pi Pico x1(遊舎工房で購入) Cherry MX互換キースイッチ x6 (余ってたGateron赤軸) キーキャップ x6 (余ってたry 適当な電子工作用ワイヤー (あm ケース(3Dプリンターで出力) 仕事用にもう一つ作りたかったんですが、Picoが1回の購入で1枚のみという購入制限があったので、とりあえず一つだけ作ることに。 Rasp

    Raspberry Pi Picoでマクロパッドを作る - Qiita
  • macOS カーソル強制バインディングのすすめ - Qiita

    昨日の記事(macOSでディスプレイ1枚で作業する技術)が思いの外バズってびっくりしてるさぼです。せっかくなのでもう一つ連投しようかなと。 普段、macOSのデフォルトのショートカットキーでctrl-n, ctrl-p, ctrl-f, ctrl-bを使っている人向けのtipsです。 デフォルトの移動系emacsキーバインド ctrlとn, p, f, bで↓↑→←に移動できるのは使っている人ならわかると思います。これはターミナル上やemacsではうまく動きます。しかしそれ以外のアプリではショートカットキーの設定はバラバラで全然効かないものがあったり挙動が期待するものじゃなかったりします。どうにかならないかなーと思ってて解決策思いつきました。実験的にやってみて良さそうなので共有します。 ⌘英かな、またはKarabiner-elementsのどちらかで設定します。 追記(2020/11/16

    macOS カーソル強制バインディングのすすめ - Qiita
    auient
    auient 2021/04/26
    これハードウェアでやる方法もあるよな、自作キーボード方面
  • Ergodox(qmk firmware)の同時押し/レイヤー切替の設定メモ - Qiita

    はじめに qmk firmwareのドキュメントのAdvanced Keycodesで紹介されている設定周りのメモです。 自分で使用しているものだけ記載しています。気が向いたら他も追加していきます。 ※執筆時のqmk firmwareのバージョンは0.6.172です。 前提 Tap=短押し Hold=長押し SFT_T(KC_A)=Tap時にa、Hold時にShift。Mod Tap keyと呼ばれる。 LT(layer1, KC_A)=Tap時にa、Hold時にlayer1に切替 SFT_TやLTなどについてはErgoDoxのキーマップをいじる時に見るチートシートがわかりやすいです。 TAPPING_TERM TapからHoldに切り替わるまでの押下時間(ms)。 デフォルト値は200。 RETRO_TAPPING TAPPING_TERMを経過しても、他のキーを押していなければTapと

    Ergodox(qmk firmware)の同時押し/レイヤー切替の設定メモ - Qiita
    auient
    auient 2021/04/25
    RETRO_TAPPING知らなんだ
  • アルゴリズム・AtCoder のための数学【前編:数学的知識編①】 - Qiita

    こんにちは、大学 1 年生になったばかりの E869120 です。 私は競技プログラミング趣味で、AtCoder や日情報オリンピックなどに出場しています。ちなみに、2021 年 4 月 7 日現在、AtCoder では赤(レッドコーダー)です。 記事では、アルゴリズムの学習や競技プログラミングで使える数学的な部分を総整理し、それらについて解説したいと思います。前編・中編では数学的知識、後編(2021/4/26 公開予定)では数学的考察の側面から書いていきます。 【シリーズ】 アルゴリズム・AtCoder のための数学【前編:数学的知識編①】 ← 記事 アルゴリズム・AtCoder のための数学【中編:数学的知識編②】 アルゴリズム・AtCoder のための数学【後編:数学的考察編】 1. はじめに 21 世紀も中盤に入り、情報化社会(いわゆる「IT 化」)が急激に進行していく中、

    アルゴリズム・AtCoder のための数学【前編:数学的知識編①】 - Qiita
  • 第三の答え、Stimulusjs - Qiita

    昨今のフロントエンドトレンドを鑑みてフロントエンド技術構成を考えると今はどんな選択肢が主流でしょう? それぞれ並列なものではないですが、React? Vue? Next? Nuxt?そんなワードがきっと頭に浮かぶでしょう。 今の時代、jQueryでゴリゴリUIを記述するとなんだか白い目でみられる。 そう、令和とはそういう時代です。 界隈の最先端おじさんをみると、build processがあるのは当然で、HTML/CSSはjsが吐き出すもので、それが最大限正しいように語られています。 確かにExising Domのアプローチで界隈から評価されてるライブラリはなく、さほどいい選択肢には見えません。(個人の主観) ではそれらのアプローチの何がそんなにいいんでしょう? 過去から現在まで我々は何に苦心して、それらはそれをどう解決してくれたのでしょう? 雑に紐解いていきましょう。(今回はUI構築の

    第三の答え、Stimulusjs - Qiita
  • Java7からJava16までの変遷。 - Qiita

    まえがき ずっとJava11を使っていました。そのためすっかりラムダ式やStreamAPIでの書き方に慣れていたのですが、最近Java7を使って稼働しているプロジェクトに異動したので、何ができて何ができないのか、ちょっと調べてみました。 Javaの変遷 私見ですが主要だと思う仕様変更を並べてみました。アプリ実装に関係する部分のみピックアップしています。 このバージョンのこれは入れておいたほうが良いよ!との意見がありましたらコメントにぜひお願いします。 Java8 2014/03/18 正式リリース(GA) https://openjdk.java.net/projects/jdk8/ ラムダ式 https://openjdk.java.net/projects/lambda/ https://qiita.com/sano1202/items/64593e8e981e8d6439d3 pub

    Java7からJava16までの変遷。 - Qiita
    auient
    auient 2021/02/09
  • C++からRustに移行して1年経って思ったこと - Qiita

    はじめに この記事は「プログラミング技術の変化で得られた知見・苦労話【PR】パソナテック Advent Calendar 2020」のために書かれたものです。 僕は去年の11月から一念発起してRustの勉強を初めて趣味同人ゲームを開発しています。元々C++を4年程使っていて「C++最高、みんなC++使おう」とか友人に布教していました。しかし、C++プログラマは「一番自分たちの言語の批判に対して強くなる」と言われるほどC++はよくディスられます。もちろん僕も例外ではありませんでした(笑)。 一応僕もPythonを適当に使うようになってからC++のcppとhppを組み合わせるようなCの名残を感じるところや他言語と比べたときの標準ライブラリの貧弱さ、コードが冗長になりやすい点など使いにくいなあと思いはじめましていました。ですがPythonはあくまでも適当に使ってただけでしたし、一通り書けるJa

    C++からRustに移行して1年経って思ったこと - Qiita
    auient
    auient 2020/12/09
  • 今時のPythonはこう書く2020 - Qiita

    はじめに システム作ってるとかライブラリ作ってるみたいなある程度Pythonを綺麗に1書くことが求められる方々に向けた記事です。 (機械学習系のライブラリを使うためにPython書いてる方とか、初学者の方にはちょっとあわないかも知れません) 綺麗に書くための作法の難しさって共有が面倒なところだと思うんですよね。その書き方は間違いじゃない、間違いじゃないけどもっといい書き方があるぞみたいなやつってなかなか指摘し辛いですし、じゃあ1人に対してレビューしたら他のメンバーにはどう伝える?そもそも伝える必要?俺の工数は?みたいになりがちです。 一番いいのはこういう時はこう書く!みたいなドキュメントを作って「ドキュメント違反です」ってレビューをしてあげることなんですが、まーそれもそれで超面倒じゃないですか。なのでこの記事がそのドキュメントの代わり、とまではいかなくとも礎くらいになればいいなと思って書き

    今時のPythonはこう書く2020 - Qiita