<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://labviewwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=McQuillan</id>
	<title>LabVIEW Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://labviewwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=McQuillan"/>
	<link rel="alternate" type="text/html" href="https://labviewwiki.org/wiki/Special:Contributions/McQuillan"/>
	<updated>2026-05-08T19:16:25Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=VI_Package_Manager&amp;diff=35825</id>
		<title>VI Package Manager</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=VI_Package_Manager&amp;diff=35825"/>
		<updated>2025-11-21T08:54:58Z</updated>

		<summary type="html">&lt;p&gt;McQuillan: Added HSE DokuWiki page from the fabulous Joerg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;VI Package Manager&#039;&#039;&#039; (VIPM) is a package management system for LabVIEW created by [[JKI]] in 2005. Since LabVIEW 2012, VIPM has been bundled with LabVIEW installations as the standard package manager for the LabVIEW ecosystem. In 2022, [[NI]] and JKI announced an expanded partnership that made many previously Pro-only features freely available to all LabVIEW users through the new VIPM LabVIEW Edition.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
VIPM enables developers to install, build, and share reusable LabVIEW code libraries and tools. It functions similarly to package managers in other programming languages (npm, pip, etc.), providing dependency management and consistent development environments across teams.&lt;br /&gt;
&lt;br /&gt;
The 2022 NI-JKI partnership significantly expanded VIPM&#039;s free features, making professional package management capabilities available to all LabVIEW users. This includes package building, automation APIs, and project dependency management features that were previously only available in the paid Pro edition.&lt;br /&gt;
&lt;br /&gt;
The system uses &amp;lt;code&amp;gt;.vip&amp;lt;/code&amp;gt; files (VI Packages) for distribution and &amp;lt;code&amp;gt;.vipc&amp;lt;/code&amp;gt; files (VI Package Configurations) for project dependency management.&lt;br /&gt;
&lt;br /&gt;
== Key Features ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Package Installation&#039;&#039;&#039; - Browse and install packages from public repositories including [[OpenG]] libraries and the [[LabVIEW Tools Network]]&lt;br /&gt;
* &#039;&#039;&#039;Package Building&#039;&#039;&#039; - Create distributable packages with custom palettes, pre/post actions, and dependency management&lt;br /&gt;
* &#039;&#039;&#039;VI Package Configurations&#039;&#039;&#039; - Create and apply .vipc files for consistent development environments&lt;br /&gt;
* &#039;&#039;&#039;Automation&#039;&#039;&#039; - Full API and CLI support for CI/CD integration&lt;br /&gt;
* &#039;&#039;&#039;Team Collaboration&#039;&#039;&#039; - Share packages via repositories (Pro feature)&lt;br /&gt;
&lt;br /&gt;
== Editions ==&lt;br /&gt;
&lt;br /&gt;
=== LabVIEW Edition (Free) ===&lt;br /&gt;
Since 2022, through an expanded NI-JKI partnership, the LabVIEW Edition includes many features previously exclusive to VIPM Pro. This edition is bundled with LabVIEW and available to all LabVIEW users at no additional cost. Features include:&lt;br /&gt;
* Full package building with custom palettes and actions&lt;br /&gt;
* VI Package Configuration (.vipc) creation and application&lt;br /&gt;
* API and command-line interface (CLI) for automation&lt;br /&gt;
* Pre/post install, uninstall, and build custom actions&lt;br /&gt;
* External package dependency management&lt;br /&gt;
* Access to NI Tools Network and VIPM Community repositories&lt;br /&gt;
&lt;br /&gt;
=== Pro Edition (Paid) ===&lt;br /&gt;
The Pro Edition provides enterprise and advanced features:&lt;br /&gt;
* Storing package binaries inside .vipc files (offline distribution)&lt;br /&gt;
* NI Third Party Licensing &amp;amp; Activation Toolkit (TPLAT) integration&lt;br /&gt;
* Password protection of VIs at build-time&lt;br /&gt;
* Creating and managing private team repositories&lt;br /&gt;
* Enterprise volume licensing and support agreements&lt;br /&gt;
&lt;br /&gt;
=== VIPM Community ===&lt;br /&gt;
Advanced features typically reserved for Pro, but restricted to &#039;&#039;&#039;non-commercial use only&#039;&#039;&#039;. This edition provides powerful capabilities for open-source projects, education, and personal learning without commercial licensing restrictions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;For more details about what is included in each edition, view the comparison here: https://docs.vipm.io/vipm-editions-comparison/&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Repositories ==&lt;br /&gt;
&lt;br /&gt;
VIPM connects to multiple package sources:&lt;br /&gt;
* &#039;&#039;&#039;VIPM Community&#039;&#039;&#039; - Open-source packages hosted by JKI&lt;br /&gt;
* &#039;&#039;&#039;LabVIEW Tools Network&#039;&#039;&#039; - NI-certified add-ons&lt;br /&gt;
* &#039;&#039;&#039;Private Repositories&#039;&#039;&#039; - Organization-specific packages via network shares or web servers&lt;br /&gt;
&lt;br /&gt;
== Platform Support ==&lt;br /&gt;
&lt;br /&gt;
VIPM is available for Windows (full support), Linux, and macOS. JKI is actively developing containerized build support using Docker for cloud-based CI/CD workflows.&lt;br /&gt;
&lt;br /&gt;
=Installing VI Package Manager on macOS=&lt;br /&gt;
&lt;br /&gt;
The latest security policies prevent writing to the LabVIEW directory by default. To use VIPM to write files to user.lib, change the write permission using the terminal by running the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
find &amp;quot;/Applications/National Instruments/LabVIEW 2024 64-bit&amp;quot; -type d -print0 | sudo xargs -0 echo chmod o+w&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An alternative approach to using a terminal command is to use the folder Info dialog:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Navigate to the National Instruments folder:&#039;&#039;&#039; In Finder, go to Applications and locate the National Instruments folder. Right-click on it and select &amp;quot;Get Info&amp;quot; from the context menu.&lt;br /&gt;
# &#039;&#039;&#039;Unlock the permissions:&#039;&#039;&#039; At the bottom of the Info window, click the lock icon. You&#039;ll be prompted to enter your administrator password to make changes.&lt;br /&gt;
# &#039;&#039;&#039;Add your user account:&#039;&#039;&#039; In the &amp;quot;Sharing &amp;amp; Permissions&amp;quot; section, click the plus (+) button at the bottom left to add a new user. Select your user account from the list.&lt;br /&gt;
# &#039;&#039;&#039;Set read &amp;amp; write privileges:&#039;&#039;&#039; Once your user is added, click on the &amp;quot;Privilege&amp;quot; dropdown next to your username and change it from &amp;quot;Read only&amp;quot; to &amp;quot;Read &amp;amp; Write&amp;quot;.&lt;br /&gt;
# &#039;&#039;&#039;Apply permissions to all enclosed items:&#039;&#039;&#039; Click the gear/action menu (⋯) at the bottom of the permissions section and select &amp;quot;Apply to enclosed items...&amp;quot; This ensures all subfolders and files within the National Instruments folder inherit these permissions.&lt;br /&gt;
# &#039;&#039;&#039;Lock and close:&#039;&#039;&#039; Click the lock icon again to prevent further changes, then close the Info window. VIPM should now be able to install and uninstall LabVIEW packages without permission errors.&lt;br /&gt;
&lt;br /&gt;
[[File:MacOS National Instruments Folder Permissions Fix for VIPM.png|alt=Step-by-step guide showing how to fix permissions on the National Instruments folder in macOS to allow VIPM (VI Package Manager) to install and uninstall LabVIEW packages. The annotated screenshot demonstrates accessing the Get Info window, unlocking permissions, adding user access with read/write privileges, and applying changes to all enclosed items within the National Instruments application folder.|center|thumb|Step-by-step guide showing how to fix permissions on the National Instruments folder in macOS to allow VIPM (VI Package Manager) to install and uninstall LabVIEW packages. The annotated screenshot demonstrates accessing the Get Info window, unlocking permissions, adding user access with read/write privileges, and applying changes to all enclosed items within the National Instruments application folder.]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Third party LabVIEW tools]]&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
* [[OpenG]]&lt;br /&gt;
* [[JKI]]&lt;br /&gt;
* [[LabVIEW Tools Network]]&lt;br /&gt;
&lt;br /&gt;
= External Links =&lt;br /&gt;
* [https://www.vipm.io Official VIPM Website]&lt;br /&gt;
* [https://support.vipm.io VIPM Documentation]&lt;br /&gt;
* [https://forums.vipm.io VIPM Forums]&lt;br /&gt;
&lt;br /&gt;
= Third Party Links =&lt;br /&gt;
* [https://dokuwiki.hampel-soft.com/kb/labview/tools/vipm HSE DokuWiki]&lt;br /&gt;
&lt;br /&gt;
[[Category:Package Management]]&lt;br /&gt;
[[Category:Development Tools]]&lt;br /&gt;
[[Category:Third Party Tools]]&lt;/div&gt;</summary>
		<author><name>McQuillan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=VI_Package_Manager&amp;diff=35798</id>
		<title>VI Package Manager</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=VI_Package_Manager&amp;diff=35798"/>
		<updated>2025-11-06T10:05:28Z</updated>

		<summary type="html">&lt;p&gt;McQuillan: Added note about VIPM Community edition&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;VI Package Manager&#039;&#039;&#039; (VIPM) is a package management system for LabVIEW created by [[JKI]] in 2005. Since LabVIEW 2012, VIPM has been bundled with LabVIEW installations as the standard package manager for the LabVIEW ecosystem. In 2022, [[NI]] and JKI announced an expanded partnership that made many previously Pro-only features freely available to all LabVIEW users through the new VIPM LabVIEW Edition.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
VIPM enables developers to install, build, and share reusable LabVIEW code libraries and tools. It functions similarly to package managers in other programming languages (npm, pip, etc.), providing dependency management and consistent development environments across teams.&lt;br /&gt;
&lt;br /&gt;
The 2022 NI-JKI partnership significantly expanded VIPM&#039;s free features, making professional package management capabilities available to all LabVIEW users. This includes package building, automation APIs, and project dependency management features that were previously only available in the paid Pro edition.&lt;br /&gt;
&lt;br /&gt;
The system uses &amp;lt;code&amp;gt;.vip&amp;lt;/code&amp;gt; files (VI Packages) for distribution and &amp;lt;code&amp;gt;.vipc&amp;lt;/code&amp;gt; files (VI Package Configurations) for project dependency management.&lt;br /&gt;
&lt;br /&gt;
== Key Features ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Package Installation&#039;&#039;&#039; - Browse and install packages from public repositories including [[OpenG]] libraries and the [[LabVIEW Tools Network]]&lt;br /&gt;
* &#039;&#039;&#039;Package Building&#039;&#039;&#039; - Create distributable packages with custom palettes, pre/post actions, and dependency management&lt;br /&gt;
* &#039;&#039;&#039;VI Package Configurations&#039;&#039;&#039; - Create and apply .vipc files for consistent development environments&lt;br /&gt;
* &#039;&#039;&#039;Automation&#039;&#039;&#039; - Full API and CLI support for CI/CD integration&lt;br /&gt;
* &#039;&#039;&#039;Team Collaboration&#039;&#039;&#039; - Share packages via repositories (Pro feature)&lt;br /&gt;
&lt;br /&gt;
== Editions ==&lt;br /&gt;
&lt;br /&gt;
=== LabVIEW Edition (Free) ===&lt;br /&gt;
Since 2022, through an expanded NI-JKI partnership, the LabVIEW Edition includes many features previously exclusive to VIPM Pro. This edition is bundled with LabVIEW and available to all LabVIEW users at no additional cost. Features include:&lt;br /&gt;
* Full package building with custom palettes and actions&lt;br /&gt;
* VI Package Configuration (.vipc) creation and application&lt;br /&gt;
* API and command-line interface (CLI) for automation&lt;br /&gt;
* Pre/post install, uninstall, and build custom actions&lt;br /&gt;
* External package dependency management&lt;br /&gt;
* Access to NI Tools Network and VIPM Community repositories&lt;br /&gt;
&lt;br /&gt;
=== Pro Edition (Paid) ===&lt;br /&gt;
The Pro Edition provides enterprise and advanced features:&lt;br /&gt;
* Storing package binaries inside .vipc files (offline distribution)&lt;br /&gt;
* NI Third Party Licensing &amp;amp; Activation Toolkit (TPLAT) integration&lt;br /&gt;
* Password protection of VIs at build-time&lt;br /&gt;
* Creating and managing private team repositories&lt;br /&gt;
* Enterprise volume licensing and support agreements&lt;br /&gt;
&lt;br /&gt;
=== VIPM Community ===&lt;br /&gt;
Advanced features typically reserved for Pro, but restricted to &#039;&#039;&#039;non-commercial use only&#039;&#039;&#039;. This edition provides powerful capabilities for open-source projects, education, and personal learning without commercial licensing restrictions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;For more details about what is included in each edition, view the comparison here: https://docs.vipm.io/vipm-editions-comparison/&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Repositories ==&lt;br /&gt;
&lt;br /&gt;
VIPM connects to multiple package sources:&lt;br /&gt;
* &#039;&#039;&#039;VIPM Community&#039;&#039;&#039; - Open-source packages hosted by JKI&lt;br /&gt;
* &#039;&#039;&#039;LabVIEW Tools Network&#039;&#039;&#039; - NI-certified add-ons&lt;br /&gt;
* &#039;&#039;&#039;Private Repositories&#039;&#039;&#039; - Organization-specific packages via network shares or web servers&lt;br /&gt;
&lt;br /&gt;
== Platform Support ==&lt;br /&gt;
&lt;br /&gt;
VIPM is available for Windows (full support), Linux, and macOS. JKI is actively developing containerized build support using Docker for cloud-based CI/CD workflows.&lt;br /&gt;
&lt;br /&gt;
=Installing VI Package Manager on macOS=&lt;br /&gt;
&lt;br /&gt;
The latest security policies prevent writing to the LabVIEW directory by default. To use VIPM to write files to user.lib, change the write permission using the terminal by running the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
find &amp;quot;/Applications/National Instruments/LabVIEW 2024 64-bit&amp;quot; -type d -print0 | sudo xargs -0 echo chmod o+w&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An alternative approach to using a terminal command is to use the folder Info dialog:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Navigate to the National Instruments folder:&#039;&#039;&#039; In Finder, go to Applications and locate the National Instruments folder. Right-click on it and select &amp;quot;Get Info&amp;quot; from the context menu.&lt;br /&gt;
# &#039;&#039;&#039;Unlock the permissions:&#039;&#039;&#039; At the bottom of the Info window, click the lock icon. You&#039;ll be prompted to enter your administrator password to make changes.&lt;br /&gt;
# &#039;&#039;&#039;Add your user account:&#039;&#039;&#039; In the &amp;quot;Sharing &amp;amp; Permissions&amp;quot; section, click the plus (+) button at the bottom left to add a new user. Select your user account from the list.&lt;br /&gt;
# &#039;&#039;&#039;Set read &amp;amp; write privileges:&#039;&#039;&#039; Once your user is added, click on the &amp;quot;Privilege&amp;quot; dropdown next to your username and change it from &amp;quot;Read only&amp;quot; to &amp;quot;Read &amp;amp; Write&amp;quot;.&lt;br /&gt;
# &#039;&#039;&#039;Apply permissions to all enclosed items:&#039;&#039;&#039; Click the gear/action menu (⋯) at the bottom of the permissions section and select &amp;quot;Apply to enclosed items...&amp;quot; This ensures all subfolders and files within the National Instruments folder inherit these permissions.&lt;br /&gt;
# &#039;&#039;&#039;Lock and close:&#039;&#039;&#039; Click the lock icon again to prevent further changes, then close the Info window. VIPM should now be able to install and uninstall LabVIEW packages without permission errors.&lt;br /&gt;
&lt;br /&gt;
[[File:MacOS National Instruments Folder Permissions Fix for VIPM.png|alt=Step-by-step guide showing how to fix permissions on the National Instruments folder in macOS to allow VIPM (VI Package Manager) to install and uninstall LabVIEW packages. The annotated screenshot demonstrates accessing the Get Info window, unlocking permissions, adding user access with read/write privileges, and applying changes to all enclosed items within the National Instruments application folder.|center|thumb|Step-by-step guide showing how to fix permissions on the National Instruments folder in macOS to allow VIPM (VI Package Manager) to install and uninstall LabVIEW packages. The annotated screenshot demonstrates accessing the Get Info window, unlocking permissions, adding user access with read/write privileges, and applying changes to all enclosed items within the National Instruments application folder.]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Third party LabVIEW tools]]&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
* [[OpenG]]&lt;br /&gt;
* [[JKI]]&lt;br /&gt;
* [[LabVIEW Tools Network]]&lt;br /&gt;
&lt;br /&gt;
= External Links =&lt;br /&gt;
* [https://www.vipm.io Official VIPM Website]&lt;br /&gt;
* [https://support.vipm.io VIPM Documentation]&lt;br /&gt;
* [https://forums.vipm.io VIPM Forums]&lt;br /&gt;
&lt;br /&gt;
[[Category:Package Management]]&lt;br /&gt;
[[Category:Development Tools]]&lt;br /&gt;
[[Category:Third Party Tools]]&lt;/div&gt;</summary>
		<author><name>McQuillan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Tom_McQuillan_(LabVIEW_Champion)&amp;diff=35749</id>
		<title>Tom McQuillan (LabVIEW Champion)</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Tom_McQuillan_(LabVIEW_Champion)&amp;diff=35749"/>
		<updated>2025-09-02T13:14:50Z</updated>

		<summary type="html">&lt;p&gt;McQuillan: Updated Bio&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{infobox&lt;br /&gt;
|category=person&lt;br /&gt;
|name=Thomas (Tom) McQuillan&lt;br /&gt;
|person-citizenship=Worthing, UK&lt;br /&gt;
|person-title=champion&lt;br /&gt;
|person-certification=cla&lt;br /&gt;
|person-certification2=cled&lt;br /&gt;
|person-certification3=cta&lt;br /&gt;
|person-certification4=cpi&lt;br /&gt;
|person-first-labview-version=2012&lt;br /&gt;
|person-application-area=Scientific Research&lt;br /&gt;
}}&lt;br /&gt;
[[File:Tom McQuillan.jpg|thumb|right|Image of Tom McQuillan]]&lt;br /&gt;
&lt;br /&gt;
Hi, I&#039;m Tom McQuillan, a Senior Software Engineer at JKI. I develop cutting-edge LabVIEW tools and help our customers tackle complex engineering challenges. I also contribute to the VIPM development team, where I spend a lot of time analyzing and designing package management systems across languages, working to transfer the best techniques over to LabVIEW. My workdays are packed with everything from designing elegant developer tools to supporting high-performance test systems across industries like medical research.&lt;br /&gt;
&lt;br /&gt;
My journey started with a Master&#039;s in Electrical Engineering, where I first encountered LabVIEW. I began my career at Control Software Solutions and then moved to NI, where I taught advanced LabVIEW across Europe and earned CLA, CLED, and CTA certifications. That experience sparked a lasting passion for sharing knowledge, which I continue through teaching, mentoring, and community work.&lt;br /&gt;
&lt;br /&gt;
After leaving NI, I worked for Scientifica developing microscopy software to aid in neuroscience research. During my time at Scientifica, I continued to teach LabVIEW training courses as a Certified Professional Instructor (CPI).&lt;br /&gt;
&lt;br /&gt;
Throughout my career, I&#039;ve had the privilege of working with various NI Alliance Partners, designing and developing test systems for some pretty exciting industries: aerospace, automotive, and even Formula 1! It&#039;s always a privilege to see equipment I worked on in the pit lane at Silverstone.&lt;br /&gt;
&lt;br /&gt;
These days at JKI, I combine my experience to deliver software solutions that make a real impact, and I never stop learning.&lt;br /&gt;
&lt;br /&gt;
Outside of project work, I&#039;m heavily involved in the LabVIEW community. I&#039;m part of the GDevCon Europe committee and speak regularly at conferences. You might know me from my YouTube channel, Tom&#039;s LabVIEW Adventure, where I simplify topics like Actor Framework and OOP for LabVIEW devs worldwide.&lt;br /&gt;
&lt;br /&gt;
When I&#039;m not coding or creating content, I&#039;m probably at the piano, still learning, still having fun.&lt;br /&gt;
&lt;br /&gt;
Thanks for reading, and I hope to see you in the LabVIEW community or at an upcoming event!&lt;br /&gt;
&lt;br /&gt;
LabVIEW Lots,&lt;br /&gt;
&lt;br /&gt;
Tom&lt;/div&gt;</summary>
		<author><name>McQuillan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Tom_McQuillan_(LabVIEW_Champion)&amp;diff=35748</id>
		<title>Tom McQuillan (LabVIEW Champion)</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Tom_McQuillan_(LabVIEW_Champion)&amp;diff=35748"/>
		<updated>2025-09-02T13:13:04Z</updated>

		<summary type="html">&lt;p&gt;McQuillan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{infobox&lt;br /&gt;
|category=person&lt;br /&gt;
|name=Thomas (Tom) McQuillan&lt;br /&gt;
|person-citizenship=Worthing, UK&lt;br /&gt;
|person-title=champion&lt;br /&gt;
|person-certification=cla&lt;br /&gt;
|person-certification2=cled&lt;br /&gt;
|person-certification3=cta&lt;br /&gt;
|person-certification4=cpi&lt;br /&gt;
|person-first-labview-version=2012&lt;br /&gt;
|person-application-area=Scientific Research&lt;br /&gt;
}}&lt;br /&gt;
[[File:Tom McQuillan.jpg|thumb|right|Image of Tom McQuillan]]&lt;/div&gt;</summary>
		<author><name>McQuillan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=File:Tom_McQuillan.jpg&amp;diff=35747</id>
		<title>File:Tom McQuillan.jpg</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=File:Tom_McQuillan.jpg&amp;diff=35747"/>
		<updated>2025-09-02T13:05:06Z</updated>

		<summary type="html">&lt;p&gt;McQuillan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Image of Tom McQuillan&lt;/div&gt;</summary>
		<author><name>McQuillan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=JKI&amp;diff=35746</id>
		<title>JKI</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=JKI&amp;diff=35746"/>
		<updated>2025-09-02T12:59:37Z</updated>

		<summary type="html">&lt;p&gt;McQuillan: Added simple summary of JKI&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;JKI (James Kring, Inc.)&#039;&#039;&#039; [http://jki.net] is a prominent software engineering company in the LabVIEW ecosystem, best known for creating and maintaining [[VI Package Manager]] (VIPM), de facto standard package manager for LabVIEW. Founded by James Kring, JKI has been a key contributor to the LabVIEW community since 2002, developing numerous open-source tools, frameworks, and add-ons that enhance LabVIEW development workflows.&lt;br /&gt;
&lt;br /&gt;
The company specializes in LabVIEW consulting, custom software development, and creating developer tools that improve code reusability and deployment. Their flagship product, VIPM, revolutionized how LabVIEW developers share and manage code libraries, making it possible to easily install, update, and distribute VI packages across teams and projects. JKI also maintains several popular LabVIEW frameworks and toolkits, including the JKI State Machine, JSON serialization tools, and various UI enhancement libraries.&lt;br /&gt;
&lt;br /&gt;
JKI is recognized as a National Instruments (now NI) Alliance Partner and has been instrumental in promoting best practices for LabVIEW development through their tools, blog posts, and community engagement. Their contributions have made them one of the most trusted third-party vendors in the LabVIEW ecosystem.&lt;br /&gt;
[[category:alliance members]]&lt;/div&gt;</summary>
		<author><name>McQuillan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=VI_Package_Manager&amp;diff=35745</id>
		<title>VI Package Manager</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=VI_Package_Manager&amp;diff=35745"/>
		<updated>2025-09-02T12:54:46Z</updated>

		<summary type="html">&lt;p&gt;McQuillan: Added alternative approach to using a terminal command by using use the folder Info dialog&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;VI Package Manager&#039;&#039;&#039; (VIPM) is a package management system for LabVIEW created by [[JKI]] in 2005. Since LabVIEW 2012, VIPM has been bundled with LabVIEW installations as the standard package manager for the LabVIEW ecosystem. In 2022, [[NI]] and JKI announced an expanded partnership that made many previously Pro-only features freely available to all LabVIEW users through the new VIPM LabVIEW Edition.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
VIPM enables developers to install, build, and share reusable LabVIEW code libraries and tools. It functions similarly to package managers in other programming languages (npm, pip, etc.), providing dependency management and consistent development environments across teams.&lt;br /&gt;
&lt;br /&gt;
The 2022 NI-JKI partnership significantly expanded VIPM&#039;s free features, making professional package management capabilities available to all LabVIEW users. This includes package building, automation APIs, and project dependency management features that were previously only available in the paid Pro edition.&lt;br /&gt;
&lt;br /&gt;
The system uses &amp;lt;code&amp;gt;.vip&amp;lt;/code&amp;gt; files (VI Packages) for distribution and &amp;lt;code&amp;gt;.vipc&amp;lt;/code&amp;gt; files (VI Package Configurations) for project dependency management.&lt;br /&gt;
&lt;br /&gt;
== Key Features ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Package Installation&#039;&#039;&#039; - Browse and install packages from public repositories including [[OpenG]] libraries and the [[LabVIEW Tools Network]]&lt;br /&gt;
* &#039;&#039;&#039;Package Building&#039;&#039;&#039; - Create distributable packages with custom palettes, pre/post actions, and dependency management&lt;br /&gt;
* &#039;&#039;&#039;VI Package Configurations&#039;&#039;&#039; - Create and apply .vipc files for consistent development environments&lt;br /&gt;
* &#039;&#039;&#039;Automation&#039;&#039;&#039; - Full API and CLI support for CI/CD integration&lt;br /&gt;
* &#039;&#039;&#039;Team Collaboration&#039;&#039;&#039; - Share packages via repositories (Pro feature)&lt;br /&gt;
&lt;br /&gt;
== Editions ==&lt;br /&gt;
&lt;br /&gt;
=== LabVIEW Edition (Free) ===&lt;br /&gt;
Since 2022, through an expanded NI-JKI partnership, the LabVIEW Edition includes many features previously exclusive to VIPM Pro. This edition is bundled with LabVIEW and available to all LabVIEW users at no additional cost. Features include:&lt;br /&gt;
* Full package building with custom palettes and actions&lt;br /&gt;
* VI Package Configuration (.vipc) creation and application&lt;br /&gt;
* API and command-line interface (CLI) for automation&lt;br /&gt;
* Pre/post install, uninstall, and build custom actions&lt;br /&gt;
* External package dependency management&lt;br /&gt;
* Access to NI Tools Network and VIPM Community repositories&lt;br /&gt;
&lt;br /&gt;
=== Pro Edition (Paid) ===&lt;br /&gt;
The Pro Edition provides enterprise and advanced features:&lt;br /&gt;
* Storing package binaries inside .vipc files (offline distribution)&lt;br /&gt;
* NI Third Party Licensing &amp;amp; Activation Toolkit (TPLAT) integration&lt;br /&gt;
* Password protection of VIs at build-time&lt;br /&gt;
* Creating and managing private team repositories&lt;br /&gt;
* Enterprise volume licensing and support agreements&lt;br /&gt;
&lt;br /&gt;
== Repositories ==&lt;br /&gt;
&lt;br /&gt;
VIPM connects to multiple package sources:&lt;br /&gt;
* &#039;&#039;&#039;VIPM Community&#039;&#039;&#039; - Open-source packages hosted by JKI&lt;br /&gt;
* &#039;&#039;&#039;LabVIEW Tools Network&#039;&#039;&#039; - NI-certified add-ons&lt;br /&gt;
* &#039;&#039;&#039;Private Repositories&#039;&#039;&#039; - Organization-specific packages via network shares or web servers&lt;br /&gt;
&lt;br /&gt;
== Platform Support ==&lt;br /&gt;
&lt;br /&gt;
VIPM is available for Windows (full support), Linux, and macOS. JKI is actively developing containerized build support using Docker for cloud-based CI/CD workflows.&lt;br /&gt;
&lt;br /&gt;
=Installing VI Package Manager on macOS=&lt;br /&gt;
&lt;br /&gt;
The latest security policies prevent writing to the LabVIEW directory by default. To use VIPM to write files to user.lib, change the write permission using the terminal by running the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
find &amp;quot;/Applications/National Instruments/LabVIEW 2024 64-bit&amp;quot; -type d -print0 | sudo xargs -0 echo chmod o+w&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An alternative approach to using a terminal command is to use the folder Info dialog:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Navigate to the National Instruments folder:&#039;&#039;&#039; In Finder, go to Applications and locate the National Instruments folder. Right-click on it and select &amp;quot;Get Info&amp;quot; from the context menu.&lt;br /&gt;
# &#039;&#039;&#039;Unlock the permissions:&#039;&#039;&#039; At the bottom of the Info window, click the lock icon. You&#039;ll be prompted to enter your administrator password to make changes.&lt;br /&gt;
# &#039;&#039;&#039;Add your user account:&#039;&#039;&#039; In the &amp;quot;Sharing &amp;amp; Permissions&amp;quot; section, click the plus (+) button at the bottom left to add a new user. Select your user account from the list.&lt;br /&gt;
# &#039;&#039;&#039;Set read &amp;amp; write privileges:&#039;&#039;&#039; Once your user is added, click on the &amp;quot;Privilege&amp;quot; dropdown next to your username and change it from &amp;quot;Read only&amp;quot; to &amp;quot;Read &amp;amp; Write&amp;quot;.&lt;br /&gt;
# &#039;&#039;&#039;Apply permissions to all enclosed items:&#039;&#039;&#039; Click the gear/action menu (⋯) at the bottom of the permissions section and select &amp;quot;Apply to enclosed items...&amp;quot; This ensures all subfolders and files within the National Instruments folder inherit these permissions.&lt;br /&gt;
# &#039;&#039;&#039;Lock and close:&#039;&#039;&#039; Click the lock icon again to prevent further changes, then close the Info window. VIPM should now be able to install and uninstall LabVIEW packages without permission errors.&lt;br /&gt;
&lt;br /&gt;
[[File:MacOS National Instruments Folder Permissions Fix for VIPM.png|alt=Step-by-step guide showing how to fix permissions on the National Instruments folder in macOS to allow VIPM (VI Package Manager) to install and uninstall LabVIEW packages. The annotated screenshot demonstrates accessing the Get Info window, unlocking permissions, adding user access with read/write privileges, and applying changes to all enclosed items within the National Instruments application folder.|center|thumb|Step-by-step guide showing how to fix permissions on the National Instruments folder in macOS to allow VIPM (VI Package Manager) to install and uninstall LabVIEW packages. The annotated screenshot demonstrates accessing the Get Info window, unlocking permissions, adding user access with read/write privileges, and applying changes to all enclosed items within the National Instruments application folder.]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Third party LabVIEW tools]]&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
* [[OpenG]]&lt;br /&gt;
* [[JKI]]&lt;br /&gt;
* [[LabVIEW Tools Network]]&lt;br /&gt;
&lt;br /&gt;
= External Links =&lt;br /&gt;
* [https://www.vipm.io Official VIPM Website]&lt;br /&gt;
* [https://support.vipm.io VIPM Documentation]&lt;br /&gt;
* [https://forums.vipm.io VIPM Forums]&lt;br /&gt;
&lt;br /&gt;
[[Category:Package Management]]&lt;br /&gt;
[[Category:Development Tools]]&lt;br /&gt;
[[Category:Third Party Tools]]&lt;/div&gt;</summary>
		<author><name>McQuillan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=File:MacOS_National_Instruments_Folder_Permissions_Fix_for_VIPM.png&amp;diff=35744</id>
		<title>File:MacOS National Instruments Folder Permissions Fix for VIPM.png</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=File:MacOS_National_Instruments_Folder_Permissions_Fix_for_VIPM.png&amp;diff=35744"/>
		<updated>2025-09-02T12:49:34Z</updated>

		<summary type="html">&lt;p&gt;McQuillan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Step-by-step guide showing how to fix permissions on the National Instruments folder in macOS to allow VIPM (VI Package Manager) to install and uninstall LabVIEW packages. The annotated screenshot demonstrates accessing the Get Info window, unlocking permissions, adding user access with read/write privileges, and applying changes to all enclosed items.&lt;/div&gt;</summary>
		<author><name>McQuillan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=VI_Package_Manager&amp;diff=35656</id>
		<title>VI Package Manager</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=VI_Package_Manager&amp;diff=35656"/>
		<updated>2025-08-08T11:35:17Z</updated>

		<summary type="html">&lt;p&gt;McQuillan: Major update: Fixed creation date (2005) and bundling date (2012), documented 2022 NI-JKI partnership that made Pro features free in LabVIEW Edition, updated edition structure and features&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;VI Package Manager&#039;&#039;&#039; (VIPM) is a package management system for LabVIEW created by [[JKI]] in 2005. Since LabVIEW 2012, VIPM has been bundled with LabVIEW installations as the standard package manager for the LabVIEW ecosystem. In 2022, [[NI]] and JKI announced an expanded partnership that made many previously Pro-only features freely available to all LabVIEW users through the new VIPM LabVIEW Edition.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
VIPM enables developers to install, build, and share reusable LabVIEW code libraries and tools. It functions similarly to package managers in other programming languages (npm, pip, etc.), providing dependency management and consistent development environments across teams.&lt;br /&gt;
&lt;br /&gt;
The 2022 NI-JKI partnership significantly expanded VIPM&#039;s free features, making professional package management capabilities available to all LabVIEW users. This includes package building, automation APIs, and project dependency management features that were previously only available in the paid Pro edition.&lt;br /&gt;
&lt;br /&gt;
The system uses &amp;lt;code&amp;gt;.vip&amp;lt;/code&amp;gt; files (VI Packages) for distribution and &amp;lt;code&amp;gt;.vipc&amp;lt;/code&amp;gt; files (VI Package Configurations) for project dependency management.&lt;br /&gt;
&lt;br /&gt;
== Key Features ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Package Installation&#039;&#039;&#039; - Browse and install packages from public repositories including [[OpenG]] libraries and the [[LabVIEW Tools Network]]&lt;br /&gt;
* &#039;&#039;&#039;Package Building&#039;&#039;&#039; - Create distributable packages with custom palettes, pre/post actions, and dependency management&lt;br /&gt;
* &#039;&#039;&#039;VI Package Configurations&#039;&#039;&#039; - Create and apply .vipc files for consistent development environments&lt;br /&gt;
* &#039;&#039;&#039;Automation&#039;&#039;&#039; - Full API and CLI support for CI/CD integration&lt;br /&gt;
* &#039;&#039;&#039;Team Collaboration&#039;&#039;&#039; - Share packages via repositories (Pro feature)&lt;br /&gt;
&lt;br /&gt;
== Editions ==&lt;br /&gt;
&lt;br /&gt;
=== LabVIEW Edition (Free) ===&lt;br /&gt;
Since 2022, through an expanded NI-JKI partnership, the LabVIEW Edition includes many features previously exclusive to VIPM Pro. This edition is bundled with LabVIEW and available to all LabVIEW users at no additional cost. Features include:&lt;br /&gt;
* Full package building with custom palettes and actions&lt;br /&gt;
* VI Package Configuration (.vipc) creation and application&lt;br /&gt;
* API and command-line interface (CLI) for automation&lt;br /&gt;
* Pre/post install, uninstall, and build custom actions&lt;br /&gt;
* External package dependency management&lt;br /&gt;
* Access to NI Tools Network and VIPM Community repositories&lt;br /&gt;
&lt;br /&gt;
=== Pro Edition (Paid) ===&lt;br /&gt;
The Pro Edition provides enterprise and advanced features:&lt;br /&gt;
* Storing package binaries inside .vipc files (offline distribution)&lt;br /&gt;
* NI Third Party Licensing &amp;amp; Activation Toolkit (TPLAT) integration&lt;br /&gt;
* Password protection of VIs at build-time&lt;br /&gt;
* Creating and managing private team repositories&lt;br /&gt;
* Enterprise volume licensing and support agreements&lt;br /&gt;
&lt;br /&gt;
== Repositories ==&lt;br /&gt;
&lt;br /&gt;
VIPM connects to multiple package sources:&lt;br /&gt;
* &#039;&#039;&#039;VIPM Community&#039;&#039;&#039; - Open-source packages hosted by JKI&lt;br /&gt;
* &#039;&#039;&#039;LabVIEW Tools Network&#039;&#039;&#039; - NI-certified add-ons&lt;br /&gt;
* &#039;&#039;&#039;Private Repositories&#039;&#039;&#039; - Organization-specific packages via network shares or web servers&lt;br /&gt;
&lt;br /&gt;
== Platform Support ==&lt;br /&gt;
&lt;br /&gt;
VIPM is available for Windows (full support), Linux, and macOS. JKI is actively developing containerized build support using Docker for cloud-based CI/CD workflows.&lt;br /&gt;
&lt;br /&gt;
=Installing VI Package Manager on macOS=&lt;br /&gt;
&lt;br /&gt;
The latest security policies prevent writing to the LabVIEW directory by default. To use VIPM to write files to user.lib, change the write permission using the terminal by running the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
find &amp;quot;/Applications/National Instruments/LabVIEW 2024 64-bit&amp;quot; -type d -print0 | sudo xargs -0 echo chmod o+w&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Third party LabVIEW tools]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[OpenG]]&lt;br /&gt;
* [[JKI]]&lt;br /&gt;
* [[LabVIEW Tools Network]]&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
* [https://www.vipm.io Official VIPM Website]&lt;br /&gt;
* [https://support.vipm.io VIPM Documentation]&lt;br /&gt;
* [https://forums.vipm.io VIPM Forums]&lt;br /&gt;
&lt;br /&gt;
[[Category:Package Management]]&lt;br /&gt;
[[Category:Development Tools]]&lt;br /&gt;
[[Category:Third Party Tools]]&lt;/div&gt;</summary>
		<author><name>McQuillan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Tom_McQuillan_(LabVIEW_Champion)&amp;diff=31179</id>
		<title>Tom McQuillan (LabVIEW Champion)</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Tom_McQuillan_(LabVIEW_Champion)&amp;diff=31179"/>
		<updated>2021-08-11T12:29:12Z</updated>

		<summary type="html">&lt;p&gt;McQuillan: Created page with &amp;quot;{| class=&amp;quot;wikitable&amp;quot; |- | &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; | Thomas (Tom) McQuillan |- | &amp;#039;&amp;#039;&amp;#039;Home&amp;#039;&amp;#039;&amp;#039; | Worthing, UK |- | &amp;#039;&amp;#039;&amp;#039;Certification&amp;#039;&amp;#039;&amp;#039; | Certified LabVIEW Architect, Certified Embedded Systems...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
| Thomas (Tom) McQuillan&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Home&#039;&#039;&#039;&lt;br /&gt;
| Worthing, UK&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Certification&#039;&#039;&#039;&lt;br /&gt;
| Certified LabVIEW Architect, Certified Embedded Systems Developer, Certified TestStand Architect, Certified Professional Instructor&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Used LabVIEW Since:&#039;&#039;&#039;&lt;br /&gt;
| LabVIEW 12.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Applications Areas&#039;&#039;&#039;&lt;br /&gt;
| Scientific Research&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>McQuillan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=List_of_LabVIEW_Champions&amp;diff=31178</id>
		<title>List of LabVIEW Champions</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=List_of_LabVIEW_Champions&amp;diff=31178"/>
		<updated>2021-08-11T12:26:28Z</updated>

		<summary type="html">&lt;p&gt;McQuillan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{see also|LabVIEW Champion|LabVIEW Champions program FAQ}} &lt;br /&gt;
Complete List at NI.com: [https://forums.ni.com/t5/LabVIEW-Champions-Directory/tkb-p/3012 LabVIEW Champions]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Tenure&lt;br /&gt;
! Home&lt;br /&gt;
|-&lt;br /&gt;
| [[Albert Geven (LabVIEW Champion)|Albert Geven]]&lt;br /&gt;
| 2005-Present&lt;br /&gt;
| Netherlands&lt;br /&gt;
|-&lt;br /&gt;
| [[Alessandro Ricco (LabVIEW Champion)|Alessandro Ricco]]&lt;br /&gt;
| 2005-Present&lt;br /&gt;
| Italy&lt;br /&gt;
|-&lt;br /&gt;
| [[André Manzolli (LabVIEW Champion)|André Manzolli]]&lt;br /&gt;
| 2005-Present&lt;br /&gt;
| Brazil&lt;br /&gt;
|-&lt;br /&gt;
| [[Ben Rayner (LabVIEW Champion)|Ben Rayner]]&lt;br /&gt;
| 2005-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Bill Meier (LabVIEW Champion)|Bill Meier]]&lt;br /&gt;
| 2010-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Bogdan Iwinski (LabVIEW Champion)|Bogdan Iwinski]]&lt;br /&gt;
| 2010-Present&lt;br /&gt;
| Poland&lt;br /&gt;
|-&lt;br /&gt;
| [[Brett Percy (LabVIEW Champion)|Brett Percy]]&lt;br /&gt;
| 2005-Present&lt;br /&gt;
| Australia&lt;br /&gt;
|-&lt;br /&gt;
| [[Bruce Ammons (LabVIEW Champion)|Bruce Ammons]]&lt;br /&gt;
| 2005-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Buddy Haun (LabVIEW Champion)|Buddy Haun]]&lt;br /&gt;
| 2008-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Charles Ghommidh (LabVIEW Champion)|Charles Ghommidh]]&lt;br /&gt;
| 2005-Present&lt;br /&gt;
| France&lt;br /&gt;
|-&lt;br /&gt;
| [[Chris Cilino (LabVIEW Champion)|Chris Cilino]]&lt;br /&gt;
| 2017-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Chris Roebuck (LabVIEW Champion)|Chris Roebuck]]&lt;br /&gt;
| 2013-Present&lt;br /&gt;
| United Kingdom&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| [[Christian Altenbach (LabVIEW Champion)|Christian Altenbach]]&lt;br /&gt;
| 2005-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Christophe Salzmann (LabVIEW Champion)|Christophe Salzmann]]&lt;br /&gt;
| 2010-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Christopher G. Relf (LabVIEW Champion)|Christopher G. Relf]]&lt;br /&gt;
| 2005-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Dany Allard (LabVIEW Champion)|Dany Allard]]&lt;br /&gt;
| 2013-Present&lt;br /&gt;
| Canada&lt;br /&gt;
|-&lt;br /&gt;
| [[Darin Kinion (LabVIEW Champion)|Darin Kinion]]&lt;br /&gt;
| 2012-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[David Thomson (LabVIEW Champion)|David Thomson]]&lt;br /&gt;
| 2005-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Dennis Knutson (LabVIEW Champion)|Dennis Knutson]]&lt;br /&gt;
| 2005-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Ed Dickens (LabVIEW Champion)|Ed Dickens]]&lt;br /&gt;
| 2005-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Fabiola De la Cueva (LabVIEW Champion)|Fabiola De la Cueva]]&lt;br /&gt;
| 2012-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Francois Normandin (LabVIEW Champion)|Francois Normandin]]&lt;br /&gt;
| 2019-Present&lt;br /&gt;
| Canada&lt;br /&gt;
|-&lt;br /&gt;
| [[Gaurav Kulkarni (LabVIEW Champion)|Gaurav Kulkarni]]&lt;br /&gt;
| 2013-Present&lt;br /&gt;
| India&lt;br /&gt;
|-&lt;br /&gt;
| [[Jack Dunaway (LabVIEW Champion)|Jack Dunaway]]&lt;br /&gt;
| 2010-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Jeff Bohrer (LabVIEW Champion)|Jeff Bohrer]]&lt;br /&gt;
| 2012-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Jim Kring (LabVIEW Champion)|Jim Kring]]&lt;br /&gt;
| 2005-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Joe Hoskins (LabVIEW Champion)|Joe Hoskins]]&lt;br /&gt;
| 2010-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Joerg Hampel (LabVIEW Champion)|Joerg Hampel]]&lt;br /&gt;
| 2018-Present&lt;br /&gt;
| Austria&lt;br /&gt;
|-&lt;br /&gt;
| [[Jonathon Green (LabVIEW Champion)|Jonathon Green]]&lt;br /&gt;
| 2012-Present&lt;br /&gt;
| Australia&lt;br /&gt;
|-&lt;br /&gt;
| [[Justin Goeres (LabVIEW Champion)|Justin Goeres]]&lt;br /&gt;
| 2012-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Leigh Christian (LabVIEW Champion)|Leigh Christian]]&lt;br /&gt;
| 2010-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Kabul Maharjan (LabVIEW Champion)|Kabul Maharjan]]&lt;br /&gt;
| 2019-Present&lt;br /&gt;
| United Kingdom&lt;br /&gt;
|-&lt;br /&gt;
| [[Marcus Johnson (LabVIEW Champion)|Marcus Johnson]]&lt;br /&gt;
| 2013-Present&lt;br /&gt;
| Sweden&lt;br /&gt;
|-&lt;br /&gt;
| [[Mark Balla (LabVIEW Champion)|Mark Balla]]&lt;br /&gt;
| 2010-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Mark Ridgley (LabVIEW Champion)|Mark Ridgley]]&lt;br /&gt;
| 2013-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Mark Yedinak (LabVIEW Champion)|Mark Yedinak]]&lt;br /&gt;
| 2010-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Michael Aivaliotis (LabVIEW Champion)|Michael Aivaliotis]]&lt;br /&gt;
| 2005-Present&lt;br /&gt;
| Canada&lt;br /&gt;
|-&lt;br /&gt;
| [[Mike Porter (LabVIEW Champion)|Mike Porter]]&lt;br /&gt;
| 2008-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Muthuraman Sudalaimuthu (LabVIEW Champion)|Muthuraman Sudalaimuthu]]&lt;br /&gt;
| 2013-Present&lt;br /&gt;
| India&lt;br /&gt;
|-&lt;br /&gt;
| [[Nancy Hollenback (LabVIEW Champion)|Nancy Hollenback]]&lt;br /&gt;
| 2008-2010&amp;lt;ref&amp;gt;In 2010, Nancy joined NI.&amp;lt;/ref&amp;gt;&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Norm Kirchner (LabVIEW Champion)|Norm Kirchner]]&lt;br /&gt;
| 2008-2008&amp;lt;ref&amp;gt;Months after becoming a Champion, Norm joined NI.&amp;lt;/ref&amp;gt;&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| 2018-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Parag Deshpande (LabVIEW Champion)|Parag Deshpande]]&lt;br /&gt;
| 2012-Present&lt;br /&gt;
| India&lt;br /&gt;
|-&lt;br /&gt;
| [[Pavan Bathla (LabVIEW Champion)|Pavan Bathla]]&lt;br /&gt;
| 2007-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Piotr Maj (LabVIEW Champion)|Piotr Maj]]&lt;br /&gt;
| 2012-Present&lt;br /&gt;
| Poland&lt;br /&gt;
|-&lt;br /&gt;
| [[Putnam W. Monroe Jr. (LabVIEW Champion)|Putnam W. Monroe Jr.]]&lt;br /&gt;
| 2005-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Ray Robichaud (LabVIEW Champion)|Ray Robichaud]]&lt;br /&gt;
| 2005-Present&lt;br /&gt;
| Canada&lt;br /&gt;
|-&lt;br /&gt;
| [[Richard Sorrells (LabVIEW Champion)|Richard Sorrells]]&lt;br /&gt;
| 2013-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Rick Beauchaine (LabVIEW Champion)|Rick Beauchaine]]&lt;br /&gt;
| 2005-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Richard Thomas (LabVIEW Champion)|Richard Thomas]]&lt;br /&gt;
| 2012-Present&lt;br /&gt;
| England&lt;br /&gt;
|-&lt;br /&gt;
| [[Roger Isaksson (LabVIEW Champion)|Roger Isaksson]]&lt;br /&gt;
| 2013-Present&lt;br /&gt;
| Sweden&lt;br /&gt;
|-&lt;br /&gt;
| [[Rolf Kalbermatter (LabVIEW Champion)|Rolf Kalbermatter]]&lt;br /&gt;
| 2010-Present&lt;br /&gt;
| Netherlands&lt;br /&gt;
|-&lt;br /&gt;
| [[Sam Roundy (LabVIEW Champion)|Sam Roundy]]&lt;br /&gt;
| 2019-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Samuel James (LabVIEW Champion)|Samuel James]]&lt;br /&gt;
| 2012-Present&lt;br /&gt;
| India&lt;br /&gt;
|-&lt;br /&gt;
| [[Samuel Taggart (LabVIEW Champion)|Samuel Taggart]]&lt;br /&gt;
| 2018-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Saverio Mercurio (LabVIEW Champion)|Saverio Mercurio]]&lt;br /&gt;
| 2010-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Scott Hannahs (LabVIEW Champion)|Scott Hannahs]]&lt;br /&gt;
| 2005-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Shane O&#039;Neill (LabVIEW Champion)|Shane O&#039;Neill]]&lt;br /&gt;
| 2010-Present&lt;br /&gt;
| Switzerland&lt;br /&gt;
|-&lt;br /&gt;
| [[Steve Watts (LabVIEW Champion)|Steve Watts]]&lt;br /&gt;
| 2013-Present&lt;br /&gt;
| United Kingdom&lt;br /&gt;
|-&lt;br /&gt;
| [[Tim Robinson (LabVIEW Champion)|Tim Robinson]]&lt;br /&gt;
| 2013-Present&lt;br /&gt;
| United States&lt;br /&gt;
|-&lt;br /&gt;
| [[Tomi Maila (LabVIEW Champion)|Tomi Maila]]&lt;br /&gt;
| 2007-Present&lt;br /&gt;
| Finland&lt;br /&gt;
|-&lt;br /&gt;
| [[Tom McQuillan (LabVIEW Champion)|Tom McQuillan]]&lt;br /&gt;
| 2021-Present&lt;br /&gt;
| United Kingdom&lt;br /&gt;
|-&lt;br /&gt;
| [[Urs Lauterburg (LabVIEW Champion)|Urs Lauterburg]]&lt;br /&gt;
| 2005-Present&lt;br /&gt;
| Switzerland&lt;br /&gt;
|-&lt;br /&gt;
| [[Yair Neeman (LabVIEW Champion)|Yair Neeman]]&lt;br /&gt;
| 2007-Present&lt;br /&gt;
| Israel&lt;br /&gt;
|-&lt;br /&gt;
| [[Zbigniew Sobków (LabVIEW Champion)|Zbigniew Sobków]]&lt;br /&gt;
| 2005-Present&lt;br /&gt;
| Poland&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW Champions]]&lt;br /&gt;
[[Category:Lists]]&lt;/div&gt;</summary>
		<author><name>McQuillan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Actor_Framework&amp;diff=30292</id>
		<title>Actor Framework</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Actor_Framework&amp;diff=30292"/>
		<updated>2020-09-25T10:22:33Z</updated>

		<summary type="html">&lt;p&gt;McQuillan: /* External Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Actor Framework&#039;&#039;&#039; is an Actor Model implementation that has been distributed with LabVIEW since [[LabVIEW 2012]].  &lt;br /&gt;
&lt;br /&gt;
* To learn more about the [https://en.wikipedia.org/wiki/Actor_model Actor Model click here for the Wikikpedia article].&lt;br /&gt;
* To learn about other community created Actor implementations see the&amp;quot;Other Actor Implementation Designs&amp;quot; section on the [[Actor Oriented Design Patterns]] page.&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
The &#039;&#039;&#039;Actor Framework&#039;&#039;&#039; introduces two main classes:&lt;br /&gt;
# The Actor class&lt;br /&gt;
# The Message class&lt;br /&gt;
&lt;br /&gt;
The basic Actor only does something only when it receives a message telling it to do something.  What it is supposed to do is tied to the message that was sent.  It can either execute something and be done until the next message, it can launch other Actors, or it can send more messages.  In the Actor Framework it is limited to sending messages to itself, to the Actor that launched it (if it is not the root Actor), or to Actors it launched.&lt;br /&gt;
&lt;br /&gt;
[[File:Actor Framework Communication.png|frame|center|Actor Framework message communication (from Jon McBee&#039;s article &amp;quot; FUN WITH THE ACTOR FRAMEWORK: PUB/SUB&amp;quot;)]]&lt;br /&gt;
&lt;br /&gt;
===The Message Class===&lt;br /&gt;
A basic Message Class contains only two methods:&lt;br /&gt;
# &#039;&#039;&#039;Do.vi&#039;&#039;&#039; - calls the method that contains the code that is the action for the Actor to execute&lt;br /&gt;
# &#039;&#039;&#039;Send [Name of Message].vi&#039;&#039;&#039; - requires the enqueuer (address) of the Actor to send the message to, which causes the message to be sent to that Actor&lt;br /&gt;
&lt;br /&gt;
===The Actor Class===&lt;br /&gt;
A basic Actor only needs to contain the methods that the messages call.  However, there are some optional overrides that can extend the functionality of the Actor.  They include:&lt;br /&gt;
* Actor Core.vi&lt;br /&gt;
* Handle Error.vi&lt;br /&gt;
* Handle Last Ack Core.vi&lt;br /&gt;
* Pre Launch Init.vi&lt;br /&gt;
* Receive Message.vi&lt;br /&gt;
* Stop Core.vi&lt;br /&gt;
* Substitute Actor.vi&lt;br /&gt;
&lt;br /&gt;
More to come on when and why one might want to override these methods.&lt;br /&gt;
&lt;br /&gt;
== External Links  ==&lt;br /&gt;
*[https://www.youtube.com/watch?v=2k3ZDwJolbA&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth &amp;quot;Complete LabVIEW Actor Framework Tutorial Series&amp;quot;] by [https://www.linkedin.com/in/thomasmcquillan/ Tom McQuillan], [https://www.youtube.com/tomslabviewadventure Tom&#039;s LabVIEW Adventure]&lt;br /&gt;
** [https://www.youtube.com/watch?v=2k3ZDwJolbA&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=1 &amp;quot;1. Recap of Modular Applications in LabVIEW&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=dxLAR7mMyA8&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=2 &amp;quot;2. Deriving the Actor Core in Actor Framework (The Command Pattern)&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=110rGrrJ3yc&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=3 &amp;quot;3. Creating Your First Actor - Hello World!&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=mqJqHGGTwbk&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=4 &amp;quot;4. User Interface Basics with Actor Core Override&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=2u-MukJ-Heg&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=5 &amp;quot;5. User Events in Actor Framework (+ Chat Window Project Intro)&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=e2z4YTvH5zU&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=6 &amp;quot;6. Actor System Design and Messaging&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=PYGo3bEEEPk&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=7 &amp;quot;7. How Actor Systems Stop and What Happens When an Error Occurs&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=p--8oUMsZDE&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=8 &amp;quot;8. User Interfaces in Actor Framework and User Event Scripting&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=eTaufgA7Lkc&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=9 &amp;quot;9. Abstract Messages in LabVIEW Actor Framework&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=AJUQQtoQSGA&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=10 &amp;quot;10. Top Five Actor Framework Overrides&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=uUopETUSAJw&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=11 &amp;quot;11. Using Subpanels with the LabVIEW Actor Framework&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=wnyG-59U6pw&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=12 &amp;quot;12. LabVIEW Maps (feat. Actor Framework)&amp;quot;]&lt;br /&gt;
** New for LabVIEW 2020! [https://www.youtube.com/watch?v=oYUow2c-nCE&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=13 &amp;quot;Interface Messages in Actor Framework - Never create an Abstract Message again!&amp;quot;]&lt;br /&gt;
**New in LabVIEW NXG (&amp;gt; 4.0)[https://www.youtube.com/watch?v=48oaT4r90oE&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=14 &amp;quot;Trying out Actor Framework in LabVIEW NXG 4.0...&amp;quot;]&lt;br /&gt;
*Actor Framework Basics by [https://www.linkedin.com/in/derek-trepanier/ Derek E. Trepanier], Moore Good Ideas&lt;br /&gt;
** [http://www.mooregoodideas.com/actor-framework/basics/AF-basics-part-1/ &amp;quot;Actor Framework Basics: Part 1 - the Basics&amp;quot;]&lt;br /&gt;
** [http://www.mooregoodideas.com/actor-framework/basics/AF-basics-part-2/ &amp;quot;Actor Framework Basics: Part 2 - the Actor&amp;quot;]&lt;br /&gt;
** [http://www.mooregoodideas.com/actor-framework/basics/AF-basics-part-3/ &amp;quot;Actor Framework Basics: Part 3 - Launching and Communicating&amp;quot;]&lt;br /&gt;
** [http://www.mooregoodideas.com/actor-framework/basics/AF-basics-part-4/ &amp;quot;Actor Framework Basics: Part 4 - Being Productive With Actors&amp;quot;]&lt;br /&gt;
** [http://www.mooregoodideas.com/actor-framework/basics/AF-basics-walkthrough/ &amp;quot;Actor Framework Basics: Walkthrough - Creating a Logger Actor&amp;quot;]&lt;br /&gt;
*[http://forums.ni.com/t5/Labvolution/LabVIEW-Actor-Framework-Basics/ba-p/3476654 &amp;quot;Actor Framework Basics&amp;quot;] by Greg Payne, Labvolution.&lt;br /&gt;
*[http://www.labviewcraftsmen.com/blog/fun-with-the-actor-framework-pubsub &amp;quot;Fun with the Actor Framework: PUB/SUB&amp;quot;] by [https://www.linkedin.com/in/jon-mcbee/ Jon McBee], LabVIEW Craftsmen Blog﻿&lt;br /&gt;
*[[Convert Queued Message Handler (QMH) to Actor Framework (AF)|&amp;quot;Actor Framework is not as hard as you think and here is why…&amp;quot;]] by Quentin &amp;quot;Q&amp;quot; Alldredge, Q Software Innovations, LLC&lt;br /&gt;
*[https://forums.ni.com/t5/Actor-Framework/ct-p/7001 NI Community].&lt;br /&gt;
*[https://forums.ni.com/t5/Actor-Framework-Documents/READ-THIS-FIRST-to-get-started-with-Actor-Framework/ta-p/3493762 NI Introduction].&lt;br /&gt;
*[https://learn.ni.com/center-of-excellence/resources/863/choosing-a-framework Comparison of AF and DQMH] by [[Samuel_Taggart_(LabVIEW_Champion)|Sam Taggart]], [https://automatedenver.com System Automation Solutions]&lt;br /&gt;
&lt;br /&gt;
[[Category:Actor Framework]]&lt;br /&gt;
[[Category:Frameworks]]&lt;/div&gt;</summary>
		<author><name>McQuillan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Actor_Framework&amp;diff=30291</id>
		<title>Actor Framework</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Actor_Framework&amp;diff=30291"/>
		<updated>2020-09-25T10:20:17Z</updated>

		<summary type="html">&lt;p&gt;McQuillan: /* External Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Actor Framework&#039;&#039;&#039; is an Actor Model implementation that has been distributed with LabVIEW since [[LabVIEW 2012]].  &lt;br /&gt;
&lt;br /&gt;
* To learn more about the [https://en.wikipedia.org/wiki/Actor_model Actor Model click here for the Wikikpedia article].&lt;br /&gt;
* To learn about other community created Actor implementations see the&amp;quot;Other Actor Implementation Designs&amp;quot; section on the [[Actor Oriented Design Patterns]] page.&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
The &#039;&#039;&#039;Actor Framework&#039;&#039;&#039; introduces two main classes:&lt;br /&gt;
# The Actor class&lt;br /&gt;
# The Message class&lt;br /&gt;
&lt;br /&gt;
The basic Actor only does something only when it receives a message telling it to do something.  What it is supposed to do is tied to the message that was sent.  It can either execute something and be done until the next message, it can launch other Actors, or it can send more messages.  In the Actor Framework it is limited to sending messages to itself, to the Actor that launched it (if it is not the root Actor), or to Actors it launched.&lt;br /&gt;
&lt;br /&gt;
[[File:Actor Framework Communication.png|frame|center|Actor Framework message communication (from Jon McBee&#039;s article &amp;quot; FUN WITH THE ACTOR FRAMEWORK: PUB/SUB&amp;quot;)]]&lt;br /&gt;
&lt;br /&gt;
===The Message Class===&lt;br /&gt;
A basic Message Class contains only two methods:&lt;br /&gt;
# &#039;&#039;&#039;Do.vi&#039;&#039;&#039; - calls the method that contains the code that is the action for the Actor to execute&lt;br /&gt;
# &#039;&#039;&#039;Send [Name of Message].vi&#039;&#039;&#039; - requires the enqueuer (address) of the Actor to send the message to, which causes the message to be sent to that Actor&lt;br /&gt;
&lt;br /&gt;
===The Actor Class===&lt;br /&gt;
A basic Actor only needs to contain the methods that the messages call.  However, there are some optional overrides that can extend the functionality of the Actor.  They include:&lt;br /&gt;
* Actor Core.vi&lt;br /&gt;
* Handle Error.vi&lt;br /&gt;
* Handle Last Ack Core.vi&lt;br /&gt;
* Pre Launch Init.vi&lt;br /&gt;
* Receive Message.vi&lt;br /&gt;
* Stop Core.vi&lt;br /&gt;
* Substitute Actor.vi&lt;br /&gt;
&lt;br /&gt;
More to come on when and why one might want to override these methods.&lt;br /&gt;
&lt;br /&gt;
== External Links  ==&lt;br /&gt;
*[https://www.youtube.com/watch?v=2k3ZDwJolbA&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth &amp;quot;Complete LabVIEW Actor Framework Tutorial Series&amp;quot;] by [https://www.linkedin.com/in/thomasmcquillan/ Tom McQuillan], [https://www.youtube.com/tomslabviewadventure Tom&#039;s LabVIEW Adventure]&lt;br /&gt;
** [https://www.youtube.com/watch?v=2k3ZDwJolbA&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=1 &amp;quot;1. Recap of Modular Applications in LabVIEW&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=dxLAR7mMyA8&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=2 &amp;quot;2. Deriving the Actor Core in Actor Framework (The Command Pattern)&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=110rGrrJ3yc&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=3 &amp;quot;3. Creating Your First Actor - Hello World!&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=mqJqHGGTwbk&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=4 &amp;quot;4. User Interface Basics with Actor Core Override&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=2u-MukJ-Heg&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=5 &amp;quot;5. User Events in Actor Framework (+ Chat Window Project Intro)&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=e2z4YTvH5zU&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=6 &amp;quot;6. Actor System Design and Messaging&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=PYGo3bEEEPk&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=7 &amp;quot;7. How Actor Systems Stop and What Happens When an Error Occurs&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=p--8oUMsZDE&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=8 &amp;quot;8. User Interfaces in Actor Framework and User Event Scripting&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=eTaufgA7Lkc&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=9 &amp;quot;9. Abstract Messages in LabVIEW Actor Framework&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=AJUQQtoQSGA&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=10 &amp;quot;10. Top Five Actor Framework Overrides&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=uUopETUSAJw&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=11 &amp;quot;11. Using Subpanels with the LabVIEW Actor Framework&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=wnyG-59U6pw&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=12 &amp;quot;12. LabVIEW Maps (feat. Actor Framework)&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=oYUow2c-nCE&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=13 &amp;quot;Interface Messages in Actor Framework - Never create an Abstract Message again!&amp;quot;]&lt;br /&gt;
** [https://www.youtube.com/watch?v=48oaT4r90oE&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth&amp;amp;index=14 &amp;quot;Trying out Actor Framework in LabVIEW NXG 4.0...&amp;quot;]&lt;br /&gt;
*Actor Framework Basics by [https://www.linkedin.com/in/derek-trepanier/ Derek E. Trepanier], Moore Good Ideas&lt;br /&gt;
** [http://www.mooregoodideas.com/actor-framework/basics/AF-basics-part-1/ &amp;quot;Actor Framework Basics: Part 1 - the Basics&amp;quot;]&lt;br /&gt;
** [http://www.mooregoodideas.com/actor-framework/basics/AF-basics-part-2/ &amp;quot;Actor Framework Basics: Part 2 - the Actor&amp;quot;]&lt;br /&gt;
** [http://www.mooregoodideas.com/actor-framework/basics/AF-basics-part-3/ &amp;quot;Actor Framework Basics: Part 3 - Launching and Communicating&amp;quot;]&lt;br /&gt;
** [http://www.mooregoodideas.com/actor-framework/basics/AF-basics-part-4/ &amp;quot;Actor Framework Basics: Part 4 - Being Productive With Actors&amp;quot;]&lt;br /&gt;
** [http://www.mooregoodideas.com/actor-framework/basics/AF-basics-walkthrough/ &amp;quot;Actor Framework Basics: Walkthrough - Creating a Logger Actor&amp;quot;]&lt;br /&gt;
*[http://forums.ni.com/t5/Labvolution/LabVIEW-Actor-Framework-Basics/ba-p/3476654 &amp;quot;Actor Framework Basics&amp;quot;] by Greg Payne, Labvolution.&lt;br /&gt;
*[http://www.labviewcraftsmen.com/blog/fun-with-the-actor-framework-pubsub &amp;quot;Fun with the Actor Framework: PUB/SUB&amp;quot;] by [https://www.linkedin.com/in/jon-mcbee/ Jon McBee], LabVIEW Craftsmen Blog﻿&lt;br /&gt;
*[[Convert Queued Message Handler (QMH) to Actor Framework (AF)|&amp;quot;Actor Framework is not as hard as you think and here is why…&amp;quot;]] by Quentin &amp;quot;Q&amp;quot; Alldredge, Q Software Innovations, LLC&lt;br /&gt;
*[https://forums.ni.com/t5/Actor-Framework/ct-p/7001 NI Community].&lt;br /&gt;
*[https://forums.ni.com/t5/Actor-Framework-Documents/READ-THIS-FIRST-to-get-started-with-Actor-Framework/ta-p/3493762 NI Introduction].&lt;br /&gt;
*[https://learn.ni.com/center-of-excellence/resources/863/choosing-a-framework Comparison of AF and DQMH] by [[Samuel_Taggart_(LabVIEW_Champion)|Sam Taggart]], [https://automatedenver.com System Automation Solutions]&lt;br /&gt;
&lt;br /&gt;
[[Category:Actor Framework]]&lt;br /&gt;
[[Category:Frameworks]]&lt;/div&gt;</summary>
		<author><name>McQuillan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Actor_Framework&amp;diff=30290</id>
		<title>Actor Framework</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Actor_Framework&amp;diff=30290"/>
		<updated>2020-09-25T10:09:21Z</updated>

		<summary type="html">&lt;p&gt;McQuillan: Updated external link to youtube channel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Actor Framework&#039;&#039;&#039; is an Actor Model implementation that has been distributed with LabVIEW since [[LabVIEW 2012]].  &lt;br /&gt;
&lt;br /&gt;
* To learn more about the [https://en.wikipedia.org/wiki/Actor_model Actor Model click here for the Wikikpedia article].&lt;br /&gt;
* To learn about other community created Actor implementations see the&amp;quot;Other Actor Implementation Designs&amp;quot; section on the [[Actor Oriented Design Patterns]] page.&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
The &#039;&#039;&#039;Actor Framework&#039;&#039;&#039; introduces two main classes:&lt;br /&gt;
# The Actor class&lt;br /&gt;
# The Message class&lt;br /&gt;
&lt;br /&gt;
The basic Actor only does something only when it receives a message telling it to do something.  What it is supposed to do is tied to the message that was sent.  It can either execute something and be done until the next message, it can launch other Actors, or it can send more messages.  In the Actor Framework it is limited to sending messages to itself, to the Actor that launched it (if it is not the root Actor), or to Actors it launched.&lt;br /&gt;
&lt;br /&gt;
[[File:Actor Framework Communication.png|frame|center|Actor Framework message communication (from Jon McBee&#039;s article &amp;quot; FUN WITH THE ACTOR FRAMEWORK: PUB/SUB&amp;quot;)]]&lt;br /&gt;
&lt;br /&gt;
===The Message Class===&lt;br /&gt;
A basic Message Class contains only two methods:&lt;br /&gt;
# &#039;&#039;&#039;Do.vi&#039;&#039;&#039; - calls the method that contains the code that is the action for the Actor to execute&lt;br /&gt;
# &#039;&#039;&#039;Send [Name of Message].vi&#039;&#039;&#039; - requires the enqueuer (address) of the Actor to send the message to, which causes the message to be sent to that Actor&lt;br /&gt;
&lt;br /&gt;
===The Actor Class===&lt;br /&gt;
A basic Actor only needs to contain the methods that the messages call.  However, there are some optional overrides that can extend the functionality of the Actor.  They include:&lt;br /&gt;
* Actor Core.vi&lt;br /&gt;
* Handle Error.vi&lt;br /&gt;
* Handle Last Ack Core.vi&lt;br /&gt;
* Pre Launch Init.vi&lt;br /&gt;
* Receive Message.vi&lt;br /&gt;
* Stop Core.vi&lt;br /&gt;
* Substitute Actor.vi&lt;br /&gt;
&lt;br /&gt;
More to come on when and why one might want to override these methods.&lt;br /&gt;
&lt;br /&gt;
== External Links  ==&lt;br /&gt;
*[https://www.youtube.com/watch?v=2k3ZDwJolbA&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth &amp;quot;Complete LabVIEW Actor Framework Tutorial Series&amp;quot;] by [https://www.linkedin.com/in/thomasmcquillan/ Tom McQuillan], [https://www.youtube.com/tomslabviewadventure Tom&#039;s LabVIEW Adventure].&lt;br /&gt;
*Actor Framework Basics by [https://www.linkedin.com/in/derek-trepanier/ Derek E. Trepanier], Moore Good Ideas&lt;br /&gt;
** [http://www.mooregoodideas.com/actor-framework/basics/AF-basics-part-1/ &amp;quot;Actor Framework Basics: Part 1 - the Basics&amp;quot;]&lt;br /&gt;
** [http://www.mooregoodideas.com/actor-framework/basics/AF-basics-part-2/ &amp;quot;Actor Framework Basics: Part 2 - the Actor&amp;quot;]&lt;br /&gt;
** [http://www.mooregoodideas.com/actor-framework/basics/AF-basics-part-3/ &amp;quot;Actor Framework Basics: Part 3 - Launching and Communicating&amp;quot;]&lt;br /&gt;
** [http://www.mooregoodideas.com/actor-framework/basics/AF-basics-part-4/ &amp;quot;Actor Framework Basics: Part 4 - Being Productive With Actors&amp;quot;]&lt;br /&gt;
** [http://www.mooregoodideas.com/actor-framework/basics/AF-basics-walkthrough/ &amp;quot;Actor Framework Basics: Walkthrough - Creating a Logger Actor&amp;quot;]&lt;br /&gt;
*[http://forums.ni.com/t5/Labvolution/LabVIEW-Actor-Framework-Basics/ba-p/3476654 &amp;quot;Actor Framework Basics&amp;quot;] by Greg Payne, Labvolution.&lt;br /&gt;
*[http://www.labviewcraftsmen.com/blog/fun-with-the-actor-framework-pubsub &amp;quot;Fun with the Actor Framework: PUB/SUB&amp;quot;] by [https://www.linkedin.com/in/jon-mcbee/ Jon McBee], LabVIEW Craftsmen Blog﻿&lt;br /&gt;
*[[Convert Queued Message Handler (QMH) to Actor Framework (AF)|&amp;quot;Actor Framework is not as hard as you think and here is why…&amp;quot;]] by Quentin &amp;quot;Q&amp;quot; Alldredge, Q Software Innovations, LLC&lt;br /&gt;
*[https://forums.ni.com/t5/Actor-Framework/ct-p/7001 NI Community].&lt;br /&gt;
*[https://forums.ni.com/t5/Actor-Framework-Documents/READ-THIS-FIRST-to-get-started-with-Actor-Framework/ta-p/3493762 NI Introduction].&lt;br /&gt;
*[https://learn.ni.com/center-of-excellence/resources/863/choosing-a-framework Comparison of AF and DQMH] by [[Samuel_Taggart_(LabVIEW_Champion)|Sam Taggart]], [https://automatedenver.com System Automation Solutions]&lt;br /&gt;
&lt;br /&gt;
[[Category:Actor Framework]]&lt;br /&gt;
[[Category:Frameworks]]&lt;/div&gt;</summary>
		<author><name>McQuillan</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=Actor_Framework&amp;diff=30289</id>
		<title>Actor Framework</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=Actor_Framework&amp;diff=30289"/>
		<updated>2020-09-25T10:08:17Z</updated>

		<summary type="html">&lt;p&gt;McQuillan: Added Tom&amp;#039;s LabVIEW Adventure as an external link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Actor Framework&#039;&#039;&#039; is an Actor Model implementation that has been distributed with LabVIEW since [[LabVIEW 2012]].  &lt;br /&gt;
&lt;br /&gt;
* To learn more about the [https://en.wikipedia.org/wiki/Actor_model Actor Model click here for the Wikikpedia article].&lt;br /&gt;
* To learn about other community created Actor implementations see the&amp;quot;Other Actor Implementation Designs&amp;quot; section on the [[Actor Oriented Design Patterns]] page.&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
The &#039;&#039;&#039;Actor Framework&#039;&#039;&#039; introduces two main classes:&lt;br /&gt;
# The Actor class&lt;br /&gt;
# The Message class&lt;br /&gt;
&lt;br /&gt;
The basic Actor only does something only when it receives a message telling it to do something.  What it is supposed to do is tied to the message that was sent.  It can either execute something and be done until the next message, it can launch other Actors, or it can send more messages.  In the Actor Framework it is limited to sending messages to itself, to the Actor that launched it (if it is not the root Actor), or to Actors it launched.&lt;br /&gt;
&lt;br /&gt;
[[File:Actor Framework Communication.png|frame|center|Actor Framework message communication (from Jon McBee&#039;s article &amp;quot; FUN WITH THE ACTOR FRAMEWORK: PUB/SUB&amp;quot;)]]&lt;br /&gt;
&lt;br /&gt;
===The Message Class===&lt;br /&gt;
A basic Message Class contains only two methods:&lt;br /&gt;
# &#039;&#039;&#039;Do.vi&#039;&#039;&#039; - calls the method that contains the code that is the action for the Actor to execute&lt;br /&gt;
# &#039;&#039;&#039;Send [Name of Message].vi&#039;&#039;&#039; - requires the enqueuer (address) of the Actor to send the message to, which causes the message to be sent to that Actor&lt;br /&gt;
&lt;br /&gt;
===The Actor Class===&lt;br /&gt;
A basic Actor only needs to contain the methods that the messages call.  However, there are some optional overrides that can extend the functionality of the Actor.  They include:&lt;br /&gt;
* Actor Core.vi&lt;br /&gt;
* Handle Error.vi&lt;br /&gt;
* Handle Last Ack Core.vi&lt;br /&gt;
* Pre Launch Init.vi&lt;br /&gt;
* Receive Message.vi&lt;br /&gt;
* Stop Core.vi&lt;br /&gt;
* Substitute Actor.vi&lt;br /&gt;
&lt;br /&gt;
More to come on when and why one might want to override these methods.&lt;br /&gt;
&lt;br /&gt;
== External Links  ==&lt;br /&gt;
*[https://www.youtube.com/watch?v=2k3ZDwJolbA&amp;amp;list=PLmF-6jvwRvVNFzBjzh4bQDjFbv6lShcth &amp;quot;Complete LabVIEW Actor Framework Tutorial Series&amp;quot;] by [https://www.linkedin.com/in/thomasmcquillan/ Tom McQuillan], [youtube.com/tomslabviewadventure Tom&#039;s LabVIEW Adventure].&lt;br /&gt;
*Actor Framework Basics by [https://www.linkedin.com/in/derek-trepanier/ Derek E. Trepanier], Moore Good Ideas&lt;br /&gt;
** [http://www.mooregoodideas.com/actor-framework/basics/AF-basics-part-1/ &amp;quot;Actor Framework Basics: Part 1 - the Basics&amp;quot;]&lt;br /&gt;
** [http://www.mooregoodideas.com/actor-framework/basics/AF-basics-part-2/ &amp;quot;Actor Framework Basics: Part 2 - the Actor&amp;quot;]&lt;br /&gt;
** [http://www.mooregoodideas.com/actor-framework/basics/AF-basics-part-3/ &amp;quot;Actor Framework Basics: Part 3 - Launching and Communicating&amp;quot;]&lt;br /&gt;
** [http://www.mooregoodideas.com/actor-framework/basics/AF-basics-part-4/ &amp;quot;Actor Framework Basics: Part 4 - Being Productive With Actors&amp;quot;]&lt;br /&gt;
** [http://www.mooregoodideas.com/actor-framework/basics/AF-basics-walkthrough/ &amp;quot;Actor Framework Basics: Walkthrough - Creating a Logger Actor&amp;quot;]&lt;br /&gt;
*[http://forums.ni.com/t5/Labvolution/LabVIEW-Actor-Framework-Basics/ba-p/3476654 &amp;quot;Actor Framework Basics&amp;quot;] by Greg Payne, Labvolution.&lt;br /&gt;
*[http://www.labviewcraftsmen.com/blog/fun-with-the-actor-framework-pubsub &amp;quot;Fun with the Actor Framework: PUB/SUB&amp;quot;] by [https://www.linkedin.com/in/jon-mcbee/ Jon McBee], LabVIEW Craftsmen Blog﻿&lt;br /&gt;
*[[Convert Queued Message Handler (QMH) to Actor Framework (AF)|&amp;quot;Actor Framework is not as hard as you think and here is why…&amp;quot;]] by Quentin &amp;quot;Q&amp;quot; Alldredge, Q Software Innovations, LLC&lt;br /&gt;
*[https://forums.ni.com/t5/Actor-Framework/ct-p/7001 NI Community].&lt;br /&gt;
*[https://forums.ni.com/t5/Actor-Framework-Documents/READ-THIS-FIRST-to-get-started-with-Actor-Framework/ta-p/3493762 NI Introduction].&lt;br /&gt;
*[https://learn.ni.com/center-of-excellence/resources/863/choosing-a-framework Comparison of AF and DQMH] by [[Samuel_Taggart_(LabVIEW_Champion)|Sam Taggart]], [https://automatedenver.com System Automation Solutions]&lt;br /&gt;
&lt;br /&gt;
[[Category:Actor Framework]]&lt;br /&gt;
[[Category:Frameworks]]&lt;/div&gt;</summary>
		<author><name>McQuillan</name></author>
	</entry>
</feed>