<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
 <title>Words and Buttons Online</title>
 <description>A growing collection of interactive tutorials, guides and quizzes about maths, algorithms, performance, and programming languages.</description>
 <link>https://wordsandbuttons.online/</link>
 <lastBuildDate>Sun, 21 Sep 2025 08:51:46 +0000</lastBuildDate>
 <pubDate>Sun, 30 Dec 2018 15:40:00 +0000</pubDate>
 <ttl>1800</ttl>

 <item>
  <title>Challenge your performance intuition with C++ operators</title>
  <description>A guessing game with C++ operators, context, and disassembly.</description>
  <link>https://wordsandbuttons.online/challenge_your_performance_intuition_with_cpp_operators.html</link>
  <guid isPermaLink="false">46c480f5-b10f-4cc9-a1b7-acc781056309</guid>
  <pubDate>Tue, 25 Dec 2018 10:58:15 +0000</pubDate>
 </item>
 
 <item>
  <title>Using logical operators for logical operations is good</title>
  <description>A folow up on a guessing game with C++ operators. Let's redo a few rounds. The benchmark is the same, the questions are the same. The compiler is the same. The only thing that changes is the platform. This is now CHIP with ARMv7.</description>
  <link>https://wordsandbuttons.online/using_logical_operators_for_logical_operations_is_good.html</link>
  <guid isPermaLink="false">57e102d8-cb60-48ae-ae0c-5d8995ab5d88</guid>
  <pubDate>Sun, 30 Dec 2018 15:44:00 +0000</pubDate>
 </item> 

 <item>
  <title>Programmer's introduction to linear equations [republished in Ukrainian]</title>
  <description>The same as https://wordsandbuttons.online/programmers_introduction_to_linear_equations.html only in Ukrainian.</description>
  <link>https://wordsandbuttons.online/ua/programmers_introduction_to_linear_equations.html</link>
  <guid isPermaLink="false">ff3b144f-3808-4e7a-9d70-b0d26728fcf8</guid>
  <pubDate>Sat, 5 Jan 2019 08:24:00 +0000</pubDate>
 </item> 

 <item>
  <title>The simplest possible smooth contouring algorithm</title>
  <description>The algorithm that takes a distance function and makes a smooth contour out of it in three steps.</description>
  <link>https://wordsandbuttons.online/the_simplest_possible_smooth_contouring_algorithm.html</link>
  <guid isPermaLink="false">f73660bb-ae4b-4d83-8418-8f7c3350b2c3</guid>
  <pubDate>Tue, 15 Jan 2019 18:20:00 +0000</pubDate>
 </item> 
 
 <item>
  <title>[Renovated] Outperforming everything with anything</title>
  <description>It's about 100 lines of Python code that generate a linear solver in LLVM intermediate language outperforming C and C++ solutions. Originally published in mid 2018, now completetly rewritten.</description>
  <link>https://wordsandbuttons.online/outperforming_everything_with_anything.html</link>
  <guid isPermaLink="false">1bcc8b28-2349-4bee-b778-8d879d2cbefb</guid>
  <pubDate>Sat, 19 Jan 2019 09:05:00 +0000</pubDate>
 </item>  
 
 <item>
  <title>Simple image vectorization</title>
  <description>Vectorization is when you take some minecraft-style raster image and make a crisp vector picture out of it. The algorithm describes shows how bilinear interpolation, polynomial approximation, differential analysis, and iterative algorithms work together to solve a practical problem.</description>
  <link>https://wordsandbuttons.online/simple_image_vectorization.html</link>
  <guid isPermaLink="false">e99ce59c-a731-4d5e-9977-1e2fd4c571bd</guid>
  <pubDate>Thu, 7 Mar 2019 19:50:00 +0000</pubDate>
 </item>

 <item>
  <title>Interactive mnemonics for dot and cross vector products</title>
  <description>Dot and cross vector products are absolutely essential for everything three-dimensional. Whatever 3D thing you do: graphics, printing, physical simulation, — as soon as you want anything beyond what your framework provides, you have to do some vector magic, and these are your most basic spells.

The more embarrassing it is for me to admit. Up until very recently, I couldn't remember which way the cross product goes.</description>
  <link>https://wordsandbuttons.online/interactive_mnemonics_for_dot_and_cross_vector_products.html</link>
  <guid isPermaLink="false">336eac33-7496-4d6e-8b11-1111f950f352</guid>
  <pubDate>Tue, 26 Mar 2019 18:00:00 +0000</pubDate>
 </item>

 <item>
  <title>Lexical differential highlighting instead of syntax highlighting</title>
  <description>“Lexical” since it doesn't need true syntax analysis, primitive tokenization and filtering are enough. And it's “differential” because it aims to highlight the difference between lexemes. Ideally, the smaller the lexical difference, the greater the color difference should be. 
  
It works with any languages. And it saves your traffic.</description>
  <link>https://wordsandbuttons.online/lexical_differential_highlighting_instead_of_syntax_highlighting.html</link>
  <guid isPermaLink="false">9eee5c1c-c3a7-43ac-a35a-8817343b2183</guid>
  <pubDate>Thu, 11 Apr 2019 18:00:00 +0000</pubDate>
 </item>

 <item>
  <title>[Renovated] Estimating floating point error the easy way</title>
  <description>Unforeseen floating point error is the source of the most unpleasant bugs. The bugs that come and go unpredictably. The bugs that don't reproduce on unit-tests and lay low through the integration phase only to be seen by your most important customer.</description>
  <link>https://wordsandbuttons.online/estimating_floating_point_error_the_easy_way.html</link>
  <guid isPermaLink="false">59cc6722-9a9e-4047-8159-5418a62eb302</guid>
  <pubDate>Sat, 11 May 2019 08:45:00 +0000</pubDate>
 </item>

 <item>
  <title>Yet another floating point tutorial</title>
  <description>I still think that reexplaining some obscure concepts with different words (and buttons) might help someone understand floating point numbers better. To do fewer mistakes, to make things faster, to create better software in general.</description>
  <link>https://wordsandbuttons.online/yet_another_floating_point_tutorial.html</link>
  <guid isPermaLink="false">13b8a239-48dc-468d-a700-57336a64a738</guid>
  <pubDate>Thu, 16 May 2019 05:40:00 +0000</pubDate>
 </item>
 
 <item>
  <title>SymPy makes math fun again</title>
  <description>It's a Python library that does the boring part of math for you. Moreover, it does it fast, accurate, and without angst. In other words, it is everything I'm not.</description>
  <link>https://wordsandbuttons.online/sympy_makes_math_fun_again.html</link>
  <guid isPermaLink="false">3cea5d53-0c1a-486e-badc-c85101827677</guid>
  <pubDate>Tue, 25 Jun 2019 18:05:00 +0000</pubDate>
 </item>

 <item>
  <title>Circles and lines vs. polynomial splines</title>
  <description>Usually, when you want to make a parametric curve, you should go for a polynomial spline. But sometimes, for the reasons mentioned only in the second half of this page to keep you intrigued, you are not satisfied with polynomials. You have to look elsewhere. This page shows you one possible option apart from polynomials and it is an old-school parametric curve made from arcs and line segments stitched together. </description>
  <link>https://wordsandbuttons.online/circles_and_lines_vs_polynomial_splines.html</link>
  <guid isPermaLink="false">4cc82d82-827a-4d15-9b0b-5eac9c54a59e</guid>
  <pubDate>Thu, 22 Aug 2019 6:40:00 +0000</pubDate>
 </item>
 
 <item>
  <title>[Renovated] Challenge your performance intuition with C++ magic squares</title>
  <description>Let's play a game. There will be twelve rounds, each round is a match between two solutions. Or rather between their execution times. Using your intuition and best judgment, please estimate their relative performance.</description>
  <link>https://wordsandbuttons.online/challenge_your_performance_intuition_with_cpp_magic_squares.html</link>
  <guid isPermaLink="false">203a70f2-bc43-4cda-af10-baaa5286418b</guid>
  <pubDate>Mon, 26 Aug 2019 10:55:00 +0000</pubDate>
 </item>
 
 <item>
  <title>SWInE: Simplicial Weight Interpolation and Extrapolation</title>
  <description>I stole exactly three ideas from other people, made them work together, and gave that compilation a funny name. I had my fun playing with the concept but the conclusion I had to put into my thesis was: “SWInE is rather promising”. In academic language, this means “useless”. However, the three ideas behind the algorithm are prominent. And if an algorithm helps show them in action, then maybe this is what makes the algorithm worthy.</description>
  <link>https://wordsandbuttons.online/swine_simplicial_weight_interpolation_and_extrapolation.html</link>
  <guid isPermaLink="false">8689596b-7314-4711-9160-63c360b45ec6</guid>
  <pubDate>Sun, 13 Oct 2019 13:05:00 +0000</pubDate>
 </item>
 
 <item>
  <title>Challenge your performance intuition with nanosecond sorting</title>
  <description>If the operation you want to speed-up already runs in a few nano-seconds, your reasoning about algorithmic complexity probably wouldn't apply. The most effective algorithms become mediocre while the useless rise from the oblivion to shine and amaze. One of these algorithms is the index sort. It has unconditional O(n2) complexity and this makes it probably the least performant sorting algorithm you never heard about. It's useless on the macro-scale. But on the nano-scale, it excels.</description>
  <link>https://wordsandbuttons.online/challenge_your_performance_intuition_with_nanosecond_sorting.html</link>
  <guid isPermaLink="false">4fb603c2-6457-42e5-bd9c-b04296720518</guid>
  <pubDate>Tue, 5 Nov 2019 6:25:00 +0000</pubDate>
 </item>
 
 <item>
  <title>[Renovated] Logic programming in C++</title>
  <description> When you write in C++ you actually write in two languages at once. First is C++, and the second one is the invisible Prolog. If written properly, the second program is helpful. However, if being neglected, it turns your code into an untangleable mess of incomprehencibles really-really fast. </description>
  <link>https://wordsandbuttons.online/logic_programming_in_cpp.html</link>
  <guid isPermaLink="false">489a9e82-d56b-433a-b647-4a1fe8ade56e</guid>
  <pubDate>Tue, 13 Nov 2019 17:50:00 +0000</pubDate>
 </item> 

 <item>
  <title>[Renovated] SWInE: Simplicial Weight Interpolation and Extrapolation</title>
  <description>SWInE is a promising alternative to splines. This page guides you from a simple weight interpolation to spatial local interpolation and extrapolation in 3 steps.</description>
  <link>https://wordsandbuttons.online/swine_simplicial_weight_interpolation_and_extrapolation.html</link>
  <guid isPermaLink="false">4d9bc22a-df02-4963-9e6f-9de6f30c4d76</guid>
  <pubDate>Sat, 16 Nov 2019 5:55:00 +0000</pubDate>
 </item>

 <item>
  <title>Sine and cosine</title>
  <description>Interactive mnemonics and changeable snippets.TL&amp;DR: Sine is like S and cosine is like C. You can make things like O or 8 by using them both.</description>
  <link>https://wordsandbuttons.online/sine_and_cosine.html</link>
  <guid isPermaLink="false">8f438a3e-f866-4814-acd2-d8a0b2a44d77</guid>
  <pubDate>Mon, 9 Dec 2019 11:40:00 +0000</pubDate>
 </item>
 
 <item>
  <title>Honeycomb texture generator</title>
  <description>It generates a seamless black and white honeycomb texture. There are a few options in the UI but if you need more, there is some changeable code too. If you need more freedom, just get this thing on Github.</description>
  <link>https://wordsandbuttons.online/honeycomb_texture_generator.html</link>
  <guid isPermaLink="false">5d51b56c-4587-464e-a09e-0c3a3d7ce090</guid>
  <pubDate>Fri, 27 Dec 2019 08:10:00 +0000</pubDate>
 </item>

 <item>
  <title>[Renovated] Interactive guide to homogeneous coordinates</title>
  <description> Why would you care about homogeneous coordinates, whatever they are? Well, if you work with geometry: 3D-graphics, image processing, physical simulation, — the answer is obvious. Knowing the mathematics behind your framework enables you to write more efficient code.

But even if you don’t work with geometry at all, you still might enjoy learning about projective space and its link to linear algebra. It is an outstanding example of mathematical magic: you pay with a small complication, you gain an enormous simplification in return. </description>
  <link>https://wordsandbuttons.online/interactive_guide_to_homogeneous_coordinates.html</link>
  <guid isPermaLink="false">b6bf429a-7405-4d18-9fa7-c87131611c29</guid>
  <pubDate>Sat, 11 Jan 2020 17:40:00 +0000</pubDate>
 </item>

 <item>
  <title>Binary search</title>
  <description>The page contains interactive plots to play with different strategies and distributions.</description>
  <link>https://wordsandbuttons.online/binary_search.html</link>
  <guid isPermaLink="false">6bd16767-e6c0-40fc-8dc1-93978d8b0721</guid>
  <pubDate>Wed, 12 Feb 2020 17:20:00 +0000</pubDate>
 </item>

 <item>
  <title>Error codes are not numbers. But they are. Can we exploit that?</title>
  <description>People do it with different feelings. Sometimes with pride for a clever solution, sometimes with guilt for an obscure hack. Which is odd since there is nothing particularly hacky about it. The ISO/IEC 14882 is ok with it. The IEEE 754 is ok with it. So why is it a hack and not a norm?

I'm talking, of course, about storing return codes in floating-point NaNs. </description>
  <link>https://wordsandbuttons.online/error_codes_are_not_numbers_but_they_are_can_we_exploit_that.html</link>
  <guid isPermaLink="false">37571a45-dcde-4568-a82e-1eab340251bf</guid>
  <pubDate>Thu, 27 Feb 2020 18:50:00 +0000</pubDate>
 </item>

 <item>
  <title>Image darning</title>
  <description>It's about a feature that cleans up dirt stains from aged newspapers. I called it darning because of how it works.</description>
  <link>https://wordsandbuttons.online/image_darning.html</link>
  <guid isPermaLink="false">0739f36d-d2fd-4735-8425-73ac7848e209</guid>
  <pubDate>Sat, 28 Mar 2020 15:50:00 +0000</pubDate>
 </item>

 <item>
  <title>[e-book] So You Think You Know C? And TenMore Short Essays on Programming Languages</title>
  <description>Can’t say that running away from complexity was a smart thing to do. It was definitely not the most productive way to create software. The journey, however, has taught me a few things so it was not a complete waste of time either.

This book is a reflection of these lessons. It consists of small essays each about one particular language and one particular insight. They can be read in order but they can be read separately. 

I encourage you to start from the languages you’re the least interested in. I also encourage you to try the actual languages too.

I hope you’ll find this book not too boring, not too trivial, and if nothing else, not too long.</description>
  <link>https://wordsandbuttons.online/SYTYKC.pdf</link>
  <guid isPermaLink="false">20d605f3-c637-4034-8e72-3eaf40a21423</guid>
  <pubDate>Tue, 21 Apr 2020 15:05:00 +0000</pubDate>
 </item>

 <item>
  <title>Arctangent scale. It's like the logarithmic scale but infinite</title>
  <description>With arctangent used as a scale, we can show any function on a screen. And not just a fragment of it but the whole function.</description>
  <link>https://wordsandbuttons.online/arctangent_scale_its_like_the_logarithmic_scale_but_infinite.html</link>
  <guid isPermaLink="false">58d9e19c-0072-412a-93d3-ee82ae399569</guid>
  <pubDate>Sat, 9 May 2020 22:50:00 +0000</pubDate>
 </item>

 <item>
  <title>Bi-whatever transformations</title>
  <description>An interactive explanation of how polynomial transformations such as trilinear or biquadratic or even linear-cubic work, and how to craft your own that fits your particular task the best.</description>
  <link>https://wordsandbuttons.online/biwhatever_transformations.html</link>
  <guid isPermaLink="false">89f837ab-22fc-4c88-a891-15eda1b28d2f</guid>
  <pubDate>Tue, 16 Jun 2020 14:34:50 +0000</pubDate>
 </item>

 <item>
  <title>[Renovated] Interactive guide to homogeneous coordinates</title>
  <description>This interactive guide shows how homogeneous coordinates actually make geometry simpler and not more complicated. It explains the extra coordinate, the matrices, the generalized transformations. Most of what you need to know about projective geometry as a practicing programmer is here.</description>
  <link>https://wordsandbuttons.online/interactive_guide_to_homogeneous_coordinates.html</link>
  <guid isPermaLink="false">d155e541-e3ed-4e8a-8a8f-aee8f49ff888</guid>
  <pubDate>Sat, 27 Jun 2020 09:52:30 +0000</pubDate>
 </item>

 <item>
  <title>Can we use lemniscates for ultra-cheap vector graphics?</title>
  <description>This depicts an old idea of using multifocal lemniscates to draw arbitrary curves. In somewhat limited scope, this may be indeed an economical alternative to splines.</description>
  <link>https://wordsandbuttons.online/can_we_use_lemniscates_for_ultra_cheap_vector_gaphics.html</link>
  <guid isPermaLink="false">6bdab756-f51c-447f-9e18-6b88347c08ef</guid>
  <pubDate>Fri, 17 Jul 2020 10:06:03 +0000</pubDate>
 </item>

 <item>
  <title>[Renovated] Programmer's guide to polynomials and splines</title>
  <description>This is a brief introduction into polynomials. From how to make a polynomial run through your set of points to how to make it into a spline.</description>
  <link>https://wordsandbuttons.online/programmers_guide_to_polynomials_and_splines.html</link>
  <guid isPermaLink="false">439932a9-54bc-4586-9531-6549f371844c</guid>
  <pubDate>Tue, 28 Jul 2020 04:40:40 +0000</pubDate>
 </item>

 <item>
  <title>[Renovated] NURBS is just an acronym</title>
  <description>NURBS stands for the non-uniform rational basis spline. There are three separate concepts. This guide walks you through these concepts one by one.</description>
  <link>https://wordsandbuttons.online/nurbs_is_just_an_acronym.html</link>
  <guid isPermaLink="false">1e40bfa4-e852-4200-9ab0-cd6724c1d831</guid>
  <pubDate>Fri, 14 Aug 2020 06:11:27 +0000</pubDate>
 </item>

 <item>
  <title>[Renovated] Polynomial approximation and interpolation</title>
  <description>This explains approximation and interpolation, how to use polynomials for that, and how to make both concepts work together.</description>
  <link>https://wordsandbuttons.online/polynomial_approximation_and_interpolation.html</link>
  <guid isPermaLink="false">6e522621-2957-4ada-8eb0-60220c3808db</guid>
  <pubDate>Fri, 21 Aug 2020 10:30:06 +0000</pubDate>
 </item>

 <item>
  <title>Why is it ok to divide by 0.0?</title>
  <description>This explains why the division by zero in floating point numbers is ok.</description>
  <link>https://wordsandbuttons.online/why_is_it_ok_to_divide_by_0_0.html</link>
  <guid isPermaLink="false">1c0efcd5-b41b-4e20-b3a7-8376b0a286c5</guid>
  <pubDate>Sat, 22 Aug 2020 10:48:09 +0000</pubDate>
 </item>

 <item>
  <title>Yet another alternative to floating point numbers</title>
  <description>This shows how computeable intervals written in rational bounds may not only account for the input error but keep computational error under control as well.</description>
  <link>https://wordsandbuttons.online/yet_another_alternative_to_floating_point_numbers.html</link>
  <guid isPermaLink="false">b6c23e2d-7647-4f1c-a3f9-ccf5dda86f49</guid>
  <pubDate>Sat, 31 Oct 2020 13:39:20 +0000</pubDate>
 </item>

 <item>
  <title>[Renovated] Image darning</title>
  <description>A simple image processing algorithm that cleans up dirt stains from old newspapers. I called it “darning” because of how it works.</description>
  <link>https://wordsandbuttons.online/image_darning.html</link>
  <guid isPermaLink="false">f7ba7547-7974-45ce-9403-cf5a6c425b8d</guid>
  <pubDate>Tue, 17 Nov 2020 19:25:57 +0000</pubDate>
 </item>

 <item>
  <title>Partial order and non-Boolean logic</title>
  <description>Non-Boolean logics are rare but not extinct. Interval logic is one example. Sometimes, you can implement a logic you want within total order or partial order but sometimes even that isn't enough and you need an even more general relation. With operator overloading, you have the freedom to go there but you also have less assurance when working within the total order.</description>
  <link>https://wordsandbuttons.online/partial_order_and_non_boolean_logic.html</link>
  <guid isPermaLink="false">3469e844-7f0d-4d78-b9a3-26dba11c333a</guid>
  <pubDate>Sat, 26 Dec 2020 07:25:33 +0000</pubDate>
 </item>

 <item>
  <title>[Renovated] Bi-whatever transformations</title>
  <description>An interactive explanation of how polynomial transformations such as trilinear or biquadratic or even linear-cubic work, and how to craft your own. Now with a practical example!</description>
  <link>https://wordsandbuttons.online/biwhatever_transformations.html</link>
  <guid isPermaLink="false">c7f3e03c-9e30-414d-bceb-bd6ea79f26b6</guid>
  <pubDate>Sun, 27 Dec 2020 07:50:51 +0000</pubDate>
 </item>

 <item>
  <title>Trippy polynomials in arctangent scale</title>
  <description>This shows the global properties of polynomials, their derivatives, and explains how the Maclaurine and Taylor series work all with animated plots in arctangent scale.</description>
  <link>https://wordsandbuttons.online/trippy_polynomials_in_arctangent_scale.html</link>
  <guid isPermaLink="false">08b3302d-87bf-4dc4-9ff4-5362a6f8060d</guid>
  <pubDate>Sun, 10 Jan 2021 09:41:01 +0000</pubDate>
 </item>

 <item>
  <title>Lagrange polynomial as a gateway drug to basis splines</title>
  <description>This explains Lagrange polynomial: why does it run through all the points, what is the basis polynomial, and how come it's a polynomial in the first place.</description>
  <link>https://wordsandbuttons.online/lagrange_polynomial_as_a_gateway_drug_to_basis_splines.html</link>
  <guid isPermaLink="false">bbc3e5e1-f2a4-416d-a93b-33718d51155f</guid>
  <pubDate>Mon, 18 Jan 2021 16:19:49 +0000</pubDate>
 </item>

 <item>
  <title>[Renovated] Interactive introduction to iterative algorithms</title>
  <description>An interactive explanation of how iterative algorithms work. This explains convergence and the exit condition problem on an oversimplified linear system solver.</description>
  <link>https://wordsandbuttons.online/interactive_introduction_to_iterative_algorithms.html</link>
  <guid isPermaLink="false">c5ec09ce-7659-4056-b6fc-2637b2cdf3b7</guid>
  <pubDate>Sun, 24 Jan 2021 09:50:21 +0000</pubDate>
 </item>

 <item>
  <title>[Renovated] Interactive explanation of marching cubes and dual contouring</title>
  <description>Marching cubes and dual contouring are often used for mesh generation. This explanation shows how they work, what are their differences, similarities, and limitations.</description>
  <link>https://wordsandbuttons.online/interactive_explanation_of_marching_cubes_and_dual_contouring.html</link>
  <guid isPermaLink="false">74baf289-5b55-45d0-99f5-7e1b2f510855</guid>
  <pubDate>Sun, 24 Jan 2021 09:50:27 +0000</pubDate>
 </item>

 <item>
  <title>[Renovated] Circles and lines vs. polynomial splines</title>
  <description>An alternative to polynomial splines. Smooth parametric curves made from arcs and line segments.</description>
  <link>https://wordsandbuttons.online/circles_and_lines_vs_polynomial_splines.html</link>
  <guid isPermaLink="false">4ba640fc-96c6-459c-8ded-62b6d8c88a94</guid>
  <pubDate>Sun, 24 Jan 2021 09:50:40 +0000</pubDate>
 </item>

 <item>
  <title>[Renovated] Yet another floating-point tutorial</title>
  <description>Most of what you should know about floating-point numbers put together in an interactive tutorial with quests and puzzles.</description>
  <link>https://wordsandbuttons.online/yet_another_floating_point_tutorial.html</link>
  <guid isPermaLink="false">a71b1dcf-d06a-4e71-ad3f-91432abee0fd</guid>
  <pubDate>Tue, 26 Jan 2021 15:47:41 +0000</pubDate>
 </item>

 <item>
  <title>[Renovated] Mathematical analysis explained with Python, blood, and TNT</title>
  <description>A brief introduction to mathematical analysis with a little SymPy on the side. The page explains how to disassemble a function, and how to assemble it back from the derivatives.</description>
  <link>https://wordsandbuttons.online/mathematical_analysis_explained_with_python_blood_and_tnt.html</link>
  <guid isPermaLink="false">157ef698-a959-44e0-9a8f-f7c0acc13e60</guid>
  <pubDate>Sat, 30 Jan 2021 15:35:06 +0000</pubDate>
 </item>

 <item>
  <title>[Renovated] Programmer's guide to linear equations</title>
  <description>This is an introduction to linear equation systems. It explains linear dependency, under- and over-specification, direct and iterative solvers. The guide should give you enough knowledge to find a proper solution for your task but not enough to implement one efficiently yourself.</description>
  <link>https://wordsandbuttons.online/programmers_introduction_to_linear_equations.html</link>
  <guid isPermaLink="false">98aff1f0-97f7-4722-8c23-c985a63d75d4</guid>
  <pubDate>Fri, 12 Feb 2021 19:18:12 +0000</pubDate>
 </item>

 <item>
  <title>[Renovated] SymPy makes math fun again</title>
  <description>An introduction into symbolic computations in Python. Don't worry, it's much simpler than it sounds. It's about making Python do your math for you with very little investment in the technology.</description>
  <link>https://wordsandbuttons.online/sympy_makes_math_fun_again.html</link>
  <guid isPermaLink="false">a07dca57-dc49-4923-ace3-388704fcd687</guid>
  <pubDate>Sat, 13 Feb 2021 08:16:58 +0000</pubDate>
 </item>

 <item>
  <title>Complex numbers and conformal mapping</title>
  <description>This explains the geometry of complex numbers. Explains conformal transformations, introduces analytic functions, and shows that analytic complex functions are conformal. And using the connection between the geometry and the analysis explains it all in just some five minutes.</description>
  <link>https://wordsandbuttons.online/complex_numbers_and_conformal_mapping.html</link>
  <guid isPermaLink="false">319a4c5d-216e-431a-b943-69c8dd79d874</guid>
  <pubDate>Mon, 08 Mar 2021 08:59:50 +0000</pubDate>
 </item>

 <item>
  <title>Challenge your performance intuition with C++ sine</title>
  <description>One more interactive quiz. This time, it's all about the sine function. Which one is faster and when?</description>
  <link>https://wordsandbuttons.online/challenge_your_performance_intuition_with_cpp_sine.html</link>
  <guid isPermaLink="false">8aeba7a9-8ba8-4f3e-8b2a-7ad5bae648e5</guid>
  <pubDate>Sat, 27 Mar 2021 13:57:15 +0000</pubDate>
 </item>

 <item>
  <title>What can we learn from sexaplication on nuclear power plants</title>
  <description>Component redundancy is used heavily in safety-critical and mission-critical systems for reliability improvement. But outside this niche, it's surprisingly little known in the world of software. Which is a shame since it's a simple but economical idea. It costs nothing to keep in mind, and it saves you a lot on hotfixes and emergency repairs.</description>
  <link>https://wordsandbuttons.online/what_can_we_learn_from_sexaplication_on_nuclear_power_plants.html</link>
  <guid isPermaLink="false">c53a016f-74ca-4a04-9609-c36d51d8b43e</guid>
  <pubDate>Sat, 10 Apr 2021 08:42:48 +0000</pubDate>
 </item>

 <item>
  <title>[Republishing] Redundant stories about redundancy</title>
  <description>Component redundancy is used heavily in safety-critical and mission-critical systems for reliability improvement. But outside this niche, it's surprisingly little known in the world of software. Which is a shame since it's a simple but economical idea. It costs nothing to keep in mind, and it saves you a lot on hotfixes and emergency repairs.</description>
  <link>https://wordsandbuttons.online/redundant_stories_about_redundancy.html</link>
  <guid isPermaLink="false">0a37c0f0-2a41-47c5-9a17-3a904c24df1d</guid>
  <pubDate>Mon, 12 Apr 2021 05:08:15 +0000</pubDate>
 </item>

 <item>
  <title>[Renovated] Can you tell an assembly language when you see one?</title>
  <description>An interactive quiz featuring several obscure high-level languages and assembly variants.</description>
  <link>https://wordsandbuttons.online/can_you_tell_an_assembly_language_when_you_see_one.html</link>
  <guid isPermaLink="false">7b8dedd4-34fb-4c36-b385-ecae2387e754</guid>
  <pubDate>Fri, 23 Apr 2021 19:16:33 +0000</pubDate>
 </item>

  <item>
  <title>A picture is worth a thousand tags</title>
  <description>This shows how a picture can be turned into an HTML table. With this, you can not only have nicer tables or uglier pictures, but you can have something that is both at the same time.</description>
  <link>https://wordsandbuttons.online/a_picture_is_worth_a_thousand_tags.html</link>
  <guid isPermaLink="false">90f8f336-fa6d-435b-a81b-4fd64e2abfe4</guid>
  <pubDate>Sat, 08 May 2021 10:19:15 +0000</pubDate>
 </item>

 <item>
  <title>Check if your performance intuition still works with CUDA</title>
  <description>An interactive quiz about microoptimizations in CUDA. 10 rounds, two pieces of code per each, you get to guess which is the faster.</description>
  <link>https://wordsandbuttons.online/check_if_your_performance_intuition_still_works_with_cuda.html</link>
  <guid isPermaLink="false">349d4449-bc3a-4bf4-97ba-27fd34253a10</guid>
  <pubDate>Tue, 01 Jun 2021 15:12:23 +0000</pubDate>
 </item>

 <item>
  <title>Why did I write Geometry for programmers</title>
  <description>This is not an interactive page, it has zero didactic value. It does explain why Words and Buttons has been stagnant for a while though. I have been writing a book. Why? Well, visit and see.</description>
  <link>https://wordsandbuttons.online/why.html</link>
  <guid isPermaLink="false">1260788f-41d4-4f85-9aa8-938def81acae</guid>
  <pubDate>Thu, 29 Dec 2022 09:41:00 +0000</pubDate>
 </item>
 
 <item>
  <title>[Renovated] Even if you can't write assembly like a poet, you can read disassembly like a hunter</title>
  <description>This is a very concise introduction to x86 disassembly. It shows that you probably have all the skills to start reading disassembly right now even if you thought it was too complicated for you. It really isn't, see it for yourself.</description>
  <link>https://wordsandbuttons.online/you_dont_have_to_learn_assembly_to_read_disassembly.html</link>
  <guid isPermaLink="false">ca421761-ff8f-4db4-bc69-9d71a5ad9867</guid>
  <pubDate>Fri, 03 Mar 2023 17:13:12 +0000</pubDate>
 </item>

 <item>
  <title>[Renovated] SymPy makes math fun again</title>
  <description>An introduction into symbolic computations in Python. Don't worry, it's much simpler than it sounds. It's about making Python do your math for you with very little investment in the technology.</description>
  <link>https://wordsandbuttons.online/sympy_makes_math_fun_again.html</link>
  <guid isPermaLink="false">792c0433-af93-4c23-a77d-21f60cbe23f9</guid>
  <pubDate>Fri, 03 Mar 2023 17:13:53 +0000</pubDate>
 </item>

 <item>
  <title>Static typing isn’t free. Where do you think the C++ angry mob comes from?</title>
  <description>Type inference works like logic deduction so any program in a statically typed language is two programs. The first one is the thing you sell, and the second – is a model that undergoes some sort of verification every time you run a compiler. This second program, although, often being written unknowingly, is not a free bonus, it’s something you have to pay for in several ways.</description>
  <link>https://wordsandbuttons.online/static_typing_isnt_free.html</link>
  <guid isPermaLink="false">4826838a-f6df-4377-bfd8-727ba68fcf7e</guid>
  <pubDate>Wed, 28 Jun 2023 08:29:12 +0000</pubDate>
 </item>

 <item>
  <title>Either your estimates suck or your job does</title>
  <description>This page uses polynomial modeling to show why software engineering tasks are often impossible to estimate.</description>
  <link>https://wordsandbuttons.online/either_your_estimates_suck_or_your_job_does.html</link>
  <guid isPermaLink="false">76becea2-10a3-4f32-9786-acacd2680cd0</guid>
  <pubDate>Tue, 19 Sep 2023 15:06:15 +0000</pubDate>
 </item>

 <item>
  <title>[Renovated] Homogeneous coordinates as a mathematical investment in programming</title>
  <description>This interactive guide shows how homogeneous coordinates actually make programming geometry simpler and not more complicated. The page explains the extra coordinate, matrices, and generalized transformations. Most of what you need to know about projective geometry as a practicing programmer is here.</description>
  <link>https://wordsandbuttons.online/interactive_guide_to_homogeneous_coordinates.html</link>
  <guid isPermaLink="false">cbf1c894-f375-4104-9066-ee8e465af80c</guid>
  <pubDate>Tue, 17 Oct 2023 04:42:36 +0000</pubDate>
 </item>

 <item>
  <title>Rational interpolation</title>
  <description>Rational interpolation is a step forward from polynomial interpolation towards rational splines. With rational interpolation, you can build functions that run through a set of points and also have vertical asymptotes whenever you want. With this capability, you can now model functions like logarithms better.</description>
  <link>https://wordsandbuttons.online/rational_interpolation.html</link>
  <guid isPermaLink="false">b11ee945-1296-47c6-967f-42ba2b774b71</guid>
  <pubDate>Tue, 05 Mar 2024 06:24:39 +0000</pubDate>
 </item>

 <item>
  <title>The Real C++ Killers (Not You, Rust)</title>
  <description>All the “C++ killers”, even these which I wholeheartedly love and respect like Rust, Julia, and D, help you write more features with fewer bugs, but they don't much help when you need to squeeze the very last FLOPS from the hardware you rent. As such, they don’t have a competitive advantage over C++. Or, for that matter, even over each other. Most of them, for instance, Rust, Julia, and Clang even share the same backend. You can’t win a car race if you all share the same car. So, which technologies do hold a competitive advantage over C++ or, speaking generally, all the traditional ahead-of-time compilers?</description>
  <link>https://wordsandbuttons.online/the_real_cpp_killers.html</link>
  <guid isPermaLink="false">a290c4ad-feea-4f1d-b3fc-8a118018f6c4</guid>
  <pubDate>Wed, 20 Mar 2024 16:56:46 +0000</pubDate>
 </item>

 <item>
  <title>A smooth and sharp image interpolation you probably haven't heard of</title>
  <description>An image interpolation that gives us a continuous and smooth image, where every interpolated value only depends on the four neighboring pixel values. The image becomes smooth, but sharp features remain sharp.</description>
  <link>https://wordsandbuttons.online/a_smooth_and_sharp_image_interpolation.html</link>
  <guid isPermaLink="false">30adce54-fe7b-480b-a379-f5e7d24a8cd1</guid>
  <pubDate>Mon, 29 Apr 2024 16:25:00 +0000</pubDate>
 </item>

 <item>
  <title>Why learn about the golden-section search</title>
  <description>An interactive demo of bisection search and golden ratio search algorithms. There is also a motivation to learn them both. Spoiler alert! One converges better, and the other has a better computational cost.</description>
  <link>https://wordsandbuttons.online/why_learn_about_the_golden_section_search.html</link>
  <guid isPermaLink="false">8264cbfd-9285-43ea-a60f-ae2e64d820a3</guid>
  <pubDate>Sun, 29 Jun 2025 15:39:22 +0000</pubDate>
 </item>

 <item>
  <title>Gauss–Seidel visually explained</title>
  <description>An interactive demo of the Gauss-Seidel method for solving linear equation systems. When and why does it work? And why, when you flip the equations, it suddenly stop working? You can now play and see.</description>
  <link>https://wordsandbuttons.online/gauss_seidel_visually_explained.html</link>
  <guid isPermaLink="false">6a44eb93-0d18-45f5-9483-286cb4d45747</guid>
  <pubDate>Sun, 21 Sep 2025 08:51:46 +0000</pubDate>
 </item>

</channel>
</rss>

