A self taught / self employed full stack developer focused on building and deploying web apps. I openly write about and make videos on just about everything I've learned along the way.
https://nickjanetakis.com/
Submissions
How to Back Up PostgreSQL in Docker (Local, S3, and Plakar)
nickjanetakis.com
4 points·by nickjj··0 comments
Visually Create Video Clips with mpv, FFmpeg and a Lua Extension
nickjanetakis.com
1 points·by nickjj··0 comments
DotFriedRice: Niri / Arch Linux Desktop Environment with Modern CLI Tools
github.com
2 points·by nickjj··0 comments
Niri 26.04: Scrollable-tiling Wayland compositor
github.com
253 points·by nickjj··87 comments
Improved Git Diffs with Delta, Fzf and a Little Shell Scripting
nickjanetakis.com
175 points·by nickjj··42 comments
Quickly Get Your Local and Public IP Address from the Command Line
nickjanetakis.com
2 points·by nickjj··1 comments
Mpv Is the MVP of Video and Image Viewing
nickjanetakis.com
3 points·by nickjj··0 comments
Wayland Compatible Annotated Screenshots with slurp, grim and satty
nickjanetakis.com
1 points·by nickjj··0 comments
How Is Niri This Good? Live Demo and Config
nickjanetakis.com
2 points·by nickjj··0 comments
GPU Memory Allocation Bugs with Nvidia on Linux and Wayland Adventures
nickjanetakis.com
3 points·by nickjj··2 comments
Ask HN: How are you using Nvidia cards on Linux with its VRAM issues?
2 points·by nickjj··4 comments
Why Is Video Editing So Bad on Linux Compared to Windows with Camtasia?
nickjanetakis.com
2 points·by nickjj··0 comments
Walker [Linux]: Fast and highly customizable multi-pupose launcher
github.com
2 points·by nickjj··1 comments
Converting My 500 Page Blog from Jekyll to Hugo
nickjanetakis.com
1 points·by nickjj··0 comments
Processing Lines of Output in a Loop with Your Shell Can Be Slow
nickjanetakis.com
1 points·by nickjj··0 comments
Show HN: Plutus is a CLI tool for income and expense tracking
github.com
4 points·by nickjj··0 comments
Using BenQ's latest 32" 4k monitor (RD320U) which is aimed at programming
nickjanetakis.com
35 points·by nickjj··38 comments
Over 120 Skills I Use in an SRE / Platform / DevOps Developer Position
nickjanetakis.com
1 points·by nickjj··0 comments
Never Underestimate Support and Knowing Your Customer
> With Ghostty my only option is to maintain different config files per machine.
This turns out to be a benefit IMO.
Ghostty supports include files. You can have all of your shared config in 1 main config and then have small files that are included which are machine specific. My dotfiles uses it and it supports Linux and macOS. Example: https://github.com/nickjj/dotfriedrice/blob/master/.config/g...
You can have something like this in your Ghostty config: config-file = ?config.local
And then on each machine that's different, you can have your machine specific config in ~/.config/ghostty/config.local or whatever you decide to name the file.
It works out nicely because config options are merged, so the local file can overwrite what's in the main config. This lets you deviate from the original git committed config without needing to modify it. Super handy for public dotfiles.
What you end up with is a config file that's natural to read with no prior knowledge about anything and if you want to look something specific up, you know it's officially documented and not some home grown pattern someone created. There's a certain amount of comfort and stability you get with a "what you see is what you get" approach.
I never felt like I needed variables, conditions, functions or loops with niri's config.
My main desktop machine with assorted components is from 2014, also with an SSD and HDD. Each component has lasted all this time somehow. The total uptime of each drive is 11.5 years (101,023 hours) with 159 power cycles. The SSD is 256 GB and has 71 TB written, it's my main drive. It has 46% lifetime remaining, I hope everything lasts another 10+ years.
I like how efficient Arch is, in the sense that you have nothing and now you get to pick and choose what you want.
My main desktop I use for full time software development and video editing is from 2014. I've run Windows on it forever. I put Arch on it ~8 months ago.
A full desktop environment I put together based on niri boots at 1.1 GB of memory. Every app I want is installed (tons of CLI tools, various GUI tools, Docker, video editors, browser, etc.) all together comes in at 10 GB of disk total for everything based on what `df -h` says for my root partition.
My machine does have 16 GB of memory so I'm not pressed for memory, but it's nice to know the machine runs on a system designed to not be bloated.
After switching from Windows 10 Pro, it felt like I got a hardware upgrade. Things open faster and generally speaking everything just feels snappier.
As an aside, it was super fun spending a few days setting everything up in a repeatable way which I've now replicated on a number of systems with https://github.com/nickjj/dotfriedrice.
Back when selling online tech courses was viable (pre-AI), about 30% of transactions in the US were from folks using PayPal on the platform I used. There's a huge of people who use PayPal, it's even more outside of the US.
I'm not sure I like this idea. Braintree is a legit competitor to Stripe. I'm guessing they have some informal agreement to keep transaction fees about the same but if they become 1 company, what's to stop Stripe from raising fees even more?
I'm not a fan of either to be honest, PayPal once told me I was wrong with something related to taxes and a bunch of different reps told me what I was saying and reported was impossible. Their tax division specialists also replied by email with big bold red letters outlining how it's not possible and that I'm wrong multiple times. They were contacted through support cases I opened with other reps on the phone since they aren't directly accessible on phone.
Then I said I was canceling my account with them if this wasn't resolved since it would have resulted in me needing to pay $400 to have my taxes amended. Long story short, after being ghosted for 3 months they replied to me saying I was right and they indeed had the impossible problem, then fixed their tax forms a week before taxes were due.
It's really bad that a random person on the internet discovered a huge issue with one of their partners and their instinct was to require ~10 hours of back and forth phone calls, multiple emails, me giving them the likely problem and solution on day 1 only to be lead on and ignored for months until the very last second.
Carmack always seemed to have a really strong idea on what was important for him to work on. How much of that is mental toughness vs having a believable purpose?
Believable is important because you have to internally 100% without a doubt believe that what you're doing is the right thing to be doing now.
As soon as the "what ifs" starts to creep in for the big picture items or goals, that can destroy everything. I'm not talking about running into technical implementation problems along the way (those can be fun), it's more like "did I pick the right language for this?" level of questions that sit in the back of your mind.
Personally when I find something to work on that I like and will have what I think is a favorable outcome, it's easy to put in 8-10 real 100% laser focused hours into a task every day, even if it spans weeks or months. I'd like to think most people can do this too, the hard part (for me at least) is having these things to work on.
Nope, but Debian does use systemd by default so it's there.
I'm running Arch Linux and /etc/machine-id is present.
There's also an optional /etc/machine-info file that could exist. It's not a part of systemd and won't be created by default. It's more of an informal way to have details about the system in 1 spot. It was more popular when provisioning bare metal servers but still has value in the cloud. You can have key / value pairs on who to contact, where it's located, what type of machine it is, etc..
> I don’t have a dog in this fight but it seems you’re not accounting for iteration and feedback
You can provide AI official sources to look at and dozens of prompts. I've lost track of the number of times where it didn't arrive at the right answer with tons of opportunities to correct itself based on feedback.
Just an endless of sea of "you're absolutely right to have brought that up, I didn't think about that" and other phrases it constantly uses when it fails to provide a solution. Fast forward 20 minutes later and it starts providing the same nonsense it did at the beginning because it forgot what it already said.
The code solutions it provides are so consistently bad but it's not limited to code. I recently tried a YouTube feature where it can generate AI thumbnails from your video. The results were really lackluster. It completely ignored my feedback like "use a real webcam photo of me that you see in the video", to which the AI recreated a completely different looking human that wasn't me. It even swapped out my real glasses with a rendering of glasses I don't have and kept on making incorrect assumptions about everything. After about 10 prompts and 20 minutes of waiting for thumbnails I gave up, it was really poor.
> Some devs just 'get it' and thrive, leading a team really well and building a great culture.
I don't think it's this because the outcome you get from AI isn't controllable. You can give it the best prompts and design suggestions and it'll still give you completely wrong or horribly written code.
If you were a manager and one of your reports kept producing completely wrong and horribly written code that other folks on the team keep bringing up as problematic in PR reviews or privately, that developer would eventually be fired for someone better.
But in the AI case, there is no replacement because all of the LLMs have severe problems.
I'm really sad to see this happen to another fellow course creator.
I'm not sharing this to steal any thunder, but more to relate:
I've been making video programming courses since 2015 on Flask and Docker. Built up a whole business of doing contract work + courses. Released 500+ blog posts and YouTube videos for free to help share what I learned with no strings attached, but had the courses available for sale if anyone wanted to learn more or support my work. Organic search traffic and word of mouth was 99% of my traffic.
I sustained myself for a decade and I was living what I would consider my best life. I never made a ton of money but I got the flexibility to work on what I wanted and it was amazing hearing stories about the courses helping someone change their life for the better. Countless emails of people turning their life around by building things to help them and their families. Hundreds of success stories.
I also noticed an insane drop off around 2023 and by now in mid-2026, it's dead. I literally haven't sold 1 course in 40 days, not even 1. At this point I'm spending thousands a year just to host them out of pocket. Traffic to everything is down over 10x, etc..
I saw the writing on the wall a few years ago and I ended up doing full time work instead but I still post every week.
All that to say, I don't know what to do. I tried everything I could think of. Even did a 2 year weekly podcast in a related field and it yielded close to nothing, despite a number of folks emailing me saying it was their favorite podcast on DevOps / software development.
All I can say is, this really sucks. Our life's work has been gobbled up by trillion dollar companies and sold where we see nothing of it. I had to change my entire life around. I've gone back and forth on just deleting everything or at least putting it all behind a free sign up to stop AI but that doesn't feel right to the actual humans out there.
The real sad thing is internally, there's an endless number of courses I could make. This isn't anywhere near me wanting to stop. I have a ton more things to share. It's just impossible (for me at least) to move forward on it because these things take time and to be able to survive in this world you need money.
> If you need the original email for legal/evidence purposes, you can back it up first, either through Gmail or Unattach.
Yes, that was covered in the other thread. Presenting a backup as evidence has a lot less strength than the original.
If the other person doesn't have the email (they deleted it) and you don't have the original because Unattach deleted it to replace it with a different copy then we're only left with an offline backup on 1 person's machine. Who's to say that offline backup wasn't tampered with (modifying headers, etc.)?
I don't know if it can be used with total confidence because that HN thread makes it sound like they delete the original email and create a new email with the same meta data but some of the comments indicate that's not quite the same as the original. If you had to present this email as evidence, you could run into friction since the original no longer exists. Technically it looks like you can back the original up but as someone mentioned in a comment that seems like it would add a lot of friction in a legal case.
I have no intent on ever needing to use old emails with large attachments in a legal case but knowing this could be a problem makes me hesitant. Although on the bright side, it would be fine to use for anything you 100% know won't ever be used legally.
I'd love to somehow do the opposite of this but I don't think it's possible? It would be deleting attachments from emails without deleting the email thread.
For example I'm always 1-2 GB away from my Google account being full. I've pruned Google Drive to the absolute bare minimum.
I've had my Google account for a really long time. There's tens of thousands of emails since day 1. However, there's many emails that have attachments.
For example my friends or someone might have sent me a bunch of images and there's a very long email thread going on with them. I want to delete the 300 MB of photos without deleting the email thread. I don't think Google has a way to do this. I'd easily be able to free up multiple gigs of space if this were possible.
I've already bit the bullet and deleted the biggest offenders but I have a ton of emails with 1-2 attachments (pdfs, zip files, some images, etc.) that might "only" be 15 MB but I definitely don't want to delete the email since it has a record of something. Not just the attachment but the corresponding email chain.
I remember reading somewhere that one of many long life markers is if you can go from sitting on your butt straight into standing without your hands or knees touching the floor.
I've been keeping my desktop machines running 24/7 for ~25 years. I only reboot when necessary.
I remember having around 280 days of uptime on Windows 7 when it went end of life. Having a UPS helps a lot to protect against short power outages or blips.
Nowadays I run Arch Linux, it's been 12 days since a reboot. Not trying to break records, I reboot to apply kernel updates when it's convenient. Since I use tmux and have terminal heavy workflows it takes 1 command and a few seconds to resurrect all of my sessions to get back to where I was at before.
A self taught / self employed full stack developer focused on building and deploying web apps. I openly write about and make videos on just about everything I've learned along the way.
https://nickjanetakis.com/