ISSUE: Mathematica (v14.1): Known Apple BUG: macOS Ventura: M1 Max/Silicon: Export to ProRes is buggy! WORKAROUND: To use transparency, export to PNG then use Mac Compressor or Handbrake to convert to ProRes4444 |
Wolfram, Mathematica, 3D, 3D modelling, PNG, QuickTime, ProRes4444, ProRes, macOS, M1 Max, M1 Silicon |
ISSUE, LIMITATION |
TIP: Mathematica: To Export a ListAnimation without the controls (and without possible frame drops) Export the List of frames directly (not the output of ListAnimation) |
Wolfram, Mathematica, 3D, 3D modelling |
TIP |
TIP: Mathematica: HOWTO Get the (approximate) bounding box of any Graphics3D object for use in PlotRange. Use Charting`get3DPlotRange |
Wolfram, Mathematica, 3D, 3D modelling |
TIP |
Dr Darren's thoughts on some problems with "Python culture" (and it isn't the fault of the language, per se, nor of the best Python language developers or commercial Python library developers) |
python, Mathematica, Wolfram, Wolfram Language |
ASSERTION |
Mathematica: GOTCHA: If a function is used to generate a control specification (or a grouping of control specifications in a layout) under some circumstances an 'Evaluate@' must be applied to the function for the control specification to be accepted. |
Wolfram, Mathematica, Wolfram Language |
GOTCHA, TIP, WARNING |
Mathematica: Webel ADT pseudo classes: 'Q: Do I have to use these EX$Val scalar "atom" thingies and the EX$Row, EX$RowList, and EX$RowMap? Can't I just use Wolfram Language Lists and Associations?' A: Of course you can also use the basic Wolfram Language! |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional |
CAPABILITY |
Mathematica: Webel ADT pseudo classes: An EX$Val has concise methods for testing the type of its wrapped '$$' value: isR, isI, isB, isQ, isS. These may be used in ADT "constructor" type tests. |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional |
CAPABILITY |
Mathematica: Webel ADT pseudo classes: The validity of the type of a wrapped '$$' value of an EX$Val may be checked in ADT "constructors" which have type checking utility support. This strategy has been chosen over sub-types of EX$Val. |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional |
CAPABILITY |
Mathematica: Webel ADT pseudo classes: There does not seem to be a way to register ::usage specific to a Webel ADT-Method (TagSetDelayed UpValue). The Webel libraries offer method documentation support via the HelpO` class/method registry. |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional |
CAPABILITY |
Mathematica: Webel ADT pseudo classes: Webel ADT-Methods support Wolfram Language Options[] as TagSetDelayed UpValues (but there are some pros and cons). Webel ADT-Methods work with the Webel HelpO` class/method registry, including rich help on options. |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional |
CAPABILITY |
Mathematica: Webel ADT pseudo classes: «adt:ref» applied to a property indicates that it is resolved by ID through the ADT store using adt$fetch[id]. Use adt$store[adt] for very large ADTs and for cleaner ADT views and easier Notebook development. |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional |
CONVENTION, POLICY |
Mathematica: Webel OpenXML: The XL$Cell value accessor XL$Cell⊙valReal has no units-awareness; prefer the US$Cell value accessor US$Cell⊙val, which can return a Quantity. |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, OpenXML |
POLICY |
Mathematica: Webel ADT pseudo classes: POLICY: Where an ADT-Method uses UUID-driven Once[] caching the trigger argument is a String '$uuid' which MUST have a default None and MUST be the first argument that has a default. |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional |
CONVENTION, POLICY |
Mathematica: Webel ADT pseudo classes: The SysMLv1 models are supported by custom stereotypes with icons. Some of these indicate OO-similar use of ADT-Methods and departures from formal Abstract Data Type (ADT) definitions. |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:Method, Webel:ADT |
CONVENTION, NAMING |
Mathematica: Webel ADT pseudo classes: The ADT⊙get method may be used to access the '$$' wrapped primary. This is intended for development and testing purposes only (not for regular use by clients) since it BREAKS ENCAPSULATION! |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT |
POLICY |
Mathematica: TIP: Start with With, update to Module as needed. |
Mathematica, Mathematica::With, Mathematica::Module, Wolfram, Wolfram Language |
TIP |
Mathematica: SUPER TIP: Use CreateUUID[] to trigger recalculation against Once[] to create a flexible optionally caching function! (May incur a memory penalty, consider also using a 'loc' persistence location.) |
Mathematica, Wolfram, Wolfram Language, Mathematica::CreateUUID, Mathematica::Once |
EXPLANATION, TIP |
Mathematica: GOTCHA: The Problems Analysis review system of Mathematica Plugin for IntelliJ IDEA reports a declared Module variable used as a Table loop variable as an "Used local variable". DO NOT SIMPLY DELETE IT! |
Mathematica, Wolfram, Mathematica::Module, Mathematica::Table, Wolfram Language, Mathematica:IntelliJ-IDEA-Plugin |
EXPLANATION, GOTCHA, ISSUE |
Mathematica: TIP/GOTCHA: When using a Table loop variable within a Module always declare a module variable for it or you can get very hard to track side-effects elsewhere in your project due to exposed scope. Yes, it's obvious (yet easy to miss). |
Mathematica, Wolfram, Mathematica::Module, Mathematica::Table, Wolfram Language |
EXPLANATION, GOTCHA, TIP |
Mathematica: Webel: A concise i:/o: notation is often used for indicating input/output cells in Mathematica notebooks in Webel's online help pages and tutorials, instead of 'In[n]:=' and 'Out[n]='. (Also learn how to hide them completely in notebooks.) |
Wolfram, Mathematica, Wolfram Language, Mathematica:notebook |
CONVENTION, TIP |
Mathematica: Webel ADT pseudo classes: POLICY: The ADT-Methods of an ADT-Class are created as TagSetDelayed UpValues using the 'signature' of the ADT-Class and its defining 'pattern' as 1st argument |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT, Webel:ADT:Definer |
CONVENTION, NAMING, POLICY |
Mathematica: Webel ADT pseudo classes: CONVENTION: PROVISIONAL: The infix operator for calling ADT-Methods on ADT "objects" is the CircleDot (⊙ in Notebooks). ISSUE: \[CircleDot] is NOT GOOD FOR USE IN IDEs! |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:Class, Webel:ADT:Definer, singleton, Webel:ADT:infix, Webel:ADT:Object |
CONVENTION, NAMING, POLICY |
Mathematica: Webel ADT pseudo classes: POLICY/DEFINITION: Every "hard coded" definer or defining client of a definer has a corresponding ADT ArchetypeClass. Example ("hard coded"): The definer 'my$def$MY$SmartList' has ArchetypeClass 'MY$SmartList'. |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:Class, Webel:ADT:Definer, singleton, Webel:ADT:ArchetypeClass |
CONVENTION, NAMING, POLICY |
Mathematica: Webel ADT pseudo classes: TIP: Prefer the Decorator Pattern over multiple inheritance of ADT-Method UpValues! (But not because "inheritance is evil" per se, it isn't.) The base ADT libraries make heavy (and very useful) use in inheritance. |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:MemberInterface, Decorator Pattern, multiple inheritance, inheritance |
TIP |
Mathematica: Webel ADT pseudo classes: A tricky POLICY & CONVENTION: Client packages MUST access the special "wrapped" primary '$$' via $ContextAliases! The recommended alias is "A`" (which stands of course for ADT). |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:Class, Webel:ADT, Webel:ADT:A`, Mathematica:$ContextAliases |
CONVENTION, POLICY, TIP |
Mathematica: Webel ADT pseudo classes: POLICY: Multiple inheritance is supported via ONE (only) ADT-Class and one or more ADT-MemberInterfaces (which have no ADT-Method UpValues) |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:MemberInterface, Webel:ADT:Class, inheritance, multiple inheritance |
POLICY |
Mathematica: Webel ADT pseudo classes: POLICY: Definer functions MUST return the self-declared or injected 'pattern' that determines the unique "ADT-signature" of the defined ADT class. |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT, Webel:ADT:Definer, Webel:ADT:signature |
POLICY |
Mathematica: Webel ADT pseudo classes: ADTs that define membership of ADT-classes in a domain package have ADT-signature MemberInterface[$$:None] and MUST NOT populate ADT-method UpValues in their definers. |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:MemberInterface |
POLICY |
Mathematica: Webel ADT pseudo classes: NAMING CONVENTION: An UpValue that can be invoked on an ADT accepting its unique 'signature' pattern as (at least) 1st argument is called an 'ADT-Method'. They are NOT methods in the general object-oriented sense! |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:Method, Webel:ADT |
CONVENTION, NAMING |
Mathematica: Webel ADT pseudo classes: There is an 'ADT' universal base that has no supers. It "blesses" every other sub-class ADT by populating it with some common ADT-Method UpValues against a signature pattern via the 'adt$def$All[]' definer function. |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:All, Webel:ADT, Mathematica::UpValue |
POLICY |
Mathematica: Webel ADT pseudo classes: DEFINITION/CONVENTION: Functions that populate ADTs with reusable ADT-method UpValues are called 'definers' and include '$def' in the name after a Package scope indicator: Example: adt$def$ADT, my$def$MY$CleverList |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT, Webel:ADT:Definer |
CONVENTION, NAMING, POLICY |
Mathematica: Webel ADT pseudo classes: POLICY: Every named concrete Abstract Data Type (ADT) has a ONE unique "signature" (which is the pattern passed to the "definer" functions). To vary a signature, define another unique ADT name. |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional |
CONVENTION, POLICY |
Mathematica: Webel ADT pseudo classes: POLICY: The Abstract Data Types (ADTs) are stateless functional (although inheritance and overrides are supported), with no caching by default (although there is nice optional caching using CreateUUID[] and Once[]). |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional |
CONVENTION, POLICY |
Mathematica: Webel ADT: The term 'Abstract Data Types (ADT)' is used informally (the Webel ADTs do not always adhere to strict definitions of ADTs). Please just think of it here as meaning a strong type or stateless "pseudo class". |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming |
EXPLANATION |
Mathematica: Webel ADT pseudo classes: POLICY: The expression '$$' is reserved as the primary named parameter for the defining pattern of all ADT classes that extend the universal base 'ADT' class. |
Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT |
POLICY |
Mathematica: Webel: You get compelling incremental value out of Mathematica even if you don't yet command all of the syntax and massive powers of the Wolfram Language! |
Wolfram Language, Wolfram, functional, functional programming, object-oriented, ADTs, Abstract Data Types, Mathematica, symbolic algebra |
ASSERTION, TIP |
Webel on Mathematica and the Wolfram Language vs Python. Python is not even close, not even vaguely close, it's not in the same league, as the Wolfram Language and Mathematica! |
python, Mathematica, Wolfram, Wolfram Language |
ASSERTION |
TIP: Mathematica: Webel's ultimate guide to using Abstract Data Types to create "pseudo classes" (strong types) with inheritance for the Wolfram Language, all modelled in SysML! |
Mathematica, Abstract Data Types, ADTs, strong types, Wolfram, Wolfram Language, Systems Modeling Language, SysML, SysMLv1.x, SysMLv1.7, SysMLv1.6, inheritance |
TIP |
TIP: Mathematica: The IntelliJ IDEA Plugin for Mathematica is HEAPS better than the Eclipse-based Wolfram Workbench (at least for the Wolfram Language as used by Webel projects)! |
Mathematica, Wolfram, Mathematica:IntelliJ-IDEA-Plugin, IntelliJ IDEA |
TIP, TOOL |
Mathematica: TIP: Notebooks: Automatic Cell Grouping driving you up the wall? Try Manual Grouping and make it part of your workflow! |
Mathematica, Wolfram, Mathematica:notebook |
FEATURE, GOTCHA, ISSUE, TIP, TOOL |
Mathematica: The output form of Mathematica follows internal rules that may not always correspond exactly to how a human might typeset it. |
Wolfram Language, Mathematica, Wolfram, equation |
GOTCHA, WARNING |
Cameo Simulation Toolkit: You can use Mathematica as an external maths engine to share maths between an OpaqueBehavior and a ConstraintBlock using custom auto-loaded Mathematica functions (keeps a project nice and DRY and respects Single Source of Truth) |
Wolfram, JLink, Mathematica, MagicDraw SysML, SysML, MD SysML, SysML Parametrics, mathematics, CATIA Magic, Magic Model Analyst [Cameo Simulation Toolkit], DRY, WET, Single Source of Truth, SysMLv1.x |
CAPABILITY, FEATURE, MODELLING, TIP, TOOL |
SysMLv1.x: Limitation: The 'body' (maths formula) of an OpaqueBehavior can't be synchronised (shared) with the 'constraint' of a ConstraintBlock (directly in the SysML model). Can lead to a WET (not DRY) model and breaks Single Source of Truth! |
DRY, WET, Single Source of Truth, Systems Modeling Language, SysMLv1.x, Model-Based Systems Engineering, Wolfram, Mathematica |
CAVEAT, COMPLICATION, LIMITATION |
GOTCHA: Mathematica v13.2+: Operations on "DegreesFahrenheit" °F and "DegreesCelsius" °C are now performed using Kelvins (K). CASE: Naive percentage operation gives answer relative to Kelvins. Use "DegreesCelsiusDifference"/"DegreesFahrenheitDifference"! |
Wolfram, Wolfram Language, Mathematica, temperature, celsius, Fahrenheit, kelvin, Kelvins, units, unit conversion |
CAVEAT, GOTCHA, TIP, WARNING |
Mathematica: Notebooks: Automatic Cell Grouping mode can be a "royal pain", turn it off by setting Cell > Grouping > Manual Grouping |
Wolfram, Mathematica, Mathematica::Cell, Mathematica:notebook |
ISSUE, TIP, WORKAROUND |
GOTCHA: Mathematica: Specific enthalpy conversion J/kg to Btu/lb: Does not consider a possible "total" enthalpy reference offset vs 0 °C or 0 °F respectively |
enthalpy, specific enthalpy, unit conversion, SI unit, Imperial unit, Btu, British Thermal Unit, Mathematica, Wolfram, HVAC&R, water condensation, humid air, air, air conditioner, Psychrometrics, US customary measurement system |
COMPLICATION, GOTCHA, TIP |
Mathematica: HOWTO: Add every element of one list to the end of another list |
Mathematica, Mathematica::Join, Mathematica::List, Wolfram, Mathematica::MapThread |
CAPABILITY, TIP |
Mathematica: Wolfram Player Pro 13.1: NotebookDelete[] does not work |
Wolfram, Mathematica, Wolfram Player Pro |
CAVEAT, ISSUE, LIMITATION, TOOL |
TIP: Mathematica: Use of For is often a hint that Map, Table, Scan, or something else more functional could be used. But don't stress over it! |
Wolfram, Wolfram Language, Mathematica, Mathematica::For, Mathematica::Map, Mathematica::Table, functional, functional programming, Wolfram Workbench, Eclipse IDE |
ANTI-PATTERN, TIP |
The integration between Wolfram Workbench and Mathematica is partly gammy (as of latest versions 2022-08-23) |
Mathematica, Mathematica:notebook, Wolfram, Wolfram Language |
ISSUE, MODELLING, TIP, TOOL, WARNING, WORKAROUND |
Mathematica: TIP: Wolfram Notebooks are the best testing environment I've ever used! |
Mathematica, Mathematica:notebook, Wolfram, Wolfram Language |
CAPABILITY, FEATURE, MODELLING, STYLE, TIP, TOOL |
Mathematica: ISSUE with all Entity operations on MMAv13.0.0.0 vs macOS Monterey 12.3 or 12.4 ["solved" by upgrade to MMA 13.1.0.0] |
Mathematica, Wolfram, macOS, Mac, macOS Monterey |
ISSUE |
CoolProp: Mathematica: Mac: HOWTO get CoolProp for Mathematica running on Apple M1 Max and Mathematica13 |
CoolProp, Darwin, Mathematica, Wolfram, Mac, M1 Max, M1 Silicon, CMake, C++, dylib |
ISSUE, LIMITATION, WARNING |
Mathematica: TIP: Protecting against computations breaking verbosely because of Null, None, Undefined. And about using Undefined as a return policy. |
Wolfram, Wolfram Language, Mathematica, Mathematica::Null, Mathematica::None, Mathematica::Undefined |
CONVENTION, PATTERN, POLICY, TIP |
Mathematica: The Webel Units` package has Quantity variables for frequently used units using a naming convention 'unit$[Symbol]' or 'unit[DescriptiveName]' or unit[Acronym], each with a corresponding '$unit...' for the units identifier String(s). |
Wolfram, Mathematica, SI unit, quantity, units, Webel Best Practice, Mathematica::Quantity |
CONVENTION, NAMING, PATTERN, STYLE, TIP |
Mathematica: Use of UnitConvert (or even just multiplication or division by a unit Quantity) MASSIVELY slows the calculations down! |
Wolfram, Mathematica, Mathematica:Compile, compilation, performance, SI unit, quantity, units |
ISSUE, LIMITATION |
Mathematica: Compile won't work with a Quantity with units |
Wolfram, Mathematica, Mathematica:Compile, compilation, performance, quantity, SI unit, units |
ISSUE, LIMITATION |
CoolProp: HOWTO reproduce a pressure vs specific enthalpy chart in Mathematica. Example: R32 refrigerant. |
CoolProp, equation-of-state, EoS, thermodynamics, chemistry, chemical properties, enthalpy, specific enthalpy, Wolfram, Mathematica, R32, refrigerant |
CAVEAT, GOTCHA, ISSUE, LIMITATION, WARNING |
Mathematica: TIP: The ThermodynamicData function of Mathematica uses NIST's RefProp under the hood. |
Wolfram, Mathematica, thermodynamics, HVAC&R, RefProp |
TIP |
Mathematica: CoolProp wrapper binaries don't seem to be maintained past CoolProp 5.1.1 (and the PhaseSI and 2-args Props1SI functions do not work) |
Mathematica, Wolfram |
ISSUE, LIMITATION |
Mathematica: MTools: Argument Pattern strong type matching does not intrinsically respect inheritance (makes implementing design-by-contract and some Design Patterns less convenient). But you can use PatternTests with Webel MAll extensions. |
Wolfram, Mathematica, Mathematica:MTools, inheritance, object-oriented |
ANTI-PATTERN, GOTCHA, ISSUE, LIMITATION, WARNING |
Webel + Mathematica + MTools + SysML |
Wolfram, Mathematica, Mathematica:MTools, Wolfram Language, Systems Modeling Language, MD SysML, CATIA Magic:v2021xR1, MagicDraw SysML, MagicDraw, Cameo Systems Modeler, Webel:MathematicaSysML |
PATTERN, TIP, TOOL |
Mathematica: LINKS: Manipulating Strings and using RegularExpression |
Wolfram, Mathematica, String, regex, regular expression |
TIP |
Mathematica: GOTCHA: Null is tricky! |
Wolfram, Wolfram Language, Mathematica |
GOTCHA, TIP |
Mathematica: Wolfram Workbench: Basic variable name refactoring is not supported. (Or just use the IntelliJ IDEA Plugin for Mathematica, which does variable and function renaming well.) |
Webel:WISHLIST, Mathematica, Wolfram Workbench, Wolfram |
FEATURE, ISSUE, LIMITATION, WISHLIST |
Mathematica: Objectica 3rd-party commercial package for OO in Mathematica. Earth calling Objectica, do you still exist? |
Mathematica, Wolfram, object-oriented |
QUESTION |
Mathematica: Wolfram Workbench: Sometimes the Outline view gets completely out of sync with the .m or .wl Package code |
Mathematica, Wolfram Workbench, Wolfram Language, Wolfram, Eclipse IDE |
ISSUE, TOOL |
Mathematica: Wolfram Workbench: Sometimes the code syntax checking goes haywire (with red nearly everywhere) for no good reason (even when the code load and runs fine in Mathematica). WORKAROUND: Just restart Eclipse. |
Mathematica, Wolfram Workbench, Wolfram Language, Wolfram, Eclipse IDE |
ISSUE, TOOL, WORKAROUND |
Webel vs Mathematica: The Very Good, The Bad, and The Ugly |
Mathematica, Wolfram, Wolfram Language, Mathematica:Dataset |
FEATURE, TIP, TOOL |
Mathematica: TIP: Try //Dataset on just about anything and be amazed! Click on nearly anything to navigate through nearly anything in impressively interactive human-readable format. |
Mathematica, Wolfram, Wolfram Language, Mathematica:Dataset |
FEATURE, TIP, TOOL |
Mathematica: How mimic pattern matching of arguments for pseudo "Boolean" (including providing a default)? |
Wolfram, Mathematica, Wolfram Language |
GOTCHA, LIMITATION, TIP |
Mathematica: The awesome Quantity system for values with units is everything the SysMLv1.x Quantity/Unit system should have been (and hopefully SysMLv2 will be). But it comes at a high performance cost! |
Mathematica, Mathematica::Quantity, Wolfram, Wolfram Language, quantity, scientific unit system, SI unit, deep value |
ASSERTION, TIP |
Mathematica: TIPS for living with the user-contributed MTools for Object-Orientation (until a vendor-supported OO solution is eventually provided) |
Mathematica, Mathematica:MTools, object-oriented, Wolfram, Wolfram Workbench |
TIP |
Wolfram Workbench for Mathematica: Limitation: Using more than one '$' sign within function names blocks navigation on function usages. |
Mathematica, Wolfram Workbench, Wolfram, Eclipse IDE |
GOTCHA, ISSUE, LIMITATION, TOOL |
Mathematica: GOTCHA: EntityFunction can only return a scalar. |
Wolfram, Mathematica, object-oriented, OOP |
GOTCHA, ISSUE, LIMITATION, MODELLING, WARNING, WISHLIST |
Mathematica: Some links on Object-Orientation (or the lack thereof) |
Wolfram, Mathematica, object-oriented, OOP |
ISSUE, LIMITATION, MODELLING, TOOL |
Mathematica: The Entity system: useful links |
Mathematica, Wolfram, Mathematica:Entity |
TIP |
Mathematica: TIP: How to change a value within an Association inline within a Module (like pass by reference) |
Mathematica, Wolfram Language, Wolfram |
TIP |
Mathematica: GOTCHA: Package usages (Needs) are not transitive |
Wolfram, Wolfram Language, Mathematica |
GOTCHA, TIP, WARNING |
Mathematica: HOWTO Find the value of a symbol in all contexts |
Wolfram, Wolfram Language, Mathematica |
TIP |
Mathematica: TIP: LINKS: Filename chooser dialogs |
Wolfram, Mathematica, GUI, Mathematica::Manipulate |
CAPABILITY, FEATURE, TOOL |
GOTCHA/BUG: Cameo Simulation Toolkit v2021xR1 + Mathematica: Delegation to Mathematica from ConstraintBlocks FAILS if any of the input or output parameters are larger than 99999 because they get interpreted as 1.0e5 and that trips something! Aarrrggggh! |
SysML, MD SysML, Mathematica, Wolfram, Cameo Systems Modeler, SysML Parametrics, calculation, CATIA Magic:v2021xR1 |
GOTCHA, ISSUE, TOOL |
LINKS: Wolfram Workbench for Mathematica (or just use the far superior IntelliJ IDEA Plugin) |
Wolfram, Wolfram Workbench, Wolfram Language, Mathematica, coding, code formatting, documentation |
TOOL |
HOWTO access custom (user-defined) Mathematica functions using Mathematica v13.2 as an external maths engine for SysML Parametrics (ConstraintBlocks) in Magic Model Analyst (Cameo Simulation Toolkit) versions 2021x, 2021xR1, 2022xR1 |
Wolfram, JLink, Mathematica, MagicDraw SysML, SysML, MD SysML, SysML Parametrics, mathematics, CATIA Magic, Magic Model Analyst [Cameo Simulation Toolkit], CATIA Magic:v2021x, CATIA Magic:v2021xR1, JDK, Java Development Kit, Java, CATIA Magic:v2022xGolden, CATIA Magic:v2022xRefresh1 |
QUESTION, TIP, TOOL |
Mathematica: HOWTO Autoload the simplest possible .m or .wl Package file with a few custom functions |
Wolfram, Mathematica |
NAMING, PATTERN, TIP |
Mathematica + Magic Model Analyst (Cameo Simulation Toolkit) for SysML Parametrics: GOTCHA: You must use a regular '=' on the SysML side, not the Mathematica '==' (or it will be intepreted as a constraint condition to test, not an equation to solve). |
Wolfram, JLink, Mathematica, MagicDraw SysML, SysML, MD SysML, SysML Parametrics, mathematics, CATIA Magic, Magic Model Analyst [Cameo Simulation Toolkit], CATIA Magic:v2021x, CATIA Magic:v2021xR1, JDK, Java Development Kit, Java |
GOTCHA, TOOL, WARNING |
HOWTO use Mathematica v12.3.2 as an external maths engine for SysML Parametrics (ConstraintBlocks) in Magic Model Analyst (Cameo Simulation Toolkit) versions 2021x, 2021xR1, 2022xR1 |
Wolfram, JLink, Mathematica, MagicDraw SysML, SysML, MD SysML, SysML Parametrics, mathematics, CATIA Magic, Magic Model Analyst [Cameo Simulation Toolkit], CATIA Magic:v2021x, CATIA Magic:v2021xR1, JDK, Java Development Kit, Java |
TIP, TOOL |
Mathematica: TIP: Package Editor mode: Use cell division between every function in .wl library files to make them more readable (and to make it easier to apply at least some degree automated code formatting per function). |
Wolfram, Mathematica |
CAPABILITY, FEATURE, TIP, TOOL |
Webel: Mathematica is functional programming on steroids (and has nearly everything else, except for decent in-built OO support, although you can make some progress with Abstract Data Types and even some inheritance). |
Mathematica, Wolfram, functional programming, functional |
ASSERTION, TIP |
Webel: Mathematica: WISHLIST: Support for EXTRACTABLE structured documentation for individual arguments of functions RIGHT IN/NEAR THE CODE. Yes it is needed, really it is. (And ::usage support for "methods" would be nice too.) |
Wolfram, Mathematica, Webel:WISHLIST |
LIMITATION, TOOL, WISHLIST |
Webel: Mathematica: WISHLIST: Support for decent vendor-supported, built-in, fully fledged, IDE-friendly, object-orientation (OO)! [With or without the use of state, which is a choice, not obligatory, and OO doesn't throw functional away] |
Wolfram, Mathematica, Webel:WISHLIST, inheritance, object-oriented, OOP, OO |
TOOL, WISHLIST |
Mathematica: Webel: You CAN/MAY use $ in variable names and function names - just not as the first character before a Capital - and it's extremely useful. You won't get sent to Azkaban prison if do you use a $ character! |
Wolfram, Mathematica, Mathematica:Entity, Wolfram Language, notation |
NAMING, OPTION, PATTERN, TIP |
Mathematica: Having trouble clearing a variable with complex formatting? Try =. |
Wolfram, Mathematica |
TIP |
Mathematica: HOWTO Manage test data for functions using rules across multiple functions (and about the Webel '$0' variable suffix convention for substitution targets). |
Wolfram, Mathematica |
TIP |
Mathematica: HOWTO: Strip an option from an OptionsPattern[] sequence before passing down (propagating) to a function with fewer options |
Wolfram, Mathematica |
TIP |
Mathematica: Nasser M. Abbasi's cheat sheet |
Wolfram, Mathematica |
TIP, TOOL |
Mathematica: HOWTO Convert a list into a Sequence of arguments to a function (where each of the arguments to the function corresponds to a list item) |
Wolfram, Mathematica |
|
Mathematica: HOWTO Create collapsible control groups in Manipulate GUIs |
Wolfram, Mathematica, Mathematica::Manipulate |
DISPLAY, FEATURE, TIP, TOOL |
Mathematica: TIP: OverDot: Type CTRL & and then . to enter an OverDot directly |
Mathematica, Wolfram, notation |
FEATURE, TIP, TOOL |
Mathematica: TIP: OverBar: Type CTRL & and then _ to enter an OverBar directly |
Mathematica, Wolfram, notation |
FEATURE, TIP, TOOL |
Mathematica: v12.3.1.0: How to obtain values of physical constants |
Mathematica, physical quantity, quantity, magnitude, units, Wolfram |
TIP |
Mathematica: GOTCHA: MMA distinguishes between Kelvins and KelvinsDifference |
Mathematica, quantity, units, physical quantity, temperature, Kelvins, celsius, Wolfram |
GOTCHA, WARNING |
Wolfram SystemModeler: Not clear how to draw a connect that already exists in the Modelica code |
Modelica, Wolfram SystemModeler, Wolfram |
ISSUE, TOOL |
Wolfram SystemModeler: On Mac the Unit Conversions dialog is under SystemModeler -> Preferences -> Global -> Unit Conversion (rather than under Tools -> Options) |
Modelica, Wolfram SystemModeler, units, unit conversion, macOS, Wolfram |
GOTCHA, TIP, WARNING |
Wolfram SystemModeler: GOTCHA: The conversion dialog will not offer the Add Unit Conversion button unless there is not already an existing conversion in BOTH directions. |
Modelica, Wolfram SystemModeler, units, unit conversion, Wolfram |
GOTCHA, TIP, WARNING |