Shanraq.org Shanraq.org

Publishing archive

Monday, 7 September 2026

Monday

September 2026
MonTueWedThuFriSatSun
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

The highlighted days are the ones with something published; those are clickable.

IT

Putting the blog where people can reach it: free hosting

The forty-sixth lesson of the Go course. A host decides three things for you: the port arrives in PORT, the service has to listen on every address rather than on itself, and the disk of a free plan is wiped on every deploy — measured: the same password gives 303 before and 401 after. Plus a build into one static file.

IT

A dictionary: a link instead of hoping the order holds

The sixth lesson of the Python course. Prices by name: `get` instead of an error, `in` instead of a search, `items()` as a ready table. Measured: reaching for a missing key is a `KeyError` rather than emptiness; Counter tallies a basket in one line, and defaultdict supplies the zero where an ordinary dictionary fails.

IT

A list and a tuple: a receipt that counts itself

The fifth lesson of the Python course. Prices in a list: indexes, slices, changes, the sum and the maximum — without a single loop. The difference everybody trips over is measured: sorted() returns a new list, .sort() changes the original and returns None. And a tuple that refuses to change: TypeError.

IT

Variables and types: why "260" and 260 are different things

The fourth lesson of the Python course. Data from somebody else's file arrives as text, and until the text becomes a number, adding it makes no sense: "260" + "260" gives 260260. The money rule is measured too: 0.1 + 0.2 is not 0.3, while Decimal is. Plus None, the truth of "0", and the difference between == and is.

Society

A second free course: Python for data and AI

The site's second free course — 55 lessons, from data to a digest that updates itself. Why Python, why data and AI rather than the web, and what the reader will actually count: prices up 3.48 times, and what cost a thousand tenge now costs 3481. No account, no payment, in three languages.

IT

The first program: numbers, strings and output

The third lesson of the Python course. We count on a shop receipt: two divisions instead of one, the remainder, a power, and then strings — trim, replace, cut, glue. And f-strings, which put a number inside text: 52,751,740,084,727 tenge with separators and 11.4% to one decimal place.

IT

A workplace: Python, the project's environment and the first run

The second lesson of the Python course. We install the language, create the project's environment and move yesterday's program into it. Measured: a package installed into the environment is invisible outside it — `ModuleNotFoundError` — which is exactly what an environment is for. The `.venv` folder weighs 17 MB and never goes into the repository.

IT

Counting for yourself: prices, the tenge and one question

The first lesson of the Python course. No libraries have to be installed: a ready program fetches the official numbers itself. Prices in Kazakhstan are 3.48 times higher than in 2010: what cost a thousand tenge now costs 3481. And after the same shock inflation in other countries of the region is three times lower, which is the first reason to count for yourself.

IT

Where to go next: generics and the road after the course

The fiftieth and last lesson of the Go course. Generics are one function instead of three, and the condition on the type is checked by the compiler: measured, a `string` does not get through before the program runs. Measured too is what they gain over `any`: 534 nanoseconds against 1801. Plus where to go from here.

IT

Before the launch: a checklist, not a hope

The forty-ninth lesson of the Go course. A server with no timeouts holds a connection for ever — measured: a slow client took one, and it was we who gave in first. Plus a copy of the database taken while the blog was running, a description of every page for search, and a list of thirteen items to go through before handing anyone the link.

IT

A service that survives a reboot: systemd and a tidy stop

The forty-eighth lesson of the Go course. A program is stopped by a signal rather than a button, and the difference is measured: cut off, a reader gets an EOF; stopped tidily, an answer of 200 after 270 ms. Plus a unit file the real systemd checked, a start after every reboot, and the order in which things close.

IT

A domain of your own and HTTPS: so the blog is opened by name

The forty-seventh lesson of the Go course. A domain is one record in DNS that points at your address, and HTTPS is not a tick-box but a necessity: measured, in an open channel a reader's password is there in full, all 222 bytes of it, and in TLS it is not in those bytes at all. Plus a proxy in front and a header nobody should trust.

IT

Your own logo, name and icon: the blog becomes yours

The forty-fifth lesson of the Go course. The blog wears somebody else's name, mark and colours — until this lesson. The name moves out of eleven templates into one setting, the logo becomes your file, the palette is nine lines, and the tab icon becomes yours. The contrast is counted too, and two mistakes of ours are fixed.