<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Tutorials · AI · Tech Trends</title><description>A technology blog for developers, featuring programming tutorials, AI technologies, developer tools and emerging tech trends.</description><link>https://blog.szkit99.com/</link><language>en</language><item><title>Build a Command-Line Tool in Go</title><link>https://blog.szkit99.com/en/articles/go-build-a-cli-tool/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/go-build-a-cli-tool/</guid><description>A line-counting CLI from scratch: flag parsing, reading files or stdin, bufio scanning with a raised buffer, exit codes, subcommands, and version injection with ldflags.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Go</category><category>CLI</category><category>Tooling</category></item><item><title>Build an HTTP Service in Go</title><link>https://blog.szkit99.com/en/articles/go-build-an-http-service/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/go-build-an-http-service/</guid><description>A JSON API with only net/http: method-based routing, request decoding and validation, a single error shape, request ID and logging middleware, timeouts, graceful shutdown, httptest.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Go</category><category>HTTP</category><category>Servers</category></item><item><title>Context and Cancellation in Go</title><link>https://blog.szkit99.com/en/articles/go-context-and-cancellation/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/go-context-and-cancellation/</guid><description>What context is for: Background versus TODO, WithCancel/WithTimeout/WithDeadline, ctx as the first parameter, select on Done, leaks, why it must not live in a struct.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Go</category><category>Context</category><category>Concurrency</category></item><item><title>Go Control Flow: if, for and switch</title><link>https://blog.szkit99.com/en/articles/go-control-flow/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/go-control-flow/</guid><description>Why Go has exactly one loop, how the if initialiser keeps variables scoped, what switch does differently, and how range behaves over slices, maps and strings.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Go</category><category>Control Flow</category><category>Range</category></item><item><title>Go Functions and Error Handling</title><link>https://blog.szkit99.com/en/articles/go-functions-and-errors/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/go-functions-and-errors/</guid><description>Multiple and named results, the error interface, wrapping with %w and inspecting with errors.Is and errors.As, plus where defer, panic and recover belong.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Go</category><category>Functions</category><category>Errors</category></item><item><title>A Practical Introduction to Go Generics</title><link>https://blog.szkit99.com/en/articles/go-generics-intro/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/go-generics-intro/</guid><description>Type parameters and constraints: any and comparable, custom constraints with ~, Map and Filter helpers, generic types, type inference, and when not to use generics.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Go</category><category>Generics</category><category>Type Parameters</category></item><item><title>Goroutines and Channels in Go</title><link>https://blog.szkit99.com/en/articles/go-goroutines-and-channels/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/go-goroutines-and-channels/</guid><description>The concurrency primitives, used correctly: go with WaitGroup, buffered versus unbuffered channels, close and range rules, select and timeouts, worker pools, mutex versus channels.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Go</category><category>Goroutines</category><category>Channels</category></item><item><title>Go Setup and Your First Program</title><link>https://blog.szkit99.com/en/articles/go-install-and-hello-world/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/go-install-and-hello-world/</guid><description>Install Go 1.24, understand what GOPATH and module mode really mean, and get comfortable with go mod init, go run, go build, go fmt and go vet.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Go</category><category>Installation</category><category>Modules</category></item><item><title>Go Interfaces and Composition</title><link>https://blog.szkit99.com/en/articles/go-interfaces-and-composition/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/go-interfaces-and-composition/</guid><description>Implicit interface satisfaction, why small interfaces travel further, type assertions and type switches, the nil-interface trap, and composition over inheritance.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Go</category><category>Interfaces</category><category>Composition</category></item><item><title>Go Maps and Structs</title><link>https://blog.szkit99.com/en/articles/go-maps-and-structs/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/go-maps-and-structs/</guid><description>Declaring and populating maps, the comma-ok idiom, why nil maps panic on write, plus struct literals, exported fields, JSON tags and embedding.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Go</category><category>Maps</category><category>Structs</category></item><item><title>Modules, Packages and Internal Boundaries in Go</title><link>https://blog.szkit99.com/en/articles/go-packages-and-modules/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/go-packages-and-modules/</guid><description>How modules, packages and directories fit together: go.mod and go.sum, internal packages, exported identifiers, go get and go mod tidy, MVS, replace, vendor and cycles.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Go</category><category>Modules</category><category>Packages</category></item><item><title>Go Pointers, Methods and Value Semantics</title><link>https://blog.szkit99.com/en/articles/go-pointers-and-methods/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/go-pointers-and-methods/</guid><description>Address-of and dereference, new versus composite literals, value and pointer receivers, method sets and interface satisfaction, plus when a pointer is worth it.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Go</category><category>Pointers</category><category>Methods</category></item><item><title>Profiling Go with pprof</title><link>https://blog.szkit99.com/en/articles/go-profiling-with-pprof/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/go-profiling-with-pprof/</guid><description>Capture CPU and heap profiles from benchmarks or a live server, read top, list and flame graphs, compare allocations, and keep /debug/pprof off the public internet.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Go</category><category>Performance</category><category>pprof</category></item><item><title>Slices versus Arrays in Go</title><link>https://blog.szkit99.com/en/articles/go-slices-vs-arrays/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/go-slices-vs-arrays/</guid><description>Arrays carry their length in the type and copy on assignment; slices are small descriptors over shared memory. Length, capacity and append aliasing explained.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Go</category><category>Slices</category><category>Arrays</category></item><item><title>Testing and Benchmarking in Go</title><link>https://blog.szkit99.com/en/articles/go-testing-and-benchmarks/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/go-testing-and-benchmarks/</guid><description>Table-driven tests with the testing package: subtests, t.Helper and t.Cleanup, temp dirs, httptest, benchmarks with b.Loop, allocs/op, coverage and fuzzing.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Go</category><category>Testing</category><category>Benchmarks</category></item><item><title>Go Variables, Types and Zero Values</title><link>https://blog.szkit99.com/en/articles/go-variables-and-types/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/go-variables-and-types/</guid><description>var versus :=, the zero-value design that removes uninitialised variables, constants and iota, and the boundaries between string, byte and rune.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Go</category><category>Variables</category><category>Types</category></item><item><title>Essential JavaScript Array Methods</title><link>https://blog.szkit99.com/en/articles/js-array-methods/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/js-array-methods/</guid><description>Split the array API into methods that mutate and methods that return a new array, then use map, filter, reduce, find and some correctly, including sort&apos;s string default.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>JavaScript</category><category>Arrays</category><category>Higher-Order Functions</category></item><item><title>JavaScript Async and Promises</title><link>https://blog.szkit99.com/en/articles/js-async-and-promises/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/js-async-and-promises/</guid><description>Why 1 4 3 2 is the correct order, promise states and chaining, async/await error handling, serial versus parallel work, the four combinators, and concurrency limits.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>JavaScript</category><category>Async</category><category>Promises</category></item><item><title>JavaScript Practice: a Frontend App Without a Framework</title><link>https://blog.szkit99.com/en/articles/js-browser-app-without-framework/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/js-browser-app-without-framework/</guid><description>A reading list in plain JavaScript: one state object plus a render function, event delegation, localStorage with validation and migration, form errors, and keyboard access.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>JavaScript</category><category>DOM</category><category>Web App</category></item><item><title>JavaScript Practice: a Node.js CLI Tool</title><link>https://blog.szkit99.com/en/articles/js-cli-tool-with-node/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/js-cli-tool-with-node/</guid><description>Build linkscan: parse arguments with parseArgs, walk Markdown files, probe external links with bounded concurrency, print machine-readable output, and return real exit codes.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>JavaScript</category><category>CLI</category><category>Node.js</category></item><item><title>JavaScript Conditionals and Loops</title><link>https://blog.szkit99.com/en/articles/js-conditionals-and-loops/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/js-conditionals-and-loops/</guid><description>Pick between if, switch, for, for...of and while with intent, and avoid the iteration bugs: fall-through cases, for...in on arrays, and break inside forEach.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>JavaScript</category><category>Control Flow</category><category>Loops</category></item><item><title>JavaScript DOM and Events</title><link>https://blog.szkit99.com/en/articles/js-dom-and-events/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/js-dom-and-events/</guid><description>Selecting and creating nodes, batching updates, capture and bubble, event delegation, listener cleanup with AbortSignal, form handling, and the XSS risk in innerHTML.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>JavaScript</category><category>DOM</category><category>Events</category></item><item><title>JavaScript Error Handling</title><link>https://blog.szkit99.com/en/articles/js-error-handling/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/js-error-handling/</guid><description>What an Error carries, when to throw, how try/catch/finally runs, custom error classes with instanceof, the cause option, and why async errors escape try/catch.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>JavaScript</category><category>Error Handling</category></item><item><title>JavaScript fetch and HTTP in Practice</title><link>https://blog.szkit99.com/en/articles/js-fetch-and-http/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/js-fetch-and-http/</guid><description>fetch does not reject on 404, a body can be read once, timeouts need AbortSignal, retries need backoff, and browsers add CORS on top of all of it.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>JavaScript</category><category>fetch</category><category>HTTP</category></item><item><title>JavaScript Functions, Scope and Closures</title><link>https://blog.szkit99.com/en/articles/js-functions-and-scope/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/js-functions-and-scope/</guid><description>Compare declarations, expressions and arrow functions, use default and rest parameters, and understand scope chains, closures, and the classic var-in-a-loop trap.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>JavaScript</category><category>Functions</category><category>Closures</category></item><item><title>JavaScript Modules: ESM and CommonJS</title><link>https://blog.szkit99.com/en/articles/js-modules-esm-and-cjs/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/js-modules-esm-and-cjs/</guid><description>Named and default exports, live bindings, dynamic import, the CommonJS snapshot trap, interop rules in Node, the exports map, and how to break a cycle.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>JavaScript</category><category>Modules</category><category>ESM</category></item><item><title>JavaScript Objects and Destructuring</title><link>https://blog.szkit99.com/en/articles/js-objects-and-destructuring/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/js-objects-and-destructuring/</guid><description>Object literals, property access and iteration, destructuring with renames and defaults, and why spreading gives you a shallow copy that still shares nested objects.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>JavaScript</category><category>Objects</category><category>Destructuring</category></item><item><title>JavaScript Operators and Type Coercion</title><link>https://blog.szkit99.com/en/articles/js-operators-and-type-coercion/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/js-operators-and-type-coercion/</guid><description>Why == surprises you, which eight values are falsy, how + and - coerce differently, and when to reach for ??, ?. and Number.isNaN().</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>JavaScript</category><category>Operators</category><category>Type Coercion</category></item><item><title>JavaScript Strings and Template Literals</title><link>https://blog.szkit99.com/en/articles/js-strings-and-template-literals/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/js-strings-and-template-literals/</guid><description>Template literal interpolation, string immutability, UTF-16 length surprises, slice versus substring, and why replace() only changes the first match.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>JavaScript</category><category>Strings</category><category>Template Literals</category></item><item><title>Testing JavaScript with Vitest</title><link>https://blog.szkit99.com/en/articles/js-testing-with-vitest/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/js-testing-with-vitest/</guid><description>Set up Vitest, pick the right assertion, test async code with fake timers, replace dependencies with vi.fn and vi.mock, and enforce coverage in CI.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>JavaScript</category><category>Testing</category><category>Vitest</category></item><item><title>JavaScript Tooling: npm, Vite and Linting</title><link>https://blog.szkit99.com/en/articles/js-tooling-and-package-management/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/js-tooling-and-package-management/</guid><description>package.json fields that matter, lockfiles and npm ci, script conventions, Vite dev versus build, why VITE_ variables are public, and ESLint versus Prettier.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>JavaScript</category><category>npm</category><category>Vite</category></item><item><title>JavaScript Variables: var, let and const</title><link>https://blog.szkit99.com/en/articles/js-variables-and-data-types/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/js-variables-and-data-types/</guid><description>How var, let and const differ in scope, hoisting and rebinding, what the temporal dead zone protects you from, and why typeof null returns &quot;object&quot;.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>JavaScript</category><category>Variables</category><category>Data Types</category></item><item><title>Build a Todo App with PDO</title><link>https://blog.szkit99.com/en/articles/php-build-a-todo-app/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/php-build-a-todo-app/</guid><description>A complete PHP project: SQLite schema, add/toggle/delete over POST, CSRF tokens, Post/Redirect/Get with flash messages, escaped views, and a pre-deploy checklist.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>PHP</category><category>PDO</category><category>Project</category></item><item><title>Composer and Namespaces in PHP</title><link>https://blog.szkit99.com/en/articles/php-composer-and-namespaces/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/php-composer-and-namespaces/</guid><description>Dependency management and PSR-4 autoloading: composer.json structure, namespace mapping, version constraints, the lock file, scripts and autoloader optimisation.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>PHP</category><category>Composer</category><category>Namespaces</category></item><item><title>PHP Conditionals and Loops</title><link>https://blog.szkit99.com/en/articles/php-conditionals-and-loops/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/php-conditionals-and-loops/</guid><description>if versus match versus switch, when to use for, foreach and while, break/continue with nesting levels, and the alternative colon syntax that keeps HTML templates readable.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>PHP</category><category>ControlFlow</category><category>Loops</category></item><item><title>Debugging and Logging in PHP</title><link>https://blog.szkit99.com/en/articles/php-debugging-and-logging/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/php-debugging-and-logging/</guid><description>Two error configurations, custom handlers for errors and exceptions, JSON logs with request IDs, Xdebug breakpoints, and a triage order for the white screen.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>PHP</category><category>Debugging</category><category>Logging</category></item><item><title>Errors and Exceptions in PHP</title><link>https://blog.szkit99.com/en/articles/php-error-handling/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/php-error-handling/</guid><description>How PHP separates errors from exceptions, the Throwable hierarchy, try/catch/finally, which exception class to throw, JSON_THROW_ON_ERROR, a global handler, and production error settings.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>PHP</category><category>Exceptions</category><category>Errors</category></item><item><title>Reading and Writing Files in PHP</title><link>https://blog.szkit99.com/en/articles/php-file-io/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/php-file-io/</guid><description>file_get_contents and file_put_contents for small files, fgets streaming for large ones, file locking for concurrent writes, directory iteration with SPL, and why paths must start from __DIR__.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>PHP</category><category>Files</category><category>IO</category></item><item><title>Handling Forms and Requests in PHP</title><link>https://blog.szkit99.com/en/articles/php-forms-and-request-handling/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/php-forms-and-request-handling/</guid><description>Work with $_GET and $_POST safely: choose the right method, validate with filter_var, escape output with htmlspecialchars, and follow Post/Redirect/Get to stop duplicate submissions.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>PHP</category><category>Forms</category><category>Security</category></item><item><title>PHP Functions, Types and Scope</title><link>https://blog.szkit99.com/en/articles/php-functions-and-scope/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/php-functions-and-scope/</guid><description>Declare parameter and return types, use defaults and named arguments, understand pass-by-value versus reference and object handles, plus closures, arrow functions and static locals.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>PHP</category><category>Functions</category><category>Types</category></item><item><title>Objects and the Type System in PHP</title><link>https://blog.szkit99.com/en/articles/php-oop-and-types/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/php-oop-and-types/</guid><description>Constructor promotion, readonly properties, backed enums, interfaces versus abstract classes, traits, union and nullable types, and why strict_types comes first.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>PHP</category><category>OOP</category><category>Types</category></item><item><title>PDO and Prepared Statements</title><link>https://blog.szkit99.com/en/articles/php-pdo-and-prepared-statements/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/php-pdo-and-prepared-statements/</guid><description>Safe database access with PDO: DSN and connection options, exception mode, named and positional parameters, transactions, and where placeholders stop working.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>PHP</category><category>PDO</category><category>SQL</category></item><item><title>A JSON REST API with PDO</title><link>https://blog.szkit99.com/en/articles/php-rest-api-with-pdo/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/php-rest-api-with-pdo/</guid><description>A minimal REST API without a framework: method dispatch, one JSON error shape, input validation, pagination and sort whitelists, status codes, and curl checks.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>PHP</category><category>REST</category><category>API</category></item><item><title>PHP Sessions and Cookies</title><link>https://blog.szkit99.com/en/articles/php-sessions-and-cookies/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/php-sessions-and-cookies/</guid><description>Start and use sessions, destroy them properly, regenerate the ID on login to prevent fixation, set cookies with secure, httponly and samesite, and never trust cookie contents.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>PHP</category><category>Session</category><category>Cookies</category></item><item><title>PHP Strings and Arrays</title><link>https://blog.szkit99.com/en/articles/php-strings-and-arrays/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/php-strings-and-arrays/</guid><description>Indexed and associative arrays, how foreach really iterates, array_map/filter/reduce, the difference between + and array_merge, and the string functions you need — including mb_* for UTF-8.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>PHP</category><category>Strings</category><category>Arrays</category></item><item><title>Templates, Layouts and Escaping in PHP</title><link>https://blog.szkit99.com/en/articles/php-templates-and-layouts/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/php-templates-and-layouts/</guid><description>Split querying from output with one small render function: layouts, partials, htmlspecialchars-based escaping, alternative syntax, and what views must never do.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>PHP</category><category>Templates</category><category>Views</category></item><item><title>Unit Testing PHP with PHPUnit</title><link>https://blog.szkit99.com/en/articles/php-unit-testing-with-phpunit/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/php-unit-testing-with-phpunit/</guid><description>Install PHPUnit 11 with Composer, choose assertions that actually fail, use data providers and test doubles, test PDO code on SQLite, and run coverage in CI.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>PHP</category><category>Testing</category><category>PHPUnit</category></item><item><title>PHP Variables and Data Types</title><link>https://blog.szkit99.com/en/articles/php-variables-and-data-types/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/php-variables-and-data-types/</guid><description>Variable syntax and scope, the scalar types, strings and arrays, why loose comparison bites, what declare(strict_types=1) actually changes, and the falsy values that surprise newcomers.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>PHP</category><category>Variables</category><category>Types</category></item><item><title>Python Classes and Object-Oriented Basics</title><link>https://blog.szkit99.com/en/articles/python-classes-and-oop/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/python-classes-and-oop/</guid><description>Define classes, tell instance and class attributes apart, use @property, @classmethod and inheritance with super(), and implement __repr__ and __eq__ correctly.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Python</category><category>OOP</category></item><item><title>Command-Line Tools and Project Layout in Python</title><link>https://blog.szkit99.com/en/articles/python-cli-argparse-and-project-structure/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/python-cli-argparse-and-project-structure/</guid><description>Build a CLI with argparse: positional and optional arguments, types, choices, custom validators and subcommands, then package it with src layout, pyproject.toml and correct exit codes.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Python</category><category>CLI</category><category>argparse</category></item><item><title>Python Comprehensions and Iteration Tools</title><link>https://blog.szkit99.com/en/articles/python-comprehensions-and-iteration/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/python-comprehensions-and-iteration/</guid><description>List, dict and set comprehensions, generator expressions, and the standard library helpers — enumerate, zip, sorted, itertools — that replace most manual loops.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Python</category><category>Iteration</category><category>itertools</category></item><item><title>Python Conditionals and Loops</title><link>https://blog.szkit99.com/en/articles/python-conditionals-and-loops/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/python-conditionals-and-loops/</guid><description>How truthiness works in Python, when to use for versus while, the rarely used loop else clause, and the iteration mistakes that produce wrong results.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Python</category><category>Control Flow</category></item><item><title>Cleaning CSV Data and Writing a JSON Report</title><link>https://blog.szkit99.com/en/articles/python-data-cleaning-csv-json/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/python-data-cleaning-csv-json/</guid><description>A complete, runnable script: read a messy CSV with csv.DictReader, validate and convert each row, count skipped rows by reason, aggregate with collections, and write a JSON report.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Python</category><category>CSV</category><category>JSON</category><category>DataProcessing</category></item><item><title>Python dataclasses and Type Hints</title><link>https://blog.szkit99.com/en/articles/python-dataclasses-and-type-hints/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/python-dataclasses-and-type-hints/</guid><description>Annotate your code so editors and mypy catch mistakes before runtime, then let @dataclass generate __init__, __repr__ and __eq__ — with default_factory, frozen and slots.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Python</category><category>Type Hints</category><category>dataclasses</category></item><item><title>Python Exceptions and Custom Errors</title><link>https://blog.szkit99.com/en/articles/python-error-handling/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/python-error-handling/</guid><description>How try/except/else/finally actually runs, which exceptions to catch, keeping context with raise from, designing custom error hierarchies, and the anti-patterns that hide bugs.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Python</category><category>Exceptions</category></item><item><title>Reading and Writing Files in Python</title><link>https://blog.szkit99.com/en/articles/python-file-io-and-paths/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/python-file-io-and-paths/</guid><description>Open files safely with with, stream large files line by line, build paths with pathlib, and handle JSON, CSV, and encodings without the usual surprises.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Python</category><category>File I/O</category><category>JSON</category></item><item><title>Python Functions and Argument Passing</title><link>https://blog.szkit99.com/en/articles/python-functions-and-arguments/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/python-functions-and-arguments/</guid><description>Define functions, mix positional and keyword arguments, avoid the mutable default trap, collect extra arguments with *args and **kwargs, and understand scope rules.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Python</category><category>Functions</category></item><item><title>Python Iterators and Generators</title><link>https://blog.szkit99.com/en/articles/python-iterators-and-generators/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/python-iterators-and-generators/</guid><description>Separate iterables from iterators, trace exactly how yield suspends a function, stream a large file through a generator pipeline, and know when yield from, send and close are worth the complexity.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Python</category><category>Generator</category><category>Iterator</category></item><item><title>Python Lists and Dictionaries in Practice</title><link>https://blog.szkit99.com/en/articles/python-lists-and-dicts/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/python-lists-and-dicts/</guid><description>The list and dict operations you reach for daily: slicing, iteration, shallow versus deep copies, get versus indexing, and grouping with setdefault.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Python</category><category>Lists</category><category>Dicts</category></item><item><title>Python Modules, Packages and Virtual Environments</title><link>https://blog.szkit99.com/en/articles/python-modules-packages-and-venv/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/python-modules-packages-and-venv/</guid><description>How imports resolve, absolute versus relative imports, the __main__ guard, and isolating dependencies per project with venv, pip and pyproject.toml.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Python</category><category>Modules</category><category>venv</category></item><item><title>Regular Expressions in Python</title><link>https://blog.szkit99.com/en/articles/python-regex-basics/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/python-regex-basics/</guid><description>How search, match, findall and sub actually differ, the metacharacters you need, greedy versus lazy quantifiers, named groups, compile flags, and the failure modes that make regexes fragile.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Python</category><category>Regex</category></item><item><title>Python Standard Library Essentials: datetime, collections and json</title><link>https://blog.szkit99.com/en/articles/python-standard-library-essentials/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/python-standard-library-essentials/</guid><description>The standard library modules worth knowing by heart: datetime arithmetic and time zones, Counter, defaultdict and deque, json round-trips, plus os.getenv, subprocess and secrets.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Python</category><category>StandardLibrary</category></item><item><title>Python Strings, Slicing and Formatting</title><link>https://blog.szkit99.com/en/articles/python-strings-and-formatting/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/python-strings-and-formatting/</guid><description>Create and inspect strings, use the methods you actually reach for, format output with f-strings, and keep str and bytes straight at the encoding boundary.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Python</category><category>Strings</category></item><item><title>Testing Python with pytest</title><link>https://blog.szkit99.com/en/articles/python-testing-with-pytest/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/python-testing-with-pytest/</guid><description>Write your first pytest test, then use plain asserts, pytest.raises, parametrize, fixtures and tmp_path — plus how to organise tests and the anti-patterns that make a suite untrustworthy.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Python</category><category>Testing</category><category>pytest</category></item><item><title>Python Tuples, Sets and Immutability</title><link>https://blog.szkit99.com/en/articles/python-tuples-and-sets/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/python-tuples-and-sets/</guid><description>When a tuple beats a list, how packing and unpacking work, what immutability actually prevents, and why sets give O(1) membership tests.</description><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><category>Python</category><category>Data Structures</category></item><item><title>What Is an AI Agent</title><link>https://blog.szkit99.com/en/articles/what-is-an-ai-agent/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/what-is-an-ai-agent/</guid><description>Break down the observe-decide-act loop behind AI agents, how they differ from chat and scripts, and when you should not use one.</description><pubDate>Mon, 02 Nov 2026 00:00:00 GMT</pubDate><category>AI</category><category>Agent</category><category>LLM</category></item><item><title>Python Variables and Data Types</title><link>https://blog.szkit99.com/en/articles/python-variables-and-data-types/</link><guid isPermaLink="true">https://blog.szkit99.com/en/articles/python-variables-and-data-types/</guid><description>How Python variable binding actually works, the built-in types you use daily, and why mutable vs immutable changes how bugs show up.</description><pubDate>Mon, 02 Nov 2026 00:00:00 GMT</pubDate><category>Python</category><category>Data Types</category></item></channel></rss>