タグ Happy Hacκing Blog
人気順 10 users 50 users 100 users 500 users 1000 usersPreferred Networksに入社しました | κeenのHappy Hacκing Blog
κeenです。お久しぶりですね。表題のとおり入社報告です。 最近はあまり入社エントリとかみなくなって悲しいですね。私もあんまり書く気なかったんですが知り合いへの連絡に便利なので残しておきます。 9/1付で入社し、コンパイラチームに配属されました。初日はアセンブラの仕様書渡されました。他にも社内ドキュメント... 続きを読む
Rustのコードチェックを強力にする3つのツール | κeenのHappy Hacκing Blog
κeenです。 Rustaceanのみなさんは普段書いてるRustのコードを検証するのに cargo check や cargo test などのツールを使っているかと思いますが、それらを強力にするツールの miri 、 MIRAI 、 kani をそれぞれ紹介します。 Rustにはいくつかコードの正しさや行儀のよさを検査する方法がありますね。 cargo check や ca... 続きを読む
eBPFでDockerの--passwordで入力したパスワードを盗む | κeenのHappy Hacκing Blog
κeenです。以前の記事の続きで、 /proc を監視するのではなくeBPFで取得してみます。ついでにRustのコードをeBPFで動かせるライブラリのayaも使ってみます。 以前の記事では /proc 以下の監視をビジーループで回すという力技で新しく作られたプロセスを補足していました。これだとCPU使用率が上がって美しくありませんし... 続きを読む
io_uringで高速IO処理(!) | κeenのHappy Hacκing Blog
M.2のNVMe SSD x 4の上にbtrfsでRAID 5を組んだファイルシステム上で実験しており、Linuxカーネルは5.8.0でした。 公平性の調整 ネタバレになるですが、キャッシュの具合やファイルが残ってるかどうかで速度が結構変わるのでベンチマーク後にファイルは削除し、ベンチマークの間に sync() を挟むことでキャッシュの影響... 続きを読む
Rustプログラミングのための環境構築 | Emacs JP
Author: blackenedgold Published: 2020-12-04 Last Modified: 2021-02-03 GitHub Source: md 概要 EmacsでのRust言語をプログラミングする際の環境構築について示します。 このページは以下の記事をemacs-jpのために再編集し投稿したものです。 Rustの環境構築(Emacs) | κeenのHappy Hacκing Blog ツールのインストー... 続きを読む
プログラミング言語の未来はどうなるか | κeenのHappy Hacκing Blog
κeenです。最近JEITAのソフトウェアエンジニアリング技術ワークショップ2020に参加したんですが、そこで五十嵐先生、柴田さん、Matzとパネルティスカッションをしました。その議論が面白かったので個人的に話を広げようと思います。 年末年始休暇に書き始めたんですが体調を崩したりと色々あって執筆に時間がかかってし... 続きを読む
自作コンパイラをブラウザ上で動かす | κeenのHappy Hacκing Blog
このエントリは言語実装 Advent Calendar 2020の1日目の記事です。 次はsisshiki1969さんで「RustでつくるRuby、その後の進捗」です。 κeenです。 昔からちまちま作ってるSML処理系をブラウザ上で動かすことができたのでその進捗報告です。 ちまちま作ってるSML処理系とはこれのことです。 KeenS/webml: A Standard ML C... 続きを読む
Twitter上のプログラミング入門者観察記 | κeenのHappy Hacκing Blog
κeenです。 ここ半年くらいTwitter上でプログラミングに入門してる人、入門してエンジニアとして働きはじめたばかりの人を観察していました。 そろそろ潮時かなと思ったので観察結果を報告します。 観察結果をまとめようと思ったのは、どっかのタイミングで書こうと思っていたところに丁度いい記事が目に入ったからです... 続きを読む
最小限のELF | κeenのHappy Hacκing Blog
κeenです。 先日の記事で言及した最小限のELFが需要ありそうだったので解説してみます。 コンパイラを作るときの参考にしてみて下さい ELFはExecutable and Linkable Formatを表わし、Linuxなどで標準の実行可能ファイルのフォーマットとなっています。 なんらかの形でこのファイルを生成するのがコンパイラの最終目標と... 続きを読む
ウワサのVeronaを眺めてみる | κeenのHappy Hacκing Blog
κeenです。 先日、Microsoft Research (MSR)からVeronaという言語が公開されました。 マイクロソフト、Rustベースのセキュアなプログラミング言語を探求中 - ZDNet Japan マイクロソフト、「Rust」に基づくプログラミング言語プロジェクト「Project Verona」がGitHubに - ZDNet Japan これを見た人達の反応が様々で(婉... 続きを読む
手続き型脳で型推論を実装してみた | κeenのHappy Hacκing Blog
このエントリは型 Advent Calendar 2019 - Qiita 2日目に遡って投稿しているエントリです。 担当に遅刻した訳ではなくて空いてたので前から詰めて投稿しただけです。 κeenです。世の中に型推論アルゴリズムは色々知られていると思いますが、それを一切無視して型推論を実装してみたので報告します。 型推論の基本的理解 ... 続きを読む
安全なシステムプログラミング言語Rustへの招待 | κeenのHappy Hacκing Blog
IIJ Labでの発表用。主にシステムプログラミング言語経験者向けの内容 続きを読む
「実践Rust入門」を書いたよ | κeenのHappy Hacκing Blog
κeenです。実践Rust入門 言語仕様から開発手法まで(技術評論社)を書いた(3人で共著)のでどういう本なのか解説します。 5/8発売です。電子版もありますよ。Gihyo Digital PublishingだとPDFが手に入るので人気らしいです。 See Also 書籍『実践Rust入門』の詳細な目次です 目指したもの Rustの入門書といえば公式ドキュメ... 続きを読む
お薦めのコンパイラの本とか | κeenのHappy Hacκing Blog
κeenです。たまにお薦めコンパイラの本教えてなどのやりとりをTwitterで見かけるのでまとめておきます。 私の主観が入っているので他の方の意見も参考にして下さい。 普通の入門書三書 よく挙げられるのは通称「ドラゴンブック」、「タイガーブック」、「中田先生の最適化なんちゃらの本」です。 このうちのどれかを読む... 続きを読む
async/awaitと合成可能性 | κeenのHappy Hacκing Blog
κeenです。async/awaitって実装の都合と利便性の良い所取ってるよなーと常々思ってるのを言語化してインターネットに放流します。 何度か似たようなことを言ってるのですがスライドであることが多くてあまり情報量を詰め込めなかったのでブログにまとめます。 非同期処理と継続 非同期処理は時間のかかる処理を待ち合わ... 続きを読む
プログラミングを目的にしてもいいと思う | κeenのHappy Hacκing Blog
文系でプログラマーになったけど色々失敗して3年半で会社を辞めた話|denkigai|noteという記事を読みました。 この記事に書かれていることが私の身にも覚えがあります。特に私と同い年の方のようなので自分に重ねてしまうところもあります。 ですが多少似たところはあってもやっぱり他人なので全然違う体験もしていま... 続きを読む
Rustで強めに型をつけるPart 1: New Type Pattern | κeenのHappy Hacκing Blog
このエントリはRustその2 Advent Calendar 2018 6日目の記事を時空を遡って書いています。 κeenです。頭痛い。寝れない。寝れないので空いてる日の分を埋めに行きます。 「Rustで強めに型をつける」シリーズではある程度有名なテクニックを紹介しようかと思います。 みんな当たり前のように書くと知らない人はいつまで経... 続きを読む
JITあれこれ | κeenのHappy Hacκing Blog
κeenです。遅刻してしまいましたがこのエントリーは 言語実装 Advent Calendar 2018 1日目の記事です。 最近私の観測範囲内でJITが流行っているのですが一口にJITと言っても色々あるよなーと思ったので私がJITについて知っていることをグダクダ話ます。 このブログでも何度がJITや周辺技術について取り上げてますが話の... 続きを読む
自然言語のアウトプットを継続的に出すためには | κeenのHappy Hacκing Blog
κeenです。ミスってコーヒーと濃いめの緑茶を喫してしまって眠れないのて一筆執ります。 ふとソフトウェア界を見渡すにブログやドキュメントなどを継続的に書いてる人って意外と少ないのかなと思ったので自分なりに続く方法を書いてみます。 下記が統計コマンドと結果です。2018年はまだ3ヶ月弱残ってる上にアドベントカ... 続きを読む
isucon7予選のアプリをRustに移植したから解説するね | κeenのHappy Hacκing Blog
κeenです。こういう流れがあったので移植しました。 keenさんが「2028年、Rust でイケてる web application framework はこれだ!」みたいな記事を書くとと "余力" が生まれるかもしれません…!! — FUJI Goro (@gfx) 2018年8月28日 まずISUCONを知らない方に雑に説明しておくと、意図的に遅く作られたWebアプリケーショ... 続きを読む
エンジニアの働き方とかについてのエモい記事 | κeenのHappy Hacκing Blog
κeenです。 非エンジニアのマネージャがエンジニアチームと上手くやる方法 の記事に影響を受けてエンジニアとしての意見を書いてみようかなと。 非エンジニア向けのつもりです。 ここでいうエンジニアはソフトウェアエンジニアのことです。 Disclaimer ある程度客観的になるように気をつけてますがあくまで私個人の意見です。エンジニアを代表するようなものではありません。 κeenはまだエンジニア3年目... 続きを読む
WebAssemblyでGC | κeenのHappy Hacκing Blog
κeenです。この記事は WebAssembly Advent Calendar 2017 8日目の記事です。WebAssemblyでガーベジコレクションする話。 はじめてWebAssemblyを聞いたとき、「ブラウザでアセンブラが動くのか、よし、コンパイラを作ろう」と思ったかと思います。 私もそのうちの一人で去年頃 こんなコンパイラ を作り始めました。 しかしご覧のように進捗芳しくありません。 ... 続きを読む
雰囲気でシェルを使っている人のためのシェル入門 | κeenのHappy Hacκing Blog
κeenです。雰囲気でシェルを使ってる人が多いとのことだったので少しばかり込み入った知識を。 あと一応POSIX準拠かどうかも気にしながらやっていきます。 基礎知識編 シェルの種類 まず、POSIXにシェルが 定義されています 。 これに最低限の機能で準拠しているものをPOSIXシェルと呼ぶことにします。いわゆる /bin/sh です。具体的な実装はbsh、ash、dashあたりでしょうか。 最低... 続きを読む
Rustで高速な標準出力 | κeenのHappy Hacκing Blog
κeenです。Rustで何も考えずに標準出力に吐いてると遅いよねーって話です。 今回、標準出力に「yes」と1000万回出力するアプリケーションを書いてみたいと思います。 println! まあ、最初に思いつくのはこれでしょうか。 fn main() { for _ in 0..10_000_000 { println!("yes"); } } $ rustc -O yes.rs $ time .... 続きを読む
非同期とノンブロッキングとあと何か | κeenのHappy Hacκing Blog
κeenです。最近同期/非同期、ブロッキング/ノンブロッキング、直接形式/継続渡し形式あたりが混乱してきたので個人的に整理します。 あくまで私個人の理解を纏めただけなので誤謬などに注意して下さい。 非同期とノンブロッキングはよく混同されます。また、非同期処理の記述形式として直接形式や継続渡し形式などがあります。 私自身違う言葉だなとは思いつつも混同したり違いを忘れたりしています。 非同期もノンブロ... 続きを読む