When reading a date column, it is possible to provide a `*` at the end of the format to cause it to discard an optional time section, if present, for example:
read "/example.csv" as T date: "yyyy-MM-dd*" with
This will treat a value such as 2023-06-29 10:24:35
as if it were just 2023-06-29
. Without this trim option, attempting to read the value will fail and report an error.
Similarly, when reading a number column, it is possible to provide a `*` at the end of the format to cause it to discard up to three non-digit characters either at the start or the end of the number value. For example:
read "/example.csv" as T number: "1,000.0*" with
This will treat a value such as 10.00 USD
as if it were just 10.00
. Without this trim option, attempting to read the value will fail and report an error.
Factorio https://www.factorio.com/ is the grandfather of factory simulation games, and it's centered around production chains, but the default play style is rather light in terms of supply chain (just create a factory that, if fed with raw materials for long enough, produces everything you need eventually). I recommend going for a train-based play style (especially against hostile aliens), as it tends to center a lot more around what you need to deliver, where, when, and in what quantities. The space exploration mod https://mods.factorio.com/mod/space-exploration is also great on those aspects.
Satisfactory https://www.satisfactorygame.com/ is also interesting for those who like more of a 3D feel.
My favorite is Dyson Sphere Program https://store.steampowered.com/app/1366540/Dyson_Sphere_Program/ as it forces you to set up interstellar supply chains: in Factorio and Satisfactory one tends to create a central base into which all raw inputs are fed, but in Dyson Sphere Program it's usually better to transport your intermediate goods to a planet with oceans of sulfuric acid that are needed for its processing, rather than shipping the sulfuric acid back to a central planet. Or, to move energy-hungry processing to a tidally-locked planet right next to the sun.
Transport Fever 2 https://www.transportfever2.com/ has excellent gameplay, with half of it being centered around industrial supply chains. The Industry Expanded mod is very good in this aspect https://steamcommunity.com/sharedfiles/filedetails/?id=1950013035 The Cities: Skylines game with the Industries expansion https://www.paradoxinteractive.com/games/cities-skylines/add-ons/cities-skylines-industries is also quite good in the same vein.
Banished https://store.steampowered.com/app/242920/Banished/ is also interesting in that you are expected to set up an entire medieval supply chain from scratch. It includes dealing with overfilled warehouses, random demand (weather for firewood, illness for medicine), investment (planting an orchard takes years to yield fruit), out-of-stock penalties (starvation, running out of tools which cuts productivity across the board), and so on.
On the other hand, groundbreaking innovations are often made possible by incremental innovations in other areas (such as the improved precision of steel machining tools allowing the creation of cost-efficient gasoline engines).
It's tempting to solve an easier problem only superficially related to the actual problem.
It is often the case in software that deciding on a solution based on a checklist of features leads to feature bloat. Picking a few core features, and wrapping them in a system that allows easy customization, is quite more effective.
I've seen several retailers completely give up on mustard. Rather than have an empty mustard section (with a paper explaining the situation), there is no mustard section anymore, the available space taken by enlarged mayonnaise and vinaigrette sections.
https://divan.dev/posts/animatedqr/
Someone invented an animated QR-code format. If you film the animation long enough, you can download an arbitrarily large file.
The thousands separator is optional, but the decimal separator is mandatory. If no decimal separator is provided, the parsing will fail even if the provided numbers do not have decimals.
The shortest call to
parsenumber
(ortryparsenumber
) is therefore: