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

  • Render hooksをコンポーネントの拡張として理解する - Qiita

    Render hooks とは、ReactにおいてカスタムフックからJSX式を返す設計パターンのことです。リンク先は私が当時在籍していた会社のテックブログに書いた記事で、当時の会社でこの設計パターンがハマる箇所に出会ったためアイデアを記事化したものです。ちなみに、Render hooksという命名は私ではなく当時の私の上司です。 私は当時から今までずっとこのパターンを推奨しているのですが、あまり流行る気配がありません。そこで、この記事では皆さんがこのパターンの考え方にもう少し納得できるように、render hooksパターンは普通のコンポーネントの拡張であるという見方をご紹介します。 Render hooksパターンの概要 Render hooksパターンは、UIの実装(JSX)と、そのUIに関連するロジック(たとえばステート)をまとめてカスタムフックから提供することを指します。簡単な例を

    Render hooksをコンポーネントの拡張として理解する - Qiita
  • なぜ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
  • ハッカーのおもちゃとしてのNostrのススメ - Qiita

    はじめに Nostrという、SNSのようなものはご存知でしょうか? ご存知でなければ、ぜひまず一度触ってみることをお勧めします。 割と普通にSNSっぽく使えます。 分散系SNSっぽいシステム Nostrは、分散系のSNSっぽいネットワークです。 図で表すとこんな感じ。普通に想像するWebサービスとは随分形が違うと思います。 各所のリレーサーバーに、ユーザーは投稿をばらまき、ユーザーがそれを見る形です。 分散の責任がユーザー(クライアント)側にあって、リレーサーバーが落ちたり消えたりしても影響が起きにくい仕組みです。 より詳しい説明は上記でやってるのですが、端的に言って 中央管理者がいない(各リレーに管理者はいる) 冗長で災害に強い Websocketのリアルタイム通信 オープンでシンプルで、でも拡張し放題な仕様 数多のサーバーによる分散ネットワーク といった特徴があります。 ※P2P技術

    ハッカーのおもちゃとしてのNostrのススメ - Qiita
  • All I know about Vue 3's Vapor Mode Details (2023/12) - Qiita

    Vapor Mode ってご存知でしょうか? 少しでも聞いたことがあるようであれば、おそらくあなたは日常的に情報を収集している熱心な方でしょう。 というのも、現在(2023/12)、Vapor Mode について日語での言及はほぼありません。 かといって英語圏に情報が出回っているかというと、そうでもありません。(後述) 今回は現時点で筆者が知っている Vapor Mode の詳細について、前提知識も整理しつつ理解していければと思います。 初めに お品書き (何を理解するか) 改めて Vue.js とは これから Vue.js を学び始める方や、Vue.js をのぞいてみるのは随分と久しぶりだという方もいるかと思うので、ざっくりおさらいします 現在の Vue.js 現在の Vue.js がどういう実装で実現されているのか、 Vapor Mode に関わってくる部分を抽出し、ソースコードベー

    All I know about Vue 3's Vapor Mode Details (2023/12) - Qiita
    IzumiSy
    IzumiSy 2023/12/25
    今度はSvelteっぽいことを始めたなという印象
  • MySQL闇歴史のカレンダー | Advent Calendar 2022 - Qiita

    edit_calendarHow to join the calendarYou can join the calendar by selecting an available date and registering the URL of the article you wish to link to. If a slot is available, you can go back to a past date to join!

    MySQL闇歴史のカレンダー | Advent Calendar 2022 - Qiita
  • Vim で Prettier かけながら、TypeScript の型チェックを行う(with vim-lsp) - Qiita

    Vim で Prettier かけながら、TypeScript の型チェックを行う(with vim-lsp)VimLSPLanguageServerProtocol この記事は Vim Advent Calendar 2019 向けに書かれました。 もう一つネタがあって記事を書いていたのですが、 なんか微妙な出来だったので Advent Calendar とは別として投稿しようかなと思っています。 はじめに この記事は Vim を使っている vim-lsp を使っている TypeScript を書いている prettier/eslint を連携させたい! な人向けの記事です。 vim-lsp を使って TypeScript の開発をしているならば、 使っている言語サーバは typescript-language-server ではありませんか? よく出来ていますよね。快適です。 し

    Vim で Prettier かけながら、TypeScript の型チェックを行う(with vim-lsp) - Qiita
    IzumiSy
    IzumiSy 2022/08/21
  • 特別な理由なしにgit-flowを新規採用するべきではない - Qiita

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

    特別な理由なしにgit-flowを新規採用するべきではない - Qiita
  • コンテナイメージの実体を見てみる - Qiita

    $ tar -xvf node.tar 5491dce778832e33c284cd8185100e76d6daa18f8cbc32458c706776894127fc/ 5491dce778832e33c284cd8185100e76d6daa18f8cbc32458c706776894127fc/VERSION 5491dce778832e33c284cd8185100e76d6daa18f8cbc32458c706776894127fc/json 5491dce778832e33c284cd8185100e76d6daa18f8cbc32458c706776894127fc/layer.tar 5c0c5c94503f7310f50e73e8bcaa584eab5e5256ac34b9745589b64bb8fa09bb.json 84f3cb797bec406c8818fd5b1d

    コンテナイメージの実体を見てみる - Qiita
  • サクッとAPIを叩く方法 (VS CodeでHTTPリクエストが送れちゃう拡張機能) - Qiita

    概要 開発中のAPIを試したり、サードパーティのAPIをサクッと叩いてみたいといった時に皆さんどのようにしますか? 私は、curlコマンドやPostmanをよく使っています。 ただ、もっと楽にHTTPリクエストを投げ、かつその時使用した情報を残すことができる方法を以前のチームメンバーに教えていただいたので、記事にしました。 REST Client 今回、紹介するのはVS CodeのエクステンションにあるREST Clientというものになります。 このREST ClientというのはVS Code上でHTTPリクエストを送信し、レスポンスを確認できる拡張機能となっています。 使用方法 使用方法はすごく簡単で、拡張子が「.http」か「.rest」というファイルで決められた構文に従いHTTPリクエストを記述するだけです。 下記にcrudの例を載せていきたいと思います。 また今回はREST A

    サクッとAPIを叩く方法 (VS CodeでHTTPリクエストが送れちゃう拡張機能) - Qiita
  • コンテナ遠洋航海 ~そこらへんの草でも食わせておけ プロセス分離の旅路 ~ - Qiita

    ■ 摩訶不思議なコンテナ船 「おい、地獄さ行ぐんだで!」 現在、アプリケーションの構築・実行環境の選択肢の一つとしてクラウド環境が白鯨のような圧倒的存在感もって位置していることは、経済合理性、開発者体験などの観点から多くの人が認める事実かと思います こうした潮流は、CNCF(Cloud Native Computing Foundation)のような業界団体を成熟させる土台となり、相乗効果を生みながら、開発者にとっての当たり前開発の軸足を大きくシフトさせる結果をもたらしています - クラウドネイティブへの第一歩 開発者にとって当たり前開発となりつつある、クラウド環境上でベンダーロックインされることなく、スケーラブルなアプリケーションを構築・実行するクラウドネイティブと総称される技術軸足 その軸足にシフトするためのロードマップの第一歩としてCNCFは下記に示されるようにコンテナ化(Conta

    コンテナ遠洋航海 ~そこらへんの草でも食わせておけ プロセス分離の旅路 ~ - Qiita
  • なぜシェルスクリプトで高度なデータ管理にSQLiteを使うべきなのか? ~ UNIX/POSIXコマンドの欠点をSQLで解決する

    なぜシェルスクリプトで高度なデータ管理にSQLiteを使うべきなのか? ~ UNIX/POSIXコマンドの欠点をSQLで解決するShellScriptUNIXSQLitePOSIXQiitadelika 「利用者は数十億人!? SQLiteはどこが凄いデータベース管理システムなのか調べてみた」の続きです。 はじめに 複雑な構造のデータを扱うのであればシェルスクリプトや Unix (POSIX) コマンドでデータ管理を行うのは避けるべきだと思います。解決不可能な問題が多いからです。しかしそれでも何かしらの理由でやろうと考える(やらなければいけない)のであれば SQLite を使うのをおすすめします。シェルスクリプトや Unix コマンドは行単位の単純なテキストデータをシーケンシャルにデータ処理するのが前提となっており、改行や空白が含まれるデータや複雑な構造のデータ扱うのは苦手です。またシェル

    なぜシェルスクリプトで高度なデータ管理にSQLiteを使うべきなのか? ~ UNIX/POSIXコマンドの欠点をSQLで解決する
  • 壊れた MP4 ファイルを復元する python スクリプト、ONE X編 - Qiita

    概要 Insta360 ONE X など、いわゆるアクションカメラで撮影した動画ファイルは大抵30分で分割されますが、最後の1つが「moov が見つからない」と言われて再生できない時があります。ファイルサイズはそれなりにあるので、何かデータは保存されているのに!と歯痒い思いで、泣く泣くゴミ箱に捨てた方も多いと思います。今日の話は、この再生できない動画ファイルを復元する、という話です。(できます!) やったことは、生データが記録されている mdat の情報だけから H264 と AAC を分類することで moov に必要なサンプルテーブルを再構成した、という話です。 ONE X での話ですが、 H264/AAC コーデックの MP4 ファイル(つまりほとんどの動画ファイル)に使える話だと思います。 詳しい話や、ポエムなど必要ないという方は、こちら(https://github.com/kic

    壊れた MP4 ファイルを復元する python スクリプト、ONE X編 - Qiita
  • Firefox OSの軌跡 - Qiita

    Original article:https://medium.com/@bfrancis/the-story-of-firefox-os-cb5bf796e8fb written by Ben Francis. モバイル市場は長らくAndroidとiOSの独擅場ですが、その牙城を崩すために、数多くの企業やコミュニティが挑戦を繰り返してきました。 Windows Phone、BlackBerry OS、Sailfish OS、Harmony OS、Tizen、etcetc… 中でも特に注目されていたモバイルOSのひとつが、Mozillaが開発していたFirefox OSです。 以下は、その始まりから終わりまでの一部始終を描いた物語、The Story of Firefox OSの日語訳です。 著者のBen Francis( Twitter / GitHub / Medium / Link

    Firefox OSの軌跡 - Qiita
  • ウォーターフォールを世に広めたとされる米軍がアジャイルに移行中という話 - Qiita

    また、この図の説明においては理想的なケースにおいても1つ前の工程に戻る事が述べられています。 " Hopefully, the iterative interaction between the various phases is confined to successive steps. " (投稿者訳) 理想的には、各段階において工程が前後する範囲は直近の工程に限られる。 理想的でない場合はどうかというと、テストから設計まで工程が戻りうると示唆しています。 "The testing phase which occurs at the end of the development cycle is the first event for which timing, storage, input/output transfers, etc., are experienced as dist

    ウォーターフォールを世に広めたとされる米軍がアジャイルに移行中という話 - Qiita
  • モダンプログラマになれない組込みプログラマの苦悩 - Qiita

    はじめに 10年以上組込みエンジニアをしている@yagisawaです。 Qiitaのトップ記事では新しいフレームワークの使い方とかモダン言語の新しい言語仕様の解説とかが流れてきて、いつも羨ましいなーと思いながら読んでいます。 記事は組込みシステム開発をしていて経験したこと・感じたことを自虐ネタとして書き連ねていこうと思います。他ITエンジニアの人に「うわっ、可愛そう」って思ってもらうのが目標です(ぇ 各業界それぞれに悩みはあると思うので、自分たちが一番不幸とかは思っていません。おそらく隣の芝が青く見えているだけです。それよりあまり組込みの記事は見かけないので、「組込みエンジニア仕事ってこんな感じ」というのを知ってもらう意図があったりします。 内容によっては「それはあなたの設計が悪いからです」と言われてしまうようなところもあるとは思いますが、建設的なご意見は大歓迎ですが基は温かい目で見

    モダンプログラマになれない組込みプログラマの苦悩 - Qiita
  • CassandraからKVSのデータモデルについて考えてみる - Qiita

    はじめに Futureアドベントカレンダー15日目を担当させて頂きます。 昨今ビッグデータという言葉もすっかり浸透し、エンタープライズで"NoSQL"を耳にすることが増えました。 記事ではNoSQLネタとして"Cassandra"を紹介しつつ、NoSQL(KVS)のデータモデルの検討ポイントを伝えられたら良いなと思います。 そもそも"NoSQL"とは何者か考えてみる Cassandraの話をする前に、まずはそもそも"NoSQL"とは何者なのかを考えてみましょう。 NoSQLとは 「Not only SQL」を語源としており 「SQLだけでない = 非RDB」という意味で解釈されることが多いです。 エンタープライズシステムではRDB(リレーショナルデータベース)が多く採用されています。 その理由は一言では言い尽くせませんが、テーブル結合によってSQLで複雑なビジネスロジックを 表現出来たり

    CassandraからKVSのデータモデルについて考えてみる - Qiita
  • 2020年現在のNewSQLについて - Qiita

    Disclaimer 当記事はNewSQL開発ベンダの技術ブログや各種論文、その他ニュースサイト等の内容を個人的にまとめたものです。 そのため、理解不足等に起因する誤解・誤認を含む可能性があります。更なる理解が必要な方はリファレンスに挙げた各種文献を直接参照下さい。技術的な指摘は可能であれば取り込み修正しますが、迅速な対応はお約束できません。 NewSQLの解説は二部構成 当記事は前編でNewSQLの概要編となる。 全体の目次は下記である。 NewSQLとは何か NewSQLのアーキテクチャ NewSQLとこれまでのデータベースの比較 NewSQLのコンポーネント詳解 1章から3章までの内容を当記事で解説する。 4章はさらに詳細な技術的解説となり、後編の「NewSQLのコンポーネント詳解」で記述している。 こちらも合わせて一読いただきたい。 1. NewSQLとは何か NewSQLとは、海

    2020年現在のNewSQLについて - Qiita
  • 高校生がアルゴリズムとスパコンの力で、京都の碁盤目状道路を13.9%効率化した話 - Qiita

    2. 研究で解く問題 「いざ研究しよう!」と思っても、条件や設定を決めないと何も始まりません。 まずは研究を分かりやすくするために、「一つの問題」に落とし込むことにしました。 問題設定 縦 $N$ 行・横 $N$ 列の大きさの碁盤の目があります。隣り合う交差点間の距離は 1 です。つまり、交差点が合計で $N^2$ 個あり、それぞれ座標 $(1, 1), (1, 2), ..., (1, N),$ $(2, 1), (2, 2), ..., (N, N-1), (N, N)$ に位置すると考えることもできます。 下の図は、$N = 4$ の場合の交差点の位置です。 あなたは、碁盤の目の交差点の位置は変えずに、道路の並びのみを変えることができます。上手く道路の並びを変えることで、できるだけ「便利」な道路網を建設してください。 「便利な道路網」って何? 私は、以下の 2 つの条件を満たす道路

    高校生がアルゴリズムとスパコンの力で、京都の碁盤目状道路を13.9%効率化した話 - Qiita
  • 過去の難案件 PS2のカーネル開発 - Qiita

    はじめに 時はPlayStation2も そろそろ終わり。 PS2互換機がゲームセンター等で使われていた時代の事です 私は当時 超新人だったんだけどね ただ私は 大学を3ヶ月で光速中退して すぐにフリーランスになった変な経歴持ちです そんな時 ある人物が 掲示板に メモリマネージャやDMA、3DCGについて質問をしていた ちょうどその時期 仕事が楽だったので 光速で回答しました。 メモリマネージャ作りたいっていうので、簡単な方法として、連結リストでAllocateしていくと簡単だよ DMAについては 方向のふらぐがこーであーするだけだよ 3DCGについては DirectXを知識は入れてたので なんとなく回答 すると やり取りから1週間で 仕事してもらえますか? PS2の自社タイトルを作ってます。コアエンジニアが不足しています とメールアドレス宛にメッセージがきたので 請ける事に これがすべ

    過去の難案件 PS2のカーネル開発 - Qiita
  • ほんとうに怖い。さくらのレンタルサーバー - Qiita

    Help us understand the problem. What is going on with this article? さくらで専用サーバーを10年ほど利用しています。 単体のハードを利用するもので、外部からの操作はsshでログインすることしかできないものです。 作業時間を必死に捻出して、こつこつと長期間システムを開発して何とか動作するものを作り上げていました。 さくらのレンタルサーバーを利用することは、ほんとうに危険で怖いことだとおもいます。 自分が体験したトラブルをレンタルサーバーの利用を検討している方々に共有させていただきたく初めて記事を書いてみました。 二年ほど前、さくらさんが専有サーバーの場所を移動したいという申し出があり快く許可しました。その時のご説明では、場所を移動するだけでハードの変更は一切行いませんというもので、今まで通りの動作が保証される作業内容というこ

    ほんとうに怖い。さくらのレンタルサーバー - Qiita