Skip to content

Releases: DoctorDalek1963/lintrans

v0.4.1

17 Jan 15:50
v0.4.1
2d49c7d
Compare
Choose a tag to compare

This patch fixes a nasty bug where anonymous matrices would break the parser and it wouldn't continue reading, so [1 2; -3 -1]^2M[-2.5 3; 19 0.6] would be read the same way as just [1 2; -3 -1], for example. That bug has now been fixed.

This patch also now resets transitional animation sequences when the start and target matrices are the same.


I highly recommend reading the tutorial, available here.


The recommended way to use lintrans is to install it with the relevant installer for your platform. This will allow lintrans to update itself whenever a new version is available. This is configurable.

The Windows installer is completely safe, but you might get a warning that it might not be. This is expected and it's safe to ignore the warning. The only way to get rid of it would be to pay Microsoft. On macOS, I would need to pay Apple to allow other people to run any of my code at all.

If this warning bothers you or if you want to use lintrans on macOS, then you can compile the program from its source code. This is a relatively simple process and the tutorial for doing that is available here.


If you don't want to install lintrans, then you can download and run the standalone executable for your platform (the Windows one has another warning which is safe to ignore), or you can compile it from source. See the tutorial above.

The Linux binary is a dynamically linked ELF compiled on Ubuntu 20.04 and may or may not work on other distros. Compiling is also an option for Linux. See the tutorial above.


Fixed

  • The parser used to get confused by anonymous matrices, so something like [1 2; -3 -1]^2
    wouldn't actually include the squaring. This is now fixed.
  • When animating a sequence with transitional animation, we now reset if the start and target
    matrices are the same

v0.4.0

17 Nov 11:34
v0.4.0
362bab1
Compare
Choose a tag to compare

lintrans is finally ready for public release, and it is now suitable for classroom use. There may be issues, and these should be reported using the bug report feature from within the app.


I highly recommend reading the tutorial, available here.


The recommended way to use lintrans is to install it with the relevant installer for your platform. This will allow lintrans to update itself whenever a new version is available. This is configurable.

The Windows installer is completely safe, but you might get a warning that it might not be. This is expected and it's safe to ignore the warning. The only way to get rid of it would be to pay Microsoft. On macOS, I would need to pay Apple to allow other people to run any of my code at all.

If this warning bothers you or if you want to use lintrans on macOS, then you can compile the program from its source code. This is a relatively simple process and the tutorial for doing that is available here.


If you don't want to install lintrans, then you can download and run the standalone executable for your platform (the Windows one has another warning which is safe to ignore), or you can compile it from source. See the tutorial above.

The Linux binary is a dynamically linked ELF compiled on Ubuntu 20.04 and may or may not work on other distros. Compiling is also an option for Linux. See the tutorial above.


Added

  • Input and output vectors can now be shown or hidden independently
  • Installers for Windows and Linux
  • The option to let lintrans update itself in the background
  • The display settings and input vector position are now saved as part of the session file
  • Matrices can now be undefined from the Show defined matrices dialog
  • You can now go back through previously used expressions using the up and down arrow keys
  • You can now use anonymous matrices (using numerical entries directly without needing to define a
    named matrix). See the tutorial for details
  • The input and output vectors now appear in the visual definition dialog, and are translucent
  • You are now always prompted to save the session upon exiting, even if you hadn't already saved
  • You can now edit the size of draggable points and the snapping distance for integer coordinates
  • Display settings now persist between sessions, but can still be reset to defaults
  • Allow snapping to be toggled on and off

Fixed

  • Reset the polygon when the session is reset
  • Definition dialogs now choose the first undefined matrix by default
  • When loading a session file, lintrans will now use defaults for any missing parts

v0.3.0

23 Aug 21:03
v0.3.0
78bc2fc
Compare
Choose a tag to compare

This is the first version of lintrans that I would consider feature complete according to my initial plan. It is a public beta and things will almost certainly change before v1.0.0.

This version shouldn't really be used in classrooms yet, and is only meant as a review version, available for teachers and students to test and provide feedback on. Version 1.0.0 should hopefully be available by September or October 2022, and that will be recommended for use in classrooms, and by students who are new to the subject.


I highly recommend reading the tutorial, available here.


The Windows .exe file should work fine, but you might get a warning that the program might be unsafe. This is expected and it's safe to ignore it. The only way to get rid of it would be to pay Microsoft. On macOS, I would need to pay Apple to allow other people to run it at all.

If this warning bothers you or if you want to use lintrans on macOS, then you can compile the program from its source code. This is a relatively simple process and the tutorial for doing that is available here.

The Linux binary is a dynamically linked ELF compiled on Ubuntu 20.04 and may or may not work on other distros. Compiling is also an option for Linux. See the tutorial above.


Added

  • Qt5 and PyQt5 version numbers to the About dialog box
  • Basis vectors now snap to integer coordinates in the visual definition dialog
  • Allow for transitional animation in sequential animation (comma syntax)
  • Info panel to display defined matrices
  • Icon for window and taskbar
  • Implement saving and loading session files
  • Add comprehensive crash reports
  • Add parentheses to the numerical definition dialog
  • Make display settings resettable
  • Save sessions and crash reports to a specific place in the user's home directory
  • Add Quit action in File menu
  • Add option to label i and j basis vectors
  • Add user-friendly bug report and feature suggestion forms that don't require a GitHub account
    (Help > Give feedback)
  • The user can now define an arbitrary polygon and see its transformation
  • Saved sessions should now work between lintrans versions
  • Add usage tutorial
  • Add compilation tutorial
  • The user can now drag an input vector in the main viewport and see its transformed output

Fixed

  • Make program compatible with Python 3.8 and above
  • Make link to documentation in help menu actually link properly
  • Fix bug with stretches being detected as rotations
  • Cancel animation before closing to prevent the app hanging in the background
  • Make matrices with a column of 0s only render 1 rank line
  • Reduce memory usage by automatically deleting closed dialogs
  • Fix bug with matrices that are too small creating lag with too many lines
  • Fix bug that caused crashes when animating very large matrices
  • Fix bug where validate_matrix_expression would return True, but the expression was unable to be
    parsed, causing a crash
  • Fix crash when animation time was 0
  • Fix bug where animations would reset to I if the user reset before animating
  • Fix bug that would cause a crash if a matrix indirectly referenced itself

v0.2.2

04 Jul 20:31
Compare
Choose a tag to compare
v0.2.2 Pre-release
Pre-release

This release improves the display settings by adding more options, and respecting display settings in the visual definition dialog. This means that you can see the determinant and eigenlines etc. when defining a matrix visually. This release also adds the ability to parenthesize sub-expressions, allowing you to do things like 2(A+3BC)^-1. This release also fixes a major issue with rotational transformations, meaning that they now rotate at a constant speed.


The Linux binary should work fine, but if you use the Windows .exe file, you will get a warning that the program may be unsafe. This is expected and you can just ignore it. There's no binary for macOS due to Apple code signing issues.

If you're running macOS, then you will need to compile the program from source. This is also an option on Linux and Windows. Instructions can be found here.


Known bugs

  • Matrices that stretch in a single direction will be detected as rotation matrices and thus won't animate correctly

Added

  • Add options to hide background grid, transformed grid, and basis vectors
  • Fully respect display settings in visual definition widget
  • Support parenthesized sub-expressions as matrix identifiers
  • Add proper rotation animation that rotates at constant speed
  • Allow animation time to be varied

Fixed

  • Improve command line argument handling
  • Fixed bug with premature rot evaluation in sub-expressions

v0.2.1

22 Mar 14:25
Compare
Choose a tag to compare
v0.2.1 Pre-release
Pre-release

Make small improvements in code, such as slightly improving performance with slot decorators and adding minimum gird spacing. The main thing in this update is the compile script, which allows users to compile a standalone executable on their own machines.


The Linux binary should work fine, but if you use the Windows .exe file, you will get a warning that the program may be unsafe. This is expected and you can just ignore it. There's no binary for macOS due to Apple code signing issues.

If you're running macOS, then you will need to compile the program from source. This is also an option on Linux and Windows. Instructions can be found here.


Added

  • Explicit @pyqtSlot decorators
  • Link to Qt5 docs in project docs with intersphinx
  • Copyright comment in tests and setup.py
  • Create version file for Windows compilation
  • Create full compile.py script
  • Add Info.plist file for macOS compilation
  • Support --help and --version flags in __main__.py
  • Create about dialog in help menu
  • Implement minimum grid spacing

Fixed

  • Fix problems with compile script
  • Fix small bugs and docstrings

v0.2.0

11 Mar 23:41
Compare
Choose a tag to compare
v0.2.0 Pre-release
Pre-release

This is the first release of lintrans. It contains executable binary files that you can download and run yourself, so you don't need the source code. Make sure to download the right one for your operating system, and note that on Linux and macOS, you will need to make the file executable by running chmod +x <filename>.

This changelog is since the last tag, since this is the first release and I don't want to list every feature commit here.

Changelog

  • Improve colours to provide better accessibility for colour blind users
  • Make package executable as python -m lintrans when installed locally with pip