Introduction
The open source ecosystem offers powerful alternatives to commercial tools. This guide covers essential open source developer tools that can enhance your productivity.
Code Editors
VS Code (Open Source)
# Install VS Code
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/
sudo sh -c 'echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
sudo apt update
sudo apt install code
Neovim
-- init.lua (Neovim config)
require('packer').startup(function(use)
use 'wbthomason/packer.nvim'
-- Theme
use 'folke/tokyonight.nvim'
-- Fuzzy finder
use 'nvim-telescope/telescope.nvim'
-- Autocomplete
use 'hrsh7th/nvim-cmp'
use 'hrsh7th/cmp-nvim-lsp'
-- LSP
use 'neovim/nvim-lspconfig'
use 'williamboman/mason.nvim'
-- Treesitter
use 'nvim-treesitter/nvim-treesitter'
end)
Version Control
Git Tools
# Git aliases for productivity
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.st status
git config --global alias.cm commit
git config --global alias.df diff
git config --global alias.lg "log --oneline --graph --all"
# Interactive rebase
git rebase -i HEAD~5
# Cherry-pick commit
git cherry-pick <commit-hash>
# Stash with message
git stash push -m "Work in progress: feature X"
GitHub CLI
# Install GitHub CLI
brew install gh # macOS
sudo apt install gh # Linux
# Authentication
gh auth login
# Common commands
gh repo create my-project --public
gh issue create --title "Bug" --body "Description"
gh pr create --title "Feature" --body "Changes"
gh run watch # Watch workflow runs
Debugging Tools
GDB Commands
# Start debugging
gdb ./program
# Common commands
(gdb) break main # Set breakpoint
(gdb) run # Start program
(gdb) next # Next line
(gdb) step # Step into function
(gdb) print var # Print variable
(gdb) backtrace # Show call stack
(gdb) continue # Continue execution
(gdb) delete 1 # Delete breakpoint
strace
# Trace system calls
strace -p <pid>
# Trace file access
strace -e trace=open,read,write <command>
# Timing information
strace -T <command>
# Summary of calls
strace -c <command>
Container Tools
Docker Essentials
# Multi-stage build example
FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
Docker Compose
version: '3.8'
services:
app:
build: .
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgres://db:5432/app
depends_on:
- db
- redis
db:
image: postgres:15
volumes:
- postgres_data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=secret
redis:
image: redis:7-alpine
volumes:
postgres_data:
API Testing
HTTPie
# HTTPie - User-friendly cURL alternative
brew install httpie
# GET request
http GET api.example.com/users
# POST with JSON
http POST api.example.com/users name="John" email="[email protected]"
# Form data
http -f POST api.example.com/submit name="John" file@./data.txt
# Headers
http GET api.example.com/protected Authorization:"Bearer token"
Postman (Open Source)
Postman Collections:
โโโ Import/Export: JSON format
โโโ Environments: dev, staging, prod
โโโ Variables: {{base_url}}
โโโ Pre-request scripts
โโโ Tests with assertions
Terminal Tools
Modern Terminal Emulators
| Terminal | Features | Platform |
|---|---|---|
| Alacritty | GPU-accelerated, fast | All |
| Kitty | GPU rendering, tiling | All |
| WezTerm | Modern, cross-platform | All |
| Ghostty | Zig-based, fast | macOS/Linux |
Terminal Multiplexers
# tmux basics
tmux new -s mysession # Create session
tmux ls # List sessions
tmux attach -t mysession # Attach to session
# In tmux:
Ctrl+b " # Split horizontal
Ctrl+b % # Split vertical
Ctrl+b arrow # Navigate panes
Ctrl+b c # New window
Ctrl+b d # Detach
Conclusion
Open source tools offer powerful capabilities without licensing costs. The tools in this guide represent the core of a productive development environment.
Comments