タグ

ブックマーク / qiita.com (1,750)

  • 【Visual Studio Code Extension開発】エディタに着色する方法 - Qiita

    簡単に 色などのデータをvscode.window.createTextEditorDecorationTypeインスタンスに格納する 色を付けたい範囲をvscode.Rangeインスタンスに格納する vscode.window.activeTextEditor.setDecorations()に、2つのインスタンスを渡す これで色が付きます。 詳細に vscode.window.createTextEditorDecorationTypeインスタンスの生成 var decorator: vscode.TextEditorDecorationType; decorator = vscode.window.createTextEditorDecorationType({ 'borderWidth': '1px', 'borderRadius': '2px', 'borderStyle': '

    【Visual Studio Code Extension開発】エディタに着色する方法 - Qiita
    tofu-kun
    tofu-kun 2023/08/28
  • 【React/Python】2年がかりで完成した個人開発サービスの話【ChatGPT】 - Qiita

    個人開発でサービスを作り始めて、気がついたら2年も経っていました。 気軽な気持ちで作り始めたのですが、思いの外色々なことに手を出してしまったので、 利用した技術などをまとめてみます。 作ったもの YouTubeのライブ配信風の画面に向かって話しかけると、 音声を認識してAIがスーパーチャットを送ってくれる、 その名も「AIスパチャ」です。 良かったら遊んでみてください。 作るきっかけ YouTubeでひろゆき氏の配信を見ていた時に、 「私もひろゆきさんみたいに質問回答の配信をやってみたいです。 けれどいざ配信をしてみても視聴者が少なく、質問なんて全くきません」 といった質問がありました。 確かに、ひろゆき氏のように、何千人も視聴者がいて、ガンガンとスパチャが送られてきたらそりゃ楽しいですが、 普通の人はまずスパチャなんて送られません。 そもそも実際にYouTubeライブをやることのハードル

    【React/Python】2年がかりで完成した個人開発サービスの話【ChatGPT】 - Qiita
  • Seleniumで偽装が無駄な理由 - Qiita

    簡単に判明します 規約違反を犯してSeleniumでアクセスしている皆さん。 バレてますよ!!!!! UA偽装だとかIP偽装だとかがありますが、JavaScriptをもってすれば簡単に検出することができます。

    Seleniumで偽装が無駄な理由 - Qiita
    tofu-kun
    tofu-kun 2023/08/21
  • ChromeDriver でよく使うオプションのチートシート - Qiita

    はじめに 毎回、気になったときに調べているような気がするのでまとめる。 ついでにnavigator.webdriverの対策もできる。 メモのつもりで書いているので深くは考えていない 2023.11.20 ファイルのダウンロードに関するオプションを追加、細かな修正 2023.11.15 ヘッドレスモードで起動したとき、コンソールにエラーログが出ないように修正 2023.11.14 selenium 4 にオプションの内容を一新 2023.11.14 selenium 3 のオプションを折りたたみ表示へ 2022.06.03 コピペできるコードブロックに追記、並び替え 2022.04.28 投稿 selenium 4 環境 アイテム バージョン

    ChromeDriver でよく使うオプションのチートシート - Qiita
    tofu-kun
    tofu-kun 2023/08/21
  • async/awaitにおけるエラー処理を実行の順番から整理する - Qiita

    はじめに promiseを使うとき、いつもpromiseメソッドチェーンで記載していますか? async/awaitを利用していますか? もちろん状況によって両方書くのが殆どだとは思うのですが、私はasync/awaitの方が同期的な書き方ゆえに読みやすいため、なるべくそちらで記載しています。しかしながら、エラーハンドリングが理解できていなかったため、エラーの所在を突き止めるのに苦労してしまいました。 そのため、これを機にasync/awaitにおけるエラーハンドリングについて備忘録的にまとめておきます。 この記事のまとめ; catchされるエラーはrejectのみか、throwされたエラーも含まれるか →両方catchできる async関数における処理の順序、awaitがある場合とない場合 →awaitがない場合には同期的に処理が実行され、catchできなくなる エラー処理を外側に伝播し

    async/awaitにおけるエラー処理を実行の順番から整理する - Qiita
  • strlen() の深淵 - Qiita

    あらまし strlen() という関数がある。御存知の通り、文字列の長さを算出する標準 C ライブラリの関数だ。 やってることは単純で、例えば以下のように実装できる。 size_t strlen_simple(const char* str) { const char* p = str; while (*p) ++p; return size_t(p - str); } '\0' が見つかるまでポインタを進め、初期位置との差分を返すだけだ。これで機能的には std::strlen() と同等である。 では、速度的にはどうだろう?適当にベンチマークを書いて MSVC 2022 でコンパイル&実行するとこうなった。

    strlen() の深淵 - Qiita
  • ノブ「JSX内のmapメソッドでindexをkeyに指定しないでくれぇ」 - Qiita

    とある開発会社での千鳥の会話 ノブ「大吾、手隙か?」 大吾「手隙じゃ」 ノブ「ちょいと大吾に頼みたいことがある」 大吾「なんでもまかせろ」 ノブ「ユーザーが自由に入力フォームを追加できる機能を作ってくれんか」 ノブ「完成形はこんな感じじゃ。増やすボタンを押すと入力フォームが追加されるイメージじゃ」 大吾「こんなん簡単じゃな。任せときい」 カタカタカタカタカタカタカタカタカタカタカタカタ 大吾「ノブ〜できたぞ」 ノブ「おお!?はや早い。どれどれ見てみよか」 ノブ「ちゃんとボタンを押すと入力フォームが増えとるな」 ノブ「入力フォームに値を入れて確認してみようか」 ノブ「おいおいおい!!」 ノブ「idが1の入力フォームに入れた入力値が追加ボタンを押して出てくるidが2の入力フォームに移動しとるやないカイ!」 大吾「そんなんワシは知らん」 ノブ「ちょっと大吾の書いたコードを見せてくれんか」 大吾「

    ノブ「JSX内のmapメソッドでindexをkeyに指定しないでくれぇ」 - Qiita
    tofu-kun
    tofu-kun 2023/08/01
  • キャッシュ入門 - Qiita

    概要 モダンなウェブアプリケーションを開発していくにあたり、サービスのパフォーマンスを向上したいと思うケースってよくありますよね。 きっとその際に、インメモリデータストアとキャッシュ技術を利用し高速なパフォーマンスを実現することも解決策の1つになると思います。 Memcached や Redis、AWSを利用していればそれらソフトウェアの互換性のあるフルマネージドサービス Amazon ElastiCacheなどを利用しているんじゃないでしょうか。 今回は、そんなキャッシュ技術について、そもそもキャッシュってなんだっけを改めて振り返る記事となっております。 ※記事は Umer Mansoor さんが執筆されたBrief Overview of Caching and Cache Invalidationの内容を基に翻訳し、加筆、独自解釈したものです。 ※ Umer Mansoor さんか

    キャッシュ入門 - Qiita
  • 【React】Context を使う前に #1 無駄なコンポーネントの層を削れ - Qiita

    Props のバケツリレー (Props Drilling) を解決するときに、安易に Context を使ったり、状態管理ライブラリ(Recoil, Jotai, Redux)に頼っていませんか? そんなことをせずとも、「CompA が CompB を使い、CompB が CompC を使い、 CompC が ...」という依存関係のチェーンを浅くするのが最善の解決策である場合があります。 「ローカルとはいえない、真にグローバルな状態1 である」なら、Recoil や Jotai が使えますし、 Context には Context の活躍できる場面2 があります。今回はそれらの話はしません。 KISS (Keep It Simple Stupid) という名言があるように、「Props を渡すだけ」というわかりやすい方法を取ることで、将来のコード読解が楽になり、メンテナンスが容易になり

    【React】Context を使う前に #1 無駄なコンポーネントの層を削れ - Qiita
    tofu-kun
    tofu-kun 2023/07/17
  • ESLintのルールから考えるJavaScriptのundefined判定 - Qiita

    JavaScriptのundefined判定にはいくつか記載方法がありますが、言語仕様を理解しないまま記述すると、ブラウザや開発環境によっては思わぬバグを生み出すことがあります。 この記事では、JavaScriptにおけるundefinedの判定方法を複数紹介し、ESLintのルールから適切な判定について検討してみようと思います。 ESLintとは ESLintは、JavaScriptTypeScriptの静的コード解析ツールでです。 単純な構文エラーの検出やルールを設定することで一貫性のあるコーディングスタイルを維持しやすくなります。 JavaScriptにおけるundefinedの判定パターン JavaScriptでundefined判定をしたいとき、いくつかの書き方が考えられます。 パターンとしてはざっとこんなものでしょうか。 厳密等価演算子(===)を使用する

    ESLintのルールから考えるJavaScriptのundefined判定 - Qiita
  • 【CSS】CSSの値と単位が新しくなっていますが、ついていけてますか? - Qiita

    はじめに 最近のCSSのアップデートは目覚ましいものがありますが、 みなさんは、CSSの値と単位がここ1年くらいで大きく変わっていることはご存知ですか? Dynamic viewport が追加されたり、math 関数が追加されたりなどの大きな変更は、ご存知かもしれないですが、calc()で ネイピア数 e や 円周率 πなどが使えるようになったり、 フォントに相対的な長さ単位が追加されていたりと細かい変更も多くあります。 そのため、この記事では、CSS Values and Units Module Level 3 から CSS Values and Units Module Level 4の変更点を中心に紹介しようと思います。 Viewport単位 CSS Values and Units Module Level 3 から CSS Values and Units Module Le

    【CSS】CSSの値と単位が新しくなっていますが、ついていけてますか? - Qiita
  • エンジニアのための自己管理入門 - Qiita

    はじめに 社内でTodo管理の勉強会を実施した際に作成した資料があったのですが、今回自分の中の考えをまとめるせっかくの機会だと思い、字面で書き起こすことにしました。 意外と世の中では語られることのなく、『あたりまえ』として扱われてしまう『自己管理』について自分が半年間運用し、週ごとにカイゼンを続けたどり着いた、現時点でのHowを多くの人に伝えられればなと思っています。 もちろん最適解がこの形とは言いませんし、自己管理は人の数分だけ最適解はあると思っています。「みんな正しい、ただし部分的に」ということを念頭に、楽しんで読んでいただければ幸いです。 タイトルを付けた理由としては、かなりシステマチックな内容になってしまっていると感じてしまったため、「運用レベルが高い」人物を想定した結果、このタイトルになりました。 概念篇 『自己管理』を行っていく上で、確実に「ここは飛ばしてはいけない」と思ったた

    エンジニアのための自己管理入門 - Qiita
  • ふりかえり手法「象、死んだ魚、嘔吐」でチームの闇と向き合おう - Qiita

    ふりかえり手法にはKPT、Fun Done Learnなど様々な手法が知られています。 今回はその中でもチームの課題と向き合う手法「象、死んだ魚、嘔吐」について説明します。 また自分達が実際に実践するにあたって行った工夫を紹介します。 ふりかえり手法「象、死んだ魚、嘔吐」とは? 2024.1.17追記 「象死んだ魚嘔吐のうた」を制作し、Reginal Scrum Gathering Tokyo 2024にて発表しました。 ↑使用したオリジナルの背景画像です。お好きなツールの背景としてどうぞ。 「象、死んだ魚、嘔吐」とは、Airbnbの共同創業者ジョー・ゲビアが提唱した手法です。 カリスマ性があり完璧主義のジョー・ゲビアが率いるチームでは、雰囲気が重苦しく、メンバーはゲビアを恐れ、自分の考えていることを発言できなくなっており、チームは崩壊寸前でした。 そのような状態で考案されたふりかえり手法

    ふりかえり手法「象、死んだ魚、嘔吐」でチームの闇と向き合おう - Qiita
    tofu-kun
    tofu-kun 2023/07/12
    “雰囲気が重苦しく、メンバーはゲビアを恐れ、自分の考えていることを発言できなくなっており、チームは崩壊寸前” この状態で、このメソッドを使ったら、発言できるようになったというのがピンときていない
  • 【最新のHTML仕様まとめ】「HTML Living Standard」がマークアップにとってなぜ大切なのか? - Qiita

    【最新のHTML仕様まとめ】「HTML Living Standard」がマークアップにとってなぜ大切なのか?HTMLSEOマークアップSEO対策HTMLLivingStandard 記事の結論は、「とりあえずHTML Living Standardを読め」です。 正直明日からHTMLを勉強したいです!って人には全くオススメできません。 おそらく開始5秒で戦意を喪失することになると思います。 とはいえHTMLの仕様全てが記述されているので「セマンティックにマークアップしたい」って時は「HTML Living Standard」の4章を確認すると良いと思います!

    【最新のHTML仕様まとめ】「HTML Living Standard」がマークアップにとってなぜ大切なのか? - Qiita
  • React Queryはデータフェッチライブラリではない。非同期の状態管理ライブラリだ。 - Qiita

    はじめに この記事はDominikさんが執筆された「Thinking in React Query」を参考にReact Queryの考え方をまとめたものになります。DominikさんはTanStack Query(以下ではReact Queryと呼ぶ)のコアメンテナーであり、彼のブログからReact Queryについての知見を吸収することができます。 目次 React Queryはデータフェッチライブラリではない ではReact Queryとは何か? Client StateとServer Stateの違い React Queryは非同期の状態(Server State)管理ライブラリである キャッシュを有効活用する React Queryのキャッシュについて staleTimeでキャッシュをコントロールする queryKeyを適切に設定する まとめ 🎆 React Queryはデータフ

    React Queryはデータフェッチライブラリではない。非同期の状態管理ライブラリだ。 - Qiita
  • 凄腕エンジニアさんから学んだ例外の話 - Qiita

    はじめに 今携わっているプロジェクトで凄腕エンジニアさんと一緒に開発をさせていただいているのですが、その凄腕エンジニアさんから教えていただいた例外の話がとても勉強になり、 さらにこの例外の話を他のプロジェクトエンジニアさんに伝えたところ、反応が良く、とても勉強になりました!という声をいただけたので、アウトプットしていきたいと思います。 (この記事の中で凄腕エンジニアさんのことはTさんと呼ぶことにします。) ※【凄腕エンジニアさんから学んだ例外の話】の補足 というQiita記事を書きました。 この記事を読み終わった後に疑問が残った人などは補足資料として読んでいただけると嬉しいです。 例外の考え方の源 Tさんの例外の考え方は http://diveintopython3-ja.rdy.jp/your-first-python-program.html#exceptions ↑こちらのPyth

    凄腕エンジニアさんから学んだ例外の話 - Qiita
  • 半開区間の魅力 〜プログラミングでのスマートな区間の扱い方〜 - Qiita

    はじめに こんにちは、kenです。 今回は「プログラミングで区間を扱いたいときは半開区間が良いよ」という話をします。 もしかしたら有名な事実かもしれませんが、友達にこの話をしたら知らなかったという顔をされたので、自分の理解を深めるためにも記事にすることにしました。 数学で区間を扱う際は実数上で考えることが多いかと思いますが、この記事では区間を考える際、整数全体の集合上での区間を考えることにします。 また以下ではleft(またはl)とright(またはr)という文字式を使って説明しますが、このときleft $ \leq $ rightという関係性は常に満たされているものとします。 半開区間とは? 半開区間の前に、開区間と閉区間についておさらいしておきます。 開区間は(left,right)のように表され、両端点を含まないleftからrightまでの区間を表します。 一方で閉区間は[left,

    半開区間の魅力 〜プログラミングでのスマートな区間の扱い方〜 - Qiita
  • 【TypeScript】カリー化・部分適用は便利だよ! - Qiita

    TypeScript】カリー化・部分適用は便利だよ! カリー化・部分適用利用してますか? 調べたけど「関数を第一級オブジェクトとしてー」とか「関数を部分適用してー」とか説明が講義っぽくて途中で諦めた方も多いと思います。自分もそうでした。 また、知ってるけどどんな時に使うべきか迷って使ってないという方もいると思います。 具体的なコードを交えながら、カリー化・部分適用について、噛み砕いて説明していきたいと思います。 なお、すべてのTypeScriptのサンプルコードは実際に動かして確認することができますので、TypeScript Playgroundなどで是非お試しください。 カリー化と部分適用 まずはカリー化と部分適用の定義をば。 カリー化 (currying, カリー化された=curried) とは、複数の引数をとる関数を、引数が「もとの関数の最初の引数」で戻り値が「もとの関数の残りの引

    【TypeScript】カリー化・部分適用は便利だよ! - Qiita
  • MVCモデルは意識した方がいい!!!私は地獄を見ました!!! - Qiita

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

    MVCモデルは意識した方がいい!!!私は地獄を見ました!!! - Qiita
    tofu-kun
    tofu-kun 2023/06/20
  • OpenAI Function Calling を Zod + TypeScript で型安全に扱う - Qiita

    概要 OpenAI の Chat Completions API に Function Calling と呼ばれる新しい機能が追加されました。これを使うと、JSON Schema で指定した型に従う JSON 文字列を GPT が返してくれます。(ただし 100% valid な JSON が返る保証は無い) 特にライブラリに頼らずに Function Calling を利用しようとすると、 JSON Schema を書く OpenAI API にリクエスト 返ってきた JSON 文字列をパースして検証する というステップが必要になって面倒ですが、Zod のスキーマさえ書けば 1, 3 の手間を省きつつ型安全に実装することができます。 目指す姿 import { z } from "zod"; // 手動でコードを書くのは関数の名前、説明文、Zod スキーマの部分だけ const func

    OpenAI Function Calling を Zod + TypeScript で型安全に扱う - Qiita