タグ

関連タグで絞り込む (354)

タグの絞り込みを解除

articleに関するefclのブックマーク (2,636)

  • WebAssembly所感

    WebAssemblyをちょっといじってみて思ったところをまとめてみます。 設計思想 WebAssembly/designに設計文書がまとまっています。特にHighLevelGoals.mdから読み取れるポイントは以下の4点です。 サンドボックス化された環境であること。 移植性があること。つまり、特定の実CPUアーキテクチャ等に依存しないこと。 少なくともC/C++の(十分に高速な)コンパイルターゲットとして機能すること。 安定した仕様を持つこと。 サンドボックスという観点からは、先行技術として以下のようなものが特筆に値します。 Webサンドボックス JavaScript および asm.js Javaアプレット Flash (ActionScript) NaCl, PNaCl Web以外のサンドボックス OSのユーザーランド、特にLinux userland これらのサンドボックスとの比

    WebAssembly所感
    efcl
    efcl 2024/05/16
    WebAssemblyの制御フロー、バイナリ形式、メモリ管理
  • Merging Remix and React Router

    We've been building a bridge. You can hear Ryan talk about this announcement at React Conf 🎥 For nearly 4 years we've been working on Remix, a fullstack framework built on web standards to help you build better websites and applications. React Router has always been Remix's largest dependency after React itself. The two projects are so closely aligned that we updated React Router to include Remix

    Merging Remix and React Router
    efcl
    efcl 2024/05/16
    RemixはReact Router v7としてリリースする予定という話。 RemixとReact Routerは、Viteとサーバ以外はほぼ同等の機能になってきている。 そのため、React RouterをRemixにマイグレーションするのではなく、React Routerをアップデートするだ
  • 200 OK! Error Handling in GraphQL

    We all know how great GraphQL is when things go well, but what happens when things don’t go well? How do we handle errors in GraphQL? How can we do it in a way that’s easy to understand? Let’s start by running a simple GraphQL query: { user(username: "@ash") { id name } }we might get something like this: { "data": { "user": { "id": "268314bb7e7e", "name": "Ash Ketchum" } } }This is what we hope to

    200 OK! Error Handling in GraphQL
    efcl
    efcl 2024/05/14
    GraphQLのエラーハンドリング
  • 令和時代の API 実装のベースプラクティスと CSRF 対策 | blog.jxck.io

    Intro CSRF という古の攻撃がある。この攻撃を「古(いにしえ)」のものにすることができたプラットフォームの進化の背景を、「Cookie が SameSite Lax by Default になったからだ」という解説を見ることがある。 確かに、現実的にそれによって攻撃の成立は難しくなり、救われているサービスもある。しかし、それはプラットフォームが用意した対策の質から言うと、解釈が少しずれていると言えるだろう。 今回は、「CSRF がどうして成立していたのか」を振り返ることで、当にプラットフォームに足りていなかったものと、それを補っていった経緯、当にすべき対策は何であるかを解説していく。 結果として見えてくるのは、今サービスを実装する上での「ベース」(not ベスト)となるプラクティスだと筆者は考えている。 CSRF 成立の条件 例えば、攻撃者が用意した attack.examp

    令和時代の API 実装のベースプラクティスと CSRF 対策 | blog.jxck.io
    efcl
    efcl 2024/05/14
    OriginベースのCSRF対策。 セッション的なものとはまた別の考え方
  • TypeScriptとGraphQLで実現する型安全なAPI実装

    この記事はTSKaigi2024での以下の私の発表内容を書き下ろしたものです。 なぜAPIに型をつけたいのか 現代のWebのシステム開発において、クライアント・サーバーともに型のある言語で開発されることが増えてきました。静的な型検査はコードの堅牢性やよりよいメンテナンス性の向上をもたらします。 プログラミング内部だけで型検査をするだけでも十分メリットはありますが、外部I/Oに対する型付けが不十分だとそのメリットを最大限に発揮してるとは言えません。外部I/Oとは、例えばWebフロントエンドだとLocalStorageやDOMからの入力値、それからネットワーク通信(今回はこれをAPIと呼びます[1])などですね。サーバー側でいうとAPIからの入力・レスポンスやデータベースへの読み書きが該当します。 個人的な経験から言うと、Webシステムの開発におけるエラーの多くはAPIやデータベースとのやり取

    TypeScriptとGraphQLで実現する型安全なAPI実装
    efcl
    efcl 2024/05/14
    GraphQL CodegenとFragmentについて
  • A Guide to GraphQL Errors

    🌱 This post is still growing and likely will change as the best practices evolve 🌳 GraphQL errors are something many of us struggle with. Good practices are emerging but the community has not yet settled on a convention. I hope this guide helps demystifiy the many ways you can structure errors in your GraphQL servers, and the tradeoffs each of them make. Stage 1: GraphQL Errors AKA Top-Level Err

    A Guide to GraphQL Errors
    efcl
    efcl 2024/05/13
    GraphQLのエラーの扱い方のパターン。 `errors`プロパティ、フィールドとしてエラーを入れる方法、Unionを使った方法などについて
  • Why Patching Globals Is Harmful

    Honestly, I'd never thought I'd be writing about this, but the matter of patching globals turned out to be one of those topics that a lot of engineers seem to misunderstand. Most of us don't do monkey-patching, and even fewer stay around those implementations long enough to witness their impact. All the more reason to talk about it. Throughout the next few thousand words, I will be referring to mo

    Why Patching Globals Is Harmful
    efcl
    efcl 2024/05/12
    Global APIにmonkey patchする弊害について。 Fetch APIの仕様を各種上書きしているReact/Next.js/Bunについて
  • Compare 5 Node Version Managers: Best Choice

    Imagine you joined a Node.js project and want to bootstrap it to see how it goes, but you see an error. What is the problem? After spending some time, you find out that Node.js version you’re using on your machine is not the one that the project requires. This is quite a common and annoying situation. I have been there myself. To avoid such troubles, smart people developed tooling called “node ver

    Compare 5 Node Version Managers: Best Choice
    efcl
    efcl 2024/05/12
    Node.jsのバージョン管理ツール比較。 nvm,n,fnm,volta
  • Monitor Third-Party Resources that Impact UX with Playwright

    efcl
    efcl 2024/05/12
    PlaywrightのRequest Block/Delayを使ってユーザー影響のあるサードパーティスクリプトを特定する方法について
  • Using the Popover API for HTML Tooltips – Frontend Masters Boost

    Using the Popover API for HTML Tooltips May 6, 2024 We looked at the Popover API and how it’s made it’s way across all browsers already just last week. One of the things I should have done is looked at the accessibility considerations more closely. Thanks to Melanie Sumner there is a great explainer with demos. I tried to adhere to the points made in there the best I could while making a classic t

    Using the Popover API for HTML Tooltips – Frontend Masters Boost
    efcl
    efcl 2024/05/12
    Popover API について
  • Misconceptions about CSS Specificity

    Whenever a post about Specificity in CSS – and by extension the Cascade itself – gets published I get very excited as it’s a core concept of the language that everyone should know. The more articles on this, the better! However, I also sometimes raise an eyebrow as from time to time I, unfortunately, encounter some parts that are not entirely correct of just outright wrong. To remove some of the c

    Misconceptions about CSS Specificity
    efcl
    efcl 2024/05/12
    CSSのSpecificityについて
  • Cookieの改訂版仕様 rfc6265bis の変更点 - ASnoKaze blog

    Cookieの改訂版仕様 rfc6265bis について、その変更点をざっと眺めていく はじめに SameSite属性 Cookie名プレフィックス (Cookie Name Prefixes) __Secureプレフィックス __Hostプレフィックス 非セキュアなオリジンからの Secure属性の上書きを禁止 nameless cookieの許容 Cookie名、Cookie値の上限長の指定 Expires属性の年が2桁の場合の処理の指定 Max-Age/Expires の上限 その他 今回入らなかった機能 はじめに Cookieの仕様は『RFC 6265: HTTP State Management Mechanism』として標準化されています。 そのCookieの仕様の改訂版が『rfc6265bis』と呼ばれているもので、現在標準化作業が進められいています。"SameSite属性"

    Cookieの改訂版仕様 rfc6265bis の変更点 - ASnoKaze blog
    efcl
    efcl 2024/05/11
    Cookieの改訂版仕様 rfc6265bisについて
  • エンジニアとQAEの壁が崩れていくのを眺めていた | at-blog

    こんにちは、asatoです。 あるスクラムチームの話です。とりとめもなく、そんなチームで起こったことを書き連ねていきます。 Table of Contents 【スタート】エンジニアとQAEの間には壁がありました 【1ヶ月目】DoDを作成しました 【2ヶ月目】スプリント中にテストを完了できる方法を探しました、が見つかりませんでした。 【4ヶ月目】QAEもテスト環境構築ができるようになりました 【5ヶ月目】スプリント内でテストが完了するようになってきたのでDoDを更新しました 【6ヶ月目】QAEみんなでAgile Testing Condencedを読み始めました 【6ヶ月目】Engineerもテストするようになりました 【7ヶ月目】QAEも見積もりに参加するようになりました 【7ヶ月目】QAEもスプリントレビューでインクリメントをお披露目するようになりました 【7ヶ月目】開発者全員で探索的

    エンジニアとQAEの壁が崩れていくのを眺めていた | at-blog
    efcl
    efcl 2024/05/11
    QAとエンジニアリング
  • actions/cache@v4ではヒットしなかったときcache-hit=='false'にならない - ぽよメモ

    [追記 2024/8/1] 修正のPRがマージされました cache-hitとは v4における挙動変更(?) cache-hitがfalseを返さない ワークアラウンド [追記 2024/8/1] 修正のPRがマージされました まだリリースされていませんが次のリリースに含まれるでしょう。 github.com cache-hitとは GitHub Actionsのキャッシュ用actionであるactions/cacheは、指定したキーに完全一致するキャッシュがヒットしたかどうかのパラメータをそのstepのoutputとして保持している。 つまり以下の様にすることで、キャッシュがヒットしたかどうかを判定し、何かアクションするということが可能である。 jobs: run: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - u

    actions/cache@v4ではヒットしなかったときcache-hit=='false'にならない - ぽよメモ
    efcl
    efcl 2024/05/11
    GitHub Actions cacheの`if: steps.cache.outputs.cache-hit != 'true'`のもない
  • TypeScript の型検査にかかる時間を短縮した話

    こんにちは。ナレッジワークの torii です。 最近、プロジェクトで使用している TypeScript の型検査にかかる時間を 3 割ほど短縮することに成功しました。 参考までにどのようにボトルネックを調査して改善に繋げたのかを書いてみます! きっかけ 改善のきっかけは、たまたまネットを徘徊していて見つけた Zenn 記事でした。 (素晴らしい記事をありがとうございます!) これを読んで「自社のプロダクトでも型検査にかかる時間を短縮できるのでは?」と思い立ち、試してみたところ実際に改善に役立てることができた、というのがこの記事の概要になります。 改善対象 改善対象は、弊社のメインプロダクトであるナレッジワークのフロントエンドです。現在マルチプロダクト化に向けたコード分割に取り組んでいる最中ですが、執筆時点はモノリシックな構成となっています。 改善前の TypeScript ファイルは自動

    TypeScript の型検査にかかる時間を短縮した話
    efcl
    efcl 2024/05/11
    TypeScriptの型チェックのパフォーマンスチェックと改善について
  • 1,000,000 requests 2FA bypass

    efcl
    efcl 2024/05/10
    X-Forwarded-For: 127.0.0.1にするとRate Limitがバイパスできたという話
  • Node.js の進化に伴い不要となったかもしれないパッケージたち

    tl;dr はじめに 2024 年の 4 月 24 日に Node.js 22 がリリースされました。ESM を 条件付きで require する機能や、--run フラグによる npm スクリプトのパフォーマンス改善などが v22 で追加され、2009 年に Ryan Dahl が Node.js をリリースしてから 15 年が経つ今も、Node.js は進化を続けています[1]。 こうして Node.js 自身が強化されていくにつれ、以前はサードパーティーのパッケージを使用して実現することが一般的であった機能が Node.js のみで実現可能となり、当該パッケージが不要となるような場合があります。冒頭に引用した Ben Holmes の動画では、そのように不要となったパッケージとして dotenv node-fetch chalk mocha が挙げられていますが、この記事では「これら

    Node.js の進化に伴い不要となったかもしれないパッケージたち
    efcl
    efcl 2024/05/09
    Node.jsのコアモジュールなどに実装されたパッケージの機能紹介。 Fetch API、`.env`のロード、`util.styleText`、`node:test`、`--watch`フラグ、`glob`、`util.parseArgs`などについて
  • 入力フォームのプレースホルダーを使ってはいけない

    入力フォームのプレースホルダーテキストは、入力欄にどんな情報を入れたのかをユーザーが思い出すことや、エラーのチェック・修正を難しくしてしまう。また、視覚や認知機能に障害のあるユーザーにはさらなる負担となる。 Placeholders in Form Fields Are Harmful by Katie Sherwin on May 11, 2014 日語版2014年6月17日公開 コンテクストに沿った説明やヒントは、入力フォームのそれぞれに何が入るかを明確にするのに役立つ。その結果、入力が促進され、コンバージョンレートは向上する。ヒントの提供方法はいろいろとある。実装として一般的なのは、入力フォーム内に説明を入れるやり方だ。しかし、残念ながら、入力フォーム内のプレースホルダーはユーザビリティに役立つよりも損なうことのほうが多いことがユーザビリティテストでは繰り返し示されている。 ラベル

    入力フォームのプレースホルダーを使ってはいけない
    efcl
    efcl 2024/05/05
    プレースホルダーを`<label>`の代わりに使わないという話。問題について
  • プレースホルダーのアクセシビリティ上の課題と解決策 - SmartHR Tech Blog

    こんにちは!SmartHRプロダクトエンジニアのhimiです。 この記事ではプレースホルダーのアクセシビリティとユーザビリティについての課題と、その解決手段についての話を書きます。 プレースホルダーって何? Webアプリでよく見る、フォームコントロールに値が無いときに表示するテキストのことです。 主な用途としては、フォームの入力例や入力内容の説明テキストが設定されることが多いです。 HTML Standardでは The placeholder attribute represents a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value. A hint could be a sample value or a brief de

    プレースホルダーのアクセシビリティ上の課題と解決策 - SmartHR Tech Blog
    efcl
    efcl 2024/05/05
    プレースホルダーを`<label>`の代わりに使わないという話。代替実装について
  • Okta Verify for Windows Remote Code Execution – CVE-2024-0980

    This article is in no way affiliated, sponsored, or endorsed with/by Okta, Inc. All graphics are being displayed under fair use for the purposes of this article. Poppin shells with Okta Verify on WindowsThese days I rarely have an opportunity to do bug hunting. Fortunately, over the holiday break, I found some free time. This started as it usually does with me looking at what software was running

    Okta Verify for Windows Remote Code Execution – CVE-2024-0980
    efcl
    efcl 2024/05/04
    Okta Verify for WindowsのRCEについて。 自動更新のファイルをダウンロードして書き込む時のpath.combineで、絶対パスがあると書き込み先を上書きでき、dllを書き込み、DLLハイジャックすることでRCEを行う。