<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>eshlox [Tech]</title><description>Personal blog by eshlox. Writing about software development, privacy, tools, and tech.</description><link>https://eshlox.net</link><item><title>Automatic tmux window names with just</title><link>https://eshlox.net/tmux-window-names-with-just</link><guid isPermaLink="true">https://eshlox.net/tmux-window-names-with-just</guid><description>Using just recipes to rename tmux windows based on the running task, then restore the name when the command exits.</description><pubDate>Wed, 08 Apr 2026 22:15:15 GMT</pubDate></item><item><title>Paste clipboard images as files with Hammerspoon</title><link>https://eshlox.net/clipboard-image-to-file-hammerspoon</link><guid isPermaLink="true">https://eshlox.net/clipboard-image-to-file-hammerspoon</guid><description>A Hammerspoon hotkey that saves clipboard images to the current tmux pane directory. Workaround for AI sandboxes that do not support image pasting.</description><pubDate>Wed, 08 Apr 2026 21:11:03 GMT</pubDate></item><item><title>Why I moved from Claude Desktop to the web version</title><link>https://eshlox.net/why-i-moved-from-claude-desktop-to-web-version</link><guid isPermaLink="true">https://eshlox.net/why-i-moved-from-claude-desktop-to-web-version</guid><description>Claude Desktop adds MCP servers, Cowork, Computer Use, and Desktop Extensions. Every one of them is an extra attack surface I don&apos;t need.</description><pubDate>Tue, 07 Apr 2026 23:00:00 GMT</pubDate></item><item><title>Secure development checklist and decision framework</title><link>https://eshlox.net/secure-dev-checklist</link><guid isPermaLink="true">https://eshlox.net/secure-dev-checklist</guid><description>A hardening checklist and decision matrix for secure local development with Infisical, Docker, and AI sandboxes. Quick reference for what goes where.</description><pubDate>Tue, 07 Apr 2026 22:35:00 GMT</pubDate></item><item><title>Scaling secure development to a team</title><link>https://eshlox.net/scaling-to-a-team</link><guid isPermaLink="true">https://eshlox.net/scaling-to-a-team</guid><description>Onboarding, offboarding, RBAC, CI/CD machine identities. What changes when the solo workflow becomes a team workflow.</description><pubDate>Tue, 07 Apr 2026 22:34:00 GMT</pubDate></item><item><title>Secure development daily workflows</title><link>https://eshlox.net/secure-dev-daily-workflows</link><guid isPermaLink="true">https://eshlox.net/secure-dev-daily-workflows</guid><description>Practical day-to-day workflows for developing with Infisical, Docker, and AI sandboxes. Morning startup, coding with AI, adding and rotating secrets, multi-project setup.</description><pubDate>Tue, 07 Apr 2026 22:30:00 GMT</pubDate></item><item><title>Why Infisical over Vault, Doppler, and SOPS</title><link>https://eshlox.net/why-infisical-over-vault-doppler-sops</link><guid isPermaLink="true">https://eshlox.net/why-infisical-over-vault-doppler-sops</guid><description>Comparing secrets managers for local development: HashiCorp Vault, OpenBao, Doppler, SOPS + age, and Infisical. Plus why no secrets manager can save a compromised machine.</description><pubDate>Tue, 07 Apr 2026 22:25:00 GMT</pubDate></item><item><title>The dual-machine setup: Apple + Linux</title><link>https://eshlox.net/dual-machine-setup</link><guid isPermaLink="true">https://eshlox.net/dual-machine-setup</guid><description>Keep Apple for personal, Linux for development. Physical separation solves what software isolation cannot.</description><pubDate>Tue, 07 Apr 2026 22:23:00 GMT</pubDate></item><item><title>Securing host tools with nono</title><link>https://eshlox.net/securing-host-tools</link><guid isPermaLink="true">https://eshlox.net/securing-host-tools</guid><description>Helix, lazygit, and other CLI tools can be sandboxed with nono or zerobox. GUI apps like Docker Desktop cannot. Here is what you can do.</description><pubDate>Tue, 07 Apr 2026 22:12:00 GMT</pubDate></item><item><title>When a secret leaks: incident response</title><link>https://eshlox.net/incident-response</link><guid isPermaLink="true">https://eshlox.net/incident-response</guid><description>Rotate first, investigate second. Every minute the old secret is valid is a minute an attacker can use it.</description><pubDate>Tue, 07 Apr 2026 22:01:00 GMT</pubDate></item><item><title>Git pre-commit secret scanning</title><link>https://eshlox.net/git-pre-commit-secret-scanning</link><guid isPermaLink="true">https://eshlox.net/git-pre-commit-secret-scanning</guid><description>Set up infisical scan as a pre-commit hook. AI-generated code with hardcoded credentials is especially risky.</description><pubDate>Tue, 07 Apr 2026 21:50:00 GMT</pubDate></item><item><title>Connecting AI sandboxes to dev containers</title><link>https://eshlox.net/connecting-ai-sandboxes-to-dev-containers</link><guid isPermaLink="true">https://eshlox.net/connecting-ai-sandboxes-to-dev-containers</guid><description>Three ways to let Claude test endpoints without seeing secrets: exposed ports, shared Docker network, or an MCP proxy.</description><pubDate>Tue, 07 Apr 2026 21:39:00 GMT</pubDate></item><item><title>Protecting against compromised packages</title><link>https://eshlox.net/protecting-against-compromised-packages</link><guid isPermaLink="true">https://eshlox.net/protecting-against-compromised-packages</guid><description>In the AI sandbox, compromised packages only see source code. In the dev stack, use multi-stage Docker builds to keep secrets away from install scripts.</description><pubDate>Tue, 07 Apr 2026 21:28:00 GMT</pubDate></item><item><title>Choosing an AI sandbox: nono vs zerobox vs Docker vs others</title><link>https://eshlox.net/choosing-an-ai-sandbox</link><guid isPermaLink="true">https://eshlox.net/choosing-an-ai-sandbox</guid><description>Every AI agent isolation option compared. sbx for maximum security, zerobox for ease of use, nono for irrevocable kernel restrictions.</description><pubDate>Tue, 07 Apr 2026 21:17:00 GMT</pubDate></item><item><title>Why AI agent permissions don&apos;t work</title><link>https://eshlox.net/why-ai-agent-permissions-dont-work</link><guid isPermaLink="true">https://eshlox.net/why-ai-agent-permissions-dont-work</guid><description>Claude&apos;s trust levels, allowed actions, and permission popups are self-enforced and bypassable. Use infrastructure isolation instead.</description><pubDate>Tue, 07 Apr 2026 21:06:00 GMT</pubDate></item><item><title>Expo and React Native: the Docker exception</title><link>https://eshlox.net/expo-react-native-the-docker-exception</link><guid isPermaLink="true">https://eshlox.net/expo-react-native-the-docker-exception</guid><description>Expo cannot run in Docker because iOS Simulator needs direct Metro access. This is fine because Expo only uses public variables.</description><pubDate>Tue, 07 Apr 2026 20:55:00 GMT</pubDate></item><item><title>Docker-first development architecture</title><link>https://eshlox.net/docker-first-development-architecture</link><guid isPermaLink="true">https://eshlox.net/docker-first-development-architecture</guid><description>Run your API and database in Docker Compose, inject secrets with Infisical, run AI agents in a separate sandbox with only source code.</description><pubDate>Tue, 07 Apr 2026 20:44:00 GMT</pubDate></item><item><title>AI coding agents are reading your secrets</title><link>https://eshlox.net/ai-coding-agents-are-reading-your-secrets</link><guid isPermaLink="true">https://eshlox.net/ai-coding-agents-are-reading-your-secrets</guid><description>Claude Code auto-loads .env files. Cursor bypasses .cursorignore. There are real CVEs. The only fix is separate execution contexts.</description><pubDate>Tue, 07 Apr 2026 20:33:00 GMT</pubDate></item><item><title>Setting up Infisical for local development</title><link>https://eshlox.net/setting-up-infisical-for-local-development</link><guid isPermaLink="true">https://eshlox.net/setting-up-infisical-for-local-development</guid><description>Install Infisical CLI, organize secrets by project and environment, inject them into processes without writing to disk.</description><pubDate>Tue, 07 Apr 2026 20:22:00 GMT</pubDate></item><item><title>Why 1Password CLI fails for developers</title><link>https://eshlox.net/why-1password-cli-fails-for-developers</link><guid isPermaLink="true">https://eshlox.net/why-1password-cli-fails-for-developers</guid><description>1Password is great for personal passwords but bad for dev secrets. No project structure, biometric fatigue, opaque popups, all-or-nothing access.</description><pubDate>Tue, 07 Apr 2026 20:11:00 GMT</pubDate></item><item><title>How I stopped leaking secrets to AI coding agents</title><link>https://eshlox.net/how-i-stopped-leaking-secrets-to-ai-agents</link><guid isPermaLink="true">https://eshlox.net/how-i-stopped-leaking-secrets-to-ai-agents</guid><description>AI coding agents read your .env files and send secrets to remote servers. Here is how I rebuilt my local dev workflow to fix this.</description><pubDate>Tue, 07 Apr 2026 20:00:00 GMT</pubDate></item><item><title>Running Claude Code in Docker sandbox (sbx)</title><link>https://eshlox.net/running-claude-code-in-docker-sandbox-sbx</link><guid isPermaLink="true">https://eshlox.net/running-claude-code-in-docker-sandbox-sbx</guid><description>A quick guide to running Claude Code in a Docker sandbox using sbx. No permission prompts, isolated environment.</description><pubDate>Tue, 07 Apr 2026 12:00:00 GMT</pubDate></item><item><title>My Ghostty config on macOS</title><link>https://eshlox.net/ghostty-config-macos</link><guid isPermaLink="true">https://eshlox.net/ghostty-config-macos</guid><description>A minimal Ghostty terminal config for macOS. No titlebar, auto tmux, Catppuccin theme, and a few quality of life tweaks.</description><pubDate>Tue, 07 Apr 2026 07:11:02 GMT</pubDate></item><item><title>Global justfile: run recipes from anywhere</title><link>https://eshlox.net/global-justfile</link><guid isPermaLink="true">https://eshlox.net/global-justfile</guid><description>A single justfile for commands you need everywhere, not just in a project.</description><pubDate>Mon, 06 Apr 2026 12:00:00 GMT</pubDate></item><item><title>How to protect your project from npm supply chain attacks</title><link>https://eshlox.net/npm-supply-chain-security</link><guid isPermaLink="true">https://eshlox.net/npm-supply-chain-security</guid><description>A practical guide to protecting your JavaScript project from npm supply chain attacks using pnpm, Socket Firewall, and frozen lockfiles.</description><pubDate>Sun, 05 Apr 2026 22:45:10 GMT</pubDate></item><item><title>term.css: a classless CSS framework with terminal aesthetics</title><link>https://eshlox.net/term-css</link><guid isPermaLink="true">https://eshlox.net/term-css</guid><description>A minimal CSS framework that styles semantic HTML out of the box. No classes required. Terminal-inspired, themeable, accessible.</description><pubDate>Sat, 04 Apr 2026 12:00:00 GMT</pubDate></item><item><title>vibeship: this package replaces 90% of your code with a single decorator</title><link>https://eshlox.net/vibeship-replaces-code-with-single-decorator</link><guid isPermaLink="true">https://eshlox.net/vibeship-replaces-code-with-single-decorator</guid><description>vibeship lets you describe what your code should do in plain English. It handles the rest at runtime. React, Expo, Fastify, AdonisJS, Django, Actix Web.</description><pubDate>Wed, 01 Apr 2026 09:00:00 GMT</pubDate></item><item><title>VoiceInk: local voice-to-text on macOS</title><link>https://eshlox.net/voiceink-local-voice-to-text-macos</link><guid isPermaLink="true">https://eshlox.net/voiceink-local-voice-to-text-macos</guid><description>VoiceInk is a macOS app that transcribes voice to text locally on your device. Private, fast, one-time purchase, no subscription.</description><pubDate>Sun, 29 Mar 2026 22:01:40 GMT</pubDate></item><item><title>Dotfiles backup with a bare Git repo</title><link>https://eshlox.net/dotfiles-bare-git-repo</link><guid isPermaLink="true">https://eshlox.net/dotfiles-bare-git-repo</guid><description>Back up macOS config files to GitHub without symlinks or extra tools. Just Git.</description><pubDate>Thu, 26 Mar 2026 22:17:36 GMT</pubDate></item><item><title>AI commit messages in lazygit</title><link>https://eshlox.net/ai-commit-messages-lazygit</link><guid isPermaLink="true">https://eshlox.net/ai-commit-messages-lazygit</guid><description>Let Claude generate commit messages from your diff, right inside lazygit.</description><pubDate>Thu, 26 Mar 2026 21:39:06 GMT</pubDate></item><item><title>Automate tmux sessions with tmuxinator</title><link>https://eshlox.net/tmuxinator-automate-tmux</link><guid isPermaLink="true">https://eshlox.net/tmuxinator-automate-tmux</guid><description>Define your tmux workspace in YAML and start everything with one command.</description><pubDate>Thu, 26 Mar 2026 21:24:37 GMT</pubDate></item><item><title>lazygit cheatsheet</title><link>https://eshlox.net/lazygit-cheatsheet</link><guid isPermaLink="true">https://eshlox.net/lazygit-cheatsheet</guid><description>Quick reference for lazygit keyboard shortcuts.</description><pubDate>Thu, 26 Mar 2026 20:07:00 GMT</pubDate></item><item><title>lazygit: a better way to use Git</title><link>https://eshlox.net/lazygit-setup</link><guid isPermaLink="true">https://eshlox.net/lazygit-setup</guid><description>A terminal UI for Git with staging, rebasing, and side-by-side diffs. My config with Catppuccin Latte and delta.</description><pubDate>Thu, 26 Mar 2026 20:06:13 GMT</pubDate></item><item><title>Caps Lock as a super key on macOS with Hammerspoon</title><link>https://eshlox.net/capslock-super-key</link><guid isPermaLink="true">https://eshlox.net/capslock-super-key</guid><description>One key for Escape, Ctrl, and app switching. Using hidutil and Hammerspoon on macOS.</description><pubDate>Thu, 26 Mar 2026 19:46:46 GMT</pubDate></item><item><title>tmux cheatsheet</title><link>https://eshlox.net/tmux-cheatsheet</link><guid isPermaLink="true">https://eshlox.net/tmux-cheatsheet</guid><description>Quick reference for tmux keyboard shortcuts. My custom bindings plus essential built-in ones.</description><pubDate>Thu, 26 Mar 2026 19:24:00 GMT</pubDate></item><item><title>My tmux setup</title><link>https://eshlox.net/tmux-setup</link><guid isPermaLink="true">https://eshlox.net/tmux-setup</guid><description>How I use tmux for multi-project work with Ghostty, session-per-project, and prefix-free shortcuts.</description><pubDate>Thu, 26 Mar 2026 19:23:14 GMT</pubDate></item><item><title>Why I moved my workflow to the terminal</title><link>https://eshlox.net/terminal-workflow</link><guid isPermaLink="true">https://eshlox.net/terminal-workflow</guid><description>How AI changed my development setup and moved everything into one terminal window.</description><pubDate>Thu, 26 Mar 2026 19:20:00 GMT</pubDate></item><item><title>just: a simple command runner</title><link>https://eshlox.net/just-command-runner</link><guid isPermaLink="true">https://eshlox.net/just-command-runner</guid><description>A justfile in every project. Run commands with fuzzy search instead of remembering them.</description><pubDate>Thu, 26 Mar 2026 19:01:46 GMT</pubDate></item><item><title>Helix cheatsheet</title><link>https://eshlox.net/helix-cheatsheet</link><guid isPermaLink="true">https://eshlox.net/helix-cheatsheet</guid><description>Quick reference for Helix editor keyboard shortcuts.</description><pubDate>Thu, 26 Mar 2026 18:10:00 GMT</pubDate></item><item><title>Helix: a code editor that just works</title><link>https://eshlox.net/helix-editor-setup</link><guid isPermaLink="true">https://eshlox.net/helix-editor-setup</guid><description>A terminal code editor with built-in LSP, tree-sitter, and multi-cursor editing. No plugins needed.</description><pubDate>Thu, 26 Mar 2026 18:09:30 GMT</pubDate></item><item><title>How I fixed my WebStorm workflow on a MacBook Pro 16&quot;</title><link>https://eshlox.net/webstorm-workflow-macbook-pro</link><guid isPermaLink="true">https://eshlox.net/webstorm-workflow-macbook-pro</guid><description>Only code visible by default. Tools appear one at a time, on demand, then disappear. No plugins are needed.</description><pubDate>Mon, 16 Mar 2026 21:11:13 GMT</pubDate></item><item><title>Solo changed how I work with terminals</title><link>https://eshlox.net/solo-changed-how-i-work-with-terminals</link><guid isPermaLink="true">https://eshlox.net/solo-changed-how-i-work-with-terminals</guid><description>How Solo, a lightweight terminal dashboard, replaced my multi-tab terminal setup and simplified my daily development workflow.</description><pubDate>Thu, 12 Mar 2026 21:10:41 GMT</pubDate></item><item><title>What if the future has no UI?</title><link>https://eshlox.net/what-if-the-future-has-no-ui</link><guid isPermaLink="true">https://eshlox.net/what-if-the-future-has-no-ui</guid><description>What if AI replaced graphical interfaces with content-first, conversation-driven experiences where users control the presentation and companies just provide APIs?</description><pubDate>Sat, 07 Mar 2026 12:55:44 GMT</pubDate></item><item><title>Moving my development to the terminal</title><link>https://eshlox.net/moving-my-development-to-the-terminal</link><guid isPermaLink="true">https://eshlox.net/moving-my-development-to-the-terminal</guid><description>How AI tools in the terminal pushed me to move my entire development workflow from GUI editors to tmux and Neovim.</description><pubDate>Fri, 06 Mar 2026 20:20:44 GMT</pubDate></item><item><title>Managing GitHub repositories and secrets with OpenTofu, SOPS, and 1Password</title><link>https://eshlox.net/managing-github-repos-secrets-opentofu-sops-1password</link><guid isPermaLink="true">https://eshlox.net/managing-github-repos-secrets-opentofu-sops-1password</guid><description>A practical guide to managing GitHub repository settings, environments, and secrets as code using OpenTofu, SOPS encryption, and 1Password. Covers project structure, configuration patterns, and step-by-step setup.</description><pubDate>Tue, 03 Mar 2026 21:01:33 GMT</pubDate></item><item><title>What if AI doesn&apos;t kill programming jobs, but multiplies them?</title><link>https://eshlox.net/what-if-ai-doesnt-kill-programming-jobs-but-multiplies-them</link><guid isPermaLink="true">https://eshlox.net/what-if-ai-doesnt-kill-programming-jobs-but-multiplies-them</guid><description>AI isn&apos;t replacing programmers. From what I see every day, it&apos;s increasing the workload. More code, more features, faster shipping. What used to take months now takes days. And that changes everything.</description><pubDate>Sat, 28 Feb 2026 22:18:11 GMT</pubDate></item><item><title>Why I stay with WebStorm</title><link>https://eshlox.net/why-i-stay-with-webstorm</link><guid isPermaLink="true">https://eshlox.net/why-i-stay-with-webstorm</guid><description>I tested Zed and VS Code again, but I keep coming back to WebStorm. Here is why.</description><pubDate>Sun, 22 Feb 2026 21:12:00 GMT</pubDate></item><item><title>Why I use OpenTofu to manage Cloudflare (even though I am the only developer)</title><link>https://eshlox.net/managing-cloudflare-with-opentofu</link><guid isPermaLink="true">https://eshlox.net/managing-cloudflare-with-opentofu</guid><description>Adopting Infrastructure as Code for personal Cloudflare domains: a secure workflow using OpenTofu, 1Password, and client-side state encryption.</description><pubDate>Wed, 11 Feb 2026 18:37:12 GMT</pubDate></item><item><title>Ship first</title><link>https://eshlox.net/ship-first</link><guid isPermaLink="true">https://eshlox.net/ship-first</guid><description>Prioritizing the product over the stack.</description><pubDate>Mon, 19 Jan 2026 19:11:00 GMT</pubDate></item><item><title>Discogs integration</title><link>https://eshlox.net/discogs-integration</link><guid isPermaLink="true">https://eshlox.net/discogs-integration</guid><description>A short note on how I integrated Discogs into my site.</description><pubDate>Fri, 09 Jan 2026 11:25:00 GMT</pubDate></item><item><title>Fixing macOS screen sharing with Mullvad VPN</title><link>https://eshlox.net/mullvad-vpn-macos-screen-sharing</link><guid isPermaLink="true">https://eshlox.net/mullvad-vpn-macos-screen-sharing</guid><description>A quick tip to enable local network sharing in Mullvad VPN on macOS to allow features like AirPlay to work correctly.</description><pubDate>Sat, 02 Aug 2025 18:43:46 GMT</pubDate></item><item><title>Do not use email for sensitive data</title><link>https://eshlox.net/do-not-use-email-for-sensitive-data</link><guid isPermaLink="true">https://eshlox.net/do-not-use-email-for-sensitive-data</guid><description>Why you should not use e-mails for sensitive data and what are the alternatives.</description><pubDate>Wed, 23 Jul 2025 20:01:12 GMT</pubDate></item><item><title>Adding Astro MCP Documentation to WebStorm</title><link>https://eshlox.net/astro-mcp-webstorm</link><guid isPermaLink="true">https://eshlox.net/astro-mcp-webstorm</guid><description>How to add Astro&apos;s Model Context Protocol server to WebStorm/Junie for real-time documentation access while coding.</description><pubDate>Sun, 20 Jul 2025 12:47:17 GMT</pubDate></item><item><title>Managing Hetzner infrastructure with OpenTofu</title><link>https://eshlox.net/hetzner-opentofu</link><guid isPermaLink="true">https://eshlox.net/hetzner-opentofu</guid><description>Using OpenTofu to manage Hetzner Cloud infrastructure with code examples and practical setup guide.</description><pubDate>Thu, 17 Jul 2025 22:59:39 GMT</pubDate></item><item><title>Enabling autocomplete for Git, npm, Docker, and more in Zsh on macOS</title><link>https://eshlox.net/enabling-autocomplete-for-git-npm-docker-and-more-in-zsh-on-macos</link><guid isPermaLink="true">https://eshlox.net/enabling-autocomplete-for-git-npm-docker-and-more-in-zsh-on-macos</guid><description>How to enable Zsh tab completion for Git, npm, Docker, and other CLI tools by adding two lines to your .zshrc file on macOS.</description><pubDate>Fri, 13 Jun 2025 19:01:25 GMT</pubDate></item><item><title>Ghostty, Starship, fzf (zsh, macOS)</title><link>https://eshlox.net/ghostty-starship-fzf-zsh-macos</link><guid isPermaLink="true">https://eshlox.net/ghostty-starship-fzf-zsh-macos</guid><description>Switching from Warp to Ghostty terminal with Starship for prompts and fzf for search.</description><pubDate>Sun, 08 Jun 2025 22:38:46 GMT</pubDate></item><item><title>Setting up a static server for Vitest tests</title><link>https://eshlox.net/setting-up-a-static-server-for-vitest-tests</link><guid isPermaLink="true">https://eshlox.net/setting-up-a-static-server-for-vitest-tests</guid><description>How to serve static assets during Vitest tests using a simple HTTP server.</description><pubDate>Sun, 01 Jun 2025 21:24:59 GMT</pubDate></item><item><title>Fixing Junie hanging in WebStorm</title><link>https://eshlox.net/fixing-junie-hanging-in-webstorm</link><guid isPermaLink="true">https://eshlox.net/fixing-junie-hanging-in-webstorm</guid><description>How to fix the Junie AI assistant freezing in WebStorm by changing the terminal shell from zsh to bash in the IDE settings.</description><pubDate>Tue, 27 May 2025 18:08:16 GMT</pubDate></item><item><title>I use AI for coding every day</title><link>https://eshlox.net/i-use-ai-for-coding-every-day</link><guid isPermaLink="true">https://eshlox.net/i-use-ai-for-coding-every-day</guid><description>An honest look at using AI coding agents daily: what works, where it fails, and whether AI can replace developers or just accelerate the experienced ones.</description><pubDate>Sun, 11 May 2025 21:33:36 GMT</pubDate></item><item><title>Why I switched from NVM to FNM?</title><link>https://eshlox.net/why-i-switched-from-nvm-to-fnm</link><guid isPermaLink="true">https://eshlox.net/why-i-switched-from-nvm-to-fnm</guid><description>FNM is a faster alternative to NVM for managing Node.js versions, with a clean Homebrew install, one-line Zsh config, and automatic per-project version switching.</description><pubDate>Sun, 06 Apr 2025 19:12:14 GMT</pubDate></item><item><title>myNoise - soundscapes for deep focus</title><link>https://eshlox.net/mynoise-soundscapes-for-deep-focus</link><guid isPermaLink="true">https://eshlox.net/mynoise-soundscapes-for-deep-focus</guid><description>myNoise is a large collection of human-recorded soundscapes and background noise for focus and relaxation, available free with optional donation and no ads.</description><pubDate>Wed, 12 Mar 2025 22:34:19 GMT</pubDate></item><item><title>Should I switch back to Linux?</title><link>https://eshlox.net/should-i-switch-back-to-linux</link><guid isPermaLink="true">https://eshlox.net/should-i-switch-back-to-linux</guid><description>After six years on macOS, weighing the reasons to switch back to Linux: privacy, cost, open source values, and whether the desktop experience is ready.</description><pubDate>Sun, 09 Mar 2025 20:32:23 GMT</pubDate></item><item><title>dns0 - The European public DNS</title><link>https://eshlox.net/dns0-the-european-public-dns</link><guid isPermaLink="true">https://eshlox.net/dns0-the-european-public-dns</guid><description>dns0 is a free, GDPR-compliant European public DNS resolver with malware protection, DoH and DoT support, and three variants for different security needs.</description><pubDate>Thu, 06 Mar 2025 21:33:34 GMT</pubDate></item><item><title>GoAccess - open source real-time web log analyzer (analytics, privacy)</title><link>https://eshlox.net/goaccess-open-source-real-time-web-log-analyzer-analytics-privacy</link><guid isPermaLink="true">https://eshlox.net/goaccess-open-source-real-time-web-log-analyzer-analytics-privacy</guid><description>How to set up GoAccess in a Podman container with systemd timers to generate privacy-friendly web analytics from Caddy access logs, including geolocation support.</description><pubDate>Wed, 05 Mar 2025 18:33:02 GMT</pubDate></item><item><title>PostgreSQL – Email Regex</title><link>https://eshlox.net/postgresql-email-regex</link><guid isPermaLink="true">https://eshlox.net/postgresql-email-regex</guid><description>A simple PostgreSQL CHECK constraint using a case-insensitive regex pattern to validate email address format directly in the table column definition.</description><pubDate>Sun, 02 Mar 2025 21:38:36 GMT</pubDate></item><item><title>Run the Caddy server on Fedora using Podman</title><link>https://eshlox.net/run-the-caddy-server-on-fedora-using-podman</link><guid isPermaLink="true">https://eshlox.net/run-the-caddy-server-on-fedora-using-podman</guid><description>How to run Caddy in a rootless Podman container on Fedora using systemd Quadlet, with firewalld port forwarding for HTTPS and automatic startup on boot.</description><pubDate>Fri, 28 Feb 2025 19:52:15 GMT</pubDate></item><item><title>Caddy - strip trailing slash</title><link>https://eshlox.net/caddy-strip-trailing-slash</link><guid isPermaLink="true">https://eshlox.net/caddy-strip-trailing-slash</guid><description>How to remove trailing slashes from URLs in Caddy v2 using a path_regexp matcher and a 301 redirect rule in the Caddyfile.</description><pubDate>Fri, 28 Feb 2025 19:45:33 GMT</pubDate></item><item><title>Quick server setup on Hetzner</title><link>https://eshlox.net/quick-server-setup-on-hetzner</link><guid isPermaLink="true">https://eshlox.net/quick-server-setup-on-hetzner</guid><description>Step-by-step guide to provisioning a Hetzner server on Fedora: SSH key setup, user configuration, disabling root login, fail2ban, and firewall configuration.</description><pubDate>Sun, 23 Feb 2025 22:48:54 GMT</pubDate></item><item><title>Error [FastifyError]: Plugin must be a function or a promise. Received: &apos;object&apos;</title><link>https://eshlox.net/error-fastify-error-plugin-must-be-a-function-or-a-promise-received-object</link><guid isPermaLink="true">https://eshlox.net/error-fastify-error-plugin-must-be-a-function-or-a-promise-received-object</guid><description>The Fastify Plugin must be a function error can occur when a test file is placed inside a directory that @fastify/autoload automatically loads as a plugin.</description><pubDate>Tue, 28 Jan 2025 18:22:03 GMT</pubDate></item><item><title>SVG component for Astro</title><link>https://eshlox.net/svg-component-for-astro</link><guid isPermaLink="true">https://eshlox.net/svg-component-for-astro</guid><description>A reusable Astro component that reads SVG files from the public directory and renders them inline, forwarding any HTML attributes to the svg element.</description><pubDate>Sat, 11 Jan 2025 18:20:53 GMT</pubDate></item><item><title>Add a language switcher to Storybook</title><link>https://eshlox.net/add-a-language-switcher-to-storybook</link><guid isPermaLink="true">https://eshlox.net/add-a-language-switcher-to-storybook</guid><description>How to add a language switcher toolbar to Storybook using globalTypes and a decorator in the preview configuration file to set the active locale.</description><pubDate>Mon, 12 Aug 2024 20:40:54 GMT</pubDate></item><item><title>Cannot find namespace NodeJS</title><link>https://eshlox.net/cannot-find-namespace-nodejs</link><guid isPermaLink="true">https://eshlox.net/cannot-find-namespace-nodejs</guid><description>Fix for the TypeScript error Cannot find namespace NodeJS by installing @types/node and adding node to the types array in tsconfig.json.</description><pubDate>Tue, 30 Jul 2024 22:44:11 GMT</pubDate></item><item><title>Why I switched back to WebStorm?</title><link>https://eshlox.net/why-i-switched-back-to-webstorm</link><guid isPermaLink="true">https://eshlox.net/why-i-switched-back-to-webstorm</guid><description>After years with VS Code, switching back to WebStorm brought better UI, zero-configuration setup, and superior error detection that caught over 100 issues missed before.</description><pubDate>Tue, 27 Feb 2024 20:53:02 GMT</pubDate></item><item><title>Unable to boot device because we cannot determine the runtime bundle</title><link>https://eshlox.net/unable-to-boot-device-because-we-cannot-determine-the-runtime-bundle</link><guid isPermaLink="true">https://eshlox.net/unable-to-boot-device-because-we-cannot-determine-the-runtime-bundle</guid><description>How to fix the Expo CLI error &quot;Unable to boot device because we cannot determine the runtime bundle&quot; by installing the iOS platform in Xcode settings.</description><pubDate>Sat, 11 Nov 2023 21:40:10 GMT</pubDate></item><item><title>Drizzle ORM &amp; PostgreSQL - get rows from last N days</title><link>https://eshlox.net/drizzle-orm-postgresql-get-rows-from-last-n-days</link><guid isPermaLink="true">https://eshlox.net/drizzle-orm-postgresql-get-rows-from-last-n-days</guid><description>A short code example showing how to query rows from the last N days in Drizzle ORM with PostgreSQL using the sql operator and INTERVAL.</description><pubDate>Sat, 30 Sep 2023 18:00:05 GMT</pubDate></item><item><title>Lit Web Components with Astro (Context, SSR)</title><link>https://eshlox.net/lit-web-components-with-astro-context-ssr</link><guid isPermaLink="true">https://eshlox.net/lit-web-components-with-astro-context-ssr</guid><description>How to fix SSR errors when using @lit-labs/context with Astro by using the client:only directive with a named import instead of a tag name.</description><pubDate>Tue, 26 Sep 2023 21:22:44 GMT</pubDate></item><item><title>Get the real-time product data from Coinbase Advanced Trade API (WebSocket, NodeJS)</title><link>https://eshlox.net/get-the-real-time-product-data-from-coinbase-advanced-trade-api-websocket-nodejs</link><guid isPermaLink="true">https://eshlox.net/get-the-real-time-product-data-from-coinbase-advanced-trade-api-websocket-nodejs</guid><description>A TypeScript code snippet for subscribing to real-time price data from the Coinbase Advanced Trade WebSocket API using Node.js with HMAC authentication.</description><pubDate>Mon, 25 Sep 2023 21:18:32 GMT</pubDate></item><item><title>Proton Pass may be a viable alternative to Bitwarden in the future</title><link>https://eshlox.net/proton-pass-may-be-a-viable-alternative-to-bitwarden-in-the-future</link><guid isPermaLink="true">https://eshlox.net/proton-pass-may-be-a-viable-alternative-to-bitwarden-in-the-future</guid><description>A comparison of Proton Pass and Bitwarden covering UI, autofill, YubiKey support, attachments, and security audits, with reasons why switching is not yet worthwhile.</description><pubDate>Sun, 06 Aug 2023 18:55:54 GMT</pubDate></item><item><title>How to create a custom theme for React Navigation (with correct types)</title><link>https://eshlox.net/2023/04/01/how-to-create-a-custom-theme-for-react-navigation-with-correct-types</link><guid isPermaLink="true">https://eshlox.net/2023/04/01/how-to-create-a-custom-theme-for-react-navigation-with-correct-types</guid><description>How to extend the React Navigation default theme with custom colors while preserving full TypeScript type safety using typeof and module augmentation.</description><pubDate>Sat, 01 Apr 2023 21:48:32 GMT</pubDate></item><item><title>Use Cloudflare Tunnel to expose your local web server via HTTPS</title><link>https://eshlox.net/2023/03/28/use-cloudflare-tunnel-to-expose-your-local-web-server-via-https</link><guid isPermaLink="true">https://eshlox.net/2023/03/28/use-cloudflare-tunnel-to-expose-your-local-web-server-via-https</guid><description>Step-by-step guide to exposing a local web server to the internet with a custom domain and HTTPS using Cloudflare Tunnel and the cloudflared CLI.</description><pubDate>Tue, 28 Mar 2023 18:30:07 GMT</pubDate></item><item><title>Why I chose Bitwarden as my password manager</title><link>https://eshlox.net/2023/02/28/why-i-chose-bitwarden-as-my-password-manager</link><guid isPermaLink="true">https://eshlox.net/2023/02/28/why-i-chose-bitwarden-as-my-password-manager</guid><description>The reasons for choosing Bitwarden over 1Password and KeePassX, focusing on open-source code, YubiKey support, security audits, and a low yearly cost.</description><pubDate>Tue, 28 Feb 2023 19:20:45 GMT</pubDate></item><item><title>Supabase CLI - Cannot connect to the Docker daemon</title><link>https://eshlox.net/2023/02/26/supabase-cli-cannot-connect-to-the-docker-daemon</link><guid isPermaLink="true">https://eshlox.net/2023/02/26/supabase-cli-cannot-connect-to-the-docker-daemon</guid><description>How to fix the Supabase CLI &quot;Cannot connect to Docker daemon&quot; error on macOS by setting the DOCKER_HOST environment variable in your shell config.</description><pubDate>Sun, 26 Feb 2023 20:06:41 GMT</pubDate></item><item><title>Safari - Responsive Design Mode</title><link>https://eshlox.net/2023/02/18/safari-responsive-design-mode</link><guid isPermaLink="true">https://eshlox.net/2023/02/18/safari-responsive-design-mode</guid><description>A quick note on Safari&apos;s built-in Responsive Design Mode and how to activate it with a keyboard shortcut, useful for testing websites without switching browsers.</description><pubDate>Sat, 18 Feb 2023 20:32:13 GMT</pubDate></item><item><title>Phishing na OLX i DPD - czyli trzeba mieć cierpliwość, aby zarobić</title><link>https://eshlox.net/2021/09/14/phishing-na-olx-i-dpd-czyli-trzeba-miec-cierpliwosc-aby-zarobic</link><guid isPermaLink="true">https://eshlox.net/2021/09/14/phishing-na-olx-i-dpd-czyli-trzeba-miec-cierpliwosc-aby-zarobic</guid><description>Relacja z próby phishingu na OLX i DPD, z analizą techniczną fałszywych stron, rozmowami z oszustami i wskazówkami jak się przed tym chronić.</description><pubDate>Tue, 14 Sep 2021 20:04:10 GMT</pubDate></item><item><title>Why do I never use SSO?</title><link>https://eshlox.net/2021/07/23/why-do-i-never-use-sso</link><guid isPermaLink="true">https://eshlox.net/2021/07/23/why-do-i-never-use-sso</guid><description>The risks of using social login (SSO) for authentication and why a password manager with 2FA or a hardware key is a more secure alternative.</description><pubDate>Fri, 23 Jul 2021 22:09:38 GMT</pubDate></item><item><title>Passwordless authentication via e-mail link. Should we use it?</title><link>https://eshlox.net/2021/05/12/passwordless-authentication-via-e-mail-link-should-we-use-it</link><guid isPermaLink="true">https://eshlox.net/2021/05/12/passwordless-authentication-via-e-mail-link-should-we-use-it</guid><description>A detailed look at the advantages and disadvantages of magic link authentication compared to traditional email and password login methods.</description><pubDate>Wed, 12 May 2021 18:22:47 GMT</pubDate></item><item><title>Conventional Commits for JavaScript projects</title><link>https://eshlox.net/2021/02/08/conventional-commits-for-javascript-projects</link><guid isPermaLink="true">https://eshlox.net/2021/02/08/conventional-commits-for-javascript-projects</guid><description>How to set up Conventional Commits in a JavaScript project using commitlint, Husky, and Commitizen to enforce consistent commit message format.</description><pubDate>Mon, 08 Feb 2021 22:30:57 GMT</pubDate></item><item><title>Navigation as a separate page</title><link>https://eshlox.net/2021/01/03/navigation-as-a-separate-page</link><guid isPermaLink="true">https://eshlox.net/2021/01/03/navigation-as-a-separate-page</guid><description>An approach to website navigation that uses a dedicated page instead of dropdowns or JS-heavy menus, keeping the implementation simple and CSS-only.</description><pubDate>Sun, 03 Jan 2021 19:16:04 GMT</pubDate></item><item><title>How to easily generate favicons</title><link>https://eshlox.net/2020/08/31/how-to-easily-generate-favicons</link><guid isPermaLink="true">https://eshlox.net/2020/08/31/how-to-easily-generate-favicons</guid><description>How to use the favicons npm package to generate favicon images, manifest files, and HTML meta tags for all platforms with a single script.</description><pubDate>Mon, 31 Aug 2020 20:39:47 GMT</pubDate></item><item><title>Why did I give up using Gatsby for my blog?</title><link>https://eshlox.net/2020/08/15/why-did-i-give-up-using-gatsby-for-my-blog</link><guid isPermaLink="true">https://eshlox.net/2020/08/15/why-did-i-give-up-using-gatsby-for-my-blog</guid><description>Why I replaced Gatsby with 11ty for my blog: slow build times, large page size, and the cost of overengineering a simple markdown site.</description><pubDate>Sat, 15 Aug 2020 19:16:21 GMT</pubDate></item><item><title>How to create a bug ticket (for a web project)</title><link>https://eshlox.net/2020/08/14/how-to-create-a-bug-ticket-for-a-web-project</link><guid isPermaLink="true">https://eshlox.net/2020/08/14/how-to-create-a-bug-ticket-for-a-web-project</guid><description>A practical guide on what information to include in a bug ticket to help developers find and fix issues faster on a web project.</description><pubDate>Fri, 14 Aug 2020 18:46:06 GMT</pubDate></item><item><title>Create a new React project using Parcel</title><link>https://eshlox.net/2020/05/29/create-a-new-react-project-using-parcel</link><guid isPermaLink="true">https://eshlox.net/2020/05/29/create-a-new-react-project-using-parcel</guid><description>A step-by-step guide to bootstrapping a new React project with TypeScript using Parcel as the bundler, without create-react-app.</description><pubDate>Fri, 29 May 2020 18:21:42 GMT</pubDate></item><item><title>Parcel - Uncaught ReferenceError: regeneratorRuntime</title><link>https://eshlox.net/2020/05/28/parcel-uncaught-referenceerror-regeneratorruntime</link><guid isPermaLink="true">https://eshlox.net/2020/05/28/parcel-uncaught-referenceerror-regeneratorruntime</guid><description>How to fix the regeneratorRuntime ReferenceError in a Parcel v1 project that uses async/await by adding the Babel transform-runtime plugin.</description><pubDate>Thu, 28 May 2020 20:17:55 GMT</pubDate></item><item><title>PostgreSQL, Hasura and citext data type</title><link>https://eshlox.net/2020/05/17/postgresql-hasura-and-citext-data-type</link><guid isPermaLink="true">https://eshlox.net/2020/05/17/postgresql-hasura-and-citext-data-type</guid><description>How to enable the citext extension in PostgreSQL so the case-insensitive text type becomes available in the Hasura console column editor.</description><pubDate>Sun, 17 May 2020 22:06:21 GMT</pubDate></item><item><title>Google App Engine Cloud Tasks and Django Rest Framework permissions</title><link>https://eshlox.net/2020/05/08/google-app-engine-cloud-tasks-and-django-rest-framework-permissions</link><guid isPermaLink="true">https://eshlox.net/2020/05/08/google-app-engine-cloud-tasks-and-django-rest-framework-permissions</guid><description>How to restrict a Django REST Framework endpoint to Google App Engine Cloud Tasks only using the X-Appengine-Queuename header and a custom permission.</description><pubDate>Fri, 08 May 2020 22:40:59 GMT</pubDate></item><item><title>Better diffs in pytest</title><link>https://eshlox.net/2020/04/07/better-diffs-in-pytest</link><guid isPermaLink="true">https://eshlox.net/2020/04/07/better-diffs-in-pytest</guid><description>How to improve pytest diff output when comparing large dictionaries, with a look at the pytest-icdiff plugin for color-coded side-by-side diffs.</description><pubDate>Tue, 07 Apr 2020 18:49:17 GMT</pubDate></item><item><title>Yarn 2 (berry), Typescript, VSCode, Prettier, ESLint and Fastify</title><link>https://eshlox.net/2020/04/01/yarn-2-berry-typescript-vscode-prettier-eslint-fastify</link><guid isPermaLink="true">https://eshlox.net/2020/04/01/yarn-2-berry-typescript-vscode-prettier-eslint-fastify</guid><description>How to set up a Fastify project from scratch with Yarn 2 Berry, TypeScript, ESLint, Prettier, and proper VS Code editor SDK integration.</description><pubDate>Wed, 01 Apr 2020 19:48:58 GMT</pubDate></item><item><title>I review my code on GitHub every day</title><link>https://eshlox.net/2020/02/23/i-review-my-code-on-github-every-day</link><guid isPermaLink="true">https://eshlox.net/2020/02/23/i-review-my-code-on-github-every-day</guid><description>Why I self-review every pull request on GitHub before asking others, and how this habit speeds up the review cycle and improves code quality.</description><pubDate>Sun, 23 Feb 2020 19:24:39 GMT</pubDate></item><item><title>Zsh and Starship on macOS</title><link>https://eshlox.net/2019/12/11/zsh-and-starship-on-macos</link><guid isPermaLink="true">https://eshlox.net/2019/12/11/zsh-and-starship-on-macos</guid><description>How to switch from Fish to Zsh on macOS with the Starship prompt and zsh-autosuggestions, configured in about two minutes.</description><pubDate>Wed, 11 Dec 2019 20:34:19 GMT</pubDate></item><item><title>Google App Engine Cron Service and Django Rest Framework permissions</title><link>https://eshlox.net/2019/12/11/google-app-engine-cron-service-and-django-rest-framework-permissions</link><guid isPermaLink="true">https://eshlox.net/2019/12/11/google-app-engine-cron-service-and-django-rest-framework-permissions</guid><description>How to secure a Django REST Framework endpoint so it is only accessible from Google App Engine Cron Service using a custom DRF permission.</description><pubDate>Wed, 11 Dec 2019 18:37:42 GMT</pubDate></item><item><title>Use Pandoc on macOS to convert multiple markdown files to a single PDF file</title><link>https://eshlox.net/2019/12/09/use-pandoc-on-macos-to-convert-multiple-markdown-files-to-a-single-pdf-file</link><guid isPermaLink="true">https://eshlox.net/2019/12/09/use-pandoc-on-macos-to-convert-multiple-markdown-files-to-a-single-pdf-file</guid><description>How to install Pandoc and BasicTeX on macOS and combine multiple Markdown files into a single PDF, including how to fix wrapping in code blocks.</description><pubDate>Mon, 09 Dec 2019 19:31:54 GMT</pubDate></item><item><title>Google Cloud Tasks and Django Rest Framework (application/octet-stream)</title><link>https://eshlox.net/2019/12/07/google-cloud-tasks-and-django-rest-framework-application-octet-stream</link><guid isPermaLink="true">https://eshlox.net/2019/12/07/google-cloud-tasks-and-django-rest-framework-application-octet-stream</guid><description>How to handle application/octet-stream payloads from Google Cloud Tasks in Django REST Framework using a custom parser class.</description><pubDate>Sat, 07 Dec 2019 22:45:48 GMT</pubDate></item><item><title>VS Code - automatically organize TypeScript imports</title><link>https://eshlox.net/2019/12/02/vscode-automatically-organize-typescript-imports</link><guid isPermaLink="true">https://eshlox.net/2019/12/02/vscode-automatically-organize-typescript-imports</guid><description>How to configure VS Code to automatically sort and remove unused TypeScript imports every time you save a .ts or .tsx file.</description><pubDate>Mon, 02 Dec 2019 19:10:41 GMT</pubDate></item><item><title>VS Code - sort Python imports automatically</title><link>https://eshlox.net/2019/12/02/vscode-sort-python-imports-automatically</link><guid isPermaLink="true">https://eshlox.net/2019/12/02/vscode-sort-python-imports-automatically</guid><description>How to configure VS Code to run isort automatically on every Python file save, keeping imports sorted without any manual effort.</description><pubDate>Mon, 02 Dec 2019 18:12:45 GMT</pubDate></item><item><title>Add Buy Me A Coffee widget to a GatsbyJS site</title><link>https://eshlox.net/2019/11/30/add-buy-me-a-coffee-widget-to-a-gatsbyjs-site</link><guid isPermaLink="true">https://eshlox.net/2019/11/30/add-buy-me-a-coffee-widget-to-a-gatsbyjs-site</guid><description>How to add the Buy Me A Coffee widget to a Gatsby site using the gatsby-ssr.js onRenderBody API.</description><pubDate>Sat, 30 Nov 2019 21:17:27 GMT</pubDate></item><item><title>psycopg2.errors.UniqueViolation: could not create unique index</title><link>https://eshlox.net/2019/08/06/psycopg2-errors-unique-violation-could-not-create-unique-index</link><guid isPermaLink="true">https://eshlox.net/2019/08/06/psycopg2-errors-unique-violation-could-not-create-unique-index</guid><description>How to fix the psycopg2 UniqueViolation error when adding a unique index to a Django field that already contains duplicate empty string values.</description><pubDate>Tue, 06 Aug 2019 22:50:11 GMT</pubDate></item><item><title>django.db.utils.OperationalError: cannot ALTER TABLE &quot;X&quot; because it has pending trigger events</title><link>https://eshlox.net/2019/08/03/django-db-utils-operationalerror-cannot-alter-table-x-because-it-has-pending-trigger-events</link><guid isPermaLink="true">https://eshlox.net/2019/08/03/django-db-utils-operationalerror-cannot-alter-table-x-because-it-has-pending-trigger-events</guid><description>How to fix the Django OperationalError about pending trigger events when removing null=True from a field that already has NULL values.</description><pubDate>Sat, 03 Aug 2019 18:32:20 GMT</pubDate></item><item><title>Python 3.7 - @dataclass</title><link>https://eshlox.net/2019/07/28/python-37-@dataclass</link><guid isPermaLink="true">https://eshlox.net/2019/07/28/python-37-@dataclass</guid><description>How to replace a namedtuple with a Python 3.7 dataclass to get a mutable, typed data container with minimal boilerplate.</description><pubDate>Sun, 28 Jul 2019 19:38:36 GMT</pubDate></item><item><title>Adding groups via Django DB migration script and assigning a group to all existing users</title><link>https://eshlox.net/2019/07/27/adding-groups-via-django-db-migration-script-and-assigning-a-group-to-all-existing--users</link><guid isPermaLink="true">https://eshlox.net/2019/07/27/adding-groups-via-django-db-migration-script-and-assigning-a-group-to-all-existing--users</guid><description>How to create Django groups and assign all existing users to a group using a data migration script with RunPython.</description><pubDate>Sat, 27 Jul 2019 19:02:05 GMT</pubDate></item><item><title>Create random data for your Django unit tests using Model Mommy</title><link>https://eshlox.net/2019/06/11/create-random-data-for-your-django-unit-tests-using-model-mommy</link><guid isPermaLink="true">https://eshlox.net/2019/06/11/create-random-data-for-your-django-unit-tests-using-model-mommy</guid><description>How to use Model Mommy to generate random test data for Django models without writing repetitive factory methods.</description><pubDate>Tue, 11 Jun 2019 20:39:48 GMT</pubDate></item><item><title>Integrate SQLAlchemy with Falcon framework (second version)</title><link>https://eshlox.net/2019/05/28/integrate-sqlalchemy-with-falcon-framework-second-version</link><guid isPermaLink="true">https://eshlox.net/2019/05/28/integrate-sqlalchemy-with-falcon-framework-second-version</guid><description>An improved SQLAlchemy session middleware for the Falcon framework that opens a session per request and handles rollback on failure.</description><pubDate>Tue, 28 May 2019 21:14:11 GMT</pubDate></item><item><title>Google App Engine Standard, Python 3.7 and Cloud Tasks</title><link>https://eshlox.net/2019/05/27/google-app-engine-standard-python-37-and-cloud-tasks</link><guid isPermaLink="true">https://eshlox.net/2019/05/27/google-app-engine-standard-python-37-and-cloud-tasks</guid><description>A reusable Python mixin for dispatching Google Cloud Tasks from GAE Standard with support for payload, scheduling, and task deduplication.</description><pubDate>Mon, 27 May 2019 22:04:18 GMT</pubDate></item><item><title>Do you really need a custom API to deliver content for your website and fetch it dynamically?</title><link>https://eshlox.net/2019/05/15/do-you-really-need-a-custom-api-to-deliver-content-for-your-website-and-fetch-it-dynamically</link><guid isPermaLink="true">https://eshlox.net/2019/05/15/do-you-really-need-a-custom-api-to-deliver-content-for-your-website-and-fetch-it-dynamically</guid><description>Why a static site generator like Gatsby with Contentful and Netlify can replace a custom API, caching layer, and backend for content-driven sites.</description><pubDate>Wed, 15 May 2019 20:25:36 GMT</pubDate></item><item><title>Python 3 - Template strings instead of external template engine</title><link>https://eshlox.net/2019/02/10/python-3-template-strings-instead-of-external-template-engine</link><guid isPermaLink="true">https://eshlox.net/2019/02/10/python-3-template-strings-instead-of-external-template-engine</guid><description>How to use Python 3 built-in Template strings to render HTML email templates without pulling in Jinja2 or any other external library.</description><pubDate>Sun, 10 Feb 2019 22:18:24 GMT</pubDate></item><item><title>pipenv and pyenv</title><link>https://eshlox.net/2019/02/10/pipenv-and-pyenv</link><guid isPermaLink="true">https://eshlox.net/2019/02/10/pipenv-and-pyenv</guid><description>A practical introduction to pyenv for managing Python versions and pipenv for managing project dependencies and virtual environments.</description><pubDate>Sun, 10 Feb 2019 20:05:15 GMT</pubDate></item><item><title>How to use nvm with fish shell</title><link>https://eshlox.net/2019/01/27/how-to-use-nvm-with-fish-shell</link><guid isPermaLink="true">https://eshlox.net/2019/01/27/how-to-use-nvm-with-fish-shell</guid><description>How to use nvm in fish shell by installing the bass plugin, which lets you run Bash utilities and scripts from within fish.</description><pubDate>Sun, 27 Jan 2019 19:08:27 GMT</pubDate></item><item><title>macOS - iTerm2, fish, fisher, spacefish, vscode</title><link>https://eshlox.net/2019/01/05/macos-iterm2-fish-fisher-spacefish-vscode</link><guid isPermaLink="true">https://eshlox.net/2019/01/05/macos-iterm2-fish-fisher-spacefish-vscode</guid><description>Step-by-step setup guide for iTerm2, fish shell, fisher, Spacefish prompt, and Powerline fonts on macOS with VS Code integration.</description><pubDate>Sat, 05 Jan 2019 21:32:38 GMT</pubDate></item><item><title>Safari is not so bad!</title><link>https://eshlox.net/2018/11/12/safari-is-not-so-bad</link><guid isPermaLink="true">https://eshlox.net/2018/11/12/safari-is-not-so-bad</guid><description>After years using Chrome and a brief stint with Firefox, I gave Safari a real chance on macOS and iPhone. Here is what I found.</description><pubDate>Mon, 12 Nov 2018 20:03:32 GMT</pubDate></item><item><title>AWS Amplify + React Native - TypeError: Cannot read property &apos;computeModPow&apos; of undefined</title><link>https://eshlox.net/2018/11/12/aws-amplify-react-native-typeerror-cannot-read-property-computemodpow-of-undefined</link><guid isPermaLink="true">https://eshlox.net/2018/11/12/aws-amplify-react-native-typeerror-cannot-read-property-computemodpow-of-undefined</guid><description>How to fix the computeModPow TypeError in React Native with AWS Amplify by linking the Cognito library and updating CocoaPods.</description><pubDate>Mon, 12 Nov 2018 18:27:58 GMT</pubDate></item><item><title>2018: The year of the Linux desktop and why I moved to macOS</title><link>https://eshlox.net/2018/07/09/2018-the-year-of-the-linux-desktop-and-why-i-moved-to-macos</link><guid isPermaLink="true">https://eshlox.net/2018/07/09/2018-the-year-of-the-linux-desktop-and-why-i-moved-to-macos</guid><description>After 17 years on Linux, I switched to a MacBook. Here is what convinced me and why I do not regret the decision.</description><pubDate>Mon, 09 Jul 2018 18:46:35 GMT</pubDate></item><item><title>macOS - Fish, virtualfish, oh-my-fish, nerd-fonts, bobthefish theme</title><link>https://eshlox.net/2018/04/22/macos-fish-virtualfish-oh-my-fish-nerd-fonts-bobthefish-theme</link><guid isPermaLink="true">https://eshlox.net/2018/04/22/macos-fish-virtualfish-oh-my-fish-nerd-fonts-bobthefish-theme</guid><description>Step-by-step guide to setting up Fish shell on macOS with virtualfish, oh-my-fish, nerd-fonts, and the bobthefish theme.</description><pubDate>Sun, 22 Apr 2018 20:35:13 GMT</pubDate></item><item><title>Docker - multi-stage builds</title><link>https://eshlox.net/2018/03/20/docker-multi-stage-builds</link><guid isPermaLink="true">https://eshlox.net/2018/03/20/docker-multi-stage-builds</guid><description>A practical example of Docker multi-stage builds to build a frontend app with Node.js and serve it with a lean Nginx image.</description><pubDate>Tue, 20 Mar 2018 20:18:22 GMT</pubDate></item><item><title>AWS Route53 - configure a simple health check</title><link>https://eshlox.net/2017/12/29/aws-route53-configure-a-simple-health-check</link><guid isPermaLink="true">https://eshlox.net/2017/12/29/aws-route53-configure-a-simple-health-check</guid><description>Step-by-step guide to setting up an AWS Route53 health check with SNS email alerts to get notified when your site goes down.</description><pubDate>Fri, 29 Dec 2017 22:17:50 GMT</pubDate></item><item><title>How to create AWS Route53 hosted zone using domain from OVH</title><link>https://eshlox.net/2017/12/29/how-to-create-aws-route53-hosted-zone-using-domain-from-ovh</link><guid isPermaLink="true">https://eshlox.net/2017/12/29/how-to-create-aws-route53-hosted-zone-using-domain-from-ovh</guid><description>How to create an AWS Route53 hosted zone and update the OVH domain nameservers to point to AWS DNS without causing downtime.</description><pubDate>Fri, 29 Dec 2017 21:39:07 GMT</pubDate></item><item><title>Do you want to use Django for REST API? Consider it.</title><link>https://eshlox.net/2017/08/27/do-you-want-to-use-django-for-rest-api-consider-it</link><guid isPermaLink="true">https://eshlox.net/2017/08/27/do-you-want-to-use-django-for-rest-api-consider-it</guid><description>A comparison of Django vs Falcon for building REST APIs in Python, covering flexibility, trade-offs, and reasons to consider a leaner framework.</description><pubDate>Sun, 27 Aug 2017 18:45:59 GMT</pubDate></item><item><title>How to install powerline for Bash on Fedora with git branch support</title><link>https://eshlox.net/2017/08/10/how-to-install-powerline-for-bash-on-fedora-with-git-branch-support</link><guid isPermaLink="true">https://eshlox.net/2017/08/10/how-to-install-powerline-for-bash-on-fedora-with-git-branch-support</guid><description>How to install Powerline on Fedora, configure it for Bash, and enable the current git branch display in the terminal prompt.</description><pubDate>Thu, 10 Aug 2017 18:50:06 GMT</pubDate></item><item><title>How to install PyCharm on Fedora</title><link>https://eshlox.net/2017/08/08/how-to-install-pycharm-on-fedora</link><guid isPermaLink="true">https://eshlox.net/2017/08/08/how-to-install-pycharm-on-fedora</guid><description>How to download, unpack, and run PyCharm on Fedora without root access, and how to create a desktop entry from the initial configuration screen.</description><pubDate>Tue, 08 Aug 2017 21:59:47 GMT</pubDate></item><item><title>How to install Telegram on Fedora using Flatpak</title><link>https://eshlox.net/2017/08/07/how-to-install-telegram-on-fedora-using-flatpak</link><guid isPermaLink="true">https://eshlox.net/2017/08/07/how-to-install-telegram-on-fedora-using-flatpak</guid><description>How to install the Telegram desktop client on Fedora using Flatpak, including adding the required KDE runtime repository.</description><pubDate>Mon, 07 Aug 2017 19:41:56 GMT</pubDate></item><item><title>Alembic - migration for String length change</title><link>https://eshlox.net/2017/08/06/alembic-migration-for-string-length-change</link><guid isPermaLink="true">https://eshlox.net/2017/08/06/alembic-migration-for-string-length-change</guid><description>How to enable Alembic autogenerate to detect String column length changes by setting compare_type=True in the migration context configuration.</description><pubDate>Sun, 06 Aug 2017 19:53:28 GMT</pubDate></item><item><title>SQLAlchemy Utils, PasswordType field and Alembic migration</title><link>https://eshlox.net/2017/08/06/sqlalchemy-utils-passwordtype-field-and-alembic-migration</link><guid isPermaLink="true">https://eshlox.net/2017/08/06/sqlalchemy-utils-passwordtype-field-and-alembic-migration</guid><description>How to migrate a custom password column to SQLAlchemy Utils PasswordType with Alembic, including fixes for missing imports and the PostgreSQL USING clause.</description><pubDate>Sun, 06 Aug 2017 18:18:56 GMT</pubDate></item><item><title>Git - global .gitignore file</title><link>https://eshlox.net/2017/08/04/git-global-gitignore-file</link><guid isPermaLink="true">https://eshlox.net/2017/08/04/git-global-gitignore-file</guid><description>How to set up a global ~/.gitignore_global file so editor and IDE configs are excluded from every repository without cluttering project-level .gitignore files.</description><pubDate>Fri, 04 Aug 2017 22:01:14 GMT</pubDate></item><item><title>How to install Spotify on Fedora using Flatpak</title><link>https://eshlox.net/2017/08/03/how-to-install-spotify-on-fedora-using-flatpak</link><guid isPermaLink="true">https://eshlox.net/2017/08/03/how-to-install-spotify-on-fedora-using-flatpak</guid><description>How to install Spotify on Fedora as a regular user via Flatpak, without needing root access or adding third-party RPM repositories.</description><pubDate>Thu, 03 Aug 2017 18:19:04 GMT</pubDate></item><item><title>How to install Google Chrome on Fedora</title><link>https://eshlox.net/2017/08/02/how-to-install-google-chrome-on-fedora</link><guid isPermaLink="true">https://eshlox.net/2017/08/02/how-to-install-google-chrome-on-fedora</guid><description>How to add the official Google Chrome repository and install the stable version of Google Chrome on Fedora using dnf.</description><pubDate>Wed, 02 Aug 2017 21:47:52 GMT</pubDate></item><item><title>Hosting Ghost blog on Amazon Lightsail (Ubuntu, Docker)</title><link>https://eshlox.net/2017/08/02/hosting-ghost-blog-on-amazon-lightsail-ubuntu-docker</link><guid isPermaLink="true">https://eshlox.net/2017/08/02/hosting-ghost-blog-on-amazon-lightsail-ubuntu-docker</guid><description>Full walkthrough for running a Ghost blog on Amazon Lightsail with Docker on Ubuntu, including auto-start on boot and a simple update procedure.</description><pubDate>Wed, 02 Aug 2017 21:15:48 GMT</pubDate></item><item><title>Falcon framework - JSON middleware (loads, dumps)</title><link>https://eshlox.net/2017/08/02/falcon-framework-json-middleware-loads-dumps</link><guid isPermaLink="true">https://eshlox.net/2017/08/02/falcon-framework-json-middleware-loads-dumps</guid><description>How to write a Falcon middleware that automatically parses incoming JSON request bodies and serializes response dictionaries back to JSON.</description><pubDate>Wed, 02 Aug 2017 21:06:49 GMT</pubDate></item><item><title>Falcon framework - request data validation, serializer middleware (marshmallow)</title><link>https://eshlox.net/2017/08/02/falcon-framework-request-data-validation-serializer-middleware-marshmallow</link><guid isPermaLink="true">https://eshlox.net/2017/08/02/falcon-framework-request-data-validation-serializer-middleware-marshmallow</guid><description>How to add request data validation to a Falcon API using marshmallow schemas and a custom serializer middleware that returns HTTP 422 on invalid input.</description><pubDate>Wed, 02 Aug 2017 19:43:37 GMT</pubDate></item><item><title>Bash - increase command history size</title><link>https://eshlox.net/2017/08/01/bash-increase-command-history-size</link><guid isPermaLink="true">https://eshlox.net/2017/08/01/bash-increase-command-history-size</guid><description>How to increase the Bash command history size beyond the default 1000 lines by setting HISTSIZE and HISTFILESIZE in your ~/.bashrc file.</description><pubDate>Tue, 01 Aug 2017 21:45:46 GMT</pubDate></item><item><title>How to install IRCCloud desktop client (on Fedora)</title><link>https://eshlox.net/2017/07/31/how-to-install-irccloud-desktop-client-on-fedora</link><guid isPermaLink="true">https://eshlox.net/2017/07/31/how-to-install-irccloud-desktop-client-on-fedora</guid><description>How to install and run the IRCCloud desktop client on Fedora using the AppImage package, including adding a tray icon and desktop entry.</description><pubDate>Mon, 31 Jul 2017 22:46:53 GMT</pubDate></item><item><title>Integrate SQLAlchemy with Falcon framework</title><link>https://eshlox.net/2017/07/28/integrate-sqlalchemy-with-falcon-framework</link><guid isPermaLink="true">https://eshlox.net/2017/07/28/integrate-sqlalchemy-with-falcon-framework</guid><description>How to integrate SQLAlchemy with the Falcon framework using a middleware that creates a scoped database session per request and rolls back on errors.</description><pubDate>Fri, 28 Jul 2017 22:36:08 GMT</pubDate></item><item><title>What is the best blogging platform?</title><link>https://eshlox.net/2017/05/18/what-is-the-best-blogging-platform</link><guid isPermaLink="true">https://eshlox.net/2017/05/18/what-is-the-best-blogging-platform</guid><description>An overview of blogging platforms including WordPress, Ghost, Medium, and static site generators, weighing trade-offs in control, cost, and writing workflow.</description><pubDate>Thu, 18 May 2017 20:40:59 GMT</pubDate></item><item><title>How to install NPM package in a home directory (PyCharm)</title><link>https://eshlox.net/2017/04/29/how-to-install-npm-package-in-a-home-directory-pycharm</link><guid isPermaLink="true">https://eshlox.net/2017/04/29/how-to-install-npm-package-in-a-home-directory-pycharm</guid><description>How to configure npm to install global packages in your home directory without root access, and how to point PyCharm to the correct ESLint path.</description><pubDate>Sat, 29 Apr 2017 20:28:40 GMT</pubDate></item><item><title>How to use Docker with PyCharm</title><link>https://eshlox.net/2017/04/29/how-to-use-docker-with-pycharm</link><guid isPermaLink="true">https://eshlox.net/2017/04/29/how-to-use-docker-with-pycharm</guid><description>How to configure PyCharm to use a Docker or docker-compose container as the remote Python interpreter for a project, with step-by-step instructions.</description><pubDate>Sat, 29 Apr 2017 19:38:48 GMT</pubDate></item><item><title>Fedora 25 - Change grub timeout</title><link>https://eshlox.net/2017/02/11/fedora-25-change-grub-timeout</link><guid isPermaLink="true">https://eshlox.net/2017/02/11/fedora-25-change-grub-timeout</guid><description>How to speed up Fedora boot time by reducing the GRUB timeout to zero seconds via the /etc/default/grub configuration file.</description><pubDate>Sat, 11 Feb 2017 19:03:27 GMT</pubDate></item><item><title>Docker for local development</title><link>https://eshlox.net/2016/11/26/docker-for-local-development</link><guid isPermaLink="true">https://eshlox.net/2016/11/26/docker-for-local-development</guid><description>Why Docker is a great fit for local development: isolated containers per project, a single command to start everything, and consistent environments across the whole team.</description><pubDate>Sat, 26 Nov 2016 22:52:17 GMT</pubDate></item><item><title>Dockerize Behave (Selenium) tests</title><link>https://eshlox.net/2016/11/22/dockerize-behave-selenium-tests</link><guid isPermaLink="true">https://eshlox.net/2016/11/22/dockerize-behave-selenium-tests</guid><description>How to run Behave Selenium tests inside a Docker container with Chrome, xvfb for headless mode, pdb support, and access to a locally running application on the host.</description><pubDate>Tue, 22 Nov 2016 22:11:44 GMT</pubDate></item><item><title>Fedora 25 - best distro ever!</title><link>https://eshlox.net/2016/11/21/fedora-25-best-distro-ever</link><guid isPermaLink="true">https://eshlox.net/2016/11/21/fedora-25-best-distro-ever</guid><description>First impressions of Fedora 25 with Gnome and Wayland. NVIDIA Optimus works out of the box, printer setup is instant, and Flatpak finally brings Spotify without root.</description><pubDate>Mon, 21 Nov 2016 21:21:46 GMT</pubDate></item><item><title>2017: The year of the Linux desktop</title><link>https://eshlox.net/2016/11/20/2017-the-year-of-the-linux-desktop</link><guid isPermaLink="true">https://eshlox.net/2016/11/20/2017-the-year-of-the-linux-desktop</guid><description>After two months on Windows 10, Docker issues and git line-ending problems sent me back to Linux. An honest look at what worked, what did not, and why Linux still wins for programming.</description><pubDate>Sun, 20 Nov 2016 21:38:33 GMT</pubDate></item><item><title>Windows 10 - update Intel Graphics Drivers</title><link>https://eshlox.net/2016/04/17/windows-10-update-intel-graphics-drivers</link><guid isPermaLink="true">https://eshlox.net/2016/04/17/windows-10-update-intel-graphics-drivers</guid><description>How to manually install the latest Intel Graphics drivers on Windows 10 when the automatic update is blocked by a manufacturer-customized driver, restoring HDMI audio output.</description><pubDate>Sun, 17 Apr 2016 18:31:08 GMT</pubDate></item><item><title>2016: The year of the Linux desktop</title><link>https://eshlox.net/2016/03/26/2016-the-year-of-the-linux-desktop</link><guid isPermaLink="true">https://eshlox.net/2016/03/26/2016-the-year-of-the-linux-desktop</guid><description>After 14 years on Linux, switching to Windows 10 on an Asus Zenbook. A look at what finally tipped the balance and how Docker made programming on Windows viable.</description><pubDate>Sat, 26 Mar 2016 19:18:24 GMT</pubDate></item><item><title>Let’s Encrypt, NGINX and Ubuntu</title><link>https://eshlox.net/2015/12/07/lets-encrypt-nginx-and-ubuntu</link><guid isPermaLink="true">https://eshlox.net/2015/12/07/lets-encrypt-nginx-and-ubuntu</guid><description>How to generate a free SSL certificate with Let’s Encrypt and configure NGINX on Ubuntu to serve your site over HTTPS with strong TLS settings.</description><pubDate>Mon, 07 Dec 2015 21:17:51 GMT</pubDate></item><item><title>Google Cloud Endpoints, AngularJS and Json Web Tokens</title><link>https://eshlox.net/2015/08/18/google-cloud-endpoints-angularjs-and-json-web-tokens</link><guid isPermaLink="true">https://eshlox.net/2015/08/18/google-cloud-endpoints-angularjs-and-json-web-tokens</guid><description>How to use JWT authorization with Google Cloud Endpoints and AngularJS without the GAPI client library, using a custom Angular service and a dedicated HTTP header.</description><pubDate>Tue, 18 Aug 2015 22:25:46 GMT</pubDate></item><item><title>Atom configuration for Web project (Python, JavaScript, HTML, SCSS, etc)</title><link>https://eshlox.net/2015/08/17/atom-configuration-for-web-project-python-javascript-html-scss-etc</link><guid isPermaLink="true">https://eshlox.net/2015/08/17/atom-configuration-for-web-project-python-javascript-html-scss-etc</guid><description>A walkthrough of setting up the Atom editor for web development with linters for Python, JavaScript, HTML, SCSS, and useful plugins like autocomplete and git integration.</description><pubDate>Mon, 17 Aug 2015 19:17:03 GMT</pubDate></item><item><title>Ubuntu (15.04) and Epson SX130 printer</title><link>https://eshlox.net/2015/08/16/ubuntu-15-04-and-epson-sx130-inject</link><guid isPermaLink="true">https://eshlox.net/2015/08/16/ubuntu-15-04-and-epson-sx130-inject</guid><description>How to install the Epson SX130 printer driver on Ubuntu 15.04 using dpkg when the standard add-printer workflow fails due to unmet dependencies.</description><pubDate>Sun, 16 Aug 2015 20:55:16 GMT</pubDate></item><item><title>How to upload file to GCS from GAE/GCE using Python</title><link>https://eshlox.net/2015/08/14/how-to-upload-file-to-gcs-from-gae-gce-using-python</link><guid isPermaLink="true">https://eshlox.net/2015/08/14/how-to-upload-file-to-gcs-from-gae-gce-using-python</guid><description>How to upload files to Google Cloud Storage from Google App Engine or Compute Engine using the Google API Python Client library and MediaIoBaseUpload.</description><pubDate>Fri, 14 Aug 2015 18:26:57 GMT</pubDate></item><item><title>Sending e-mails from Google App Engine using Mandrill</title><link>https://eshlox.net/2015/08/12/sending-e-mails-from-google-app-engine-using-mandrill</link><guid isPermaLink="true">https://eshlox.net/2015/08/12/sending-e-mails-from-google-app-engine-using-mandrill</guid><description>A simple Python class for sending emails via Mandrill from Google App Engine using urlfetch and deferred tasks, working around the broken requests library on GAE.</description><pubDate>Wed, 12 Aug 2015 19:23:27 GMT</pubDate></item><item><title>How to install pip, virtualenv and virtualenvwrapper on Linux</title><link>https://eshlox.net/2015/08/10/how-to-install-pip-virtualenv-and-virtualenvwrapper-on-linux</link><guid isPermaLink="true">https://eshlox.net/2015/08/10/how-to-install-pip-virtualenv-and-virtualenvwrapper-on-linux</guid><description>How to install a current version of pip, virtualenv, and virtualenvwrapper in your home directory on Linux, bypassing outdated system repository packages.</description><pubDate>Mon, 10 Aug 2015 20:56:14 GMT</pubDate></item><item><title>Is Linux for desktop use? Thoughts after years of use.</title><link>https://eshlox.net/2015/03/30/is-linux-for-desktop-use-thoughts-after-years-of-use</link><guid isPermaLink="true">https://eshlox.net/2015/03/30/is-linux-for-desktop-use-thoughts-after-years-of-use</guid><description>Personal reflections on 10 years of Linux as a desktop OS, comparing it to Windows 10 and considering Chromebooks, touching on hardware support, software, and programming needs.</description><pubDate>Mon, 30 Mar 2015 18:04:08 GMT</pubDate></item><item><title>Ghost (blogging platform) on Fedora (21)</title><link>https://eshlox.net/2015/01/30/ghost-blogging-platform-on-fedora</link><guid isPermaLink="true">https://eshlox.net/2015/01/30/ghost-blogging-platform-on-fedora</guid><description>Step-by-step guide to setting up the Ghost blogging platform on Fedora using Nginx as a reverse proxy and Supervisor to keep the Node.js process running.</description><pubDate>Fri, 30 Jan 2015 21:30:21 GMT</pubDate></item><item><title>Google App Engine - Get the least loaded queue</title><link>https://eshlox.net/2015/01/19/google-app-engine-get-the-least-loaded-queue</link><guid isPermaLink="true">https://eshlox.net/2015/01/19/google-app-engine-get-the-least-loaded-queue</guid><description>A Python method for distributing tasks across multiple Google App Engine queues by selecting the least loaded one, helping reduce task backlog and improve throughput.</description><pubDate>Mon, 19 Jan 2015 22:33:40 GMT</pubDate></item><item><title>Google App Engine - prevent of tasks duplication in the queues</title><link>https://eshlox.net/2015/01/19/google-app-engine-prevent-of-tasks-duplication-in-the-queues</link><guid isPermaLink="true">https://eshlox.net/2015/01/19/google-app-engine-prevent-of-tasks-duplication-in-the-queues</guid><description>How to prevent duplicate tasks in Google App Engine queues using unique task names and countdown delays, with a Python helper that handles TaskAlreadyExistsError and TombstonedTaskError.</description><pubDate>Mon, 19 Jan 2015 20:25:41 GMT</pubDate></item><item><title>Ferris 2 (Google App Engine), JSON Web Token and CORS</title><link>https://eshlox.net/2015/01/18/ferris-2-google-app-engine-and-json-web-token</link><guid isPermaLink="true">https://eshlox.net/2015/01/18/ferris-2-google-app-engine-and-json-web-token</guid><description>How to implement JWT authorization and fix CORS issues in a Ferris 2 application on Google App Engine, including a working OPTIONS request decorator.</description><pubDate>Sun, 18 Jan 2015 18:06:46 GMT</pubDate></item><item><title>Google App Engine: ImportError: No module named _ssl</title><link>https://eshlox.net/2015/01/17/google-app-engine-importerror-no-module-named-_ssl</link><guid isPermaLink="true">https://eshlox.net/2015/01/17/google-app-engine-importerror-no-module-named-_ssl</guid><description>Fix for the ImportError about the missing _ssl module on Google App Engine. The solution is simply adding the ssl library to the app.yaml libraries section.</description><pubDate>Sat, 17 Jan 2015 20:07:28 GMT</pubDate></item><item><title>Nodeenv and error code 127</title><link>https://eshlox.net/2015/01/16/nodeenv-and-error-code-127</link><guid isPermaLink="true">https://eshlox.net/2015/01/16/nodeenv-and-error-code-127</guid><description>Why nodeenv fails with error code 127 on Fedora, and how missing curl or tar causes a misleading download error. The fix is a one-line yum install.</description><pubDate>Fri, 16 Jan 2015 21:53:27 GMT</pubDate></item><item><title>Google App Engine: ImportError: No module named google.appengine.dist27.threading</title><link>https://eshlox.net/2015/01/16/google-app-engine-importerror-no-module-named-google-appengine-dist27-threading</link><guid isPermaLink="true">https://eshlox.net/2015/01/16/google-app-engine-importerror-no-module-named-google-appengine-dist27-threading</guid><description>Fix for ImportError on google.appengine.dist27.threading caused by accidentally adding the App Engine SDK directory to the skip_files list in app.yaml.</description><pubDate>Fri, 16 Jan 2015 18:11:42 GMT</pubDate></item><item><title>How to install Skype on Fedora (21) and resolve no sound problem</title><link>https://eshlox.net/2015/01/14/how-to-install-spotify-on-fedora-21</link><guid isPermaLink="true">https://eshlox.net/2015/01/14/how-to-install-spotify-on-fedora-21</guid><description>How to install Skype on Fedora 21 using RPM Fusion and lpf-skype, and how to fix the no-sound issue by installing the required PulseAudio libraries.</description><pubDate>Wed, 14 Jan 2015 21:27:04 GMT</pubDate></item><item><title>NDB equivalent for db.class_for_kind</title><link>https://eshlox.net/2015/01/14/ndb-equivalent-for-db-class_for_kind</link><guid isPermaLink="true">https://eshlox.net/2015/01/14/ndb-equivalent-for-db-class_for_kind</guid><description>A quick note on how to replace db.class_for_kind when migrating from DB to NDB on Google App Engine, using ndb.Model._kind_map to look up a model by kind string.</description><pubDate>Wed, 14 Jan 2015 18:16:32 GMT</pubDate></item><item><title>Google App Engine 1.9.17 - removed old dev_appserver</title><link>https://eshlox.net/2015/01/13/google-app-engine-1-9-17-removed-old-dev_appserver</link><guid isPermaLink="true">https://eshlox.net/2015/01/13/google-app-engine-1-9-17-removed-old-dev_appserver</guid><description>Quick fix for the ImportError caused by Google App Engine 1.9.17 removing the old dev_appserver. Shows how to migrate to the new devappserver2 API.</description><pubDate>Tue, 13 Jan 2015 18:32:10 GMT</pubDate></item><item><title>Quick fix - zc.buildout, setuptools and virtualenv</title><link>https://eshlox.net/2015/01/12/quick-fix-zc-buildout-and-setuptools</link><guid isPermaLink="true">https://eshlox.net/2015/01/12/quick-fix-zc-buildout-and-setuptools</guid><description>How to fix the zc.buildout version conflict error caused by virtualenv bundling an outdated setuptools. The quick fix is running pip install -U setuptools.</description><pubDate>Mon, 12 Jan 2015 21:33:37 GMT</pubDate></item><item><title>Javascript, nginx and prerender.io - help for search crawlers to render single page applications</title><link>https://eshlox.net/2014/09/29/javascript-nginx-and-prerenderio</link><guid isPermaLink="true">https://eshlox.net/2014/09/29/javascript-nginx-and-prerenderio</guid><description>Nginx and prerender.io configuration for serving pre-rendered HTML to search engine crawlers and social network bots from an AngularJS single-page application.</description><pubDate>Mon, 29 Sep 2014 22:53:31 GMT</pubDate></item><item><title>Short story about rendering HTML, client side vs server side</title><link>https://eshlox.net/2014/05/04/short-story-about-rendering-html-client-side-vs-server-side</link><guid isPermaLink="true">https://eshlox.net/2014/05/04/short-story-about-rendering-html-client-side-vs-server-side</guid><description>A personal account of rebuilding a site with AngularJS and a Pyramid API, and the pros and cons of client-side vs server-side rendering discovered along the way.</description><pubDate>Sun, 04 May 2014 20:52:51 GMT</pubDate></item><item><title>AngularJS - Single Page Application and lazy loading images</title><link>https://eshlox.net/2014/04/06/angularjs-single-page-application-and-lazy-loading-images</link><guid isPermaLink="true">https://eshlox.net/2014/04/06/angularjs-single-page-application-and-lazy-loading-images</guid><description>An AngularJS directive that integrates jQuery Lazy Load into a single-page application, including the skip_invisible fix needed for images without set dimensions.</description><pubDate>Sun, 06 Apr 2014 18:01:47 GMT</pubDate></item><item><title>Creating thumbnails</title><link>https://eshlox.net/2014/03/30/creating-thumbnails</link><guid isPermaLink="true">https://eshlox.net/2014/03/30/creating-thumbnails</guid><description>A performance comparison between Pillow and ImageMagick for resizing images and adding a logo, covering speed, output size, and animated GIF support.</description><pubDate>Sun, 30 Mar 2014 22:04:34 GMT</pubDate></item><item><title>Running Stepmania on Linux</title><link>https://eshlox.net/2014/03/29/running-stepmania-on-linux</link><guid isPermaLink="true">https://eshlox.net/2014/03/29/running-stepmania-on-linux</guid><description>How to fix a StepMania 5 crash on Linux caused by a PCRE UTF-8 issue by compiling from source with the GTK2 flag disabled.</description><pubDate>Sat, 29 Mar 2014 22:23:49 GMT</pubDate></item><item><title>Google App Engine - MapReduce - Selecting a queue</title><link>https://eshlox.net/2013/10/12/google-app-engine-mapreduce-selecting-a-queue</link><guid isPermaLink="true">https://eshlox.net/2013/10/12/google-app-engine-mapreduce-selecting-a-queue</guid><description>A quick tip on how to assign a specific task queue to a Google App Engine MapReduce job using the queue_name parameter in the YAML configuration.</description><pubDate>Sat, 12 Oct 2013 20:07:58 GMT</pubDate></item><item><title>Google App Engine - Creating and restoring a backup of Datastore</title><link>https://eshlox.net/2013/10/12/google-app-engine-creating-and-restoring-a-backup-of-datastore</link><guid isPermaLink="true">https://eshlox.net/2013/10/12/google-app-engine-creating-and-restoring-a-backup-of-datastore</guid><description>Practical notes on working around GAE Datastore backup failures by backing up each Entity Kind separately using a task queue and Python code.</description><pubDate>Sat, 12 Oct 2013 20:07:45 GMT</pubDate></item><item><title>Zurb Foundation 4 - Center elements in Top Bar navigation</title><link>https://eshlox.net/2013/05/10/zurb-foundation-4-center-elements-in-top-bar-navigation</link><guid isPermaLink="true">https://eshlox.net/2013/05/10/zurb-foundation-4-center-elements-in-top-bar-navigation</guid><description>A minimal SCSS snippet to horizontally center navigation items inside the Zurb Foundation 4 Top Bar component using display table and auto margins.</description><pubDate>Fri, 10 May 2013 19:01:26 GMT</pubDate></item><item><title>Django templatetags, ImportError</title><link>https://eshlox.net/2013/04/16/django-templatetags-importerror</link><guid isPermaLink="true">https://eshlox.net/2013/04/16/django-templatetags-importerror</guid><description>A debugging note about a Django ImportError caused by a templatetag file sharing the same name as the app, and how renaming the file fixes it.</description><pubDate>Tue, 16 Apr 2013 20:36:43 GMT</pubDate></item><item><title>A simple information about cookies (EU cookies law)</title><link>https://eshlox.net/2013/04/16/a-simple-information-about-cookies-eu-cookies-law</link><guid isPermaLink="true">https://eshlox.net/2013/04/16/a-simple-information-about-cookies-eu-cookies-law</guid><description>A minimal cookie consent banner implementation using jQuery and jquery-cookie, with HTML, CSS, and JavaScript code to display and dismiss the notice.</description><pubDate>Tue, 16 Apr 2013 20:11:08 GMT</pubDate></item><item><title>Google Play and Python - Checking the purchase and consumption status of an inapp item</title><link>https://eshlox.net/2013/04/08/google-play-and-python-checking-the-purchase-and-consumption-status-of-an-inapp-item</link><guid isPermaLink="true">https://eshlox.net/2013/04/08/google-play-and-python-checking-the-purchase-and-consumption-status-of-an-inapp-item</guid><description>How to use the Google Android Publisher API with Python to verify in-app purchase status, handle OAuth tokens, and check payment details.</description><pubDate>Mon, 08 Apr 2013 19:04:09 GMT</pubDate></item><item><title>Watch last logs from IT world! ;-) Do you have something interesting to insert? Do it! ;-)</title><link>https://eshlox.net/2012/09/14/watch-last-logs-from-it-world-lastlogit</link><guid isPermaLink="true">https://eshlox.net/2012/09/14/watch-last-logs-from-it-world-lastlogit</guid><description>An introduction to lastlog.it, a Django-based community site for sharing funny and interesting IT-related images, videos, and code snippets.</description><pubDate>Fri, 14 Sep 2012 22:30:06 GMT</pubDate></item><item><title>SphinxSearch and Django on Ubuntu</title><link>https://eshlox.net/2012/09/13/sphinxsearch-and-django-on-ubuntu</link><guid isPermaLink="true">https://eshlox.net/2012/09/13/sphinxsearch-and-django-on-ubuntu</guid><description>How to install and configure SphinxSearch on Ubuntu and integrate it into a Django project, including configuration, indexing, and a sample search view.</description><pubDate>Thu, 13 Sep 2012 19:12:08 GMT</pubDate></item><item><title>Nginx, Uwsgi, Virtualenv and Django on Ubuntu 12.04</title><link>https://eshlox.net/2012/09/11/nginx-uwsgi-virtualenv-and-django-ubuntu-1204</link><guid isPermaLink="true">https://eshlox.net/2012/09/11/nginx-uwsgi-virtualenv-and-django-ubuntu-1204</guid><description>A concise walkthrough for setting up Nginx, uWSGI, Virtualenv, and Django on Ubuntu 12.04 with sample configuration files for both Nginx and uWSGI.</description><pubDate>Tue, 11 Sep 2012 18:12:15 GMT</pubDate></item><item><title>Django-filetags</title><link>https://eshlox.net/2012/09/04/django-filetags</link><guid isPermaLink="true">https://eshlox.net/2012/09/04/django-filetags</guid><description>A Django file manager app with tag-based organization, autocomplete, MIME type filtering, thumbnail generation, and built-in user permissions.</description><pubDate>Tue, 04 Sep 2012 21:22:22 GMT</pubDate></item><item><title>Nginx, Uwsgi, Virtualenv and Django on Gentoo</title><link>https://eshlox.net/2012/08/25/nginx-uwsgi-virtualenv-and-django-on-gentoo</link><guid isPermaLink="true">https://eshlox.net/2012/08/25/nginx-uwsgi-virtualenv-and-django-on-gentoo</guid><description>Step-by-step guide to installing and configuring Nginx, uWSGI, Virtualenv, and Django on Gentoo Linux with full configuration file examples.</description><pubDate>Sat, 25 Aug 2012 19:29:35 GMT</pubDate></item><item><title>Simple spam protection for email addresses using jQuery</title><link>https://eshlox.net/2012/08/22/simple-spam-protection-for-email-addresses-using-jquery</link><guid isPermaLink="true">https://eshlox.net/2012/08/22/simple-spam-protection-for-email-addresses-using-jquery</guid><description>A short jQuery snippet that hides email addresses in HTML by obfuscating them in an element&apos;s id attribute and revealing them only on click.</description><pubDate>Wed, 22 Aug 2012 20:35:47 GMT</pubDate></item><item><title>Nested, infinite dictionary in python</title><link>https://eshlox.net/2012/08/22/nested-infinite-dictionary-in-python</link><guid isPermaLink="true">https://eshlox.net/2012/08/22/nested-infinite-dictionary-in-python</guid><description>A Python implementation of a nested dictionary that auto-creates missing keys on access, replicating the behavior of PHP&apos;s auto-vivification for arrays.</description><pubDate>Wed, 22 Aug 2012 19:23:13 GMT</pubDate></item><item><title>Django, reStructuredText and image thumbnails</title><link>https://eshlox.net/2012/08/21/django-restructuredtext-and-image-thumbnails</link><guid isPermaLink="true">https://eshlox.net/2012/08/21/django-restructuredtext-and-image-thumbnails</guid><description>A custom reStructuredText directive for Django that generates image thumbnails using sorl.thumbnail and returns the appropriate HTML tags.</description><pubDate>Tue, 21 Aug 2012 22:18:27 GMT</pubDate></item><item><title>Django - unique online visitors counter</title><link>https://eshlox.net/2012/08/16/django-unique-online-visitors-counter</link><guid isPermaLink="true">https://eshlox.net/2012/08/16/django-unique-online-visitors-counter</guid><description>A simple Django middleware that tracks the number of unique online users by storing IP addresses in memcached and exposing the count to templates.</description><pubDate>Thu, 16 Aug 2012 19:44:01 GMT</pubDate></item><item><title>Django, LDAP and SSL</title><link>https://eshlox.net/2012/08/14/django-ldap-and-ssl</link><guid isPermaLink="true">https://eshlox.net/2012/08/14/django-ldap-and-ssl</guid><description>How to set up a custom Django authentication backend that allows regular users to log in via LDAP over SSL while admins keep password-based access.</description><pubDate>Tue, 14 Aug 2012 19:40:26 GMT</pubDate></item><item><title>Gentoo - speeding up the compilation time</title><link>https://eshlox.net/2012/07/29/gentoo-speeding-up-the-compilation-time</link><guid isPermaLink="true">https://eshlox.net/2012/07/29/gentoo-speeding-up-the-compilation-time</guid><description>How to speed up Gentoo package compilation by mounting Portage&apos;s TMPDIR on a tmpfs partition, with benchmark results comparing standard vs tmpfs builds.</description><pubDate>Sun, 29 Jul 2012 20:56:42 GMT</pubDate></item><item><title>Kmail. Unknown error. (Unable to fetch item from backend)</title><link>https://eshlox.net/2012/02/06/kmail-unknown-error-unable-to-fetch-item-from-backend</link><guid isPermaLink="true">https://eshlox.net/2012/02/06/kmail-unknown-error-unable-to-fetch-item-from-backend</guid><description>Jak naprawić błąd &quot;Unable to fetch item from backend&quot; w KMailu spowodowany pustym plikiem w katalogu skrzynki odbiorczej Maildir.</description><pubDate>Mon, 06 Feb 2012 22:37:26 GMT</pubDate></item><item><title>File input. Zastąpienie go własnym elementem za pomocą jquery</title><link>https://eshlox.net/2012/01/26/file-input-zastapienie-go-wlasnym-elementem-za-pomoca-jquery</link><guid isPermaLink="true">https://eshlox.net/2012/01/26/file-input-zastapienie-go-wlasnym-elementem-za-pomoca-jquery</guid><description>Jak za pomocą jQuery i CSS ukryć standardowy file input i zastąpić go dowolnym elementem HTML, np. przyciskiem.</description><pubDate>Thu, 26 Jan 2012 22:21:14 GMT</pubDate></item><item><title>Linux - moja droga</title><link>https://eshlox.net/2011/08/29/linux-moja-droga</link><guid isPermaLink="true">https://eshlox.net/2011/08/29/linux-moja-droga</guid><description>Historia przygody z Linuksem: od Red Hata i Aurox przez Gentoo, Arch i Slackware aż po wybór Kubuntu jako systemu codziennego użytku i przemyślenia na ten temat.</description><pubDate>Mon, 29 Aug 2011 20:31:39 GMT</pubDate></item><item><title>Kubuntu i NVIDIA Optimus</title><link>https://eshlox.net/2011/08/24/kubuntu-i-nvidia-optimus</link><guid isPermaLink="true">https://eshlox.net/2011/08/24/kubuntu-i-nvidia-optimus</guid><description>Jak uruchomić technologię NVIDIA Optimus w Kubuntu za pomocą projektu Bumblebee, z instalacją sterowników i porównaniem wydajności kart Intel i NVIDIA.</description><pubDate>Wed, 24 Aug 2011 21:57:21 GMT</pubDate></item><item><title>Lista wszystkich miast i województw w bazie danych</title><link>https://eshlox.net/2011/07/25/lista-wszystkich-miast-i-wojewodztw-w-bazie-danych</link><guid isPermaLink="true">https://eshlox.net/2011/07/25/lista-wszystkich-miast-i-wojewodztw-w-bazie-danych</guid><description>Jak za pomocą Pythona i danych z rejestru TERYT wygenerować instrukcje SQL z listą wszystkich polskich miast i województw do bazy danych Django.</description><pubDate>Mon, 25 Jul 2011 20:57:42 GMT</pubDate></item><item><title>Uczelnia SWSPIZ i zabezpieczenia internetowych bibliotek</title><link>https://eshlox.net/2011/07/09/uczelnia-swspiz-i-zabezpieczenia-internetowych-bibliotek</link><guid isPermaLink="true">https://eshlox.net/2011/07/09/uczelnia-swspiz-i-zabezpieczenia-internetowych-bibliotek</guid><description>Analiza słabości zabezpieczeń dostępu do cyfrowych bibliotek uczelni SWSPIZ: trywialne hasła oparte na datach urodzenia i publicznie dostępne dane logowania.</description><pubDate>Sat, 09 Jul 2011 22:10:57 GMT</pubDate></item><item><title>Django, buildout i megiteam</title><link>https://eshlox.net/2011/07/09/django-buildout-i-megiteam</link><guid isPermaLink="true">https://eshlox.net/2011/07/09/django-buildout-i-megiteam</guid><description>Jak uruchomić projekt Django z użyciem zc.buildout na hostingu Megiteam, z konfiguracją PYTHONPATH i dynamicznym importem ścieżek pakietów.</description><pubDate>Sat, 09 Jul 2011 21:51:26 GMT</pubDate></item><item><title>Nasza klasa - prosty bot, część 3</title><link>https://eshlox.net/2010/08/12/nasza-klasa-prosty-bot-czesc-3</link><guid isPermaLink="true">https://eshlox.net/2010/08/12/nasza-klasa-prosty-bot-czesc-3</guid><description>Jak pobrać listę znajomych danego profilu na Naszej Klasie za pomocą curl i PHP, wyodrębnić unikalne numery profili i użyć ich do masowego zapraszania.</description><pubDate>Thu, 12 Aug 2010 18:20:12 GMT</pubDate></item><item><title>Nasza klasa - prosty bot, część 2</title><link>https://eshlox.net/2010/08/11/nasza-klasa-prosty-bot-czesc-2</link><guid isPermaLink="true">https://eshlox.net/2010/08/11/nasza-klasa-prosty-bot-czesc-2</guid><description>Rozszerzenie bota do Naszej Klasy o możliwość wysyłania zaproszeń do znajomych z filtrowaniem po mieście za pomocą wyrażeń regularnych i curl.</description><pubDate>Wed, 11 Aug 2010 22:29:41 GMT</pubDate></item><item><title>Nasza klasa - prosty bot, część 1</title><link>https://eshlox.net/2010/08/10/nasza-klasa-prosty-bot-czesc-1</link><guid isPermaLink="true">https://eshlox.net/2010/08/10/nasza-klasa-prosty-bot-czesc-1</guid><description>Jak napisać prostego bota w PHP i curl do automatycznego odwiedzania profili na portalu Nasza Klasa, z obsługą sesji i limitowaniem żądań.</description><pubDate>Tue, 10 Aug 2010 21:58:32 GMT</pubDate></item><item><title>Ncurses - przezroczyste tło</title><link>https://eshlox.net/2005/06/09/ncurses-przezroczyste-tlo</link><guid isPermaLink="true">https://eshlox.net/2005/06/09/ncurses-przezroczyste-tlo</guid><description>Jak uzyskać przezroczyste tło w aplikacjach ncurses w C za pomocą funkcji use_default_colors() i ustawienia koloru tła na wartość -1.</description><pubDate>Thu, 09 Jun 2005 18:38:07 GMT</pubDate></item><item><title>Jak ustawić nazwę terminala?</title><link>https://eshlox.net/2005/04/26/jak-ustawic-nazwe-terminala</link><guid isPermaLink="true">https://eshlox.net/2005/04/26/jak-ustawic-nazwe-terminala</guid><description>Jak programowo zmienić tytuł wyświetlany na belce okna terminala w C za pomocą sekwencji sterującej wypisywanej na standardowe wyjście.</description><pubDate>Tue, 26 Apr 2005 21:34:15 GMT</pubDate></item><item><title>Pobieranie stringów w ncurses</title><link>https://eshlox.net/2005/03/18/pobieranie-stringow-w-ncurses</link><guid isPermaLink="true">https://eshlox.net/2005/03/18/pobieranie-stringow-w-ncurses</guid><description>Jak wczytywać tekst z klawiatury w aplikacjach ncurses za pomocą funkcji mvwgetnstr(), z uwagami o ustawieniu trybu echo i konwersji na int.</description><pubDate>Fri, 18 Mar 2005 21:36:48 GMT</pubDate></item><item><title>Ncurses - usunięcie kursora</title><link>https://eshlox.net/2005/02/27/ncurses-usuniecie-kursora</link><guid isPermaLink="true">https://eshlox.net/2005/02/27/ncurses-usuniecie-kursora</guid><description>Jak ukryć lub zmienić widoczność kursora w aplikacjach ncurses za pomocą funkcji curs_set() z wartościami 0, 1 lub 2.</description><pubDate>Sun, 27 Feb 2005 21:06:18 GMT</pubDate></item><item><title>Ncurses - zapamiętanie wyglądu okna</title><link>https://eshlox.net/2005/02/27/ncurses-zapamietanie-wygladu-okna</link><guid isPermaLink="true">https://eshlox.net/2005/02/27/ncurses-zapamietanie-wygladu-okna</guid><description>Jak używać funkcji touchwin() w ncurses, aby przywrócić zawartość okna po usunięciu nakładającego się okna podrzędnego, z przykładem w C++.</description><pubDate>Sun, 27 Feb 2005 18:25:46 GMT</pubDate></item><item><title>Jak wyświetlić ilość plików w katalogu używając PHP?</title><link>https://eshlox.net/2005/01/30/jak-wyswietlic-ilosc-plikow-w-katalogu-uzywajac-php</link><guid isPermaLink="true">https://eshlox.net/2005/01/30/jak-wyswietlic-ilosc-plikow-w-katalogu-uzywajac-php</guid><description>Krótki fragment kodu PHP do zliczania plików w podanym katalogu z użyciem opendir i readdir, z pominięciem podkatalogów i wpisów . oraz ...</description><pubDate>Sun, 30 Jan 2005 22:39:54 GMT</pubDate></item><item><title>Divy obok siebie.</title><link>https://eshlox.net/2005/01/29/divy-obok-siebie</link><guid isPermaLink="true">https://eshlox.net/2005/01/29/divy-obok-siebie</guid><description>Jak w CSS ustawić elementy div obok siebie w trzech kolumnach za pomocą właściwości float, jako alternatywa dla układu opartego na tabelach.</description><pubDate>Sat, 29 Jan 2005 18:31:33 GMT</pubDate></item><item><title>Stat4u i xhtml</title><link>https://eshlox.net/2005/01/18/stat4u-i-xhtml</link><guid isPermaLink="true">https://eshlox.net/2005/01/18/stat4u-i-xhtml</guid><description>Jak poprawnie osadzić kod statystyk stat4u na stronie zgodnej z XHTML, z użyciem sekcji CDATA, aby uniknąć błędów walidacji.</description><pubDate>Tue, 18 Jan 2005 20:06:36 GMT</pubDate></item><item><title>Jak ukryć błędy na stronie (php)</title><link>https://eshlox.net/2005/01/01/jak-ukryc-bledy-na-stronie-php</link><guid isPermaLink="true">https://eshlox.net/2005/01/01/jak-ukryc-bledy-na-stronie-php</guid><description>Jak kontrolować wyświetlanie błędów w PHP za pomocą funkcji error_reporting(), w tym całkowite ich ukrycie lub wyłączenie komunikatów notice.</description><pubDate>Sat, 01 Jan 2005 20:51:56 GMT</pubDate></item><item><title>Tvtime</title><link>https://eshlox.net/2004/12/26/tvtime</link><guid isPermaLink="true">https://eshlox.net/2004/12/26/tvtime</guid><description>Konfiguracja programu tvtime do oglądania telewizji w Linuksie: wymagane opcje kernela, ustawienia obrazu, wyszukiwanie i ręczne porządkowanie kanałów.</description><pubDate>Sun, 26 Dec 2004 22:25:03 GMT</pubDate></item><item><title>Wav do mp3</title><link>https://eshlox.net/2004/12/25/wav-do-mp3</link><guid isPermaLink="true">https://eshlox.net/2004/12/25/wav-do-mp3</guid><description>Jak konwertować pliki WAV do MP3 w Linuksie za pomocą programu lame, z przykładową komendą ustawiającą bitrate i tryb stereo.</description><pubDate>Sat, 25 Dec 2004 22:37:16 GMT</pubDate></item><item><title>Gentoo - opcja linguas</title><link>https://eshlox.net/2004/11/29/gentoo-opcja-linguas</link><guid isPermaLink="true">https://eshlox.net/2004/11/29/gentoo-opcja-linguas</guid><description>Jak ustawić opcję LINGUAS w pliku make.conf w Gentoo, aby podczas kompilacji tworzone było tylko wybrane tłumaczenie programów.</description><pubDate>Mon, 29 Nov 2004 22:19:51 GMT</pubDate></item><item><title>Prosty licznik kliknięć w PHP</title><link>https://eshlox.net/2004/11/29/prosty-licznik-klikniec-w-php</link><guid isPermaLink="true">https://eshlox.net/2004/11/29/prosty-licznik-klikniec-w-php</guid><description>Prosty skrypt PHP zliczający wyświetlenia strony i zapisujący wyniki do pliku tekstowego, gotowy do dołączenia na dowolnej podstronie.</description><pubDate>Mon, 29 Nov 2004 18:21:50 GMT</pubDate></item><item><title>Algorytm Euklidesa</title><link>https://eshlox.net/2004/11/20/algorytm-euklidesa</link><guid isPermaLink="true">https://eshlox.net/2004/11/20/algorytm-euklidesa</guid><description>Opis algorytmu Euklidesa do obliczania największego wspólnego dzielnika (NWD) dwóch liczb, z przykładami i implementacją w C++.</description><pubDate>Sat, 20 Nov 2004 20:19:56 GMT</pubDate></item><item><title>Zabezpieczanie systemu</title><link>https://eshlox.net/2004/11/11/zabezpieczanie-systemu</link><guid isPermaLink="true">https://eshlox.net/2004/11/11/zabezpieczanie-systemu</guid><description>Praktyczne porady dotyczące bezpieczeństwa systemu Linux: aktualizacje, polityka haseł, ograniczenie uprawnień, konfiguracja bootloadera i wyłączanie zbędnych usług.</description><pubDate>Thu, 11 Nov 2004 21:02:54 GMT</pubDate></item><item><title>Apache 2 + PHP 4/5 + Mysql</title><link>https://eshlox.net/2004/10/26/apache-2-php-4-5-mysql</link><guid isPermaLink="true">https://eshlox.net/2004/10/26/apache-2-php-4-5-mysql</guid><description>Przewodnik po kompilacji i konfiguracji Apache 2 z PHP 4 lub 5 oraz MySQL na systemie Linux, krok po kroku od źródeł.</description><pubDate>Tue, 26 Oct 2004 19:46:32 GMT</pubDate></item><item><title>DOS</title><link>https://eshlox.net/2004/10/21/dos</link><guid isPermaLink="true">https://eshlox.net/2004/10/21/dos</guid><description>Podstawy systemu DOS: oznaczenia dysków, obsługa plików i katalogów, znak zachęty oraz najważniejsze polecenia z krótkim opisem działania.</description><pubDate>Thu, 21 Oct 2004 21:05:30 GMT</pubDate></item><item><title>Algorytmy</title><link>https://eshlox.net/2004/10/21/algorytmy</link><guid isPermaLink="true">https://eshlox.net/2004/10/21/algorytmy</guid><description>Wprowadzenie do algorytmów rekurencyjnych, iteracyjnych i sekwencyjnych oraz sposobów ich zapisu słownego i w postaci schematu blokowego.</description><pubDate>Thu, 21 Oct 2004 19:38:06 GMT</pubDate></item><item><title>IRC</title><link>https://eshlox.net/2004/09/05/irc</link><guid isPermaLink="true">https://eshlox.net/2004/09/05/irc</guid><description>Wprowadzenie do IRC: historia, klienty dla Windows i Linuksa, podstawowe komendy, polskie serwery oraz słownik pojęć takich jak op, ban czy flood.</description><pubDate>Sun, 05 Sep 2004 18:25:22 GMT</pubDate></item><item><title>Bity, bajty...</title><link>https://eshlox.net/2004/09/04/bity-bajty</link><guid isPermaLink="true">https://eshlox.net/2004/09/04/bity-bajty</guid><description>Krótkie wyjaśnienie czym są bity i bajty, jak są ponumerowane oraz tabela przeliczeniowa od bajta do gigabajta z dokładnymi wartościami.</description><pubDate>Sat, 04 Sep 2004 20:13:41 GMT</pubDate></item><item><title>Jak poszukać jakiegoś pliku?</title><link>https://eshlox.net/2004/09/04/jak-poszukac-jakiegos-pliku</link><guid isPermaLink="true">https://eshlox.net/2004/09/04/jak-poszukac-jakiegos-pliku</guid><description>Krótka odpowiedź na pytanie jak wyszukiwać pliki w systemie Linux za pomocą polecenia find.</description><pubDate>Sat, 04 Sep 2004 19:40:18 GMT</pubDate></item><item><title>Systemy liczbowe</title><link>https://eshlox.net/2004/09/04/systemy-liczbowe</link><guid isPermaLink="true">https://eshlox.net/2004/09/04/systemy-liczbowe</guid><description>Omówienie systemów liczbowych: konwersja między systemem dwójkowym a dziesiętnym, arytmetyka dwójkowa, zapis szesnastkowy i reprezentacja liczb ujemnych.</description><pubDate>Sat, 04 Sep 2004 19:03:43 GMT</pubDate></item><item><title>Nagrywarka - SCSI</title><link>https://eshlox.net/2004/06/24/nagrywarka-scsi</link><guid isPermaLink="true">https://eshlox.net/2004/06/24/nagrywarka-scsi</guid><description>Konfiguracja nagrywarki IDE z emulacją SCSI w Gentoo Linux: wymagane opcje kernela, edycja konfiguracji bootloadera i automatyczne ładowanie modułu.</description><pubDate>Thu, 24 Jun 2004 18:01:27 GMT</pubDate></item><item><title>apt-get - Instalacja i konfiguracja</title><link>https://eshlox.net/2004/04/12/apt-get-instalacja-i-konfiguracja</link><guid isPermaLink="true">https://eshlox.net/2004/04/12/apt-get-instalacja-i-konfiguracja</guid><description>Instalacja i konfiguracja apt-get w systemach Red Hat, Fedora i Aurox, w tym ustawianie serwerów pakietów i rozwiązywanie typowych błędów.</description><pubDate>Mon, 12 Apr 2004 21:39:11 GMT</pubDate></item><item><title>Rotator bannerów w PHP</title><link>https://eshlox.net/2004/01/28/rotator-bannerow-w-php</link><guid isPermaLink="true">https://eshlox.net/2004/01/28/rotator-bannerow-w-php</guid><description>Prosty rotator bannerów w PHP wyświetlający kolejno bannery z tablicy i zapisujący aktualny numer w pliku, gotowy do dołączenia na stronie.</description><pubDate>Wed, 28 Jan 2004 19:27:31 GMT</pubDate></item><item><title>Blokada dostępu do strony w PHP</title><link>https://eshlox.net/2004/01/13/blokada-dostepu-do-strony-w-php</link><guid isPermaLink="true">https://eshlox.net/2004/01/13/blokada-dostepu-do-strony-w-php</guid><description>Prosty skrypt PHP do blokowania dostępu do strony na podstawie adresu IP, z listą zakazanych adresów przechowywaną w pliku tekstowym.</description><pubDate>Tue, 13 Jan 2004 20:05:58 GMT</pubDate></item><item><title>Zaznaczanie większej ilości plików</title><link>https://eshlox.net/2004/01/02/zaznaczanie-wiekszej-ilosci-plikow</link><guid isPermaLink="true">https://eshlox.net/2004/01/02/zaznaczanie-wiekszej-ilosci-plikow</guid><description>Przegląd wzorców globowania w powłoce Linux: użycie symboli *, ?, nawiasów kwadratowych i nawiasów klamrowych do zaznaczania wielu plików jednocześnie.</description><pubDate>Fri, 02 Jan 2004 18:44:30 GMT</pubDate></item><item><title>PHP - zmiana zawarości strony bez zmieniania pliku, na której się to pokazuje</title><link>https://eshlox.net/2004/01/01/php-zmiana-zawarosci-strony-bez-zmieniania-pliku-na-ktorej-sie-to-pokazuje</link><guid isPermaLink="true">https://eshlox.net/2004/01/01/php-zmiana-zawarosci-strony-bez-zmieniania-pliku-na-ktorej-sie-to-pokazuje</guid><description>Jak w PHP za pomocą instrukcji switch i include ładować różne pliki w jednym szablonie na podstawie parametru id przekazanego w adresie URL.</description><pubDate>Thu, 01 Jan 2004 20:35:43 GMT</pubDate></item><item><title>PHP - register globals</title><link>https://eshlox.net/2004/01/01/php-register-globals</link><guid isPermaLink="true">https://eshlox.net/2004/01/01/php-register-globals</guid><description>Wyjaśnienie jak poprawnie odbierać zmienne GET, POST i COOKIE w PHP przy wyłączonej opcji register_globals za pomocą superglobalnych tablic.</description><pubDate>Thu, 01 Jan 2004 19:50:24 GMT</pubDate></item><item><title>Pobieranie informacji o odwiedzających w PHP</title><link>https://eshlox.net/2004/01/01/pobieranie-informacji-o-odwiedzajacych-w-php</link><guid isPermaLink="true">https://eshlox.net/2004/01/01/pobieranie-informacji-o-odwiedzajacych-w-php</guid><description>Jak w PHP pobierać podstawowe informacje o odwiedzających stronę, takie jak adres IP, identyfikator przeglądarki i numer portu, używając tablicy $_SERVER.</description><pubDate>Thu, 01 Jan 2004 19:25:14 GMT</pubDate></item><item><title>Jak sprawdzić w PHP, czy zmienna jest przesyłana?</title><link>https://eshlox.net/2004/01/01/jak-sprawdzic-w-php-czy-zmienna-jest-przesylana</link><guid isPermaLink="true">https://eshlox.net/2004/01/01/jak-sprawdzic-w-php-czy-zmienna-jest-przesylana</guid><description>Jak używać funkcji var_dump() w PHP do sprawdzenia, czy dana zmienna jest przesyłana i jaką ma wartość, przydatne przy wyłączonej opcji register_globals.</description><pubDate>Thu, 01 Jan 2004 19:02:20 GMT</pubDate></item></channel></rss>