Latest post

Nov 19, 2024, 17:57:17

The <input type="number"> is so evil. I thought that entering 1e309 will have its value return 1e309 and that converting it to a number will give me infinity. Nope, it will return an empty string, and converting it to a number gets me zero. Note that 1e309 IS A VALID FLOATING-POINT NUMBER according to the #HTML standard.

#web #webdev #javascript #coding

follow me on Mastodon

Articles

  • Algebraic structure of chemicals

    Regarding balancing chemical equations, actually we are trying to find a non-trivial linear combination of some chemicals to get zero. The interesting thing is that the coefficients can only be integers (Z\mathbb Z), which is not a field, so the algebraic structure of chemicals is not linear space. They actually live in a free Z\mathbb Z-module. See how I formalize this idea in mathematical language.

  • The concentration change of gas in reversible reactions

    A reversible elementary reaction takes place inside a closed, highly thermally conductive container of constant volume, whose reactants are all gases. Given the reaction equations and the reaction rate constants, a natural question to ask is how the concentration of each gas changes w.r.t. time. In this article, I will answer this question by proposing a general approach to solve it.

  • Snippet: O, ’tis too true!

    O, ’tis too true!

  • The structure of a basic RM game

    In this article, I present minimal examples of a RM game. They only illustrate the basic concepts of how a RM game is structured and what is the running logic of it.

  • The frequency assignment of musical notes

    This article explores the concept which I call the frequency assignment, which is a mapping from NN (the set of notes) to R+\mathbb R^+ (the set of frequencies). Concepts such as octaves, intervals, and equal temperaments are introduced.

  • Normal vectors of a scalar field

    This article gives the formula for the normal vectors of a surface defined by a scalar field on Rn\mathbb R^n. The normal vector of the graph of the function y=f ⁣(x)y=f\!\left(\mathbf x\right) at (x0,f ⁣(x0))\left(\mathbf x_0,f\!\left(\mathbf x_0\right)\right) is (f ⁣(x0),1)\left(\nabla f\!\left(\mathbf x_0\right),-1\right). This also provides us a way to recover a scalar field from the normal vectors of its graph: normalizing the vectors so that the last component is 1-1, and then integrate the rest components.

  • It is Feb 29 today!

    It is Feb 29 today. The date appears once for as long as 4 years!

  • Monkey-patching graciously

    Monkey-patching is a powerful tool in programming. In this article, I used techniques of Ruby metaprogramming to define a series of methods def_after, def_before, etc. to help monkey-patching. They look graciously in that we can use it to shorten the codes for monkey-patching (avoiding aliasing and repeating codes).

  • Amazing Siteleaf

    I have been using Siteleaf to manage my blog. It is just convenient and amazing.

  • Hyperellipsoids in barycentric coordinates

    In this article, I introduce the barycentric coordinates: it is an elegant way to represent geometric shapes related to a simplex. By using it, given a simplex, we can construct a hyperellipsoid with the properties: its surface passes every vertex of the simplex, and its tangent hyperplane at each vertex is parallel to the hyperplane containing all other vertices.

subscribe via RSS