HNHacker News
TopNewBestAskShowJobs

nayuki

6,604 karma · joined May 31, 2011

I am a software developer.

Home page: https://www.nayuki.io/

submissionscomments
nayuki··on Greek Alphabet Cards
The full alphabet?
nayuki··on Greek Alphabet Cards
While bored in high school math class around the year 2005, I forced myself to learn the Greek alphabet. That very much came in handy in university, as Greek letters are frequently used for variables in computer science, mathematics, and physics.
nayuki··on Int a = 5; a = a++ + ++a; a =? (2011)
> Applying the increment or decrement operators over the same variable more than once on the same line should be a compile-time error

That would be nice, but don't forget the more general case of pointers and aliasing:

    int a = 5;
    int *pa = &a;
    printf("%d", (a++ + ++*pa));
The compiler cannot statically catch every possible instance of a statement where a variable is updated more than once.
nayuki··on Louis Rossmann offers to pay legal fees for a threatened OrcaSlicer developer
The Bambu Lab P2S is a CoreXY printer, and that's why it's physically faster than the Prusa MK4S which is a bed slinger.
nayuki··on Getting arrested in Japan
I enjoyed learning from this video years ago, which introduces the topic of how you are treated when arrested in Japan:

* Paolo fromTOKYO - "Why Japan Arrests Foreigners" https://www.youtube.com/watch?v=r1ZLGqL1FMo (14m23s) [2019-08-16]

nayuki··on How an oil refinery works
You wrote ethanol (C₂H₆O), but do you mean ethylene/ethene (C₂H₄)? Polyethylene (PE) is a very common plastic, such as HDPE, LDPE, PET.
nayuki··on Show HN: Live Sun and Moon Dashboard with NASA Footage
I see the changes now - just incredible! You are probably the most responsive author I have ever interacted with in decades.
nayuki··on Show HN: Live Sun and Moon Dashboard with NASA Footage
A neat dashboard. The usage of metric units can be improved:

> Corona ~1.2M K / Active Regions ~2M K / Hot Flares ~6.3M K / Flare Plasma ~10M K / Active Corona ~2.5M K / 10M K Hottest flare plasma

If "M" means "million", then it's correct but not the best way to express things. If "M" means "mega", then there must be a space after the number and no space before the unit of kelvin - it needs to be written as "1.2 MK" (megakelvins), "2 MK", etc.

> The Cosmos at a Glance / 1.4M km Solar diameter

If "M" means "million", then it's correct but really not the best way to express things. If "M" means "mega", then stacking prefixes is not allowed in metric - it needs to be written as "1.4 million km" (full number word), "1 400 000 km", or "1.4 Gm (gigametres)".

In general publications, any length unit bigger than the kilometre is extremely uncommon. But this aversion to large prefixes is weird because we are (forced to be?) routinely comfortable with megahertz, gigahertz, megabytes, gigabytes, terabytes, megapascals (material strength), megaohms (insulators), megavolts (the highest voltage transmission lines). I see no good reason to avoid megametres, gigametres, etc. But the unspoken convention is to write "thousand kilometres", "billion kilometres", etc.

> The Cosmos at a Glance / 3,000 km/s Fastest CME speed

This fact is given in kilometres-per-second, but a bunch of other facts are given in kilometres-per-hour. This makes it much harder to compare their relative magnitudes. It's similar to the problem of comparing airplane speeds in knots versus bullet speeds in feet per second. These units aren't wrong individually, but think carefully about when to switch units and when not to.

> The Sun facts / A dynamic sphere of plasma photographed by NASA’s SDO every 12 seconds in 12 wavelengths — from the 5,000 K surface to 10-million-degree flare plasma.

Don't switch units mid-sentence from kelvins to degrees (and which type of degree?). Compare "5 000 K" with "10 000 000 K". It's correct but less common to say "5 kK vs. 10 000 kK" (kilokelvins).

> The Sun facts / The Sun’s core burns at 15 million °C — hot enough to fuse 600 million tons of hydrogen into helium every second.

I would like to note that 600 million tons (megagrams) is 600 Tg (teragrams). But it's also an unspoken convention to avoid units of mass larger than kilogram, so it's rare to see megagrams, gigagrams, etc. in writing.

> The Sun facts / The Sun’s surface gravity is 28 times stronger than Earth’s. A 150-pound person would weigh 4,200 pounds there.

I would prefer not to see the unit of pounds in the discussion, and also the sentence conflates mass with weight. Reworded with extra notes: A 70-kilogram person (anywhere in the universe) would feel like they weigh 1900 kg on Earth (18.7 kilonewtons).

> The Sun facts / Sunspots are cooler regions — about 3,500°C compared to the 5,500°C surface — but are still incredibly hot.

You mostly used kelvins to talk about the Sun, but now you're using degrees Celsius for a few facts?

Before anyone accuses me of pedantry, please remember: Clarity matters in communication. We have spelling and grammar rules in English, and there are also rules in technical syntax such as expressing quantities using the metric system.

Also, people copy each other, so setting a good example is not just about the current reader, but also future writers and readers. To give an example, almost no one uses the unit "kelvin" correctly, and the bad usages keep getting propagated. Incorrect - "4000-Kelvin light bulb" (adjective form, uppercase), "temperature of 273 degrees kelvin". Correct - "4000-kelvin light bulb" (adjective form, lowercase), "temperature of 273 kelvins" (non-adjective form requires plural). The unit of kelvin must be treated no differently than joules, watts, newtons, etc.

The purpose of standards is to reduce the space of possibilities, which makes it easier for writers to choose what to write and easier for readers to understand the correct intended meaning. As an example, the symbol for metre is just "m", no others. Some ad hoc sloppy abbreviations for metre include: "M" (conflicts with mega), "mtr", "mtrs", "ms" (conflicts with millisecond). For writers and readers alike, it's much easier to learn the single symbol rather than four or more ways of expressing the same unit. Similarly, gram is "g", but I've seen supermarkets with labels like "gm"; kilometre is "km", but I've seen "kms" as an ad hoc plural.

nayuki··on Can You Find the Comet?
You pay the read noise every time you read out the sensor and digitize the values. Also, you lose a tiny bit of time between exposures as the sensor resets itself. And you might have a bottleneck in moving the data off the sensor and saving the image. Furthermore, if you perform lossy compression on the video, then your digitally stacked image will differ significantly from analog stacking on the silicon sensor.
nayuki··on Can You Find the Comet?
I believe your claim about noise and long exposures is false. To start, I posit that there are three sources of noise:

0) Photon shot noise from the object that you want to photograph. This is an inherent and unchangeable quantum-mechanical fact.

1) Sensor read noise per photo taken. This increases with the number of subexposures.

2) Dark current noise per time and per temperature.

#0 and #2 only depend on the total exposure time, not the number of subexposures. #1 actually gets worse with more subexposures, but what you gain are the ability to reject satellite trails, bad mount tracking, cosmic rays, wind gusts, rolling clouds, and other transient artifacts. Whereas if you took a single hour-long exposure, it's essentially guaranteed to be ruined by something.

The trade-off in how many / how long subexposures to take has been analyzed and discussed to death by astro imagers. To cite a few videos I enjoyed: https://www.youtube.com/results?search_query=astrophotograph... , https://www.youtube.com/watch?v=T_k9B01AeFM , https://www.youtube.com/playlist?list=PLaDi49CzWbrYhWEKxWiwB... , https://www.youtube.com/watch?v=mj5zn_Jz3dE , https://www.youtube.com/watch?v=n1RbyswFUqs

As for ISO, it is very commonly misunderstood. ISO amplifies photon noise and dark current noise, and changing the ISO doesn't make your images better or worse in these aspects. ISO in the form of analog gain can help boost the signal above the analog-to-digital converter noise, and that's what it's useful for. The MinutePhysics video explains excellently: https://www.youtube.com/watch?v=ZWSvHBG7X0w . More and more sensors these days approach "ISO invariance", where analog amplifier gain has about the same effect as digital gain (i.e. multiplying the measured numbers on a computer).

Exactly what I'm refuting:

> exposure duration

In astronomy, more is better. Get as much total exposure time as you can afford (e.g. time being at a suitable location, time spent monitoring the equipment, time under clear skies).

> aperture

In astronomy, more is better. Buy the biggest aperture you can afford - obviously, subject to constraints such as cost, weight, mountability, focal length. Also, telescopes don't have adjustable aperture blades, unlike general photographic lenses. You could put a disc cut-out in front of the telescope to close down the aperture, but that's just a waste of light.

> minimum amount of sensor noise

You get the least amount of sensor noise by reducing the exposure time and reducing the temperature (dedicated astro cameras have Peltier cooling). Note that although noise increases with time, signal increases with time faster, so the signal-to-noise ratio is proportional to the square root of time. So 100× more exposure time gives you a 10× better SNR.

> stacking the images typically gives better results than one massive exposure

This is the main falsehood that I wanted to address. Taking multiple images actually gives more noise overall, even if it's a tiny bit. But multiple images gives you much more processing flexibility and the ability to selectively reject things.

nayuki··on I built "Middle Class Museum", a tour of things that used to be affordable
A bunch of refutations:

None of the prices are inflation-adjusted. That gives more sticker shock than reality.

> The Starter Home / No bidding war. / Gary just... bought it.

That was back when land was plentiful and cheap, and homes had fewer features and comforts. Now all the desirable land is taken, and existing homeowners don't want to increase density, so prices go up and newcomers get pushed farther out. NIMBYs and exclusionary zoning are a large part of the problem.

> The Pension / Your employer saved for your retirement.

I dislike the old-style "defined-benefit" pensions, because you are completely at the whim of your employer. They set the arbitrary terms of tenure (how much pension you receive in relation to how many years you work), pay-in, and payout. You're also reliant on your company staying solvent to pay you in retirement. Nope, I much prefer "defined-contribution" self-funded pensions where your account is segregated from everyone else, and usually you get to choose excellent low-cost broad-market index funds. In Canada, DC is RRSP, and I guess in the USA it's 401(k) and IRA. DC also allows you to job-hop much more easily because the amount you contributed to your retirement account is clearly yours and not a matter of company policy.

> One-Income Household / Dad worked. Mom stayed home.

I think that arrangement was bad for women's autonomy and rights, but someone more qualified than me can speak about it.

> National Park Vacation / Pay $5. No reservation required.

Well, the growth in parks didn't match population growth. Or there's a growth in domestic and international tourism in general.

> The Savings Account / The bank paid you 8% a year

I'm pretty sure that happened during a period when annual inflation was 10~15%, meaning that you lost money by "saving" cash. Also, interest is taxed at a much higher marginal rate than capital gains, so it's dumb to invest in cash instead of stocks. It is true, though, that in much of my adult life, the savings account interest rate is around 0~2%, making it a completely meaningless financial product to me.

> c. 1994 / The Family Computer / $2000

You can buy an entry-level laptop for about $500 since the year 2010. The barrier to entry in getting a computer went down gradually each year.

> c. 2000 / The $1 Slice / A massive, greasy slice of New York style pizza

I bought a $1 slice in NYC in the year 2019 and it was a decent size. I haven't visited afterward so I can't say.

> The DVD Collection / You owned your media.

You can still buy Blu-ray discs of your favorite movies. Most people choose not to out of short-term convenience.

> Flying / Free bags, shoes on

Those features aren't "free". It costs the airline money and opportunity cost to move your luggage (excess room can be used for paid cargo shipments). Those features have just been unbundled so that people who don't need the feature don't pay it, people who need it pay it, and you don't have the non-users subsidizing the users. That's like saying a $50 buffet is "free" even though you'd be equally satisfied with a $20 meal paid à la carte.

> 401k Matching / Free money

Lolno, there's no such thing as free money. "Employer pays" still affects how much the employer spends on you, which ultimately affects their calculation on who to hire and how much to pay them. It only affects the split of how much of the employer's money gets paid to you as an unrestricted salary versus restricted programs like healthcare insurance and pensions.

> The 99-Cent App / No accounts

I'm pretty sure you need an Apple or Google account to buy the app in the first place. After you bought the app, you can reinstall it for free on any newer phone that you buy.

> The Subsidized Smartphone

I heard that the old days were not good, because the 2-year contract forced you to buy a higher tier cellular service plan than if you brought in a fully paid-off phone. Also, there are significant fees for breaking the 2-year contract.

> Buying a House in a City / you could still buy a 2-bedroom in Austin for $210,000

Yeah, thank NIMBYs for that again. When residential construction can't keep up with demand (mostly due to regulatory reasons), prices go up.

> The Stimulus Check / Billionaires blame inflation on you buying groceries with it.

You don't believe that printing money causes inflation? WTF

> Remote Work / Your company saved millions on office real estate.

You make it sound bad. I think it was great - zero time spent commuting, access to amenities at home such as a kitchen, more privacy, better mood.

> The Subscription Everything / You own nothing.

Renting isn't necessarily worse than owning. There is a break-even point that is different for every person. Renting Netflix for $0.01/month would be awesome. Maybe most people will be happy to pay $10/mo to have access to an enormous media library. $100/mo would be unreasonable. Consider the alternative - how much per month does it cost to purchase physical media to derive the same amount of enjoyment from entertainment?

> The Tip Screen / barista ... ask you to subsidize their wages because the corporation won't

"The corporation" ultimately receives money from customers who pay for the product. If no customer paid tips, "the corporation" can't magically create money out of thin air to pay the employees more; the corp would need to raise prices on the menus (which I agree with).

No, the question isn't whether "the corporation pays", because that's nonsense; it's whether people are obliged to pay because it clearly says so on the menu price, or generous people "voluntarily" pay more towards the barista's wages because they are socially "expected to".

> The End. / You own nothing. You subscribe to everything. Your rent is higher than your parents' mortgage.

It's worth repeating: Renting is not necessarily worse than owning. For housing, many people have done the analysis and I can point you to a heap of YouTube videos explaining the situation. There are both financial and non-financial aspects (e.g. Realtor fees, breaking a mortgage) to this comparison.

nayuki··on Can You Find the Comet?
Pretty much every DSLR/DSLM camera out there has a "bulb" mode that keeps the shutter open as long as you hold down the shutter button. I think my personal record is a 20-minute exposure.

As for actually holding down the button, you can either use an external wired shutter button that has a mechanical lock to hold it down, or you use a wired controller that has an electronic timer, or you use a software feature in the camera to set the bulb timer.

nayuki··on New study compares growing corn for energy to solar production
Does Titan have enough oxygen to allow the combustion of hydrocarbons?
nayuki··on Floating point from scratch: Hard Mode
When people see that binary-float-64 causes 0.1 + 0.2 != 0.3, the immediate instinct is to reach for decimal arithmetic. And then they claim that you must use decimal arithmetic for financial calculations. I would rate these statements as half-true at best. Yes, 0.1 + 0.2 = 0.3 using decimal floating-point or fixed-point arithmetic, and yes, it's bad accounting practice when summing a bunch of items and getting a total that differs from the true answer.

But decimal floats fall short in subtle ways. Here is the simplest example - sales tax. In Ontario it's 13%. If you buy two items for $0.98 each, the tax on each is $0.1274. There is no legal, interoperable mechanism to charge the customer a fractional number of cents, so you just can't do that. If you are in charge of producing an invoice, you have to decide where to perform the rounding(s). You can round the tax on each item, which is $0.13 each, so the total is ($0.98 + $0.13) × 2 = $2.22. Or you can add up all the pre-tax items ($1.98) and calculate the tax ($0.2548) and round that ($0.25), which brings the total to $0.98×2 + $0.25 = $2.21, a different amount. Not only do you have to decide where to perform rounding(s), you also have to keep track of how many extra decimal places you need. Massachusetts's sales tax is 6.25%, so that's two more decimal places. If you have discounts like "25% off", now you have another phenomenon that can introduce extra decimal places.

If you do any kind of interest calculation, you will necessarily have decimal places exploding. The simplest example is to take $100 at 10% annual interest compounded annually, which will give you $110, $121, $133.1, $146.41, $161.051, $177.1561, etc., and you will need to round eventually. Or another example is, 10% annual interest, but computed daily (so 10%/365 per day) and added to the account at the end of the month - not only is 10%/365 inexact in decimal arithmetic, but also many decimal places will be generated in the tiny interest calculations per day.

If you do anything that philosophically uses "real numbers", then decimal FP has zero advantages compared to binary FP. If you use pow(), exp(), cos(), sin(), etc. for engineering calculations, continuous interest, physics modeling, describing objects in 3D scene, etc., there will necessarily be all sorts of rational, irrational, and transcendental numbers flying around, and they will have to be approximated in one way or another.

nayuki··on Good Taste the Only Real Moat Left
Reminds me of PG's classic essay, "Taste for Makers" (2002): https://paulgraham.com/taste.html
nayuki··on AI may be making us think and write more alike
> AI may be making us think and write more alike

Many technologies have been doing that for centuries. For example: The printing press making books available to the masses, standardized spelling in English (it was a mess before!), radio and TV broadcasting speech thus creating more uniform accents nationwide, the Internet spreading all kinds of information globally instantly, even memes (literally thinking and writing alike).

nayuki··on Floating point from scratch: Hard Mode
Well, that escalated quickly. From skimming the first few screenfuls of the page, I thought it was going to be about a beginner programmer's first time dissecting the low-level bit structure of floating-point numbers and implementing some of the arithmetic and logic from scratch using integer operations.

And then she writes about logic cells, hardware pipeline architectures, RTL (register-transfer level), ASIC floorplans, and tapeout. Building hardware is hard, as iteration cycles are long and fabricating stuff costs real money. That was quite a journey.

Her "about" page adds more context that helps everything make sense:

> Professionally, I have a Masters in Electrical and Computer Engineering, have previously worked as a CPU designer at ARM and an FPGA engineer at Optiver. -- https://essenceia.github.io/about/

nayuki··on SSH certificates: the better SSH experience
Zscaler was deployed on a Windows 11 machine at a place that a friend worked at. When I assessed the software, its behavior was downright evil like malware. As we all know, it injects its own root certificate into the operating system in order to conduct man-in-the-middle attacks on TLS/HTTPS connections to monitor the user's web activity.

Furthermore, it locks down the web browser's settings so that you cannot use a proxy server to bypass Zscaler's MITM. I saw this behavior in Mozilla Firefox, where the proxy option is set to "No proxy" and all other options are disabled and grayed out; I imagine that it does the same to Google Chrome. If you try to modify the browser's .ini(?) file for proxy settings, Zscaler immediately overwrites it against your will. Zscaler worked very hard to enforce its settings in order to spy on the computer user.

And as you'd expect, if you open up the Zscaler GUI in the system tray, you are presented with the option to disable the software if you have the IT password. Which of course, you don't have. Then again, that might be an epsilon better than the Cybereason antivirus software, which just has a system tray icon with no exit option, and cannot be killed in Task Manager even if you are a local administrator, and imposes a heavy slowdown if you're open hundreds of small text files per second.

nayuki··on RSA and Python
I have a different take on the same topic: https://www.nayuki.io/page/java-biginteger-was-made-for-rsa-...

My article isn't written as a step-by-step tutorial and doesn't come with example numbers. But mine fills in certain things that xnacly doesn't cover: random prime generation, efficiently calculating the decryption exponent d from (n, e) by using a modular inverse, using modular exponentiation instead of power-then-modulo.

By the way for Python, modular exponentiation is pow(x, y, m) (since 3.0), and modular inverse is pow(x, -1, m) (since 3.8, Oct 2019). https://docs.python.org/3/library/functions.html#pow

nayuki··on Hold on to Your Hardware
> Most consumers are using laptops and laptops are not keeping pace with where the frontier is in a singular compute node. Laptops are increasingly just clients for someone else's compute that you rent, or buy a time slice with your eyeballs, much like smartphones pretty much always have been.

It really feels like we're slowly marching back to the era of mainframe computers and dumb terminals. Maybe the democratization of hardware was a temporary aberration.

nayuki··on Gzip decompression in 250 lines of Rust
True. A most basic CRC implementation is about 7 lines of code: (presented in Java to avoid some C/C++ footguns)

    int crc32(byte[] data) {
        int crc = ~0;
        for (byte b : data) {
            crc ^= b & 0xFF;
            for (int i = 0; i < 8; i++)
                crc = (crc >>> 1) ^ ((crc & 1) * 0xEDB88320);
        }
        return ~crc;
    }
Or smooshed down slightly (with caveats):

    int crc32(byte[] data) {
        int crc = ~0;
        for (int i = 0; i < data.length * 8; i++) {
            crc ^= (data[i / 8] >> (i % 8)) & 1;
            crc = (crc >>> 1) ^ ((crc & 1) * 0xEDB88320);
        }
        return ~crc;
    }
But one reason that many CRC implementations are large is because they include a pre-computed table of 256× 32-bit constants so that one byte can processed at a time. For example: https://github.com/madler/zlib/blob/7cdaaa09095e9266dee21314...
nayuki··on Gzip decompression in 250 lines of Rust
Just like that author, many years ago, I went through the process of understanding the DEFLATE compression standard and producing a short and concise decompressor for gzip+DEFLATE. Here are the resources I published as a result of that exploration:

* https://www.nayuki.io/page/deflate-specification-v1-3-html

* https://www.nayuki.io/page/simple-deflate-decompressor

* https://github.com/nayuki/Simple-DEFLATE-decompressor

nayuki··on The miracle of PowerToys, Microsoft's last great Windows app
> Microsoft PowerToys feels like something that shouldn’t exist in Windows today. What started in 2019 as a couple of utilities for things like window and shortcut management has gradually expanded to nearly 30 useful tools

Year 2019? Oh no, not by a longshot. I've been using Microsoft-branded PowerToys since Windows XP, around the year 2001. Wikipedia says:

> PowerToys are available for Windows 95, Windows XP, Windows 10, and Windows 11 (and explicitly not compatible with Windows Vista, 7, 8, or 8.1).

https://en.wikipedia.org/wiki/Microsoft_PowerToys

nayuki··on How to defer US taxes
If I understand correctly, the "buy borrow die" strategy of tax avoidance hinges on these aspects of the tax code: Buying an asset is not a taxable event. Holding onto an asset and letting it appreciate is not a taxable event. Borrowing money is not a taxable event. Holding an appreciated asset until death will step up its cost basis to the current market value (thus erasing any capital gains taxes), and it can be passed on but large amounts will trigger inheritance taxes.
nayuki··on How to defer US taxes
> Loaned money isn't taxable income, so you can save/spend it without affecting your tax rate.

> Death is a popular escape from deferred taxes. When you die, your obligations to the government vanish. Your heirs inherit assets/property at market value. Their assets depreciate from new cost bases.

The article talks about taxes in the USA, and I think the treatment of taxes at death is unfair by giving a significant tax advantage to people who hold assets till death, especially with the step-up basis. The way Canada handles it seems more reasonable to me:

> Capital property generally includes real estate, such as homes and cottages, investments like stocks, mutual funds or crypto-assets, and personal belongings like artwork, collections or jewelry. When a person dies, they are considered to have sold all their property just prior to death, even though there is no actual disposition or sale. This is called a deemed disposition and may result in a capital gain or capital loss

-- https://www.canada.ca/en/revenue-agency/services/tax/individ...

In exchange, Canada does not have an inheritance tax. All taxation is resolved in the estate of the deceased person before the money or assets are passed on without further taxation.

nayuki··on John Carmack about open source and anti-AI activists
Then by your definition, SQLite isn't open-source because it's a code dump with a license, but outsiders are not allowed to participate in shaping (the official copy of) the code.
nayuki··on The Road Not Taken: A World Where IPv4 Evolved
Their hypothetical approach of extending IPv4 reminds me of how TLS v1.3 masquerades as v1.2 in order to pass through meddling middleboxes safely.
nayuki··on Why the global elite gave up on spelling and grammar
There are a handful of neighborhood and street names used in Toronto (not necessarily from Toronto) that have unusual pronunciations. Here I'll give some triples of (English spelling, actual pronunciation (IPA), a naive pronunciation (IPA)):

(Yonge, [jʌŋ], [jɑndʒ]); (Strachan, [sdʒɹɑn], [ˈsdʒɹa.tʃæn]); (Tecumseth, [tə.ˈkʌm.zi], [ˈti.kəm.sɛθ]); (Markham, [ˈmɑr.kʌm], [ˈmɑrk.hæm]), (Etobicoke, [ɛ.ˈtoʊ.bɪ.koʊ], [ɛ.ˈtoʊ.bɪ.koʊk]).

See also: https://www.youtube.com/watch?v=i2cyg6bFeRc , https://www.youtube.com/watch?v=1PmeDWvwD8M

nayuki··on Lego's 0.002mm specification and its implications for manufacturing (2025)
Upvoted, and the English prose is pretty good in spelling and grammar, but the metric units in the writing need improvement.

> 10 microns

"Micron(s)" is a deprecated word since 1967 and "micrometre(s)" must be used instead. The reason is that it is a non-standard word; if "micron" is accepted, then we should also accept the nonsensical words "millin", "nanon", "kilon", etc. The metric system is supposed to be easy to learn with consistent rules and as few special cases as possible.

> 4.8mm ... 0.01mm ... "0.002mm tolerance"

These numbers are correct, but it's harder to quickly skim the text and make comparisons because the number of decimal places vary. It would be better to write 4.800 mm, 0.010 mm, 0.002 mm to make the reader's job easier. Or convert everything to whole micrometres, like 4800 μm, 10 μm, 2 μm.

> withstand over 4,000 Newtons

Almost correct, but the unit must be decapitalized to "newtons". This is similar to how other name-based units are decapitalized - like "100-watt light bulb", "12 amps", "3 gigahertz".

> 2-3 Newton insertion force

It must be written as "2–3 newtons". When the unit name is written out in full, it follows normal English pluralization rules (e.g. metres, seconds, volts, pascals, kelvins, ohms, teslas). The only exceptions are hertz and siemens, because they already end with -s or -z.

nayuki··on A useless infinite scroll experiment
Windows autoscroll makes this game too easy. This feature was introduced a very long time ago, possibly with the IntelliMouse in the year 1996. Press on the scroll wheel (considered to be middle-click) and release the button, which overlays a little scroll guide circle. Move the mouse down to begin scrolling, and don't touch anything else. Click any mouse button to stop scrolling. (Another variant is to click and hold the wheel button, move the mouse down to scroll, and release the button to stop.)
← PreviousPage 3 of 34Next →