タグ

2022年12月5日のブックマーク (13件)

  • Rust の Web フレームワーク Axum のミドルウェアと戯れる

    はじめに これは Rust Advent Calendar 2022 4 日目の記事です。API サーバーを作る時にリクエストごとに一意な ID を割り振りたいケースがあると思います。Rust の Web フレームワーク Axum でそういったリクエスト ID を実現する方法を調べました。またアクセスログを出力するのもギリギリ間に合ったのでその方法も調べました。 Axum でリクエスト ID を付与する&アクセスログを出力する ここからは Axum で各 HTTP リクエストにユニークな ID を付与する 各 HTTP リクエストの際にアクセスログを出力する ことを目標に進めていきます。 Axum とは GitHub リポジトリはこちら。Rust の非同期ランタイムで有名な tokio で作られていて、Tokio, Tower, Hyper を裏で使っています。example が充実してい

    Rust の Web フレームワーク Axum のミドルウェアと戯れる
    xef
    xef 2022/12/05
  • Rust製バイナリを探してみる

    はじめに 少し前にこのようなツイートを見かけました。「MicrosoftがいつのまにかWindowsの中にRust製のDLLをリリースしていた」という話です。 プロダクションでのRustの採用はまだそれほどメジャーでないこともあり、採用している側は積極的に情報公開して注目を集めようとする傾向があるように思いますが、このようにこっそり使っているケースは実は結構あるのかもしれません。 そこでこっそりRustが使われているものを調べる方法を考えてみました。 Rust製バイナリを調べる 先ほどのツイートではバイナリに埋め込まれたソースコードのパス・ファイル名からRust製であると判定していました。しかし一般的なバイナリではこれらの情報が残っているとは限りませんし、単純に静的な文字列として "rust" を含んでいるバイナリを誤判定してしまう可能性があります。そこでもう少し汎用的な方法を考えてみます

    Rust製バイナリを探してみる
    xef
    xef 2022/12/05
  • リモートマシンから手元に向かってコマンドを実行できるやつを作った - Write and Run

    KOBA789 です。寒い日が続きますね。こうもあまりに寒いとアイスをべたくなるものです。昨日の私はその衝動に抗えず、コンビニでソフトクリーム(チョコ味とのミックス)を買ってきてべました。余計に寒くなったのでもう二度とやりません。今はおでんがべたいです。よろしくお願いします。 リモートから手元に向かってコマンドを実行したい さて、寒いとアイスがべたくなるように、リモートマシンに SSH でログインしていると手元でコマンドを実行したくなるものです。せっかくリモート接続してるのにね。人って不思議です。 たとえば、SSH 先の Linux マシンで code って打ったら手元の MacBook Air で VS Code が起動してほしいわけです。VS Code の Integrated Terminal 内ならできますけど、そもそも VS Code のウィンドウが1枚も開いていないとき

    リモートマシンから手元に向かってコマンドを実行できるやつを作った - Write and Run
    xef
    xef 2022/12/05
  • Hacking Bluetooth to Brew Coffee from GitHub Actions: Part 1 - Bluetooth Investigation

    Hacking Bluetooth to Brew Coffee from GitHub Actions: Part 1 - Bluetooth Investigation permalink This is going to be a long journey in three parts that covers the odyssey of getting a new coffeemaker, learning BTLE and how it works, reverse-engineering the Bluetooth interface and Android applications for the coffeemaker, writing a Rust-based CLI interface, and finally, hooking it all up to a GitHu

  • Self-referential types for fun and profit

    Some Rust questions are asked over and over, and are therefore met with short and well-rehearsed answers. “Compile in release mode when measuring performance.” “Don’t try to learn Rust with linked lists.” “Use scoped threads.” “That requires specialization.” But there is one response that is delivered in an almost checkmate-like fashion: “You are trying to construct a self-referential type.” This

    Self-referential types for fun and profit
    xef
    xef 2022/12/05
  • High Performance Rust UI

    xef
    xef 2022/12/05
  • Rust でバイナリを配布する

    これは天久保 Advent Calendar 2022 二日目の記事です。明日は休日なのでやすみです。 記事は全部 GNU/Linux においての話で、ELF 実行可能形式のファイルのことを指してバイナリと呼びます。 Rust で書いたプログラムをビルドして配布したいことがあるでしょう。サーバーアプリケーションなどとなればコンテナイメージを配布するのがまっとうに思えますが、コマンドラインアプリケーションとなると実行の手軽さや起動オーバーヘッドへの配慮からやはりバイナリを配布する必要が出てくると思います。一方で Rust でビルドしたバイナリは[1]システムの glibc に動的リンクされており、可搬性が低い可能性があります。つまり、ビルドした環境より glibc のバージョンが低い環境でそのバイナリは動かない可能性があるということです。実例を見てみましょう。下のプログラム[2]は Deb

    Rust でバイナリを配布する
    xef
    xef 2022/12/05
  • SSHGuard

    SSHGuard protects hosts from brute-force attacks by: Monitoring system logs Detecting attacks Blocking attackers using a firewall Fast, simple, secure, and protects a wide range of services out of the box! Internet-connected hosts are subject to constant probing and attacks from malicious actors. Brute-force attacks represent a large threat to account compromise for hosts and their networks. Block

  • Creating a modifiable gzipped disk image

    xef
    xef 2022/12/05
  • 「化化」随感: 「種別性」を「明示化」したい話|Mitchara

    化化とは年来、気になっている言語変化があり、私はそれを勝手に「化化」と呼んでいる。下にその例を挙げてみよう。 (1)   少子化により教育産業は縮小化傾向にある。 (2)   旧式化した施設の延命化が課題となっている。 これを見て「どこがおかしいの?」と思ったあなたは、まさに今をときめく「化化」世代の一人だろう。よっ日の主役。解説すると、「縮小」や「延命」はそれ自体が変化を表す動名詞なので、同じく変化を表す動名詞を作る「-化」をつけると、意味がだぶってしまうのだ。「-化」が伝統的な意味で使われている「少子化」や「旧式化」と比べてみよう。 (3)   少子(子が少ない)+ -化(…になる)→ 少子化(子が少なくなる) (4)   縮小(小さくなる)+ -化(…になる)→ 縮小化(小さくなる) (4) のように、単独で変化を表す動名詞に、冗語的に字音接辞「-化」が加わる現象を、「化化」と呼ぶ

    「化化」随感: 「種別性」を「明示化」したい話|Mitchara
  • The Third Bit · I Want a Memory Diagram Generator

    Following up on last week’s grumble about what I want for writing code examples in books, I’d like to make another request. I’m a big fan of Guo et al’s online program visualizer, which animates memory diagrams like the one below as users single-step through code: I want a tool that will let me specify a program, its inputs, and a specific instant in its execution, and will then run the program to

  • パイプライン指向JSON処理プログラミング言語 jq - 檜山正幸のキマイラ飼育記 (はてなBlog)

    jq(https://stedolan.github.io/jq/)の紹介では、「JSON処理のワンライナー〈一行野郎〉としてめちゃくちゃ便利!」とアピールするのが定番です。もちろんそれは当で、「めちゃくちゃ便利!」です。が、実は jq は、ワンライナー記述にとどまらない、かなり格的なプログラミング言語です。 JSON処理のためのDSL〈Domain Specific Language | 領域特化言語〉なので、汎用言語ではありません。しかし、汎用言語が備えている言語機能の一部(関数定義、モジュールシステムなど)を jq も持っています。また jq は、独特で楽しいプログラミング・パラダイム -- “パイプライン指向”に基づいて設計されています。 この記事では、ワンライナーを超えた jq の使い方と、プログラミング言語としての jq の特徴を紹介します。長い記事になってしまったので、一

    パイプライン指向JSON処理プログラミング言語 jq - 檜山正幸のキマイラ飼育記 (はてなBlog)
    xef
    xef 2022/12/05
  • Apex | Apex

    The Apexlang suite helps you start, automate, and build all your software projects. The apex CLI gives you project templates, a task runner, and an IDL with extensible code generators to help you go from nothing to a full project in seconds.

    xef
    xef 2022/12/05