Rustに入門するためにSTM32でLチカしてみた
近年、C++の後継となる言語としてRustと呼ばれるプログラム言語が注目されている。 研究やアルバイトではC++を書いているので、今までRustを使う機会は全くなかった。 だけど、食わず嫌いはいけないなと思い、趣味でRustを書くための動機を考えてみた。
そして、組み込み開発をRustでやるのが良さそうという結論に至った。 実は、STM32をHALライブラリ無しで動かそうと、ARMアセンブリを読んだり、C++のTMPでLチカしてみたりと、裏でいろいろやっていたのだ。 どうせなら、この取り組みで使っているC++をRustに置き換えれば、Rustへの理解につながるのではないか?というワケ。
そこで、Rustを使った組み込み開発の先行研究をサーベイしてみた。 すると、いくつかの記事を見つけることができた。
- Introduction - The Embedded Rust Book
- 組込みRustドキュメントを和訳したお話 - simplegifts#tech
- 組込みRust考察①~効率良く安全な組込み開発をしたい~ - 低レイヤ強くなりたい組込み屋さんのブログ
- Rust: Xargoとarm-binutils無しでCortex-Mターゲットのファームウェアをビルドする - ryochack.blog
中でも、あるレジスタへの操作はその時点で適切か?をコンパイル時に検証する、ある種の有限状態マシンがこんなに簡潔に書けることを知って一目惚れしてしまった。 私の知ってる限りでは、C++で有限状態マシンを書くときには、全ての状態遷移をテーブル状に保持する型を用意する必要があり、ここまで簡潔に書くことができない。
また、japaric氏という方が、Rustを使った組み込み開発の先駆者であるということも知った。 Rustで組み込み開発をするときは、この方の情報に注目するのが良さそうだ。
Rustで組み込み開発をする十分な動機や近年の動向を知ることができたので、STM32の開発テンプレートを参考に、STM32F4DISCOVERYでLチカしてみた。
続きを読む博士課程2年分を振り返る
Jijで働く(近い内に記事を書く)
期間: 2018年12月頃-現在
場所: 本郷
Jijという、アニーリングマシン向けのソフトウェア開発と研究成果の社会実装をする会社で、インターン生として働き始めました。
数値計算、特にC++でのプログラミングは、研究室やロボット技術研究会での活動、趣味などで経験を積んできました。
この経験を活かすため、コアの開発と実装をしています。
また、研究分野(力学系)とは違う分野(量子計算、量子情報、数理最適化、...)に触れられるのも、ここで働き始めた理由です。
私は現在までに、Jijで
などをしています。
最初の大仕事は、OpenJijのコアエンジンをC++のテンプレートメタプログラミングで書き直す作業でした。*1
このインターンによって
などを得られていて、大変に有意義です。
Jijの立ち上げ初期に声をかけていただき本当にありがとうございます!
Reference
https://j-ij.com
https://github.com/OpenJij/OpenJij
海外に行った
みなさんは海外渡航の経験がありますか?
実は、したろうは博士課程に進学するまで一度も海外に行ったことはありませんでした。
1度目: 中国
期間: 2018年11月1-6日
場所: 厦门(Xiamen)、中国
人生で初めての海外渡航は、中国でした。
Dynamics Days Asia-Pacific 2018
という、力学系の国際会議で、ポスター発表するために行きました。
この国際会議は、アジア、ヨーロッパ、アメリカなど、様々な地域で行われています。
また、自身の研究(大自由度カオス)にとても関連がある会議なので、この会議の存在を知ったとき、ここで発表してみたいと思いました。
思い立ったが吉日、参加登録の締切を探してみることにしました。
すると、中国で開催されるDynamics Days Asia-Pacific 2018のページから、
「開催まで後2週間だけど、まだポスター発表の参加登録がまだやっている!」
という事実に気づきました。
勢いに任せ、人生初の海外渡航に向け、
- 国際線航空券の購入
- パスポート取得
- スーツケースのレンタル
など、様々な初めてを短期間でこなしました。
行きは指導教員と同行しましたが、指導教員は数日で日本に帰国したので、帰りは一人でした。
一人で滞在していた間、
- ホテルの従業員含めてみな英語が通じなかった(困った)
- タクシーの運転手に中国語でタバコを勧められた(断った)
- ホテルのトイレを詰まらせてしまい便器に手を突っ込んだ(解決せず)
- 空港まで歩いたらスラム街に迷い込んでしまった(死を覚悟した)
など、散々な目に会いましたが、なんとか帰ってこれて良かったです。
Reference
2度目: ドイツ(近い内に記事を書く)
期間: 2019年9月1-9日
場所: Rostock、ドイツ
人生で2度目の海外渡航は、ドイツでした。
Dynamics Days Europe 2019という、力学系の国際会議で、口頭発表するために行きました。
東京工業大学には、比企基金と呼ばれる、国際会議での発表に20万円の補助を出す、という制度があります。
年間支援者数は若干名と記載されていますが、応募したらなんと対象者に選ばれました。
ただ、
など、不安要素だらけで、フライトの日が近づくにつれて行きたくなさが高まりました。
結局、口頭発表自体は成功し、何人かの研究者と私の研究に関して有意義な議論を交わすことができました。
しかし、
- 機材トラブルによりトランジットが破綻する
- トランジットの破綻でロストバゲージする
- トランジット破綻とロストバゲージ対処のせいで野宿する
- ロストバゲージ対処のせい(?)でSIMが不通になる
- 乗車券を買ったつもりが無銭乗車だった
- 日本に巨大な台風(台風15号)が来たせいで日本行きの飛行機がバンコク行きに勝手に変更される
- 台風のせいで成田空港が孤立していた
- Twitterで知り合った人のおかげで奇跡的に生還できた
とマジで酷い目に会いました。
当時のツイートをtogetterにまとめたら、少しバズりました。
今でも、成田空港とドイツを見ると心拍数が上がってしまいます。
Reference
https://dyndays.uni-rostock.de/
https://togetter.com/li/1410192
3度目: アメリカ
期間: 2019年9月23-27日
場所: Newport、アメリカ
人生で3度目の海外渡航は、アメリカでした。 Qubits North America 2019という、D-Wave社が主催の量子アニーラーに関する国際会議で、ポスター発表をするために行きました。
前回はマジで酷い目に会いましたが、今回は
と、負ける気がしませんでした。
実際、無事にアメリカで発表でき、量子計算に関する知見や関係者との交流を得て、無事に帰国することができました。
ありがとう、アメリカ!ありがとう、Jijさん!
Reference
https://events.eventzilla.net/e/qubits-north-america-2019-2138748422
理科年表を買った(近い内に記事を書く)
時期: 2018&2019年11月
今日までに、2019年版、2020年版を購入しました。
近い内にこれらのレビューをします。
彼女が出来た
時期: 2018年5月
相手は理数系専攻院卒の社会人です。
彼女の方から私に声をかけてくれました。
何度かのデートを重ね、私の方から彼女に告白をしました。
博士課程に進学してから交際相手ができるとは、つゆにも思いませんでした。
彼女は、私と知り合う前にこのブログを読んでくれたそうです。
このブログが為人の判断材料の一つになるとは思いませんでした。
普段からアウトプットするのが大事ということが分かりました。
互いに自然科学が専門なので、物理学やプログラミングなどの話ができるのが嬉しいです。
彼女は社会人で、私は学生なので、彼女には金銭面で苦労をかけてしまっています。
それに関しては、本当に感謝と申し訳なさで頭が上がらないです。
正真正銘「一応東大」になった
時期: 2018年8月
Reference
shitaro-happy-physics.hatenablog.jp
論文が出版された
時期: 2018年11月
URL: https://aip.scitation.org/doi/10.1063/1.5066087 (arXiv: https://arxiv.org/abs/1810.01146)
査読付き国際ジャーナルに、私の論文が掲載されました。
Reference
shitaro-happy-physics.hatenablog.jp
YouTubeチャンネルを作った
時期: 2018年12月
URL:
趣味でやっている活動をVlogとして残そうと思い、チャンネルを作りました。
嬉しいことに、チャンネル登録者数が100人を超えたので、チャンネルに独自のURLをつけられるようになりました。
しかし、2019年の春頃から研究で精神状態が芳しくなくなり、結局のところ更新することができませんでした。
2020年は、積極的に動画投稿をしたいです。
Reference
shitaro-happy-physics.hatenablog.jp
webサイトを作っている(近い内に記事を書く)
時期: 2018年12月
URL: https://haphysics.com
現在、webサイトを作っています。
ソースコードはGitHubで公開しています。
このブログとwebサイトとの使い分けですが、現段階では
- このブログでは、細かい情報を高頻度で発信する
- Webサイトでは、まとまった情報を発信する
ことを考えています。
YouTubeへの動画投稿もブログへの記事投稿も上手く継続できていない要因の一つに、
アウトプットは(自分にとって)質の高い状態になって初めてするものである、という完璧主義的な思考があります。
この思考でアウトプットをしようとすると、大変に長い時間が必要となります。
その間にモチベーションが下がってしまったり、そもそもまとまった時間が取れなかったりで、結局アウトプットを断念してしまうケースが頻発しました。
一方で、Twitterを継続できるのは、アウトプットまでの障壁の低さにあると考えられます。
そこで、このブログへのアウトプットの障壁を低くし、ある程度知見が溜まったらwebサイトにまとめるようにしようと考えています。
というわけで、来年からはアウトプットの頻度を上げるという実験を行います。
初めて書いた論文が査読付き国際ジャーナルに掲載されました!
したろうと指導教員とで書いた論文が、
査読付き国際科学ジャーナル Chaos: An Interdisciplinary Journal of Nonlinear Science に掲載されました!
Measuring Lyapunov exponents of large chaotic systems with global coupling by time series analysis https://aip.scitation.org/doi/10.1063/1.5066087
この論文は、大自由度カオス系の不安定性を、
少数の時系列から測定する方法について、我々がした仕事を書いたものです。
掲載から2週間は無料で読めるので、ぜひ読んでみてください!
この論文は、研究の重要性とタイムリー性から、
Regular Articleではなく、より制約の厳しいFast Trackで投稿しました。
当初の希望通り、Fast Trackにacceptされてとても幸福です。
なお、このブログでは、本論文に関する質問や問い合わせは一切受け付けません。
ご了承ください。
白衣専門店でデザイン半袖白衣を2着買った
動機
今年の夏は大変暑く、長袖白衣の袖をまくるだけではとても耐えられません。
そこで、以前から利用している白衣専門店で半袖白衣を2着*1購入することにしました。
Professor’s round
今回も利用した白衣専門店は、Professor’s roundです。
旗の台駅から徒歩3分くらいの場所にあるお店です。
ここでは、様々なデザイン白衣を取り扱っています。
この店が発行しているポイントカードを利用すれば、購入した白衣の値段に応じてポイントが貯まります。
以前に利用したときに貯まっていた300円相当のポイントがあったので、今回の購入で使いました。
*1:すでにデザイン半袖白衣を1着購入しているので、もう2着買えばローテーションできるというわけです。
漫画家ニコ・ニコルソン先生にしたろうの半生を語った
概要
東工大の本館で、漫画家のニコ・ニコルソン先生のインタビューを受けました!
本館にある食堂で、したろうの半生を語りました。東工大の学食で学生気分でカレーを食べてきました。(ハラール推奨) pic.twitter.com/LQE03hRMQP
— ニコ・ニコルソン (@niconicholson) May 30, 2018
ニコ・ニコルソン先生の漫画の参考になれば、幸福です。 続きを読む