タグ

nori0620のブックマーク (4,970)

  • How to Build a Fullstack App with Next.js, Prisma, & PostgreSQL

    How to Build a Fullstack App with Next.js, Prisma, and Vercel Postgres Prisma is a next-generation ORM that can be used to access a database in Node.js and TypeScript applications. In this guide, you'll learn how to implement a sample fullstack blogging application using the following technologies: Next.js as the React frameworkNext.js API Routes for server-side API routes as the backendPrisma as

    How to Build a Fullstack App with Next.js, Prisma, & PostgreSQL
    nori0620
    nori0620 2022/07/23
  • 不要なコードや機能を安全に削除していく仕組みを作って18万行削除した話 - Giftmall Inside Blog

    ギフトモール でEngeering Managerをやっている @nori0620 です。 ギフトモール のアプリケーションは7年以上運用しておりコードの肥大化、認知負荷の増大などの課題が出てきています。対応として機能ごとのサービス分割などの対応も進めていますが、この記事ではあえて「モノリシックな部分の不要なコードを減らしていく取り組み」にフォーカスした話をしてみます! この記事の概要の3行まとめ 不要なコードが増えると開発効率/開発体験にネガティブな影響が出る ギフトモールのコードベースは非常に大きく成長しており、その分不要そうなコードや機能が当に使われていないことを確認するコストも高いことが課題だと感じた 不要そうなコードが実際に使われていないか検知する仕組みを作って、安全に18万行のコードを消せた 不要なコード・機能の存在は、なにが問題なのか 不要なコードはアプリケーションの挙動に

    不要なコードや機能を安全に削除していく仕組みを作って18万行削除した話 - Giftmall Inside Blog
    nori0620
    nori0620 2022/07/19
  • New XSS vectors

    Published: 20 April 2022 at 14:00 UTC Updated: 20 April 2022 at 14:07 UTC Transition based events without style blocksSo, recently, I was updating our XSS cheat sheet to fix certain vectors that had been made obsolete by browser updates. Whilst looking at the vectors, the transition events stuck in my head. They needed a style block as well as the event: <style>:target {color:red;}</style> <xss id

    New XSS vectors
    nori0620
    nori0620 2022/04/25
  • コードレビューの基準

    コードレビューの基準 コードレビューの主な目的は、Google のコードベースにあるコードの全体的な健康状態を時間をかけて改善することです。 コードレビューのすべてのツールとプロセスは、その目的のために設計されています。 これを実現するには、さまざまなトレードオフのバランスを取る必要があります。 まず第一に、開発者は自分のタスクを進めることができなければなりません。 コードベースに改善を提出できなければ、コードベースは改善しません。 また、どんな変更に対してもレビュアーがいちいち難色を示して変更を取り入れずにいると、早晩、開発者は改善を行う意欲を失います。 一方、CL の品質を確認するのはレビュアーの義務です。CL を取り入れてコードベースのコードの全体的な健康状態 (code health) がだんだんと悪化するのは問題ですから、きちんと確認しなければなりません。 これは骨の折れるやっか

    nori0620
    nori0620 2021/12/28
  • インシデント指揮官トレーニングの手引き | Yakst

    [SRE]原文 An Incident Command Training Handbook – Dan Slimmon (English) 原文著者 Dan Slimmon 原文公開日 2019-06-24 翻訳依頼者 翻訳者 meiq 翻訳レビュアー doublemarket 原著者への翻訳報告 1723日前 Twitterで報告済み 編集 私が Hashicorp で担った最初の仕事のひとつは、社内向けのインシデント指揮官のトレーニング資料を作ることでした。 これは私自身がインシデントへの対処にあたりながら何年ものあいだ肌身に感じてきた、あらゆる類の考えをまとめ上げる良い機会となり、最高に面白いタスクでした。 以下は私の書いたトレーニング資料、ほぼそのままです。 あなたがインシデントレスポンスのポリシーを定義するにせよ、即興でインシデントレスポンスを行うにせよ、お役に立てたら幸いです。

    nori0620
    nori0620 2021/12/03
  • Is Prisma an ORM? | What is an ORM?

    To answer the question briefly: Yes, Prisma is a new kind of ORM that fundamentally differs from traditional ORMs and doesn't suffer from many of the problems commonly associated with these. Traditional ORMs provide an object-oriented way for working with relational databases by mapping tables to model classes in your programming language. This approach leads to many problems that are caused by th

    Is Prisma an ORM? | What is an ORM?
    nori0620
    nori0620 2021/11/21
  • type-challenges/README.ja.md at main · type-challenges/type-challenges

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    type-challenges/README.ja.md at main · type-challenges/type-challenges
    nori0620
    nori0620 2021/10/10
  • SPAセキュリティ入門~PHP Conference Japan 2021

    こちらのスライドは以下のサイトにて閲覧いただけます。 https://www.docswell.com/s/ockeghem/ZM6VNK-phpconf2021-spa-security シングルページアプリケーション(SPA)において、セッションIDやトークンの格納場所はCookieあるいはlocalStorageのいずれが良いのかなど、セキュリティ上の課題がネット上で議論されていますが、残念ながら間違った前提に基づくものが多いようです。このトークでは、SPAのセキュリティを構成する基礎技術を説明した後、著名なフレームワークな状況とエンジニア技術理解の現状を踏まえ、SPAセキュリティの現実的な方法について説明します。 動画はこちら https://www.youtube.com/watch?v=pc57hw6haXkRead less

    SPAセキュリティ入門~PHP Conference Japan 2021
    nori0620
    nori0620 2021/10/03
  • GitHub - casbin/casbin: An authorization library that supports access control models like ACL, RBAC, ABAC in Golang: https://discord.gg/S5UjpzGZjN

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - casbin/casbin: An authorization library that supports access control models like ACL, RBAC, ABAC in Golang: https://discord.gg/S5UjpzGZjN
  • Google Analytics 4 + BigQueryでよく使う基本的なSQL例

    マーケティングテクノロジーの情報やノウハウ・TIPS、エクスチュア社の情報を発信。【ブログネタ募集】ご興味のある分野を教えてください!ご要望の内容を記事に起こします!メニューの「ブログへの」リクエストよりお送りください。 menu こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。 Google Analytics 4 (以下GA4)がリリースされましたね。 というわけでGA4のBigQueryエクスポート機能を使って早速データを抽出してみましょう! 以前、GA360+BigQueryで私がよく使う基的なSQL例を紹介しましたが、今回はそれのGA4バージョンです。 1. ページビュー数 GA4の日別ページビューを出してみます。 タイムゾーンを任意で変更したいので、event_dateカラムではなくevent_timestampを「Asia/Tokyo」にして使ってます。 そ

    Google Analytics 4 + BigQueryでよく使う基本的なSQL例
    nori0620
    nori0620 2021/08/25
  • I Love You Venice

    I Love You Venice offers Videos and Live Streamings of the most beautiful views of Venice. We offer live images through which you can experience the most cha...

    I Love You Venice
    nori0620
    nori0620 2021/07/30
  • TypeScript * GraphQLのバックエンド設計プラクティス

    2冊目も公開中なのでみてください! https://zenn.dev/tatta/books/4e993c596e7dc9 TypeScriptを使いはじめて1年になるので、バックエンドのWebアプリを設計するときに気を付けていることをまとめました。(※社内勉強会用資料の公開版です。) TypeScriptについては、Next.jsを中心にフロントエンドに関する公開情報が豊富です。一方でバックエンドに関する公開情報が少ないと感じています。(かくいう私もNext.jsからTypeScriptデビューしたわけですが) TypeScript * GraphQL という構成は仕事趣味で採用されている方も多いのではないでしょうか? 私もその1人です。私のような方のためにも、バックエンドの設計プラクティスについてまとめようと思い筆を取りました。 書がこれから始める読者にとっては教科書のようになり、

    TypeScript * GraphQLのバックエンド設計プラクティス
    nori0620
    nori0620 2021/06/26
  • SlackのプライベートチャンネルのExport

    TL;DR こことここの情報を参考にして、スレッド内のメッセージも含めてバックアップを取りました。 前者のリンクを参考にSlack Appの設定をして、スプレッドシートのスクリプトエディタに以下のコードをコピペして実行すれば完了です。 var OAuthAccessToken = "{OAuth Access Token}"; var channelID = "{チャンネルID}"; function main() { var fetchUrl = 'https://slack.com/api/conversations.history?token=' + OAuthAccessToken + '&channel=' + channelID + '&limit=1000'; var res = UrlFetchApp.fetch(fetchUrl); res = JSON.parse(re

    SlackのプライベートチャンネルのExport
    nori0620
    nori0620 2021/06/18
  • 存続の危機 浅草商店街に区が立ち退き要求(日本テレビ系(NNN)) - Yahoo!ニュース

    東京の観光スポット、浅草寺周辺で今、ある騒動が起きています。およそ40年、営業を続けてきた商店街の店舗に対し、地元の台東区が不法占拠だとして「立ち退き」を求め、商店街は存続の危機を迎えています。 ◇ 東京土産の定番和菓子に、職人の技が光る工芸品。台東区浅草の浅草寺周辺では歴史ある商店が軒を連ね、観光スポットにもなっています。 しかし、その一角にある商店街で「ある騒動」が起きていたのです。 浅草伝横商栄会 西林宏章会長 「32店舗ある商店街が(区から)立ち退きを迫られている」 対象は、浅草寺南の道沿いに建つ長屋のように連なった32の商店。いずれも同じ商店会に加盟していて、100メートル以上同じ間口の店が並んでいます。 区が立ち退きを要求する理由は… 台東区担当者 「公道上に許可なく店を建てて営業している」 32軒の店舗が建っているのは私有地ではなく公道上。つまり、不法占拠にあたるというのです

    存続の危機 浅草商店街に区が立ち退き要求(日本テレビ系(NNN)) - Yahoo!ニュース
    nori0620
    nori0620 2021/06/08
  • 第79回 MySQLのマルチスレッドスレーブ:MySQL道普請便り|gihyo.jp … 技術評論社

    MySQLの従来のレプリケーションでは、マスターからの更新があった場合、スレーブではシングルスレッドで処理されます。よって、マスターの並列での更新が多いと、スレーブで遅延が発生することがよくあります。最近のMySQLでは、スレーブでの実行を速くするために「マルチスレッドスレーブ」という機能が追加され、並列実行が可能になっています。 今回は、MySQL5.6から追加されたマルチスレッドスレーブ(MTS)について、MySQLのバージョンによる進化と共に紹介します。 MTSについて 前提として、MTSを有効化するには、スレーブでslave_parallel_workersオプションに0より大きい数値を設定します。デフォルトは0(無効)です。 このオプションは、並列で実行するためのスレーブワーカースレッドの数を指定します。SQLスレッドは従来であればスレーブにSQLを実行していましたが、MTSの場

    第79回 MySQLのマルチスレッドスレーブ:MySQL道普請便り|gihyo.jp … 技術評論社
  • Go で使う Makefile の育て方

    Go を使ってプロダクトを作る時、Makefile を使ってビルドを指定することが多いです。 理由としては、 バージョン情報などを埋め込むのに都合がいい 複数のバイナリを吐き出す時に都合がいい Go のビルドオプションを指定するのにいろいろあって整理しておきたい 事前にコードジェネレータで書き出す部分があり、それを考えると Makefile などで整理したい などなどです。なので今回はプロジェクトが大きくなっていく中でどういう Makefile の書き方をしているか、というのをご紹介しようと思います。 サンプルとして、今回のプロジェクトでは gRPC を使ったチャットサービスのサーバーとクライアントを作ることにします。リポジトリは https://github.com/rosylilly/gochat に置いておきました。 Step 1. バージョン情報を埋める 今回はサーバーとクライアン

    Go で使う Makefile の育て方
    nori0620
    nori0620 2021/05/08
  • ユニコーン企業のひみつ

    「ユニコーン企業のひみつ」というを読んだ。 旨は、成功したスタートアップ企業、所謂ユニコーンの開発手法や組織は、エンタープライズ系開発を主としている企業とは違うものですよ、という話である。 そしてそれらの企業が具体的にどういうやり方で彼らのプロダクトを開発しているのかを書いている。 ちなみにタイトルにユニコーン企業とあるけれど、別にユニコーン(評価額10億ドル以上の未上場企業)に限った話ではなく小さなスタートアップからGoogleのような既に上場して随分経っている巨大企業まで共通した話だと思う。著者もとくに区別しているわけではなく単にSpotifyで働いた経験から書いたからそのようなタイトルにしたというだけみたいだ(Spotifyもすでに上場しているので厳密にはユニコーンではない)。まあスタートアップは立ち上げのタイミングでは組織も何もないので、タイトルにあるユニコーンというのは、一応

    ユニコーン企業のひみつ
    nori0620
    nori0620 2021/04/26
  • Dockerfileのベストプラクティス Top 20

    文の内容は、2021年3月9日にÁlvaro Iradierが投稿したブログ(https://sysdig.com/blog/dockerfile-best-practices/)を元に日語に翻訳・再構成した内容となっております。 Dockerfileのベストプラクティスのクイックセットをイメージビルドに適用することで、セキュリティ問題を防ぎ、コンテナ化されたアプリケーションを最適化する方法を学びます。 コンテナ化されたアプリケーションやマイクロサービスに精通している人なら、自分のサービスがマイクロサービスであることに気づいているかもしれません。しかし、脆弱性の検出、セキュリティ問題の調査、デプロイ後の報告や修正など、管理のオーバーヘッドがマクロな問題になっています。 このオーバーヘッドの多くは、セキュリティをシフトレフトし、開発ワークフローの中で可能な限り早く潜在的な問題に取り組むこ

    Dockerfileのベストプラクティス Top 20
  • <!-- "> '> --><title>

    <!-- "> '> --><title>
  • あなたの組織に最適なECSデプロイ手法の考察 | DevelopersIO

    「ECSデプロイの話だけで45分喋った男がいた…」 というわけで、先日、Developers.IO 2020 CONNECTにおいて、以下のタイトルで喋りました。 「あなたの組織に最適なコンテナデプロイ方法とは?〜ECSにおけるデプロイ最新機能てんこ盛り〜」 オンラインセッションは何度か登壇経験あったのですが、今回は45分。正直めっちゃくちゃ疲れました。いやぁ、登壇ってもしかしたら、リアルよりもオンラインのほうがつかれるかもしれません。 そんな登壇だったわけですが、内容あれこれ詰め込んでECSのデプロイだけに内容を絞ったのですが、その甲斐あってかいろんな方に参考にしていただける内容になったのではと考えています。 ぜひ、この記事を、皆さんの現場のECSデプロイをパワーアップする参考にしていただければと思います。 ホンマにECSデプロイだけで45分喋ったの…!? ( ゚д゚) ガタッ /  

    あなたの組織に最適なECSデプロイ手法の考察 | DevelopersIO
    nori0620
    nori0620 2021/02/25