Thought about system by Hiroyasu Ishikawa

We are uncovering better ways of developing system.

C++バブルソートのコード

バブルソートのコードをC++で実装したものを以下に示す。

#include <utility>

void bubble_sort(int target[], int len)
{
    bool goon = true;
    while (goon)
    {
        goon = false;
        for (int i = len - 1; i > 0; i--)
        {
            if (target[i - 1] > target[i])
            {
                std::swap(target[i - 1], target[i]);             
                goon = true;
            }
        }
    }
}

ROSの複数のワークスペースを読み込む

とある開発で複数のワークスペースを扱うようになった。
分散開発とか複数人で開発しているとか、色々な場面が考えられるが、そんな時何も考えずにsetup.bash叩くと最初に読み込んだワークスペースが見えなくなってしまう。

$ source ~/2nd_ws/devel/setup.bash

これでOKらしい。

$ source ~/1st_ws/devel/setup.bash
$ cd ~/2nd_ws/
$ catkin_make
$ source ~/2nd_ws/devel/setup.bash

参考

wiki.ros.org

Ubuntuのディスクをバックアップして復元する

Clonezillaを使って、ディスク(パーティション)をコピーして、復元した。

Clonezilla - About

復元した時に警告に表示された通り、fstabを編集し、chrootしてgrubをインストール(再構築)必要があった。

余裕があれば True Image でも再挑戦したい。

KinematicsBase does not exist

とあるLaunchファイルを起動したら、"KinematicsBase does not exist" というようなエラーが出力された。

$ dpkg -l | grep trac-ik

逆運動学用のパッケージを確認したら、インストールしていなかった。

$ sudo apt install ros-melodic-trac-ik-kinematics-plugin

解決した。

同じ質問がROS Answersにあった。
The kinematics plugin (arm) failed to load. and Kinematics solver could not be instantiated for joint group arm. - ROS Answers: Open Source Q&A Forum

Gitの認証情報の保存

Gitの認証を500分(8時間とちょっと)キャッシュする。鍵認証が使えず、かつ、1日作業するような場合に使う。時間は適宜短くする。

$ git config --global credential.helper cache
$ git config --global credential.helper 'cache --timeout=30000'

git-scm.com

Caching your GitHub password in Git - GitHub Help

GitLabで見積もりと費やした時間を記録

GitLabのIssuesにはTime Trackingの機能がある。
https://docs.gitlab.com/ee/workflow/time_tracking.html

コメントで"/spend 3h"と投稿すれば3時間が計上される。
"/estimate xx"で見積もりも記録できる。