並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 74件

新着順 人気順

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

  • 読まないと後悔する技術書30選 - Qiita

    はじめに 現代の人に名著以外の本を読むような時間はない こんにちは、Watanabe Jin (@Sicut_study)です みなさんは何か新しい技術を学ぶときにどんなコンテンツを利用するでしょうか? 最近ではUdemyなどの動画講座を利用する人が多いと思いますが、本を読んで学ぶという人もまだまだ多いのではないかと思います 今回は私がこれまで5年間読んできた150冊以上の中から厳選した30冊の本を紹介します。広く多くの人に役立つものから、特定の技術の書籍までどれを読んでもあなたの大切な一冊になるのでぜひ読んでみてください 現代人には時間がない なぜ働いていると本が読めなくなるのかという本が話題になりました 現代人は本を読む時間がなくなっています。 仕事に追われてしまい、プライベートで本を読む暇などなくなっているのです。 しかし、エンジニアは「技術職」なのでプライベートの時間でも学習をして

      読まないと後悔する技術書30選 - Qiita
    • RESTful APIの設計、開発、ドキュメント管理を手助けする「RAML」とは

      APIの開発は複雑でコストがかかる可能性があり、頻繁に更新されることからドキュメントを整備するのも難しい。APIの設計、開発、ドキュメントの整備、管理にまつわる課題と効率さの問題に対処するアプローチが、RESTful API Modeling Language(RAML:RESTful APIモデリング言語)だ。 RAMLコードを使えば、開発者はAPIの動作を説明する仕様を策定してからそのAPIをデプロイするまでのAPIライフサイクルを管理することができる。 RAMLとは RAMLは、RESTful APIを記述することを目的とするオープンソースの記述言語だ。2013年、米国のIT自動化および統合ベンダーであるMuleSoftを中心とする数社の企業によって作成されたRAMLはAPIの開発に大きな役割を果たしてきた。2018年、MuleSoftはSalesforceによって買収され、RAML

        RESTful APIの設計、開発、ドキュメント管理を手助けする「RAML」とは
      • UUIDv7 in 26 languages

        UUIDv7 is a 128-bit unique identifier like it's older siblings, such as the widely used UUIDv4. But unlike v4, UUIDv7 is time-sortable with 1 ms precision. By combining the timestamp and the random parts, UUIDv7 becomes an excellent choice for record identifiers in databases, including distributed ones. Let's briefly explore the UUIDv7 structure and move on to the zero-dependency implementations i

          UUIDv7 in 26 languages
        • いかにして動的型付けのRubyに静的な型検査を持ち込むか? SteepとRBSが目指すもの - Findy Engineer Lab

          Rubyをはじめとする「動的型付け」のプログラミング言語は、ソースコード中に型に関する記述が陽に出てこないことが特徴で、プログラムの実行前に(静的に)型検査をすることはありません。しかし、このようなプログラミング言語においても、大規模な開発における品質の向上や開発体験の改善、実行の高速化のために、静的な解析を活用しようという試みは多くなされてきました。この記事では、動的型付けの言語のための型検査の歴史を簡単に振り返って、現在私が開発しているRuby向けの型検査器Steepとその基盤となっている型記述言語RBSについて説明し、今後の展望を議論します。 著者:松本宗太郎さん(@soutaro) Rubyコミッター。大学院でRubyプログラムの型検査の研究に取り組み、修了後はスタートアップでWebアプリケーションの開発に従事。2017年から型検査ツールSteepの開発を始め、2019年からはRu

            いかにして動的型付けのRubyに静的な型検査を持ち込むか? SteepとRBSが目指すもの - Findy Engineer Lab
          • MicroMac, a Macintosh for under £5

            A microcontroller Macintosh This all started from a conversation about the RP2040 MCU, and building a simple desktop/GUI for it. I’d made a comment along the lines of “or, just run some old OS”, and it got me thinking about the original Macintosh. The original Macintosh was released 40.5 years before this post, and is a pretty cool machine especially considering that the hardware is very simple. I

            • GitHub - letmutex/htmd: A turndown.js inspired HTML to Markdown converter for 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 - letmutex/htmd: A turndown.js inspired HTML to Markdown converter for Rust
              • これからのIVRyのエンジニア採用に思うこと|Issei Naruta

                IVRyでエンジニアをしている成田(@mirakui)です。2024年2月に入社してから4ヶ月ほど経ちました。その間IVRyでは、AI自動応答によるレストラン予約がリリースされたり、0AB-J(03などの市外局番)に対応したり、シリーズCの調達をしたり、経営チーム的なものが立ち上がったり、プロダクトも事業も組織もたった4ヶ月でめまぐるしく進化しています。これがスタートアップか〜〜と驚く毎日で、スピードに置いてかれないように日々やっております。 いま自分がやってること僕は前職では経営やマネジメントがメインでしたので、当面はチームや組織を持たずにIndividual Contributorとして働きたいな〜という思いがあり、IVRyはそれを快く受け入れてくれました。ICのエンジニアします、以外何も決めずに入社したんですが、一通り課題を見渡してみて、手つかずでレバレッジの効く課題が多いと感じた、

                  これからのIVRyのエンジニア採用に思うこと|Issei Naruta
                • ゼロからはじめるPython(118) WSLとAlpineで最小のPython実行環境を構築しよう

                  手元のWindowsにPythonの実行環境を用意したいけれども、余計なアプリやライブラリをインストールしたくないという場面は以外とある。そこで、WSLとAlpineを使って最小のPython実行環境を構築してみよう。 WSLにAlpineをインストールしてPythonのプログラムを実行したところ Windowsではいろいろな環境でPythonを動かせる Windows上でPythonを動かそうと思った場合、いろいろな選択肢が存在する。 まず、Python公式(https://www.python.org/)が用意しているインストーラーを使う方法がある。インストーラーをダウンロードして、インストーラーの指示に従うだけなので初心者に優しい方法だ。多くのPython指南書もこの方法が楽なので推している。 また、公式以外にも、Anacondaが提供しているパッケージ(こちら)を使う方法もある。こ

                    ゼロからはじめるPython(118) WSLとAlpineで最小のPython実行環境を構築しよう
                  • TypeScriptユーザーに贈るGleam入門

                    最近v1に到達したGleamという静的型付けな関数型言語があります。 GleamはErlangとJavaScriptをターゲットに実行できるため、今TypeScriptを使っている領域でも使うことができます。 この記事ではTypeScriptユーザー向けにGleamの文法を解説していきます。 記事を通してGleamの良さを感じていただければ幸いです。 Gleamの公式サイトでは以下の言語のユーザー向けのチートシートもあるため、この中に知っている言語があるのならそちらを読んでみるのがオススメです。 Elixir Elm Erlang PHP Python Rust また、個人的にGleamの情報をCosense(Scrapbox)にまとめているので、リファレンスがてら覗いてみてください。 organizationとして管理していきたいと考えているので、編集のリクエスト等も歓迎です。 編集した

                      TypeScriptユーザーに贈るGleam入門
                    • runnによるAPIシナリオテスト自動化を試してみた - estie inside blog

                      こんにちは! VPoEの青木啓剛です。 現在、QA領域のマネジメントを兼務しておりまして、半年ほど前に コンパウンドスタートアップにおける理想のQAについて考えた という記事を執筆したものです。このときに思い描いた理想のQAへ少しずつ近づくために色々なトライをしているのですが、そのひとつとしてAPIシナリオテストツール「runn」を試してみた中で感じた利点などについて紹介したいと思います。 runnとは? runn(ランエヌ)はオープンソースのシナリオテストツールです。YAMLのフォーマットで宣言的にテストシナリオを記述することができ、定型的なテストの実行に大変便利です。APIのシナリオテストを実行するのに便利な機能もいろいろと組み込まれており、そういった周辺機能も含めてコードでテストを定義することで再利用性の高いテスト整備が可能となります。 github.com 技術検証の背景 検証をは

                        runnによるAPIシナリオテスト自動化を試してみた - estie inside blog
                      • JavaScript記述なしでモダンUIを作成できる「htmx」、最新版「htmx 2.0」で何が変わったか

                        htmxチームは2024年6月17日(米国時間)、JavaScriptライブラリ「htmx」の最新版となる「htmx 2.0」を公開した。htmxは、JavaScriptコードを記述せずに、HTMLからモダンブラウザの機能に直接アクセスできるライブラリだ。 htmxはHTML内の属性を通じて、Ajax、CSS トランジション、WebSocket、Server Sent Events(SSE:サーバ送信イベント)へのアクセスを直接提供する。開発者がハイパーテキストのシンプルさとパワーを生かして、モダンなユーザーインタフェース(UI)を構築できるようにすることを目的としている。 htmxはサイズが小さく、依存関係がなく、拡張可能だ。htmx 1.xは「Internet Explorer(IE)11」と互換性があり、フロントエンドJavaScriptライブラリである「React」の3割強程度のサ

                          JavaScript記述なしでモダンUIを作成できる「htmx」、最新版「htmx 2.0」で何が変わったか
                        • Announcing Rust 1.79.0 | Rust Blog

                          The Rust team is happy to announce a new version of Rust, 1.79.0. Rust is a programming language empowering everyone to build reliable and efficient software. If you have a previous version of Rust installed via rustup, you can get 1.79.0 with: $ rustup update stable If you don't have it already, you can get rustup from the appropriate page on our website, and check out the detailed release notes

                            Announcing Rust 1.79.0 | Rust Blog
                          • Google Geminiでゲーム移植?ブラウザゲームの"Rust+WASM版"をAIに作らせる | Agar.io 2024 - Qiita

                            Google Geminiでゲーム移植?ブラウザゲームの"Rust+WASM版"をAIに作らせる | Agar.io 2024JavaScriptgameRustAIWebAssembly 皆さんは Google AI Studio を使っていますか? このサービスは、テキストや画像だけでなく、動画やコードなどの様々なデータを理解し、Gemini に質問したり指示したりできる強力なツールです。 ただ、注目すべきは かなり長いプログラムのコードを食わせてそれを解析できる ということです。 以下は slither.io というブラウザゲームのjsファイルを丸ごと食わせて解説してもらった例 コードを全部読まなくても、Gemini に解析してもらってどういう処理があるとか、サーバーとどんな通信を行っているのかを聞くとかなり精度良く回答が帰ってきます。 つまり、コードの中身をほとんど読まなくてもだい

                              Google Geminiでゲーム移植?ブラウザゲームの"Rust+WASM版"をAIに作らせる | Agar.io 2024 - Qiita
                            • Rustでリバーブを実装する

                              Parakeet株式会社でResearcherをしている金子(nadare)です。CPUで動く軽量AIボイスチェンジャーParavoにおいて、リバーブやイコライザといったエフェクターをかける機能をRustで実装しました。本記事ではRustで実装した理由や用いたライブラリについて説明します。 リバーブについて リバーブは音に残響音や反射音を加える空間的エフェクトで、通常の音をホールで演奏した音や狭い空間で鳴らした音のように加工します。リバーブの実装にはハードウェア・ソフトウェア等様々な手法がありますが、今回は畳み込み演算を用いたリバーブの実装を行いました。 畳み込み演算で実装するリバーブには、Room Impulse Response(RIR)という音の信号を用います。これは再現したい空間で拍手をしたときに得られるような音で、様々な環境で収録したRIRを集めたデータセットや、pyroomac

                                Rustでリバーブを実装する
                              • ゲーム開発エンジンGodot学習チュートリアル集、成果物、Tipsなど

                                成果物 今までGodotで作ったゲーム 01 サバイバースタイルゲーム(合計学習時間:20時間) ショートバージョン ロングバージョン 02 プラットフォーマー(合計学習時間:40時間) プレイヤー、敵、コイン、宝箱など複雑なプラッフォーマー 03 シューティング(合計学習時間:45時間) シンプルなシューティング 04 プラットフォーマー(合計学習時間:50時間) シンプルなプラッフォーマー 05 モバイルゲーム(合計学習時間:60時間) Google Playで課金機能も実装 エラーなくリリースするところまで可能 06 ドラッグゲーム(合計学習時間:65時間) Rigidbodyを中心としたゲーム 07 神経衰弱(合計学習時間:70時間) 神経衰弱ロジック実装 08 プラッフォーマー(合計学習時間:77時間) 09 倉庫番(合計学習時間:80時間) 10 シューティング(合計学習時間:

                                • エンジニアの成長に必要な、地味だけど大事なたった一つのこと【からあげ×ばんくし/聴くエンジニアtype Vol.54】 - エンジニアtype | 転職type

                                  エンジニアtypeが運営する音声コンテンツ『聴くエンジニアtype』の内容を書き起こし! さまざまな領域で活躍するエンジニアやCTO、テクノロジーに関わる人々へのインタビューを通じて、エンジニアとして成長していくための秘訣を探っていきます。 >音声で聴きたい方はこちら これまで3回にわたりお届けしてきたばんくしさんとからあげさんの対談も、今回が最終回。 今回のテーマはずばり「エンジニアが成長するためにすべきこと」。 長年のエンジニア人生において、からあげさんが成長につながったと感じていることを深掘りしてみた。 東京大学松尾研究室/株式会社松尾研究所 データサイエンティスト からあげさん(@karaage0703) 『人気ブロガーからあげ先生のとにかく楽しいAI自作教室』(‎日経BP)『Jetson Nano超入門』(‎ソーテック社)を執筆。『ラズパイマガジン』『日経Linux』など多数の商

                                    エンジニアの成長に必要な、地味だけど大事なたった一つのこと【からあげ×ばんくし/聴くエンジニアtype Vol.54】 - エンジニアtype | 転職type
                                  • IPC in Rust - a Ping Pong Comparison

                                    I wanted to explore different ways of communicating between different processes executing on the same machine, and doing so as fast as possible. We're focussing on high speed inter-process communication (IPC), but some of these approaches can be extended across a network. We'll do this exploration in Rust. A reminder that since these are independent processes, most approaches you'd take within-pro

                                    • Zed Decoded: Why not just embed Neovim? - Zed Blog

                                      Usually when I tell people that I've switched to Zed as my main editor, after something like 15 years of using Vim, the first question they ask is: don't you miss Vim? Then I tell them: Zed has a Vim mode. I don't think I would've or could've switched if it didn't. Then, surprisingly often, there are follow-up question that sound something like this: a Vim mode? Did you know that Neovim is embedda

                                        Zed Decoded: Why not just embed Neovim? - Zed Blog
                                      • 【海外記事紹介】なぜ私がZigではなく(いまだに)Rustを使っているのか

                                        6月15日、Pekka Enberg氏が「Why I am not yet ready to switch to Zig from Rust」と題した記事を公開した。この記事では、ZigからRustに移行しない理由について詳しく紹介されている。 以下に、その内容を簡潔にまとめて紹介する。 C言語への愛着とその問題点 Enberg氏は、C言語のプログラミングに対する愛着を述べつつ、C言語が安全でないことや低レベルな言語であることに言及している。多くのコードを手作業で書かなければならない点や、デバッグに多くの時間を費やす必要がある点が問題とされている。 Rustのメモリ安全性と複雑性 Rustが登場した際、Enberg氏はそのメモリ安全性に魅力を感じたが、ツールの変化やborrow checker(借用チェッカー)の理解に苦労し、一度は諦めた。しかし、2021年にRustをプロフェッショナルに

                                          【海外記事紹介】なぜ私がZigではなく(いまだに)Rustを使っているのか
                                        • The Inconceivable Types of Rust: How to Make Self-Borrows Safe

                                          One of the first things any Rust programmer learns is that you can’t pass an object and a reference to that object around at the same time. It’s impossible to do, even indirectly. This limitation has been the subject of countless questions on Stack Overflow and posts on Reddit and the Rust forums and anywhere else where Rust programmers might ask for help. It’s so well-known that most people treat

                                          • Why I am not yet ready to switch to Zig from Rust

                                            Jun 19, 2024 Why I am not yet ready to switch to Zig from Rust I am not going to lie: I love programming in C. I know it’s a little bit irrational, but programming in C just feels right. Perhaps that’s because I did spend a lot of time programming with C as I contributed to the Linux kernel. Those were good times because I had the opportunity to learn from some of the best C programmers in the wor

                                              Why I am not yet ready to switch to Zig from Rust
                                            • Selenium3をAWS lambda python3.8以上で動かす[AWS SAM] - Qiita

                                              AWS LambdaでSelenium webスクレイピングで便利なseleniumですが、サーバーレスと組み合わせると、APIやFTPが無くてもデータ連携させたりできるので、重宝しています。 ただLambdaでseleniumを動かすにはheadlessブラウザのchromiumと対応するchromedriverが必要で、バージョンによってはうまく(ほとんど)動かなかったりします。 とくにpython3.8以上ではLambdaのOSがAmazon Linux2で稼働するようになったため、seleniumがモジュール不足で動かなくなってしまい、従来のようにコード一式zipであげてといった方法が使えなくなりました。 私も業務で運用フローに組み込んでしまっているので、死活問題。python3.8だっていつまで使えるのか。(EOLを見よう) python3.8廃止は2024年10月14日、うん、

                                                Selenium3をAWS lambda python3.8以上で動かす[AWS SAM] - Qiita
                                              • 【OJT担当者必見!】苦手意識を無くそう!プログラミングを楽しく教えるためのコツ - Qiita

                                                【OJT担当者必見!】苦手意識を無くそう!プログラミングを楽しく教えるためのコツ 序章 まえがき 先日、電車に乗った際にふと広告が目にとまりました。 https://x.com/urban_89s/status/1763413640609480870 スタイルシートっぽく書かれた求人広告なわけですが、これを見てエンジニア歴20年の私は「にやり」としました。電車で急に「にやり」としたので、文系の妻が「なんかあったの?」と声をかけてきましたので、こんな会話をしました。(実際のやり取りにあわせて関西弁でお届けします。) 私:この広告見て。おしゃれやで。 妻:なんや、英語で書いてあるやん。あんた英語読めるんか。すごいな。私も英語勉強せなあかんな。 私:いやいや、プログラミング風に書いてて、なかなかおしゃれやな、と思ったわけよ。 妻:プログラミング!?はい、絶対無理。意味わからんしそんなん読めるわけ

                                                  【OJT担当者必見!】苦手意識を無くそう!プログラミングを楽しく教えるためのコツ - Qiita
                                                • Scalable server design in Rust with Tokio

                                                  Tokio, an asynchronous runtime for Rust, is probably the most widely used one while there are several runtime implementations. Many OSS in Rust, such as web framework applications (rocket, warp, actix, etc), are built on Tokio. With Tokio, it's easy to implement network server applications. However, typical code that you often find in guide books or such scales poorly on multiple CPUs. I'll explai

                                                    Scalable server design in Rust with Tokio
                                                  • Azure Container Apps 紹介 Azureコンテナサービスとの比較編 - JBS Tech Blog

                                                    Azure Container Apps 紹介 概要編 では、Azure Container Appsの概要についてご紹介いたしました。 今回は他のAzureコンテナサービスの特徴と、Azure Container Appsとの違いについてご紹介いたします。 Azureコンテナサービスとは Azureコンテナサービス比較 Azure App Service Azure Container Instances Azure Kubernetes Service Azure Functions Azure Container Apps 最後に Azureコンテナサービスとは コンテナは、アプリケーションとその設定やライブラリなどの依存関係をパッケージ化し、OSに依存することなく実行環境を構築できる技術です。プロセスを分離してデプロイできるため、可搬性、軽量性、柔軟性に優れています。 Micros

                                                      Azure Container Apps 紹介 Azureコンテナサービスとの比較編 - JBS Tech Blog
                                                    • OpenAPI Generatorで生成したRustのコードを本番利用するまで - Qiita

                                                      これは株式会社LabBase テックカレンダー Advent Calendar 2022 4日目の記事です。 株式会社LabBaseでエンジニアをしている高橋です。 昨日の記事は @yiwi さんによるRust学習の試行錯誤の記事でした。(こちら) 今回はOpenAPI Generatorで生成したコードRustのコードを、検証プロダクトの本場環境利用するまでに行ったことについて紹介します。 TL;DR rust-serverでサポートしてない機能に対して、自力で実装して乗り切った OSSを使う際は自己責任で OpenAPI GeneratorのRust言語サポートについて OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and

                                                        OpenAPI Generatorで生成したRustのコードを本番利用するまで - Qiita
                                                      • GraalVM を使って WebAssembly を実行してみる - Qiita

                                                        Zenn にも書籍として公開しています. 読みやすい方で読み進めていただけたらと思います. Zenn の方が最新版です. この記事の目的 GraalVM ずっと触ってみたかったんですが,WebAsssembly 周りの実装が増えてきていることで万を持して動かしてみることにしました! こちらの記事では,公式ドキュメントに従って GraalVM を動かしてみた結果と実装例,コメント等を残します. こちらの記事を参考にして GraalVM を活用した Java プロジェクト開発 & WebAssembly 埋め込みの基礎を学ぶことができます. Java が初めての方も含め,なるべく誰でも手を動かして動作を再現できるように記載しています. GraalVM の基本機能紹介から行うので,WebAssembly 連携だけ気になる方は WebAssembly (Wasm) 連携する まで読み飛ばしてくださ

                                                          GraalVM を使って WebAssembly を実行してみる - Qiita
                                                        • LLVMのstack move optimizationの効果をRustで確認する - Qiita

                                                          khei4さんの功績によって、LLVM17では部分的に不要なmemcpyを排除することができるようになりました。 具体的なケースではRustのcodegen testを追加するPRがわかりやすいです。 実際にこのコードの生成するLLVM IRをみてみましょう。 rustc 1.75.0(LLVM17)で実験 #![crate_type = "lib"] #[repr(C)] pub struct ThreeSlices<'a>(&'a [u32], &'a [u32], &'a [u32]); #[no_mangle] pub fn sum_slices(val: ThreeSlices) -> u32 { let val = val; sum(&val) } #[no_mangle] #[inline(never)] pub fn sum(val: &ThreeSlices) -> u3

                                                            LLVMのstack move optimizationの効果をRustで確認する - Qiita
                                                          • 【にじGTA】ハッピーで埋め尽くす葛葉くんら「エニグマ」視点に出てくる言葉の意味をまとめてみました【にじさんじスト鯖】 - 私の好きな場所

                                                            勝手に暴れるレオスさんとメロコさんのキャラがツボ。しえるです。 6月15日に始まった『にじさんじGTA』で、いろいろ予想だにしない展開続きな葛葉くん視点を楽しんでいます。 中にはVCR GTAやストグラなどの別鯖やGTAに触れてこなかった方や、途中から見始めた方もいると思うので、何の話かわかりにくい単語の意味についてまとめてみました。 この記事では葛葉くんの視点を中心に書いており、他のライバーさんから見れば他視点のネタバレにあたる内容となるので、ここで見知ったことを配信に書き込まないでくださいね。 他の鯖とは多少ルールが違うところもありますが、警察やギャング視点で出てくる言葉は、過去に書いた関連記事も役立つのではないかと思います。 【にじGTA】ハッピーで埋め尽くす葛葉くんら「エニグマ」視点に出てくる言葉の意味をまとめてみました【にじさんじスト鯖】 【にじGTA】ハッピーで埋め尽くす葛葉く

                                                              【にじGTA】ハッピーで埋め尽くす葛葉くんら「エニグマ」視点に出てくる言葉の意味をまとめてみました【にじさんじスト鯖】 - 私の好きな場所
                                                            • OpenCog Hyperon:人間レベルを超えるAGIのためのフレームワーク<前編> | 暗号通貨革命-シーズン2

                                                              FacebooktwitterHatenaPocketCopy AGIXをBitrueで購入する OpenCog Hyperon(オープンコグ ハイペロン)の概要 2008年にリリースされたOpenCogは、ソフトウェアとハードウェアを組み合わせて心の働きをシミュレートするオープンソースプロジェクトであり、AGI(汎用人工知能)の実現を目指しています。脳を直接リバースエンジニアリングするのではなく、コンピュータ科学に基づいた工学的なアプローチを採用している点が特徴です。その認知アプローチは、心の哲学、認知科学、コンピュータ科学、数学、言語学など、多岐にわたる学術分野の融合に基づいています。 OpenCogは、Atomspaceと呼ばれる高度な知識グラフ(KG)を中心に、ニューラルネットワーク、生成AI、確率的AI、プログラム学習AIなど、さまざまなAIモジュールを統合します。この統合により

                                                                OpenCog Hyperon:人間レベルを超えるAGIのためのフレームワーク<前編> | 暗号通貨革命-シーズン2
                                                              • かつて serde_valid なるものを開発していた - Qiita

                                                                かつて serde_valid なるものを開発してた 結局、 Rust を書かなくなったので止めちゃったけど、 OpenAPI の スキーマ から Rust の型を自動生成するツールを作った過程で、 serde_valid という crate も昔作ってた。 こんな感じ use serde_valid::Validate; #[derive(Validate)] struct TestStruct { #[validate(length(min_length = 4, max_length = 4))] val: String, } let s = TestStruct { val: String::from("test"), }; assert!(s.validate().is_ok()); 気づいた人がいるかもしれないが、 validator がOpenAPI の仕様に 上手くマッチし

                                                                  かつて serde_valid なるものを開発していた - Qiita
                                                                • 読まないと後悔する技術書30選 - Qiita

                                                                  はじめに 現代の人に名著以外の本を読むような時間はない こんにちは、Watanabe Jin (@Sicut_study)です みなさんは何か新しい技術を学ぶときにどんなコンテンツを利用するでしょうか? 最近ではUdemyなどの動画講座を利用する人が多いと思いますが、本を読んで学ぶという人もまだまだ多いのではないかと思います 今回は私がこれまで5年間読んできた150冊以上の中から厳選した30冊の本を紹介します。広く多くの人に役立つものから、特定の技術の書籍までどれを読んでもあなたの大切な一冊になるのでぜひ読んでみてください 現代人には時間がない なぜ働いていると本が読めなくなるのかという本が話題になりました 現代人は本を読む時間がなくなっています。 仕事に追われてしまい、プライベートで本を読む暇などなくなっているのです。 しかし、エンジニアは「技術職」なのでプライベートの時間でも学習をして

                                                                    読まないと後悔する技術書30選 - Qiita
                                                                  • データベースを作りたくてCMU Intro to Database Systemを見ている話|Yosuke Asai 🇨🇭

                                                                    ふと自分でデータベースを作ってみたいと思い作り方を調べていたところ、カーネギーメロン大学(CMU)のAndy Pavlo先生がやっているDatabase Systemsという授業に行き着いたので、見てみることにした なぜ作ってみたいと思ったかというと、DuckDBやNeon、TiDBなど新興のデータベースの素晴らしさを眼にする機会が増えて、KenさんたちとLondon Tech TalkでDesigning Database Intensive Applicationを読んだ身としても、そこになにかコミットできたらかっこいいなとふと思ったからである。いわゆる憧れというものだ。Shunpocoさんがオブジェクトストレージの開発に行き着いたというエピソードを聞いたことも個人的にはかなり刺激になっている。また、勤めている会社の仕事でもここを深めることが自分の強みになるかもしれないと感じたからであ

                                                                      データベースを作りたくてCMU Intro to Database Systemを見ている話|Yosuke Asai 🇨🇭
                                                                    • 【LLVM】専門学生が自作言語とコンパイラを作った話 - Qiita

                                                                      成果物・Githubリンク 注意 この記事で示すソースコードはクラス・メソッドなどが簡略化されている場合があります。 導入・背景 こんにちは。__あきっち @akicchi1234__です。 私がコンパイラを開発しようと思ったきっかけは単なる興味でした。 コンパイラを開発する前までは、コンパイラはいわゆる究極のブラックボックスで__"""魔術"""でした。 中身がどうなってるのか知りたいという気持ちを抑えきれず、初めは趣味の範囲でコンパイラ開発を始めましたが、難しくて何回も挫折しました。 そして、当時"やらざるを得ない環境"があれば開発できると考え、運よくSecHack365というイベントを知りました。 2019年度、SecHack365__に参加し、セキュアなコンパイラ開発をテーマに自作言語を開発を始めました。 __SecHack365という名前の通り365日間のイベントです。一年間を通

                                                                        【LLVM】専門学生が自作言語とコンパイラを作った話 - Qiita
                                                                      • Rust製JavaScriptエンジン『Boa JS』を試してみた

                                                                        主要なJavaScriptエンジンのTest262を毎日実行して結果を載せているtest262.fyiというサイトがあります。 (Test262とは最新のECMAScriptを実装できているかどうかのテストです。) このサイトの、2024/6/5現在の実装率ランキングはこちらです。 test262.fyiの画面キャプチャ(2024/6/5) V8(ChromeやNode.js、Deno等)、JavaScriptCore(SafariやBun等)、SpiderMonkey(Firefox等)という、大手エンジンとほぼ横並びで4位に食い込んでいるBoaとは何者でしょうか。 Boaは公式曰く『Rustで書かれた実験的なJavascriptのレキサー、パーサー、コンパイラー』です。これだけ揃えば、JavaScriptエンジンと言って差し支えないと思います。RustアプリケーションにJavaScri

                                                                          Rust製JavaScriptエンジン『Boa JS』を試してみた
                                                                        • 【Onyx】Crafting InterpretersのLox言語を実装してPlaygroundを作ってみた - Qiita

                                                                          TL; DR 全機能移植済みです!ぜひ遊んでみてください1。 はじめに 『Crafting Interpreters』は、「Lox」という言語の実装を通じ、手を動かしながら言語処理系の作り方を学べる本です(リンク先は邦訳版)。lexer, parser, evaluatorの説明にとどまらず、レキシカルスコープやクラスの設計等実践的な内容も盛り込まれているのが特徴です。 本書ではLox言語をJavaとCで実装していますが、今回私は Onyxへ移植して写経しました2。本記事では、Onyxに移植した際設計について考えたことやハマった点を振り返りたいと思います。 ソースコードはこちらです。 Why Onyx? オンライン上でLoxを実行できるPlayground(冒頭で紹介したページ)が作りたかったので、手軽にWebAssemblyへコンパイルできる言語を探していました。また、せっかくならオリジ

                                                                            【Onyx】Crafting InterpretersのLox言語を実装してPlaygroundを作ってみた - Qiita
                                                                          • Rustでutoipaを使ってOpenAPIドキュメントを公開する - Qiita

                                                                            これは株式会社LabBase テックカレンダー Advent Calendar 2022 8日目の記事です。昨日の記事はこちらです。 今回はutoipaを使って、Rustで実装したAPIを確認できるようにします。 TL;DR utoipaをcloneする。 examplesディレクトリにある好きな環境で、cargo run実行する。 http://localhost:8080/swagger-uiへアクセスする。 Swagger UIでAPIが確認できる。 はじめに Rustで作ったバックエンドのAPIドキュメントを作成するために、Rustだけでどうにかならないかなと検索したら、utoipaというライブラリで解決できそうだったので、組み込んでSwagger UIで確認してみました。 がんばればOpenAPI Generatorが生成したコードを使えるようです(参考記事) utoipaとは

                                                                              Rustでutoipaを使ってOpenAPIドキュメントを公開する - Qiita
                                                                            • [Rust] Chrome ExtensionでGoogle Driveからダウンロードしたzipを操作する [WASM] | DevelopersIO

                                                                              [Rust] Chrome ExtensionでGoogle Driveからダウンロードしたzipを操作する [WASM] Introduction 諸事情により「zip形式の複数画像(jpg)をまとめたファイル」を簡単に見るための Chrome Extensionを作成してます。 エクスプローラ風のダイアログでGoogle Drive上のzipファイルを指定すると そのファイルをダウンロードしてzipファイルからindex指定でファイルを順番に取得するような処理を実装してます。 JSZipとかつかってjsだけでzipを展開して 画像を表示してもよいのですが、せっかくなのでRustでつくったWASMを実行してみました。 Environment MacBook Pro (14-inch, M3, 2023) OS : MacOS 14.5 Rust : 1.79.0 wasm-pack 0.

                                                                                [Rust] Chrome ExtensionでGoogle Driveからダウンロードしたzipを操作する [WASM] | DevelopersIO
                                                                              • 描かれた物体周りの流れを計算するウェブアプリを作った忘備録:その1、流体計算編 - Qiita

                                                                                はじめに 格子ボルツマン法による 2 次元流体計算をブラウザにさせるウェブアプリを作った。ユーザーが自由に描いた物体を一様流中に置き、流れの様子を見守ることができる。流線は LIC 法によって可視化した。アプリの UI とお絵かきの部分は JavaScript、流体計算と可視化の部分は WebAssembly (Rust の wasm-bindgen) によって実装されている。この記事では、実装のために必要だった知見 (を得るために必要な情報) を忘備録としてまとめる。 今回は、アプリの全体構造について述べたあと、流体計算に関する部分と、その実装に用いた WebAssembly の利用方法についてメモする。可視化 (プロット) に関する部分はその2の記事にまとめたので、併せて読んで欲しい。アプリの UI の実装、お絵かきモードの実装についても、別の記事にしてまとめたい。 実装されたアプリは

                                                                                  描かれた物体周りの流れを計算するウェブアプリを作った忘備録:その1、流体計算編 - Qiita
                                                                                • runwasi関連の基礎知識 - Qiita

                                                                                  runwasiとは ContainerdでWasmを動かすための共通platformを提供する。WASIをターゲットにcompileされたプログラムであれば、WASIに準拠したランタイム(wasmtimeなど)で実行できる。Rustで記述されている。 runcの代わりに、WebAssemblyランタイムを可能にするshim(異なる環境での互換性を保つソフトウェア層)であるrunwasiをcontainerdで動かすことが出来る。 Container毎に1つのshim processが存在するnormal modeと、すべてのshimを実行する単一のprocessで実行されるshared modeがある。 Wasm containerはコンパイルされたWasmバイトコードのみなので、Linuxコンテナよりも非常に軽量で起動が速く可搬性も高い。 Component containerd-shi

                                                                                    runwasi関連の基礎知識 - Qiita