If you're not developing with this, you're wasting your time
Вставка
- Опубліковано 16 тра 2024
- In other videos we've seen a variety of ways Docker can be used, but actually developing inside a container, while useful, is not that straightforward.
The VS Code Dev Containers extension makes it a breeze to construct, use, and share containers that are designed for development.
Check out PCBWay at pcbway.com/g/59QIMe
📖Various Documentation
code.visualstudio.com/docs/de...
containers.dev/
💬 Join the discussion at discourse.articulatedrobotics...
❤️ Support me on Patreon! www.patreon.com/bePatron?u=55...
00:00 - Intro
01:15 - Running a simple dev container
03:58 - What did it do?
05:38 - PCBWay
06:22 - Dev Container Tips
10:05 - Running GUI programs
13:090 - Outro
I have been using dev container for over 2 years. Though running GUI programs is totally new to me. This is amazing. Thanks for sharing. Keep rocking !!!
Simply incredible! Thanks for showing that amazing tool 👍
omg running gui programs is a total game changer for me. thank you so much for that! very good video!
Its crazy because we also went this way using both vscode and clion remoting into our containers. We didnt use this vscode plugin, but just provisioned the containers as remote entities with avahi and ssh. Then its just like remote development in any other ide that supports it, which is pretty much all of them
Awesome video, I love developing inside containers and your video is a great introduction in the topic ! I’m looking forward to learning more about this 🙂
Thanks!
Stumbled upon your video and it's been a game-changer! 🚀
Your content is like a compass guiding us in the right direction.
Seriously, if anyone isn't diving into this, they're missing out big time.
Thanks a ton for sharing such valuable insights. Grateful for your work!
omg
this actually change how I develop.
thank you.
Thanks for the video, I have a question let's say we have a ROS system on my machine that is going to stream images using the cv bridge, how to get such image stream inside the docker image so that it can run a ros node that is having all its dependencies in that docker image.
gotta be the best video that UA-cam ever recommended to me:)
Thank you very much for another informative docker video. I'm really looking forward to an explanation of how this will all be related to the articubot_one project. I'm making a robot based on your project with its own nuances and additions. Docker should simplify the development very much, but so far it is not possible to run the project in a container.
i would also like guide/demo to run a project inside docker.
This video alone deserves a sub.
awesome job, thanks for opening my eyes to dev cotainers.
I am also doing this for years with VSCode on Windows, either with remote linux VMs and ssh into them or in WSL2. Glad IntelliJ is also working on implementing Dev-Containers as well (for those who want IntelliJ).
Thanks, that is a great explanation! Could you also explain if it is possible in this way run the noVNC on GPU!
absolute legend. thank you for this video lol
Very awesome video
This video is amazing, definetly changed my developement.
I am trying it out and run into issues when connecting with another ROS system in the same network (in this case its a Turtlebot 4 using discovery Server)
I am able to see the topics, but for example when I un `ros2 run teleop_twist_keyboard teleop_twist_keyboard` the robot does not react. I can ssh into the robot from the terminal, run the same command and then its happy times.
What could be going on?
I really appreciate your videos Can you make video of dev container based on windows os, For ROS2 i had used ubuntu previously by dual boot but i liked windows because of its user friendly nature and i also use solidworks.
I used Docker and xlaunch to use GUI tools in windows and was able to launch gazebo and rviz, but i would like to learn to do it from vscode via dev container.
Thank you!
Great video. Thanks
Great tutorial! Thanks!
Thank you so much for the amazing video! I had a quick question. Is it possible to use this to develop inside containers on a remote machine? Using remote and dev containers at the same time.
Yep you can run Dev containers anywhere. You can also tunnel into the remote machine then launch your containers as if your on that machine with no setup. Just download the pack of remote dev extensions. Plenty of good docs on them too.
Nice.
Thanks!
yeah I've been using dev container for a long while, really save a lot of my time to set up the environment, especially for Python
Do you have a vscode terminal theme? It looks so cool!
Hello ! I really liked the way to develop that you've described. But, what I can do on arm ? Because osfr doesn't support this architecture. Maybe this can be the theme for new video ?
Anyway, thanks for your efforts.
Is there something like this for PhpStorm?
What about developing in dev containers on remote machines?
I couldn't find an answer, so do topics in ROS use some kind of serialization for communication? I mean something like protobuf.
Yep, ROS 2 uses DDS underneath, it's a bit complicated and there are a few different implementations that can be swapped out (referred to as middlewares).
does this work with podman desktop also?
Hey , can you post video series of simulation of 6dof robotic arm using ROS (Gazebo and Rviz) also using a Moveit …and lastly integrating it with Raspberry pi and physical 6dof arm……
Can I use something *other* than Docker Desktop, like Rancher Desktop or Podman?
Can we use this for professional development of products? Also, same question for research related development
Yes it's great for any kind of development where you are regularly changing environments (e.g. need to support different distributions)
your channel is the billabong shirt of youtube
Vs Code is so powerful, let’s hope Microsoft doesn’t realize they could charge for it - great video
They charge for visual studio, so I think they know. Besides the ide is just the gateway drug from their other services, like github copilot.
They are already indirectly with github copilot
Shhh 🤐
Just use the open source one
@@RajinderYadav VSCode is not even a code editor, it's just a glorified text editor running in Electron which makes it less efficient than any native text editor.
I went through the steps, everything works, but it doesn't create the Dockerfile for some reason.
Damn that is slick.
this is new for me. wow
actually i face some problem when running the 'reopen in the container', i have an already build docker image, and after that when i try to reopen it in the container vs code shows error. so i do it another way which is from the docker extension, find the image i have build before, and right click the image, select the attach visual studio code, this make me able to open my ros2 workspace inside the container with vs code, but when i try to run my package after sourcing, it show package not found and unable to find /opt/ros/humble/setup.bash where i can find this file when i run ls /opt/ros/humble/setup.bash in terminal. anyone know what is the problem? thanks
Does it work with WSL
I couldn't even get Docker to work. I tried installing it a few times, on Win 10, and every time the same error prevented it from starting. I don't have the text of it, but it sure did tick me off.
Great video about vscode +++++
I have a request (i am a mechanical eng with little knowledge about open stack electronics and i am a noob when it comes to coding)...can you make a video on how effectively can we use use CHAT GPT for writing codes for robotics application.
Such as (simple... motor drive controller, PID tuning, IOT..To complex.. imaging, computer vision etc)
If YES, how effective and to what extent can complex code problems can be solved.
If No, can other near future Ai tools like gemini will they be able help ease of development of code for Robotics sector?
Thank you,
Your subscriber😊
I don't think it's possible at this moment. You can ask Chat GPT/Google bard to do things like this:
In C programming language, write me a function that takes 3 arguments: an integer a, a boolean b and a string c then returns another string. Then you describe what your function logic is. If other people can understand what your function logic does when reading what you write, then those AI's might and be able to generate some code for you.
Unfortunately at this moment in time Chat GPT is very prone to just straight up lying about certain aspects of programming implementation - in particular it likes to make up functions that feel like they should be part of external libraries, but actually aren't. You have to already know about the thing you're asking it in order to make sure it's right... which kind of defeats the whole purpose. There are uses for it - but they're not super obvious or straightforward right now.
For any application that has to touch "real" things like databases, hardware or the such, I would heavily advise against trusting ChatGPT with anything.
The trick is that you don't use chatgpt and actually learn robotics code so you know what your building and what it's doing instead of blindly copy pasting from a glorified next syllable predictor
Just never ever use words "effectifely" and "ChatGPT" in one sentence, please.
If you can't code - learn it, if you can get a grade on mechanical engineering, it's strange to see you whining about some code which even some kids can do.
more indirection is exactly what you need when that package errors out! for sure !
love the steam deck dev setup lol
Can you make a ROS Kinetik docker?
The only problem (not to everybody) is that we have to use vs code.
you can always use vim to manage your 300 sourcefiles and depedencies,
want to code like in the 1980's with a terminal and jump back and forth to man pages - go for it
@@guruware8612 'jump back and forth to man pages'? You don't know how to use vim/neovim yet 😊
You still have to manage your 300 dependencies in VScode with JSON instead of lua
@@guruware8612 Never had a proper vim config eh?
@@guruware8612blud thinks terminals are only for the 1980s 💀
Can this docker stuff be run with Visual Studio Professional? I don't use VSCode after trying to get into it several times in the past.
What about the overhead?
I subscribed. Also on Twitter.
interesting, how much memory does it uses ?
what ubuntu theme is that? it looks really good
Ubuntu MATE, it's a different desktop environment to the standard GNOME. A bit lighter-weight.
Nice i might try it in a vm later
hello sir, not relevant to this video but a request for a tutorial. im following your robot from scratch series to build my own firefighting mobile robot, im having troubles with integrating a thermal camera to my system because i, so used to your series that i cant find any tutorials online.
Most annoying for me is athat i need to develop from a lab enviroment that does not have internet access... So copilot which is my favorite tool does not work...
I wish i could ssh into the remote dev server but have copilot go trough my own computer to the internet..
never had a issue without docker containers for my code bases. don't know if it really saves any time :/
Dev on a deck , bold strat cotton
Nice video and nice tool, but why is this useful? Does it really has any real benefits? Am I missing something?
Well for starters, we just added a ton of complexity to an already complex subject. When things break, now you are troubleshooting both docker and the underlying OS. Really though...for the average developer, you aren't adding anything except complexity.
X11 clients runs fine from within Docker container.
I’m not convinced I need docker still
Linux is lagging behind with the lack of a RDP-like protocol to enable the GUI programs from running against containers. RDP desktops just look amazing.
It is not really lagging behind. There is/used to be X11 Forwarding, but ironically we are moving away from X11 at the moment.
@@DanielVoogsgerd how is it not lagging behind mate? X11 Forwarding is really buggy and unstable... would you say its on par with RDP? RDP works flawlessly. Probably something Wayland-based will have a decent RDP competitor in the future.
@@rubiskelter I thought you meant that there wasn't really anything. But fair enough, at least nowadays X11 Forwarding isn't really up to par with RDP I suppose. Although I think X11 used to be a lot better in the past, but applications are constructed differently nowadays. Personally I don't really use nor wanna use either 🤷♂️
❤❤
Unless I can run WAMP and Angular 11 in Docker, then it is no good to me.
I use pycharm tho
I havent seen a bilabong shirt in decades
Imagine you could just hit "compile" to have the computer build a binary of some hundred kb size that would do what you wrote in the source - without Docker, virtualization, installation or other ceremonies and gigabytes of wasted memory.
Wouldn't that be cool?
Too bad we lost that ability in this millennium. 😂
Yes, but now imagine you are responsible for developing tools that have to work across a variety of robotics platforms, each with different environments and dependencies and quirks, and now you don't need to have a whole VM for each one. (Which is the current practical alternative in industry).
I'd prefer a couple GB docker image to a hard drive full of VM's but each to their own!
@@ArticulatedRobotics I probably didn't get my point across correctly. I neither blame you nor Docker, but rather the industry which brought us the mess with all those dependencies, quirks and VMs. As robotics often involves a second, incompatible hardware platform, that is actually acceptable - but nowadays people use Docker for tiny tools like Pihole and think nothing of it.
We got used to ridiculous waste of resources to compensate chaotic development environments. Ironically, one of the few bright spots is the language in which Docker was written in:
With Go, you can write self-contained, tiny binaries and even cross compiling isn't that hard.
Nix makes cu better than containers for development environments
Scrolled a long way to find someone mention nix, thank you!
Yea have good AI over there😊
Thanks!
Explain to me why this is helpful as it relates to our ROS2 projects? You didn't do that. How exactly is me not using docker...wasting my time?
I guess there's two answers here. As to why Docker is useful in general, I've made a few videos on the topic. I think it's most helpful for package maintainers or people who are otherwise needing to work on multiple ROS versions or different sets of dependencies from a single machine. For example my main development machine is still running 20.04 and I chop and change between foxy and humble.
This video in particular is about why Dev Containers make developing in a container (as opposed to deploying in a container) much easier, especially for people who are newer to Linux/working from Windows.
@@ArticulatedRobotics Thank you for responding.
time was made for wasting. that's why i wrote programs.
I wouldn't use any of those in development. I can't believe you feel this was correct. Very sad to see.
If you use this, you give all to Microsoft
Remote SSH? /me laughs in Emacs trump mode!
I always like how all sh*t is put in container that sized 1Gb+, but in reality it's 99% apt get install a couple of packages ahahahahahahaha, overcomplicated for basically nothing.
Yeah it drives me nuts haha but at least it's smaller and quicker than a VM...
nice to see another linux user that makes coding vids
"If you're not developing with this, you're wasting your time" are you the ultimate entity over everything. I have enough of titles designed only for you tubers monetization purpose which makes searching anything useless these days. I have nothing wrong with the video but still I have to see it or look at comments because the title (other than being a bit arrogant) is totally useless. You tubers please stop with this nonsensical titles and thumbnails. They \are making the you tube experience a waste of time
Yes, I do agree and it hurts me a little every time I have to do it!
When I have the time I need to sit down and do some proper A-B testing with more straightforward titles/thumbs but it appears to me that this is just what you have to do to actually get the content viewed at all. My hope is that for most people they are satisfied enough with the result that they'll put up with it - I know that's how I feel about other creators.
I try to put something in the description to help with searchability, I wish you could release with two sets of titles, one to drive stray clicks from general interest and one that is more informative for those searching a particular topic.
It's definitely something I have to grow in, all I can say is that this video has outperformed my next best (in its first week) by over 4x, and if I called it "VS Code Dev Containers Overview", that wouldn't have happened, but I also don't want to waste people's time so perhaps there's a middle ground. :)
Thanks for the feedback!
@@ArticulatedRobotics fair enough, thanks for replying that's much appreciated. While I am not much on you tube anymore I still enjoy good content from creators like you. my apologies, the comment was a bit too strong, sometime it can get frustrating..
@@pepposoftwaredev3950 No man, I agree with both of you but your comment was not even the tiniest bit too strong, google (or other search engines for that matter) and youtube search are really near useless for me or atleast like 20 times worse than they've been a decade ago and since they're like the gateway to internet content, the whole internet is suffering heavily from this. And it's not really the creators fault, it's the fault of silicon valley.
You can literally memorize and search for the exact title of a (unpopular) video and it still won't show up, which is why I almost bookmark everything I consider revisitable cause I ain't gonna find it that easily by searching anymore.
You created a problem by using containers in the first place and then “solved” the problem by forcing a specific editor with a bunch of extra tooling added. Terrible.
Sorry…who “created the problem” of different operating systems existing…? As a DevOps engineer, this is THE way to build things FAST. No offense, but you genuinely have no idea what you’re talking about.
Yeah. What a problem. Being able to compile your code against different environments from one machine. What a problem that is.
Dumbest comment I’ve read this week.
@@MiningForPies It’s not just about compiling code for different environments, it’s about the environments themselves. You neglect those environments, you will fail, within each for a different reason, and you will not know why, and you will be overwhelmed. I take it you’ve never had to install proof-of-concept software on-prem for differing environments.
Clock yourself the next time you set up a PostgresQL server. Guarantee I’ll do it 8x faster at minimum.
@@astrovicis why are you saying that to me. I’m for this method.
@@astrovicis and I’ve been installing proof of concept software on premises for 25 years. Including one client who has a none internet connected set of servers with 900GB worth of databases, who are limited to secure USB data transfer (max size 6GB).
Don’t you fucking come at me with having no experience.
If you are developing a container based application then using dev containers may not benefit you much.
good but tried and sadly not that useful
Come on, if you are professional programmer, pay for JetBrain IDE, don't use free craps.
Hi, very nice video and very usefull, I try to follow you but I got an error with vscode when I try to reopen in container, could you please help me? ERROR [dev_container_auto_added_stage_label 2/7] RUN groupadd --gid 1
Very awesome video