ブックマーク / blog.p1ass.com (37)

  • 僕が10年以上続けている「メールの受信トレイを空っぽにしつづける」管理方法 - ぷらすのブログ

    はじめに「メールの受信トレイを空っぽにしつづける」管理とは?ショートカットキーを使って効率的にメールを捌く「メールの受信トレイを空っぽにしつづける」メリットメリット1: 受信トレイにあるメールをTODOリストとして使えるメリット2: 無価値なメールを見逃さないFAQどうやって空っぽ管理を始めれば良い?そんなこと言っても、私には大量にメールが届くんだけど…この方法の出自当時の記事たちおわりにはじめにメールの仕分け方は人によってさまざま。フィルターやラベルを駆使してきちんと整理している人もいれば、大雑把に受信トレイに溜め込んでいる人もいると思う。 どんなやり方でもそれでうまく回っているなら何も問題は起こらない。でも、ちょっと工夫すればもっと効率的にメールを処理できるかもしれない。 僕は10年以上、「受信トレイが空っぽであることが理想」 という思想のもと、メールを捌いている。 こだわりの強いやり

    僕が10年以上続けている「メールの受信トレイを空っぽにしつづける」管理方法 - ぷらすのブログ
    p1ass
    p1ass 2024/02/07
    ブログ書きました
  • ISUCON13に参加して4位になりました (187,577点) - ぷらすのブログ

    今年新たに導入した文明の利器TailscaleGitHub Copilot・JetBrains AI AssistantOpenTelemetry競技中に行った改善10:51 App用のMySQLを2台目に移行 (5,333点)11:02 fillLivestreamResponseのN+1を解消 (7,188点)11:08 searchのN+1を一部解消 (7,447点)11:12 MySQLNginxの設定に秘伝のタレを追加 (7,212点)11:35 fillLivestreamResponse と fillUserResponse のバルクバージョンを用意 (7,993点)11:39 コメント取得APIのN+1を解消 (10,034点)12:22 iconのハッシュ計算をicon投稿時に行うようにする (19,325点)12:54 N+1を修正したときに埋め込んだバグを修正13:

    ISUCON13に参加して4位になりました (187,577点) - ぷらすのブログ
    p1ass
    p1ass 2023/11/28
    ISUCONの参加記録を書きました
  • 最近のGoのOpenAPI Generatorの推しはogen - ぷらすのブログ

    はじめに OpenAPIyaml ファイルから Go のコードを生成する OSS ツールは何種類か存在します。 よく使われるのはOpenAPITools/openapi-generatorやdeepmap/oapi-codegenでしょうか。 ググると日語の記事もたくさん出てきます。 こんにちは、バクラク事業部 バクラクビジネスカード開発チームでEMTechLeadを担当している高江 @shnjtk です。 今回は、openapi-generator を使ってOpenAPI定義ファイル(OpenAPI Specification)からGoのコードを生成する方法と、運用時のTipsについてご紹介します。 背景 バクラク事業部では、スキーマ駆動開発によりDBGraphQLのスキーマ定義、OpenAPI定義ファイルなどから自動生成されたコードを積極的に利用する開発スタイルが採用されて

    最近のGoのOpenAPI Generatorの推しはogen - ぷらすのブログ
    p1ass
    p1ass 2023/09/12
    ogenの使い勝手が良かったのでオススメです
  • Google DomainsからCloudflareにドメインを移管した - ぷらすのブログ

    こういう作業は早めにやっておくのが吉ということで、サービス譲渡が発表されたGoogle DomainsからCloudflareにドメインを移管することにしました。

    Google DomainsからCloudflareにドメインを移管した - ぷらすのブログ
    p1ass
    p1ass 2023/06/17
    書きました。 Edited: スペルが間違っていた問題を修正しました。指摘いただきありがとうございます。
  • バックエンドエンジニアがNext.jsのApp Directoryに夢を見る - ぷらすのブログ

    SPA に移行しづらいシステムたちレンダリングの移り変わりCSR を有効活用しづらい事業領域App Directory によって Next.js は他と対等な選択肢になりうるServer Component がデフォルトの世界React のエコシステムの恩恵を受けられるようになるどういうアーキテクチャになるか1. モノリスから Frontend サーバを分離する2. 元々あった Frontend サーバーをリプレイスする3. SPA + BFF を1つの Next.js サーバーにするまとめこんにちは、@p1assです。 最近、Next.js 13 から beta で導入されている App Directory を趣味で触っているのですが、今まで SPA を採用しづらかった事業領域でも React のエコシステムを使えるようになりそうな予感がして、ワクワクしています。 このブログでは、今まで

    バックエンドエンジニアがNext.jsのApp Directoryに夢を見る - ぷらすのブログ
    p1ass
    p1ass 2023/01/06
    巷でフロントエンドについて盛り上がってますが、全部SSRしてReactやJSXを単なるベターテンプレートエンジンとしてみなせる方がありがたい場合もあるという話を書きました
  • ZigでISUCON 12 の予選をCGOクロスコンパイルする - ぷらすのブログ

    A recent post on the front page of HN made a comparison between different SQLite packages for Go.... 今回は、M1 MacLinux AMD64 用のバイナリを作ってみます。 以下のコマンドでコンパイルできます。 $ brew install zig $ CGO_ENABLED=1 GOOS=linux GOARCH=amd64 CC="zig cc -target x86_64-linux" CXX="zig c++ -target x86_64-linux" make isuports Go では CC や CXX を使って、CGO コンパイルで使う C・C++ コンパイラを指定できます。 Zig は C や C++コンパイラとして使うこともできるため、環境変数に zig コマンド

    ZigでISUCON 12 の予選をCGOクロスコンパイルする - ぷらすのブログ
    p1ass
    p1ass 2022/08/11
    Zig活用事例を書きました
  • ISUCON 12 の予選に参加して、7位で本選進出を決めました - ぷらすのブログ

    事前準備 今年は練習の時間をガッツリ取ることができなかったため、過去問を皆で解くことはしませんでした。 初めてのチーム構成だったため、初動の動きを中心に簡単な役割分担だけは決めておいて、後は「いい感じに」やることになりました。 個人的には、過去問を解いて役に立つスニペットを issue にコピる作業をしました。 これは番でかなり役に立ったので、学んだことをまとめる習慣は大事だと痛感しました。 番直前 YouTube Live を見ながら、「マルチテナント!これはデータベースのシャーディングをするやつじゃね!?」とか喋ってました。 他にも、「リーダーボードで Redis 使えないかな?」など予想してましたが、実現したものは 1 つもありませんでした。 各自初動の対応をする 競技がスタートしたら、予定通り初動の対応をしていきました。 計測ツールのインストールやコードの git 管理を行い、

    ISUCON 12 の予選に参加して、7位で本選進出を決めました - ぷらすのブログ
    p1ass
    p1ass 2022/07/25
    ブログ書きました
  • SPA で役立ちそうな OAuth 2.0 for Browser-Based Apps を読んだ - ぷらすのブログ

    こんにちは、@p1assです。 GW 中に SPA で OAuth を使うときのプラクティスについて調べていたところ、OAuth2.0 for Browser-Based Apps という RFC の Internet-Draft を見つけました。 一通り読んでみたところ、現時点でのベストプラクティスが良い感じにまとまっていたので、興味深かったところを抜粋して紹介します。 全てを網羅するわけではないので、興味がある方は原文を読んでください。 This specification details the threats, attack consequences, security considerations and best practices that must be taken into account when developing browser-based application

    SPA で役立ちそうな OAuth 2.0 for Browser-Based Apps を読んだ - ぷらすのブログ
    p1ass
    p1ass 2022/05/20
    セッションは昔ながらのCookieを使うとか、色々気になる内容が書いてあったから、ブログにまとめた
  • Twitter API v2のOAuth 2.0 Authorization Code Flow with PKCEを試した - ぷらすのブログ

    今までは OAuth 1.0a しか対応しておらず、他の OAuth 2.0 対応の認可サーバーと比較して使いづらいと感じていました。 今回の対応によって、OAuth 2.0 の Authorization Code Flow ( RFC6749 Section4.1)を利用した認可に対応し、より便利に認可をシステムに組み込めるようになりました。 また、スコープを細かく制御できるようになったため、今までのように不用意に多くの権限を要求する必要がなくなりました! 現在対応しているスコープは以下の通りで、非常に細かくスコープを制御できることが分かります。 tweet.read tweet.write tweet.moderate.write users.read follows.read follows.write offline.access space.read mute.read mut

    Twitter API v2のOAuth 2.0 Authorization Code Flow with PKCEを試した - ぷらすのブログ
    p1ass
    p1ass 2022/03/23
    スコープを細かく制御できるようになって、今までのように不用意に多くの権限を要求する必要がなくなって激アツだから、ブログを書いた
  • 『ソフトウェアアーキテクチャの基礎』を読んだ - ぷらすのブログ

    ソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチ | Mark Richards, Neal Ford, 島田 浩二 | | 通販 | Amazon AmazonでMark Richards, Neal Ford, 島田 浩二のソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチ。アマゾンならポイント還元が多数。Mark Richards, Neal Ford, 島田 浩二作品ほか、お急ぎ便対象商品は当日お届けも可能。またソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチもアマゾン配送商品なら通常配送無料。 書はソフトウェアアーキテクチャに関する内容を網羅的にまとめたもので、アーキテクトのようなポジションを目指す人にとっての教科書的な存在です。 自分の今の興味関心にドンピシャの内容で、書籍の発売後にすぐ読み

    『ソフトウェアアーキテクチャの基礎』を読んだ - ぷらすのブログ
    p1ass
    p1ass 2022/03/14
    読書感想文書いた
  • 大規模システムにおけるディレクトリ構成をRDBのカーディナリティを参考に考える - ぷらすのブログ

    モノリシックなプロジェクトにおいて、トップレベルのディレクトリ構成が異なる 2 つのディレクトリ構成を考え、それらの違いは何で、どちらが優れているか?という問いについて考えた。そして、「複雑な概念をトップレベルのディレクトリ構成にした方が良いのでは?」という結論に落ち着いた話をする。 はじまり ちょっとしたシナリオを想像してみよう。 プロジェクト立ち上げ期 「最近のトレンドはレイヤードアーキテクチャだ!」 そう言って、プロジェクトはスタートした。 . ├── application │ ├── xxx_usecase.go │ ├── xxx_repository.go │ ├── yyy_usecase.go │ └── yyy_repository.go ├── domain │ ├── xxx.go │ └── yyy.go ├── infrastructure │ └── xxx_

    大規模システムにおけるディレクトリ構成をRDBのカーディナリティを参考に考える - ぷらすのブログ
    p1ass
    p1ass 2022/03/07
    ブログを書いた。ルートのディレクトリ構成に関する話
  • Gradle にしっかり入門する - ぷらすのブログ

    1 章 はじめに こんにちは、@p1assです。 最近、Gradle を使ったプロジェクトを 1 から構築することがありました。 以前から Gradle を使ったことはあったのですが、ほとんど雰囲気で触っていたため、いざ諸々をセットアップしようとすると戸惑ってしまうことが多々ありました。そのため、改めて Gradle について学んだほうが良かろうということになりました。 この記事では、改めて Gradle を学んだ際に自分のためにまとめたドキュメントを再編集して公開します。 お断り ほとんどが Gradle User Manualからの引用です。公式ドキュメントを読み込める方には不要かもしれません。 使用するバージョン $ gradle -v Welcome to Gradle 7.2! Here are the highlights of this release: - Toolchai

    Gradle にしっかり入門する - ぷらすのブログ
    p1ass
    p1ass 2022/02/22
    既存のGradleプロジェクトをちょっといじるのは出来るけど、1から作ろうとすると詰みかけたので、一通りまとめてブログにしました!結構長い文章です。
  • 2021年にブックマークした記事まとめ - ぷらすのブログ

    2021年にPocketに保存した記事をマークダウン形式で出力するツール. Contribute to p1ass/list-pocket-saved-items development by creating an account on GitHub. 注意: タグはかなり適当 バックエンド Go Nintendo Switch™ ネイティブバイナリへの Go コンパイルを成功させた話 Go の入力バリデーションパッケージ ozzo-validation を試した。 k0kubun/pp: Colored pretty printer for Go language OpenTelemetry in Go Go のロギングライブラリ 2021 年冬 GraphQL の静的解析基盤を作った Go のリリースプロセスとブランチ戦略 Go 1.16 の signal.NotifyContext

    2021年にブックマークした記事まとめ - ぷらすのブログ
    p1ass
    p1ass 2021/12/29
    今回はPocketだったけどはてブでも試してみたい
  • EnumやUnionの列挙子が増えたときに起こりうる人為的なバグを撲滅したい - ぷらすのブログ

    こんにちは、@p1ass です。 Enum や Union 型は、取りうる値を列挙する上で非常に便利な構文です。 曜日のようなものを全列挙したり、エラーコードのように来 string 型として無限の集合だったものを有限の列挙としてアプリケーション側で扱ったりと、様々な用途で使われます。 これらの型は if や switch などの条件分岐やパターンマッチングと共に使われることが多いです。 しかし、これらの処理は列挙子を増えたときに意図しないバグを埋め込んでしまうことも多いです。 そこでこの記事では、Enum と switch を組み合わせたときに人為的に起こしうるバグを紹介しつつ、できるだけ静的にバグを発見するための方法を考えていきます。 先に話をまとめると、この記事に書いてあることは、 default はできるだけ使わないようにする switch 式や match 式があるプログラミン

    EnumやUnionの列挙子が増えたときに起こりうる人為的なバグを撲滅したい - ぷらすのブログ
    p1ass
    p1ass 2021/09/27
    障害起こしたときに「修正漏れでした」って言いたくないので書きました
  • 他言語を書いているエンジニアがJavaをざっくりキャッチアップする - ぷらすのブログ

    他のプログラミング言語は書いているが Java はそんなに書いていない/忘れた人(私)が Java をキャッチアップするために得た知識をまとめた記事です。エコシステム周りを重点的に書いています

    他言語を書いているエンジニアがJavaをざっくりキャッチアップする - ぷらすのブログ
    p1ass
    p1ass 2021/09/23
    書いた
  • 今までにGoでよく聞かれた質問とその参考リンク - ぷらすのブログ

    こんにちは、@p1assです。 最近研修で Go を書いていて、その際にいくつか質問をされるのですが、聞いてみると前にも答えたような質問が多かったので、これを機にブログに参考リンクをまとめようと思います。 質問された際にすぐ答えられない質問も数多くあり、調べたり教えてもらったりすることで様々なことを再発見できました。 この記事では、質問に対する回答をできるだけ公式に近い文章を引用する形で書き記します。私個人の考えは別の段落になるようにして、事実と意見を区別するように心がけています。 なにか誤りを見つけた際は GitHub で PR を投げていただけると助かります。 言語仕様 関数の引数は値渡しか参照渡しか? Go はすべて値渡し (pass by value) です。 ポインタの場合は、ポインタそのものがコピーされポインタの指し示す先の値はコピーされません。 Go の多値返却はタプルか?

    今までにGoでよく聞かれた質問とその参考リンク - ぷらすのブログ
    p1ass
    p1ass 2021/05/24
    書いた
  • 新卒Webエンジニアの上京引越振り返り - ぷらすのブログ

    70 万くらいかかる計算ですね、泣きたい。 とはいえ、これらを全て払う必要はありませんし、逆に人によってはもっとかかる場合もあります。 例えば、敷金・礼金は物件によっては無料です。その場合 20 万円浮きます。 また、仲介手数料も半月分に抑えられる場合もあります。これらを合わせると、70 万円が 45 万円まで下がります。 他にも、単身パック等を利用すれば引っ越し費用を抑えられます。 その分、新たに買う家具・家電が増えると思いますが。 私の引っ越しでは敷礼ともに 1 ヶ月の物件を契約したので、この試算とほぼほぼこの額同じくらいの金額がかかりました。 上京に合わせて引っ越し前の物件よりも条件が良い物件に住みたいと以前から思っており、1 年以上かけて 100 万くらい貯金していたので乗り切れました。 みんながみんなこの方法を取るのは難しいと感じています。 周りの友人は親に引っ越し費用を借りたり

    新卒Webエンジニアの上京引越振り返り - ぷらすのブログ
    p1ass
    p1ass 2021/05/06
  • 研修の目的を考えると不要な議論や不満を生まなくて済む - ぷらすのブログ

    こんにちは、4 月にアルバイトから正社員にジョブチェンジした @p1ass です。 最近は新卒研修の真っ只中ですが、結構楽しく生きています。 しかし、他社を含めた同期の話を聞いていると、研修に対して不満を抱えている人も多いようです。 愚痴を色々聞いていると、それらの不満は 「研修の目的の認識のズレ」 が原因なのでは?と思ったので、自分の考えをまとめておこうと思います。 前提として、研修の内容は理不尽なものではなく参加者は意欲的である、ということをご承知ください。クソマナー研修や怒鳴られる研修のことを指しているわけではありません。 また、観測範囲は Web 系のソフトウェアエンジニア職です。 研修のコンテンツと研修の目的 今回は具体例として「アジャイル開発研修」を用いて話そうと思います。[^アジャイル] アジャイル開発研修では、アジャイル開発を学ぶことを目的にチームで簡単なプロダクトを作りま

    研修の目的を考えると不要な議論や不満を生まなくて済む - ぷらすのブログ
    p1ass
    p1ass 2021/04/18
    ブログを書きました。研修に関するお気持ちです
  • NODE_ENVにdevelopmentとproduction以外を入れると辛い - ぷらすのブログ

    結構前に Node における NODE_ENV と環境変数の設定方法について Slack で軽く議論したんだけど、その後色々と考えるものがあったのでここにまとめておく。 基的にサーバサイドを前提とした話をするが、フロントエンドにも通じる話だと思うし、Next.js の話も出てくる。 NODE_ENV に development、production 以外が入るややこしさ Node のエコシステムでよく使われる環境変数として NODE_ENV がある。 様々なツールが NODE_ENV を見て、developmentであれば開発用のトレースやログを出してくれるし、production であれば番用に最適化された処理を行ってくれる。 これはこれで便利なんだけど、環境 (ENV) という言葉に釣られて、デプロイ環境の名称を NODE_ENV に設定し始めると、途端にややこしくなることが多い。

    NODE_ENVにdevelopmentとproduction以外を入れると辛い - ぷらすのブログ
    p1ass
    p1ass 2021/03/10
    NODE_ENVと.envについてのお気持ちを書きました
  • 2021年の目標とOKR - ぷらすのブログ

    昨年始めて OKR を使ったが、Objective と Key Result(KR)を分離することで、「なぜその目標を建てたのか?」の WHY をきちんと考えられるのが良かった。適当に目標を並べるのは意味ないよねと思っている自分の肌に合った。 定量的に評価できるものにすべきという考え方も好き。 2021 年の OKR 今年は昨年よりも可処分時間が 6 時間程度減ることが予想されるので、昨年と同じだけのことをやろうとするのは無茶がある。 そこで、今年の目標は昨年よりも減らして、Objective が 2 つ、Key Result が合計 5 つになるように設定した。 O1: 社会人としての生活の基盤を整える 1つ目の目標はプライベートに関するもの。 今年は新社会人になり、22 年間の人生において最も生活が変わる 1 年だと予想される。 そんな転機の 1 年で新しいことを色々挑戦しようとするの

    2021年の目標とOKR - ぷらすのブログ
    p1ass
    p1ass 2021/01/07
    遅ばせながら書いた