this post was submitted on 21 Jul 2023
111 points (98.3% liked)

Linux

48688 readers
384 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

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.

(page 2) 50 comments
sorted by: hot top controversial new old
[–] slembcke@lemmy.ml 3 points 1 year ago

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.

[–] wgs@lemmy.sdf.org 3 points 1 year ago

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.

[–] vsh@lemm.ee 3 points 1 year ago

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
[–] dawwwsh@lemmy.world 3 points 1 year ago

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

[–] garam@lemmy.my.id 2 points 1 year ago

Xfce spin Fedora using VS Code with CSharp dotnet omnisharp, sometime vim with coc nvim and omnisharp vim.

PHP intelephense, podman, kvm/qemu, some el clone or rhel cloud image, and windows server 2019 vhd to qcow2.

Other than that, firefox for frontend web debug.. For desktop dev, avalonia UI. Other than that, none.

[–] SanndyTheManndy@lemmy.perthchat.org 2 points 1 year ago (1 children)

Neovim (with NvChad or the like) + tmux is great, once you figure out the keybinds. Probably not so great for debugging, though. VSCode is a good all-rounder.

[–] Croquette@sh.itjust.works 1 points 1 year ago (1 children)

VSCode is the same on Linux, so it was easy to have at least some familiarity in Linux. So it was an easy choice when I switched to linux.

In that case, you might wanna check out VSCodium, a malware-free version of VSCode.

[–] wintermute@discuss.tchncs.de 2 points 1 year ago

I code in C/C++. Work laptop is windows, but the products run on various Linux and Unix flavors, as well as in Windows. So I use Clion on win, that syncs the code changes to a Linux VM for building and testing. The toolchain is in a docker image, so I can change the build and test environments without affecting each other. Since I need to test on different OSs, I have multiple VMs in a server at the office.

[–] russjr08@outpost.zeuslink.net 2 points 1 year ago

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.

I use GVim for coding and text editing in general.

Programming wise, CLI tools (grep, sed, awk, sort, head, etc) are enough for most of my tasks. I've written a few Python TUI projects (uses Textual framework) but these are around 300-400 lines, so Vim is more than enough for my purposes. Don't even need any plugins.

[–] Ansis100@lemmy.world 2 points 1 year ago

Using VSCode with NeoVim plugin (allows Vim commands in VSC). Code JavaScript locally, deploy using GitHub and Docker/k8s.

[–] Gnubyte@lemdit.com 2 points 1 year ago

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

I usually install all my setups in PopOS or a server I'm developing on: https://github.com/gnubyte/debian-setup/blob/master/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.

https://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.

[–] Afiefh@lemmy.world 2 points 1 year ago

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.

[–] Cornelius@lemmy.ml 1 points 1 year ago

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

[–] mvirts@lemmy.world 1 points 1 year ago (1 children)

I usually hack stuff together with vim and tmux (I know, it's redundant but Ctrl b is just a reflex at this point) when on a remote machine, but I use vscode at work and recently discovered the remote mode for Linux development... It's pretty awesome, like not anything you can't set up with vim or emacs, but it's seamless remote development if you already like to use vscode

[–] Croquette@sh.itjust.works 1 points 1 year ago (1 children)

I would like to do remote dev directly on the target, but it only has64Mb qspi Flash and 512Mb of RAM, so I can't install any modern development tools without exploding my 64Mb.

I cross compile with arm-linux-gnueabihf-gcc so I at least don't need to use the awful Xilinx IDE.

Since we're not sure yet if we will keep our current hardware for 1.0, but not tying my project to a vendor tools, I can easily switch my custom scripts for the new hardware.

[–] mvirts@lemmy.world 1 points 1 year ago (1 children)

Hmm are you compiling code? Sounds like the kind of platform that shouldn't host its own build tools. For that kind of setup I would consider building a remote dev box that can push to / debug the target platform? Maybe even control power to reset the dev board.

[–] Croquette@sh.itjust.works 2 points 1 year ago

I cross compile then push the program through a scp and start gdb-server with a script.

The remote dev box is a good idea because I can use any computer to access it and still be able to push code. I will look into it.

[–] andruid@lemmy.ml 1 points 1 year ago

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.

load more comments
view more: ‹ prev next ›