jin_makinoのブックマーク (230)

  • IdPとしてSAML認証機能を自前実装した - BASEプロダクトチームブログ

    はじめに みなさんはじめまして。BASEでエンジニアをしております田村 ( taiyou )です。 先日、BASEではショップオーナー向けのコミュニティサイト「BASE Street」にログインするための機能としてSSOログイン機能をリリースしました。 SSOログインを実現するための認証方式はいくつかあるのですが、弊社ではSAML認証方式を用いて実現しました。 そのため、この記事ではSAML認証機構のIdPとしてOSSを使わずにSAML認証機能を実装する方法を紹介します。 前回のテックブログで、このSSOログイン機能のフロント側を開発したPJメンバーの若菜が「サーバーサイドエンジニアフロントエンドに挑戦して最高の経験になった話」を執筆したのでこちらも見てみてください! SAML認証機能を提供しているOSSには、Keycloakなどがありますが、BASEでは以下の理由により自前実装すること

    IdPとしてSAML認証機能を自前実装した - BASEプロダクトチームブログ
  • Reactパフォーマンス最適化まとめ - Qiita

    はじめに 自分は2021年に新卒でWeb系の開発会社にフロントエンジニアとして入社し2022年で2年目になります。 実務ではReact×TypeScriptを利用したフロント周りの開発をメインで行なっています。 今回は、現場で経験したReactアプリのパフォーマンス最適化についてまとめていきます。 この記事の対象者 Reactの初心者から中級者 Reactのパフォーマンス最適化について学びたい人 この記事の目標 Reactのレンダリングの仕組みを理解する Reactのパフォーマンス最適化の方法を知る React.memo, useCallback, useMemoについて理解する おことわり React.memo, useCallback, useMemoを使うコストについての詳しい解説 パフォーマンスの数値的な計測は行いません 上記の2点に関しては参考記事を該当箇所で貼ります。 Reac

    Reactパフォーマンス最適化まとめ - Qiita
  • 【サボりたいエンジニア向け】コーディングに役立つチートシートまとめ - Qiita

    はじめに こんな人が役に立つ記事 コーディング業務の効率を上げたい。 コーディングに関するチートシートを知りたい。 打つのもめんどいからコピペでなんとかしたい(笑) 今回は、コーディングに役立つチートシートをまとめました。 VSCODEチートシート エンジニアなら必ず使うであろうVsCodeのショートカットチートシート。これはよく使ってます! HTML系のチートシート集 HTMLに関するチートシートをまとめてみました。 HTML5 タグチートシート HTML5 のタグチートシート。サイトには 5 から廃止になった避けるべきタグなどもまとめてられており、 PDFでダウンロードできます。 HTML5 入れ子チートシート HTML の入れ子の可否を視覚的に分かりやすく、色づけしてくれます。対象要素の親、子を選ぶだけで、簡単に調べることが出来ますので便利なチートシート 特殊文字一覧:HTMLで使え

    【サボりたいエンジニア向け】コーディングに役立つチートシートまとめ - Qiita
  • ゲーム開発者から見た PlayStation のヤバさ|EIKI`

    という話題がありました。 この数字の信憑性はさておき、少し前から開発者サイドから見て PlayStation というハードには色々思うところがあって、何人かで集まると「最近プレステってヤバイよね」という話がぽつぽつ出てきたりします。 デベロッパーからしてみれば当然全ハードでゲームが売れてくれるのが一番好ましいわけですが、素直に「SIE 頑張って!応援してるよ!!」とは言えないくらいの状況になっていることは確かで(そしてそれを招いたのは他ならぬ SIE なわけで)、そういうモヤッとした気持ち、もっと言えば危機感を共有するために主観的な話をしたいと思っています。でも、ネガキャンしたいわけじゃないんですよ。この気持ちのせめぎ合いをわかってほしい。 というわけで、PlayStation に対する今の思いを一つ。 *画像は DALLE2で出力したサイバーパンクシティにたたずむ犬です。 開発しづらい 

    ゲーム開発者から見た PlayStation のヤバさ|EIKI`
  • [ホントは深い、亀仙人の言葉。ドラゴンボールに流れる「武道の精神」を現役格闘家が解説してみた]| 【公式】ドラゴンボールオフィシャルサイト

    熱い師弟関係、ストイックな修業、拳と拳を交える戦い……ドラゴンボールには血湧き肉躍る「武道」の世界が広がっています。 では、そうした作品の武道的な側面を、実際の武道家はどのように捉えているのでしょうか。修業や戦いのシーンをプロが読み解くと、何が見えてくるでしょうか。 今回は、ドラゴンボールを愛する武道家で、空手や総合格闘技の選手を経て、現在は後進指導にあたる菊野克紀さんを直撃。「亀仙人の修業ってどんな意味があるの?」「ベジータはなぜ悟空に勝てないの?」など気になるトピックから、作品と武道のつながりを縦横無尽に語っていただきました。 菊野克紀さん:1981年生まれ。武術を格闘競技で実践する稀有な格闘家。重心がそろう一撃必殺の突きや内臓をえぐる三日月蹴りでKOの山を築く。中学・高校時代は柔道部に所属。高校3年の時に格闘家を志し、高校卒業後極真空手を学び、木山仁(第8回全世界空手道選手権大会王者

    [ホントは深い、亀仙人の言葉。ドラゴンボールに流れる「武道の精神」を現役格闘家が解説してみた]| 【公式】ドラゴンボールオフィシャルサイト
  • メルカリWebのマイクロサービス化、その4年 | メルカリエンジニアリング

    Author: @urahiroshi, Engineering manager of Web Platform team 2022年8月4日、メルカリで “web-2” と呼ばれるサーバがシャットダウンされました。これはメルカリWeb版の開発に携わっているチームにとって、一つの区切りとなる出来事でした。 web-2はPHPで記述されたwebサーバで、2015年から https://www.mercari.com/jp/ 配下のコンテンツを配信していましたが、現在では複数のWebマイクロサービスがその機能を担っており、 https://www.mercari.com/jp/ 配下のページは後継となるWebマイクロサービスが配信するページへリダイレクトされています。 メルカリWebのマイクロサービス化に向けた開発が始まり、最終的にweb-2がシャットダウンされるまで、実に4年以上の期間がかか

    メルカリWebのマイクロサービス化、その4年 | メルカリエンジニアリング
  • freeeの自動テストの全体構成 - freee Developers Hub

    こんにちは、Software Engineer in Qualityチーム(通称SEQチーム)の @teyamagu です。 私たちのチームは普段自動/手動テストの基盤開発や開発フィードバックサイクルの高速化に向けた開発をおこなっています。 その一環で、先日、社内でfreeeの自動テストシステム全体像を共有したのですが、この辺りのことを社外の友人達と話したところ、自動テストの具体的な構成や普段の運用など事例が少なく、どんなことをやっているのかイメージしにくいとの話を伺ったので、社内向け原稿をちょっと手直しして、おすそ分けと言うことで、ここで紹介します。 特に変わったことをおこなっているわけではありませんが、自動テストの関係性の理解に参考になれば幸いです。 基的な考え方 自動テストが既存のデプロイ・リリースのブロッカーではなく、開発のフィードバックを加速させるために、自動テストそのものが高

    freeeの自動テストの全体構成 - freee Developers Hub
  • 普通の人が資産運用で99点をとる方法とその考え方 - hayato

    2024年9月13日、「普通の人が資産運用で99点をとる方法とその考え方」が日経BPから出版されました。詳しくはこちら。 はじめに 資産運用で 99 点をとる方法とその考え方について説明します。この記事の対象はいわゆる「普通の人」です。 資産運用趣味ではない。 資産運用を始めてみたいが何をしてよいのかわからない。 資産運用をすでに行っているが毎年ころころと方針を変えてしまっている。 資産運用に無駄に時間ばかり費やしている。 今のところ資産はすべて銀行の普通口座や定期預金にいれている。このまますべて現金でおいておくのも何か損しているみたいでモヤモヤする。だけど難しいことは勉強したくないし時間も使いたくない。 といった人たちです。 記事では最初に結論、すなわち「やるべきこと」を述べます。資産運用で 99 点の投資効率を達成するためにはこの結論部分だけを実行するだけでよいです。 次に、それだけ

    普通の人が資産運用で99点をとる方法とその考え方 - hayato
  • Fresh 1.0

    Fresh is a new full stack web framework for Deno. By default, web pages built with Fresh send zero JavaScript to the client. The framework has no build step which allows for an order of magnitude improvement in deployment times. Today we are releasing the first stable version of Fresh. Client side rendering has become increasingly popular in recent years. React (and React-like) pages allow program

    Fresh 1.0
  • CSSのメディアクエリの範囲指定で、比較演算子を使用できるようになります

    これを待ち望んでいた人も多いと思います。 ついに、メディアクエリで比較演算子(>=, <=)を使用できるようになります! 幅が400px以上の場合、@media (min-width: 400px){}と定義していましたが、@media (width >= 400px){}と記述できます。 比較演算子だと、400pxを含む「以上」というのも分かりやすいですね。 New syntax for range media queries in Chrome 104 by Rachel Andrew 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様のライセンスに基づいて翻訳しています。 Chrome 104 メディアクエリの範囲指定の新しい構文 メディアクエリの範囲指定で、比較演算子を使用できる Chrome 104 メディアクエリの範囲指定の新しい構文 メディアクエリはレ

    CSSのメディアクエリの範囲指定で、比較演算子を使用できるようになります
  • CSSで区切り線を実装するのは、flexboxが簡単で便利! レスポンシブ対応の区切り線を実装するテクニック

    要素間の区切り線をレスポンシブ対応にする時、どのように実装していますか? flexboxで実装すると、1つのコードでコンテンツに合わせて伸縮し、デスクトップもスマホにも対応、スクリーンサイズに合わせて垂直・水平にも切り替えるのにも対応できます。さらに、区切り線をグラデーションや破線にするのも簡単です。 CSS flexboxでレスポンシブ対応の区切り線を実装する巧妙で素晴らしいテクニックを紹介します。 Flexbox Dynamic Line Separator by Ahmad Shadeed 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 はじめに 区切り線の実装 なぜ区切り線が小さい四角になるのか 区切り線の太さ グラデーションの区切り線 破線の区切り線 これを行う別の方法 終わりに はじめに UIをデザインしているときに

    CSSで区切り線を実装するのは、flexboxが簡単で便利! レスポンシブ対応の区切り線を実装するテクニック
  • ITエンジニアに刺さる「ポッドキャスト6選」

    はじめに 皆さんは「ポッドキャスト」を聞いていますか? ポッドキャストは個人でも配信できる音声メディアのことです。特定のサービスを指すわけではなく、音声ファイルをWebサーバーに置き、RSSフィードで更新情報を配信すればポッドキャストとして認識されます。ポッドキャストのアプリでは、そのRSSフィードのURLを登録すると随時更新された音声データを聴くことができる、という仕組みです。専用のアプリをインストールしておくと番組が更新された時点でプッシュ通知されるため、常に最新の音声データをチェックできます。 ポッドキャストという名前の通り、「iPod」時代の遺物といったイメージもあるかもしれません。しかし昨今、ポッドキャストが見直されているようです。大きな流れとしては、2018年に「Anchor」というポッドキャスト配信サービスが広まったことに起因すると思われます。録音から配信までを1つのサービス

    ITエンジニアに刺さる「ポッドキャスト6選」
  • データベース設計におけるNULL - kawasima

    NULL絶対ダメ論や現実的には無理だから上手く付き合っていくしかないんだよ論など見られるが、せっかくCodd博士が上図の分類を提示しておられるので、これを元にもっと詳細化して考えてみよう。

    データベース設計におけるNULL - kawasima
  • 最近の業務での AWS サーバーレス開発を振り返ってみた | DevelopersIO

    AWS Lambda を使用した Web アプリケーションの開発プロジェクトで、バックエンド・フロントエンド・インフラを一貫して開発をしてきました。 改めてどのように開発をしていたのか、使った技術スタックや各サービスをどのように活用したかを整理したいと思い記事にしました。今後サーバーレス開発を行う際の技術選定の参考にしていただければ幸いです。 前提 Web アプリケーションです。 管理画面用の内部 Web API、外部のサービスと連携するための外部 Web API があります。 処理としてはリソースの CRUD がメインです。 管理画面は SPA で、バックエンドの Web API にリクエストします。 開発メンバーは 4 人ほどで、フロントエンドエンジニア、バックエンドエンジニアといった区分けはしていませんでした。 機能ごとにメンバー全員がバックエンドからフロントエンドまでを一気通貫で実

    最近の業務での AWS サーバーレス開発を振り返ってみた | DevelopersIO
  • Obsidianは最高のマークダウン『メモ』アプリである

    僕は今までマークダウンエディタを資料作成ツールとして使ってきました。見出しやリスト、表を簡単に記述でき、それをCSSで整形して表示できるマークダウン記法は、ブログの下書きや業務で使うPDFなど、「他人に見せるための資料を作る」という役目にピッタリです。 逆に言えば、個人的なメモには向いていないと思っていました。 その固定概念をぶち壊したのがObsidian(オブシディアン)です。今回はマークダウン『メモ』アプリとして無くてはならない存在となったObsidianの特徴と、一般的なマークダウンエディタとの使い分けについてお話ししたいと思います。

    Obsidianは最高のマークダウン『メモ』アプリである
  • Java 18正式リリース。デフォルトのCharsetが「UTF-8」に、シンプルWebサーバ搭載など新機能

    Java 18正式リリース。デフォルトのCharsetが「UTF-8」に、シンプルWebサーバ搭載など新機能 Javaの新バージョン「Java 18」が正式にリリースされました。 Java 18 is now available! #Java18 #JDK18 #openjdk Download now: https://t.co/hTJU1ZzAWQ Release notes: https://t.co/Xdkj5TObNP API Javadoc: https://t.co/izFBPlYkd9 Features: https://t.co/3z0l5sXyDX pic.twitter.com/Ct1BvYmDYs — Java (@java) March 22, 2022 Javaは6カ月ごとに「フィーチャーリリース」と呼ばれるバージョンアップが行われ、そのなかの1つのバージョンが

    Java 18正式リリース。デフォルトのCharsetが「UTF-8」に、シンプルWebサーバ搭載など新機能
  • 見積もりでアジャイル開発の予測可能性を高める - 「キャリトレ」での実践例

    アジャイル開発を採用しているチームにおいても、ビジネスの要求によっては「一定規模のフィーチャーセット」を「特定の時期にリリースする」ことを、達成しなければなりません。 そういった要求に対し、挑戦する20代の転職サイト「 キャリトレ 」 の開発チームがどのように立ち向かっているのか、リファインメントの実践例を通してご紹介します。 「キャリトレ」は2022年12月21日をもってサービス終了しました。 予測可能性を求めるビジネスの要求とは 分かりやすい例でいうと「業界の繁忙期に合わせて新機能をリリースしたい」などです。 また、BtoBビジネスの場合、開発チームがフィーチャーセットとリリース時期をある程度担保することができれば、 企業のお客様に対し事前のご案内がしやすくなります。 そのことは、リリース直後からその機能を最大限ご活用していただける、という大きなメリットがあります。 事業部一体となって

    見積もりでアジャイル開発の予測可能性を高める - 「キャリトレ」での実践例
  • 超凄いIPv6解説書(488ページ)を無料配布します!:Geekなぺーじ

    「プロフェッショナルIPv6 第2版」を無料配布します。2018年7月にプロフェッショナルIPv6初版を発売&無償配布開始しました(すごいIPv6を無料配布)。初版発売開始から3年、さらにパワーアップした「プロフェッショナルIPv6 第2版」がついに完成しました! 書を企画して、少しずつ文章を書き溜めはじめた2011年から10年近くかけて完成した488ページにおよぶ「プロフェッショナルIPv6 第2版」をお楽しみください。 プロフェッショナルIPv6第2版の構成 プロフェッショナルIPv6第2版は5部構成になっています。 第1部は「インターネットとIPv6の概要」というタイトルで、IPv6の視点からインターネット自体の仕組みを復習し、そのうえで、詳細の説明に入る前に把握しておくべきIPv6の概要として、次のような事項を解説しています。 従来のIPv4アドレスとは大きく異なるIPv6アド

  • 我が家のおうちKubernetesの成長記録 | IIJ Engineers Blog

    IIJ 2021 TECHアドベントカレンダー 12/16(木)の記事です】 IIJ Raptorサービス部のエンジニア、RyuSAです。普段はアプリケーションの実装やアーキテクチャ、最近はKubernetesを使った業務を担当しています。 私事ですが、先日IIJの制度として発表された「セレクトジョブ」に参加し、SRE推進部という部署に兼務するようになりました!>  IIJ、社員の自律的なキャリア形成を支援する公募型兼務制度「セレクトジョブ」を開始 | IIJについて | IIJ さて題に入りますが……自分は今年の春に「おうちKubernetes」を植え、自宅で育ててきました。 > おうちKubernetesを構築した話 – メモ – RyuSA (hatenablog.com) 残念ながら自分の家庭はサーバラックがあるような、俗に言う「逸般の誤家庭」ではないためできることはかなり限ら

    我が家のおうちKubernetesの成長記録 | IIJ Engineers Blog
  • ゲームでよくある「NATタイプ」はどう判定しているの?

    はじめに 家庭用ゲーム機などのネットワーク設定で「NATタイプ」というのを見たことがある人は多いと思います。 これはオンラインマルチプレイなど通信を行うゲームをする際、ゲーム機器同士で通信可能かどうかを見極める目安として使われます。 記事では、このNATタイプをどのように判定するのか、 RFC 5780 ベースで簡単に説明します。 この記事はDeNA Advent Calendar 2021の8日目の記事です。 なぜNATタイプの判定を行うのか 一般的なクライアント/サーバモデルの通信であれば、そもそもNATタイプが何であるか気にすることはないと思います。 では、家庭用ゲーム機などがなぜNATタイプを判定するのかというと、「P2Pが成立するかどうか」を見極めるためです。 P2Pで通信を行う際は、NAT(NAPT)が存在する場合、いわゆる「NAT越え」が必要になります。 NATがあると、イ

    ゲームでよくある「NATタイプ」はどう判定しているの?