タグ

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

  • なぜsortコマンドはuniq機能を含んでいるのか?(Unix哲学はどこ行った!?) - Qiita

    Unix 哲学的に考えれば、行を並び替える sort コマンドと重複行を取り除く uniq コマンドは別のコマンドであるべきなように思えます。しかし sort コマンドには -u オプションとして uniq コマンドに相当する機能が組み込まれています。なぜそうなっている(そうなってしまった)のかを「ソフトウェア作法(さくほう)」を参照しながらこの記事で明らかにしたいと思います。 関連記事 Unix哲学「一つのことをうまくやる」は単機能のコマンドを作ることではない 「誰」がuniq機能をsortコマンドに組み込んだ!? 熱烈的な Unix 哲学の信者は「どうせ Unix 哲学を理解しない GNU が便利だと思ってオプションを追加したのだろう」と考えるかもしれません。しかし uniq 機能が組み込まれたのは Version 7 Unix、つまり Unix の開発者が組み込んだのです。これは 1

    なぜsortコマンドはuniq機能を含んでいるのか?(Unix哲学はどこ行った!?) - Qiita
    hylom
    hylom 2024/05/17
    自分もいつもsort | uniqしてた
  • rebase 教から脱退します - Qiita

    rebase で色々あったので、備忘録として簡単に書いていきます。 前提背景 開発作業中、元のブランチに変更があった場合、私は変更を取り込むために常に rebase を使用します。これを選ぶ主な理由は「コミットログが見やすく保たれるため」です。 Gitには同様のコマンドとして merge がありますが、これは変更を取り込む際にマージコミットを作成する点が異なります。私はマージコミットによってコミットログが煩雑になると感じています。 このような理由から、私はrebaseを積極的に使用しています。 何があったのか 簡単に言うと、レビュー中にブランチ元の変更があったので、 git rebase からの git push -f origin [ブランチ名] やったらレビュアーのコメントが吹き飛びました。 いやー、めっちゃ怒られたよね💦 原因 「レビュー中」という状況がまずかった。 コードを共有し

    rebase 教から脱退します - Qiita
    hylom
    hylom 2024/04/21
    push -fコマンドを使うなルール、チーム開発では絶対ルールだと色々なところで言われていると思うのだが……rebaseを使うこと自体は悪くなくて、fast-forwardじゃない状態を作るのが良くない
  • C# Win32API完全入門 - Qiita

    はじめに 対象とする読者について 記事の対象者としては以下のような人を想定しています。 C#でこれからWin32APIを使ってみたい。 C言語のことがあまりよく分かっていない。 今までは適当に使っていたので一度きちんと理解したい。 自分が同じような状況であったため、一から調べて整理してみました。自分が理解した順番や内容で記載することで、また、具体的な使用例によってできることの広さや動作を感じ取ってもらうことで、理解の助けになればと思っています。 但し、分かっている人からすると冗長な説明になっている部分や好ましくない内容、正確性に欠ける内容などもあると思います。実際に使用する場合はその点にご留意願います。 Win32APIについて Windows API - Wikipedia Microsoft Windowsのシステムコール用APIのこと。特に32ビットプロセッサで動作するWindow

    C# Win32API完全入門 - Qiita
    hylom
    hylom 2024/04/01
    懐かしい。老害なのでWin16 APIとWin32s APIの話もしたくなってくる
  • 格安PCのWindows がボリュームライセンスという闇 - Qiita

    TL;DR 格安のWindows PCを購入したらWindowsがボリュームライセンスだったんだが!? HWだけほしくて買ったので個人としてはセーフ! 安いものを買うときは安かろう悪かろうの気持ちで! 概要 Proxmoxの自宅評価用に格安PCをポチりました。 ※自分で組んだり、ラズパイあたりを使ったほうが安いのかと思ったのですが、ミニPCのほうが安かったので。 でもせっかくWindowsがインストールされているなら何か有効活用(Proxmox上のゲストOSにインストールとか)できないかな~ってライセンス確認したらびっくりした、という闇。 Windows OSのライセンスの種類 まずはWindows OSのライセンス種別の確認です。 ライセンス種別 ライセンスの対象 購入方法 利用者 備考

    格安PCのWindows がボリュームライセンスという闇 - Qiita
    hylom
    hylom 2023/12/12
    元々MSは格安PC向けに激安でWindowsライセンス提供していたので、メーカー側にわざわざライセンス違反するメリットはないと思っている
  • pythonは_(アンダースコア)の使い方を理解するだけでプロフェッショナルになれる - Qiita

    1. 第3次AIブームの到来 米Google DeepMindが開発した人工知能AI)の囲碁プログラム「AlphaGo」が世界トップレベルの実力を持つ韓国のプロ棋士、李世ドル(イ・セドル)九段に4勝1敗と大きく勝ち越したことが着火剤となり、2015年より第3次AIブームへと突入した。(ちなみにAIが誕生したのは1950~1960年代で第1次AIブームの到来) 1.1 余談になるがAlphaGo(4億円の知能)はなぜすごいのか? AlphaGoがそれ以前のチェスや将棋AIと異なるのは、 畳み込みニューラルネットワーク(CNN) を応用している点だ。このCNNはさらに強化学習を行い、自分自身と対局を数千万回も繰り返した。 間違っていたらすみません、、、、 1.2 ChatGPTによる生成AIのブーム ChatGPTに代表されるLLMは以前から開発競争が繰り広げられていた。 GPT1は201

    pythonは_(アンダースコア)の使い方を理解するだけでプロフェッショナルになれる - Qiita
    hylom
    hylom 2023/11/01
    Pythonのアンダースコア2個は基本的に特別な処理をする予約語的なもので使われているのでカジュアルに使うものではないしアンダースコア1個についてはあまり深い意味はない
  • VSCode の新機能「built-in port forwarding」を使いローカルサーバーにインターネット側からアクセス - Qiita

    VSCode の新機能「built-in port forwarding」を使いローカルサーバーにインターネット側からアクセスHTMLJavaScriptNode.jsVSCode はじめに この記事は、以下の公式ポストや、VSCode のアップデート後のリリースノートにも出ていた「built-in port forwarding」を試してみた話です。 この機能を使うと、ローカルにあるサーバにインターネットからアクセスできるようになります。 同様のことを実現するものには、有名どころの 1つに「ngrok(エングロック)」があったり、その他にもたくさんの類似サービスがあります。 実際に VSCode の built-in port forwarding を試してみる それでは、VSCode の built-in port forwarding を試してみます。 自分が試す際に参考にした情報は

    VSCode の新機能「built-in port forwarding」を使いローカルサーバーにインターネット側からアクセス - Qiita
    hylom
    hylom 2023/09/10
    セキュリティ理由でngrok使用禁止勧告が出た弊社、これによってVSCodeも使用禁止にされるのではないかと心配している……
  • 技術に興味がなくて何が悪い? - Qiita

    TL;DR 技術に興味がなくても、エンジニアとして生きていくことはできる。 対象読者 自分を技術に興味がない側の人間だと思う方 筆者について Webアプリケーションの開発エンジニア。主な仕事はプログラム詳細設計、画面設計、コーディング。 技術にあまり興味がない。 初めに エンジニア界隈では、以下のような主張がしばしば見られる。 休日に勉強するべきである。 最新の技術動向は常にチェックするべきである。 技術イベントには参加するべきである。 毎日コードを書くべきである。 レガシーな技術ではなく、モダンな技術を習得するべきである。 etc... そしてこれらの"べき論"がさらに加速すると、 「技術に興味がない人はエンジニアに向いていない」 という主張すら出現し、それに同調する声も少なくない。 最近、とあるSNSで以下のようなやり取りを見かけた。 駆け出しエンジニアの質問 休日に勉強するべきですか

    技術に興味がなくて何が悪い? - Qiita
    hylom
    hylom 2023/08/15
    逆に興味がなくてIPAの資格試験勉強できる人がすごいと思います(休日に趣味でプログラミングやってる側の人間だけど資格試験には興味がないので一切取らなかった)
  • Makefile警察「ぐぬぬぬ…」 - Qiita

    ?「プロジェクトでよく使うコマンド Makefile に書いたろー」 ?「docker compose up -d --wait っと…」 👮‍♀「 Makefile警察 だ!」 👮‍♀「 Makefile は、ソフトウェアのビルドプロセスを自動化するためのファイルだ!」 👮‍♀「多目的なタスクランナーとして使うな!」 ?「せやったんか。誠にごめんなさい。」 Makefile は広く使われていますが、時々目的外に使われてしまうことがあります。しかし、そのような使い方にはより適した代替手段が存在します。この記事では、 Taskfile というツールについて解説します。 Makefile のつらみ Makefile は主にビルドプロセスを自動化する目的で生まれましたが、様々なコマンドをまとめて実行する便利さから多目的なタスクランナーとしてもよく使われます。しかし、次のような問題があります

    Makefile警察「ぐぬぬぬ…」 - Qiita
    hylom
    hylom 2023/07/03
    makeはタスクランナーとして使ってはいけないのか……make testとかmake installとかmake cleanとかはどうすれば……
  • MVCモデルは意識した方がいい!!!私は地獄を見ました!!! - Qiita

    目次 MVCモデルとは何者?? Modelとは Viewとは Controllerとは まとめ (MVCを意識せずに書いた私の経験談) MVCモデルとは何者?? MVC(Model-View-Controller)モデルは、ソフトウェア開発におけるデザインパターンの一つ。MVCはアプリケーションの内部の構造を整理し、役割を分離することで、保守性や拡張性を向上させることを目的としているもの。 Modelとは モデルはデータの管理や処理、データベースとのやり取りなどを行うもの。 バリテーションも行う。 Viewとは ビューはユーザに表示されるもの。 例えばHTMLやJSなど Controllerとは ユーザーの入力やアクションを受け取り、それに応じた処理(モデルのデータを取得・更新)をし、最終的な結果をビューに渡すもの。 言えばMVCモデルの頭。 まとめ(経験談) 初めは全く気にしないで書いて

    MVCモデルは意識した方がいい!!!私は地獄を見ました!!! - Qiita
    hylom
    hylom 2023/06/20
    パラメータのパースとSQLクエリの組み立てと結果からのHTML出力がごっちゃになった1ファイルで10万行のPerlコードを昔触っていましたが地獄でした、それに比べれば1000行なんて……
  • Python 内包表記の限界: 複雑な処理と実行速度の関係 - Qiita

    初めに 記事は実務上で速度的優位性を得るために内包表記を使うことが合理的かどうか検証したものです。 文中のコードは読者層を広くするために型ヒントを省いています。 更新履歴 詳細 追記 (2023/05/24) 計測環境はPython3.12.0a6です。 修正 (2023/05/24) 記事中のバイトコードがPython3.7.16のものだったのでPython3.12.0a6のものに差し替えました。 修正 (2023/05/27) 「list(generator) 使えよ」とのご指摘があったので 単純な例の内包表記を[i for i in range(ELEMENTS)]からlist(range(ELEMENTS))に修正しました。 ご指摘ありがとうございます。 追記 (2023/05/28) Twitterでの反応に対しての追記を行いました。

    Python 内包表記の限界: 複雑な処理と実行速度の関係 - Qiita
    hylom
    hylom 2023/05/27
    リスト内包が速いのはメモリ操作の関係上入力と出力の要素数が同じ場合のみだと認識している。要素の抜き出しをするならおとなしくfilter()使う方が良いのでは
  • 理系大学生は研究でもJupyterNotebook(Anaconda)ではなくVScodeを使おう+Python環境構築 - Qiita

    はじめに 理系大学生諸君は、実験で得たデータの解析やグラフ作成にPythonを使っているでしょうか? 私の所属する研究室では、PythonまたはNgraphでグラフを作ることが推奨されています。 特定のグラフ作成ソフトと比べてPythonでグラフを作るメリットというのはいくつかありますが、各設定項目をテキストデータとして確認ができる(明確に記述されている)ところが一番のメリットだと思います。そんなPythonですが、Anacondaをインストールして、その流れでJupyter Notebookを使って解析する人が多いと思いますが、VScodeを使って解析したほうが良いと考える理由と、実例を上げていこうと思います。 Jupyter Notebook(Anaconda)は開発環境とそのエディタであり、VScodeはエディターであるため、直接的な比較は来できないのですが、やんわりと流してくださ

    理系大学生は研究でもJupyterNotebook(Anaconda)ではなくVScodeを使おう+Python環境構築 - Qiita
    hylom
    hylom 2023/05/25
    単にVScodeでJupyterを使う記事だった、別にJupyter Notebook(Jupyter Lab)で良くないですか……、まあAnacondaのライセンスが気に食わないとかなら話は分かるが、ただJupyter NotebookはAnacondaとは別物だしなあ
  • 特別な理由なしにgit-flowを新規採用するべきではない - Qiita

    私がこれまでGitの研修講師やブランチ戦略のコンサルティングをおこなってきた経験に基づいて、この記事を書きます。 Gitのワークフローについては自転車置き場の議論になりがちであまり乗り気がしないのですが、最近少し発見があったのと、実際に多くの現場で明らかにフィットしないのに git-flow を検討したり採用したりしようとして苦労をしている様を目撃することが多いので書くことにしました。 この記事で主張する内容はタイトルの通りですが、まず前提として以下を宣言しておきます: 全てのケースに100%フィットするようなワークフローは存在しない git-flowがフィットするケースも探せばあるかもしれない 例えばすでに何年もgit-flowでうまく回せてるよ、など どのようなワークフローを採用するかは最終的にはあなた(のチーム)が判断すべき さて、 git-flow は 2010年1月「A succ

    特別な理由なしにgit-flowを新規採用するべきではない - Qiita
    hylom
    hylom 2022/07/11
    リリースサイクルが決まっていて(月1とか隔週とか)、次リリースでのbugfixとその次のリリースでの新機能と将来リリース予定の機能を並列で開発するみたいなシーンだとgit-flowはフィットする感じ
  • ここがつらい! 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
    hylom
    hylom 2022/06/19
    1回のAPI呼び出しで柔軟に多くの情報量を返せるようにするとoptionalなパラメータが増えるし、逆にoptionalを減らそうとすると個々のAPI呼び出しでできることが少なくなってAPI呼び出し回数が増えるので設計が難しいところ
  • IEが終了したので、webpackやbabelは不要? - Qiita

    IE終了により、webpackやbabelを使う必要がなくなるのか、フロントエンドからビルドステップを完全に消し去ることはできるのか。 そもそもなぜフロントエンドを「ビルド」していたのか そもそもなぜwebpackやbabelを使ってJavaScriptをバンドル(1ファイルにまとめる)していたのか 1. HTTP/1.1とモジュールシステムの相性の悪さ ブラウザにはES Moduleというモジュールシステムが導入されています。これはimport文で他のファイルを読み込むことができるシステムです。 HTTP/1.1については、ブラウザ側で同時接続数制限があります。これは、ファイルを多数読み込む必要があるES Modulesには不向きでした。 2. ブラウザのES Module対応率の低さ ES ModulesはIE非対応です。開発するWebサイトがIEをターゲットにしたい場合、ES Mod

    IEが終了したので、webpackやbabelは不要? - Qiita
    hylom
    hylom 2022/06/19
    現状だとTSとかJSXとかvueコンポーネント使ってる限りコンパイルから逃げられないのでwebpackでまとめてやってしまえって感じになるしまだまだそれは続くと思う(個人的にはこれらを一切使わない開発は考えられないし)
  • 6歳娘「パパ、型による条件分岐はできないの?」 - Qiita

    とある休日 娘「ねぇ、パパ!」 娘「switchやろ〜!」 ワイ「おお、ええで!娘ちゃん!」 ワイ「Switchやろう!」 ワイ「ほな、テレビをつけて・・・」 娘「テレビ?」 娘「何を言っているの、パパ?」 娘「TypeScriptswitch文のことだよ?」 ワイ「ファッ!?」 switch文で何をしたいのか 娘「今ね、ショッピングサイトを構築してるところなの」 ワイ「ほうほう」 娘「それでね、手広く儲けようと思って」 ワイ「おお、ええやんか」 娘「個人ユーザーだけじゃなく、法人ユーザーも登録できるようにしようと思うの」 ワイ「なるほどな」 娘「言語はTypeScriptを使っているんだけど」 娘「ちょっと聞きたいことがあるの」 ワイ「おう、なんでも聞いてや」 あいさつ関数を作っている 娘「ショッピングサイトにログインしたときに・・・」 個人の場合 → 「無職 やめ太郎さん、こんにちは

    6歳娘「パパ、型による条件分岐はできないの?」 - Qiita
    hylom
    hylom 2022/05/24
    RTTIは地獄への入り口
  • MacでWindows版Steamを使用する方法(無料のWineskinServer) - Qiita

    はじめに Steam で遊びたいと思ったゲームでも、Windows版があるが Mac版がないものが結構多いんですよね。そこでWineskinServerを使えば、MacでもWindows版のゲームが遊べるのか試してみました。 ※MacSteamはインストール済み、かつSteamアカウント作成済みです。 下記サイトでWineskinServerを使用して動作しているので大丈夫でしょう。 【2023/10/28追記】 エンジン「WS11WineCX64bit23.5.0_D3DMetal-v1.0」にした場合、遊戯王マスターデュエルを起動時に下記エラーが出ます。redditの情報ではD3DMetalが有効だと駄目なようです。 自分の場合、下記の方法で遊戯王マスターデュエルを起動させることが出来ました。 アプリケーションフォルダの「Wineskin Winery.app」をダブルクリックして、

    MacでWindows版Steamを使用する方法(無料のWineskinServer) - Qiita
    hylom
    hylom 2022/04/15
    ゲーム用のWindowsマシンはあるのだけどわざわざ電源を入れるのが面倒くさいから軽いゲームはMacでやりたいなあとちょうど思っていたところだった
  • UTF-8のテーブル(MySQL5.6)に竈門禰󠄀豆子が格納できない問題を調べてみた - Qiita

    竈門禰󠄀豆子をMySQL5.6のテーブルにinsertしようとすると正しく格納できず、竈門禰となってしまうケースがあるという話を聞き、調べてみました。 実践 まずは試しにやってみます。 mysql> show create table verification\G *************************** 1. row *************************** Table: verification Create Table: CREATE TABLE `verification` ( `name` varchar(100) COLLATE utf8_bin DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin 1 row in set (0.01 sec) mysql> inse

    UTF-8のテーブル(MySQL5.6)に竈門禰󠄀豆子が格納できない問題を調べてみた - Qiita
    hylom
    hylom 2022/02/02
    MySQL 5.6ってもうサポート期間終了しているような気がするんだが
  • 【JavaScript】実数から整数への変換に parseInt() を使ってはいけない2つの理由🙅‍♀️ - Qiita

    背景(誰のための記事?) JavaScriptプログラマのみなさまこんにちは。 最近のお仕事の傾向として、マイクロサービス化といいいますか、オブジェクト指向の延長といいますか、MVVM化といいますか、下回りは速度&効率重視でC++で構築し、中間は保守(メンテ)&書きやすさ+ちょっぴり速度も重視で node.js(JavaScript)、上層のUIはなるべく広範囲で使えるように考慮して HTMLCSS 、という3層構造 ・上層:HTML + CSS ・中層:node.js(JavaScript) ・下層:C++ が流行っていまして、今回の事件は中層の node.js スクリプトの部分で発生した問題でした。しかも、下層で生成された巨大なデータを中層で処理し、上層で表示しようとするとある条件で遅延が発生し、表示がカクつくという問題で、その「ある条件」が長期間に渡って特定できない、、、といった難

    【JavaScript】実数から整数への変換に parseInt() を使ってはいけない2つの理由🙅‍♀️ - Qiita
    hylom
    hylom 2022/01/09
    parseInt()、使うことがほとんどない関数の1つな気がする(だいたいのケースはNumberコンストラクタで足りる)。基数の変換ってJavaScriptであまりやることなさそうだし。
  • 💡 Node.jsのバージョン管理ツールを改めて選定する【2021年】 - Qiita

    開発者「すみません、なんかnpm iとかnpxコマンドがうまくいかなくて…」 ワイ「でたー、cb.apply is not a functionって書いてません?」 開発者「書いてます」 ワイ「ちょっと見てみますね」 ワイ「……これはnpm入れなおしたほうが早そうですね…」 カタカタ… ワイ(うーん…なぜ未だにnodistで消耗しているのか…😨) TL;DR nodistはもうやめよう 選定するときは、まず選定基準を決めよう 関連技術の特徴を洗い出そう それらが自分たちの環境にどれくらいマッチするかで比較しよう Windowsならfnmがオススメ1! ※ バージョン管理ツールがなんだかわからない方は「Node.jsのバージョン管理ツールとは」からお読みください。 うわっ…私の現場、nodist使いすぎ…? Node.jsの利用が格化してきたころ、私の周りでは圧倒的にnodistが流行し

    💡 Node.jsのバージョン管理ツールを改めて選定する【2021年】 - Qiita
    hylom
    hylom 2021/11/24
    dockerで必要なバージョンのnode入れたコンテナ作るのがベストでは
  • VueもReactもやったことないのでVanilla JSでやってみたSPA - Qiita

    はじめに まずは宣伝です。 このたび保育園を地図から探せる 保育園マップ というサービスを作りました。 WEB版 iOS版 Android版 Vanilla JSのSPAで作ったのですが、思いの外色んなことをやる必要があったので、制作過程で得た知見をこの記事にまとめました。 網羅的に書いたので長いですが、一つ一つのトピックはそれ程長くないので、興味があるところだけ読んでもらってもいいと思います。 Vanilla JS & SPAとは? Vanilla(バニラ) JSというのは何もフレームワークを使っていない素のJavaScriptのことです。 ただのJavaScriptなんですが、ジョークでフレームワーク風の公式サイト?っぽいものがあったりします。 SPAというのはシングルページアプリケーションの略です。 ページごとにHTMLを用意するのではなく、1つのHTMLの中でJavaScript

    VueもReactもやったことないのでVanilla JSでやってみたSPA - Qiita
    hylom
    hylom 2021/10/12
    IE対応以外でjQueryが必要になる/jQueryの方が便利、というシーンってどの辺なのかが気になる