Hello,

I installed Ubuntu a few months ago on my work laptop and I’ve been running and loving it since.

However, I am used to VsCode, so this is what I am using in Ubuntu as well.

So I am curious, what kind of coding so you do? And what is your workflow.

I am an embedded firware developper and mainly use C. I am cross compiling my code in VsCode for a FPGA from Xilinx (dual core arm + PL)

Never dove into make files and cmake more than what I needed in the past, but I had an opportunity to learn CMake and build a project from it.

So my workflow is :

  1. Code in VsCode
  2. Build in CMake
  3. Transfer the app through scp on the target with a custom script (target is running petalinux, which is yocto + Xilinx recipes)
  4. Use gdb server to debug the code.

It’s a pretty simple workflow, but I’d like to know what you guys are running so that I can maybe upgrade my workflow.

  • vaalla
    link
    fedilink
    arrow-up
    4
    ·
    1 year ago

    I mostly write rust now, but this workflow was finetuned over years. Use 2 terminals each on a diferent monitor, one runs neovim and the other is for building/running. If the project is a bit more complex, I will run it in a docker container( maybe mount the /etc/shadow and frieds so all artefacts are created using the same user as in the outside) . Developed a bunch of tools over the years to optimise this:

    • a ‘package manager’ in bash so I have a folder for each project/context. One for work, one common, one for the server stuff like this. All are in PATH.
    • parterm - remote control for the terminal so i can start a build from neovim in a different terminal.
    • ‘ndock’ - at work I use a bunch of branches, this script will set up a few envs and then start a docker in a folder coresponding to that branch.

    At my old job had to work on a remote vm so I setup sshfs for a while, but was slow and just moved all my tools there.

    I have a pattern where i put all my projects in ~/dev/<project><branch> and all info related to a task in ~/dev/<project>/bugs/<issue_nr>. This is usefull because I can have scripts the work similar for different projects with small changes. For example to run my binary with the config for a issue i just do

    ndock <branch>
    nr <issue nr>
    

    This will start docker or connect to an existing one for that branch if available, compile the code, run my binary with the config present in the bug folder. In the last few month started running it with rr to be sure i can debug any random issue.