Interesting idea. We generally just say "unit" if necessary.
>In 2004, a report to the International Committee for Weights and Measures (CIPM) stated that response to the proposal of the uno "had been almost entirely negative", and the principal proponent "recommended dropping the idea".[15] To date, the uno has not been adopted by any standards organization, and it appears unlikely that it will ever become an officially sanctioned way to express low-value (high-ratio) dimensionless quantities. The proposal was instructive, however, as to the perceived shortcomings of the current options for denoting dimensionless quantities.
Quite. Unit is quite literally the same as Uno if you squint a bit. Both are Latin derived and both mean "one" - more or less. However I will accept that unit is overloaded somewhat and I don't know much about the way that Spaniards use uno in their spare time.
So using a word that means one and then fiddling around with prefixes is either really clever or really daft depending on which side of the bottle of wine you happen to be.
On balance, for me, I'd be grateful if you leave one alone. To me it means a Platonic One which is unobtainium but I'll let you have one anyway! But only the one (no not that one, the other one.)
I'm Italian, where uno also means uno, so I'll offer my perspective.
As a kid I was taught to use "unità" (unit) to refer to the numbers below ten (e.g. "add up the units first, then carry the tens..").
It is also used as an "accounting" unit (e.g. "there are 3 units left") in some cases, tho probably less commonly than in English, as it's often implicit.
So yeah, unit seems a clear better choice than abusing the number one.
> As a kid I was taught to use "unità" (unit) to refer to the numbers below ten (e.g. "add up the units first, then carry the tens..").
Arithmetic instruction in English uses "unit" in the same way. However, since "unit" is a highly overloaded term, I think the idea of "uno" is a good one, at least for English. For Italian and Spanish, etc., probably not so much.
The biggest conflict I see is in many fields were you are dealing with dimensionless numbers, you are dealing with a lot of them once.
Having to specify "With a Reynolds number of 1300 U and a Prandtl number of 1 mU" is a lot more cumbersome than common convention of "With Re=1300 and Pr=1e-3".
This isn't a problem in practice though, you just get "strange" constants with units equal to some negative power of U in your equations. The same thing happens when you move from electrostatic units to SI: suddenly Coulomb's constant appears. Many people advocate ESU for precisely that reason: no Coulomb's constant.
That's not how you'd use it. It's a "dimension" for dimensionless numbers. You don't append measures of length with "length" or volume with "volume" but with the actual units of length or volume.
I developed code to do unit conversions and I do include a "dimension type" for dimensionless numbers, which is effectively a 1.
In structural engineering, strain is a unitless quantity (length expansion per unit length) and in my aerospace job we would express parts per million of strain as microstrain.
(I expressed my pitiful raise as 20000 microstrain.)
Sometimes we keep the units though, and express strain in mm/mm. "The strain limit for S355 is about 0.02 mm/mm." A mathematician might eliminate them against each other, for a phycisist it's a reminder of what its definition.
I've often felt it to be helpful to treat dimensionless quantities as a smell that the dimensions might be too unspecific. 12 meters / 3 meters is just a unitless 4, but 12 meters east / 3 meters north is a much more interesting 4 units-east-per-unit-north. Keeping track of these invariant "hidden units" was sometimes helpful to me in physics classes, especially in later classes where nondimensionalizing your equations was so handy.
Units are to calculations as Types are to code. They help prevent a large class of common errors. If your types aren't consistent, you know your code is wrong. If your units aren't consistent, you know your calculation is wrong.
Just like there can be stronger and weaker type systems, there can be stronger and weaker unit systems. Stronger unit systems catch a larger class of errors. I commonly catch errors nobody else sees because I use a stronger unit system than they do, which is amended with generics ("kg of what?"). Just like you said: a unitless quantity is weak; ppm doesn't help you catch errors very well. It could be mg/kg or µL/L, and it matters when you start canceling ratios. But you can take it further: mg<constituent>/kg<soil>. When you start throwing in soil density and molecular mass, it's very easy to come up with examples that "pass" the standard dimensional analysis but "fail" your advanced unit checker. You can look like a wizard by detecting errors in equations completely outside of your field of expertise.
Once you realize that there can be as many unit-systems as type-systems and the only criterion for a good vs. bad unit system is how well it catches errors, the purists who try to enforce their physics textbook's view of units will look really silly to you. The only problem is that you start arguing with them about whether specific gravity is really unitless or not (it's more helpful to say it's not), and they immediately decide you must be a moron because that's not what their textbook says. Oh well. You're getting the right answer, and they're not.
This is the most insightful comment I've read today. Ties up a number of thoughts I've had while explaining this to my kid. You're right that there's a choice about how strongly typed your unit system is.
Another useful tidbit is if your formula has a log or an exp, the arg needs to be dimensionless.
> Another useful tidbit is if your formula has a log or an exp, the arg needs to be dimensionless.
I have cognitive dissonance about that. I understand that if you look at the Taylor series of Exp(x), you're clearly adding terms containing 1, x, x^2, x^3, etc., and that it doesn't make sense to add a meter to a square meter to a cubic meter and so forth. So therefore Exp(1m) doesn't/shouldn't make sense.
But on the other hand, I can come up with examples that seem to make sense, but seem "dimensionful". Is a bit dimensionless? Because it certainly makes sense to consider 2^(32 bits) and 2^(4 bytes). Yet bits are deeply related to entropy and might even be considered a unit of energy. Are we sure they're dimensionless? What is a "square bit" anyway?
I can also define "specific meters" to be the length of an object divided by the length of a 1-meter-long stick. This value is now dimensionless, so it should be OK to exponentiate it, correct? Am I cheating? How?
Or I should be allowed to take Log(7 mg/kg) because mg/kg is dimensionless. But this should equal Log(7 mg) - Log(1 kg), which I'm not allowed to do. What gives?
Again I come back to: is this actually helping me catch errors in my calculation? I'm honestly not sure here.
Yeah, so the problem is that the units of a function applied to a value is not necessarily the same as the value. Consider the area of a square. It has one argument whose unit is of length type. But, the function returns something of area type - totally fine.
If you want to talk about e^(x) then you're totally free to do that but, you're right: if x is not dimensionless then the expression has no physical meaning (as little meaning as one meter added to one second, as an example of another clearly nonsensical physical function).
In Physics, your starting point always makes sense dimensionally (F=m*a, E=m*g*h) and the game is to combine expressions that make dimensional (and physical) sense to glean insight into how different physical constraints of the system are related.
If you have any Physics problem where you end up with e^(x) or sin(x) and x is not dimensionless then it's a dead giveaway that you performed an algebraic misstep at some point when playing the game.
So, in short, you can propose a lot of functions that make no sense from a physical standpoint, but you won't arrive at those if you're working from first principles which are, by nature, dimensionally consistent.
I would treat a Taylor series as "numeric trickery" that happens to produce useful approximations, in which case I wouldn't care about units.
As for Log of a unit, if it is useful in some strange circumstance, would require a different unit to keep track of (like logkg), similarly to i (the imaginary unit) being the result of sqrt(-1).
I think it's more errors in derivations that you're after. Like the sibling comment mentions, in physics you get a bunch of different units but they have to be consistent, eg despite there being different expressions that describe energy, they end up being the same under the hood.
I'm not sure I can think of a case where you can do otherwise.
Entropy is J/K and seems to follow the same dimensionality constraints as everything else, though I'm not well versed in information theory so I don't know how they think about it.
The log example only works because log only takes a dimensionless parameter. The only way to get that is to cancel the two kinds of meters and shove the dimensionless 0.007 into it. Ie it is a type error to take the log of 7mg or anything with a unit.
One interesting thing I came across is in the cpp book by Stroustrup he actually builds a custom type system capable of preventing issues like this and uses physics examples.
I'm not suggesting that I have a better unit system for all of physics than what is currently used in physics. I am suggesting that there are lots of different unit systems and the "best" one depends on what problem you're trying to solve (the same as with programming languages). I'm suggesting that concepts from software engineering could benefit many other disciplines, because in some ways software engineering is simply the study of how to solve problems reliably and repeatably. I'm suggesting that we should feel free to tinker and experiment with unit systems as we do with programming languages.
I don't have concrete examples other than adding in "of X material" when appropriate (e.g. mass and volume, but not energy), but don't underestimate how useful that really is. One calculation I encounter a lot that is wrong a troublingly large amount of the time, despite passing a traditional dimensional analysis, is this one:
Calculate the mass of SO2 produced from burning 1,000 moles of gas with a molecular weight of 24 g/mol containing 2% H2S by weight (and no other sources of sulfur).
It's not hugely complicated: there are really only two units to keep track of here (g and mol) but they can be "of" three different materials (whole gas, SO2, and H2S), so it's very easy to cancel terms when you really shouldn't if you analyze it traditionally. With the materials attached to each unit, you're also forced to include a term that is otherwise invisible (the stoichiometric ratio of SO2 to H2S, which is usually omitted because it's 1), which helps guide your intuition on how the calculation relates to the chemistry of what's happening and helps you come up with the correct calculation when more complicated chemical reactions are involved.
On a related note, I've been dealing with some process chemistry recently, and I've noticed that a lot of dimensionless quantities that are ratios retain their original units - I've seen many cases of units like e.g. [kg/kg]. Not sure what's the reasoning behind this, but I suppose this prevents mixing up [kg/kg] with [m/m] and other unrelated ratios.
And in communication theory / information theory there is spectral efficiency, which is 1/s/Hz (rate over bandwidth. Sometimes given in bits, sometimes in symbols)
If you are having snags with dimensionless ratios in chemistry, why not talk to any half competent cook/chef? They don't piss about like that!
The reason your quantities (LMT etc) are dimensionless is because you need to bake a decent cake or mix a cocktail and get a grip 8)
I am being flippant but I don't think that mixing kilos and meters in any unlikely ratio is likely to end well. They tend to become quite forceful if not mixed carefully.
> If you are having snags with dimensionless ratios in chemistry, why not talk to any half competent cook/chef? They don't piss about like that!
I don't! Also, doing this would go against my belief that I already mentioned on HN several times - that the difference between process chemistry and cooking is that the former actually cares about the quality of outcome ;).
You have to pick your time(zone) when deploying them. I generally find that GMT/UTC >=+6 is when a sense of humour failure generally kicks in. At +8 it relents a bit when en_AU kicks in and is reinforced at +11 by en_NZ.
Worst downvotes I ever got, in response to a fellow from Google expressing a very uncontroversial opinion and then making it clear it was only his own opinion, I wrote: "Hi Jim, this is Chet from HR. Let's have a chat on Monday." Even my "Sorry, bad joke. I'm not 'Chet' and I don't work at 'Google HR'" response got downvotes. Many, many responses hating on Google HR in particular and HR in general.
We had a physics prof infamous for "randomly" regrouping a bunch of constants into a new unitless (or just combined) constant. Except he never explained it; a new "α'" would just appear and bunch of old constants were gone! It was frustrating at first, but then we discovered how handy it was to do and our cohort nicknamed the "method" after him. It was common to ask each other 'did you "Rebka-tize" that term here?'.
That kind of trick is honestly the reason why I don't like reading engineering textbooks. A physicists prose is usually better, sure, but I'm not very good at reading so that doesn't bother me: What I can't stand is cumbersome notation, which many mathematical (i.e. FEM) engineering books I've read suffer from immensely.
There is this Erlang unit, for the number of simultaneous calls a telecommunication system can handle. https://en.wikipedia.org/wiki/Erlang_(unit) It's dimensionless, because it multiplies the rate that calls are initiated by the average length of a call: 'calls / second' by 'seconds / call'. Dimensionless.
But that makes little sense - we're measuring the number of simultaneous calls. It gets reflected in buffers, circuits, sockets, channels allocated, etc.
It would be better to consider 'call starts / second' as the rate at which calls are initiated, and the average 'call.seconds / call start', which when multiplies gives the more sensible unit 'call'.
Or simpler: just measure the average length in seconds. So we have so many 'calls / second' initiated, and the average length is so many 'seconds', which when multiplied again gives a unit of 'call'.
Agreed, though I'd interpret it slightly different. Like if I said 100 cars per hour and each car needs 30 seconds of spacing per car the units don't cancel out because they are physically taking up space for the "30 seconds of spacing per car."
I'd say the same applies in this case. It'd be more "calls/sec" times "active phone * sec/calls". Though I guess for "call" in your case or "active phone" the industry has chosen 'Erlang' a bit recursively.
Same thing with radians (a "dimensionless" unit) -- angle is the ratio of two lengths, arc length/radius, so technically dimensionless, but those two lengths are not of the same thing. I always felt more comfortable saying "pi radians" rather than just "pi" because radians feel like a real unit in the same way that units-east-per-unit-north do.
I wonder if there's been any study into when it's ok to cancel two of the same unit and when it's better to leave it as a ratio of two quantities with the same unit but describing different dimensions. Is there a way to make this notion precise?
Dimensionless numbers are the opposite of a smell - they are the most pristine, fresh quantities you can get in physics.
You usually want to express everything you possibly can in a dimensionless way. It tends to make the math a lot simpler and to punch to the heart of the problem.
You talk about math like it’s poetry … can it really be that artistic of a practice? I suppose that’s how I view writing software.. What is an example of dimensionless numbers?
I would put dimensionality more in the purview of physics than pure math, and at that point it might be more reverse engineering than poetry. Fine structure constant, quantum phase, angles, e, pi are all dimensionless.
Sometimes they're well established and provide very useful characterizations that tie into physical behavior. For examples Reynolds numbers and Mach numbers in aerodynamics are quantities that can tell you immediately what kind of flight dynamics range you're dealing with.
What's a use case for "units-east-per-unit-north"? Proportions of a room? Call it 3:2 or whatever, makes perfect sense. A direction? Use an angle. Like some other commenter said having to deal with "units-east-per-unit-north" is like code smell.
12m east / 3m north does not make any sense, since vector division is undefined. You might be thinking about the derivative which has no units in this case.
Since we've chosen a basis of the vector space (east, north) we can think of it as two 1-dimensional vector spaces. So we're dividing meters east by meters north.
It's sad this didn't catch on. It's particularly handy when you move to "square unos" (like "square millimeters" but dimensionless).
For example, in microchips the sheet resistance of layers (metal, poly, etc) has units of "ohms per square uno". This is because a 1mm*10mm sheet and a 10mm*100mm sheet both have the same resistance (along the first axis). The latter sheet is longer (higher resistance) but wider (lower resistance) and the effects cancel out. So it's really "ohms per width-to-length-ratio", but width-to-length-ratio is a unitless quantity (mm per mm = mm/mm = uno).
Everybody call this "ohms per square". Frankly that just sounds weird, and grammatically invalid. Ohms per square what? Parse error. Before I heard about unos I would occasionally call it "ohms per aspect ratio" but I'm probably the only person who uses that terminology.
Reading the Wiki link, it seems "square" isn't referring to squaring a quantity, but a square geometry (i.e. the special case where width=length) - very different things.
I think ‘ohms per square’ is fine. Just like e.g. ‘seconds per radian’ is much better than ‘seconds per uno’. Uno is generic and tells nothing about the context.
As another commenter said, a square is a unit of the plane; a square figure; all sides equal. Likewise a radian is a unit of the plane; a pie-slice figure with all sides equal.
Pie-wedge-shaped things are not the only use for radians.
The phase [1] across a Josephson Junction is measured in radians, but there are no planes involved. The progress of a longitudinal wave [2] as seen passing a stationary observer is measured in radians per second, yet no plane is involved -- it works just fine in a one-dimensional universe.
Radians measure cycles. If you limit yourself to geometry then sure, radians seem like a thing for measuring circles. But that's just a side effect of the fact that the only cyclic symmetries of Euclidean space are rotations. So the only cycles you're going to find in high school geometry will be related to circles.
In my experience, people have quite some trouble with basis points ("The fund charges just 5 bp per year", which means 0.05% per year), but I doubt that "The fund charges 0.5 mU (or 500 µU) per year" will help much. It does have a certain elegance, though.
I understand basis points to be absolute difference in some rate, where the rate was expressed as a percentage. So, if the interest rate was raised from 5% to 5.25%, we don't say the increase was 0.25% (because that could be interpreted as understating the change) and we don't say the increase was 20% (0.25% / 5%) because likewise that would overstate the change. We say the increase was 25 basis points to avoid any confusion.
I needed this in the past but didn't know of it! It seems convenient, because when you write km and kWh in some places and then just write 'k' behind another number that is simply a unit, it looks like you're missing something, or might have written Kelvin in lowercase, but really you mean a thousand units. Writing kU is then unambiguous. Not sure why `response to the proposal of the uno "had been almost entirely negative"` according to Wikipedia. Does anyone know more about that? It's not as if I need this daily, most times it's clear from context, but still I remember wishing for such a unit in the past.
As someone who works in science, it’s because it mostly feels like a solution looking for a problem. The “unit” U gives the same vibes to scientists as some classes/abstractions thought up by creative programmers feel to software engineers. Imagine your colleague saying you should use a function called
def doc(val, docstring):
if __debug__:
print("using value described as %s" % docstring)
return val
like in
x = doc(5, "number of fingers on one hand")
because “this leads to incredibly readable code, and the compiler won’t compile it if you don’t include the string.” Could it be valuable in principle? Sure. In practice? Just a nuisance. A comment will do.
I don’t think I, or my colleagues, have ever run into an issue with ambiguity arising from unitless quantities.
I hate to ask, but is the example you suggested A Thing? I agree that it’s terrible for a handful of reasons, but it also seems kinda nice that you could annotate any variable with a description that’s passed around through its lifecycle.
I don’t think it’s a Thing (TM), but it’s the kind of “abstraction” that someone might feel justified in proposing. Similar things get proposed all the time on programming projects, especially around configuration management, documentation, code generation, resource management, etc.
Am in Sydney, never heard of the supposed Sydharb before now. Olympic swimming pools is very common though. As are the more informal crap-ton and shit-load.
Why does no one ever formalise units - what are units? A ring group R[G] over some symbols {L,T,..}? It would it would make sense to have an identity. The fact when we do physics its over R^n[G] or C^n[G] never really seems to be important though.
Yeah I mean it could help for essentially type checking your work. I feel it’s common in physics to set a lot of units to “1” which is just like a morphism to the underlying field, and then later you put units back in. Obviously you can do calculus/algebraic geometry etc over more interesting objects than just a field, that seems to be the essence Tao post. I am not entirely sold on torsor perhaps.
There is also the internationally recognized and ISO standardized, unit of the Yahtzee (symbol Y!), which is any five digit number between 11,111 and 66,666 (inclusive) comprised of the same digits.
There were some objections to that unit being standardized, but the precedent had already been set when they approved the Dominoes unit (symbol D), which is used for two digit numbers between 00 and 66 (inclusive).
I have often hit up against zero requiring units. A distance of zero is just zero. Apply units to it if you want but it is just as happy without. CSS to its credit allows zero without px or em etc. Most software misses this point. I have had to set up details of a person with little more than their name, then being required to provide a currency for their zero value account. It's like saying a field is empty and being asked what animals it is empty of.
> In 2004, a report to the International Committee for Weights and Measures (CIPM) stated that response to the proposal of the uno "had been almost entirely negative", and the principal proponent "recommended dropping the idea".[15] To date, the uno has not been adopted by any standards organization, and it appears unlikely that it will ever become an officially sanctioned way to express low-value (high-ratio) dimensionless quantities.
This breaks type checking expressions of many different units. For instance, 1 meter times 1 meter is 1 meter squared. 1 uno times 1 uno will come out to 1 uno squared but the answer should be 1 uno. Is there a systematic way to deal with this?
You can simplify but it’s still unclear if the U^2 term you derived was supposed to be U^1 (before the simplification, I.e. you did an extra multiplication). It just makes bare type checking slightly more ambiguous.
I've never seen this "uno" unit appearing in any scientific paper. Makes me wonder what the intended audience is, besides the committee that proposed it.
An alternative is to use the prefix only, e.g. 500m (=0.5), 700n (=0.0000007), 5.1k (=5,100). This is easy enough though it can clash with non-standard multiples (MM suffix, M misspelled as m, B for billion, ...). The U is quite unnecessary.
I'd have voted for burflydick or mumbledypeg or doohickey
A better reasoning for why SI needed a formalism of a unit for dimensionless value would possibly have helped. Almost universal negative dislike speaks to a committee on a mission without a good sense of "do we need a reality check here"
I and everyone I know has used either "utils," "units," or "U" for such units. Uno is a direct reference to the UN, specifically United Nations Organization. Or maybe it is one in Spanish. Please stop trying to create new things that aren't needed and end up trampling on the rest of the language.
The number 1 isn't the SI unit for dimensionless constants. The SI unit for dimensionless constants is 602214076000000000000000.
No, "amount of something" or "number of atoms" is not a different unit than dimensionless constants; that would be like if the SI unit had "the amount of charge held by 10^30 electrons" as a different unit than "charge".
> The SI unit for dimensionless constants is 602214076000000000000000.
The radian and steradian represent firm rejection of the mole as a general dimensionless unit, despite it being a base unit and arguably (depending on how you feel about particles as a dimension) dimensionless.
I think they're referring to the fact that there is one dimensionless base unit already standardized in SI: the mole. There aren't two length units, so there "shouldn't be" two dimensionless ones.
(Whether they were trying to be funny or not I couldn't tell you.)
Since moles count the number of atoms, perhaps they can only be used for natural numbers? Whereas you could legitimately say that something was -1.7 unos.
>In 2004, a report to the International Committee for Weights and Measures (CIPM) stated that response to the proposal of the uno "had been almost entirely negative", and the principal proponent "recommended dropping the idea".[15] To date, the uno has not been adopted by any standards organization, and it appears unlikely that it will ever become an officially sanctioned way to express low-value (high-ratio) dimensionless quantities. The proposal was instructive, however, as to the perceived shortcomings of the current options for denoting dimensionless quantities.