How to know if I have DDS installed? - ros

I'm a bit of a noob on ROS2 and I'm starting to learn about the DDS protocol and its implementation on ROS2. So far, I've read that ROS2 already comes with eProsima Fast RTPS, however, I would like to make sure if this is really installed or not. How can I confirm this? Is there a terminal command or something I can do to test it?
Thank you!

The simplest way to check if you installed ros2 from apt is
apt list --installed ros-eloquent-fastrtps
or you could check the directory /opt/ros/eloquent/include/fastrtps

Related

How does Nix able to install individual NPM packages as standalone software?

CAVEAT: If you would like to use Serverless Framework with Nix/NixOS, this is not the way to do it: the package you end up with is outdated, and (as stated below) it probably won't work anyway. See thread on NixOS Discourse.
Wanted to try out Serverless via nix-shell so I looked it up, ran the command
nix-shell -v -p nodePackages.serverless
a̶n̶d̶ i̶t̶ w̶o̶r̶k̶s̶ f̶l̶a̶w̶l̶e̶s̶s̶l̶y̶.1
What makes this possible without requiring me to install Node manually to be able to run npm install -g serverless? (E.g., Is the node_modules folder somewhere in the Nix store? What happens if I nix-shell another Node package - will they share that same directory?)
[1]: It does not... See this Reddit thread; probable setuid issue. Still interested in the behind the scene stuff though.
This question is more like a todo because I really would like to figure it out myself but don't have the time for it right now...
This is possible because it was packaged with node2nix. This tool generates expressions that fetch the various packages and put them in a node_modules directory.
Indeed it's not perfect and some package need some extra fixing up to make them work well. The node2nix tooling could 'learn' from the cabal2nix integration in Nixpkgs to improve the quality of packaging and the Nixpkgs developer experience.

Docker GUI Font Problems

I am currently having issues with the font display when running GNURADIO Companion from a docker environment. I can get the GUI to show, but the font characters are displayed as wingdings, which I am unable to read.
Does anyone know how to solve this problem?
Thank you
Mark
Update
I figured out that the base image simply didn't have the fonts installed, as I thought it did. I performed the actions below and now have a readable GNURADIO Companion.
yum install python-matplotlib
fc-cache
Yes, the key is to install proper fonts. And, if/when you are using Debian, the fonts list can be found here.
apt install fonts-YOUR-CHOSEN-FONT-NAME

homebrew: ngspice not building (x11.c:29:12: fatal error: 'X11/IntrinsicP.h' file not found and then some)

I'm a homebrew newbie (broob?). Trying to build ngspice I encounter the error described in the title. Before I get into that though, it turns out I actually don't even really want/need X11 support at the moment. I'm such a newbie I don't even know how to tell brew to leave out X. In the formula I see:
option "with-x", "Build with X support"
But if I build "--without-x" I still see the same error. How do you say "not --with-x"?
OK, on to the compile trouble:
I can see the file is really there in the X11 directories:
$ find /opt/X11/ -name IntrinsicP.h
/opt/X11//include/X11/IntrinsicP.h
But somehow homebrew is not seeing that include path. What the best way to alert brew to the location of this file? I tried:
ln -s /opt/X11/include/X11 /usr/local/include/X11
which works, in the sense that the include problem goes away, but it produces a linker problem:
ld: library not found for -lXaw
Again, I found some Xaw libs in /opt/X11, but I've not sorted out how to educate homebrew enough to actually link to them. ;-(
$ find /opt/X11/ -name "*Xaw*"
/opt/X11//include/X11/Xaw
/opt/X11//include/X11/Xaw/XawImP.h
/opt/X11//include/X11/Xaw/XawInit.h
/opt/X11//include/X11/Xaw3d
/opt/X11//include/X11/Xaw3d/Xaw3dP.h
/opt/X11//include/X11/Xaw3d/XawImP.h
/opt/X11//include/X11/Xaw3d/XawInit.h
/opt/X11//lib/libXaw.6.dylib
/opt/X11//lib/libXaw.7.dylib
/opt/X11//lib/libXaw.8.dylib
/opt/X11//lib/libXaw.dylib
/opt/X11//lib/libXaw3d.8.dylib
/opt/X11//lib/libXaw3d.dylib
/opt/X11//lib/libXaw6.6.dylib
/opt/X11//lib/libXaw6.dylib
/opt/X11//lib/libXaw7.7.dylib
/opt/X11//lib/libXaw7.dylib
/opt/X11//lib/libXaw8.8.dylib
/opt/X11//lib/libXaw8.dylib
/opt/X11//share/doc/libXaw3d
/opt/X11//share/man/man3/Xaw.3
Thanks for any suggestions!
-steve
I could reproduce this. This reflects an inconsistency in ngspice's configure that was not accommodated by the Homebrew formula. ngspice needs --without-x in configure to stop trying to link to X even though it needs --with-x to actually build X support.
This will be fixed once this pull request is accepted.
Homebrew welcomes these kinds of issues at the Github issue tracker; maintainers don't come around here much. Following the troubleshooting advice that brew recommends ("READ THIS: https://github.com/Homebrew/homebrew/wiki/troubleshooting") will make diagnosing problems easier in any venue. :)

How to migrate a Homebrew environment to another computer?

What is the preferred method of exporting a homebrew environment so I can synchronize my workspace between computers? Seems like there should be something similar to composer.lock or pip freeze. Is there a better way than brew list > brews.txt?
There is a better way: brew leaves.
This command prints a simple list of installed formulae which are not dependencies of any other formulae. Essentially this lists everything that was manually installed or is a leftover dependency from a removed formula.
$ brew leaves
apple-gcc42
bash-completion
brew-cask
git
[...]
There's no built-in means of using brew leaves output to install, but just having a clean list of manually-installed formulae is a step in the right direction.
Thanks to this Gabe Berke-Williams for writing about this: http://robots.thoughtbot.com/brew-leaves
Homebrew Bundle seems like a pretty great solution.
There is not a better way, and there are no current plans to make one.
Source: https://github.com/mxcl/homebrew/issues/17771
Use git! Maintaining repos for environment setup scripts is a pretty slick approach.
I highly recommend using a script to set up a development environment in the first place. thoughtbot has a really lightweight approach that provisions a development environment, including a bunch of brew formulas. https://github.com/thoughtbot/laptop. GitHub just open sourced boxen for this (and much more), but it has a somewhat steeper learning curve.
As you can see from the thoughtbot/latop readme, the entire install is a one-liner. If you want different packages, fork the repo and add whatever you use. This only covers the initial install, but it is a fantastic start.
For ongoing synchronization of development environments, including updating your preferred homebrew setup, you might want to try a 'dotfiles' approach. Zach Holman has a great approach detailed here: https://github.com/holman/dotfiles
If you want to tweak or update anything, just make the appropriate changes to the script (holman's dot script does the ongoing update stuff). Commit, push, pull down from any other environments.

Need help configuring ImageMagick

I've directly downloaded the tar file from here onto my desktop for Mac OSX (which is what I'm using) and extracted its contents. Now I've read the following instructions on how to set it up, but honestly they're a bit too cryptic for me. I was wondering if anyone could please break down these instructions into simpler, bite size pieces for someone who typically has trouble configuring new things...
I'd truly appreciate any help! Thanks!
Btw, my end goal is to set this up for the Paperclip plugin.
The first step would be to install MacPorts if you don't have it already. Once MacPorts is installed it should be fairly straightforward based on the instructions listed at the link you provided.
sudo port install ImageMagick
For others interested in this topic, I might look into installing homebrew instead of MacPorts.

Resources