並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 90件

新着順 人気順

Rustの検索結果1 - 40 件 / 90件

  • 自社サービスのバックエンドを Go から TypeScript へ切り替えるための整理

    切り替える理由 自社の主力製品で利用している技術(WebRTC / WebTransport)がブラウザベースのため TypeScript を利用する Go を採用したのは sqlc が使いたかったという理由 sqlc-gen-typescript が出てきたのでもう Go を使う理由がなくなった 自社サービスチーム全員が Go にまったく興味が無い sqlc 自体は便利 そもそも自社に Go への興味がある人がいない 自社サービスの規模ではボトルネックになるのはデータベースであって言語ではない もしアプリでスケールが必要なときは Rust や Erlang/OTP に切り替えれば良い コネクションプールは PgBouncer を利用すればいい TypeScript からは 1 コネクション 1 接続で問題無い どうせフロントエンドでは TypeScript を書く 自社では React

      自社サービスのバックエンドを Go から TypeScript へ切り替えるための整理
    • pyenvを初心者に薦めるのはもうやめよう - methaneのブログ

      Pythonのパッケージ・プロジェクト管理ツールはまだ乱立状態にあって、どれを使えばいいのかわからないから慣れたpyenv+pipを使おうという判断をする人がいるかもしれない。その判断自体は別に否定しないけれども、初心者に教える時にpyenvを教えるのはもうそろそろやめてほしい。 Pythonをソースからビルドするので、コンパイラや依存ライブラリを事前に揃えないといけない。依存ライブラリが足りないと中途半端なPython環境もできうる。 デフォルトで最適化オプション(PGO+LTO)が付いてないので、最適化ビルドしたPythonより~5%程度遅い Windowsで使えない Rye, pdm, Hatch などは python-build-standalone と呼ばれるビルド済みPythonをインストールする機能があるので、これらの欠点が存在しない。 Pythonをインストールするところま

        pyenvを初心者に薦めるのはもうやめよう - methaneのブログ
      • パスワード不要の認証技術「パスキー」はパスワードよりもエクスペリエンスが悪いという批判

        FIDOアライアンスが仕様を策定した「パスキー」は、パスワードではなく生体情報を用いて認証する「FIDO 2.0」を「Webauthn」標準に基いて利用して得た資格認証情報をデバイス単位で管理運用する技術です。このパスキーが抱える問題点について、Webauthn標準に関わったエンジニアのFirstyearことウィリアム・ブラウン氏が自身のブログで解説しています。 Firstyear's blog-a-log https://fy.blackhats.net.au/blog/2024-04-26-passkeys-a-shattered-dream/ Webauthnがパスワードに代わる認証技術として大きな可能性を秘めていると考えていたブラウン氏は、2019年にオーストラリアからアメリカに渡り、友人と共にWebauthnのRust実装であるwebauthn-rsの開発を始めました。その過程で

          パスワード不要の認証技術「パスキー」はパスワードよりもエクスペリエンスが悪いという批判
        • 個人開発OSSが世界に勝てなかった話

          ゆーすけべー氏の「OSSで世界と戦うために」にインスパイアされました。5年間pyserdeというOSSのライブラリを開発・メンテしてきた筆者が、ちょっとだけ世界と戦ってみたけど全然勝てなかったという話です。Honoとはプロダクトの規模も開発にかける情熱も全然違うけど、単純にポストモーテムは読み物として面白いかなと思ったので書いてみます。また、5年間の開発で学んだやってよかったことや失敗などもシェアできればと思います。 pyserde pyserdeは筆者が2019年から開発メンテナンスしているOSSで、RustのserdeというライブラリにインスパイアされたPython用のシリアライゼーションフレームワークです。 以下のようにクラスを定義すると、型アノテーションに基づいたデータ変換やバリデーションのコードが内部的に生成され、強い型付けのクラスを生成することができます。強い型付けのクラスはラ

            個人開発OSSが世界に勝てなかった話
          • なぜSQLiteはバイトコードを使うのか

            以前にデータベースを自作しようとして、SQLiteのアーキテクチャを見てみたらVMだったことに疑問を感じ、それをツイートしたところ作者からリプをもらいました。 作者いわく、次のような背景があったとのことでした。 SQLiteを作った当初はデータベースエンジンのことをよく知らないがコンパイラのことをよく知っていた SQLデータベース・エンジンを書くという問題をコンパイラ構築の問題として扱うのは自然なことだった データベースエンジンのコアの部分をVMにするという発想がまったくなかったので、どんなメリットがあるのか?と気になっていました。 それを作者に聞いたら、詳細な説明ページを作ってくれました。 個人的にVMにしたことで、評価&実行のパフォーマンスは多少良くなると思うが、データベースエンジンのパフォーマンスにそれほど寄与していないんじゃないかな?って思ったりしました。 本記事はそのページについ

              なぜSQLiteはバイトコードを使うのか
            • Rust言語のための統合開発環境「RustRover」正式リリース、JetBrains。個人の非商用利用は無料

              Rust言語のための統合開発環境「RustRover」正式リリース、JetBrains。個人の非商用利用は無料 Kotlin言語や統合開発ツールIntelliJ IDEAなどの開発を行っているJetBrainsは、Rust言語用の統合開発環境「RustRover」の正式リリースを発表しました。 All systems are GO! We’re over the moon to see RustRover finally land! Read all about the release and the new free non-commercial license in our blog post https://t.co/s3MnqfiTrs, and see how we can help you stay focused on what matters pic.twitter.com

                Rust言語のための統合開発環境「RustRover」正式リリース、JetBrains。個人の非商用利用は無料
              • そもそもプログラミング経験自体無い人がRustを学ぶとき,どんな順序が良いのか

                遠きに行くには必ず邇きよりす.高きに登るには必ず卑きよりす.何事にも順序というものがあります.Rust の学習もそうです. そこで,前提知識がほぼ無い状態から Rust を学ぶときに,どんな順序が良いのか,考えてみました. コンパイル時と実行時の区別. Rust を学ぶとき,何がコンパイル時に起こって何が実行時に起こるか分からないと困ります.特に,型検査と借用検査がコンパイル時に行われることは,それらの基本的な規則を知る際に大切です.そこで,最初に Hello world を書く時点で,コンパイル→実行という流れを押さえておくべきでしょう. コンパイルエラーの読み方. まずコンパイルエラーを読むという基本的な姿勢を身に付けるのは大切です. 公式ドキュメントの場所. まず公式ドキュメントを読むという基本的な姿勢を身に付けるのも大切です. Hello world 周辺の基本文法. 例えば以下の

                  そもそもプログラミング経験自体無い人がRustを学ぶとき,どんな順序が良いのか
                • Welcome - 100 Exercises To Learn Rust

                  Welcome Welcome to "100 Exercises To Learn Rust"! This course will teach you Rust's core concepts, one exercise at a time. You'll learn about Rust's syntax, its type system, its standard library, and its ecosystem. We don't assume any prior knowledge of Rust, but we assume you know at least another programming language. We also don't assume any prior knowledge of systems programming or memory mana

                  • 実用Rustアプリケーション開発

                    実世界のRustアプリケーションを効率良く開発するための実用的な知見集 仕事などで実世界のRustアプリケーションを書く時に実用的な知見やtipsがまとまっていたらいいなと思ったことはありませんか? この本では、アプリケーションを書く時に悩むポイントや便利crateを素早くアプリケーションに組み込む際のポイントを紹介します。本の内容をスリムにするため、自分が学び始める前に知りたかったものに絞りつつ要所を紹介・解説します。Rustの言語仕様のメジャーどころやよく利用されているcrateはドキュメントが豊富なので、わからないところや詳しく知りたい部分はドキュメントを読んだりLLMに聞いてみたりしてください。 想定読者: "The Rust Programming Language" の要所を読み終えたくらいのこれからRustでアプリケーションコードを書いていく、または今まさにアプリケーションコ

                      実用Rustアプリケーション開発
                    • すべての開発者が知っておくべきメモリ管理についての知識

                      プログラミングにおいてメモリ管理は重要な要素の一つですが、その重要性を見過ごされがちなものです。メモリ管理の高レベルな抽象化について、「すべての開発者が知っておくべき要素」としてプログラマーのザカリー・リー氏が解説しています。 Memory Management Every Developer Should Know https://webdeveloper.beehiiv.com/p/memory-management-every-programmer-know メモリは「スタック」と「ヒープ」という2つの領域に分かれています。 ・スタック スタックは「先入れ後出し」という特徴を持つデータ構造で、プログラムの関数呼び出しを記録するのに非常に適しています。例えば下図のように「test()」と「main()」という2つの関数があり、main()からtest()を呼び出す場合を考えてみます。

                        すべての開発者が知っておくべきメモリ管理についての知識
                      • Rustで有名アルゴリズムに挑戦(18) Rustでライフゲームを作ってみよう

                        C言語に代わってOS開発に採用されているRust。本連載では、Rustで有名アルゴリズムを実装して、Rustについての理解を深めています。今回扱うのは、生物の栄枯盛衰をシミュレーションするライフゲームです。 コンウェイのライフゲームで生物のシミュレーションをしよう コンウェイのライフゲームとは? 「ライフゲーム(Life Game)」は、イギリスの数学者コンウェイによって考案されたもので、簡単な配列操作によって実装できる簡単な生物のシミュレーションです。次のように動きます。 コンウェイのライフゲームを動かしているところ 見た目が面白いのに加えて、プログラミング言語の性質や特徴を知るのにもってこいの題材であるため、次の姉妹連載でも何度か紹介しています。ぜひ、今回のRust版と見比べてみてください。 - Python連載9回目(https://news.mynavi.jp/techplus/a

                          Rustで有名アルゴリズムに挑戦(18) Rustでライフゲームを作ってみよう
                        • Domain Event

                          目次 概要 この記事の内容 対象読者 注意事項 前提知識 定義 用途 モデリング 不変性 独立性 汎用情報 個別の情報 Versioning 実装 前提 フレームワーク Domain Eventの処理 型定義 interface DomainEventEnvelope Enum Domain Eventの内部通知 staticなEvent Publisherを用意してAggregateがPublisherを呼び出す 実装例 AggregateのCommandの返り値としてDomain Eventを返す 実装例 Aggregateで保持してGetterで取り出す 実装例 永続化と外部通知 要件 永続化 外部通知 まとめ 参考文献 概要 この記事の内容 Domain Eventは非常にシンプルな概念かつ強力なモデリングパターンです。 モデリングにおいては直感的に扱うことが可能ですが、実装をする

                            Domain Event
                          • Rustで作るプログラミング言語—— コンパイラ/インタプリタの基礎からプログラミング言語の新潮流まで

                            この本の概要 小さなプログラミング言語から本格的なプログラミング言語へ……ステップバイステップでの開発を通して,プログラミングそのものへの理解を深めよう! こんな方におすすめ コンピュータサイエンス,とくにプログラミング言語そのものやコンパイラについての素養を得たいと考えている人 他言語でのプログラミング経験があり,Rustの習得に興味のある人。とくに,学習のための題材を探している人 第1章:プログラミング言語概論 プログラミング言語の分類 他の切り口での分類方法 コンパイルパイプライン 第2章:スタックベース仮想マシン 仮想マシン概論 Rustでの実装 標準入力からの読み込み パースとコマンドの実行 ブロックとネスト構造 if制御構文 変数の定義 複数行のソースコードへの対応 関数呼び出し 関数の再帰呼び出し WebAssemblyへのコンパイルとブラウザでの実行 第3章:プログラミング

                              Rustで作るプログラミング言語—— コンパイラ/インタプリタの基礎からプログラミング言語の新潮流まで
                            • Electronを使ったPC向け将棋アプリ開発 - Qiita

                              はじめに 2022 年 1 月から、趣味で PC 向けの将棋アプリを開発しました。その中で取り組んだことや学んだことについて簡単にまとめます。 作ったもの Electron将棋 (electron-shogi) GitHub: sunfish-shogi/electron-shogi GitHub Pages: Electron将棋 背景 最近ではスマホやタブレットでも将棋の対局や研究ができるようになりましたが、本格的に将棋の勉強や研究をするには必ずしも十分ではなく、特に将棋 AI を動す上で PC の処理能力やカスタマイズ性は有用です。 2010 年あたりからオープンソースの将棋 AI が増えましたが、その多くは GUI や通信対局機能を備えておらず GUI のアプリケーションと組み合わせて使う必要があります。AI と GUI がやりとりするための USI という共通仕様があり、 USI

                                Electronを使ったPC向け将棋アプリ開発 - Qiita
                              • neverthrow で局所的に Result 型を使い、 try-catch より安全に記述する

                                Result 型 (類似するものとして Either Monad の方が有名かもしれません) を導入する場合、アプリケーション全体の設計を変えたり、全箇所を書き換える必要はありません。 neverthrow は部分的に使用でき影響範囲も閉じるので、局所的に使い始めることができます。 (Rust のような) Result 型 とは ざっくり言うと関数の処理の結果と成否を 1 つの型 Result<T, E> で表したものです。(T は期待する結果の型、 E はエラーを表現する型) 筆者は詳しくはないのですが、 Haskell 等にある Either<L, R> とは厳密には違うようです(Either は両方の値が使用可能であることを前提としている?) 参考: Rust ではなぜ、Either 型ではなく Result 型を採用しているのか neverthrow とは TypeScript で

                                  neverthrow で局所的に Result 型を使い、 try-catch より安全に記述する
                                • kubernetes knative でサーバレス Vim

                                  はじめに 半月ほど前に、ようやく自分の VPS 環境で動いているものすべてを kubernetes クラスタに移行しました。とても満足感が高くやって良かったと思っています。 ウェブサーバ、メールサーバ、Nostr のリレーサーバや Nostr/Bluesky/Twitter で動かしている各種 bot もすべて kubernetes です。 昨日は knative を導入したので、Go や Rust や Ruby や Python や、いろんな言語のクラウドネイティブアプリを簡単に実行できる様にしました。 knative 便利 残念ながら knative は helm パッケージとして提供されていません。ArtifactHub でそれっぽい物が公開されていますが、ほぼ手作業と変わりません。 おおよそ以下の手順でインストールできます。knative ではネットワークレイヤとして以下の3つが用

                                    kubernetes knative でサーバレス Vim
                                  • Welcome - 100 Exercises To Learn Rust

                                    Welcome Welcome to "100 Exercises To Learn Rust"! This course will teach you Rust's core concepts, one exercise at a time. You'll learn about Rust's syntax, its type system, its standard library, and its ecosystem. We don't assume any prior knowledge of Rust, but we assume you know at least another programming language. We also don't assume any prior knowledge of systems programming or memory mana

                                    • Zig探訪 - comptime編

                                      イントロ さあ、やって参りました。 第1回Zig探訪のお時間です。 今回担当するのは、Zigを使い始めて早くも半年・永遠のニートことsmallkirbyです。 Zig探訪では、Zigの機能や特徴の中で面白いんじゃないかと思うものをピックアップして紹介していきます。 紹介しないこともあります。 第1回のテーマは、Zigの中でも特に重要なコンセプトであるcomptimeについてです。 Zigとは - Everything is Explicit Zigについておさらい 第1回ということで、最初に軽くZigについておさらいしておきましょう。 Zigは、2016年に開発が始まったコンパイル型汎用プログラミング言語です。 Rustが2015年に1.0リリースされた翌年に開発がスタートしたんですね。 最新のリリースはv0.12.0であり、大体1年くらいでマイナーアップデートされるようです。 まだ1.0

                                        Zig探訪 - comptime編
                                      • Real World HTTPの第3版ができあがりました | フューチャー技術ブログ

                                        https://www.oreilly.co.jp/books/9784814400669/ ひとえに読者の皆さんが買ってくれたおかげで、Real World HTTPを改訂し、このたび3版を上梓しました。ありがとうございます。2016年ごろから書き始めて、2017年に初版を出版したので、執筆段階からすると8年ほど経過しているのですが、これだけ長くこの本に関わり続けられるというのは、本書を買ってくださるみなさまのおかげです。 今回は、ひさびさに無料のミニ版も更新しました。本日、このブログと同時にリリースしました。よりミニ版が学習コンテンツとして使いやすくなるように、そもそもブラウザってどんな動きをするの?というイントロの章をミニ版とオリジナル版に追加しました。 また、オリジナル版だけになりますが、HTTPが単なるブラウザとの通信を超えてプラットフォーム API化していっている流れに合わせて

                                          Real World HTTPの第3版ができあがりました | フューチャー技術ブログ
                                        • 明示的な型注釈によって推論コストを下げるというアプローチ

                                          近年、TypeScript を取り巻くエコシステムでは、ユーザーに明示的な型注釈を求めることで、推論や型生成のコストを下げるというアプローチが注目されています。TypeScript 5.5 beta で 発表された --isolatedDeclarations オプションはその代表的な機能ですし、Deno の提供する新しいパッケージレジストリ JSR が提唱している slow types という考え方も同様のアプローチを求めるものです。 この記事では、上記のようなアプローチが提案された経緯や解決したい課題について、TypeScript を利用するエコシステムの状況も踏まえて整理します。 TypeScript を取り巻くツールチェインと型情報を利用する上でのパフォーマンス 皆さんがご存知の通り、TypeScript の型推論は非常に賢く、その機能は日々アップデートされています。特に以下のよう

                                            明示的な型注釈によって推論コストを下げるというアプローチ
                                          • VS Code Extensions and WebAssembly

                                            It is important to note that the component model does not support low-level (C-style) pointers. As such, you cannot pass object graphs or recursive data structures. In this respect, it shares the same limitations as JSON. To minimize data copying, the component model introduces the concept of resources, which we will explore in more detail in a forthcoming section of this blog post. The jco projec

                                              VS Code Extensions and WebAssembly
                                            • tsc の代替実装は作れるのか - mizdra's blog

                                              tsc の代替実装を作る話、とりわけ Rust や Go で tsc を高速化した移植版を作る話について。非常に野心的で面白いと思いつつ、正直僕は実用レベルまで達したものが本当に登場するのか疑問に思っている。今ある型システムもそうだし、新機能として追加されるものにも追従する必要がある。当然、実用レベルとして使ってもらうには、不具合も少なくないといけない。 それに tsc も最近はパフォーマンス改善に力を入れているように見えている。実際にリリースノートを見ると、ちょくちょくパフォーマンス改善系の変更が入っている。 TypeScript: Documentation - TypeScript 4.8 TypeScript: Documentation - TypeScript 4.9 TypeScript: Documentation - TypeScript 5.0 TypeScript:

                                                tsc の代替実装は作れるのか - mizdra's blog
                                              • PHPやNode.jsなどに任意コマンド実行の脆弱性、原因はWindows仕様の理解不足

                                                多くのプログラミング言語の処理系に、攻撃者が任意のコマンドを実行できる深刻な脆弱性が見つかった。JPCERTコーディネーションセンター(JPCERT/CC)と情報処理推進機構(IPA)が共同運営する脆弱性対策情報ポータルサイト「JVN(Japan Vulnerability Notes)」で2024年4月15日に公開された。 脆弱性が確認されたのは「PHP」「Rust」「Haskell」の各言語処理系とJavaScript/TypeScriptの処理系「Node.js」、音声や動画をダウンロードできる高機能なコマンド「yt-dlp」である。ただし、この脆弱性の影響を受けるOSはWindowsだけで、LinuxやmacOSなどの他のOSには影響しない。 多くのプログラミング言語は、プログラムの中からOS上でコマンドを実行する機能を持つ。Windowsでは言語処理系が「CreateProces

                                                  PHPやNode.jsなどに任意コマンド実行の脆弱性、原因はWindows仕様の理解不足
                                                • Rust と Wasm で極限まで PNG ファイルを圧縮した話

                                                  はじめに 以前つくった Minsta というデジタルスタンプラリーの Web アプリの中で、ブラウザ上で Canvas を使用してスタンプ風の画像を生成する機能があるのですが、前々からもう少し画像のファイルサイズを落とせそうだなと思っていたので、今回 Rust と WebAssembly を使用して PNG ファイルを極限まで圧縮するのに挑戦してみました。 Minsta については以下の記事をご覧ください。 動機 Minsta では単色で背景透過の以下のようなスタンプの PNG 画像をブラウザ側で Canvas の toBlob メソッドを使用して生成しているのですが、このメソッドで PNG エンコードすると 32 bit の RGB+alpha 形式のファイルしか生成できず、 Minsta で扱うような単色の画像にとっては余計にデータサイズが膨らんでしまっていました。 PNG は使用する

                                                    Rust と Wasm で極限まで PNG ファイルを圧縮した話
                                                  • kyju.org - Piccolo - A Stackless Lua Interpreter

                                                    Piccolo - A Stackless Lua Interpreter 2024-05-01 History of piccolo A "Stackless" Interpreter Design Benefits of Stackless Cancellation Pre-emptive Concurrency Fuel, Pacing, and Custom Scheduling "Symmetric" Coroutines and coroutine.yieldto The "Big Lie" Rust Coroutines, Lua Coroutines, and Snarfing Zooming Out piccolo is an interpreter for the Lua language written in pure, mostly safe Rust with a

                                                    • Taming Floating-Point Sums | orlp.net

                                                      Suppose you have an array of floating-point numbers, and wish to sum them. You might naively think you can simply add them, e.g. in Rust: fn naive_sum(arr: &[f32]) -> f32 { let mut out = 0.0; for x in arr { out += *x; } out } This however can easily result in an arbitrarily large accumulated error. Let’s try it out: naive_sum(&vec![1.0; 1_000_000]) = 1000000.0 naive_sum(&vec![1.0; 10_000_000]) = 1

                                                      • FractalDB: LINEヤフーのオンプレミス・マルチテナンシー型データベースシステムの紹介

                                                        こんにちは、LINEヤフー株式会社でデータベース部門に所属している、今野です。現在は、先日LINEヤフー社内にて提供を開始したFractalDBの開発と運用を担当するチームに所属しています。 FractalDBは、LINEヤフーのオンプレミス環境に向け開発された、データベースプラットフォームです。この記事では、FractalDBの概要として、開発に至った背景や設計目標から、その特徴およびアーキテクチャの概要について紹介します。 また、LINEヤフーでは今夏のインターンシップを募集しています。FractalDBチームも募集してますので、ページの最後の紹介をぜひ確認してみてください。 FractalDBとは FractalDBは、LINEヤフーのオンプレミス環境に最適化されたデータベースプラットフォームとして開発されています。リレーショナルデータベースとNoSQLデータベースの利点を融合させた

                                                          FractalDB: LINEヤフーのオンプレミス・マルチテナンシー型データベースシステムの紹介
                                                        • TSKaigi 2024 Prettierの未来を考える スピーカーノート

                                                          TSKaigi 2024 で話した「Prettier の未来を考える」という発表のスピーカーノートです。スライドは こんにちは、今日は「Prettierの未来を考える」というタイトルでお話させていただきたいと思います。 鈴木 颯介と言います。ユビー株式会社でプロダクト開発エンジニアとして働きながら、筑波大学でパソコンの勉強をしています。オープンソースソフトウェアが好きで、今日お話するPrettierのメンテナーをしたり、トランスパイラのBabelのコミッターをしたりしています。最近はWebKitのJSエンジンにたくさんパッチを投げたりしています。 私が働いているユビーは、TSKaigiのGold Sponsorをさせてもらっています。ブースがあります。ユビーのグッズの他に、Prettierのステッカーも配布しておりますので、興味がある方はぜひお立ち寄りください。 まず、Prettierにつ

                                                            TSKaigi 2024 Prettierの未来を考える スピーカーノート
                                                          • Ruby知識ゼロから初参加したRubyKaigi 2024レポート - 共沸

                                                            TL;DR 楽しかった! 本編 おはようございます。手札事故(twitter:@hand_accident)と申します。 Ruby知識ゼロから初参加したRubyKaigi 2024レポート、略してルゼロ*1という感じでやっていきたいと思います。 < Day 0 自己紹介でもしとくか。生まれ育った愛媛県松山市*2に帰って非IT企業でパソコン係をやっている過程で、すべてが個人開発の労働環境で趣味全ブッパ技術選定をした結果HaskellとNimを書くようになりました。すこしSvelteもします。 Rubyは名前を聞いたことがあるしちょっとニッチなPythonライブラリ探そうとしたら時々検索にgemが引っかかってそちらにはあるのねえという感想を抱くなどしていましたが何の因果か触ってみるには至らず、沖縄に来て初めてコードを見たまであります。 愛媛県松山市で趣味の音楽ゲーム(DDR)に高じていたところ

                                                              Ruby知識ゼロから初参加したRubyKaigi 2024レポート - 共沸
                                                            • 最高のターミナル環境を手に入れろ!WezTermに入門してみた。 | DevelopersIO

                                                              Rust製のターミナルアプリ WezTermをご存知ですか? もしご存知なければ、最高の相棒を紹介させてください!! WezTerm - Wez's Terminal Emulator 基本的な性能 ターミナルアプリに求められる要素はとてもシンプルです。 1に安定! 2に軽量! 3,4がなくて 5に機能 です。 安定と軽量の2つが満足でないとターミナルアプリは 比較という俎上に上がること自体が難しいです。 さて、WezTermはというと、 あくまでも私の実感レベルですが、どちらも全く問題ないです。 ターミナルアプリでは日本語の入力系などで難ありなものも結構あったりしますが 今の所その辺でも特に問題を感じたことはないです。 非常に主観的な記述だけで申し訳ないですが、 この辺は色々書いたところで使ってみないことにはわからないと思いますので、 まずは使ってみてください。 また私はMacで利用して

                                                                最高のターミナル環境を手に入れろ!WezTermに入門してみた。 | DevelopersIO
                                                              • マークダウンエディタをハイブリッドにするために必要なこと

                                                                マークダウン、皆さん使っているでしょうか。使っていますよね、GitHub(GFM)やSlack(一部記法)、個人的なメモアプリ等など、マークダウンを使えるサービスは多いので、使ったことがある人は多いんじゃないかと思います。 そして弊社のDocBaseというサービスは、マークダウンを使って情報共有をするサービスです。これも皆さん使っていますね? この度は、そんなDocBaseのメモ編集画面で、ハイブリッドエディタなるものをリリースしました。これはDocBaseに存在したいくつもの不満、問題を解消してくれるもので、これが一体どういったもので、どうやって作られたのかを書いていきます。 ハイブリッドエディタとは?? 「ハイブリッド」何やらガソリンと電気を使って動きそうな印象を受ける言葉ですが、もちろんそういった意味はありません。 次の動画を見てください。 左側がマークダウン、右側がHTMLのプレビ

                                                                  マークダウンエディタをハイブリッドにするために必要なこと
                                                                • GitHub - verus-lang/verus: Verified Rust for low-level systems code

                                                                  Verus is a tool for verifying the correctness of code written in Rust. Developers write specifications of what their code should do, and Verus statically checks that the executable Rust code will always satisfy the specifications for all possible executions of the code. Rather than adding run-time checks, Verus instead relies on powerful solvers to prove the code is correct. Verus currently suppor

                                                                    GitHub - verus-lang/verus: Verified Rust for low-level systems code
                                                                  • GitHub、Dependabotの基本コンポーネントdependabot-coreをOSSとして利用可能に | gihyo.jp

                                                                    GitHub⁠⁠、Dependabotの基本コンポーネントdependabot-coreをOSSとして利用可能に GitHubは2024年5月13日、リポジトリ内の依存関係を監視しチェックするツールDependabotの基本コンポーネントdependabot-coreを、MITライセンスにもとづくオープンソースとして利用可能にしたことを発表した。 dependabot-core is now open source with an MIT license -The Github Blog 📣 Dependabot is now open source!https://t.co/RXpQG38AiD — GitHub (@github) May 14, 2024 Dependabotは、リポジトリ内の依存関係のアップデートの有無を検知して、自動でプルリクエストを発行したり、アラートの通知を

                                                                      GitHub、Dependabotの基本コンポーネントdependabot-coreをOSSとして利用可能に | gihyo.jp
                                                                    • Bevyを楽しく書くために、最低限必要なRustのTips 3選 - Qiita

                                                                      概要 Bevy Engineを初めて使う人にとって、Rust言語特有の壁があります。今回は特にハマりがちな点を3つ挙げてご紹介します。 前置き Bevy Engineは、ゲームエンジンと紹介されることが多いですが、個人的にはopenFrameworksなどと同様に、汎用的な開発フレームワークと捉えています。 Bevy Engineはとてもよく設計されていて、幅広い用途に活用できるのですが、良くも悪くも現状はRust言語専用に作られていて、Rust言語以外でも使えるようにしようとする動きはなくはないものの、現状ではRustで書かざるをえません。 Rustは、C++やJavaと比べても難易度は高く、Bevyは難易度を緩和する仕組みを設けてくれてはいますが、BevyとRustにはいくつかのハマりポイントがあります。 当記事では、特にRust言語特有の事情に焦点をあて、Bevyに初めて触れる際に、

                                                                        Bevyを楽しく書くために、最低限必要なRustのTips 3選 - Qiita
                                                                      • Exploring Seamless Rust Interop for Newer Languages, Part 1

                                                                        Exploring Seamless Rust Interop for Newer Languages, Part 1 Languages like C++, Typescript, Kotlin, and Swift had a brilliant approach: they were created to harness an existing ecosystem of libraries from another pre-existing language. But that's easier said than done! Especially for newer languages focusing on memory safety and speed. 0 Luckily, newer languages can tap into C's ecosystem by addin

                                                                        • The life and times of an Abstract Syntax Tree

                                                                          By Francesco Bertolaccini You’ve reached computer programming nirvana. Your journey has led you down many paths, including believing that God wrote the universe in LISP, but now the truth is clear in your mind: every problem can be solved by writing one more compiler. It’s true. Even our soon-to-be artificially intelligent overlords are nothing but compilers, just as the legends foretold. That sma

                                                                            The life and times of an Abstract Syntax Tree
                                                                          • Translation of the Rust's core and alloc crates | Formal Land

                                                                            We continue our work on formal verification of Rust programs with our tool coq-of-rust, to translate Rust code to the formal proof system Coq. One of the limitation we had was the handling of primitive constructs from the standard library of Rust, like Option::unwrap_or_default or all other primitive functions. For each of these functions, we had to make a Coq definition to represent its behavior.

                                                                              Translation of the Rust's core and alloc crates | Formal Land
                                                                            • Linux 6.10‐rc1リリース、RustやMilk-V MarsなどRISC-Vサポートが拡大 | gihyo.jp

                                                                              Linux Daily Topics Linux 6.10‐rc1リリース⁠⁠、RustやMilk-V MarsなどRISC-Vサポートが拡大 Linus Torvaldsは5月26日(米国時間⁠)⁠、次期Linuxカーネル「Linux 6.10」の最初のリリース候補版となる「Linux 6.10-rc1」を公開した。Linusは「通常サイズのカーネルリリースに見えるが、少し小さいかもしれない。(⁠Linux 6.10には)新しいファイルシステムはなく、xfsのオンライン修正により、bcachefsの修正はもはや最大のファイルシステム変更ではない」とコメントしている。 Linux 6.10-rc1 -Linus Torvalds Linux 6.10では多くのアップデートが予定されているが、その中でも注目されるのがRISC-Vに関連したサポートの拡張だ。5月22日付けで行われたマージでは、

                                                                                Linux 6.10‐rc1リリース、RustやMilk-V MarsなどRISC-Vサポートが拡大 | gihyo.jp
                                                                              • 待望のLazyCell/LazyLock安定化間近! - paild tech blog

                                                                                こんにちは、ペイルドの森です。ペイルドでは創業以来バックエンドの開発言語にRustを採用してきたため、Rustという言語そのものが持つ課題とその解消、クレートの流行り廃りなどの歴史を共に歩んできました。その中でも最も苦しんだものの一つに遅延初期化があります。 その遅延初期化のための機能が、2024年7月リリース予定のRust 1.80.0で安定化されるということで、本機能について、その歴史とともに見ていきます。 目次 遅延初期化とは何か、何のためにするのか パフォーマンス向上のため リソースの効率的な管理のため 循環依存の回避のため Rustと遅延初期化の歴史 lazy_static クレートの登場と、抱えていた課題 マクロ依存性 スレッドセーフでない初期化のリスク 型の制約 初期化のタイミング制御 once_cell クレートの登場によって何が解決されたのか? マクロを使わないシンプルな

                                                                                  待望のLazyCell/LazyLock安定化間近! - paild tech blog
                                                                                • 「Sudo for Windows」はRustで開発されている! 「バージョン 24H2」にも導入決定/メモリ安全が重視される分野で採用が広がるRust言語【やじうまの杜】

                                                                                    「Sudo for Windows」はRustで開発されている! 「バージョン 24H2」にも導入決定/メモリ安全が重視される分野で採用が広がるRust言語【やじうまの杜】