タグ

Rustに関するryskosnのブックマーク (47)

  • 書き捨てるためのRust - Qiita

    はじめに Rustは「きちんとしたプログラムを書く時にはいいけど、書き捨てのプログラムを書くには向いていない」と言われることがあるようです。「一般論としては全くその通り」と思う一方で、自分自身を振り返ってみると、これまでPythonで書いていたような書き捨てに近いプログラムも全部Rustで書くようになっています。 なぜ書き捨てのプログラムもRustで書くのかを考えてみると 最初は書き捨てだと思っていても、手直ししながら使い続けることは意外と多い コンパイラが割と多くのエラーを捕捉してくれるのでデバッグの時間が短くて済む 記述量の多さはエディタの補完があってあまり気にならない といったあたりが理由になっています。 そうはいってもRustがいろいろと面倒な言語であることには違いないので、書き捨てるときは普段のRustプログラミングとは少し違った書き方をした方がより早く書けるのではないかと思いま

    書き捨てるためのRust - Qiita
    ryskosn
    ryskosn 2021/12/23
    興味深い
  • Party Parrotを自作したくてゲーミングGIF生成ツールをRustで作った - Lambdaカクテル

    様々な画像が明滅するので気を付けよう! ここに僕がいます これがこうなるツールを作成しました % git clone https://github.com/windymelt/superify.git % cd superify % cargo build --release % ./target/release/superify windymelt.png % open windymelt.png.animated.gif めでたいですね。 ゲーミングGIFを作りたい 自粛疲れなんて言葉がありますが僕も疲れています。せめて明るい話題が欲しいもの。そんな中僕はParty Parrotが好きで、何の説明も無しにゲーミングPCめいて発光するオウムを見るとなんか面白い気分になってしまいます。 僕も画像を虹色に光らせたい。仮にゲーミングGIFと呼ぶことにしましょう。Slack絵文字に設定すると爆

    Party Parrotを自作したくてゲーミングGIF生成ツールをRustで作った - Lambdaカクテル
    ryskosn
    ryskosn 2021/09/07
  • 趣味でプログラミングする人がRustを勉強する - Qiita

    個人的Rustまとめ Rustで勉強したことをアウトプットする場所です。Rustを書いてる人ってレベル高い人が多いので説明が難しいです。もちろんRust自体も難しいです。なので、自分に分かるような解説をここに書いていきます。 筆者のレベルはC言語でブラックジャックとかを作れる程度です。 レベルアップしました。今はFXのバックテストを高速に実行するプログラムを作ってます。出来たけどテスト結果の正しさを保証できなくてお蔵入りになりました。 順次追記していきます。 目次 情報源 具体的な順に 実践Rust入門 これを一通りなぞることでRustの全体像がつかめるはず。 The Rust Programming Language Rustの教科書的な感じ。ここを見ればRustの仕様がわかる。 Rust by Example日語版 サンプルコード集。こっちのほうがとっつきやすい。 このページではサン

    趣味でプログラミングする人がRustを勉強する - Qiita
    ryskosn
    ryskosn 2021/09/03
  • r/rust - An analogy that helped me understand the borrow checker

    In this analogy I have a model train and lots of friends. The model train represents the variable that my function owns, and my friends represent other functions. It came to me in the shower. Default: move By default in rust, everything is move. I simply give my train to my friend. Now it's his train. I don't have a train anymore :( Read-only borrow: Many functions can read-only borrow my data. No

  • Rustハンズオン@エウレカ社

    エウレカ社にてRustのハンズオンを実施しました。 コード全体は下記で確認できます。 https://github.com/yuk1ty/rust-basic-handson

    Rustハンズオン@エウレカ社
  • GitHub - TaKO8Ki/awesome-alternatives-in-rust: A curated list of replacements for existing software written in Rust

    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 - TaKO8Ki/awesome-alternatives-in-rust: A curated list of replacements for existing software written in Rust
  • GitHub - Dhghomon/rust-fsharp: Rust - F# - Rust reference

    Its intent is to be an informal manual for users of Rust and F# to read through to learn about the other language. Here's why I'm putting it together: Rust is my first language, and recently I've begun delving into languages in the Rust periphery, one of which is F# (since the Rust compiler was originally written in OCaml and it incorporates a good deal of its syntax). Almost every F# manual is wr

    GitHub - Dhghomon/rust-fsharp: Rust - F# - Rust reference
  • Rust の最初のステップ - Training

    利用が広がり人気が高まっている新しいプログラミング言語の習得に関心がありますか? ここから始めましょう。 Rust で高速で効果的なプログラムを構築するために必要な知識の基盤を築きましょう。 このラーニング パスの内容は次のとおりです。 Rust コードの最初の行を記述するために必要なツールをインストールする。 Rust の基的な概念を学ぶ。 エラーを処理する方法を学ぶ。 Rust でメモリを管理する。 ジェネリック型と特性を使用する。 パッケージとクレート用のモジュールを設定する。 自動テストを記述して実行する。 コマンドライン プログラムを作成する。

    ryskosn
    ryskosn 2021/04/19
  • 『基礎から学ぶ 組込みRust』を書きました - 低レイヤ強くなりたい組込み屋さんのブログ

    はじめに 2021年4月20日、『基礎から学ぶ 組込みRust』(C&R研究所) を出版します。Rust の文法から組込み Rust でファームウェアを作成するところまでを、片手で持てる (多分!まだ持ったことないけど!) 1 冊のにまとめた、喉から手が出るほど (私が) 求めていた書籍です。 先日、無事入稿を果たしたので、今の気持ちを徒然なるまま綴ったのが、このエントリです。 基礎から学ぶ 組込みRust 作者:中林 智之,井田 健太発売日: 2021/04/20メディア: 単行(ソフトカバー) 一番始めに言いたいこととしては、今現在、「組込み Rust がプロダクションレディか?」、と問われると、「ほとんどのプロジェクトに対してそうではない」というのが私個人の見解です。セーフティクリティカルな分野では、機能安全をはじめとする認証の問題があり、そんなにおいそれとプログラミング言語変更

    『基礎から学ぶ 組込みRust』を書きました - 低レイヤ強くなりたい組込み屋さんのブログ
    ryskosn
    ryskosn 2021/04/04
  • Linuxメモ : あると便利かもしれないRust製コマンドラインツール - もた日記

    インストール方法 bat ripgrep, ripgrep-all fd, fselect starship exa, lsd, nat nushell navi, tealdeer delta hyperfine xsv, csview py-spy bandwhich, gping, ht, dog hexyl, bingrep broot tokei genact, globe, glitchcat monolith shellharden fnm, volta pastel gitui, onefetch, git-interactive-rebase-tool skim watchexec dust, diskonaut, dua-cli, dutree zoxide ytop, bottom, zenith mcfly sd, desed topgrade pueue proc

    Linuxメモ : あると便利かもしれないRust製コマンドラインツール - もた日記
  • Rust を始めるための資料集 - Don't Repeat Yourself

    かとじゅんさんのお誘いで、私塾匠真堂にて登壇させていただき、Rust に関する話をさせていただきました。ありがとうございました。 今回のセッションを通じて Rust を始めたくなった方向けに、Rust をはじめるための資料をいくつかリストアップしてます。よかったらどうぞ。 プログラミング言語の学習方法について Rust についてまず概観を掴む 文法を学ぶ 何かアプリケーションを実装してみる ちょっと突っ込んだ話を知りたい コミュニティの力を借りる 仲間を見つける 更新履歴 プログラミング言語の学習方法について みなさんは新しいプログラミング言語を学ぶ際、どのように学びますか? 私は、軽く制御構文やデータ型の作り方などを学んだ後は、すぐにアプリケーションを作ってみて、詰まったらリファレンスを参照するといった学び方をしていることが多いです。 逆に、リファレンスをまず眺めて、文法をしっかり把握し

    Rust を始めるための資料集 - Don't Repeat Yourself
    ryskosn
    ryskosn 2021/01/24
  • A half-hour to learn Rust

    Contents Variable bindings The let keyword Type annotation Uninitialized variables Throwing values away Shadowing bindings Tuples Destructuring tuples Statements Functions Blocks Blocks are expressions Implicit return Everything is an expression Field access and method calling Modules, use syntax Types are namespaces too The libstd prelude Structs Struct update syntax Destructuring structs Pattern

    A half-hour to learn Rust
    ryskosn
    ryskosn 2021/01/03
  • Scalaのtrait、Rustのtrait、そしてScalaのimplicit - Don't Repeat Yourself

    Scala の trait と Rust の trait は微妙に使い方が異なる、とよく質問を受けます。たしかに、使い心地は微妙に異なるかもしれません。Scala はオブジェクト指向を中心に設計された言語ですが、Rust はそれを中心に設計されているとは言えません*1。こういった言語設計の差が、trait の使い心地の違いを生み出していると私は思っています。 両者の trait には、共通した特徴もあります。共通した処理をまとめあげるという意味では同じ目的をもっているといえますし、また、「犬は動物である」「は動物である」の共通性を示すことで、共通したものをひとまとめに処理しきることもまた可能です。 Scala には implicit という強力な機能が存在します。これは柔軟でスケーラブルなソフトウェアデザインを可能にする Scala の特徴のひとつです。非常にすばらしい機能です。この機能

    Scalaのtrait、Rustのtrait、そしてScalaのimplicit - Don't Repeat Yourself
  • プログラミング言語Rustのご紹介

    Zli x サイバーエージェント合同LT会にて発表した内容です。

    プログラミング言語Rustのご紹介
    ryskosn
    ryskosn 2020/08/23
  • Re:FizzBuzzから始めるRust生活 - Qiita

    新しいプログラミング言語に入門するためには、やはり手を動かすことが大事です。を読んで体系的に学ぶのももちろん重要ですが、それは言語の魅力を知ってからでも遅くはありません。 しかし「Hello World」レベルだと簡単すぎて言語の違いを味わえず、ネットワークプログラミングのような高度なプログラミングはフレームワークの力が大きすぎて言語とフレームワークの狭間で立ち往生することになります。 そこで登場するのが「FizzBuzz」です。「FizzBuzz」は単純なプログラムでありながら、プログラムの真髄である「順次」、「分岐」、「繰り返し」があり、数値計算も学べる興味深い題材です。 その「FizzBuzz」を利用して「Rust」という言語を学んでみようのが記事の趣旨です。「FizzBuzz」というシンプルなプログラムで「Rust」のような表現力が豊かな言語の機能をどこまで使い尽くせるのかは興

    Re:FizzBuzzから始めるRust生活 - Qiita
    ryskosn
    ryskosn 2020/06/15
  • Rustに影響を与えた言語たち - Qiita

    各カラムの意味は次のとおりです。言語の特徴は主にWikipediaを参考にしていますが、正確な分類は困難なため多少の独断と偏見が含まれていることをご了承ください。 登場年代 プログラミング言語が登場した年代です。前後3年の誤差は見逃してください FP(関数型プログラミング) 言語がFPを強くサポートしているかを示しています 程々にサポートしている場合は△を示しています OOP(オブジェクト指向プログラミング) 言語がOOPを強くサポートしているかを示しています 並行計算 アクターや CSP/π計算モデルの特徴を言語が強くサポートしているかを示しています 外部ライブラリを使えばできるよ!みたいなものは除外します 静的型付け 言語の最も主要な処理系が静的型付けをサポートしているかを示しています パラメータ多相 言語がパラメータ多相をサポートしているかを示しています ジェネリクス(Java)、テ

    Rustに影響を与えた言語たち - Qiita
    ryskosn
    ryskosn 2020/06/15
  • タスクランナーをmakeからcargo-makeへ移行

    [tasks.BUILD] description = "Build hoge" script = [''' #!/usr/bin/env bash echo "build ${@}..." '''] [tasks.TEST] description = "Test hoge" script = [''' #!/usr/bin/env python3 print("test ...") '''] dependencies = ["BUILD"] $ makers TEST -- --option-a --option-b [cargo-make] INFO - makers 0.20.0 [cargo-make] INFO - Using Build File: Makefile.toml [cargo-make] INFO - Task: TEST [cargo-make] INFO -

    タスクランナーをmakeからcargo-makeへ移行
  • Rustでメモ化を行うためのシンプルなライブラリを作った - 純粋関数型雑記帳

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

    Rustでメモ化を行うためのシンプルなライブラリを作った - 純粋関数型雑記帳
  • 「Rustで始めるネットワークプログラミング」を出版しました。 - 電気ひつじ牧場

    書籍をkindleとBOOTHで販売開始したので、内容の紹介と出版について書き連ねていきます。 内容紹介 出版したもの サンプル 対象読者について 各章について 1章「ようこそソケット通信の世界へ」 2章「通信を監視する」 3章「手づくりパケットでポートスキャン」 4章「ノンブロッキングなWEBサーバ」 5章「RFCから作るDHCPサーバ」 執筆あれこれ 執筆期間について 執筆ツールについて 表紙について 価格について プラットフォームについて 終わりに 内容紹介 出版したもの 「Rustで始めるネットワークプログラミング」をkindle(https://t.co/Mf98l0YgKS)とBOOTH(https://t.co/ilHIt1UEbi)で販売開始しました。 全101ページ/5章構成で、価格は¥500です。無料サンプル(https://t.co/NilMo1QAhL)もあります。

    「Rustで始めるネットワークプログラミング」を出版しました。 - 電気ひつじ牧場
    ryskosn
    ryskosn 2020/01/10
  • 二分木 - Rustではじめるデータ構造とアルゴリズム(第1回)

    Rustの特徴のひとつは、所有権(ownership)・移動(move)・借用(borrow)の概念です。これらがコンパイル時に厳格にチェックされることにより、古くから未定義挙動でプログラマを悩ませてきたダングリングポインタなどの問題がなくなり、メモリ安全性がもたらされます。 しかし一方で、自分で多少複雑なデータ構造を定義しようとする場合にはコンパイルを通すだけでもかなりの知識・力量が要求されます。 この(不定期)連載では、 Rustではじめるデータ構造とアルゴリズム と題し、プログラミングコンテストなどでよく見かける基礎的なデータ構造とアルゴリズムを、できるだけシンプルにRustで実装していきます。 &, &mut, Box, Rc, Cell, RefCell などの使い分けや、なぜそれを使う必要があるかの解説を、実例を通して行います。 第1回は、最もシンプルな木構造である 二分木 を

    二分木 - Rustではじめるデータ構造とアルゴリズム(第1回)