Coders, what is your workflow on Linux

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.

dawwwsh,

I tend to prefer Jetbrains editors (CLion, Rider, WebStorm) for projects, and just nano/micro for config editing and such…

danhab99,
@danhab99@programming.dev avatar

$mod+enter vim enter Ctrl+p [type a part of the name of the file I want] O [write code]

vsh,

For python:

  • Pycharm with integrated git For web dev and game dev:
  • vscode with GitHub desktop or integrated git, XAMPP if I’m doing back end
vaalla,

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

<pre style="background-color:#ffffff;">
<span style="color:#323232;">ndock <branch>
</span><span style="color:#323232;">nr <issue nr>
</span>

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.

russjr08,
@russjr08@outpost.zeuslink.net avatar

I’m currently running Fedora Kinoite, via the Universal Blue kinoite-nvidia image.

A lot of the stuff I personally develop is done in Java/Kotlin, so for those projects I use IntelliJ (via the JetBrains “All Products Pack”) to work. For everything else such as Rust which I’ve been slowly trying to get into, or PHP which I sometimes write for work I tend to use Neovim because its simple enough. I suspect as I start to build bigger projects in Rust I’ll start using it through IntelliJ or CLion to have access to a nice debugging environment, but so far the little bit of debugging that I’ve needed can be done through rust-gdb.

Its a nice simple workflow, and Fedora already has podman installed for when I’m utilizing Docker as well which is nice.

nitefox,

CLion for Rust/C++, VS Code for web dev stuff

andruid,

I do DevSecOps/SysAdmin type stuff mostly so vscode with devcontainers being pushed into gitlab-ci for checks and deployments (Ansible, terraform, k8s manifests, helm charts, docker files and occasionally back to my roots with sh and python scripts as needed).

Sometimes though I just toolbox my devcontainers and work client out of there and vim, when I’m just trying stuff out.

why,

I mainly write C. I really like Intellij Clion because it uses CMake as project files. It also makes tools like valgrind, perf and gdb available without having to go to the terminal.

Afiefh,

Mainly C++ with a sprinkling of Python and Rust for fun.

Used to code KDevelop, now VSCode. Build in a regular terminal (I prefer Meson over Cmake, both end up producing Ninja files.) Debug with valgrind, gdb and ddd. Push to Gitlab for my personal projects.

I use Docker for my test environments as it’s easy to bring them up and restore them to mint condition, and it ensures that the longer running tests with side effects don’t interfere with one another.

Ultra980,

I use helix on NixOS. I have the most basic setup for c(++):

  • edit with helix
  • write custom makefiles with a script I made
  • test the program with the makefile
  • debug with cout or printf
Lalelul,

While I do like custom text editors, I feel like bad debugging is a no go.

Gnubyte,

Hi! web dev here. It’s time to change your setup ever so slightly with VSCodium, and electerm too optionally: vscodium.comgithub.com/electerm/electerm

I usually install all my setups in PopOS or a server I’m developing on: github.com/gnubyte/debian-setup/blob/…/setup.sh

Then install Insomnia.rest, VSCodium, and finally electerm.

Basically I’ll program in nodeJS, BunJS, or python.

Then I’ll ask chatGPT via Rubberduck (link below) to generate a docker and docker compose live mount for my dependencies of my frontend and backends. Then I begin to iterate over my work.

github.com/rubberduck-ai/rubberduck-vscode

My latest flow is basically to start with chatGPT, write a four paragraph description of what I want, have it save me about five hours of boiler plate nonsense, and then disconnect from chatGPT to do the advance stuff like handle security, data structure relationships, etc. Sometimes I go back to chatGPT for how an algorithm should be implemented for efficiency inside a short snippet, then apply it again to my code. There was some great bloom filter work it was able to help me with.

Other stuff I’ve been trying is like podman and I’m interested lately in Jenkins to do builds since I realized I have too many projects that build and work a particular way, I can’t Shepard them all by hand. With that will likely come unit testing, both hopefully assisted by AI to cut down on time. I’d like to reinvest that time on hankerrank and frontend masters to start transitioning to something like rust.

Cornelius,

Yakuake with oh my zsh some plugins and themes and vscode (trying to switch to lapce) in Rust with cargo on Fedora

Gobbel2000,
@Gobbel2000@feddit.de avatar

Neovim for me. There are so many plugins to make the editor behave exactly as you want.

andruid,

I really want to get more into neovim, being able to host the backend service and just point to it from other servers seems super useful for me!

slembcke,

I do game dev, and I’ve been loving VSCode. I used to use a mishmash of stuff, but VSCode can do kinda everything. Working on retro-dev C/asm for NES or Genesis? Lua projects? Shaders? Debugging a native Linux/SDL game? Doing some math in a Julia notebook? Unity3D development? Working on Windows/Mac? The answer is VSCode to all! I still use vim for some light stuff or working on remote machines, but meh… VSCode has nice defaults for me without having to fiddle.

For my native Linux gamedev, I’ve just been using the MS Cmake and Cpp-tools extensions. They work great, and you can script up the rest with actions. The debugger isn’t great, but it’s convenient and good enough for simple crashes. I switch to GDB when things get interesting though. I suppose I have an extension for shaders too, but it’s just syntax highlighting.

greywolf0x1,

You should look into VSCodium, it’s the same without microshit’s telemetry.

slembcke,

I have, but it doesn’t show the MS extensions like the C or CMake tools which is kind of a dealbreaker. None of the alternatives really work well enough in my experience. I’m fine with opting out of the telemetry.

wgs,
@wgs@lemmy.sdf.org avatar

I use vis to write code, ^Z and make/mk to build the project. Most of the debugging is done with valgrind and eventually gdb though my use is very limited.

When I work on manpages, I use wendy to automatically preview manpages everytime the source file changes.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • uselessserver093
  • Food
  • [email protected]
  • aaaaaaacccccccce
  • test
  • CafeMeta
  • testmag
  • MUD
  • RhythmGameZone
  • RSS
  • dabs
  • oklahoma
  • Socialism
  • KbinCafe
  • TheResearchGuardian
  • SuperSentai
  • feritale
  • KamenRider
  • All magazines