---
title: "AI Tools Primer (@aitoolsprimer) | Hashnode"
description: "Independent guides to AI tools and everyday software. Every price and limit is checked before it is published."
url: "https://hashnode.com/@aitoolsprimer"
---

@aitoolsprimer

# AI Tools Primer

@aitoolsprimer · Palermo, Italy · Joined August 2026

Independent guides to AI tools and everyday software. Every price and limit is checked before it is published.

[Website](https://aitoolsprimer.com/)

### [openpyxl: every cell is already locked, and that does nothing until the sheet is protected](https://aitoolsprimer.hashnode.dev/openpyxl-every-cell-is-already-locked-and-that-does-nothing-until-the-sheet-is-protected?utm_source=hashnode&utm_medium=feed)

If you generate Excel files with openpyxl and want some cells to be read-only, the library behaves exactly like Excel does, which is the part that trips people up. Every cell is already locked, and th

4 min read · [aitoolsprimer.hashnode.dev](https://aitoolsprimer.hashnode.dev/openpyxl-every-cell-is-already-locked-and-that-does-nothing-until-the-sheet-is-protected?utm_source=hashnode&utm_medium=feed)

[Oct 20](https://hashnode.com/posts/openpyxl-every-cell-is-already-locked-and-that-does-nothing-until-the-sheet-is-protected/6ad7cb4949a1732434475dd9)

### [openpyxl Drop-Downs Accept Anything by Default: showErrorMessage Is False](https://aitoolsprimer.hashnode.dev/openpyxl-drop-downs-accept-anything-by-default-showerrormessage-is-false?utm_source=hashnode&utm_medium=feed)

openpyxl defaults to showErrorMessage=False, so a generated Excel drop-down accepts any value. The one-line fix, and a check for files.

4 min read · [aitoolsprimer.hashnode.dev](https://aitoolsprimer.hashnode.dev/openpyxl-drop-downs-accept-anything-by-default-showerrormessage-is-false?utm_source=hashnode&utm_medium=feed)

[2](https://hashnode.com/posts/openpyxl-drop-downs-accept-anything-by-default-showerrormessage-is-false/6ad007e993cd1dc6a67521ca) [Oct 14](https://hashnode.com/posts/openpyxl-drop-downs-accept-anything-by-default-showerrormessage-is-false/6ad007e993cd1dc6a67521ca)

### [The One HTTP Request Behind Windows' "No Internet" Icon, and a 40-Line Script That Sends It Too](https://aitoolsprimer.hashnode.dev/the-one-http-request-behind-windows-no-internet-icon-and-a-40-line-script-that-sends-it-too?utm_source=hashnode&utm_medium=feed)

What NCSI asks, what it expects back, and how to tell a captive portal from a proxy from a dead route with bash and curl

4 min read · [aitoolsprimer.hashnode.dev](https://aitoolsprimer.hashnode.dev/the-one-http-request-behind-windows-no-internet-icon-and-a-40-line-script-that-sends-it-too?utm_source=hashnode&utm_medium=feed)

[Oct 1](https://hashnode.com/posts/the-one-http-request-behind-windows-no-internet-icon-and-a-40-line-script-that-sends-it-too/6abecf32d6650aa762e115ed)

### [A YouTube Short With No Video Editor: Pillow Slides and One ffmpeg Command](https://aitoolsprimer.hashnode.dev/a-youtube-short-with-no-video-editor-pillow-slides-and-one-ffmpeg-command?utm_source=hashnode&utm_medium=feed)

Seven Pillow slides, one ffmpeg xfade chain and a silent audio track: how to build a 30-second YouTube Short with no video editor.

4 min read · [aitoolsprimer.hashnode.dev](https://aitoolsprimer.hashnode.dev/a-youtube-short-with-no-video-editor-pillow-slides-and-one-ffmpeg-command?utm_source=hashnode&utm_medium=feed)

[Sep 22](https://hashnode.com/posts/a-youtube-short-with-no-video-editor-pillow-slides-and-one-ffmpeg-command/6ab2e19a04fd0f3b602f4d90)

### [An Unrequested 2FA Code Is a Log Line You Can Read](https://aitoolsprimer.hashnode.dev/an-unrequested-2fa-code-is-a-log-line-you-can-read?utm_source=hashnode&utm_medium=feed)

An unrequested verification code proves a request happened, nothing more. The signal is frequency, not wording - and what login flows should send instead.

4 min read · [aitoolsprimer.hashnode.dev](https://aitoolsprimer.hashnode.dev/an-unrequested-2fa-code-is-a-log-line-you-can-read?utm_source=hashnode&utm_medium=feed)

[Sep 15](https://hashnode.com/posts/an-unrequested-2fa-code-is-a-log-line-you-can-read/6aa99e451379737ba393d571)
