webに関するkumokajiのブックマーク (4,430)

  • Docker Compose で php-fpm が発行するシステムコールを見る - Shin x Blog

    php-fpm の挙動を確認するために発行されるシステムコールを簡単に確認できる Docker Compose 環境を作りました。 github.com システムコール strace-php-fpm strace オプション php-fpm が発行するシステムコール例 ini ファイルの探索 nginx からの FastCGI リクエスト PHP ファイルの読み込み さいごに 参考 システムコール システムコールは、php-fpm のようなユーザプログラムが、ファイル操作やネットワーク通信、プロセス制御のようなカーネルが提供する機能を利用する仕組みです。PHP コードは PHP(ここでは php-fpm)で実行する必要があるので、php-fpm が発行するシステムコールを確認することで php-fpmPHP コードがどのように動作しているかを知る手掛かりになります。 システムコールを

    Docker Compose で php-fpm が発行するシステムコールを見る - Shin x Blog
  • 【PHP8.4】ついにPHPにプロパティフックが導入される - Qiita

    class HOGE{ public string $tel{ set{ if(!ctype_digit($value)){ throw new ValueError("電話番号は数値のみ"); } if(strlen($value) < 10){ throw new ValueError("電話番号は10文字以上"); } $this->tel = $value; } get{ return '電話番号は' . $this->tel; } } } $hoge = new HOGE(); $hoge->tel = '123456789012'; // OK $hoge->tel = 'abcdefghijkl'; // Uncaught ValueError: 電話番号は数値のみ $hoge->tel = '123'; // Uncaught ValueError: 電話番号は10文字以上

    【PHP8.4】ついにPHPにプロパティフックが導入される - Qiita
  • Real World HTTPの第3版ができあがりました | フューチャー技術ブログ

    https://www.oreilly.co.jp/books/9784814400669/ ひとえに読者の皆さんが買ってくれたおかげで、Real World HTTPを改訂し、このたび3版を上梓しました。ありがとうございます。2016年ごろから書き始めて、2017年に初版を出版したので、執筆段階からすると8年ほど経過しているのですが、これだけ長くこのに関わり続けられるというのは、書を買ってくださるみなさまのおかげです。 今回は、ひさびさに無料のミニ版も更新しました。日、このブログと同時にリリースしました。よりミニ版が学習コンテンツとして使いやすくなるように、そもそもブラウザってどんな動きをするの?というイントロの章をミニ版とオリジナル版に追加しました。 また、オリジナル版だけになりますが、HTTPが単なるブラウザとの通信を超えてプラットフォーム API化していっている流れに合わせて

    Real World HTTPの第3版ができあがりました | フューチャー技術ブログ
  • 問い合わせ対応でエンジニアが疲弊しないようにやったこと - CARTA TECH BLOG

    これは何 弊社のDATA STRAPチームでは、ユーザーからの問い合わせ対応が逼迫し、エンジニアの開発効率が大幅に低下していました。そこで、この課題を解決するため、様々な施策を実施しました。 その結果、今は以前と比較してかなり開発に集中できる時間が増えました。 この記事ではやった施策でうまくいったこととうまくいかなかったことをまとめます。 前提として、問い合わせそのものが悪いわけではありません。むしろ、「こういった機能があれば良いのでは?」といった提案などは、プロダクトの改善につながる好機と捉えています。また、仕様の不明確さに関する質問もドキュメントの整備や仕組みの改善に役立ちます。問題は、適切にユーザーの要望をハンドリングできていないことです。このままでは、ユーザーとエンジニアの両者が不幸になってしまいます。 こうした問題意識のもと、ユーザーからの問い合わせを適切に管理し、エンジニアが開

    問い合わせ対応でエンジニアが疲弊しないようにやったこと - CARTA TECH BLOG
    kumokaji
    kumokaji 2024/05/21
  • IOバウンドがメインなら言語の差は誤差じゃね - Life is Really Short, Have Your Life!!

    クライアント⇔BFF⇔他言語APサーバやるぐらいなら、クライアント⇔APPサーバ on TS(ランタイムはbunでもnodeでも)でFullStackで良くねに思える。ほとんどがIOバウンド主体だし。でも、個人開発じゃ大規模なリクエストでも問題ないっすわ!とも言えず、モニョモニョしてる— ござパイセン (@gothedistance) 2024年5月20日 シングルスレッドが問題になるとしたら、FastAPIが動いているPythonもGILなのでシングルスレッドじゃねって思ったのがきっかけ。asyncioがNodeにおけるノンブロッキングI/Oと等価だと思う。PythonのGIL、3.13で廃止されるんだってね。そうなると、gunicornのようにワーカープロセスを何かあげて管理するモデルも、お役御免になるかも。 php-fpmやgunicornのように親のプロセスでサーバ起動して、ワー

    IOバウンドがメインなら言語の差は誤差じゃね - Life is Really Short, Have Your Life!!
    kumokaji
    kumokaji 2024/05/20
  • DuckDBでお手軽!データフェデレーション - Techtouch Developers Blog

    tl;dr はじめに DuckDB とは DuckDB では何が読めるのか 使ってみる S3 上のJSON を読んでみる リレーショナルデータベース 他ツールではなく DuckDB を使うメリット しくじりポイント (特にリリースされたばかりの)バージョンには気をつける S3 のオブジェクト数が多い場合不都合がありがち スレッドの調整が必要な場合も Redshift には未対応 終わりに 付録 MySQL のデータを読み込む例の MySQL 側の準備 tl;dr DuckDB 便利だよ。分析以外でも使えるよ 色々な場所のデータを閲覧・結合できるよ。標準SQLも使えるよ ただし、細かい落とし穴は色々あるので気をつけてね はじめに2023年4月にデータエンジニアとして入社したmin(@not_rogue)です。暖かくなるにつれ、YouTube で見た南伊豆ロングトレイル | 松崎町に行く機運が

    DuckDBでお手軽!データフェデレーション - Techtouch Developers Blog
  • 10年モノのレガシーPHPアプリケーションを移植しきるまでの泥臭くも長い軌跡 / legacy-php-app-migration

    PHPerKaigi 2024 の発表資料です。 https://fortee.jp/phperkaigi-2024/proposal/8f347718-97fb-4baf-afa3-7e78e1501ca4

    10年モノのレガシーPHPアプリケーションを移植しきるまでの泥臭くも長い軌跡 / legacy-php-app-migration
  • TCP/IP技術入門——プロトコルスタックの基礎×実装[HTTP/3, QUIC, モバイル, Wi-Fi, IoT]

    このの概要 社会インフラとなったインターネットを動かす技術群「TCP/IP」にスポットを当て,長く役立つ基を主軸に,先端の開発/ 研究動向の観点を盛り込んだ入門書。 書では「プロトコルスタックの基礎」を理論× 実践のアプローチで丁寧に解説し,とくに, Wi-Fiやセルラーネットワークをはじめ 無線通信による通信量の爆発的増加 TCP/UDP/QUICのトランスポート層における スピードと信頼性のトレードオフ HTTP/3やWebTransport, IoTなど 進化する上位レイヤー関連プロトコル といった「インターネットの今」を支える技術ポイントを押さえた点が特徴です。 既存仕様に生じる限界の顕在化とそれらを解決する新たなテクノロジーの開発とが絶え間なく続いていく,そんなネットワークの世界が見えてくる1冊です。 ※書の4章/5章は,『TCP技術入門』(安永 遼真/中山 悠/丸田 一

    TCP/IP技術入門——プロトコルスタックの基礎×実装[HTTP/3, QUIC, モバイル, Wi-Fi, IoT]
  • 「PHPコードの実行モデルを理解する」をPHPカンファレンス香川2024で発表しました - Shin x Blog

    2024/05/11 に玉藻公園内 披雲閣で開催された PHP カンファレンス香川 2024 にて、「PHPコードの実行モデルを理解する」を発表してきました。 発表資料 日頃実行している PHP コードがどのように実行されているかをざっくりとイメージして頂くために、PHP コードの実行モデルと、身近な SAPI である php-fpm(mod_php)と php コマンドの実行モデルをご紹介しました。 X や発表後の会話では、やはり php-fpm(mod_php) の Laravel アプリケーションではリクエスト毎に 400 ファイル以上をコンパイルしている(OPcache 未使用の場合)話の反応が多かったです。 カンファレンスのような多様な人が集まる場では、知っている人にとっての「当たり前」を共有する発表も大事だなとあらためて感じました。こういった発表もやっていきたいですね。 Tog

    「PHPコードの実行モデルを理解する」をPHPカンファレンス香川2024で発表しました - Shin x Blog
  • さくらインターネットで活躍中の id:y_uukiを訪問 | はてな卒業生訪問企画 [#9] - Hatena Developer Blog

    こんにちは、エンジニアリングマネージャーの id:onk です。 Hatena Developer Blogの連載企画「卒業生訪問インタビュー」では、創業からはてなの開発に関わってきた取締役の id:onishi、CTOの id:motemen、エンジニアリングマネージャーの id:onkが、いま会いたい元はてなスタッフを訪問してお話を伺っていきます。 id:onkが担当する第9回のゲストは、さくらインターネット株式会社の組織内研究所であるさくらインターネット研究所の上級研究員で、SRE (Site Reliability Engineering)の研究者としても活躍する id:y_uuki さんこと、坪内佑樹さんです。 2013年にはてなに新卒でWebオペレーションエンジニアとして入社後、サーバー監視サービス「Mackerel」をはじめとするサービス開発やはてなのインフラ開発・運用にSR

    さくらインターネットで活躍中の id:y_uukiを訪問 | はてな卒業生訪問企画 [#9] - Hatena Developer Blog
  • RSSリーダー兼メモ帳として個人専用Slackを再び利用し始めた - stefafafan の fa は3つです

    情報のインプットについてたまに悩んでいて、しばらくRSSリーダーとして Inoreader を使ってみていましたが、最近「個人SlackRSSフィードを流す方式」に戻しました。日々仕事趣味SlackDiscordを眺めているので、そのままの体験でニュースを追うことができるのは個人的に便利です。 個人SlackRSSを流すためのTips 基的にはRSSフィードのURLを /feed subscribe URL で登録するだけですが、他にもいくつかTipsがあるので紹介します。 まず特定のGitHubリポジトリのリリース通知を受け取りたいケース。 GitHub Slackアプリの /github subscribe コマンドで releases に購読する方法はありますが、たまに自分が管理していないリポジトリだと権限が足りずに購読できないことがあります。その場合はリポジトリの /r

    RSSリーダー兼メモ帳として個人専用Slackを再び利用し始めた - stefafafan の fa は3つです
    kumokaji
    kumokaji 2024/05/06
  • Yahoo! 知恵袋フロントエンドをリアーキテクトしている話

    Yahoo! 知恵袋のフロントエンドには26000行を超えるユニットテスト(1つのcontrollerのユニットテスト)や、多くのロジックを含むcontrollerがあります。これらによって追加実装・保守が難しい状況です。この問題を解決するために、リアーキテクトを行いました。以下について主に話そうと思っています。 ・リアーキテクトで取り組んだこと ・リアーキテクトの結果・学び・反省点

    Yahoo! 知恵袋フロントエンドをリアーキテクトしている話
  • ブラウザキャッシュの仕組みについてまとめた

    Web開発において、ページの読み込み速度は非常に重要になります。 そのためにもブラウザのキャッシュは効率的なWebサイト運営に不可欠な機能です。 ブラウザのキャッシュには次のHTTPヘッダを設定することができます。 Expiresヘッダ Cache-Controlヘッダ Last-Modifiedヘッダ ETagヘッダ これらのキャッシュには強いキャッシュと弱いキャッシュで分類が可能です。 「Expires」「Cache-Control」は強いキャッシュであり、「Last-Modified」「ETag」は弱いキャッシュに分類できます。 強いキャッシュと弱いキャッシュ 強いキャッシュは設定された期間内は完全にローカルキャッシュを利用して、サーバーへのリクエストを行いません。 一方で弱いキャッシュはキャッシュされたリソースの検証が必要であり、ETagやLast-Modifiedヘッダを利用して

    ブラウザキャッシュの仕組みについてまとめた
  • 自作のRubyの動的解析ツールを使って、モジュラーモノリスの境界を試行錯誤している話 - SmartHR Tech Blog

    DPE(Developer Productivity Engineering)ユニットに所属している、alpaca-tcです。 最近モジュラーモノリス化を進めるためにRuby動的解析ツールを作ったので、その話をします。 📝 私事ですが、新潟の佐渡島に移住しました。新潟や佐渡島のRubyistの方がいらっしゃいましたら、ぜひRubyKaigiでお友達になってください! SmartHRではRailsのモジュラーモノリス化を検討をしているよ Railsにおける「モジュラーモノリス」は、アプリケーションを拡張性のある構造にするために、単一プロセスでモノリスアプリケーションを区分されたサブセット(モジュール)に分割するアーキテクチャのことです。 SmartHRでは、コード量が多いプロダクトでモジュラーモノリス化を進めています。 すでに新規機能の開発では導入されていますが、既存コードのモジュラーモノ

    自作のRubyの動的解析ツールを使って、モジュラーモノリスの境界を試行錯誤している話 - SmartHR Tech Blog
  • Goのerrorがスタックトレースを含まない理由 - methaneのブログ

    Twitterでこんな記事を見かけたので。 zenn.dev ジェネリクスの件もそうですが、Goの言語設計は現実主義なのになにか特別なポリシーによるものだと宗教化されてしまって、ファンには勝手に崇拝されてアンチにはディスられがちだなーと感じます。 Goのエラー処理を改善する実験プロジェクトxerrorsがGo体のerrorsにマージされた時、 errors.New() はスタックトレースを取得していました。しかしGo 1.13がリリースされる前に削除されました。 削除された理由の1つは、今までの errors.New() のパフォーマンスに依存していたコードの速度が低下しアロケーションが増えることです。 github.com しかし、これが理由だと今まで思ってたのですが、実際にはもう1つより重要な理由がありました。エラーのフォーマットです。エラーに複数のフォーマットを持たせようという提案

    Goのerrorがスタックトレースを含まない理由 - methaneのブログ
  • 請求関連テーブルのスキーマ変更をした話 - Feedforce Developer Blog

    以前に アプリケーションを停止させずにRDBのスキーマ変更する話 を書きました。 developer.feedforce.jp 今日は、その実践編というか、実例として EC Booster というサービスで請求関連テーブルのスキーマを変更した話をしようと思います。 はじまりのテーブル 元々、 EC Booster の請求を管理するテーブルは、このような形でした。 create_table "monthly_charges", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| t.uuid "shop_id", null: false t.integer "year", null: false t.integer "month", null: false t.datetime "created_at"

    請求関連テーブルのスキーマ変更をした話 - Feedforce Developer Blog
  • 令和時代の API 実装のベースプラクティスと CSRF 対策 | blog.jxck.io

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

    令和時代の API 実装のベースプラクティスと CSRF 対策 | blog.jxck.io
  • 社内からの不具合報告をSlackワークフローを使って改善した話 - Cluster Tech Blog

    こんにちは、プロダクトマネージャー(PM)のいかりです。 今回の記事では、プロダクトに対しての社内からの不具合報告のフローを改善した話について紹介します。 「社内からプロダクト改善のために色々な声をもらっているけどどう対応しよう……」と困っているような方は何かの参考になるかもしれないので、ぜひ読んでみてください! プロダクトを安心して使ってもらうための「不具合対応」 社内からの不具合報告の既存の課題 【改善】Slackのワークフローを使って不具合報告フォームを制作 結果、良くなったところ 社内の多くの人に不具合報告フローの存在を周知できた 数ヶ月で50件近くのバグ報告があり、1〜2割はその週に解決 連絡の往復回数が減った 後からのキャッチアップがしやすくなった まとめ プロダクトを安心して使ってもらうための「不具合対応」 プロダクトの成長のためには新しい機能の提供や操作性を良くしたり、とい

    社内からの不具合報告をSlackワークフローを使って改善した話 - Cluster Tech Blog
    kumokaji
    kumokaji 2024/04/24
  • 今週の PHP 2024-04-06 〜 2024-04-19

    PHP のメーリングリストから、気になった情報をピックアップします。 Internal PHP: rfc:property-hooks 投票始まりました! 濃密で丁寧なコミュニケーションのすえに、完全に承認されそうな勢いです。 まじかぁ、あの文法使えるんか〜〜〜!って感じです。 PHP: rfc:array_find array_findというは新しい関数の提案についてです。どんな内容なのかというと、下記の通りです。 function array_find(array $array, callable $callback, bool $return_array_key = false): mixed { foreach ($array as $key => $value) { if ($callback($value, $key)) { return $return_array_key ?

    今週の PHP 2024-04-06 〜 2024-04-19
  • 社内の朝カフェにモバイルオーダーを導入した話

    株式会社マイベストのエンジニア2年目になりましたkatakyoです! mybest BlogKaigi 2024 2日目を担当します! 朝カフェとは? マイベスト社員同士の交流、情報交換の場、出勤前の憩いの場として始まった社員持ち回りで行う社員のイベントです。20万円ほどするデロンギの全自動コーヒーメーカーなどを使って定時前の社員が日々交代でカフェの店長を行います!(なお、コーヒー自体は無料で提供されます) 部署によっては、検証で使用した最新の家電を試せたり、占いを行ったりと、イベント的な取り組みをしている部署もあります。 プロダクト開発部として、今回やるにあたり、カフェ店員が結構忙しいという話を店長をやった方から聞いたのと、何かできることないかなと考えて今回朝カフェに「モバイルオーダーシステム」を導入してみることにしました。 作ったもの Webサイトから飲み物をオーダーし、オーダーされた

    社内の朝カフェにモバイルオーダーを導入した話