Galois LFSR and Mersenne Twister
From time to time, I need to fill images with random values — and do it quickly. There are two simple yet elegant algorithms to achieve this.
From time to time, I need to fill images with random values — and do it quickly. There are two simple yet elegant algorithms to achieve this.
Annoying issue in LabVIEW NXG/Vision with Rotated ROI: When an ROI is rotated and the image is subsequently zoomed in/out by the user, the anchors remain unrotated. They only update after moving or resizing the ROI. Here’s how to fix it
Second post about LabVIEW and Rust. This time we will pass native LabVIEW array into DLL written in Rust and resize inside.
Finally wrote command line script to build open62541 library automatically (more or less).
For some reason, I need a fast method for string search. The LabVIEW Search/Split String function is relatively slow, I’ve done this using String Zilla, and achieved around a 20x boost with AVX2/AVX512.
I just encountered slow string performance in LabVIEW when a large string is passed to a DLL as a C string pointer. It is always better to pass it as ‘Adapt to Type’ instead of a pointer.
LabVIEW 2025 Q1 and Vision 2025 was release in January. I downloaded and installed both, but some problems are occurred.
By default its limited, but can be manually increased in LabVIEW.ini
ParallelLoop.MaxNumLoopInstances=256
In some cases we need to measure a very short intervals (hundreds of the CPU Tacts) directly in Assembler. We can perform measurement by using cpuid/rdtsc combination.
Collection of useful small Snippets
A very simple and basic TCP communication example for Python and LabVIEW
Many beginner users may be frustrated with .net and how it used in LabVIEW as well as why .NET Core and .NET Framework exists and what the differences. Since last LabVIEW 2024 supported both Core and Standard below is “demystification” with practical examples and some notes.
Interesting question was raised on NI Forum. “I have created an app that works without issue… As a DLL called by Python, 1 of the functions work… the other just freezes.”. The reason is — the Execution System was set “same as caller” (which is default), but Python is not LabVIEW.
In this “weekend” experiment I’ll write large file (16 GB in my case), then read it back with different buffer size and threads and check the performance.
Nowadays development on pure Assembler is not very popular, because modern compilers can generate “good” code. On the other hand this is a very good exercise, which helps to understand a calling conventions and how it work in very low details.