並び順

ブックマーク数

期間指定

  • から
  • まで

321 - 360 件 / 7575件

新着順 人気順

rustの検索結果321 - 360 件 / 7575件

  • 【競プロ】Python使いがRustを「完全に理解する」までのTips - Qiita

    2023年AtCoder言語アップデートにより、Rustの環境は大きく変化しました。そのため、本記事はフリーズさせ、後日、2023年版に対応した記事を新規作成したいと思います。 筆者は、競プロのアルゴはPythonを使いつつ、マラソンはRustを使っております。前者は発想を短時間にコードにすることを重視し、後者はコーディングに時間をかけてでも高速性を確保したいからです。 その際、Pythonでできたアレを、Rustでどう書くんだっけ、と悩むことが多く、悩んだ結果を自分メモを兼ねてTipsにすることにしました。競プロに出てくるパターンを多く収録していますが、競プロ目的以外でも参考になるかと思います。とりありず、ざっと記述してみましたが、そのうち増やしたり、章立てを変えたりするかも知れません。 なお、参照がーとかトレイトがーとか、Rustそのものの入門には言及していませんので、適宜、別の記事や

      【競プロ】Python使いがRustを「完全に理解する」までのTips - Qiita
    • 『基礎から学ぶ 組込みRust』を書きました - 低レイヤ強くなりたい組込み屋さんのブログ

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

        『基礎から学ぶ 組込みRust』を書きました - 低レイヤ強くなりたい組込み屋さんのブログ
      • 2023年読んで良かった技術書Top5

        こんにちは。uenikiです。2023年も残すところ後10時間となりました。 今回は2023年に読んで良かった技術書を紹介します。マネジメント系の本は抜きにして、ピュアに技術的な本を紹介します。これまであまり振り返りというものをせずに生きてきたのですが、たまには振り返りというものをしてみたいと思います。 2023年はたくさん言語化をしてきて、言語化することの気持ちよさにハマりつつあるので、アウトプットしてみようと思い立ちました。 Top5のご紹介 なっとく!関数型プログラミング まずは関数型プログラミングの入門書である本書を紹介します。人生を変えてくれる予感のある本に数年ぶりに出会った気がします。何よりも読んでいて楽しく、ワクワクします。 関数型プログラミングの原則から始まって、関数型独自の概念を一つ一つ丁寧に、なぜその概念が必要なのか?を解説してくれています。命令型の問題点を一つ一つ解決

          2023年読んで良かった技術書Top5
        • ボジョレー・ヌーヴォーみたいに毎年言われる「Rubyは死んだ」 まつもとゆきひろ氏が考える、プログラミング言語の未来

          技育祭は「技術者を育てる」ことを目的としたエンジニアを目指す学生のための日本最大のオンラインカンファレンスです。ここで登壇したのは、Ruby言語の開発者である、まつもとゆきひろ氏。エンジニアを目指す学生からの質問に答えました。全3回。2回目は、Rubyがメジャー言語になったターニングポイントと、Rubyの魅力について。前回はこちら。 Rubyがメジャー言語となったターニングポイント 楓博光(以下、楓):では次の質問です。「Rubyがここまでメジャーになれたターニングポイントや、理由はなんだと思われますか」。 まつもとゆきひろ氏(以下、まつもと):いくつかあったと思うんですけど。1つは、1995年当時、ネットニュースという媒体があって、そこに、自分が作ったソフトウェアを公開するスレっていうんですかね、今風に言うと。ニュースグループというのがあったんですけど。 1995年の12月、そこに「Ru

            ボジョレー・ヌーヴォーみたいに毎年言われる「Rubyは死んだ」 まつもとゆきひろ氏が考える、プログラミング言語の未来
          • ServerlessDays Tokyo 2023が最高すぎた! - Qiita

            はじめに 4年ぶりの開催となるServerlessDays Tokyoに参加してきました https://tokyo.serverlessdays.io/ 「もっとうまくやりたい、誰よりも上手にやりたい」 というメッセージとともに開催されたServerlessDays Tokyo 2023ですが、超豪華なスピーカー陣を国内外から集め、ここ数年のServerlessの成熟と未来をしっかりと味わえる濃いイベントです。 1日目がセッション、2日目がワークショップということで、熱力の高いうちに激熱なサービスを素早く学べる構成になっていて、とても充実した内容でした。 所感 4年前のServerless LambdaをはじめとするFaaSをいかに簡単にデプロイ、運用していくかというツール系の話と S3やSQS,SNSなどのFaaS以外のServerlessなサービスの組み合わせでLowOpsな仕組みを

              ServerlessDays Tokyo 2023が最高すぎた! - Qiita
            • Node.jsのバージョン管理にVoltaを推したい

              Volta とは Voltaとは、JavaScript ツールマネージャーです。 タイトルでは Node.js のバージョン管理としていますが、 npm・yarn のバージョン管理も行うことができます。 公式サイトでは、「The Hassle-Free JavaScript Tool Manager(手間のかからない JavaScript ツールマネージャー)」と紹介されています。 チームの Node.js のバージョン管理を Volta に統一したところ非常に DX が上がり、Volta の恩恵を感じています。 この記事では、開発者の Volta 人口を増やすべく Volta の紹介と使用方法について解説していきたいと思います。 なかなか詳しく解説している日本語のソースはないので、公式ドキュメントを読んで適宜和訳しています。 公式ドキュメントを読むのがめんどくさいという人に読んでいただい

                Node.jsのバージョン管理にVoltaを推したい
              • プログラマなんて飯を食べれればいい派にとって「高1の途中以降の数学は要らない」と思う|euroGOGO

                フォローよろです (この方がそうかわからないけど)Rust界隈の人の発言が結構、プログラミングスクール界隈の人と水と油みたいになっているきがして、気になる。 ===(追記)=== とおもって書いてたら数学は要らない派の人がちょっと不味いことをいってたので。。https://techgym.jp/colmn/mingra38/私はできれば高1の途中ぐらいまでの数学はいると思います。不要なのは、東大目指して大量に「二次関数」の問題を大量に取り組むみたいな数学のことを指し示します。学習指導要領に沿っていうと中2で数学を辞めるという感じだとそもそも、頭をつかってプログラミングに向いてなさそうです。 ===(追記)=== なんだかゴール設定が違うのが理由かもしれないが、一応両方の心が分かる人だと思うし、プログラミングスクール界隈の方に肩入れしているので、Rust界隈の人のエッジの効いた発言に対しては

                  プログラマなんて飯を食べれればいい派にとって「高1の途中以降の数学は要らない」と思う|euroGOGO
                • AWS、高速起動にこだわった軽量なJavaScriptランタイム「LLRT」(Low Latency Runtime)をオープンソースで公開。AWS Lambdaでの利用にフォーカス

                  AWS、高速起動にこだわった軽量なJavaScriptランタイム「LLRT」(Low Latency Runtime)をオープンソースで公開。AWS Lambdaでの利用にフォーカス Amazon Web Services(AWS)は、実験的な実装としてサーバレス環境のAWS Lambdaで使うことにフォーカスした軽量なJavaScriptランタイム「LLRT」(Low Latency Runtime)をオープンソースで公開しました。 LLRTはRustで開発され、JavaScriptエンジンにはQuickJSを採用しています。 LLRTの最大の特徴は、現在のJavaScriptランタイムにおいて性能向上のために搭載されているJITコンパイラをあえて搭載せず、よりシンプルで軽量なランタイムとして実装することで高速に起動することにこだわっている点です。 これにより(Node.jsやDenoや

                    AWS、高速起動にこだわった軽量なJavaScriptランタイム「LLRT」(Low Latency Runtime)をオープンソースで公開。AWS Lambdaでの利用にフォーカス
                  • Rustの開発環境を2秒で用意、ローカル環境は汚さず。オンライン開発環境のCodeSandboxがRust言語に対応

                    ここから「React」や「Vanilla」「Vue 3」などを選択すると、すぐにVisual Studio Code互換環境がWebブラウザ上に立ち上がります。 ここではReactを選択しました。エディタにはReactのテンプレートのコードが表示され、右側のプレビュー画面には結果が表示されています。エディタでコードを書き換えて保存すると、変更内容は瞬時にプレビューに反映されます。 このようにCodeSandboxはローカル環境に依存せず、しかも面倒なフレームワークや実行環境、ビルド環境などのインストールもすることなく、オンライン上ですぐにWebアプリケーション開発に取りかかれます。 また、Webブラウザから利用するだけでなく、Visual Studio Codeから利用するための拡張機能と、iOS用のアプリケーションも提供されています。GitHubとの連係も可能です。 CodeSandbo

                      Rustの開発環境を2秒で用意、ローカル環境は汚さず。オンライン開発環境のCodeSandboxがRust言語に対応
                    • N番目の素数を求める - すぎゃーんメモ

                      SNSなどで話題になっていたので調べてみたら勉強になったのでメモ。 環境 Pythonでの実装例 例1 例2 例3 エラトステネスの篩 Rustでの実装例 試し割り法 エラトステネスの篩 アトキンの篩 おまけ: GMP Benchmark 高速化のテクニック 上限個数を見積もる Wheel factorization オチ Repository References 環境 手元のMacBook Pro 13-inchの開発機で実験した。 2.8 GHz Intel Core i7 16 GB 2133 MHz LPDDR3 Pythonでの実装例 例1 最も単純に「2以上p未満のすべての数で割ってみて余りが0にならなかったら素数」とする、brute force 的なアプローチ。 import cProfile import io import pstats import sys def m

                        N番目の素数を求める - すぎゃーんメモ
                      • Rust開発時の便利ツールたち

                        前書き Rustを書くときに便利なツールをまとめた記事が無い気がしたので作成。(ちゃんと探してないので既にあるかも) 公式ツール cargo パッケージマネージャ 基本だけどとても便利なツール 一度はThe Cargo Bookを読んでおくことを推奨。 rustfmt フォーマッター cargo fmt でもフォーマットの修正が出来る。(こっちを使うことが多い) clippy lintツール こう書いたほうが良いよという提案もしてくれるので便利。 cargo clippy --fix を使うと自動で直してくれる。 rust-analyzer Language Server rls もあるが、(最近は?) rust-analyzer の方がメジャーな気がする。 追記 : RLSは非推奨になりました。RLS Deprecation 非公式ツール cargo-watch ソースコードの変更を検知

                          Rust開発時の便利ツールたち
                        • 他言語ユーザがRust言語をガチめに使っての雑感 - 分散KVSを書いてみて - - Qiita

                          どうも ryo_grid です。 昨年はRustを覚えたいと思い、題材としてRESTインタフェースを持った分散KVS(実質はいわゆる分散ハッシュテーブル)を書いたりしました。 FunnelKVS: Rust implementation of autonomous distributed key-value store which has REST interfaces この記事では、他言語を使ってきた私が、経験のないRustを用いてそこそこのコード規模・複雑さのシステムソフトウェアを書いてみた上で、Rustについて感じたことを、独断と偏見で述べます。 Rustってなんか流行りそうな雰囲気あるけど難しいとも聞くし、どうなんだろ?と考えている方や、Rustガチ勢の方々に、「初学者はこう感じるんだな」「ここらへんに苦労するんだな」というところを伝えることで、Rustのスムーズな普及に少しでも寄

                            他言語ユーザがRust言語をガチめに使っての雑感 - 分散KVSを書いてみて - - Qiita
                          • 『エルデンリング』が30%オフの6468円となる「Steam ウィンターセール」が開幕。『Stray』や『NEEDY GIRL OVERDOSE』が20%オフなど今年発売の注目作が多数登場

                            太平洋時間の12月22日(木)から2023年1月5日(木)にかけて、Steamでは大規模セール「Steam ウィンターセール」が開催中だ。 本セールでは多岐にわたるタイトルがセール対象となっている。まず目を引くのは「The Game Awards 2022」でみごとゲーム・オブ・ザ・イヤーに輝いたフロム・ソフトウェアの『エルデンリング』が、30%オフの6468円(税込、以下同様)で販売中。最近では「闘技場」を実装するアップデートが配信されたりと、まだまだ注目を集め続けている作品だ。 (画像はSteam『エルデンリング』販売ページより) そのほか2022年に発売された注目タイトルとしては、サイバーシティをネコになって旅する『Stray』が20%オフの2800円、『ソニックフロンティア』が30%オフの4612円、『コール オブ デューティ モダン・ウォーフェア2』が15%オフの8228円に。ま

                              『エルデンリング』が30%オフの6468円となる「Steam ウィンターセール」が開幕。『Stray』や『NEEDY GIRL OVERDOSE』が20%オフなど今年発売の注目作が多数登場
                            • 「自分の未来予測を信じてちょっと意地を張ってみる」 まつもとゆきひろ氏がRubyに型宣言を入れない理由

                              「自分の未来予測を信じてちょっと意地を張ってみる」 まつもとゆきひろ氏がRubyに型宣言を入れない理由 #17 動的型付け言語と大規模開発 テーマは「動的型付け言語と大規模開発」 まつもとゆきひろ氏:まつもとゆきひろです。Matzチャンネル17回目ということでお送りします。ちょっと前になりますが9月28日に私が技術顧問を始めたクラウドサーカスという会社さんがテックイベントを開催されて、その時のテーマが「動的型付け言語と大規模開発」というテーマでした。 その時に話したこととか、話そうとしたこと、話そうと思っていたんだけど時間の関係で話せなかったことなどを補足する意味も含めて今日はちょっと放送しようかと思います。というか、分量が多いので2回に分けて話そうかなと思っています。 このクラウドサーカスのイベントのテーマは別に私から指定したわけではなくて、先方が「こんなテーマで話したいんだ」とか「聞き

                                「自分の未来予測を信じてちょっと意地を張ってみる」 まつもとゆきひろ氏がRubyに型宣言を入れない理由
                              • Rust GUI の決定版! Tauri を使ってクロスプラットフォームなデスクトップアプリを作ろう

                                Tauri は Rust で書かれたクロスプラットフォーム GUI フレームワークです。 Tauri について説明しながら、 Tauri を使って簡単なアプリケーションを作ってみます

                                  Rust GUI の決定版! Tauri を使ってクロスプラットフォームなデスクトップアプリを作ろう
                                • Cloudflare、CDNエッジで使えるオブジェクトストレージ「R2」発表。Amazon S3互換、読み出しの帯域コストなし、イレブンナインの信頼性

                                  Cloudflare、CDNエッジで使えるオブジェクトストレージ「R2」発表。Amazon S3互換、読み出しの帯域コストなし、イレブンナインの信頼性 Cloudflareは、同社のCDNエッジで実行されるワーカープロセス「Cloudflare Workers」などから使えるAmazon S3互換のオブジェクトストレージ「Cloudflare R2 Storage」を発表しました。 Announcing Cloudflare R2 Storage: Rapid and Reliable Object Storage, minus the egress fees. https://t.co/U2dVhVSb2U #BirthdayWeek — Cloudflare (@Cloudflare) September 28, 2021 Cloudflare R2の特徴は、イレブンナインの信頼性を提

                                    Cloudflare、CDNエッジで使えるオブジェクトストレージ「R2」発表。Amazon S3互換、読み出しの帯域コストなし、イレブンナインの信頼性
                                  • トーバルズ氏が考える、LinuxにおけるRustの居場所とは

                                    Steven J. Vaughan-Nichols (Special to ZDNET.com) 翻訳校正: 村上雅章 野崎裕子 2021-03-31 07:30 Linuxはプログラミング言語Cの申し子のような存在だ。しかし時は流れ、状況は変わった。RustをLinuxのシステム記述言語として採用しようという動きが少しずつ支持を集めてきている。例を挙げると、Linuxカーネル開発者のための年次カンファレンス「Linux Plumbers Conference(LPC)2020」において、開発者らはLinuxのインラインコード部分でのRustの採用を真剣に議論していた。その議論は現在どうなっているのだろうか?筆者はLinuxの父と目されるLinus Torvalds氏と、Linuxの安定版カーネルのメンテナーであるGreg Kroah-Hartman氏から考えを聞いた。 これはRustに魅

                                      トーバルズ氏が考える、LinuxにおけるRustの居場所とは
                                    • GPT-4で新しいプログラミング言語「TenetLang」を生み出す、チャットAIは既にプログラミングの何たるかをかなり理解している模様

                                      OpenAIが作成したチャットAIの「GPT-4」を利用して、新しいプログラミング言語の「TenetLang」をコーダーのルークさんが作成しています。 GPT-4 Designed a Programming Language https://lukebechtel.com/blog/gpt4-generating-code GPT-4のような大規模言語モデル(LLM)は、世界中に存在するあらゆるプログラミング言語を何十億回も読み込んでいます。LLMはプログラミングも可能であることは知られていますが、ルークさんは「私の知る限り、GPT-4で独自のプログラミング言語を作成するといった事例はこれまでありません」と記しています。そこで、ルークさんはGPT-4を使って新しいプログラミング言語を創造することに決めた模様。 ルークさんは最初にGPT-4に対して「ソフトウェア開発における大まかな統一理論

                                        GPT-4で新しいプログラミング言語「TenetLang」を生み出す、チャットAIは既にプログラミングの何たるかをかなり理解している模様
                                      • WasmバイナリをWin/Mac/Linuxで実行可能なバイナリファイルへ変換可能に「Wasmer 3.0」正式リリース

                                        スタンドアロンのWebAssemblyランタイム「Wasmer」の最新版「Wasmer 3.0」が正式リリースされました。 Announcing Wasmer 3.0https://t.co/Nay8Po9FXk — Wasmer (@wasmerio) November 23, 2022 Wasmerはオープンソースで開発されているWebAssemblyランタイムです。 WebAssemblyの動向を調査しているThe State of WebAssembly 2022によると、WasmerはWebAssemblyランタイムとして事実上の参照実装であるWasmtimeに続いて2番目に人気のあるランタイムとなっています。 参考:WebAssemblyアプリ開発ではRustが一番人気、用途ではサーバレスが急上昇、ランタイムはWasmtime。The State of WebAssembly

                                          WasmバイナリをWin/Mac/Linuxで実行可能なバイナリファイルへ変換可能に「Wasmer 3.0」正式リリース
                                        • 新卒で入社した合同会社DMM.comを退職しました - y-ohgi's blog

                                          from: 合同会社DMM.com CTO室 to: フリーランス DMMどうだった 良かった。 なにしてたの 新卒で入社し、3年ぐらいクラウドをいい感じにするエンジニアしてました。 新規サービス立ち上げたり、リプレイスしたり、リファレンスアーキテクチャ作ったり、スクラムマスターしたり、とかとか。 あと80回ぐらい社内勉強会(勉強会・LT会・Podcast)主催したりもしました。 新卒入社 > プラットフォーム部 > CTO室 > SRE立ち上げ > CTO室 > 退職 詳しくは「転職先募集 - y-ohgi's blog」でいろいろ書きました。 なんで辞めたの 理由としては新しく入ってきた上司(x3人)と折り合いがつかなかったことと、折り合いがつかなかった結果やりたいこと(全社のクラウド活用をいい感じにすること)ができなくなったため辞めました。 特に何かが嫌になったとかではないです。 よ

                                            新卒で入社した合同会社DMM.comを退職しました - y-ohgi's blog
                                          • 月間1.6億秒の Lambda x Node.js 利用から得られた知見

                                            はじめにStockmark のプロダクトでは、各メディアから記事を収集するために AWS Lambda (実行環境はNode.js) を大量に利用しています。「大量」とは実際にはどの程度なのかを紹介すると、月間で 1.6億 秒ほど(1日で約60日分) 使用しています。もしかしたら「えっ、なんでそんなに使っているの?」と思われているかもしれません。 本記事ではその疑問に回答しつつ、実運用から得られた知見を一部共有していきます。段階的に理解いただけるように、技術選定理由から説明していきます。 なぜ Node.js なのか?なぜ AWS Lambdaなのか?Lambda x Node.js でスクレイピングする際の落とし穴ということで、早速1つ目からいってみましょう! なぜ Node.js なのか?ストックマークのプロダクトでは、Web記事などを中心としてスクレイピングして収集した情報をベースに

                                              月間1.6億秒の Lambda x Node.js 利用から得られた知見
                                            • JestでTypeScriptを高速化する | miyauci.me

                                              JestでTypeScriptを高速化するJestでテストの高速化させる方法を紹介します。トランスフォーマーとしてesbuildやswcを紹介し、TypeScriptで遅くなりがちなトランスパイルを高速化させることで、テストを自体を高速化します。 はじめにesbuild の登場により、フロントエンドの世界は、開発環境により速度を求めるようになりました。vite の隆盛はその最たるものといってもいいでしょう。 esbuild や swc は高速な Go や Rust によって書かれ、更に多くの場合、Typescript の型チェックを省略しています。 tsc の型チェックは、大抵 IDE やワークフローで行われているので、これらを削ぎ落とすことで、純粋なコンパイラとして JavaScript への変換に特化しているということですね。 さて、Typescript コードをテストする際、多くの場

                                                JestでTypeScriptを高速化する | miyauci.me
                                              • 京大マイコンクラブ (KMC) で開催した「Rust を知ろう」総まとめ - hsjoihs’s diary

                                                概要 京大マイコンクラブ(KMC)の新入生プロジェクト2022という枠組みで、「Rust を知ろう 2022」というのを開催した。先日それがついに完結したので、とりあえずスライドをまとめた。*1 www.kmc.gr.jp 第0回~第7回の8回構成で行った。毎週金曜日の 20:00 開催なのだが、必ず当日にスライドを作り始めるので、スライドが十分出来上がって開催できる自信が発生して初めて開催を告知するという体たらくだった。 注:Rust Playground へのリンクは一部誤っている可能性があります。なんか複数のタブでたくさんリンクを生成したときに上手く行かないことがあるっぽい? 構成の上で意識したこと 「Rust は難しい言語である」という思いを抱かせない そのために、所有権の話とかはギリギリまで先延ばしにし、それまでは全力でごまかす 「Rust は便利な言語である」ということを伝える

                                                  京大マイコンクラブ (KMC) で開催した「Rust を知ろう」総まとめ - hsjoihs’s diary
                                                • TypeScriptでどこまで「関数型プログラミング」するか ─ 「手続き Haskell」から考察する - 一休.com Developers Blog

                                                  この記事は 一休.comのカレンダー | Advent Calendar 2023 - Qiita 10日目の記事です。 昨今は Web アプリケーション開発の世界でも、関数型プログラミングのエッセンスを取り入れるような機会が増えてきました。 とはいえ、一つのアプリケーションを 1 から 10 までがっちり関数型プログラミングで構成するというわけではなく、そのように書くこともあればそうでない従来からの手続き的スタイルで書くところもあるというのが現状で、どこまで関数型プログラミング的な手法を取り入れるかその塩梅もまちまちだと思います。まだ今はその過渡期という印象も受けます。 本稿ではこの辺りを少々考察してみたいと思います。 先日、Qiita Conference 2023 Autumn で以下のテーマで発表を行いました。 この発表では「関数型プログラミング最強!」という話をしたわけではなく、

                                                    TypeScriptでどこまで「関数型プログラミング」するか ─ 「手続き Haskell」から考察する - 一休.com Developers Blog
                                                  • Pythonについて思うこと | 雑記帳

                                                    みなさん、Pythonは好きですか? この記事では、私がPythonという言語とそのエコシステムについて思うところを書いていきます。全体を通したストーリーみたいなのはなくて、トピックごとに書いています。 私のPython経験は3年弱です。Pythonについてまだまだ新米だという自覚はありますが、そこは有り余る才能でカバーしてこの記事を書いています。 静的型 Pythonには静的型がありません。型ヒントはありますが、インタープリターにとっては飾りにすぎません。 mypyとかの型チェッカーはありますが、「それさえあれば万事ハッピー」なものではなく、既存のコードを適宜書き換えないと型チェッカーでまともな結果を得るのは難しそうです。型検査を念頭に書かれていない(型ヒント付きの)コードをそのままmypyにかけても大量のエラー・警告が出てくるでしょう(ちなみに、型ヒントなしの関数はmypyのデフォルト

                                                    • ドメイン固有型(値オブジェクト含む)を再考する - かとじゅんの技術日誌

                                                      Value Objectが盛り上がっているらしい。 Value Objectについて整理しよう - Software Transactional Memo Value Objectの説明に異論がないものの、主題はValue Object Obsessionのほうですよね。 こちらも聞いてみた。 fukabori.fm よい機会なので、よくわかっているつもりの、値オブジェクトというかドメイン固有型について再考してみよう。 それは値か属性か それはエンティティの全メンバーやデータベースの全列のために「顧客郵便番号」「送付先郵便番号」「事業所郵便番号」「契約日」などのクラス(メンバではなくクラス!)を定義して、immutableな振る舞いを強制する事を以てValue Objectであると言い張り、ドメイン知識の断片をそれぞれのクラスに書き散らして「高凝集になった」「型システムが守ってくれる」と喜

                                                        ドメイン固有型(値オブジェクト含む)を再考する - かとじゅんの技術日誌
                                                      • RustでOSを書いた

                                                        はじめに RISC-V CPU を FPGA 上に実装して、マイクロカーネル OS を Rust で書いて動かしてみました。 CPU について RISC-VとChiselで学ぶ はじめてのCPU自作 に沿って RISC-V の CPU を作り、機能をエンハンスしました。 乗除算命令、RVC命令、ビット拡張命令の一部を追加 7段パイプライン化 DRAM コントローラ 4KB命令キャッシュ、8KBデータキャッシュ 2ビット分岐予測 周辺コントローラ実装(SDC、UART、タイマー、割込コントローラ) Arty A7-35T という FPGA ボード上で動作させています。 スーパーバイザーモードは実装していないので、仮想メモリは使えません。みんなで仲良くメモリを共有します。 CPU の実装はこちらに置いてあります。書籍のサポートリポジトリの fpga 実装版を fork して機能追加しています。

                                                          RustでOSを書いた
                                                        • Nature Remoやその関連サービスで使われている技術と今後の展望 - Nature Engineering Blog

                                                          Nature株式会社VPoEのid:Songmuです。当社でもエンジニアリングブログを始めることにしました。 NatureはIoTスマートリモコン製品のNature Remo1を主力製品としていますが、家庭の電力マネジメントのためのIoT製品スマートエネルギーハブNature Remo E2や、電気小売事業のNatureスマート電気3も提供しています。目指すところはクリーンエネルギー100%の世界の実現で、お客様に利便性と同時にエコであるという、気持ちの良いライフスタイルを提供したいと考えています。 先日、Nature Remoは累積販売台数30万台を越えました4が、エンジニアはハードウェアエンジニアが2名、ソフトウェアエンジニアが8名の体制です。ハードウェアも含め、技術領域が多岐にわたっているため、まだまだエンジニアを募集中です。 さて、今回は最初のエントリということで、Natureで使

                                                            Nature Remoやその関連サービスで使われている技術と今後の展望 - Nature Engineering Blog
                                                          • ヤフー株式会社を退職したのでついでに自分の半生を振り返ってみる|magurotuna

                                                            男もすなる退職エントリといふものを我もしてみむとしてするなり。 2020 年 10 月にヤフー株式会社を退職しました。退職に至るまでのあれこれと、今後のキャリアについて漠然と考えていることをまとめたいと思います。 学生時代 小・中・高は普通の公立に通い、1 年浪人して東大に入りました。 涼宮ハルヒの憂鬱からオタクになり、ニコニコ動画全盛期を経て引きこもり属性マシマシと化して、パソコンとゲームばかりしている中学・高校時代を過ごしました。 このオタク属性は大学に入って「声優おっかけ」に昇華し、声優イベントのためであれば日本国内はもちろんのこと、0 泊 2 日で台湾に弾丸で行くこともいとわないような生活を送っていました。 最終的に、大学の学園祭に声優さんを招いて自分でトークイベントを主催するというところまで行き着き、いろいろな意味で充実した学生生活を送ることができました。 電子情報工学科へ 勉強

                                                              ヤフー株式会社を退職したのでついでに自分の半生を振り返ってみる|magurotuna
                                                            • Rustハンズオン@エウレカ社

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

                                                                Rustハンズオン@エウレカ社
                                                              • GoとRust - 並行プログラミング編

                                                                はじめに こんにちはnasaちゃんです。 goroutine何も分からん!async/await何も分からん!となったのでそれぞれを比較しつつ理解を深めてみよう。という考えのもとGo, Rustの並行プログラミングの解説記事を書いてみました。 ところどころふわっとしているため、補足や指摘を貰えると大変助かります。 今回話すこと goroutineとは結局何なの Goの並行処理の仕組み goroutine(Go)とasync/await(Rust)の比較 Goのランタイム、Rustのランタイムの話 話さないこと 構文の違いについては特に触れない どちらが優れているとい言う話はしない ベースになっている思想については特に触れない TL;DR Goには標準のランタイムがあるよ、Rustではランタイムライブラリを使う必要があるよ Goはランタイムが中断再開を管理するよ、Rustではプログラマーが管

                                                                  GoとRust - 並行プログラミング編
                                                                • Rustの実用性が理解できる図を作成してみた 〜C/C++/Java/JS/Python/Go/TS/Elixirとの比較〜

                                                                  エディタ支援 言語の公式がエディタ支援(LSP等)を提供しているかを示しています。 自動テスト 言語の公式が自動テスト(ユニットテスト等)を備えているかを示しています。 リンタ 言語の公式がリンタを提供しているかを示しています。 ビルドシステム 言語の公式がビルドシステムを提供しているかを示しています。 パッケージマネージャ 言語の公式がパッケージマネージャを提供しているかを示しています。 フォーマッタ 言語の公式がフォーマッタを提供しているかを示しています。 手続き型 言語のプログラミングパラダイムが手続き型プログラミングを強くサポートしているかどうかを示しています。 オブジェクト指向 言語のプログラミングパラダイムがオブジェクト指向プログラミングを強くサポートしているかどうかを示しています。 関数型 言語のプログラミングパラダイムが関数型プログラミングを強くサポートしているかどうかを示

                                                                    Rustの実用性が理解できる図を作成してみた 〜C/C++/Java/JS/Python/Go/TS/Elixirとの比較〜
                                                                  • Writing NES Emulator in Rustをやった

                                                                    Writing NES Emulator in Rustというサイトがある。これはRustでファミコンエミュレータ(通称: NES)を実装する方法をステップバイステップで解説してくれる親切サイトだ。NES初心者でも比較的容易に取り組めるので自力でNESエミュレータの実装するのはちょっと...といった人に特におすすめ。自分は数年前にNESの実装にチャレンジしたが途中で挫折した経験もあったのだけど、このサイトで言われた通り少しずつ進めていくことでなんとか一通り実装をし終えることができた(まぁまだバグだらだけど...)。 今回はその中でも初心者が事前に知っておいたら良さそうと思った知識や概念なんかを雑に書いてみる。 ちなみに各構成要素の詳細な解説や仕様などについては日本語・英語問わず先人の遺産がネット上に大量に存在しているのでググってほしい。とりあえず自分が何回も参照したサイトだけ下記に列挙して

                                                                      Writing NES Emulator in Rustをやった
                                                                    • Rust製の高性能コマンド3選

                                                                      Rustで作られたコマンドラインツールに良いものが多いと聞いて、Rust製の便利なコマンドをまとめてみます。RustがC/C++を置き換える言語というのもありますが、GNUの伝統的なツールをブラッシュアップしたツールがRustでいろいろ出てきているのはとても興味深いです。 findコマンドを置き換える fd fdはGNUの伝統的な検索ツールfindの置き換えです。findよりも簡潔にファイルの検索が可能です。 GitHubのリポジトリはこちらで、インストールも各パッケージマネージャーから使えます。 # mac $ brew install fd # ubuntu $ sudo apt install fd-find # win $ choco install fd 使い方は、検索したりディレクトリでfd キーワードと書くだけです。ポイントはfindと違って特にオプションをしていしなくても良

                                                                        Rust製の高性能コマンド3選
                                                                      • 達人プログラマー(第2版) 読んだ - console.lealog();

                                                                        久しぶりに物理本を読んだけど、やっぱ物理はええな・・かさばるとこ以外。 せっかくなので読書感想文と、特に印象に残った部分を、章ごとに書いておく。 第1章: 達人の哲学 この本を読んでいくにあたって、そもそも達人とはなんぞやという話がメイン。 プログラマーというより、いわゆる社会人としてこうあれみたいなテーマで書かれてて、なんかみんな読んだらいいのではと思いました。 物事をうまく進捗させるために、 まず何を言いたくて その結果どうしたいのかまで考えて 相手の状況やタイミングを見計らって コミュニケーションを実行する・されると、あれこれスムーズにいきますよっていう。 このテクは中々に便利で、日常生活でもそれこそ夫婦間とかのコミュニケーションでも使える話かなーと思ってて。 ただ自分の場合はこれをやりすぎて、質問してるはずが誘導尋問みたいになっちゃうときがたまにある・・。 第2章: 達人のアプロー

                                                                          達人プログラマー(第2版) 読んだ - console.lealog();
                                                                        • オブジェクト指向プログラミングは終わった カプセル化が悪い(感想戦) - Qiita

                                                                          が(良くも悪くも)注目頂き、その観測で思ったことのメモです。1年後の自分用です! もっかい言いたいこと再考のポエムです。 概要 関数型には意図的に触れたくなかった 継承や再利用性への懐疑の共通認識 抽象化戦略開発戦略で補う話 タイトルは釣り 抽象化という言葉のふわっと感 カプセル化が問題 関数型言語には意図的に触れたくなかった ポリモーフィズムのくだりで、関数型のご指摘が多かったのですが、あえて直接は触れたくありませんでした。これは、オブジェクト指向 vs 関数型にしたくなかったからです。(結果、Rust/Goに被弾させました) なぜかと言えば、オブジェクト指向を(結果として)衰退させたのは、あくまでも 開発手法の変化 や設計論の精錬が主軸だと認識しています。 不確実性に適応する上で、継承やカプセル化による状態隠匿という戦略が、良い筋に動かず、オブジェクト指向なりに変化を遂げた結果だと考え

                                                                            オブジェクト指向プログラミングは終わった カプセル化が悪い(感想戦) - Qiita
                                                                          • 組込みエンジニアのためのRustのよくわからない記号まとめ - Qiita

                                                                            はじめに どうも、レガシー組込みエンジニアの@yagisawaです。 Rustを勉強しているとCでは見かけない言語仕様(主に記号の使い方)に出くわすことがあるので、チートシート的な感じでまとめてみました。 勉強が進み次第都度更新していく予定です。 「RustではXXX等に使います」と曖昧な表現をしていますが、私の勉強が足りていないだけで本記事で紹介しているもの以外の使い方も存在する可能性がある旨、予めご承知おきください。 Cについても私が知らない使い方が存在する可能性がある旨、予めご承知おきください。仕事柄C89の仕様を主に扱っています。また本記事の主眼はRustであるため、Cの情報の充実度については本質ではありません。

                                                                              組込みエンジニアのためのRustのよくわからない記号まとめ - Qiita
                                                                            • 新しいプログラミング言語が出てこない(新しく出てた言語を追記) - きしだのHatena

                                                                              2010年代前半にKotlinが2011年、TypeScriptが2012年、Swiftが2014年、Rustが2015年と、新しいプログラミング言語が立て続けに発表されていましたが、そこを最後にみんなが話題にするような言語は出てきていません。 なんでだろうと、思いつく要因をあげてみます。 ※ 追記2023/5/11 わざとなのか「みんなが話題にするような」を無視してツッコミ入れてる人いるのだけど、言い換えれば「新しい言語が出てもみんな話題にしない」という話です。 プラットフォーム用の言語が出そろった Kotlin、TypeScript、Swift、Rustが2010年代前半に出てきましたが、これはJVM(Android含む)、ブラウザ、Appleデバイス、ネイティブといった代表的プラットフォームでほどほどの言語が出そろったということではないかと思います。 結局のところプログラミング言語は

                                                                                新しいプログラミング言語が出てこない(新しく出てた言語を追記) - きしだのHatena
                                                                              • Rust言語を推進する「Rust Foundation」設立。AWS、Google、マイクロソフト、モジラ、ファーウェイらが設立メンバー

                                                                                Rust言語を推進する「Rust Foundation」設立。AWS、Google、マイクロソフト、モジラ、ファーウェイらが設立メンバー 設立メンバーはAWS、ファーウェイ、Google、マイクロソフト、Mozillaの5社(Rust Foundationの発表、AWSの発表、Googleの発表、Microsoftの発表、ファーウェイの発表、Mozillaの発表)。 Rust Foundationは昨年、設立に向けた動きをMozillaが発表していました。今回それが正式に実現されたことになります。 参考:「Rust Foundation」が年内にも設立。Rust言語のコアチームとMozillaが発表 Rust Foundationへ、Mozillaから商標や資産などを移管 Rust言語は、Mozillaが開発し、コミュニティベースで開発が進められてきた、C言語のように低レベルのシステム開発

                                                                                  Rust言語を推進する「Rust Foundation」設立。AWS、Google、マイクロソフト、モジラ、ファーウェイらが設立メンバー
                                                                                • Rustで書かれた、既存のソフトウェアの代替一覧を作った

                                                                                  Rustで既存のソフトウェアを再実装することは「Rewrite It In Rust」と言われたりしますが、 最近はfindの代替である fd やlsの代替である exa などといったUnixコマンドのRust実装がよく見られます。 このようなUnixコマンド以外にも、Goで書かれたコンテナランタイム runc のRust実装である youki や既存のNodeバージョンマネージャーである nvm よりも200倍速い[1]とされている fnm や Lemmy というRustで書かれた reddit の代替などがあります。 また、僕自身もRubyのバージョンマネージャーである rbenv のRust実装である frum を作ったりしています。 作ったもの 今回は、こういったRustで書かれた、既存のソフトウェアの代替の一覧を作ってみました。 RustでOSSを作る際にこういった一覧があると、

                                                                                    Rustで書かれた、既存のソフトウェアの代替一覧を作った