All blogs / DevOps / SRE / infrastructure
From Development to Production on Nick Janetakis
If I'm not building or deploying web apps, then I'm writing about what I've learned along the way. From development to production.
DevOps / SRE / infrastructureLinux / UnixDev tools / editors / IDEs
- Posts
- 612 from 30 May 2023 to 27 Oct 2026
- Posting
- weekly (50 in the last year)
- Kind
- personal blog
- Feed
- https://nickjanetakis.com/atom.xml
2026 41
- Docker Captain's Summit in Mexico
- Configure Walker So You Can Move It with Your Mouse in niri
- Combine Multiple Videos Together with FFmpeg Without Re-Encoding
- Replace Docker Access Tokens in GitHub Actions with an OIDC Connection
- Lock Your Mouse Cursor to a Specific Monitor with niri
- Parse Wildcard Arguments in Bash
- The Real Reason I Like niri and Vim
- Instantly Scale Your Monitors with niri
- Checklist Before Formatting Windows
- Using Your Monitor as a Key Light with Bash and a Wallpaper Tool
- Getting PagerDuty's Latest vCard with curl and awk
- SMART Stats for Your SSD and HDD on Linux, macOS and Windows
- How to Back Up PostgreSQL in Docker (Local, S3, and Plakar)
- Customize Tumbler's Thumbnail Entries on Arch Linux
- Watch Out for Data Loss When Redirecting to a File in a Shell Script
- Install Docker on Arch Linux with and Without Docker Desktop
- Visually Create Video Clips with mpv, FFmpeg and a Lua Extension
- Prevent Kdenlive from Producing Millions of Log Lines on Linux
- tmux: Swapping Windows and Rotating Panes
- 8 Useful Ways to Configure Your Zsh History
- Remap a Second Mod Key in niri's Config Without Extra Tools
- Locked Out of Sudo on Arch Linux? Skip the 10 Minute Wait
- DotFriedRice: niri / Arch Desktop Environment with Modern CLI Tools
- Walking Through a Minimal Arch Linux Set Up with archinstall
- Create Bootable Arch USB on Linux / macOS with cat (Rufus on Windows)
- Combine Tmux, btop and a GPU Monitoring Tool for System Monitoring
- Differentiate Between an Empty or Unset String Variable with Bash — Nick Janetakis
- Custom dmenu / fzf Picker to Set Your Timezone with Geolocation — Nick Janetakis
- Bash Nameref: Mutate Function Arguments (Pointer-Like Behavior) — Nick Janetakis
- Awesome Git Diffs with Delta, fzf and a Little Shell Scripting — Nick Janetakis
- Quickly Get Your Local and Public IP Address from the Command Line — Nick Janetakis
- A Shell Alias for Getting Outdated Packages in Arch, Debian and macOS — Nick Janetakis
- mpv Is the MVP of Video and Image Viewing — Nick Janetakis
- Fix Input Device Is Not a TTY with Docker Compose in CI — Nick Janetakis
- Using Command Groups to Sort Multiple Commands in a Shell Script — Nick Janetakis
- Day to Day Window Management Workflows and Why I Picked niri — Nick Janetakis
- Wayland Compatible Annotated Screenshots with slurp, grim and satty — Nick Janetakis
- Trigger Your GPG Passphrase and Clear Your Agent's Cache — Nick Janetakis
- Screen Sharing with niri, Including Specific Regions with OBS — Nick Janetakis
- How Is niri This Good? Live Demo + Config — Nick Janetakis
- GPU Memory Allocation Bugs with NVIDIA on Linux and Wayland Adventures — Nick Janetakis
2025 51
- Linux Dev / Productivity Environment on Windows with WSL 2 and Docker — Nick Janetakis
- Fix Open Terminal Failed Error with tmux — Nick Janetakis
- Assign an AHK Global Hotkey to Send Text or Copy It to Your Clipboard — Nick Janetakis
- Why Is Video Editing So Bad on Linux Compared to Windows with Camtasia? — Nick Janetakis
- Using sed to Print Specific Lines in a File — Nick Janetakis
- Docker Captain's Summit in Istanbul — Nick Janetakis
- Pipe or Redirect Case Statement Result in a Shell Script — Nick Janetakis
- Redirect Multiple Commands or an Entire Script to a File — Nick Janetakis
- Bash + Awk + fzf to Manage Arch Packages — Nick Janetakis
- Docker Hub Immutable Tags — Nick Janetakis
- Get Install Size of a Package with Pacman and Apt — Nick Janetakis
- Build Docker Images in a Git Repo but Only Committed Changes — Nick Janetakis
- How to Fix Neovim Markdown Preview Failing to Open in WSL 2 — Nick Janetakis
- Use git push origin HEAD to Quickly Push the Checked Out Branch — Nick Janetakis
- Custom File Type Syntax Highlighting with Neovim — Nick Janetakis
- My Neovim / LazyVim Config and Demo — Nick Janetakis
- Why I Switched from Vim to Neovim / LazyVim and How I Did It — Nick Janetakis
- Prevent Tmux from Starting a Login Shell by Default — Nick Janetakis
- CLI Tools That Support Previews, Dry Runs or Non-Destructive Actions — Nick Janetakis
- Using a Dedicated Hadolint Config File — Nick Janetakis
- Things to Think About When Dockerizing Your App — Nick Janetakis
- Modify Lualine in Neovim to Show Word Count and Reading Time — Nick Janetakis
- Stage Specific Lines Using Git Add Patch (Edit) — Nick Janetakis
- Why I Like Using Docker Compose in Production — Nick Janetakis
- Read /proc/net/tcp If ss, nc, netstat, telnet and curl Aren't Installed — Nick Janetakis
- Undo, Remove or Revert Specific Git Commits — Nick Janetakis
- Search for Emojis Using ripgrep or grep with a Regex — Nick Janetakis
- Switching pip to uv in a Dockerized Flask / Django App — Nick Janetakis
- Fix Garbled Copied Text with Tmux-Yank in WSL 2 — Nick Janetakis
- Networking Basics with Docker Compose — Nick Janetakis
- How to Find Your WSL 2 Profile ID (GUID) — Nick Janetakis
- Your OS' Keyboard Repeat Delay and Rate Settings Are Worth Changing — Nick Janetakis
- Switching VcXsrv for WSLg to Get Clipboard Sharing in WSL 2 — Nick Janetakis
- Add ANSI Colors to Your Shell Scripts Using echo, printf and heredocs — Nick Janetakis
- Converting My 500+ Page Blog from Jekyll to Hugo — Nick Janetakis
- Hooking Up fzf with zsh Tab Complete and Filtering Related History — Nick Janetakis
- Running Commands in All tmux Sessions, Windows and Panes — Nick Janetakis
- Shrink Your Docker Images by ~50% with Multi-Stage Builds — Nick Janetakis
- Capitalize the First Letter in a String or Make It Lowercase in Bash — Nick Janetakis
- Put All of Your Tmux Configs and Plugins in a .config/tmux Directory — Nick Janetakis
- Using Extended Globbing for Patterns in Bash — Nick Janetakis
- 3 Ways to Get a File's Extension When Writing a Shell Script — Nick Janetakis
- Insert Text Above / Below a Match with sed — Nick Janetakis
- git diff Can Be Used Outside of a Git Repo and It Has Useful Features — Nick Janetakis
- Processing Lines of Output in a Loop with Your Shell Can Be Slow — Nick Janetakis
- Plutus Is a Command Line Income and Expense Tracker — Nick Janetakis
- Docker Tip #102: Tracing a Docker Image's Dockerfile — Nick Janetakis
- Combine grep and sed to Recursively Replace Text in a Pattern of Files — Nick Janetakis
- Only Return the First Match with Grep — Nick Janetakis
- Find and Replace Strings with Bash — Nick Janetakis
- Disable Your Keyboard So You Can Clean It — Nick Janetakis
2024 53
- Undo Git Commit Amend So You Can Make a Separate Commit — Nick Janetakis
- Check If Files Are Modified or Untracked Using git ls-files — Nick Janetakis
- Docker Tip #101: Fix Exec Format Error Due to CPU Architecture Mismatch — Nick Janetakis
- Call a Dynamically Created Function Name in a Shell Script — Nick Janetakis
- Stop tmux-yank from Scrolling Down After Copying Text with Your Mouse — Nick Janetakis
- Using git bisect to Help Find Which Commit Broke Something — Nick Janetakis
- A Number of Build a SAAS App with Flask Course Updates — Nick Janetakis
- BenQ RD320U 32 inch 4k Monitor for Programming — Nick Janetakis
- Using Nested Default Variable Values in a Shell Script — Nick Janetakis
- Customize ls Output to Not Show the Date — Nick Janetakis
- Open WSL 2 Files and Directories with Windows Programs — Nick Janetakis
- Benefits of Running Your CI Tests on a Daily Schedule — Nick Janetakis
- Docker Tip #100: Should You Use Image Digests in Your Dockerfile? — Nick Janetakis
- Replace Kustomize commonLabels, patchesJson6902 and patchesStrategicMerge — Nick Janetakis
- Using NGINX Regex Capture Groups to Redirect URL Paths — Nick Janetakis
- Debugging a Container Error When It Produces No Log Output — Nick Janetakis
- Inspect the Stats and Get a Status Report of Your Celery Workers — Nick Janetakis
- Open Multiple Files at Once with FZF and Vim — Nick Janetakis
- Solving Random Business Problems with Command Line Tools — Nick Janetakis
- Docker Tip #99: Prefer Using compose.yaml over docker-compose.yml — Nick Janetakis
- Grade Your Docker Images with Docker Scout Health Scores — Nick Janetakis
- Filter ripgrep's Results When You Don't Have a Git Repo — Nick Janetakis
- Show Trailing Whitespace in Markdown Files with vim-better-whitespace — Nick Janetakis
- Using Curl to Create a Telnet Connection — Nick Janetakis
- Check If a String Contains a Substring in Bash — Nick Janetakis
- Display the Search Count in Vim's Status Bar — Nick Janetakis
- What Was the First Docker Captain's Summit Like? — Nick Janetakis
- Docker Tip #98: Nested Variable Interpolation with Docker Compose v2 — Nick Janetakis
- Creating Dynamic Variables in Bash — Nick Janetakis
- The Butterfly Effect of Having a Technical Blog for 9+ Years — Nick Janetakis
- Randomly Order Lines on the Command Line with sort or shuf — Nick Janetakis
- Doing Calculations on the Command Line with the bc Tool and Your Shell — Nick Janetakis
- Mount Secure Build-Time Secrets with Docker and Docker Compose — Nick Janetakis
- Setting Up the Password Store (Pass) App to Work with Android 13+ — Nick Janetakis
- clear vs CTRL + L in Your Shell — Nick Janetakis
- It's OK to Sleep — Nick Janetakis
- Output, Assign, Pipe and Redirect a Heredoc in a Shell Script — Nick Janetakis
- 120+ Skills I Use in an SRE / Platform / DevOps Developer Position — Nick Janetakis
- Setting Up a TCP Listener and Connecting to It with Netcat — Nick Janetakis
- Connect to a Service Running on Your Docker Host from a Container — Nick Janetakis
- My Origin Story with Docker and Why I'm Using It 10 Years Later — Nick Janetakis
- Git Diff 2 Different Commits, Tags or Branches — Nick Janetakis
- Docker Tip #97: Save and Load Docker Images from a Zip File — Nick Janetakis
- Create Read-Only AKA Immutable Variables in Bash — Nick Janetakis
- Wait for Input in a Graphical Code Editor in a Shell Script — Nick Janetakis
- Build Git Tagged Multi-Arch Docker Images with GitHub Actions — Nick Janetakis
- Build Multi-CPU Architecture Docker Images with Buildx — Nick Janetakis
- Hiding User Input in a Shell Script — Nick Janetakis
- Never Underestimate Support and Knowing your Customer — Nick Janetakis
- Color Your Shell Prompt Red If the Last Command Threw an Error — Nick Janetakis
- Difference between Double Ampersand and Semicolon in a Shell Script — Nick Janetakis
- Troubleshooting Steps for When a Vim Plugin Is Not Working — Nick Janetakis
- Docker Tip #96: See How Long a Container Ran For — Nick Janetakis
2023 31
- Automate Suspending Kubernetes Cron Jobs with find and sed — Nick Janetakis
- Getting Celery to Work with Python 3.12 and Flask 3.0 — Nick Janetakis
- Get the MD5 Hash of a File with OpenSSL — Nick Janetakis
- Git Cherry Pick Examples to Apply Hot Fixes and Security Patches — Nick Janetakis
- Help Find and Remove Hard Coded Passwords and Secrets in a Project — Nick Janetakis
- Count All Git Commits in a Repo — Nick Janetakis
- Customize FZF's CTRL + T Binding with FZF_CTRL_T_OPTS to Preview Files — Nick Janetakis
- Validate File Types by Reading the First Few Bytes of a File — Nick Janetakis
- Get Video Duration in Seconds Using FFmpeg / FFprobe — Nick Janetakis
- Install the Latest Version of Docker Compose v2 — Nick Janetakis
- Delete Lines That Match a Pattern or the Opposite Pattern Using sed — Nick Janetakis
- Expand Tilde to Home Directory When Reading User Input in Bash — Nick Janetakis
- Modifying Shell Arguments with the set Command — Nick Janetakis
- Ignore Sudo in a Shell Script If You're Running as Root — Nick Janetakis
- Reduce Docker Images by 20 MB by Verifying APT Packages without gnupg — Nick Janetakis
- Never Underestimate Making Pull Requests to Update Documentation — Nick Janetakis
- Beware of Dangling Backslashes in RUN Commands in Your Dockerfile — Nick Janetakis
- Binding to Low Ports as a Non-root User with Docker and Kubernetes — Nick Janetakis
- Delete Empty Directories on the Command Line with Find — Nick Janetakis
- Optional depends_on with Docker Compose v2.20.2+ — Nick Janetakis
- Docker Tip #95: Check If Your App Is Running in Docker or Kubernetes — Nick Janetakis
- Monitor the Output of a Program for Changes Using the Watch Command — Nick Janetakis
- Wrap Text to X Characters on the Command Line with fold or fmt — Nick Janetakis
- What I Learned about Payment Systems While Working at a Pizza Place — Nick Janetakis
- Deleting Specific Lines in a File with sed or yq — Nick Janetakis
- Pretty Print JSON in Your Terminal with jq or Python — Nick Janetakis
- Creating Checklists for High Stakes Changes — Nick Janetakis
- How to Use Pass Which Is a Command Line Password Manager — Nick Janetakis
- Required vs Optional Environment Variables for Safer Deploys — Nick Janetakis
- How to Approach Solving a Difficult or Vague Programming Problem — Nick Janetakis
- Flask Nested Blueprints Example — Nick Janetakis
Undated 436
- Detect if a shell script is being executed or sourced
- Using trap to run a command after your shell script exits
- Clearing and restoring your current and saved shell history with zsh
- How would you improve this shell script
- Check when a server was shutdown or reboot with who uptime and last
- Create parent directories with curl using the create dirs flag
- A few examples of using brace expansion with bash
- Recursively print files with their path using find cat or tail
- Moving a bunch of shell alias functions into their own script files
- Git restore all unstaged and untracked files back to their latest commit
- Parse command line positional arguments and flags with bash
- Splitting strings by a delimiter with ifs and bash string replace
- Create video clips with ffmpeg in seconds
- Django 4 1 html templates are cached by default with debug true
- Lessons learned from rerolling 60 production credentials
- Using a custom ssh key to access a private git repo
- Using curl with multiline json data
- Quickly check if an online image is really transparent or not
- Associative arrays in bash aka key value dictionaries
- An alias to create shell scripts
- A guide for running rails in docker
- A few examples of using the tee command
- Switching from an rsa ssh key to ed25519 on ubuntu 2204
- Passing exported env vars into a docker container without an env file
- How to secure your notes and home network when using a company laptop
- A dropdown menu using stimulus and tailwindcss with escape key support
- Install docker in wsl 2 without docker desktop
- Delete old or unused local git branches using grep and xargs
- Self host and preview emails locally with mailcatcher open source
- Automatically sort your python imports in flask and django with isort
- How i almost took down production due to a near empty config file
- Adding docker compose logs to your ci pipeline is worth it
- Search all of your git history for code and commits with 2 commands
- Running docker containers as a non root user with a custom uid and gid
- Allow 2 users to be able to share a linux directory with 2755 vs 0755
- Using dockers v2 api to get a list of tags with the help of jq
- Docker tip 94 docker compose v2 and profiles are the best thing ever
- Docker tip 93 remove the env file property from postgres and redis
- Finding an ansible bug on apt pinning and installing docker compose v2
- Test specific http status code responses with httpstatus
- Counting all git commits from all authors and more with git shortlog
- Beware of piping echo into base64 on the command line
- Git diff has a quiet flag to halt a script if a file was updated
- Create an ip address allow list with cidr block support in python
- Using the cut command to parse a csv file by delimiters and characters
- Pick 1 of 2 items randomly with a weighted percent in python and ruby
- Add a git branch to your prompt with a few lines fo shell scriptingt
- Git diff staged will diff files you have staged vs what is commit
- Docker tip 92 rolling back to a previous docker desktop version
- Reselect your last selection in vim with gv
- Measuring redis network latency and the stability of your server
- Using a google app password to send emails in development with flask
- Prevent unset variables in your shell bash scripts with set nounset
- Shellcheck x flag lets you source files without sc1091 warnings
- From a written problem to pseudo code to working code python
- How i quickly find answers to problems and research new things
- Test if your shell scripts are posix compliant with shellcheck
- Squashing git commits locally without rebasing or merging a branch
- Respecting the cd or exit pattern suggested by shellcheck sc2164
- Failing in public when doing open source is not the end of the world
- Docker tip 91 exec into a container as root without sudo or a password
- Get better at reading documentation specifications and requirements
- Toggle boolean vim settigs with inv or an exclamation point
- Splitting out web app health check urls for basic and database checks
- A custom vim mapping to copy a buffers file path to your clipboard
- Docker tip 90 docker compose up is faster than stop up
- Using curl to check an ssl certificate expiration date and details
- Customizing topbar to add a delay before showing page loading progress
- Run parallel background commands in linux and wait until they complete
- Creating a twelve factor app with docker that also works on kubernetes
- Live coding a pull request on the terraform eks module documentation
- When to use long word or short letter command line flags
- Creating an esbuild plugin to efficiently copy static files
- Format paragraphs to 80 characters with vim no plugins needed
- Rails 7 switch webpacker with esbuild while using tailwind and docker
- Lcurl is a script to visit a site every x seconds using curl
- Get the last argument of the last run command in your shell with dollar underscore
- Fix a lets encrypt related expired root certificate on an old server
- Taking an indefinite break from the running in production podcast
- Live coding an update to my build a saas app with flask course
- Using browser bookmarks and tab groups to automate daily routines
- Docker tip 89 lint your dockerfile with hadolint
- Disable line numbers in ferns sidebar within vim
- Configuring a kind cluster with nginx ingress using terraform and helm
- Overcoming analysis paralysis as a software developer
- Remapping x and del in vim to not overwrite your clipboard
- Using string interpolation inside of phoenix heex template tags
- Docker tip 88 switching mysql to mariadb for arm 64 m1 support
- Using bash set x to help debug why a script is not working
- Start your tmuxt window and pane index count at 1 instead of 0
- Change your vim cursor from a block to line in normal and insert mode
- Temporarily ignore a shell alias by using a backslash
- Using fzf to preview text files on the command line and within vim
- Fixing an ansible lint no handler error in a multi condition task
- Live coding refactoring docker related files in a fastapi app
- I recently switched to zsh and created a dotfiles install script
- Why you should put braces around your variables when shell scripting
- Using envsubst to merge environment variables into config files
- Reviewing tailkit 300 tailwind components and giving away 2 copies
- Docker tip 87 run multiple docker compose files with the f flag
- A live demo of maintaining 6 open source docker example web apps
- What to do if you forgot to use sudo on the command line and vim
- Using ffmpeg to get an mp3s duration and 4 ways to get the file size
- Best practices around production ready web apps with docker compose
- A shell script to keep a bunch of dockerized example apps up to date
- Fix flask 2 warnings in flask login flask wtf and flask debugtoolbar
- Save and restore tmux sessions across reboots with tmux resurrect
- Bash aliases to prepare recording videos
- Comparing 3 ways to import multiple things from the same python module
- Shell script accepting user input heredocs in place edits and more
- 100 ways to solve a specific programming problem in 50 languages
- Reclaiming tons of diskspace by compacting your docker desktop wsl 2 vm
- Sort and reverse sort a selection of text or file in vim
- Tailwind jit compiler makes tailwind plus webpack faster in development
- Change a git commit in the past with amend and rebase interactive
- Using vims autocmd to set a custom file type for specific files
- Replacing make with a shell script for running your projects tasks
- Using vim test to run your tests with and without docker
- A python script to increment file names starting at a specific number
- How to record great sounding high quality audio at home
- Wrapping text in html tags with vim macros vim surround and pandoc
- Moving lines up and down in vim without using the clipboard
- A terminal tmux vim and fzf theme switching script written in python
- Making a human friendly changelog by following keep a changelog tips
- 3 practical examples of using bash while and until loops
- Improve tailwindcss 2 and webpack startup and reload times in dev
- For the time being 16gb of ram for web development works really well
- Using python and youtubes api to get comments from a youtube video
- Always on top lets you pin a window to the foreground
- Flask db helps you migrate seed and reset your sql database
- Signing and verifying git commits on the command line and github
- Creating and managing a gpg key pair
- Setting a custom webhook endpoint api version using stripe s api
- Using configuring and customizing vim spell check
- Grepping for characters you might accidentally added with vim
- Why i prefer running nginx on my docker host instead of in a container
- Talking with 52 devs about building deploying web apps and tech stacks
- 1 hour talk on creating a command line development environment
- Giving a text based slide presentation in vim without plugins
- Use twitters api and a few command line tools to pick a random reply
- A simple python web server to echo back http headers and data
- Generate a random secure password on the command line with pwgen
- Switching from nerdtree to fern for a vim tree view plugin
- At first i thought someone was trying to scam me out of my domain name
- Automatic mysql and postgresql backups with a shell script and cron job
- Using aws rekognition and python to identify objects and test in images
- Live coding a shell script to toggle dark mode for terminal tools
- Why your web server should log to stdout especially with docker
- Detecting if a directory is mounted or not useful for backup scripts
- 3 gotchas with wsl 2 around disk space memory usage and performance
- Open a file with multiple columns scrolled to specific lines with vim
- Create a health check url in your web app and monitor its uptime
- Transforming an idea from your brain into an open source project
- Using diff process substitution and pipes to solve a real problem
- Displaying database results across multiple columns with 1 line of css
- A linux dev environment on windows with wsl 2 docker desktop and more
- Wait until your dockerized database is ready before continuing
- Diff selections files directories and git history with vim
- Improving your page load speeds on any site with turbolinks
- Linting and improving your bash scripts with shellcheck
- Docker tip 86 always make your entrypoint scripts executable
- Using vim built in complete menu for autocompleting words
- Creating laser focused git commits using git add patch
- Taking advantage of using snippets with ultisnips and vim snippets
- Configuring gunicorn for development and production with env variables
- Sunsetting an open source project
- A docker compose override file can help avoid compose file duplication
- Evaluating and improving the quality of your code as a solo developer
- Using sed range patterns grep and tr to parse a changelog file
- An open source and fully offline browser based kanban board
- Maintaining an open source project from handling issues to releases
- Why and how i use vim plug to manage my vim plugins
- Fixing vim error e464 ambiguous use of user defined command
- Formatting seconds into hh mm ss with elixir and python
- Docker tip 85 define healthcheck in your docker compose file
- Live demo how to begin writing tests in an untested code base
- A few advantages of using webpack in your next project
- Organize your text based notes from the command line with this script
- Getting the html5 audio element working with jekyll in development
- Avoiding insert delay related problems around deleting with vim and tmux
- I use nerdtree in vim but it is usually not for opening files
- As developers it is ok to call it quits and make compromises sometimes
- Using python to help generate personalized email templates
- Lessons learned from building a podcast platform in 2 weekends
- Running in production podcast do you want to become a guest
- Make your static files production ready with flask static digest
- Add social share buttons to your static site without tracking
- You might not need a vim plugin to visualize line indents
- Resize and see how big any window is using a free tool called sizer
- Using flask blueprints to help organize and maintain your code base
- Listing docker tags on the command line using a bash alias
- Configuring wsltty which is my favorite windows wsl terminal
- Implementing 3 different website features with jekyll using includes
- I occasionally use affiliate links on my site
- Why the amazon basics keyboard is my favorite keyboard
- Upgrading a dockerized flask app from python 2 7 to python 3 7
- How i used the lxml library to parse xml 20x faster in python
- Docker tip 84 fixing obscure docker desktop daemon errors
- Learning a new web framework with question driven development
- 4 use cases for when to use celery in a flask application
- Find and replace text in 1 or more files using vim fzf and ripgrep
- Docker tip 83 stop docker containers by name pattern
- It is not a waste of time to learn a few languages or frameworks
- A python cli tool to help diff web framework versions
- Providing feedback to open source projects in a positive way
- Using tmux sessions windows panes and vim buffers together
- Manage and create diagrams of your sql database for free with dbeaver
- Protecting your code and ip when doing contract or freelance work
- Docker tip 82 using yaml anchors and x properties in docker compose
- Design your web uis faster by planning out each different state
- Learning a new and unfamiliar code base
- Live demo of planning a real world web application from scratch
- Calculate invoice amounts with bash as a freelance developer
- Docker tip 81 searching the docker hub on the command line
- Getting copy paste to work in wsl with tmux and terminal vim
- Writing and previewing markdown in real time with vim 8
- Using unix tools and bash to convert blog post titles part 2
- Using unix tools and bash to convert blog post titles part 1
- Getting productive with vim in a week without hating it
- Remap and set global hotkeys on windows 10 with auto hotkey
- Docker tip 80 waiting for detached containers to finish
- Launching wsl programs from a right click windows menu
- Docker tip 79 saving a postgres database in a docker image
- Vim is saving me hours of work when writing books and courses
- Docker tip 78 using compatibility mode to set memory and cpu limits
- I tried linux as my main dev environment but was forced back to windows
- Docker tip 77 installing docker on debian unstable
- Docker tip 76 where to put docker compose projects on a server
- Docker tip 75 how to avoid node modules in your volume mounts
- Docker tip 74 curl vs pip for installing docker compose
- Docker tip 73 connecting to a remote docker daemon
- A linux dev environment on windows with wsl docker tmux and vscode
- Conemu vs hyper vs terminus vs mobaxterm terminator vs ubuntu wsl
- Docker tip 72 when your dockerized apps suddenly stop working
- Generating fake data in development to populate your database
- Optimize your programming decisions for the 95 percent not the 5 percent
- My favorite vscode extensions and settings
- Docker tip 71 running local and ci tests for your applications
- Switching from conemu to hyper as a windows terminal
- Allowing for errors in bash when you have set e defined
- Docker tip 70 gain access to the mobylinux vm on windows or macos
- Docker tip 69 avoid running out of disk space from container logs
- How to transfer a domain name with zero downtime
- Here is why you should quote your variables in bash
- Debugging an idempotency related user group issue with ansible
- Docker tip 68 its ok not to use docker for everything
- Refactoring elixir code if cond and pattern matching
- Using print statements are a handy way to debug and explore code
- Fuzzy search your bash history in style with fzf
- Microservices are something you grow into not begin with
- Coming back to cloud field day for the second time
- Docker tip 67 incorrect username or password when pulling images
- Behind the scenes of debugging an error that i couldnt google
- Docker tip 66 fixing error response from daemon invalid mode
- How playing video games can teach you real life skills
- Docker tip 65 get your docker hosts ip address from in a container
- Executing code after an error occurs with bash when using set e
- Docker tip 64 dealing with unexplained docker errors
- Dealing with database migrations in a brand new project
- Docker tip 63 difference between an array and string based cmd
- Benchmarking debian vs alpine as a base docker image
- Docker tip 62 using 2 dockerfiles in the same compose project
- Using phoenix with webpack and docker
- Docker tip 61 difference betweeen docker create start and run
- Dealing with lock files when using ruby node and elixir with docker
- Docker tip 60 what really happens when you run docker compose up
- Best practices when it comes to writing docker related files
- Docker tip 59 difference between exposing and publishing ports
- Temporarily edit text on any website
- Docker tip 58 output all of your containers env variables
- 80 characters per line is a standard worth sticking to even today
- Docker tip 57 using build and image in the same docker compose service
- Enabling the flask interactive debugger in development with gunicorn
- Docker tip 56 volume mounting ssh keys into a docker container
- Running native applications in a browser with droplet computing
- Docker tip 55 creating read only containers
- Waking up to 1gb of free disk space on your primary ssd
- Docker tip 54 fixing connection reset by peer or similar errors
- A recycled ip address caused me to pirate 390000 books by accident
- Docker tip 53 difference between a registry repository and image
- How to get programming jobs when you have no experience
- Docker tip 52 referencing containers and images by their short ids
- Keeping yourself on track and avoiding burnout as a programmer
- Insert multiple cursors at the start of every line with vscode
- Docker tip 51 which docker compose api version should you use
- Using gnucash as a freelancer to track finances and prepare taxes
- Docker tip 50 running an insecure docker registry
- The cloud field day experience as a first time delegate
- Docker tip 49 important a database sql file with docker compose
- Theorycrafting a plan to improve public speaking
- Docker tip 48 list all changes performed in a container
- Flask libraries for building awesome real world restful apis
- Docker tip 47 build time vs run time env variables
- Enable http2 with nginx on debian jessie stretch and ubuntu 16
- Docker tip 46 using workdir to cleanup your dockerfile
- Was web development better back in the early 2000s
- Docker tip 45 docker compose stop vs down
- How to start and finish any web app project
- Docker tip 44 show total disk space used by docker
- Breaking down problems by prepending a dom element with jquery
- Docker tip 43 using the docker compose config command
- Setting up a python development environment with and without docker
- Docker tip 42 using docker for long running and one off tasks
- Why i have started to move my domains from internetbs to namesilo
- Docker tip 41 should you use virtualenv or rvm in your docker images
- Automatic offline file backups with bash and rsync
- Docker tip 40 running cron jobs on the host vs in a container
- Boosting software developer productivity with a clipboard manager
- Docker tip 39 installing docker ce on redhat rhel 7x
- Fixing exec format errors with docker entrypoint scripts on windows
- Docker tip 38 how to revoke your docker hub login token
- Access documentation from your code editor with dash or zeal
- Docker tip 37 what do links do in docker compose
- What is devops
- Docker tip 36 the difference between run and cmd in a dockerfile
- 2017 recap books read podcasts and goals
- Docker tip 35 connect to a database running on your docker host
- Should your next project be built as a serverless app
- Docker tip 34 should you use docker compose in production
- Docker swarm vs kubernetes which one should you learn
- Docker tip 33 should you use the volume or mount flag
- Switching to vscode from sublime text
- Docker tip 32 automatically clean up after docker daily
- 15 useful flask extensions and libraries that i use in every project
- Docker tip 31 how to remove dangling docker images
- Run the first edition of unix 1972 with docker
- Docker tip 30 running docker compose from a different directory
- Using wsl and mobaxterm to create a linux dev environment on windows
- Docker tip 29 containers cant access the internet check iptables
- Would socrates use docker today
- Docker tip 28 named volumes vs path based volumes
- Solve programming problems with rubber duck debugging
- Docker tip 27 setting a password on redis without a custom config
- Server side templates vs rest api and javascript front end
- Docker tip 26 alias and function shortcuts for common commands
- Setting up docker for windows and wsl to work flawlessly
- Docker tip 25 adding metadata to your docker images with labels
- How to accept email based payments for free as a freelancer
- Docker tip 24 docker ps vs docker container ls
- 4 major benefits of walking as a software developer
- Docker tip 23 docker compose vs docker stack
- Docker community edition vs enterprise edition and their release cycle
- Docker tip 22 checking the exit code of stopped containers
- Lets encrypt vs cloudflare for https
- Docker tip 21 measure your docker containers resources
- Ngrok lvhme nipio a trilogy for local development and testing
- Docker tip 20 running docker without sudo on linux
- Build your own 8x4 foot whiteboard for 15 dollars instead of 200
- Docker tip 19 how to ignore files from your docker images
- Configuring your code editor for docker
- Docker tip 18 please pin your docker image versions
- It doesnt matter what web framework you use just pick one
- Docker tip 17 breaking up long lines in your dockerfile
- 2 ways to name things better in programming
- Docker tip 16 redirect a containers file onto your docker host
- Differences between a dockerfile docker image and docker container
- Docker tip 15 opening and closing ports to the outside world
- Securing your website with https is more important than ever
- Docker tip 14 using docker doesnt mean going all in with automation
- How to move a site to a different domain without downtime or 404s
- Docker tip 13 get docker for windows and virtualbox working together
- A review of the https with lets encrypt course by mikael m
- How to convince your boss or manager to use docker
- Lessons learned from creating content on 2 sites instead of 1
- Docker tip 12 a much better development experience with volumes
- Should you use the docker toolbox or docker for mac windows
- Docker tip 11 solving docker problems as a docker beginner
- Automate installing docker and docker compose with ansible
- Docker tip 10 project structure with multiple dockerfiles and docker compose
- Get to know dockers ecosystem
- Docker tip 9 installing popular packages on alpine
- The 3 biggest wins when using alpine as a base docker image
- Docker tip 8 overriding your dockerfiles cmd
- Why i got started with docker
- Docker tip 7 the difference between run and cmd
- The tools i use
- Do you need to be a linux wizard to use docker in development
- Docker tip 6 installing docker on a chromebook
- How to quickly learn a new programming language or framework
- What does build ship and run any app anywhere really mean
- Docker tip 5 the benefits of using the same base docker image for all images
- Docker and ansible solve 2 different problems and they can be used together
- Docker tip 4 does your docker image os need to match your host os
- Understanding how the docker daemon and docker cli work together
- Docker tip 3 chain your docker run instructions to shrink your images
- 5 steps to take before moving your applications into docker
- Docker tip 2 the difference between copy and add in a dockerile
- Comparing virtual machines vs docker containers
- Docker tip 1 docker containers are isolated processes not virtual machines
- Docker empowers you by letting you use the best tools for the job
- The moby project is not docker trying to switch their brand
- Frustrated with programming language version managers ditch them for docker
- Debugging lets encrypt errors sometimes its not your fault
- Is docker worth learning
- Where did i go and whats happening next
- How to overcome procrastination with a 3 pronged attack
- How to pick a good monitor for software development
- Ancient babylonians may have invented irc 2000 years ago
- Who else wants to boost their productivity with tmux
- How to start a successful freelance business as a software developer
- Have you hit the point of diminishing returns as a developer
- Plain text and google keep is a killer combo for notes and organization
- Discover a new world of sound by upgrading your headphones
- Configure your code editor to be a very productive writing tool
- Are you a computer scientist or a code monkey
- I almost rage bought a macbook pro
- Breaking down problems is the number 1 software developer skill
- Learn how to schedule your time
- Transform a toshiba chromebook cb35 into a linux development environment with galliumos
- See how virtual desktops let you get more done in less time
- Schedules arent a constraint on life they let you live it
- Dockerize a rails 5 postgres redis sidekiq action cable app with docker compose
- Planning a trip to boston here is what i did for 5 days
- Fix missing csrf token issues with flask
- Dockerize a flask celery and redis application with docker compose
- Build a saas app with flask free sample videos
- Save yourself from years of turmoil by using docker today
- Alpine based docker images make a difference in real world apps
- 25 sublime text 3 packages for polyglot programmers
- Why sublime text 3 is still my preferred code editor
- Results after using a standing desk for 3 months
- Build a saas app with flask is getting a complete make over soon
- Recent changes to udemys pricing
- Managing your passwords on the command line in linux with pass
- Create an awesome linux development environment in windows with vmware
- Build a home made standing desk for 50 dollars in 10 easy steps
- Sennheiser hd 201 vs sennheiser hd 202 for budget death metal headphones
- Less than 24 hours on udemy as an instructor and i am close to leaving
- Interested in a docker course
- Deploy web apps with docker
- Build a saas app with flask part 5
- Build a saas app with flask part 4
- Manage your assets with flask webpack
- Build a saas app with flask part 3
- Build a saas app with flask part 2
- Build a saas app with flask part 1