【Rust】Option/Result の使い方

Scala の for- yield 文のように、 Rust で複数の Option/Result をすっきり書くにはどうしたらよいか? まず、Scala の場合。 https://wandbox.org/permlink/tRZ454NozWaAMzd2 これと同じことを Rust で書くには?

【Rust】Option/Result の使い方

Scala の for文のように、複数の Option/Result をすっきりかくにはどうしたらよいか? https://wandbox.org/permlink/tRZ454NozWaAMzd2

Rust のエラー処理

昨日の続き。良い記事を見つけた。 rustのエラー処理と疑問符演算子 複数のResult<>値を扱うには、疑問符演算子 ? を使うのがいいらしい。 Scala のfor yield に対応するもののはずなので、いくつかサンプルコードを書きたい。試してみるが書式を理解できて…

エラー処理の方法

エラー処理の方法として 単純な戻り値 タプル 例外を投げる maybe/option/either といったものがある。言語によって使える方法が違うが、これらは使い分けるべきものなのか?それとも 4 または 2 にすべて置き換えるべきものなのか? 少なくとも 1 がよろしく…

Macbook Pro 用の外付けHDD/SSD

Macbook Air が流石に性能不足になってきたので、MacbookProに買い替えを検討する。 timemachine でバックアップを取るために、外付けHDDが必要になる。バックアップ目的のため、読み書き速度は追及しない。遅くても壊れない安定性を重視する。 容量は、1TB…

【Rust】out引数とmap

rust で、関数に配列を渡したとき、アウト引数として関数内で変更できるか? 試してみた。 https://wandbox.org/permlink/ZJCko19FTfdkiZ8o 拡張for文を使っても引数の配列に mut 指定をすることによって、変更することができた。 一方、map を使って書こう…

お買い物記録

渋谷の東急ハンズでボールペンを買った。 zebra.co.jp インクが切れたときの替えは www.zebraservice.jp ついでに、手持ちのボールペンを調べた。 www.parkerpen.com これっぽい。 替芯(リフィルというらしい。refill 再び満たす、かな?)は、純正品だと …

ピタゴラス数

関数型言語だとピタゴラス数を宣言的に解ける。 Haskell, Elixir のコードを書いて動かした。 study_haskell/pythagoras.hs at master · kzono/study_haskell · GitHub study_elixir/pythagorean.ex at master · kzono/study_elixir · GitHub scala のコード…

Nucleo の開発環境

SystemWorkbench AC6 が一番細かいところに手が届く感じがしたので、それで作業しているが、L6470 のサンプルコードを検索すると Arduino のものが一番多くヒットする。mbed にも L6470 用のライブラリがあるらしい。どちらもお手軽な感じなので試してみたい…

STM32F401RE + L6470 + bipolar stepping motor

STMicro が提供するサンプルコードを探していたが、漸く発見!たぶん1週間以上探していた。 X-CUBE-SPN2 https://my.st.com/content/my_st_com/en/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32cube-expansion-packa…

リニアアクチュエータ

直動装置 ネジの種類 ボールねじ 台形ねじ 滑りねじ ボールねじ 構造と特徴 jp.misumi-ec.com jp.misumi-ec.com jp.misumi-ec.com jp.misumi-ec.com

複合4節リンク

今日の学び。 嵌めあい raise3D pro2 でプリントしてみたところ、穴 6.15mm , 軸 6.00mm だと隙間嵌めにならず、締り嵌めになってしまうことが分かった。 穴を大きくするか、軸を補足するか、あるいはその両方か、考えどころ。 軸は、今回軸の真ん中に3mmの…

マルチスレッド対応の圧縮コマンド

SDカードのイメージファイルを作成し、圧縮ファイルを作った。このとき、結構時間がかかった。システムモニタを見ていたところ、マルチコアにもかかわらず、1つかせいぜい2つのスレッドしか使われていなかった。そこで、マルチスレッド版の圧縮コマンドがな…

Rust の REPL を Google さんが作っていた

jupyter-notebook の Rust 用カーネルを探していたら、なんと Google さんが開発して、公開していた。 github.com qnighy.hatenablog.com qiita.com evcxr_jupyter というのが Rust 用 jupyter-notebook のカーネル。 https://github.com/google/evcxr/blob/…

Vivado/Vivado HLS/ peta linux

HWロジックの開発環境:Vivado HWロジックの高位合成(HLS:High Level Synthesis)開発環境:Vivado HLS SW開発環境:peta linux という位置づけらしい。 今日は時間切れだが、今後は下記のサイトを参考にしてツールの使い方を学ぶ。 qiita.com www.tech-dini…

ESP-IDFの WiFi サンプルが動いた!

WiFiサンプルは、 ESP32がアクセスポイントになるもの WiFiのクライアントとしてAPに接続するもの の2つが用意されていた。どちらも問題なく動いた。(嬉 ただし、VSCode からだと example プロジェクトとしてメニューに表示されず、import できなかった。…

threadripper と ubuntu でのスクリーンショット

プログラムをビルドするとき、結構時間がかかる。そんなとき、 make コマンドに -j4 などといったオプションをつけると、make コマンドは4スレッド起動して並行処理してくれる。 開発用マシンとして先日組み立てたPCでは AMD ryzen threadripper 2050 なので…

esp-idf と freeRTOS

ESP32 のたくさんある機能(特にネットワーク関連)を使うには、フレームワークとして ESP-IDF, そのコンポーネントとして FreeRTOS を使うのが良さそう。 もちろん、ツールチェーンとBSP(ペリフェラルのドライバソースコード)だけ用意し、他は自分で書く…

ESP-IDF と platform.io

esp-idf のサンプルは、インストール後すぐにビルドできた。 一方、platform.io が ESP32に対応していることを知った。その上、VSCode に platform.io 用の extention があることもわかった。 platformio.org kunsen.net 発見した記事は esp-idf ではなく ar…

GUI なアプリのネタ

コマンドラインなツールに、GUIの皮を被せる。 ファイルの文字コード変換。ディレクトリをしていすると以下のファイル一式を変換する。 フォルダを指定すると、容量が大きい順にファイル名を表示する。 Excelシートからレポートを作成するスクリプトのGUI Ra…

ESP32 用の公式フレームワーク

本家の Getting Started にしたがって、ESP32用のツールチェーンとライブラリをダウンロードしてインストールしていた。今日はその中の examples をビルドしようとして驚いた。 hello_world なサンプルプロジェクトが、make しようとするとビルドメニューが…

トラックボールマウス logicool SW M570t を購入!

久々にトラックボールマウスを購入した (^^)/~ www.logicool.co.jp Ubuntu 18.04 では、USBのレシーバーを接続するだけで問題なく認識され、使うことができた。 ただ、多ボタンマウスなのに、左右2つのボタンしか認識されていないっぽい。 (^_^;; 特に設定し…

Ultra96 と vivado

Xilinx のチュートリアルを色々探していたが、どうやら AVNET のチュートリアルが正解らしい。 ひでみのアイデア帳 | Zedboard github.com

PetaLinux と Ultra96 用 BSP のインストール

昨日 PetaLinux のインストーラがエラーになったのは、事前準備が足りていなかったからだった。ドキュメントにちゃんと書いてあった。 必要なツールやライブラリを一通りインストールしてから、PetaLinux のインストーラを起動する必要があった。インストー…

petaLinux ツールのインストール

FPGA Ultra96 には ARMのハードコアが内蔵されている。それも *Cortex-A53 x 4 Cortex-R5 x 2 さらには GPU : Arm Mali-400 MP2 667 MHz も含む豪華な仕様。そして、このCPUで動かす Linux の環境を Xilinx が提供してくれている。 インストーラをダウンロー…

Rust の開発環境と Ultra96 の開発環境

RUST Ubuntu に Rust の開発環境をインストールした。 Rustの REPL があるらしく、それを使って Jupyter notebook の Rust kernel があるらしい。 こちらはまだ導入できていない。 Ultra96 2018/12/30 にぽちった Ultra96 が今日届いた! ライセンスファイル…

ESP32 の環境構築

今日の進捗。 ESP32の環境構築を行った。本家サイトの指示に従って、クロスコンパイラをインストールした。ESP32用のライブラリ esp-idf もインストールした。 dl.espressif.com しかし、実際のボードに繋いでサンプルコードを書き込むところは、時間切れで…

松尾研究室のDeepLearning演習

今日の進捗。 第2回から第5回まで、回答例のソースコードを読んで実行することはできた。 が、1行たりともコードを書いていないので、ほぼ意味はないかも。第2回は講義のテキストっぽい内容が混じっていたが、それ以降はほぼ講義っぽい内容がなく、演習の回…

今日の進捗

機械学習の各種教材は、github で公開されている。その演習問題を解くにあたり、当初は自分の github に保存しようとしていた。が、考えてみると、いくら教材が公開されているとはいえ、著作権的にマズイということに気付いた。 なので、自分の github に登…

keras + tensorflow なコンテナ

dockerhub から keras + tensorflow なコンテナはいくつも見つかるが、どれを選ぶべきかよくわからない。できるだけ公式のものを使いたい。 で、keras 本家のサイトを探したところ、 docker コンテナを作るためのファイル一式が github に公開されていた。 g…