2024年1月3日のブックマーク (8件)

  • Building a WebView for iOS and macOS in SwiftUI

    questbeat
    questbeat 2024/01/03
  • パスキーとID連携の認証フローの共通点から見る認証技術の基本

    ritou です。 少し前にパスキーとID連携の関係を考えるときにこういう観点があるよという話をしずかな方に書きました。 今回は、ログインに利用しようとした時のフローの中でここ似ているよね、こんな意図があるんだよっていう部分を取り上げます。 認証フローの似ている点 登場人物をUserAgent、RP、Authenticatorとして、あらゆるところを簡略化したシーケンスを用意しました。 ID連携、いわゆるソーシャルログインでは次のようになります。 登場人物をUserAgent、RP、IdPとするとこんな感じでしょう。 もちろん細かいところは違うわけですが、全体の流れは似ています。 WebAuthnのchallenge, OIDCのnonce, state 先ほどのシーケンス、たまたま似ていると言うよりも、これは認証フローにおける基の流れであると意識しておきましょう。 パスキーやID連携の

    パスキーとID連携の認証フローの共通点から見る認証技術の基本
    questbeat
    questbeat 2024/01/03
  • Rewriting Duolingo's engine in Scala

    January 31, 2017 Rewriting Duolingo's engine in Scala by André Kenji Horie Recently, we profoundly refactored the engine that drives Duolingo lessons. This post talks about our engineering choices, experiences, and the pain points of rewriting a highly complex system. Highlights: Redesigned architecture Refactored code from Python to Scala Latency dropped from 750ms to 14ms Engine uptime increased

    Rewriting Duolingo's engine in Scala
    questbeat
    questbeat 2024/01/03
  • Rust 1.75.0のasync fn in traits - cockscomblog?

    Rustでツールを書こうとして、コンポーネントを差し替えられるようにtraitとして定義した。GUIプログラミングの習い性で、IOが発生するメソッドは非同期にしたいから、asyncキーワードをつける。ここでは、何か文字列を読み込む予定のLoader traitを定義する。 use std::error::Error; trait Loader { async fn load(&self) -> Result<String, Box<dyn Error>>; } このコードを書き始めた時点で、このコードは有効ではなかった。Rustではtraitにasyncメソッドを持たせられなかったのだ。そこで、async-trait crateの出番となる。 use std::error::Error; use async_trait::async_trait; #[async_trait] trait

    Rust 1.75.0のasync fn in traits - cockscomblog?
    questbeat
    questbeat 2024/01/03
  • My Text Editor Is Not Open Source

    I've been using Sublime Text on and off for longer than I can remember. I think Sublime has been around since the start of my "real" career over 10 years ago, but I could be mistaken1. It certainly feels that long. And in that time I have never gotten upset with Sublime. I've never rage quit or ran into an issue of Sublime not being able to do the thing I wanted it to do. As much of a cliche it ma

    questbeat
    questbeat 2024/01/03
  • 変化バジェットという考え方 - id:onk のはてなブログ

    この記事は はてなエンジニア Advent Calendar 2023 の 1/2 の記事です。昨日は id:nakataki の 1904年になりました(dayjsでの年入力の話) - nakatakiの日記 でした。190x 年から脱出できない面白い不具合でした。 変化バジェット 「変化バジェット」という考え方があります。というか世の中には無いんですが、僕は社内でこの概念をよく使っています。 Google 検索 *1 Twitter 検索 私が発した言葉のログしかありません だいたい名前から想像するものと同じなんじゃないでしょうか。組織が変化に対して許容できる予算枠だったり、組織が変化に対して投資する予算枠だったりを指しています。 変化バジェット=許容量 変化バジェットは、組織が効果的に変化を取り入れ、消化できる能力の範囲を指します。 組織の変化に許容量があるという概念は、組織に対して

    変化バジェットという考え方 - id:onk のはてなブログ
    questbeat
    questbeat 2024/01/03
  • OS起動時にsystemdで行われていること - Qiita

    ここ数週間 systemd について学んできたので、トピックごとにまとめておきます。 第一回目は、OS起動時に systemd で実行される default.target を起点とした依存関係のツリーについてです。 なお、記事の内容は Ubuntu 16.04, Debian Stretch で動作確認しています。 systemctl list-dependencies まずはおもむろに sudo systemctl list-dependencies を実行してみましょう! default.target を起点として、それから要求される形でどのようなユニットが起動されたかが見られます。緑は成功、赤は失敗、白はその他(依存関係が満たされず、起動されなかった、など)です。 他のことは忘れて良いので、今回、このコマンドだけでも覚えて帰ってください! default.target とは? de

    OS起動時にsystemdで行われていること - Qiita
    questbeat
    questbeat 2024/01/03
  • VSCode Serverがなくなって本体に統合されていた - Qiita

    先日、VPS上にVSCode Serverをインストールしようとしたところ動かなくなっており、詳細を調べているうちにこのスレッドにたどり着きました。 ここをみると、どうもVSCode Serverの機能はRemote Extensionに統合されたので、もはや提供されなくなったようです。(setup.shでダウンロード可能なバイナリが無くなっている) じゃあどうすればいいのか? サーバ上でVSCodeを動かして、ブラウザでエディタを立ち上げたい、iPadで開発したいという皆さんは、引き続きVSCode体で簡単に実現することができます。 サーバ上に普通のVSCodeをインストールして、code tunnelと打ち込むだけで、github.devのドメインでトンネルがホストされてブラウザ上でもローカルのVSCodeとも接続可能な状態になります。 daemon化して常時起動したい それも簡単で

    VSCode Serverがなくなって本体に統合されていた - Qiita
    questbeat
    questbeat 2024/01/03