タグ

lunasteraのブックマーク (864)

  • UUID v6, v7, v8 : タイムスタンプでソートできる新しい UUID のドラフト仕様 - kakakakakku blog

    ID を採番するときによく使われる UUID Version 4 の課題として「順序性がなくソートしにくい」という側面があり,ULID (Universally Unique Lexicographically Sortable Identifier) を使えばソートできるようになるという記事を前に書いた. kakakakakku.hatenablog.com 関連して調査をしていたら,標準化団体 IETF (Internet Engineering Task Force) によって,UUID Version 6, 7, 8 という新しい仕様が提案(ドラフト段階)されていることを発見した❗️UUID Version 6, 7, 8 の目的を簡単にまとめると「タイムスタンプ情報を使ってソートできる ID を採番できるようにする」となり,もしこの仕様が取り込まれると,UUID を活用する幅がさ

    UUID v6, v7, v8 : タイムスタンプでソートできる新しい UUID のドラフト仕様 - kakakakakku blog
  • Prisma で本物のDBMSを使って自動テストを書く - mizdra's blog

    DBMS に依存するロジックのテストを書く時、主に2つの手法があると思います。 Repository 層などを mock する Service 層のテストをする時は、その下位の Repository 層を mock して、DBMS に依存しない形にしてからテストする レイヤードなアプリケーションで適用できる手法 テスト実行時も DBMS を裏で動かして、それを使う 番と同じスキーマを持つ DBMS に対して、実際に insert したり select してテストする DBMS は docker-compose upとかで事前に立ち上げておく 双方にそれぞれ良さがあって、プロダクトによってどっちでやるか変わってくると思います。 この記事では 2 の手法を Prisma でどうやるかについて紹介します。 前提 実際のテストコードの例 テストヘルパーを作る 別解: ヘルパーを自動生成する je

    Prisma で本物のDBMSを使って自動テストを書く - mizdra's blog
  • DMARC をなめるな - 弁護士ドットコム株式会社 Creators’ blog

    Gmailが「メール送信者のガイドライン」を改訂し、なりすましメールへの対策を強化する旨を発表しています。今までは原則、なりすましメール対策の有無にかかわらず、メールはいちおうは届いていました。しかし今後は、なりすましとみなされたメールは届かなくなる方向に向かいつつあります。 なりすましメールとみなされないようにするために、メール送信者には、「メール送信ドメイン認証」への対応が求められます。メール送信ドメイン認証の技術には、主に以下の3つがあります。 SPF: Sender Policy Framework (RFC 7208) DKIM: DomainKeys Identified Mail (RFC 6376) DMARC: Domain-based Message Authentication, Reporting, and Conformance (RFC 7489) SPFは従来

    DMARC をなめるな - 弁護士ドットコム株式会社 Creators’ blog
  • Container-Optimized OS - pokutuna

  • CSS だけで動くスクロールドリブンアニメーション

    CSS だけで動くスクロールドリブンアニメーション 2023.12.17 Google Chrome 115 で追加されたスクロールドリブンアニメーションを使うことで、今まで JavaScript を使わなれけば実装できなかったようなスクロールと連動するアニメーションを CSS だけで実装できるようになりました。スクロールの進行状況に応じてバーを伸縮させるようなアニメーションや、要素が画面内に入ったタイミングでアニメーションを開始するようなことが実装できます。 Google Chrome 115 で追加されたスクロールドリブンアニメーションを使うことで、今まで JavaScript を使わなれけば実装できなかったようなスクロールと連動するアニメーションを CSS だけで実装できるようになりました。 スクロールドリブンアニメーションを利用することで、例えばスクロールの進行状況を表すバーであっ

    CSS だけで動くスクロールドリブンアニメーション
  • Reactのmemo化で再レンダリングが防げるという誤解を解く

    memo化について Reactのコンポーネントをmemo化するとき、再レンダリングを防ぐという記述を見かけることがあります。それは誤解であり、実際にmemo化で出来るのは以下のようになものです。 関数の再評価(ロジックの再実行)は防げる 仮想DOMの差分比較は防げない 最終的なレンダリングは確定した仮想DOMの状態次第なので、memo化に関係なく差分があるかどうかでDOM操作が決定する Reactは仮想DOMの値に変化があった場合に、DOMを書き換える構造になっています。memo化は仮想DOMの生成結果をキャッシュしているに過ぎません。親コンポーネントが再評価されれば、子コンポーネントはmemo化の可否に関わらず差分比較の対象です。 簡単な例 ソースコード import React, { memo, useState } from 'react'; const Test1 = memo((

    Reactのmemo化で再レンダリングが防げるという誤解を解く
  • CSRF 対策はいまだに Token が必須なのか?

    CSRF 対策は One Time Token を form なりに付与して、サーバ側でチェックすれば良い。 それをデフォルトでサポートしてるフレームワークなどもあるし、なくてもライブラリでいくらでも対応できる。 どうせ完全にステートレスなサービスはなかなかないので、サーバ側に redis や memcache を用意するのも別に大変じゃない。 なので、 CSRF 対策として Token を付与するのは、最も安全で推奨できる方式ではある。 っていうのを踏まえた上で、もう SameSite=Lax デフォルトだけど、今でも Token 必須なの?みたいなのがたびたび話に出るので、いい加減まとめる。 前提 この話は、スコープがどこなのかによって話が多少変わるので、そこを絞る。 今回は Passive ではなく Active に対策していく場合を考えるので、前提をこうする。 SameSite=l

    CSRF 対策はいまだに Token が必須なのか?
  • 【試行錯誤】OpenAI Whisperを活用した日本語歌詞のforced-alignment その1:下調べとワンパス - Qiita

    概要 whisperとwav2vecを使った音素レベルのaudio-lyric-alignmentの方法を試行錯誤します。とりあえず下調べして、なんとなくの方針を決めて、精度はともかく、それっぽいalignmentの結果が出てくることを目指します。 シリーズ一覧は以下 【試行錯誤】OpenAI Whisperを活用した日語歌詞のforced-alignment リンクまとめ 背景 forced-alignment forced-alignmentはある音声(発話)とその書き起こしテキストにおいて、テキストの各音素が、音声のどの位置(時刻)に対応するかを推定する技術です。 https://linguistics.berkeley.edu/plab/guestwiki/index.php?title=Forced_alignment この技術の応用先として、動画への自動字幕付与などがあります

    【試行錯誤】OpenAI Whisperを活用した日本語歌詞のforced-alignment その1:下調べとワンパス - Qiita
  • 2024年のPythonプログラミング - Uzabase for Engineers

    ソーシャル経済メディア「NewsPicks」で推薦や検索などのアルゴリズム開発をしている北内です。Pythonは頻繁に新機能や便利なライブラリが登場し、ベストプラクティスの変化が激しい言語です。そこで、2024年2月時点で利用頻度の高そうな新機能、ライブラリ、ツールなどを紹介したいと思います。 この記事では広く浅く紹介することに重点を置き、各トピックについては概要のみを紹介します。詳細な使用方法に関しては各公式サイト等での確認をおすすめします。なお、記事ではOSとしてmacOSを前提としています。 環境構築 Pythonの環境構築はpyenvとPoetryの組み合わせがもっとも標準的でしょう。 以下の手順でpyenvとPythonをインストールできます。 brew install pyenv # Bashの場合 echo 'eval "$(pyenv init -)"' >> ~/.ba

    2024年のPythonプログラミング - Uzabase for Engineers
  • Prisma Accelerate を Self Host して ローカルDBへアクセスする

    Edge Runtime 上での Prisma Accelerate の必要性 Prisma を Edge-Runtime という制限された環境で使う場合、DB へクエリを発行する機能を持った PrismaEngine を直接動かすことが出来ません。これは PrismaEngine が Rust で書かれているためです。いずれは対応される可能性はありますが、現時点では動きません。このため、Edge-runtime 上で Prisma を使う場合は、PrismaEngine を切り離した状態で使う必要があります。 ここで登場するのが Prisma Accelerate という Prisma の公式サービスです。このサービスを使うと、PrismaClient 上で呼び出したクエリは、一旦 JsonProtocol に変換され、手元の PrismaEngine をスルーして、Prisma Acc

    Prisma Accelerate を Self Host して ローカルDBへアクセスする
  • 現代のWebアプリケーションエンジニアとして最低限の常識TODO - shimobayashiパブリック

    古代のWebアプリケーションエンジニアなので、現代との差分を身に付けていくぞ! 個人的なスキルセットの差分を埋めるためのものなので、誰にでもマッチするものではありません。 習うより慣れろの精神で、読んで終わりじゃなくて手を動かします。 コンテナ化 x done.icon The Twelve-Factor App (日語訳) done.icon What is Amazon Elastic Container Service? - Amazon Elastic Container Service 機械翻訳がひどかったので英語版をGoogle翻訳で読むほうがマシそう メニュー1階層目だけ全部読んで、気になるところがあれば深堀りする ↑で物足りなかったらKubernetes完全ガイド 第2版 impress top gearシリーズ | 青山真也 | 工学 | Kindleストア | Ama

    現代のWebアプリケーションエンジニアとして最低限の常識TODO - shimobayashiパブリック
  • Next.jsにおけるenvのベストプラクティス

    Next.js で env をうまく扱うために僕がよく使う手法を紹介します。 Next.js がサポートしている env の扱い Next.js はデフォルトで大きく 2 つの方法で env をサポートしています。 .env ファイルの読み込み next.config.js の env キーに記述する .env ファイルの読み込み Next.js は .env ファイルを配置することで process.env に読み込む機能をデフォルトでサポートしています。なのでプロジェクトのルートに、以下のようなファイルを配置してください。

    Next.jsにおけるenvのベストプラクティス
  • セキュアなTerraformの使い方 ~ 機密情報をコードに含めず環境構築するにはどうしたらいいの?

    22/8/5 CloudNative Security Conference 2022にて発表

    セキュアなTerraformの使い方 ~ 機密情報をコードに含めず環境構築するにはどうしたらいいの?
  • Examples - Apache ECharts

  • Azure のテナント・Azure AD・ディレクトリの関係について整理してみた

    きっかけ 業務の中でAzureで何となくディレクトリの切り替えを行っていました。(画像) Azureでは、Portal上のディレクトリIDと、テナントIDが同じ値であり、どういう違いあるか分からず整理してみました。 参考 テナントのAzure Active Directory概要 Azure ADの概要とテナント作成の流れ Microsoft Azureを利用する前に必ず知っておきたいこと 概要をわかりたい人のためのAzure Active Directory(Azure AD)の基 Azureの基礎 定義(概念) テナント Azureサービスやアプリケーションがまとめられた部屋のようなもの。 よく街中でもテナント募集の張り紙を見ます。1企業につき、1テナント契約しますよね。 Azure ADとは1対1の関係になる。Azure ADを追加すると、テナントも追加で存在することになります。

    Azure のテナント・Azure AD・ディレクトリの関係について整理してみた
  • 3rd Party Cookieのカレンダー | Advent Calendar 2023 - Qiita

    いよいよ 2024 年に開始される Chrome による 3rd Party Cookie の Deprecation。 これはおそらく「Web の歴史上最大の破壊的変更」と思って差し支えない。 一方、そのインパクトに対してエコシステム側に万端の準備が整っているかというと、必ずしもそうとは言えない。 単に「3rd Party Cookie がなくなるから、代わりに何を使えばいいのか」といった浅い知識ではなく、「そもそもなぜ 3rd Party Cookie が無くなるのか?」「行き着く先はどのような Web なのか」について、 25 回に分けて解説を試みる。

    3rd Party Cookieのカレンダー | Advent Calendar 2023 - Qiita
  • Sentry のエラー数を抑えてクォーターを守る方法

    この記事では、Sentryにおいて特定のエラーが大量に送信されてしまっている時に止める方法と、このような事態にならないように予防する方法を解説します。 はじめに Sentryは、プロダクトで発生するエラーをキャッチして送信し、発生箇所やスタックトレースなどを蓄積してくれるSaaSです。とても便利なツールなのですが、プランごとに送信できるエラー数の上限 (クォーター) があります。知らぬ間に大量のエラーが送信されてしまい、クォーターを使い果たしてしまうことがあります。 一度クォーターを使い果たすと、一定の猶予期間後、次に課金されるまでの間は容赦なくエラーが全て破棄されます。この頃にはすでに私たちはSentryがないと安心できない体になっているので、エラーが検知できないのは怖すぎるということで追い課金をしなければならない状況になってしまいます。 対象読者 エラーによってクォーターが消費される条

    Sentry のエラー数を抑えてクォーターを守る方法
  • Scala 3のマクロTips 100連発 - 貳佰伍拾陸夜日記

    この記事はScala Advent Calendar 2023の12日目だ! Scala 3のマクロを書く上で役に立つ, メタれたTipsたちを紹介するぜ! 勢いに任せて書いていくからサンプルコードがちゃんと動かなかったらごめんな. 一応, Scala 3.3.1を想定しているぞ. マクロ 1. メソッドをマクロとして定義する 2. マクロの体を実装する 3. マクロ実装の記法の意味を知る 4. マクロで生成されるコードの内容を確認する 5. 引数の式を評価せずに使う 6. 返り値の型をマクロの実行結果によって決める 7. マクロの返り値の型を制限する 8. マクロの返り値の型を書かない 9. マクロで計算された型をテストする 10. マクロで計算された型をScalaTestでテストする 式 11. 定数式の値を得る 12. 定数式でなければコンパイルエラーにする 13. 定数値の式を作

    Scala 3のマクロTips 100連発 - 貳佰伍拾陸夜日記
  • 【2023】爆速でGCPにリモートAI開発環境を構築する方法🔥 | TC3株式会社|GIG INNOVATED.

    はじめに こんにちは、TC3 Data Scienceチームの@mumeco_mlです!弊社は2022/10からGCP Cloud Partnerとなっておりまして、現在GCP(Google Cloud Platform)のプロジェクトでの活用をより促進しております。今回は、このGCPの機能の1つであるCompute Engineを利用したAI開発環境の作り方をご紹介いたします。GCPのVMで開発環境を作る場合、大きく分けて事前にML用に用意された環境を利用する方法と、Dockerを使ってOS環境等も含めて作る方法があると思いますが、今回は前者を説明します。需要があれば、後者の解説も作ろうと思います。 クラウド開発環境の利点・欠点 利点 高額なGPUをオンデマンドで効率的に活用できる ローカルマシンの動作が重くならない 任意のマシンスペックを利用できる 欠点 使用時間に応じて課金される 実

  • Next.js の codemod を読む

    OGP はマイグレーション作業感を出そうと「工事現場 鉄骨 クレーン」で AI 生成した。前から思っているのだが大体生成に失敗する。あまり精度が良くないのは古くからある無料のものを使っているからなのだが、そろそろ自前でお絵描き AI をホスティングしてもいいかもと思いつつある。 Next.js の codemod 今回の v12 から v13 へのアップグレードガイドでも紹介されていますが、Next.js ではマイグレーションを支援する codemod が存在します。 FYI: https://nextjs.org/docs/upgrading#upgrading-from-12-to-13 codemod はいろんなところで耳にはするものの改めて考えるとどう意味かわからなかったのですが、一般的な言葉かは知らないものの調べたところ https://github.com/facebookar

    Next.js の codemod を読む