Apolloのビルド

ビルド方法のページがあったので、順に従って進めていきます。

dockerが必要となるみたいです。インストール済みか確認する。

$ docker --version
Docker version 18.03.1-ce, build 9ee9f40

以前インストールした事があったよう。

続いて、以下コマンドを動かすように指示があったので、動かしてみる。

$ bash docker/scripts/dev_start.sh

ライセンス確認の後で、以下メッセージがでた。

git-lfs is required to work with apollo.
Check https://git-lfs.github.com for more information.

Git LFS(Git Large File Storage)という大きなバイナリを保存する為の拡張を取り入れる必要があるらしい。 調べて見ると、macOSの場合、brewでインストールできるようになっている。

$ brew install git-lfs

特に問題なくインストールできた。続きはまた明日。

Apolloをダウンロード

Self-Driving Fundamentals: Featuring Apollo | Udacityでは、Apolloという自動運転ソフトウェアをお題に話が進んでいくようです。 とりあえず、ソースコードを入手します。

$ git clone https://github.com/ApolloAuto/apollo.git

Ubuntuが推奨環境のようです。 主に使っている環境がMacOSなので、ビルドできるか怪しいです。 一応、ビルドにトライしてみます。

自動運転の学習始めます

自動運転の技術を身につけたく、Self-Driving Fundamentals: Featuring Apollo | Udacityをやってみます。

過去に、Self Driving Car Engineer | Udacityという自動運転のコースを受講し、最後までやれてはいるのですが、間があいたのとプロジェクトをただただ取り組んだだけで、手の内化が足りていないと感じているので、理屈と実践をがっちりやっていきたいところ。

eu.udacity.com

eu.udacity.com

CodeRetreat @ 名古屋ギークバーに参加

CodeRetreat @ 名古屋ギークバーに参加して来ました。

Coderetreat は、プログラマのための練習、学習のためのイベントです。同じ課題をペアプロで実装しながら、プログラミング、設計、テストなどの技術を学びます。

45分1セッションのペアプログラミングを5-6セットくらい行います。

との事で、日中をプログラミング漬けしてきました。同じ課題を実装かつ、各セッションで1から書いて行くのですが、ペアの相手やファシリテーターから提案されるチャレンジの影響で飽きることなく課題に取り組めました。

テストコードが無い状態ではありますが、一応課題を実装できたのが良かったです。

無料で参加できたのですが、スポンサーさまのお蔭で美味しいご飯をいただけるのも嬉しかったです。お腹いっぱいになりました。(中には昼間からビールを飲んでいる方も!)

次は11月に開催予定だそうです。日程が合えば参加しようと思っています。 スポンサーの方、参加した方ありがとうございました!

イベントページ

スポンサーさま

Release Channels

https://doc.rust-lang.org/book/release-channels.html

Rustは

  • Nightly
  • Beta
  • Stable

の3種類がある。

Betaは6週間間隔でバージョンが上がるプロセスが出来上がっているみたい。リリースマネジメント(?)が着実に行われている。

Borrow and AsRef

https://doc.rust-lang.org/book/borrow-and-asref.html

BorrowAsRefについて。 サンプルコードを動かしてみた。

use std::borrow::Borrow;
use std::fmt::Display;

fn foo<T: Borrow<i32> + Display>(a: T) {
    println!("a is borrowed: {}", a);
}

fn bar<T: AsRef<str>>(s: T) {
    let mut slice = s.as_ref();
    println!("{}", slice);
}

fn main() {
    let mut i = 5;
    foo(&i);
    foo(&mut i);

    let s = "Hello".to_string();
    bar(s);
}
$ cargo run
    Finished debug [unoptimized + debuginfo] target(s) in 0.0 secs
     Running `target/debug/5_10_borrow_and_asref`
a is borrowed: 5
a is borrowed: 5
Hello