タグ

2024年8月2日のブックマーク (5件)

  • ニューラルかな漢字変換エンジン「Zenzai」をazooKey on macOSに搭載します

    こんにちは。iOSの日本語入力アプリである「azooKey」を開発しているMiwaです。 azooKeyは最近macOS版の開発が進んでいます。このazooKey on macOSに、完全にローカルで動作するニューラルかな漢字変換エンジンである「Zenzai」を開発し、搭載します。この記事ではZenzai技術を解説します。 Zenzaiを搭載したazooKey on macOSは現在アルファ版としてリリースしています。macOSをご利用の方はぜひ入れて試してみてください! Zenzaiの概要 日本語入力に欠かせないかな漢字変換ですが、その歴史は長く、50年にも及びます。この間様々なアルゴリズムが提案され利用されてきましたが、近年の技術開発はやや落ち着きつつあります。オープンソースのかな漢字変換ソフトウェアで今でも広く利用されているものは数えるほどしかありません。 クローズドソースのシステ

    ニューラルかな漢字変換エンジン「Zenzai」をazooKey on macOSに搭載します
    gfx
    gfx 2024/08/02
    "azooKeyではいろんな方に「AIで日本語入力良くならないの?」というような声をいただいていたのですが、ようやく「AIで日本語入力良くなるよ」が実現できそうです"
  • Rust 1.80を早めに深掘り - あずんひの日

    日7/26(金)にリリースされたRust 1.80の変更点を詳しく紹介します。 もしこの記事が参考になれば記事末尾から活動を支援頂けると嬉しいです。 7月25日は蒸気機関車が初めて走った日 ピックアップ 遅延初期化されるグローバル変数を書けるようになった Optionの値を条件を満たしたときだけ取り出せるようになった スライスをパニックなしに分割できるようになった 配列を含むスライスを一次元化できるようになった パターンとして終端の含まれない範囲を使えるようになった useなしにsize_of等が使えるようになった 安定化されたAPIのドキュメント LazyCell サンプル LazyLock サンプル Duration::div_duration_f32 サンプル Duration::div_duration_f64 サンプル Option::take_if サンプル Seek::se

    Rust 1.80を早めに深掘り - あずんひの日
    gfx
    gfx 2024/08/02
  • [InputMethodKit] azooKey on macOSの開発知見

    普段はiOS向けにazooKeyという日本語入力キーボードアプリを作っています。少し前からazooKey on macOSの開発を始めました。 といっても、独自実装した変換エンジンのAzooKeyKanaKanjiConverter自体は既にmacOSで動作確認していたので、macOSの入力メソッドフレームワークであるInputMethodKitとAzooKeyKanaKanjiConverterを繋ぐのがメインの開発内容です。以前にも一度チャレンジしてInputMethodKitで挫折していたのですが、この度ついにまともに動くものができました。 出来たもの 作り方 大人しく先人の知恵に縋りました。1000円で全てが分かります。 何年も前のものですが、InputMethodKitの側の変更が皆無であることもあり、ほとんど書いてあるとおりに実装できました。参考実装のEmojiIMは当時との環

    [InputMethodKit] azooKey on macOSの開発知見
    gfx
    gfx 2024/08/02
    “普段はiOS向けにazooKeyという日本語入力キーボードアプリを作っています。少し前からazooKey on macOSの開発を始めました”
  • Rust 1.80がリリース ―遅延初期化が安定して利用可能に | gihyo.jp

    The Rust teamは2024年7月25日、プログラミング言語Rustの最新バージョンRust 1.80をリリースした。 Announcing Rust 1.80.0 | Rust Blog Rust 1.80では遅延初期化を行うLazyCell型とLazyLock型が標準ライブラリで採用される。これらの「遅延」型は、リソースへの最初のアクセスまでデータの初期化を遅らせることができる。これによりプログラムの実行時間を短縮し、無駄な計算やメモリの確保を抑えることができる。1.70で採用されたOnceCell型とOnceLock型に似ているが、LazyCell/LazyLockでは初期化関数がセルに含まれているためこれまでの遅延型よりも安定化されている。 LazyLockはスレッドセーフなので同じ初期化を何度も行わず、最初の1度だけ初期化を実行する。LazyCellもスレッド同期なしで同

    Rust 1.80がリリース ―遅延初期化が安定して利用可能に | gihyo.jp
    gfx
    gfx 2024/08/02
  • 迂闊にTLS/SSLをPHPで実装してみたら最高だった件 - Code Day's Night

    この記事はTLS/SSLを実装してみたいという人が増えるといいな!という気持ちで書いています。実装の詳細は別記事で書こうかと思います。 数年前からいつかTLS/SSLのプロトコルをPHPで実装したいと思い、まずはで知識を得ようかとラムダノートの「プロフェッショナルSSL/TLS」や 「徹底解剖TLS1.3」を買って読んでみましたが、なかなか頭に入らずに読んでは寝てしまうというパターンに。 やはり自分でTLSを実装してみないとなと思ってたところに、PHPカンファレンス福岡2024で hanhan1978 さんの「PHPでデータベースを作ってみた」を見て大いに刺激をもらい、ついにTLS実装に着手できました。 speakerdeck.com この資料は当によくて名言の宝庫です。たとえば、 「まじめに作ろうとすると大変な努力が必要になる。もっと迂闊につくりたい」 「不格好でもいいので、動く完成

    迂闊にTLS/SSLをPHPで実装してみたら最高だった件 - Code Day's Night
    gfx
    gfx 2024/08/02
    すばらしい。暗号アルゴリズムの詳細はTLSにおいてはさほど重要でないので、OpenSSL使うのでいいと思うな。