並び順

ブックマーク数

期間指定

  • から
  • まで

641 - 680 件 / 918件

新着順 人気順

rustの検索結果641 - 680 件 / 918件

  • ZEIT – Now CI: Build, Test… and Serve

    Posts written by community experts and our team. Learn what's new on our platform and the serverless web.

      ZEIT – Now CI: Build, Test… and Serve
    • Deno 1.9.0 がリリースされたので新機能や変更点の紹介

      Copyright (c) 2018-2021 the Deno authors. MIT License. 日本時間の今日(2021 年 4 月 14 日)に Deno の v1.9.0 がリリースされました。 詳細なリリース内容は上記のリリースノートにまとまっていますが、ざっと紹介していきたいと思います。 ネイティブ HTTP/2 Webサーバー serde_v8 による Rust 呼び出しの高速化 Blob URLのサポート LSP で import の補完ができるようになった --allow-env と --allow-run で許可対象を指定できるようになった インタラクティブなパーミッションプロンプト Deno.listenTls で ALPN をサポート ファイルシステムに関するいくつかのAPIの安定化 いくつかのAPIを Deprecated 化 (std 配下に移動) T

        Deno 1.9.0 がリリースされたので新機能や変更点の紹介
      • Concurrency in modern programming languages: Rust vs Go vs Java vs Node.js vs Deno vs .NET 6

        This is part of my "Concurrency in Modern Programming Languages" series Concurrency in modern programming languages: IntroductionConcurrency in modern programming languages: RustConcurrency in modern programming languages: GolangConcurrency in modern programming languages: JavaScript on NodeJSConcurrency in modern programming languages: TypeScript on DenoConcurrency in modern programming languages

          Concurrency in modern programming languages: Rust vs Go vs Java vs Node.js vs Deno vs .NET 6
        • Rustのasync/awaitをスムーズに使うためのテクニック - Qiita

          RustのFutureとasync/awaitは、「時間のかかる処理」をするときに、「処理が終わるまでOSスレッドをブロックする(同期Rust)」のではなく、「当該処理を中断して、そのOSスレッドを別のタスクの処理に使う(非同期Rust)」ことで、スレッド数よりも多くの処理を同時に行う仕組みです。 同期Rustと非同期Rustには以下のようなアナロジーが成立します。 同期Rust 非同期Rust

            Rustのasync/awaitをスムーズに使うためのテクニック - Qiita
          • Rust と WebAssembly で爆速な Markdown Editor を作ってみる

            TypeScript でフロントエンドな皆さん、今日も型パズルしていますか? 型が好きなら Rust ですよね。ということで、いまいち使い所が思いつかない WebAssembly と Rust でなにか面白いことできないかな、と爆速(JS比2倍)の Markdown Editor を作ってみました(面倒な人は直接 GitHub みてください) この記事は iCARE Advent Calendar 2020 の 8日目の記事になります。昨日は アオキタカユキ さんの 【adobe XD】線型、円型のグラデーションを引く方法 という記事でした Webアプリケーションを作る まず、利用する側の Web アプリケーションを作成します どんな構成でもいいんですが、タイミング的にもちょうど良い Vue3 + TypeScript で環境を作りました $ npm install -g @vue/cli

              Rust と WebAssembly で爆速な Markdown Editor を作ってみる
            • How Discord Stores Trillions of Messages

              In 2017, we wrote a blog post on how we store billions of messages. We shared our journey of how we started out using MongoDB but migrated our data to Cassandra because we were looking for a database that was scalable, fault-tolerant, and relatively low maintenance. We knew we’d be growing, and we did! We wanted a database that grew alongside us, but hopefully, its maintenance needs wouldn’t grow

                How Discord Stores Trillions of Messages
              • GolangとRustを使い分けるとしたらどのような観点で使い分けますか?

                回答 (2件中の1件目) Go は GC を使う言語ですので、そもそも利用用途は絞られます。例えばハードウェアのドライバを書くのにはあまり向いていません。以下ではそれ以外の点についてお話します。 プログラムを作る時、完成形に向かって一度もそれることなくコードを書ける人はほぼいません。小さい断片のコードを書き、仮で動かしてみて、それを繋げてプログラムにすると思います。そういった場合の手数がどちらの方が大きいかという点で見るのも良いと思います。 例えば実装途中のコードにパフォーマンス上の問題が見つかり、並行処理をさせたいと思った時に多くのプログラミング言語ですと構造自体を大きく変更しない...

                  GolangとRustを使い分けるとしたらどのような観点で使い分けますか?
                • Web フロントエンドエンジニアのための Rust 製 Web フロントフレームワーク Yew 入門

                  Rust と呼ばれる言語はわりかし新しめの言語であり、2016–2021 年の間 Stack Overflow Developer Survey で「もっとも愛されているプログラミング言語」で一位を獲得し続けている人気の高い言語であります。 Rust の得意とする分野は OS やコンパイラなどのいわゆる低レイヤーの領域ですが、Web サーバー、機械学習、コマンドラインアプリケーションなどさまざまな用途で利用されます。 Web フロントエンドの領域では高速化を目的として Rust から WebAssembly(以下、WASM)を生成して JavaScript から実行する用途がよく知られています。その他にも SWC と呼ばれる Rust ベースで作成されているビルドツールが高速に動作することで注目を集めています。(実際に jestの実行 に試してみたところ実行時間が 3 倍ほどになって驚いて

                    Web フロントエンドエンジニアのための Rust 製 Web フロントフレームワーク Yew 入門
                  • Best Rust Web Frameworks to Use in 2023

                    Best Rust Web Frameworks to Use in 2023 In the dynamic landscape of web development, Rust has emerged as a language of choice for building safe and performant applications. As Rust's popularity grows, so does the array of web frameworks designed to harness its strengths. This article compares some of the best Rust frameworks highlighting their respective advantages and drawbacks to help you make i

                      Best Rust Web Frameworks to Use in 2023
                    • なぜ「Rustは難しい言語」とされるのか――習得の難しさとその対策をWebエンジニアが考察

                      最終回となる今回は、Rustの開発生産性を支える言語機能および難しさにフォーカスを当てて簡潔に紹介します。 開発生産性とはいうものの、この言葉は定義付けをすること自体が難しいです。下記のRust公式が提供するツール群は開発生産性を間違いなく向上させますが、実際に使ってみた方が理解がはかどるのでここでは紹介にとどめます。 Rustコンパイラによるコンパイルエラーメッセージの丁寧さ Docs.rsのドキュメンテーション Cargoによるパッケージ管理(≒Rubyのbundler、JavaScriptのnpm) rust-analyzerによる強力な開発支援(≒インテリセンス) 言語標準のユニットテスト 端的にいえばモダン開発のプラクティスがRustのプロジェクトでもシームレスに利用でき、簡単に開発環境を整えることができます。 下記はプロジェクトファイル(Cargo.toml)の例です。外部ライ

                        なぜ「Rustは難しい言語」とされるのか――習得の難しさとその対策をWebエンジニアが考察
                      • Why Go Is Not Good :: Will Yager

                        Blog Why Go Is Not Good I like Go. I use it for a number of things (including this blog, at the time of writing). Go is useful. With that said, Go is not a good language. It's not bad; it's just not good. We have to be careful using languages that aren't good, because if we're not careful, we might end up stuck using them for the next 20 years. This is a list of my chief complaints about Go. Some

                        • Rustのasync/awaitとスケジューラの話 / rust-async-await

                          Effectで作る堅牢でスケーラブルなAPIゲートウェイ / Robust and Scalable API Gateway Built on Effect

                            Rustのasync/awaitとスケジューラの話 / rust-async-await
                          • Rust Memory Container Cheat-sheet - Qiita

                            Repos: https://github.com/usagi/rust-memory-container-cs 文字で読み書きするとやや大変です。しばらく間を開けてRustを触ったりするとスコシ混乱するかもしれません。と、いうわけでRustでメモリーコンテナー系に触れるモードになった時用に1枚絵のチートシートを整理しました。 文字を書けるQiitaにポストするのでちょっとだけチートシートの解説も乗せます。 おまけ解説 Threads; スレッド群 (rev.0 -> rev.1 でこのチートシート上で最初に現れる選択肢に切り替わりました ⇔ Ownership; 所有権) Rustではマルチスレッディング実行の安全性を向上するため、 適当に確保したメモリーをスレッド間でうっかり共有できない(少なくとも簡単にはうっかりできない程度に難しい)仕組みがあります。その仕組みの核心は標準ライブラリ

                              Rust Memory Container Cheat-sheet - Qiita
                            • 趣味でOSS活動をしていたらスポンサーがついた話

                              これまでの OSS 活動歴 仕事では TypeScript や Go を書いていますが、Rust が大好きすぎて書かずにはいられなくなり、余暇の時間で Rust で書かれた OSS にコントリビュートしています。今までのコントリビュートをいくつか挙げると rust-lang/rust-clippy rust-lang/rust rust-analyzer/rust-analyzer denoland/deno denoland/deno_lint などです。 これらのうち、最も頻繁に、そして継続的にコントリビュートしてきているのが denoland/deno_lint です。 denoland/deno_lint へのコントリビューション denoland/deno_lint は Deno に組み込まれている JavaScript / TypeScript リンターで、Rust で書かれて

                                趣味でOSS活動をしていたらスポンサーがついた話
                              • WebGPUとRustでネコチャンを点描した話

                                はじめに 昨年12月にこんなツイートを見かけました。 かわいいですね。幸いにして論文と実装が公開されていたので、自分でもやってみようと思って、その結果を書いたのが前回の記事です。 読んでいただければわかるとおり、前回の記事の中ではGPUを使わずにアルゴリズムやデータ構造を工夫して近似的に計算しています。結果の画像についてはそんなに悪くないと思っていますが、限界もありました。パーティクルの数も少ないし、一部の画像ではうまく行きませんでした。 やっぱり、もっとちゃんとネコチャンを点描してみたいですよね。 なので、今回の記事ではGPUを使ってアルゴリズムを再現し、よりヴィヴィッドなネコチャンの点描を作成しようと思います。GPUを使って計算するために、WebGPUのRust実装であるwgpuを使用します。ネコチャンの画像を点描にしたい人と、WebGPUに入門してcompute shaderで何か計

                                  WebGPUとRustでネコチャンを点描した話
                                • iOSでもAndroidでもない新たなOS「BlueOS」ってどんなOS?

                                  iOSでもAndroidでもない新たなOS「BlueOS」ってどんなOS?2023.11.07 16:00262,910 湯木進悟 新たなワールドへ? 世界のスマートフォンって、基本的にはiOSのiPhoneかAndroidスマホの二択ですが、そこに新しい波がやってきました。 BlueOSという新ワールドGizChinaは、中国のスマホメーカーのVivoが、独自に開催した2023 Vivo Developer Conferenceにおいて新たなBlueOSの発表を行なったと報じました。 これまでVivoは、AndroidをベースにカスタマイズしたOriginOSをスマホやタブレットに載せて発売してきました。ところが、BlueOSは、Rustというプログラミング言語をベースにした、Androidとは別物のOSです。 Vivoは、BlueOSを搭載する初のデバイスとしてスマートウォッチの「Vi

                                    iOSでもAndroidでもない新たなOS「BlueOS」ってどんなOS?
                                  • RustがC++に速度で勝った話 - Fixstars Tech Blog /proc/cpuinfo

                                    実行毎に数十msはブレるので、元のC++実装に対しての時間で比較して見ると、最適化オプションと配列境界チェックの除去が効いているように見えます。 そして先述の通り、RustとC++で実行順を入れ替えたり何度か実行しても、最終的に必ず(わずかに)Rustの方が時間短かったので、(2019/09/20:45追記)「計測誤差ではないの?」という問い合わせを内外から多数受けたので、(先述の通り経験的に計測誤差でないことは明らかではあるんですが経験者でない人向けの)分かりやすい証拠としてC++とRustそれぞれ単体を100回ずつ計測した結果を置いておきます。分布から分かる通り、検定などするまでもなく有意にRustの方が時間が短いことが分かります。また、C++側は元のナイーブな実装のままなので、高速化の余地(例えばrestrict)は十分にあります。ここでは「手軽にやった時に」を想定しており、その条件

                                      RustがC++に速度で勝った話 - Fixstars Tech Blog /proc/cpuinfo
                                    • Rewritten in Rust: Modern Alternatives of Command-Line Tools · Zaiste Programming

                                      Shell is the essential tool for every programmer. The more familiar you become with the available tools, the more efficient you can be with using your computer. Here's a list of command-line tools written in Rust that aim to provide modern, often much faster, alternatives to the existing shell commands. bat bat is a cat clone with syntax highlighting and Git integration that works on Windows, MacO

                                        Rewritten in Rust: Modern Alternatives of Command-Line Tools · Zaiste Programming
                                      • Rust のパフォーマンスに何が影響を与えているのか - Qiita

                                        動機 The Rust Performance Book という書きものを見つけました。いろいろなパフォーマンス改善テクニックが書かれているわけですが、実際に普段書いてる Rust コードの中で一体何がパフォーマンスに与える影響が大きいのか?という点が気になってベンチマークを取ってみました。 今回パフォーマンスを計測するプログラムはビットマップ画像(1600px x 1200px)をグレースケールに変換する処理です。I/O のパフォーマンスは無視します。&[u8]から RGB をそれぞれ 1byte ずつ(合計 3bytes)取ってきて、それをグレースケールの 1byte に変換してVec<u8>にする時間を計測します。イメージとしては下記のような関数です。 // source が カラーのビットマップ画像のデータ fn sample(source: &[u8]) -> Result<Ve

                                          Rust のパフォーマンスに何が影響を与えているのか - Qiita
                                        • 日本語が使える、Rust製の全文検索エンジン「Bayard」を試してみた!! - 虎の穴開発室ブログ

                                          こんにちは、虎の穴ラボの古賀です。 みなさま、全文検索エンジンを使っていますか? クラウドだと「Amazon Elasticsearch Service」や「Azure Cognitive Search」など、さまざまな選択肢があると思います。 今回は、虎の穴ラボの社内のWebツールに導入できそうな、簡易的な全文検索エンジンにどのようなものがあるか調べた際に見つけた、「Bayard」という全文検索エンジンを試してみました。 「Bayard」は、Rust製の高速かつ軽量で日本語の全文検索ができる検索エンジンです。導入手順が比較的簡単で、Webツールの検索機能の改善に使えそうです。 Bayardとは? Bayardは、Raft Consensus Algorithm と gRPC を実装する、 Rustで記述された全文検索およびインデックス作成のサーバーです。 Tantivy(Rust製 全文

                                            日本語が使える、Rust製の全文検索エンジン「Bayard」を試してみた!! - 虎の穴開発室ブログ
                                          • Announcing Alacritty, a GPU-accelerated terminal emulator

                                            Alacritty is a blazing fast, GPU accelerated terminal emulator. It’s written in Rust and uses OpenGL for rendering to be the fastest terminal emulator available. Alacritty is available on GitHub in source form. Alacritty running vim inside tmux Alacritty The rest of this post discusses what Alacritty is, why it was built, who it’s targeted at, and some architectural decisions that have enabled its

                                            • Rust なのか Go なのか | 民主主義に乾杯

                                              # Rust なのか Go なのか ひとりごと。色々、漁ってると、こんな雰囲気。 並列処理で もっと高速に書きたい → Go Go で大事なのは → goroutine ガシガシ書き込んで もっと高速に書きたい → Rust Rust で大事なのは → 所有権 # 1. 概観 Go と Rsut は全く用途が違うそうです。なので、 自分の用途に合わせて選ぶことになるかなと思いますが... Indeed! — Go (@golang) July 25, 2019 Go は文法がとてもシンプルです。 誰が書いても同じようなコードになるようなことを意識しているのかなと思われます。 それが元でよく Go を貶す記事が見受けられます。 Rust はコードが複雑になっても、ガシガシ書き込むような感じらしいです。その分だけ Go よりも高速に動作します。 Rustと競合? - Goへの誤解について (o

                                              • サーバサイドのJavaScriptランタイム「WinterJS」登場。Rustで書かれ、WebAssembyにコンパイル可能なService Workerサーバ

                                                サーバサイドのJavaScriptランタイム「WinterJS」登場。Rustで書かれ、WebAssembyにコンパイル可能なService Workerサーバ WebAssemblyランタイム「Wasmer」の開発元として知られているWasmer社は、新しいサーバサイドのJavaScriptランタイム「WinterJS」を発表しました。 Announcing WinterJS: a blazing-fast Javascript Service Workers server written in Rust powered by SpiderMonkey ❄️https://t.co/kX7jjJj6qv — Wasmer (@wasmerio) October 27, 2023 WinterJSはRustで書かれた高速なService Workerサーバであり、オープンソースとして公開さ

                                                  サーバサイドのJavaScriptランタイム「WinterJS」登場。Rustで書かれ、WebAssembyにコンパイル可能なService Workerサーバ
                                                • Revenge of the Types: 型の復讐 - Qiita

                                                  本稿は Python に型アノテーションを追加するという提案が行われたときに起こった Python コミュニティの議論の後、2014年8月24日 (日) に Armin Ronacher (@mitsuhiko) 氏によって書かれた記事の翻訳です。 Revenge of the Types Revenge of the Types by Armin Ronacher : Python (REDDIT) Revenge of the Types | Hacker News Python 3.5 で導入を検討している型アノテーションについて興味がある方は以下を参考にしてください。 mypy で静的型付け Python プログラミング 私自身、型システムや他言語に明るくないため、一部未訳の部分があったり、勘違いや誤訳もあると思います。そういった誤りを見つけたら編集リクエストを送ってもらえると助か

                                                    Revenge of the Types: 型の復讐 - Qiita
                                                  • Rust・WebAssembly・WebGLで作る回路シミュレータ CADに書いたCPUの回路図がそのまま動く

                                                    Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。KOBA789氏は、シミュレータとCADの制作について発表しました。全2回。後半は、回路CADの制作方法について。前半はこちら。 自作CADに求めること KOBA789氏(以下、KOBA789):シミュレータができたので、次はCADを作っていきます。書いた回路図がそのまま動くCADがなかなかないので、私はCADに書いた回路図がそのまま動くことを一番求めていました。 大抵の場合、回路を書くCADとシミュレータが別々になっています。まじめな回路を組むのであればそのほうが楽なのですが、だいたいタイミングチャートのかたちで表示されるんですよね。 プローブをいろいろなところにくっつけて、そのプローブの値が時間経過でどうなったかというタイミングチャートがバーッと出るわけです。たく

                                                      Rust・WebAssembly・WebGLで作る回路シミュレータ CADに書いたCPUの回路図がそのまま動く
                                                    • Cargo: packages for Rust

                                                        Cargo: packages for Rust
                                                      • 直和型の代わりにユニオン型を持つ静的型付け関数型言語 Cotton

                                                        // 割る2をする関数の引数が偶数であることを型によって強制する例(実用性はない) data O // 数字の0を表すデータ型 data S(A) forall { A } // +1を表すデータ型 // 型エイリアス type Nat = O | S[Nat] // 非効率すぎる他倍長整数 type Even = O | S[Odd] type Odd = S[Even] // 偶数を引数にとって2で割った結果を言語組込みの整数として返す関数 div2 : Even -> I64 = // 網羅性チェックつきのパターンマッチ | O => 0 | S(S(n)) => 1 + n.div2 TL;DR ユニオン型は直和型の上位互換である(追記あり)。関数型言語を作るときは直和型の代わりにユニオン型を採用するのもあり。 はじめに Cottonというプログラミング言語を2021年の夏頃から作

                                                          直和型の代わりにユニオン型を持つ静的型付け関数型言語 Cotton
                                                        • GitHub - valeriansaliou/sonic: 🦔 Fast, lightweight & schema-less search backend. An alternative to Elasticsearch that runs on a few MBs of RAM.

                                                          Sonic is a fast, lightweight and schema-less search backend. It ingests search texts and identifier tuples that can then be queried against in a microsecond's time. Sonic can be used as a simple alternative to super-heavy and full-featured search backends such as Elasticsearch in some use-cases. It is capable of normalizing natural language search queries, auto-completing a search query and provid

                                                            GitHub - valeriansaliou/sonic: 🦔 Fast, lightweight & schema-less search backend. An alternative to Elasticsearch that runs on a few MBs of RAM.
                                                          • プログラミング言語「Rust」が「C」「C++」の後継になるこれだけの根拠

                                                            関連キーワード Amazon Web Services | Microsoft(マイクロソフト) | アプリケーション開発 | プログラミング クラウドベンダー大手のAmazon Web Services(以下、AWS)が、プログラミング言語「Rust」のスポンサーになった。Rustは2015年に初の安定版が公開されて以来、「C++」の有力な代替として台頭している。「高性能で安定したアプリケーションを開発できる」「プログラマーの生産性を高められる」と評判だ。Google、Microsoft、Mozilla、Yelp、Dropbox、Cloudflare、AWSといった企業がシステム開発言語としてRustを採用している。 併せて読みたいお薦め記事 新たなプログラミング言語習得の壁 プログラミング学習で誰もがきっとつまずく「2つの障害」とは? 「プログラミング学習」が楽にならない“納得の理由”

                                                              プログラミング言語「Rust」が「C」「C++」の後継になるこれだけの根拠
                                                            • Qiita:Teamのクローンを作ってみた話 · dongri

                                                              タイトルのクローンを作ったは嘘w。似たようなものを作ったが本当。 チームがちょっと大きくなったのと外国籍のエンジニアがQiita嫌いという理由でQiita:Teamやめて 他のツールをいろいろ試してみたがどれも長く続かず、文句言うばかりでした。 結果エンジニアがノウハウなどナレッジを残す場所がなくなったわけですね。 結局何がダメだったのか?文化の違い?デザインがダメ?私もわかりません。 ちょっと考えてみたんですが、Qiitaのデザインがだめ、機能がだめだったら俺らが作ればいいんじゃと 思って作ってみたのがteamでした。https://github.com/rusts/team 業務で使ってるGo言語で作ったらずっと早く簡単に作れたと思うが、社内でRust好きなエンジニアが結構多いなと感じ、 もしRustで作ったらみんなが興味持って機能追加したりメンテして俺達が本当に欲しかったものを作れる

                                                                Qiita:Teamのクローンを作ってみた話 · dongri
                                                              • 2023パズル をRustで解いてみる - すぎゃーんメモ

                                                                tkihiraさんの問題が面白そうだったので挑戦してみた。 2023年クイズ! 上の例のように、数字の合間に四則演算(+−×÷)や括弧を入れることで、2023 を作ってください。 - 数字の間に必ず演算子を 1 つ入れてください - ただし 9 と 8 の間には既に ÷ が入っています - 括弧は複数重ねて使用できます - 10×(-9 ÷ 8) のようなマイナス記号の使用は禁止です pic.twitter.com/K0w2miMXJA— Takuo Kihira (@tkihira) December 31, 2022 既に解説記事が出ているので解答はこちらをどうぞ。 nmi.jp 結局自分は自力では解けなくて 他の人の解法や上記の解説記事を読んでようやくできた、のだけど… 自分なりに理解して改めてRustで実装してみた。 RPN(逆ポーランド記法)の backtracking 探索の高

                                                                  2023パズル をRustで解いてみる - すぎゃーんメモ
                                                                • Bevy Engine

                                                                  A refreshingly simple data-driven game engine built in Rust Free and Open Source Forever! Get Started All engine and game logic uses Bevy ECS, a custom Entity Component System Fast: Massively Parallel and Cache-Friendly. The fastest ECS according to some benchmarks Simple: Components are Rust structs, Systems are Rust functions Capable: Queries, Global Resources, Local Resources, Change Detection,

                                                                    Bevy Engine
                                                                  • Rustの std::sync::RwLock はLinuxでwriter starvation問題を起こす (macOSなら平気)

                                                                    まとめ: std::sync::RwLock::{write(), try_read()} を併用した場合には「書き込みロックを最優先」という挙動は必ずしも期待できない (LinuxではNG) Pthread の規約が挙動に自由度をもたせており、Linuxにおけるデフォルト実装では writer starvation が発生する Rustにおいて writer starvation を回避しつつ readers-writer lock を使うには parking_lot::RwLock を使うと良い 目次 背景: Readers-writer lock とは? 背景: Rustにおける readers-writer lock 背景: RwLock::write() と RwLock::try_read() 再現コード 原因分析 修正: parking_lot::RwLock を使う おわり

                                                                      Rustの std::sync::RwLock はLinuxでwriter starvation問題を起こす (macOSなら平気)
                                                                    • Rustでメモ化を行うためのシンプルなライブラリを作った - 純粋関数型雑記帳

                                                                      TL;DR 一行追加するだけで関数をメモ化するマクロを作った。 成果物はこちら https://docs.rs/memoise/ 背景 同じ引数に対して同じ値を返す関数(いわゆる参照透明だったり数学的だったりな関数)では、 関数の計算結果を保存しておくことによって計算を高速化したりすることができます。 このようなテクニックを関数のメモ化(memoise, memoize, memoization)などと呼びます。 特に再帰的に定義される関数についてメモ化を行うことによって、 動的計画法の実装をシンプルで直感的なものにできたりします。 しかし、関数のメモ化はやりたいことが自明なのにもかかわらず、 毎回手で書いていると微妙に面倒だったり、うっかりメモ化忘れで計算量が爆発してしまったり、 ちょっと辛いところがありました。 特にRustを使っていると、グローバル変数を雑に使うことを許して貰えないの

                                                                        Rustでメモ化を行うためのシンプルなライブラリを作った - 純粋関数型雑記帳
                                                                      • What it was like working for GitLab

                                                                        I joined GitLab in October 2015, and left in December 2021 after working there for a little more than six years. While I previously wrote about leaving GitLab to work on Inko, I never discussed what it was like working for GitLab between 2015 and 2021. There are two reasons for this: I was suffering from burnout, and didn't have the energy to revisit the last six years of my life (at that time)I w

                                                                        • GitHub - sharkdp/bat: A cat(1) clone with wings.

                                                                          You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                            GitHub - sharkdp/bat: A cat(1) clone with wings.
                                                                          • Zigで簡単クロスコンパイル 2022 - k0kubun's blog

                                                                            僕は以下の3つのツールを複数プラットフォーム向けにクロスコンパイルしてバイナリ配布しており、以下のように全て異なる言語で開発している。 Go: sqldef Rust: xremap mruby: mitamae クロスコンパイルに苦労している話をするとZigを使ってみたらいいんじゃないかと言われることがあり、周りでもZigが何となく流行り始めた気がするので、これらのツールに実際自分で使ってみてどうだったかという事例を紹介したい。 Zigとは Zigはそもそもプログラミング言語なのだが、C/C++とのinteropがやりやすい言語なようで、おそらくそれに必要でLLVMベースのC/C++ツールチェインが同梱されていて、しかもそれをDrop-In Replacement for GCC/Clangとして売りにしている。 僕はZig言語そのものにはそれほど興味はないのだが、クロスコンパイラとして

                                                                              Zigで簡単クロスコンパイル 2022 - k0kubun's blog
                                                                            • Rustが、コードのスタイルガイド「Rust Style Guide」と自動整形ツールを導入する理由。コードをめぐる議論を省き、メンタルの負担を減らし、プログラマを参加しやすくする

                                                                              Rustが、コードのスタイルガイド「Rust Style Guide」と自動整形ツールを導入する理由。コードをめぐる議論を省き、メンタルの負担を減らし、プログラマを参加しやすくする Mozillaが中心となってオープンソースで開発されている言語「Rust」の最新バージョン「Rust 1.24」がリリースされました。 Rust言語は、C言語のように低レベルのシステム開発向けに作られた言語。不正なメモリ領域を指すポインターなどを許容しない安全なメモリ管理と、マルチスレッド実行においてデータ競合を排除した高い並列性を実現している点が特長です。Mozillaの新型高速ブラウザエンジン「Servo」の開発などに使われていることが知られています。 Rust 1.24では、コードのフォーマットツール「rustfmt」のプレビュー版が導入され、インクリメンタルコンパイルがデフォルトでオンになりました。 コ

                                                                                Rustが、コードのスタイルガイド「Rust Style Guide」と自動整形ツールを導入する理由。コードをめぐる議論を省き、メンタルの負担を減らし、プログラマを参加しやすくする
                                                                              • Rustエラーハンドリング・チートシート - Qiita

                                                                                Rustのエラーハンドリング関連の主要メソッドが一目でわかる、チートシートを作成しました。 Rustは型システムが複雑なので、やりたいことに適切なメソッドがあるかどうか、ドキュメントを探しまくることが多いです。エラーハンドリングもその類の1つであり、ドキュメント探索の手間を削減するために、チートシートを作成してみました。 ご活用ください。 1. チートシート 2. 関連リンク bool - doc.rust-lang.org Option - doc.rust-lang.org Result - doc.rust-lang.org

                                                                                  Rustエラーハンドリング・チートシート - Qiita
                                                                                • GitHub - google/autocxx: Tool for safe ergonomic Rust/C++ interop driven from existing C++ headers

                                                                                  You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                                    GitHub - google/autocxx: Tool for safe ergonomic Rust/C++ interop driven from existing C++ headers