ロボットに関する話題ならなんでもOKな日本語のDiscordのサーバー作りました!
招待リンクはこちら
https://discord.gg/uXX2Hh6
(リンクから入れない人は、アプリからサーバーの追加にこのURLを貼ってください。)
Discordはゲーム用のSkype・Slackみたいなもので、今のところ無料で使えます。
ゲーム以外で使っても問題ないようで、私が購読しているのは
Rustの開発用Discordと、自作キーボードのコミュニティーのDiscordです。
すごく機能も名前も似ているものとして、Discourseがありますが、
こちらはOpenSourceで自前でサーバを立てるフォーラム形式のコミュニティーであり、
Rustも公式コミュニティーはDiscourseだし、ROSもDiscourseがありますね。
Discordはゲーム用ということもあって、なんとなくゆるい感じがして好きです。
またアプリの出来がよいのと、サーバー切り替えが非常に簡単(Slackと比較すると)です。
よく考えたらメンバーはROS Slack使っているんだからSlackのほうがよかった気もしますが・・・。ROS関係ないしね。
tl;dr
設立の趣旨としては
ROSのコミュニティーは非常に盛り上がっていて楽しいんだけど、「ROS縛り」みたいになっていて、
ROS関係ない人たちが入り込めないのが非常にもったいないなと。
まあ参加したければ無理やりROSに結びつければいいんだけど、もっと自然に日本のロボットをやっている人たちを
結びつけるようなコミュニティーがあったらいいなぁ、とかなり前から思っていました。
多分過去にはRoboticsメーリングリストとかがそういう役割だったんでしょうけど、今は気軽に議論出来るものではなく、イベント通知専用になっちゃっていますね。
2018年にメーリングリストってのもありえないので、比較的なうい感じのDiscordにしてみました。
個人的には子供を抱っこしながら片手で出来る娯楽を増やしたい、という欲求がありました。
また先日Twitterで公開でやり取りをしている人とか見かけましたが、
Twitterだと、はたから議論入っていくの難しいですよね。
Discordとかのほうが複数人の意見聞いたりするのに便利だと思いますし、これまでこういうコミュニティーは日本にはなかった。
なにか問題が起きるまではゆるーく運営したいと思いますので、仲良くやりましょう。
どんどん広めてください。使い方もどんどん提案してください。
英語だとredditで私がやりたいことに近いことができていると思っているのですが、日本だと2ch(5ch)は匿名なので議論にならないし、他に有力な掲示板はないので出来ません。
2018年10月6日土曜日
2018年7月2日月曜日
C++は難しいという話
最近ハマったのでみなさんにクイズです。
以下のコードをビルドして実行すると何が起きるでしょうか?
実際に実行する前に何が起きるか想像して、出力をノートに書いてみてください。
clangでビルドするなら、
$ clang++ -std=c++11 test.cpp
って感じです。
次に、-DTEST2をつけて
$ clang++ -std=c++11 test.cpp -DTEST2
とするとどうなるでしょうか?
正しく予想出来たらC++を理解していると言ってもいいかもしれません(だめでしょうけど)。
以下のコードをビルドして実行すると何が起きるでしょうか?
実際に実行する前に何が起きるか想像して、出力をノートに書いてみてください。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
class Widget { | |
public: | |
explicit Widget(int a, int b) : m_a(a), m_b(b) { | |
std::cout << "construct" << std::endl; | |
} | |
void echo() const { | |
std::cout << m_a << std::endl; | |
} | |
Widget(const Widget &w) : m_a(w.m_a), m_b(w.m_b) { | |
std::cout << "copy construct" << std::endl; | |
} | |
Widget(Widget &&w) : m_a(w.m_a), m_b(w.m_b) { | |
std::cout << "move construct" << std::endl; | |
} | |
Widget &operator=(const Widget &w) = default; | |
Widget &operator=(Widget &&w) = default; | |
private: | |
const int m_a; | |
int m_b; | |
}; | |
Widget func_a(int a) { | |
const Widget w(a, 1); | |
if (a > 0) { | |
return w; | |
} | |
Widget w2(a, -1); | |
return w2; | |
} | |
Widget func_b(int a) { | |
const Widget w(a, 1); | |
return w; | |
} | |
int main(int argc, char **argv) { | |
#ifndef TEST2 | |
const Widget w1 = func_a(1); | |
w1.echo(); | |
const Widget w2 = func_a(-1); | |
w2.echo(); | |
const Widget w3 = func_b(2) | |
w3.echo(); | |
#else | |
Widget w4(1, 2); | |
w4 = func_b(2); | |
w4.echo(); | |
#endif | |
return 0; | |
} |
clangでビルドするなら、
$ clang++ -std=c++11 test.cpp
って感じです。
次に、-DTEST2をつけて
$ clang++ -std=c++11 test.cpp -DTEST2
とするとどうなるでしょうか?
正しく予想出来たらC++を理解していると言ってもいいかもしれません(だめでしょうけど)。
ラベル:
C++
登録:
投稿 (Atom)