<?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=Sergiovelderrain</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=Sergiovelderrain"/>
	<link rel="alternate" type="text/html" href="https://labviewwiki.org/wiki/Special:Contributions/Sergiovelderrain"/>
	<updated>2026-04-23T18:30:20Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=LabVIEW_Learning_Materials&amp;diff=34684</id>
		<title>LabVIEW Learning Materials</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=LabVIEW_Learning_Materials&amp;diff=34684"/>
		<updated>2024-09-26T20:55:46Z</updated>

		<summary type="html">&lt;p&gt;Sergiovelderrain: Removed links that were broken. Added new links that Fabiola shared with me.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{see also|category:LabVIEW fundamentals}}&lt;br /&gt;
&lt;br /&gt;
This page provides a recommended set of resources for LabVIEW programmers. The links are a collection of white papers, YouTube videos and formal learning content. &lt;br /&gt;
&lt;br /&gt;
=LabVIEW Programming Basics =&lt;br /&gt;
&lt;br /&gt;
==Introduction to LabVIEW Environment==&lt;br /&gt;
* [https://www.youtube.com/watch?v=ZHNlKyYzrPE&amp;amp;list=PLB968815D7BB78F9C LabVIEW Overview] &lt;br /&gt;
* [https://www.youtube.com/watch?v=OBcwsJb01F8 Part 1: Creating your first VI]&lt;br /&gt;
* [https://www.youtube.com/watch?v=-8ONxoz2D3k Part 2: Introduction to Loops and Structures]&lt;br /&gt;
* [https://www.youtube.com/watch?v=-PFHjl5ktCo Part 3: Basic Analysis of Data]&lt;br /&gt;
* [https://www.youtube.com/watch?v=3hvlVtHf85Q Part 4: Basic Hardware Connectivity]&lt;br /&gt;
&lt;br /&gt;
==Data Types &amp;amp; Structures==&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/06/labview-data-types.html LabVIEW Data Types Overview]&lt;br /&gt;
* [https://www.youtube.com/watch?v=ieC4MBxPVtM Arrays and Clusters Tutorial]&lt;br /&gt;
* [https://www.youtube.com/watch?v=I7FPlLzc7D0 Overview of For Loops]&lt;br /&gt;
&lt;br /&gt;
==User Interface Design==&lt;br /&gt;
* [https://www.youtube.com/watch?v=eGlvOiqYVxg Using event structures to capture user interactions]&lt;br /&gt;
* [https://www.youtube.com/watch?v=jWWJKUpoois Introduction to Panes for UI Organization]&lt;br /&gt;
* [https://www.youtube.com/watch?v=nCvMLB_kH4Q Programmatically changing UI controls using property nodes]&lt;br /&gt;
* [https://www.youtube.com/watch?v=rBM_kTpUfDk Creating resizeable user interfaces]&lt;br /&gt;
* [https://www.youtube.com/watch?v=qvhGH0TlCqs&amp;amp;pp=ygUXY3VzdG9tIGNvbnRyb2xzIGxhYnZpZXc%3D Creating Custom Controls]&lt;br /&gt;
* [https://www.youtube.com/watch?v=0-B7p061la4 Creating Professional User Interfaces]&lt;br /&gt;
&lt;br /&gt;
==Asynchronous Messaging==&lt;br /&gt;
* [https://www.youtube.com/watch?v=8DFf-9kcRcs Introduction to queues for sending messages between processes]&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/06/using-queues-and-notifiers-in-labview.html Queues, Notifiers, and Semaphores]&lt;br /&gt;
* [https://www.youtube.com/watch?v=MevQp9A9Xqs Queues and Notifiers in LabVIEW]&lt;br /&gt;
* [https://www.youtube.com/watch?v=8DFf-9kcRcs Overview of Queues]&lt;br /&gt;
* [https://www.youtube.com/watch?v=9og3QbfgBu0 Tutorial on Using Notifiers]&lt;br /&gt;
&lt;br /&gt;
==Advanced Execution Control==&lt;br /&gt;
*Dynamically loading VIs&lt;br /&gt;
*[https://www.youtube.com/watch?v=dG8MaqO9c2A Launching clones of a VI]&lt;br /&gt;
*Dynamically loading classes&lt;br /&gt;
*[https://www.youtube.com/watch?v=tfZIJejBnXg Launching a dynamically dispatched VI programmatically]&lt;br /&gt;
&lt;br /&gt;
==Object-Oriented Programming (OOP) in LabVIEW==&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/06/introduction-to-object-oriented-programming-in-labview.html OOP Concepts in LabVIEW]&lt;br /&gt;
* [https://www.youtube.com/watch?v=w0x-EBe8G7A Object-Oriented Programming in LabVIEW Tutorial]&lt;br /&gt;
&lt;br /&gt;
==Debugging Tools==&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/06/debugging-labview-applications.html Debugging Tools in LabVIEW]&lt;br /&gt;
* [https://www.youtube.com/watch?v=tMtfXSqFPiY Debugging Techniques in LabVIEW]&lt;br /&gt;
&lt;br /&gt;
==Build and Deployment==&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/06/building-executables-and-installers-in-labview.html Building Executables and Installers]&lt;br /&gt;
* [https://www.youtube.com/watch?v=ZFYhKDUOnus Deploying LabVIEW Applications]&lt;br /&gt;
&lt;br /&gt;
=LabVIEW Software Patterns=&lt;br /&gt;
&lt;br /&gt;
==State Machines==&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/06/state-machines.html NI White Paper on State Machines]&lt;br /&gt;
* [https://www.youtube.com/watch?v=NHtWZohvR7k State Machines Tutorial]&lt;br /&gt;
&lt;br /&gt;
==Queued Message Handlers (QMH)==&lt;br /&gt;
* [https://www.youtube.com/watch?v=-xXJt7yUEis Queued State Machine Overview]&lt;br /&gt;
* [https://learn.ni.com/center-of-excellence/queued-message-handler Queued Message Handler Architecture Overview]&lt;br /&gt;
* [https://www.youtube.com/watch?v=E8onRrQjR9E QMH Video Tutorial]&lt;br /&gt;
&lt;br /&gt;
==Producer/Consumer Architecture==&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/06/producer-consumer-architecture.html Producer/Consumer Architecture White Paper]&lt;br /&gt;
* [https://www.youtube.com/watch?v=X4bQDXiYs1E Producer/Consumer Architecture Tutorial]&lt;br /&gt;
&lt;br /&gt;
==Event-Driven Programming==&lt;br /&gt;
* [https://www.ni.com/en-us/support/documentation/supplemental/06/event-driven-programming-in-labview.html Event Structures in LabVIEW]&lt;br /&gt;
* [https://www.youtube.com/watch?v=oZhA5qVJfb8 Event-Driven Programming Tutorial]&lt;br /&gt;
&lt;br /&gt;
=Tooling and Development Processes=&lt;br /&gt;
==Configuration Management===&lt;br /&gt;
* [https://www.ni.com/en-us/support/documentation/supplemental/18/configuring-git-for-labview.html Setting up Git for LabVIEW]&lt;br /&gt;
* [https://www.youtube.com/watch?v=CUhBTYiUSyI Version Control in LabVIEW Tutorial]&lt;br /&gt;
&lt;br /&gt;
==Static Code Analysis==&lt;br /&gt;
* [https://www.ni.com/en-us/support/documentation/supplemental/06/vi-analyzer-in-labview.html VI Analyzer Overview]&lt;br /&gt;
* [https://www.youtube.com/watch?v=WeHzr7RJJfs VI Analyzer in Action]&lt;br /&gt;
&lt;br /&gt;
==Dynamic Code Analysis and Performance Benchmarking==&lt;br /&gt;
&lt;br /&gt;
==Unit Testing==&lt;br /&gt;
* [https://www.jki.net/vi-tester JKI VI Tester for Unit Testing]&lt;br /&gt;
* [https://www.youtube.com/watch?v=XU9UJmHeH1U Unit Testing in LabVIEW with Caraya]&lt;br /&gt;
&lt;br /&gt;
=Software Design Patterns and Best Practices=&lt;br /&gt;
&lt;br /&gt;
==Modular Programming and Code Reuse==&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/06/reusing-code.html NI Guide to Reusing Code]&lt;br /&gt;
* [https://www.youtube.com/watch?v=KiS5uCrJ9D8 Modular Programming in LabVIEW]&lt;br /&gt;
&lt;br /&gt;
==Error Handling==&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/06/error-handling-in-labview.html Best Practices for Error Handling]&lt;br /&gt;
* [https://www.youtube.com/watch?v=5PzbsJfzRHY Error Handling Techniques]&lt;br /&gt;
&lt;br /&gt;
=Software Frameworks=&lt;br /&gt;
&lt;br /&gt;
==DQMH==&lt;br /&gt;
&lt;br /&gt;
* [https://dqmh.org/ Delacor’s DQMH Toolkit Overview] This is the official page for the DQMH toolkit, which includes a summary of features and download links.&lt;br /&gt;
  &lt;br /&gt;
* [https://documentation.dqmh.org/ DQMH User Guide] The official DQMH user guide with detailed explanations of how to use the framework.&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.dqmh.org/ DQMH Wiki] Your one-stop shop for everything you ever wanted to know about DQMH.&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/delacorllc DQMH YouTube channel]&lt;br /&gt;
&lt;br /&gt;
* [https://forums.ni.com/t5/DQMH-Consortium-Toolkits/bd-p/7120 NI&#039;s DQMH Community Page]NI community hub dedicated to discussions around the DQMH framework, where developers share best practices, examples, and troubleshooting tips.&lt;br /&gt;
&lt;br /&gt;
* [https://forums.ni.com/t5/Community-Documents/Introduction-to-DQMH/ta-p/4230225 Introduction to DQMH by Darren Nattinger]A quick introduction to DQMH for beginners, focusing on the key features and benefits of using this framework.&lt;br /&gt;
  &lt;br /&gt;
* [https://www.youtube.com/watch?v=IdqTCubXuPE How to Use the DQMH Module Template (YouTube)]A step-by-step guide for setting up and using the DQMH module template in your LabVIEW projects.&lt;br /&gt;
  &lt;br /&gt;
===DQMH Use Cases and Advanced Topics===&lt;br /&gt;
&lt;br /&gt;
* [https://dqmh.org/simplifying-your-hardware-abstraction-layer-hal-with-lvoop-and-dqmh-part-1/ Simplifying your Hardware Abstraction Layer (HAL)]&lt;br /&gt;
&lt;br /&gt;
* Advanced DQMH Techniques (YouTube) - This video explores advanced features like nested modules, scripting tools, and best practices for event handling within DQMH.&lt;br /&gt;
  &lt;br /&gt;
* Developing Modular Applications Using DQMH (NI YouTube Channel)A deep dive into how to build modular and scalable applications using DQMH. It covers real-world use cases and best practices.&lt;br /&gt;
&lt;br /&gt;
* Integrating DQMH with Other Frameworks (YouTube) - A tutorial that shows how to integrate DQMH with other architectures like Actor Framework or Command-Response patterns.&lt;br /&gt;
&lt;br /&gt;
===Community Contributions===&lt;br /&gt;
&lt;br /&gt;
* DQMH Best Practices on GitHub - This repository contains best practices for using DQMH, contributed by the community. You’ll find code examples, comments, and strategies for building robust systems.&lt;br /&gt;
  &lt;br /&gt;
* [https://forums.ni.com/t5/DQMH-Consortium-Toolkits/bd-p/7120 NI&#039;s DQMH Community Page DQMH Forum (LabVIEW Community)]A place to ask questions, find tutorials, and get tips from experienced DQMH users.&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PLmF-6jvwRvVOpNdPcRzskvnGbW79ug6AZ DQMH Tutorial YouTube] Presented by Tom McQuillan on his channel &amp;quot;Tom&#039;s LabVIEW Adventure&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Actor Framework==&lt;br /&gt;
===Official  Resources===&lt;br /&gt;
&lt;br /&gt;
* [https://www.ni.com/en-us/support/documentation/supplemental/12/actor-framework.html NI Actor Framework Overview]A high-level introduction to the Actor Framework, its structure, and use cases.&lt;br /&gt;
&lt;br /&gt;
* [https://zone.ni.com/reference/en-XX/help/371361R-01/lvframework/af_actor_framework/ NI Actor Framework Documentation]Comprehensive documentation that walks through the details of the Actor Framework in LabVIEW, including examples and best practices.&lt;br /&gt;
&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/12/using-the-actor-framework-in-labview.html NI White Paper: Using Actor Framework for Modular, Scalable, and Maintainable Applications]A detailed white paper on how to use the Actor Framework to create robust and scalable LabVIEW applications.&lt;br /&gt;
&lt;br /&gt;
===Video Tutorials===&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=2H8T6ud9rQw Introduction to Actor Framework (YouTube)]A beginner-friendly video introducing the key concepts and structure of the Actor Framework in LabVIEW.&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=YlSzBqipGY4 Actor Framework Basics (YouTube)]This video walks through the basic concepts, including actors, messages, and actors&#039; lifetimes.&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=RN-FLhmEJ2k Creating and Running Actors (YouTube)]An in-depth look at how to create and run actors using the LabVIEW Actor Framework.&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=zp6npT6gqTI Advanced Actor Framework Patterns (YouTube)]A video for more experienced developers, covering advanced patterns and techniques in Actor Framework.&lt;br /&gt;
&lt;br /&gt;
===Advanced Topics===&lt;br /&gt;
&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/15/actor-framework-in-labview--architecture-and-benefits.html NI White Paper: Actor Framework in LabVIEW: Architecture and Benefits]A white paper exploring the architecture of the Actor Framework, with use cases and scenarios for applying it in real-world projects.&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=f-WtzcZGm3A LabVIEW Actor Framework: Message Handling (YouTube)]A detailed video on how to create, send, and handle messages between actors in the Actor Framework.&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=UrMe2GkOYXE NIWeek Presentation: Advanced Actor Framework Design (YouTube)]A presentation from NIWeek discussing advanced Actor Framework design patterns, modularity, and messaging techniques.&lt;br /&gt;
&lt;br /&gt;
===Community Contributions and Tutorial===&lt;br /&gt;
&lt;br /&gt;
* [https://zone.ni.com/reference/en-XX/help/371361R-01/lvframework/af_examples/ Actor Framework Examples in LabVIEW]A set of example projects provided by NI to help developers get hands-on experience with the Actor Framework.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/LabVIEW-Tools/Actor-Framework-Best-Practices GitHub: Actor Framework Best Practices]A community-driven repository showcasing best practices, examples, and tips for building scalable applications with the Actor Framework.&lt;br /&gt;
&lt;br /&gt;
* [https://forums.ni.com/t5/Actor-Framework/bd-p/actors Actor Framework Forum (LabVIEW Community)]A dedicated forum where LabVIEW developers discuss the Actor Framework, share use cases, and troubleshoot challenges.&lt;br /&gt;
&lt;br /&gt;
==Workers==&lt;br /&gt;
==VIPER==&lt;br /&gt;
&lt;br /&gt;
=Hardware and Instrumentation Connectivity=&lt;br /&gt;
&lt;br /&gt;
==DAQmx Basics==&lt;br /&gt;
* [https://www.ni.com/en-us/support/documentation/supplemental/06/ni-daqmx-driver.html DAQmx Fundamentals Guide]&lt;br /&gt;
* [https://www.youtube.com/watch?v=7kWekJAM2Ag DAQmx Basics Video Tutorial]&lt;br /&gt;
&lt;br /&gt;
==Instrument Control==&lt;br /&gt;
* [https://www.ni.com/en-us/support/documentation/supplemental/06/instrument-control.html LabVIEW Instrument Control Overview]&lt;br /&gt;
* [https://www.youtube.com/watch?v=kZQsb8xT6bI Communicating with Instruments in LabVIEW]&lt;br /&gt;
&lt;br /&gt;
==Determinism and Real-Time Execution==&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/06/using-labview-real-time.html Introduction to LabVIEW Real-Time]&lt;br /&gt;
* [https://www.youtube.com/watch?v=OjOEwVpRrmY Real-Time Systems Tutorial]&lt;br /&gt;
&lt;br /&gt;
=Community and Best Practices=&lt;br /&gt;
&lt;br /&gt;
==LabVIEW Style Guidelines==&lt;br /&gt;
* [https://labviewwiki.org/wiki/Style_Guide LabVIEW Style Guideline]&lt;br /&gt;
* [https://forums.ni.com/ NI Forums]&lt;br /&gt;
&lt;br /&gt;
==LabVIEW Community and User Groups==&lt;br /&gt;
* [https://www.ni.com/en-us/events.html LabVIEW User Groups and Community Events]&lt;br /&gt;
* [https://www.gcentral.org/ GCentral: Open-Source Community for LabVIEW]&lt;br /&gt;
&lt;br /&gt;
=Connectivity and Report Generation=&lt;br /&gt;
&lt;br /&gt;
==Database Connectivity==&lt;br /&gt;
* [https://www.ni.com/en-us/support/documentation/supplemental/06/labview-database-connectivity-toolkit.html Using LabVIEW with Databases]&lt;br /&gt;
* [https://www.youtube.com/watch?v=ARJTHbkxI-8 Database Connectivity in LabVIEW]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Formal Training=&lt;br /&gt;
Formal training on LabVIEW is available from several providers. Offerings differ based on prior LabVIEW experience level and the preferred delivery method. Common delivery methods include: &lt;br /&gt;
&lt;br /&gt;
* In-person instructor-led&lt;br /&gt;
* Remote instructor-led (usually through a web conference)&lt;br /&gt;
* Online self-paced (usually through a combination of pre-recorded lecture videos and exercise solution videos)&lt;br /&gt;
* Self-paced with a manual  &lt;br /&gt;
&lt;br /&gt;
National Instruments has a [http://sine.ni.com/tacs/app/fp/p/ap/ov/pg/1/sn/n8:28/ suite of courses] ranging from beginner to advanced as well as several specialty topics such as LabVIEW Real-Time and LabVIEW Connectivity. National Instruments offers all common delivery methods mentioned above except online self-paced. Other LabVIEW training providers such as [http://www.sixclear.com/ Sixclear] provide this online self-paced environment. Sixclear&#039;s same curriculum is also delivered through in-person instructor-led training. [http://www.durability.com/Divisions/Automation/Training/LabVIEW101.asp Durability] is another provider of in-person instructor-led training. &lt;br /&gt;
&lt;br /&gt;
Recommended training courses for those with no knowledge of LabVIEW are the [http://sine.ni.com/tacs/app/fp/p/ap/ov/pg/1/sn/n8:28/ National Instruments Core 1 and Core 2] courses, the [http://www.sixclear.com/labviewtraining/ Sixclear LabVIEW Fundamentals I and II] courses, or the [http://www.durability.com/Divisions/Automation/Training/LabVIEW101.asp Durability LabVIEW 101 and 102] courses. All sets of courses are geared to a user with little to no LabVIEW experience and teach the proficiencies outlined by the [http://sine.ni.com/nips/cds/view/p/lang/en/nid/14438 Certified LabVIEW Associate Developer (CLAD)] exam as well as simple DAQ and instrument control.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Common arguments justifying formal training revolve around the idea that the sum cost of developers&#039; time is greater than the cost of training because: &lt;br /&gt;
*  the LabVIEW graphical programming paradigm is appreciably different than traditional text-based programming  &lt;br /&gt;
*  costly mistakes commonly occur when moving from simple LabVIEW applications to more complex applications, especially when developing parallel loop applications&lt;br /&gt;
&lt;br /&gt;
===Alternatives to Formal Training===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
National Instruments maintains a list of [http://www.ni.com/reference/books/labview.htm LabVIEW reference books] as an alternative to formal training.&lt;br /&gt;
&lt;br /&gt;
Another alternative to formal training are half-day &amp;quot;LabVIEW Hands-On&amp;quot; workshops offered by National Instruments. Recommended follow-ups are the &amp;quot;G Programmer&#039;s reference manual&amp;quot; and the LabVIEW &amp;quot;User Manual&amp;quot; found in the LabVIEW documentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
Some online tutorials:&lt;br /&gt;
&lt;br /&gt;
*[http://blog.sixclear.com/ VI High LabVIEW Video Tutorial Blog by Sixclear]&lt;br /&gt;
*[http://www.ni.com/labview/skills-guide/en/ Some NI courses, including videos] (requires an active support contract with NI)&lt;br /&gt;
*[http://vishots.com/category/labview-tutorials/ VI Shots LabVIEW Video Tutorials]&lt;br /&gt;
*NI Tutorials (including videos and exercises) - http://zone.ni.com/devzone/cda/tut/p/id/7466&lt;br /&gt;
*More links at NI&#039;s site - http://www.ni.com/training/labview.htm&lt;br /&gt;
*Software Engineering with LabVIEW (generally requires some LabVIEW knowledge) - http://zone.ni.com/devzone/cda/tut/p/id/7117&lt;br /&gt;
*Connexions Tutorial (written by NI) - http://cnx.org/content/col10241/latest/&lt;br /&gt;
*LabVIEW Tutorials - http://www.upscale.utoronto.ca/GeneralInterest/LabView.html&lt;br /&gt;
*Videos of NI&#039;s LabVIEW Core 3 course (8 full lessons) - http://www.youtube.com/playlist?list=PL3E1DD4C18D357331&lt;br /&gt;
*Tutorial videos (some are free) - http://www.fafiles.com/&lt;br /&gt;
*Learning LabVIEW - http://learnlabview.blogspot.com/&lt;br /&gt;
*LabVIEW Tutorial Basics (BEKA, German) - http://www.fu-net.de/lv/lv01/&lt;br /&gt;
*LabVIEW Tutorial Advanced Techniques (BEKA, German) - http://www.fu-net.de/lv/lv02/&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW fundamentals]]&lt;br /&gt;
[[Category:Getting started]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Introduction]]&lt;/div&gt;</summary>
		<author><name>Sergiovelderrain</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=LabVIEW_Learning_Materials&amp;diff=34660</id>
		<title>LabVIEW Learning Materials</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=LabVIEW_Learning_Materials&amp;diff=34660"/>
		<updated>2024-09-25T18:04:38Z</updated>

		<summary type="html">&lt;p&gt;Sergiovelderrain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{see also|category:LabVIEW fundamentals}}&lt;br /&gt;
&lt;br /&gt;
This page provides a recommended set of resources for LabVIEW programmers. The links are a collection of white papers, YouTube videos and formal learning content. &lt;br /&gt;
&lt;br /&gt;
=LabVIEW Programming Basics =&lt;br /&gt;
&lt;br /&gt;
==Introduction to LabVIEW Environment==&lt;br /&gt;
* [https://www.youtube.com/watch?v=ZHNlKyYzrPE&amp;amp;list=PLB968815D7BB78F9C LabVIEW Overview] &lt;br /&gt;
* [https://www.youtube.com/watch?v=OBcwsJb01F8 Part 1: Creating your first VI]&lt;br /&gt;
* [https://www.youtube.com/watch?v=-8ONxoz2D3k Part 2: Introduction to Loops and Structures]&lt;br /&gt;
* [https://www.youtube.com/watch?v=-PFHjl5ktCo Part 3: Basic Analysis of Data]&lt;br /&gt;
* [https://www.youtube.com/watch?v=3hvlVtHf85Q Part 4: Basic Hardware Connectivity]&lt;br /&gt;
&lt;br /&gt;
==Data Types &amp;amp; Structures==&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/06/labview-data-types.html LabVIEW Data Types Overview]&lt;br /&gt;
* [https://www.youtube.com/watch?v=ieC4MBxPVtM Arrays and Clusters Tutorial]&lt;br /&gt;
* [https://www.youtube.com/watch?v=I7FPlLzc7D0 Overview of For Loops]&lt;br /&gt;
&lt;br /&gt;
==User Interface Design==&lt;br /&gt;
* [https://www.youtube.com/watch?v=eGlvOiqYVxg Using event structures to capture user interactions]&lt;br /&gt;
* [https://www.youtube.com/watch?v=jWWJKUpoois Introduction to Panes for UI Organization]&lt;br /&gt;
* [https://www.youtube.com/watch?v=nCvMLB_kH4Q Programmatically changing UI controls using property nodes]&lt;br /&gt;
* [https://www.youtube.com/watch?v=rBM_kTpUfDk Creating resizeable user interfaces]&lt;br /&gt;
* [https://www.youtube.com/watch?v=qvhGH0TlCqs&amp;amp;pp=ygUXY3VzdG9tIGNvbnRyb2xzIGxhYnZpZXc%3D Creating Custom Controls]&lt;br /&gt;
* [https://www.youtube.com/watch?v=0-B7p061la4 Creating Professional User Interfaces]&lt;br /&gt;
&lt;br /&gt;
==Asynchronous Messaging==&lt;br /&gt;
* [https://www.youtube.com/watch?v=8DFf-9kcRcs Introduction to queues for sending messages between processes]&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/06/using-queues-and-notifiers-in-labview.html Queues, Notifiers, and Semaphores]&lt;br /&gt;
* [https://www.youtube.com/watch?v=MevQp9A9Xqs Queues and Notifiers in LabVIEW]&lt;br /&gt;
* [https://www.youtube.com/watch?v=8DFf-9kcRcs Overview of Queues]&lt;br /&gt;
* [https://www.youtube.com/watch?v=9og3QbfgBu0 Tutorial on Using Notifiers]&lt;br /&gt;
&lt;br /&gt;
==Advanced Execution Control==&lt;br /&gt;
*Dynamically loading VIs&lt;br /&gt;
*[https://www.youtube.com/watch?v=dG8MaqO9c2A Launching clones of a VI]&lt;br /&gt;
*Dynamically loading classes&lt;br /&gt;
*[https://www.youtube.com/watch?v=tfZIJejBnXg Launching a dynamically dispatched VI programmatically]&lt;br /&gt;
&lt;br /&gt;
==Object-Oriented Programming (OOP) in LabVIEW==&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/06/introduction-to-object-oriented-programming-in-labview.html OOP Concepts in LabVIEW]&lt;br /&gt;
* [https://www.youtube.com/watch?v=w0x-EBe8G7A Object-Oriented Programming in LabVIEW Tutorial]&lt;br /&gt;
&lt;br /&gt;
==Debugging Tools==&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/06/debugging-labview-applications.html Debugging Tools in LabVIEW]&lt;br /&gt;
* [https://www.youtube.com/watch?v=tMtfXSqFPiY Debugging Techniques in LabVIEW]&lt;br /&gt;
&lt;br /&gt;
==Build and Deployment==&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/06/building-executables-and-installers-in-labview.html Building Executables and Installers]&lt;br /&gt;
* [https://www.youtube.com/watch?v=ZFYhKDUOnus Deploying LabVIEW Applications]&lt;br /&gt;
&lt;br /&gt;
=LabVIEW Software Patterns=&lt;br /&gt;
&lt;br /&gt;
==State Machines==&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/06/state-machines.html NI White Paper on State Machines]&lt;br /&gt;
* [https://www.youtube.com/watch?v=NHtWZohvR7k State Machines Tutorial]&lt;br /&gt;
&lt;br /&gt;
==Queued Message Handlers (QMH)==&lt;br /&gt;
* [https://www.youtube.com/watch?v=-xXJt7yUEis Queued State Machine Overview]&lt;br /&gt;
* [https://learn.ni.com/center-of-excellence/queued-message-handler Queued Message Handler Architecture Overview]&lt;br /&gt;
* [https://www.youtube.com/watch?v=E8onRrQjR9E QMH Video Tutorial]&lt;br /&gt;
&lt;br /&gt;
==Producer/Consumer Architecture==&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/06/producer-consumer-architecture.html Producer/Consumer Architecture White Paper]&lt;br /&gt;
* [https://www.youtube.com/watch?v=X4bQDXiYs1E Producer/Consumer Architecture Tutorial]&lt;br /&gt;
&lt;br /&gt;
==Event-Driven Programming==&lt;br /&gt;
* [https://www.ni.com/en-us/support/documentation/supplemental/06/event-driven-programming-in-labview.html Event Structures in LabVIEW]&lt;br /&gt;
* [https://www.youtube.com/watch?v=oZhA5qVJfb8 Event-Driven Programming Tutorial]&lt;br /&gt;
&lt;br /&gt;
=Tooling and Development Processes=&lt;br /&gt;
==Configuration Management===&lt;br /&gt;
* [https://www.ni.com/en-us/support/documentation/supplemental/18/configuring-git-for-labview.html Setting up Git for LabVIEW]&lt;br /&gt;
* [https://www.youtube.com/watch?v=CUhBTYiUSyI Version Control in LabVIEW Tutorial]&lt;br /&gt;
&lt;br /&gt;
==Static Code Analysis==&lt;br /&gt;
* [https://www.ni.com/en-us/support/documentation/supplemental/06/vi-analyzer-in-labview.html VI Analyzer Overview]&lt;br /&gt;
* [https://www.youtube.com/watch?v=WeHzr7RJJfs VI Analyzer in Action]&lt;br /&gt;
&lt;br /&gt;
==Dynamic Code Analysis and Performance Benchmarking==&lt;br /&gt;
&lt;br /&gt;
==Unit Testing==&lt;br /&gt;
* [https://www.jki.net/vi-tester JKI VI Tester for Unit Testing]&lt;br /&gt;
* [https://www.youtube.com/watch?v=XU9UJmHeH1U Unit Testing in LabVIEW with Caraya]&lt;br /&gt;
&lt;br /&gt;
=Software Design Patterns and Best Practices=&lt;br /&gt;
&lt;br /&gt;
==Modular Programming and Code Reuse==&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/06/reusing-code.html NI Guide to Reusing Code]&lt;br /&gt;
* [https://www.youtube.com/watch?v=KiS5uCrJ9D8 Modular Programming in LabVIEW]&lt;br /&gt;
&lt;br /&gt;
==Error Handling==&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/06/error-handling-in-labview.html Best Practices for Error Handling]&lt;br /&gt;
* [https://www.youtube.com/watch?v=5PzbsJfzRHY Error Handling Techniques]&lt;br /&gt;
&lt;br /&gt;
=Software Frameworks=&lt;br /&gt;
&lt;br /&gt;
==DQMH==&lt;br /&gt;
&lt;br /&gt;
* [https://delacor.com/dqmh/ Delacor’s DQMH Toolkit Overview]This is the official page for the DQMH toolkit, which includes a summary of features and download links.&lt;br /&gt;
  &lt;br /&gt;
* [https://delacor.com/dqmh-documentation/ DQMH User Guide]The official DQMH user guide with detailed explanations of how to use the framework.&lt;br /&gt;
&lt;br /&gt;
* [https://forums.ni.com/t5/Delacor-Queued-Message-Handler-DQMH/ct-p/7351 NI&#039;s DQMH Community Page]NI community hub dedicated to discussions around the DQMH framework, where developers share best practices, examples, and troubleshooting tips.&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=aGUkhzv4bnc Introduction to DQMH (YouTube by Delacor)]A quick introduction to DQMH for beginners, focusing on the key features and benefits of using this framework.&lt;br /&gt;
  &lt;br /&gt;
* [https://www.youtube.com/watch?v=NTMsFz2MC1Q How to Use the DQMH Module Template (YouTube)]A step-by-step guide for setting up and using the DQMH module template in your LabVIEW projects.&lt;br /&gt;
  &lt;br /&gt;
* [https://www.youtube.com/watch?v=lpXcAhoNbRU DQMH Core Concepts and Demonstration (YouTube)]In-depth coverage of core DQMH concepts like requests, broadcasting events, and using helper loops.&lt;br /&gt;
&lt;br /&gt;
===DQMH Use Cases and Advanced Topics===&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=_nnnP5WJQyY Advanced DQMH Techniques (YouTube)]This video explores advanced features like nested modules, scripting tools, and best practices for event handling within DQMH.&lt;br /&gt;
  &lt;br /&gt;
* [https://www.youtube.com/watch?v=VUXIXfoBHEM Developing Modular Applications Using DQMH (NI YouTube Channel)]A deep dive into how to build modular and scalable applications using DQMH. It covers real-world use cases and best practices.&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=GKlTeDWwkgk Integrating DQMH with Other Frameworks (YouTube)]A tutorial that shows how to integrate DQMH with other architectures like Actor Framework or Command-Response patterns.&lt;br /&gt;
&lt;br /&gt;
===Community Contributions===&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/LabVIEW-Tools/DQMH-Best-Practices DQMH Best Practices on GitHub]This repository contains best practices for using DQMH, contributed by the community. You’ll find code examples, comments, and strategies for building robust systems.&lt;br /&gt;
  &lt;br /&gt;
* [https://forums.ni.com/t5/Delacor-Queued-Message-Handler-DQMH/bd-p/7351 DQMH Forum (LabVIEW Community)]A place to ask questions, find tutorials, and get tips from experienced DQMH users.&lt;br /&gt;
&lt;br /&gt;
==Actor Framework==&lt;br /&gt;
===Official  Resources===&lt;br /&gt;
&lt;br /&gt;
* [https://www.ni.com/en-us/support/documentation/supplemental/12/actor-framework.html NI Actor Framework Overview]A high-level introduction to the Actor Framework, its structure, and use cases.&lt;br /&gt;
&lt;br /&gt;
* [https://zone.ni.com/reference/en-XX/help/371361R-01/lvframework/af_actor_framework/ NI Actor Framework Documentation]Comprehensive documentation that walks through the details of the Actor Framework in LabVIEW, including examples and best practices.&lt;br /&gt;
&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/12/using-the-actor-framework-in-labview.html NI White Paper: Using Actor Framework for Modular, Scalable, and Maintainable Applications]A detailed white paper on how to use the Actor Framework to create robust and scalable LabVIEW applications.&lt;br /&gt;
&lt;br /&gt;
===Video Tutorials===&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=2H8T6ud9rQw Introduction to Actor Framework (YouTube)]A beginner-friendly video introducing the key concepts and structure of the Actor Framework in LabVIEW.&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=YlSzBqipGY4 Actor Framework Basics (YouTube)]This video walks through the basic concepts, including actors, messages, and actors&#039; lifetimes.&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=RN-FLhmEJ2k Creating and Running Actors (YouTube)]An in-depth look at how to create and run actors using the LabVIEW Actor Framework.&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=zp6npT6gqTI Advanced Actor Framework Patterns (YouTube)]A video for more experienced developers, covering advanced patterns and techniques in Actor Framework.&lt;br /&gt;
&lt;br /&gt;
===Advanced Topics===&lt;br /&gt;
&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/15/actor-framework-in-labview--architecture-and-benefits.html NI White Paper: Actor Framework in LabVIEW: Architecture and Benefits]A white paper exploring the architecture of the Actor Framework, with use cases and scenarios for applying it in real-world projects.&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=f-WtzcZGm3A LabVIEW Actor Framework: Message Handling (YouTube)]A detailed video on how to create, send, and handle messages between actors in the Actor Framework.&lt;br /&gt;
&lt;br /&gt;
* [https://www.youtube.com/watch?v=UrMe2GkOYXE NIWeek Presentation: Advanced Actor Framework Design (YouTube)]A presentation from NIWeek discussing advanced Actor Framework design patterns, modularity, and messaging techniques.&lt;br /&gt;
&lt;br /&gt;
===Community Contributions and Tutorial===&lt;br /&gt;
&lt;br /&gt;
* [https://zone.ni.com/reference/en-XX/help/371361R-01/lvframework/af_examples/ Actor Framework Examples in LabVIEW]A set of example projects provided by NI to help developers get hands-on experience with the Actor Framework.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/LabVIEW-Tools/Actor-Framework-Best-Practices GitHub: Actor Framework Best Practices]A community-driven repository showcasing best practices, examples, and tips for building scalable applications with the Actor Framework.&lt;br /&gt;
&lt;br /&gt;
* [https://forums.ni.com/t5/Actor-Framework/bd-p/actors Actor Framework Forum (LabVIEW Community)]A dedicated forum where LabVIEW developers discuss the Actor Framework, share use cases, and troubleshoot challenges.&lt;br /&gt;
&lt;br /&gt;
==Workers==&lt;br /&gt;
==VIPER==&lt;br /&gt;
&lt;br /&gt;
=Hardware and Instrumentation Connectivity=&lt;br /&gt;
&lt;br /&gt;
==DAQmx Basics==&lt;br /&gt;
* [https://www.ni.com/en-us/support/documentation/supplemental/06/ni-daqmx-driver.html DAQmx Fundamentals Guide]&lt;br /&gt;
* [https://www.youtube.com/watch?v=7kWekJAM2Ag DAQmx Basics Video Tutorial]&lt;br /&gt;
&lt;br /&gt;
==Instrument Control==&lt;br /&gt;
* [https://www.ni.com/en-us/support/documentation/supplemental/06/instrument-control.html LabVIEW Instrument Control Overview]&lt;br /&gt;
* [https://www.youtube.com/watch?v=kZQsb8xT6bI Communicating with Instruments in LabVIEW]&lt;br /&gt;
&lt;br /&gt;
==Determinism and Real-Time Execution==&lt;br /&gt;
* [https://www.ni.com/en-us/innovations/white-papers/06/using-labview-real-time.html Introduction to LabVIEW Real-Time]&lt;br /&gt;
* [https://www.youtube.com/watch?v=OjOEwVpRrmY Real-Time Systems Tutorial]&lt;br /&gt;
&lt;br /&gt;
=Community and Best Practices=&lt;br /&gt;
&lt;br /&gt;
==LabVIEW Style Guidelines==&lt;br /&gt;
* [https://labviewwiki.org/wiki/Style_Guide LabVIEW Style Guideline]&lt;br /&gt;
* [https://forums.ni.com/ NI Forums]&lt;br /&gt;
&lt;br /&gt;
==LabVIEW Community and User Groups==&lt;br /&gt;
* [https://www.ni.com/en-us/events.html LabVIEW User Groups and Community Events]&lt;br /&gt;
* [https://www.gcentral.org/ GCentral: Open-Source Community for LabVIEW]&lt;br /&gt;
&lt;br /&gt;
=Connectivity and Report Generation=&lt;br /&gt;
&lt;br /&gt;
==Database Connectivity==&lt;br /&gt;
* [https://www.ni.com/en-us/support/documentation/supplemental/06/labview-database-connectivity-toolkit.html Using LabVIEW with Databases]&lt;br /&gt;
* [https://www.youtube.com/watch?v=ARJTHbkxI-8 Database Connectivity in LabVIEW]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Formal Training=&lt;br /&gt;
Formal training on LabVIEW is available from several providers. Offerings differ based on prior LabVIEW experience level and the preferred delivery method. Common delivery methods include: &lt;br /&gt;
&lt;br /&gt;
* In-person instructor-led&lt;br /&gt;
* Remote instructor-led (usually through a web conference)&lt;br /&gt;
* Online self-paced (usually through a combination of pre-recorded lecture videos and exercise solution videos)&lt;br /&gt;
* Self-paced with a manual  &lt;br /&gt;
&lt;br /&gt;
National Instruments has a [http://sine.ni.com/tacs/app/fp/p/ap/ov/pg/1/sn/n8:28/ suite of courses] ranging from beginner to advanced as well as several specialty topics such as LabVIEW Real-Time and LabVIEW Connectivity. National Instruments offers all common delivery methods mentioned above except online self-paced. Other LabVIEW training providers such as [http://www.sixclear.com/ Sixclear] provide this online self-paced environment. Sixclear&#039;s same curriculum is also delivered through in-person instructor-led training. [http://www.durability.com/Divisions/Automation/Training/LabVIEW101.asp Durability] is another provider of in-person instructor-led training. &lt;br /&gt;
&lt;br /&gt;
Recommended training courses for those with no knowledge of LabVIEW are the [http://sine.ni.com/tacs/app/fp/p/ap/ov/pg/1/sn/n8:28/ National Instruments Core 1 and Core 2] courses, the [http://www.sixclear.com/labviewtraining/ Sixclear LabVIEW Fundamentals I and II] courses, or the [http://www.durability.com/Divisions/Automation/Training/LabVIEW101.asp Durability LabVIEW 101 and 102] courses. All sets of courses are geared to a user with little to no LabVIEW experience and teach the proficiencies outlined by the [http://sine.ni.com/nips/cds/view/p/lang/en/nid/14438 Certified LabVIEW Associate Developer (CLAD)] exam as well as simple DAQ and instrument control.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Common arguments justifying formal training revolve around the idea that the sum cost of developers&#039; time is greater than the cost of training because: &lt;br /&gt;
*  the LabVIEW graphical programming paradigm is appreciably different than traditional text-based programming  &lt;br /&gt;
*  costly mistakes commonly occur when moving from simple LabVIEW applications to more complex applications, especially when developing parallel loop applications&lt;br /&gt;
&lt;br /&gt;
===Alternatives to Formal Training===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
National Instruments maintains a list of [http://www.ni.com/reference/books/labview.htm LabVIEW reference books] as an alternative to formal training.&lt;br /&gt;
&lt;br /&gt;
Another alternative to formal training are half-day &amp;quot;LabVIEW Hands-On&amp;quot; workshops offered by National Instruments. Recommended follow-ups are the &amp;quot;G Programmer&#039;s reference manual&amp;quot; and the LabVIEW &amp;quot;User Manual&amp;quot; found in the LabVIEW documentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== External Links ==&lt;br /&gt;
&lt;br /&gt;
Some online tutorials:&lt;br /&gt;
&lt;br /&gt;
*[http://blog.sixclear.com/ VI High LabVIEW Video Tutorial Blog by Sixclear]&lt;br /&gt;
*[http://www.ni.com/labview/skills-guide/en/ Some NI courses, including videos] (requires an active support contract with NI)&lt;br /&gt;
*[http://vishots.com/category/labview-tutorials/ VI Shots LabVIEW Video Tutorials]&lt;br /&gt;
*NI Tutorials (including videos and exercises) - http://zone.ni.com/devzone/cda/tut/p/id/7466&lt;br /&gt;
*More links at NI&#039;s site - http://www.ni.com/training/labview.htm&lt;br /&gt;
*Software Engineering with LabVIEW (generally requires some LabVIEW knowledge) - http://zone.ni.com/devzone/cda/tut/p/id/7117&lt;br /&gt;
*Connexions Tutorial (written by NI) - http://cnx.org/content/col10241/latest/&lt;br /&gt;
*LabVIEW Tutorials - http://www.upscale.utoronto.ca/GeneralInterest/LabView.html&lt;br /&gt;
*Videos of NI&#039;s LabVIEW Core 3 course (8 full lessons) - http://www.youtube.com/playlist?list=PL3E1DD4C18D357331&lt;br /&gt;
*Tutorial videos (some are free) - http://www.fafiles.com/&lt;br /&gt;
*Learning LabVIEW - http://learnlabview.blogspot.com/&lt;br /&gt;
*LabVIEW Tutorial Basics (BEKA, German) - http://www.fu-net.de/lv/lv01/&lt;br /&gt;
*LabVIEW Tutorial Advanced Techniques (BEKA, German) - http://www.fu-net.de/lv/lv02/&lt;br /&gt;
&lt;br /&gt;
[[Category:LabVIEW fundamentals]]&lt;br /&gt;
[[Category:Getting started]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Introduction]]&lt;/div&gt;</summary>
		<author><name>Sergiovelderrain</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=User_group&amp;diff=34361</id>
		<title>User group</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=User_group&amp;diff=34361"/>
		<updated>2024-08-28T23:23:25Z</updated>

		<summary type="html">&lt;p&gt;Sergiovelderrain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
A &#039;&#039;&#039;User Group&#039;&#039;&#039;, or LabVIEW User Group (LUG), is a local group of LabVIEW enthusiasts that come together to share common interests or goals.  The user groups within the NI Community are segmented into different categories such as Local User Groups, Product User Groups, Special Interest Groups, and Partner Groups. Within each of these groups, you may collaborate with others on best practices, plan in-person meetups, or discuss any topic of your choice.&lt;br /&gt;
&amp;lt;ref&amp;gt;LabVIEW Forums: User Groups https://forums.ni.com/t5/User-Groups/ct-p/user-groups&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Organizing a User Group==&lt;br /&gt;
User groups are typically created out of a shared need to seek advice and share ideas among a community of individuals that are working on similar problems OR applications. It is recommended that such a group align on goals for the organization, such as the following:&lt;br /&gt;
# Share ideas and practices to improve the quality, performance, scalability and readability of LabVIEW code&lt;br /&gt;
# Provide a forum to solicit advice from peers regarding how best to solve technical and procedural challenges when developing LabVIEW code&lt;br /&gt;
# Drive standardization on stylings, code organization and tooling for the purpose of enabling greater reuse and collaboration&lt;br /&gt;
&lt;br /&gt;
See the [https://forums.ni.com/t5/User-Groups/ct-p/user-groups LabVIEW Community Forum: User Group List] to find one near you.&lt;br /&gt;
&lt;br /&gt;
==User Groups Roles and Responsibilities==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Role&lt;br /&gt;
! Resposibility&lt;br /&gt;
|-&lt;br /&gt;
| Owner &lt;br /&gt;
| Ultimately in charge, Get the ball rolling&lt;br /&gt;
|-&lt;br /&gt;
| Coordinator(s)&lt;br /&gt;
| Could be the same person as the owner or a committee of people. Their job is to organize the event: Work with sponsors, Find a location, Find a Presenter, [[Events|Schedule the Event]], and Advertise&lt;br /&gt;
|-&lt;br /&gt;
| Sponsors&lt;br /&gt;
| Sponsors provide financial backing for refreshments and could include using facilities for the meeting location.&lt;br /&gt;
|-&lt;br /&gt;
| Presenter&lt;br /&gt;
| Create content, Present, and Publish Content. Ensure attendees can find your presentation and source code if you can share it. Remember to provide links to other applicable resources and your LinkedIn or company pages. (A little self-promotion is allowed for the work you put into sharing your knowledge.) A LabVIEW Wiki page can be created for your presentation as a starting point for these resources ([[GLA Summit 2024/Fantastic LabVIEW Hooks and Where to Find Them|see example]]).&lt;br /&gt;
|-&lt;br /&gt;
| Attendees&lt;br /&gt;
| Attend the event. Be attentive and ask questions. Be willing to be the presenter sometimes too.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==User Group Content==&lt;br /&gt;
&lt;br /&gt;
This is a collection of content that can be used to organize and run a LabVIEW user group. &lt;br /&gt;
&lt;br /&gt;
===Fundamental Programming Constructs===&lt;br /&gt;
&lt;br /&gt;
These materials focus on the G syntax and language-specific constructs&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Python vs. LabVIEW Technical Deep Dive&lt;br /&gt;
|These slides are intended to explore important software considerations when developing large test and measurement software that needs to scale and the merits and considerations when using either LabVIEW. The original materials have been provided by NI but have been made open-source for the purpose of enabling the community to enhance and augment these materials with alternative view points and examples.&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://github.com/elijah286/LabVIEW-vs-python GitHub Repo of Slides]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Using Object-Oriented Programming LabVIEW&lt;br /&gt;
|This session will introduce object-oriented programming as a tool that can dramatically increase the reusability and scalability of your software. Instead of going through a purely academic exploration of the concept, this session attempts to map concepts that should be familiar to any experienced LabVIEW programming towards helping explain how you can evolve your daily programming tasks without starting all over.&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://forums.ni.com/t5/LabVIEW-Development-Best/Object-Oriented-Design-Patterns-Technical-Manual-and-Exercises/ta-p/3507995 Presentation and Demo Materials]&lt;br /&gt;
[https://www.ni.com/en/shop/labview/introduction-to-oop-and-hardware-abstraction-layers.html Video of session]&lt;br /&gt;
|Yes - experience implementing class-based software architectures&lt;br /&gt;
|-&lt;br /&gt;
|Malleable VIs Unlocked&lt;br /&gt;
|Malleable VI&#039;s have been available for quite some years and compliments our toolbox of reusable code perfectly.&lt;br /&gt;
&lt;br /&gt;
Join me on a journey through techniques that have yet to be shared but are the basis of the G²CPU high performance toolkit.&lt;br /&gt;
We&#039;ll have a look at a what its position is compared to polymorphic VI&#039;s, classes, case structures and other techniques to selectively execute code.&lt;br /&gt;
After which we will step-by-step go from simple ground rules to never publicized techniques to elevate your reusable libraries&lt;br /&gt;
|Natan Biesmans and Tom McQuillan&lt;br /&gt;
|[https://www.youtube.com/watch?v=EzhMQ0Gt_1A YouTube Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|What to Expect When You&#039;re Expecting an Error&lt;br /&gt;
|Connecting error wires across nodes on a block diagram is one of the most common, brainless tasks performed by a LabVIEW programmer. Unfortunately, this often means that VI behavior in an error condition is a second thought, if it&#039;s even thought about at all. This presentation will cover best practices in regards to the generation and propagation of errors on LabVIEW block diagrams. You should come out of this presentation with the ability to write VIs that are not only functionally correct in an error condition, but also precisely convey their exact error behavior in an error condition. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnatterrors Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|All About Collection Data Types&lt;br /&gt;
|Introduction to the fundamentals of Strings and Arrays, then moving into Sets and Maps, the newest data types in LabVIEW.  &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnattcollections Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Software Engineering and Team Based Development===&lt;br /&gt;
&lt;br /&gt;
These presentations are intended to review best practices for code design and development processes. They are generally more advanced and benefit a presenter who has multiple years of experience with the relevant tools and technologies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Moving from SVN to Git with LabVIEW&lt;br /&gt;
|Git tends to be the standard versioning system used in software development. DevOps platform like Gitlab and Github rely on it. Git could be a necessary transition to implement CI/CD.&lt;br /&gt;
From my experience and with data collected earlier this year, it seems that SVN is still used by many people in our LabVIEW world.&lt;br /&gt;
I want to share my journey from a former SVN user to a happy Git one and help developers to go further than just a &amp;quot;backup&amp;quot; tool.&lt;br /&gt;
Real experience and no command-line inside.&lt;br /&gt;
|Olivier Jourdan&lt;br /&gt;
|[https://www.youtube.com/watch?v=v_cdlwIWfPY YouTube Recording]&lt;br /&gt;
|Yes - familiarity with SCM, Git and SVN. Qualified presenters include: Olivier Jourdan, Fabiola De la Cueva and Emilie Kia&lt;br /&gt;
|-&lt;br /&gt;
|Team Based Development with LabVIEW&lt;br /&gt;
|This session will provide an overview of best practices and tooling that should be used to streamline LabVIEW development by a team of developers&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://github.com/elijah286/lvug-team-dev GitHub Repo for slides and demo materials]&lt;br /&gt;
|Yes - CLA-level knowledge of how to manage and coordinate development activities across a team&lt;br /&gt;
|-&lt;br /&gt;
|Improving Your LabVIEW Code with the VI Analyzer&lt;br /&gt;
|A comprehensive presentation on the features of the VI Analyzer, and how it can be used to improve code style, increase code performance, and detect bugs. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://forums.ni.com/t5/VI-Analyzer-Enthusiasts/Improving-Your-LabVIEW-Code-with-the-VI-Analyzer/m-p/3415352 Slides, Demos, and Recording]&lt;br /&gt;
|-&lt;br /&gt;
|Architecting long life-cycle LabVIEW applications&lt;br /&gt;
|Presentation provides an overview on one of the many ways of defining the processes to create LabVIEW code that will be used to generate multiple revisions of a product by a constantly changing team of developers.&lt;br /&gt;
|Sergio Velderrain&lt;br /&gt;
|Soon&lt;br /&gt;
|Yes - CLA-level knowledge, VI Package manager, CI/CD.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Software Architectures and Code Design Patterns===&lt;br /&gt;
&lt;br /&gt;
These presentations are intended to review best practices for code design and development processes. They are generally more advanced and benefit a presenter who has multiple years of experience with the relevant tools and technologies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Using Plugin Frameworks for Extensibility&lt;br /&gt;
|This session will show how to improve the reusability and extensibility of LabVIEW code through the use of dynamically loaded plugins&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://github.com/elijah286/Extensible-Config-Dialog Example source code]&lt;br /&gt;
|Yes - CLD-level knowledge of how to dynamically load and communicate with sub processes&lt;br /&gt;
|-&lt;br /&gt;
|Introduction to DQMH&lt;br /&gt;
|DQMH is the world’s most popular 3rd-party framework for LabVIEW, and was designed to facilitate the robust implementation of complex LabVIEW applications, while still being accessible to CLAD/CLD-level LabVIEW programmers.&lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnattdqmhintro Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Workers for LabVIEW&lt;br /&gt;
|Efficiently develop asynchronous applications using Workers for LabVIEW, a framework that provides simple LVOOP QMHs along with a comprehensive set of development tools to streamline application development. This framework is suitable for developing both small and large multi-process LabVIEW applications in a scalable,  modular and extensible way.&lt;br /&gt;
|Peter Scarfe&lt;br /&gt;
|[https://docs.workersforlabview.io User Guide, Introduction Video, Tutorial Videos]&lt;br /&gt;
|LabVIEW Core 3 or CLD level knowledge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Best Practices===&lt;br /&gt;
&lt;br /&gt;
These materials cover best practices for various aspects of LabVIEW development.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|An End to Brainless LabVIEW Programming&lt;br /&gt;
|There are lots of supposed &amp;quot;best practices&amp;quot; we do in LabVIEW without thinking. If we actually think about them, it turns out they may not be best practices at all. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/brainlesslabview Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Industrial Communications in LabVIEW&lt;br /&gt;
|Don’t underestimate the complexity of industrial communications protocols, nor the completeness of LabVIEW toolkits for supporting these. This presentation collates crowd-sourced data on the woes and wahays of integrating National Instruments systems into an industrial network, providing any developer with an up to date and pragmatically authored review of the state of current capabilities and maybe a brief look into the future.&lt;br /&gt;
&lt;br /&gt;
Dr. Richard Thomas, a founding member of GDevCon and the ALA, LabVIEW Champion, CLA and CLED, has worked with LabVIEW and NI systems for nearly 25 years, in various roles from Academia, Consultancy to Production Engineering, with experience in several industry sectors.&lt;br /&gt;
|Dr. Richard Thomas&lt;br /&gt;
|[https://www.youtube.com/watch?v=R4GN_-X__GA Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Communicating intent through the VI Icon - Jesper Kjær Sørensen (GPower)&lt;br /&gt;
|This presentation is one you don&#039;t want to miss. We will embark on a quest through the massive Icon Dungeon in the land of LabVIEW. The goal is to slay the dreaded default icon Dragon, which has brought much pain and suffering to LabVIEW developers. We will wander through the multi-level halls of VI icons to search for traps and recover the ancient knowledge of visual grouping. We will be spelunking into the Casm of Class icons. Finally, we will enter the Vault of Glyphs to fill our bags with loot and make a quick getaway through the dimension of Automation.&lt;br /&gt;
&lt;br /&gt;
My name is Jesper Kjær Sørensen. I am a level 5 Systems Engineer aboard the fantastic vessel GPower, hailing from Denmark. I have replaced my character sheet three times over the past 14 years since I graduated from the University of Aalborg. Throughout the years, I have honed my skills in LabVIEW and TestStand and dabbled in the dark arts of Python programming. I have several side quests involving photography, dairy cows, my family, and my love for Dungeons and Dragons.&lt;br /&gt;
|Jesper Kjær Sørensen&lt;br /&gt;
|[https://www.youtube.com/watch?v=wOntiXaIu2o Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Building the LabVIEW IDE and Tooling That You Always Wanted&lt;br /&gt;
|This presentation will give an insight into how you can build the LabVIEW features and tools you wish it had out of the box to make it even more productive. Emerson/NI have provided many hooks into the environment so let&#039;s use them to make LabVIEW better.&lt;br /&gt;
|Chris Roebuck (Konrad Technologies)&lt;br /&gt;
|[https://www.youtube.com/watch?v=3OBV-RSQSYI Recording]&lt;br /&gt;
|-&lt;br /&gt;
|VI Analyzer: The unsung hero of software quality&lt;br /&gt;
|In this presentation we explore the features of VI Analyzer and show how you can easily incorporate it into your daily workflow. We showcase how to implement your own tests using the in-built templates.&lt;br /&gt;
|Chris Roebuck (Konrad Technologies)&lt;br /&gt;
|[https://www.youtube.com/watch?v=yzjiZJZCe6A&amp;amp;list=PL7Ul36E7e0l97vayGr_OSl5tQlLj5jHkj Recording]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Tips and Tricks===&lt;br /&gt;
&lt;br /&gt;
These materials cover suggestions and insight from developers aimed at streamlining interaction with the development environment for the sake of increased productivity.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|I Find Your Lack of LabVIEW Programming Speed Disturbing&lt;br /&gt;
|In just an hour of LabVIEW programming, you interact with the LabVIEW IDE hundreds, perhaps thousands, of times. Chances are, you could be executing many editor gestures more efficiently. Explore how to change your workflow to perform the most common LabVIEW programming tasks as quickly as possible. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/labviewspeed Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Quick! Drop Your VI Execution Time!&lt;br /&gt;
|Simple tips and techniques for speeding up your VIs. This includes general purpose programming techniques, as well as the most efficient way to use profiling tools in LabVIEW. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/slowvis Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Don&#039;t Wait for LabVIEW R&amp;amp;D... Implement Your Own LabVIEW Features!&lt;br /&gt;
|You can choose from many hooks to add your own G-based features to the LabVIEW IDE (no text programming required). This session reveals every single one of those hooks (No, really!) along with some LabVIEW Scripting tips and best practices for implementing those LabVIEW features you always wanted.&lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnattlvhooks Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Hidden Gems in vi.lib&lt;br /&gt;
|A walkthrough of several useful VIs and APIs that ship with LabVIEW, but are not officially supported by NI.&lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://forums.ni.com/t5/Hidden-Gems-in-vi-lib/Hidden-Gems-in-vi-lib-pptx/td-p/3502591 Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Augmenting Right-Click Menus in LabVIEW&lt;br /&gt;
|All the details of the right-click plugins feature in LabVIEW, that allows you to extend the right-click menus in the LabVIEW editor purely with G code. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://forums.ni.com/t5/LabVIEW-Shortcut-Menu-Plug-Ins/Presentation-Augmenting-Right-Click-Menus-in-LabVIEW/ta-p/3521526 Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===UX / UI Design===&lt;br /&gt;
&lt;br /&gt;
These materials provide insights on how to design user-interfaces in LabVIEW&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
| Extensible and Modular UIs: Extend the VI Server With Object-Oriented Techniques&lt;br /&gt;
| Using QControls to create reusable UI modules.&lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[NIWeek 2018/UI: Extensible and Modular UIs: Extend the VI Server With Object-Oriented Techniques|Wiki Page]]&lt;br /&gt;
|-&lt;br /&gt;
| Encapsulating and Reusing your UI Code&lt;br /&gt;
| Using QControls to make Reusable, Encapsulated, Extensible UIs.&lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[Americas CLA Summit 2019/Encapsulating and Reusing your UI Code|Wiki Page]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| The LabVIEW UI of Your Dreams&lt;br /&gt;
| Often, the LabVIEW front panels we use day after day are far from a “dream UI,” and we’ve all seen some nightmare UIs. In this session, we’ll use a high‐minded design philosophy combined with practical developer checklists that you can apply to make your interfaces more functional, consistent, professional, and dreamy.&lt;br /&gt;
| Hunter Smith&lt;br /&gt;
| [https://www.youtube.com/watch?v=qpxiQ3dFDm0 YouTube Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI/UX Considerations when there is No Keyboard or Mouse&lt;br /&gt;
|This presentation provides an overview of best practices and lessons learned when developing software interfaces that will rely on a touch screen, especially given the number of UI components that are not well suited for a touch interface.&lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[Americas CLA Summit 2019/UI/UX Considerations when there is No Keyboard or Mouse|Wiki Page]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Smartphone-like User Interfaces in LabVIEW&lt;br /&gt;
| Do you want more advanced User Interfaces than you can normally get from LabVIEW? Maybe the user experience needs to be for a touch screen similar to common smartphone interfaces. I’ll show tricks to using the QControl Toolkit to create swipe, scroll, and selection via a touchscreen. &lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[GLA Summit 2022/Smartphone-like User Interfaces in LabVIEW| Wiki Page]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| How to successfully scale UIs in LabVIEW&lt;br /&gt;
| All started with a tough requirement: “The application needs more than 50 Synoptics” . With such a breath taking number, you need to think in a way of programming User Interfaces that is easily scalable, flexible and maintainable. As a programmer, the last thing you want is to have the need to implement a new feature and have to repeat the same piece of code in 50 different places. This presentation navigates through the process of getting a successful approach, from the idea to the implementation.&lt;br /&gt;
| Iker Segovia Revilla(ULMA)&lt;br /&gt;
| [[https://www.youtube.com/watch?v=zYhzQ0Mlp-I| Video]]&lt;br /&gt;
|-&lt;br /&gt;
|Thin Client TestStand&lt;br /&gt;
|Using LabVIEW WebUI hosted on and communicating with SystemLink to remotely control, monitor, and deploy Test software and equipment using a TestStand Server; all from a thin client or phone/tablet.&lt;br /&gt;
|Nathan Lutz (Konrad Technologies)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Debugging/Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
These materials cover suggestions and insight from developers aimed at debugging and troubleshooting LabVIEW applications.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Ludicrous Ways to Fix Broken LabVIEW Code&lt;br /&gt;
|When LabVIEW programmers encounter compiler errors, app builder failures, and crashes, they will usually settle for any hack, kludge, or workaround just to get usable code. This presentation demonstrates a number of ridiculous ways to get broken code running. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/ludicrouslabview Slides, Demos, and Recording]&lt;br /&gt;
|This content is very DNatt-specific, and may be difficult for others to present.&lt;br /&gt;
|-&lt;br /&gt;
|Benchmark and troubleshoot of a mission critical LabVIEW application&lt;br /&gt;
|Provides an overview of the combination of tools and methods i used when creating systems for high throughput data acquisition. These type of systems are considered edge cases, but the lessons learned from this presentation can be applied to any other LabVIEW application to ensure an efficient troubleshooting.&lt;br /&gt;
|Sergio Velderrain&lt;br /&gt;
|Soon&lt;br /&gt;
|Yes- CLD Level proficiency, Desktop execution trace toolkit, VI Analyzer, exposure to system integration.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:User Group]]&lt;/div&gt;</summary>
		<author><name>Sergiovelderrain</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=User_group&amp;diff=34360</id>
		<title>User group</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=User_group&amp;diff=34360"/>
		<updated>2024-08-28T23:21:46Z</updated>

		<summary type="html">&lt;p&gt;Sergiovelderrain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
A &#039;&#039;&#039;User Group&#039;&#039;&#039;, or LabVIEW User Group (LUG), is a local group of LabVIEW enthusiasts that come together to share common interests or goals.  The user groups within the NI Community are segmented into different categories such as Local User Groups, Product User Groups, Special Interest Groups, and Partner Groups. Within each of these groups, you may collaborate with others on best practices, plan in-person meetups, or discuss any topic of your choice.&lt;br /&gt;
&amp;lt;ref&amp;gt;LabVIEW Forums: User Groups https://forums.ni.com/t5/User-Groups/ct-p/user-groups&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Organizing a User Group==&lt;br /&gt;
User groups are typically created out of a shared need to seek advice and share ideas among a community of individuals that are working on similar problems OR applications. It is recommended that such a group align on goals for the organization, such as the following:&lt;br /&gt;
# Share ideas and practices to improve the quality, performance, scalability and readability of LabVIEW code&lt;br /&gt;
# Provide a forum to solicit advice from peers regarding how best to solve technical and procedural challenges when developing LabVIEW code&lt;br /&gt;
# Drive standardization on stylings, code organization and tooling for the purpose of enabling greater reuse and collaboration&lt;br /&gt;
&lt;br /&gt;
See the [https://forums.ni.com/t5/User-Groups/ct-p/user-groups LabVIEW Community Forum: User Group List] to find one near you.&lt;br /&gt;
&lt;br /&gt;
==User Groups Roles and Responsibilities==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Role&lt;br /&gt;
! Resposibility&lt;br /&gt;
|-&lt;br /&gt;
| Owner &lt;br /&gt;
| Ultimately in charge, Get the ball rolling&lt;br /&gt;
|-&lt;br /&gt;
| Coordinator(s)&lt;br /&gt;
| Could be the same person as the owner or a committee of people. Their job is to organize the event: Work with sponsors, Find a location, Find a Presenter, [[Events|Schedule the Event]], and Advertise&lt;br /&gt;
|-&lt;br /&gt;
| Sponsors&lt;br /&gt;
| Sponsors provide financial backing for refreshments and could include using facilities for the meeting location.&lt;br /&gt;
|-&lt;br /&gt;
| Presenter&lt;br /&gt;
| Create content, Present, and Publish Content. Ensure attendees can find your presentation and source code if you can share it. Remember to provide links to other applicable resources and your LinkedIn or company pages. (A little self-promotion is allowed for the work you put into sharing your knowledge.) A LabVIEW Wiki page can be created for your presentation as a starting point for these resources ([[GLA Summit 2024/Fantastic LabVIEW Hooks and Where to Find Them|see example]]).&lt;br /&gt;
|-&lt;br /&gt;
| Attendees&lt;br /&gt;
| Attend the event. Be attentive and ask questions. Be willing to be the presenter sometimes too.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==User Group Content==&lt;br /&gt;
&lt;br /&gt;
This is a collection of content that can be used to organize and run a LabVIEW user group. &lt;br /&gt;
&lt;br /&gt;
===Fundamental Programming Constructs===&lt;br /&gt;
&lt;br /&gt;
These materials focus on the G syntax and language-specific constructs&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Python vs. LabVIEW Technical Deep Dive&lt;br /&gt;
|These slides are intended to explore important software considerations when developing large test and measurement software that needs to scale and the merits and considerations when using either LabVIEW. The original materials have been provided by NI but have been made open-source for the purpose of enabling the community to enhance and augment these materials with alternative view points and examples.&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://github.com/elijah286/LabVIEW-vs-python GitHub Repo of Slides]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Using Object-Oriented Programming LabVIEW&lt;br /&gt;
|This session will introduce object-oriented programming as a tool that can dramatically increase the reusability and scalability of your software. Instead of going through a purely academic exploration of the concept, this session attempts to map concepts that should be familiar to any experienced LabVIEW programming towards helping explain how you can evolve your daily programming tasks without starting all over.&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://forums.ni.com/t5/LabVIEW-Development-Best/Object-Oriented-Design-Patterns-Technical-Manual-and-Exercises/ta-p/3507995 Presentation and Demo Materials]&lt;br /&gt;
[https://www.ni.com/en/shop/labview/introduction-to-oop-and-hardware-abstraction-layers.html Video of session]&lt;br /&gt;
|Yes - experience implementing class-based software architectures&lt;br /&gt;
|-&lt;br /&gt;
|Malleable VIs Unlocked&lt;br /&gt;
|Malleable VI&#039;s have been available for quite some years and compliments our toolbox of reusable code perfectly.&lt;br /&gt;
&lt;br /&gt;
Join me on a journey through techniques that have yet to be shared but are the basis of the G²CPU high performance toolkit.&lt;br /&gt;
We&#039;ll have a look at a what its position is compared to polymorphic VI&#039;s, classes, case structures and other techniques to selectively execute code.&lt;br /&gt;
After which we will step-by-step go from simple ground rules to never publicized techniques to elevate your reusable libraries&lt;br /&gt;
|Natan Biesmans and Tom McQuillan&lt;br /&gt;
|[https://www.youtube.com/watch?v=EzhMQ0Gt_1A YouTube Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|What to Expect When You&#039;re Expecting an Error&lt;br /&gt;
|Connecting error wires across nodes on a block diagram is one of the most common, brainless tasks performed by a LabVIEW programmer. Unfortunately, this often means that VI behavior in an error condition is a second thought, if it&#039;s even thought about at all. This presentation will cover best practices in regards to the generation and propagation of errors on LabVIEW block diagrams. You should come out of this presentation with the ability to write VIs that are not only functionally correct in an error condition, but also precisely convey their exact error behavior in an error condition. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnatterrors Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|All About Collection Data Types&lt;br /&gt;
|Introduction to the fundamentals of Strings and Arrays, then moving into Sets and Maps, the newest data types in LabVIEW.  &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnattcollections Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Software Engineering and Team Based Development===&lt;br /&gt;
&lt;br /&gt;
These presentations are intended to review best practices for code design and development processes. They are generally more advanced and benefit a presenter who has multiple years of experience with the relevant tools and technologies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Moving from SVN to Git with LabVIEW&lt;br /&gt;
|Git tends to be the standard versioning system used in software development. DevOps platform like Gitlab and Github rely on it. Git could be a necessary transition to implement CI/CD.&lt;br /&gt;
From my experience and with data collected earlier this year, it seems that SVN is still used by many people in our LabVIEW world.&lt;br /&gt;
I want to share my journey from a former SVN user to a happy Git one and help developers to go further than just a &amp;quot;backup&amp;quot; tool.&lt;br /&gt;
Real experience and no command-line inside.&lt;br /&gt;
|Olivier Jourdan&lt;br /&gt;
|[https://www.youtube.com/watch?v=v_cdlwIWfPY YouTube Recording]&lt;br /&gt;
|Yes - familiarity with SCM, Git and SVN. Qualified presenters include: Olivier Jourdan, Fabiola De la Cueva and Emilie Kia&lt;br /&gt;
|-&lt;br /&gt;
|Team Based Development with LabVIEW&lt;br /&gt;
|This session will provide an overview of best practices and tooling that should be used to streamline LabVIEW development by a team of developers&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://github.com/elijah286/lvug-team-dev GitHub Repo for slides and demo materials]&lt;br /&gt;
|Yes - CLA-level knowledge of how to manage and coordinate development activities across a team&lt;br /&gt;
|-&lt;br /&gt;
|Improving Your LabVIEW Code with the VI Analyzer&lt;br /&gt;
|A comprehensive presentation on the features of the VI Analyzer, and how it can be used to improve code style, increase code performance, and detect bugs. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://forums.ni.com/t5/VI-Analyzer-Enthusiasts/Improving-Your-LabVIEW-Code-with-the-VI-Analyzer/m-p/3415352 Slides, Demos, and Recording]&lt;br /&gt;
|-&lt;br /&gt;
|Architecting long life-cycle LabVIEW applications&lt;br /&gt;
|Presentation provides an overview on one of the many ways of defining the processes to create LabVIEW code that will be used to generate multiple revisions of a product by a constantly changing team of developers.&lt;br /&gt;
|Sergio Velderrain&lt;br /&gt;
|Soon&lt;br /&gt;
|Yes - CLA-level knowledge, VI Package manager, CI/CD.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Software Architectures and Code Design Patterns===&lt;br /&gt;
&lt;br /&gt;
These presentations are intended to review best practices for code design and development processes. They are generally more advanced and benefit a presenter who has multiple years of experience with the relevant tools and technologies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Using Plugin Frameworks for Extensibility&lt;br /&gt;
|This session will show how to improve the reusability and extensibility of LabVIEW code through the use of dynamically loaded plugins&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://github.com/elijah286/Extensible-Config-Dialog Example source code]&lt;br /&gt;
|Yes - CLD-level knowledge of how to dynamically load and communicate with sub processes&lt;br /&gt;
|-&lt;br /&gt;
|Introduction to DQMH&lt;br /&gt;
|DQMH is the world’s most popular 3rd-party framework for LabVIEW, and was designed to facilitate the robust implementation of complex LabVIEW applications, while still being accessible to CLAD/CLD-level LabVIEW programmers.&lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnattdqmhintro Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Workers for LabVIEW&lt;br /&gt;
|Efficiently develop asynchronous applications using Workers for LabVIEW, a framework that provides simple LVOOP QMHs along with a comprehensive set of development tools to streamline application development. This framework is suitable for developing both small and large multi-process LabVIEW applications in a scalable,  modular and extensible way.&lt;br /&gt;
|Peter Scarfe&lt;br /&gt;
|[https://docs.workersforlabview.io User Guide, Introduction Video, Tutorial Videos]&lt;br /&gt;
|LabVIEW Core 3 or CLD level knowledge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Best Practices===&lt;br /&gt;
&lt;br /&gt;
These materials cover best practices for various aspects of LabVIEW development.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|An End to Brainless LabVIEW Programming&lt;br /&gt;
|There are lots of supposed &amp;quot;best practices&amp;quot; we do in LabVIEW without thinking. If we actually think about them, it turns out they may not be best practices at all. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/brainlesslabview Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Industrial Communications in LabVIEW&lt;br /&gt;
|Don’t underestimate the complexity of industrial communications protocols, nor the completeness of LabVIEW toolkits for supporting these. This presentation collates crowd-sourced data on the woes and wahays of integrating National Instruments systems into an industrial network, providing any developer with an up to date and pragmatically authored review of the state of current capabilities and maybe a brief look into the future.&lt;br /&gt;
&lt;br /&gt;
Dr. Richard Thomas, a founding member of GDevCon and the ALA, LabVIEW Champion, CLA and CLED, has worked with LabVIEW and NI systems for nearly 25 years, in various roles from Academia, Consultancy to Production Engineering, with experience in several industry sectors.&lt;br /&gt;
|Dr. Richard Thomas&lt;br /&gt;
|[https://www.youtube.com/watch?v=R4GN_-X__GA Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Communicating intent through the VI Icon - Jesper Kjær Sørensen (GPower)&lt;br /&gt;
|This presentation is one you don&#039;t want to miss. We will embark on a quest through the massive Icon Dungeon in the land of LabVIEW. The goal is to slay the dreaded default icon Dragon, which has brought much pain and suffering to LabVIEW developers. We will wander through the multi-level halls of VI icons to search for traps and recover the ancient knowledge of visual grouping. We will be spelunking into the Casm of Class icons. Finally, we will enter the Vault of Glyphs to fill our bags with loot and make a quick getaway through the dimension of Automation.&lt;br /&gt;
&lt;br /&gt;
My name is Jesper Kjær Sørensen. I am a level 5 Systems Engineer aboard the fantastic vessel GPower, hailing from Denmark. I have replaced my character sheet three times over the past 14 years since I graduated from the University of Aalborg. Throughout the years, I have honed my skills in LabVIEW and TestStand and dabbled in the dark arts of Python programming. I have several side quests involving photography, dairy cows, my family, and my love for Dungeons and Dragons.&lt;br /&gt;
|Jesper Kjær Sørensen&lt;br /&gt;
|[https://www.youtube.com/watch?v=wOntiXaIu2o Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Building the LabVIEW IDE and Tooling That You Always Wanted&lt;br /&gt;
|This presentation will give an insight into how you can build the LabVIEW features and tools you wish it had out of the box to make it even more productive. Emerson/NI have provided many hooks into the environment so let&#039;s use them to make LabVIEW better.&lt;br /&gt;
|Chris Roebuck (Konrad Technologies)&lt;br /&gt;
|[https://www.youtube.com/watch?v=3OBV-RSQSYI Recording]&lt;br /&gt;
|-&lt;br /&gt;
|VI Analyzer: The unsung hero of software quality&lt;br /&gt;
|In this presentation we explore the features of VI Analyzer and show how you can easily incorporate it into your daily workflow. We showcase how to implement your own tests using the in-built templates.&lt;br /&gt;
|Chris Roebuck (Konrad Technologies)&lt;br /&gt;
|[https://www.youtube.com/watch?v=yzjiZJZCe6A&amp;amp;list=PL7Ul36E7e0l97vayGr_OSl5tQlLj5jHkj Recording]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Tips and Tricks===&lt;br /&gt;
&lt;br /&gt;
These materials cover suggestions and insight from developers aimed at streamlining interaction with the development environment for the sake of increased productivity.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|I Find Your Lack of LabVIEW Programming Speed Disturbing&lt;br /&gt;
|In just an hour of LabVIEW programming, you interact with the LabVIEW IDE hundreds, perhaps thousands, of times. Chances are, you could be executing many editor gestures more efficiently. Explore how to change your workflow to perform the most common LabVIEW programming tasks as quickly as possible. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/labviewspeed Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Quick! Drop Your VI Execution Time!&lt;br /&gt;
|Simple tips and techniques for speeding up your VIs. This includes general purpose programming techniques, as well as the most efficient way to use profiling tools in LabVIEW. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/slowvis Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Don&#039;t Wait for LabVIEW R&amp;amp;D... Implement Your Own LabVIEW Features!&lt;br /&gt;
|You can choose from many hooks to add your own G-based features to the LabVIEW IDE (no text programming required). This session reveals every single one of those hooks (No, really!) along with some LabVIEW Scripting tips and best practices for implementing those LabVIEW features you always wanted.&lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnattlvhooks Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Hidden Gems in vi.lib&lt;br /&gt;
|A walkthrough of several useful VIs and APIs that ship with LabVIEW, but are not officially supported by NI.&lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://forums.ni.com/t5/Hidden-Gems-in-vi-lib/Hidden-Gems-in-vi-lib-pptx/td-p/3502591 Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Augmenting Right-Click Menus in LabVIEW&lt;br /&gt;
|All the details of the right-click plugins feature in LabVIEW, that allows you to extend the right-click menus in the LabVIEW editor purely with G code. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://forums.ni.com/t5/LabVIEW-Shortcut-Menu-Plug-Ins/Presentation-Augmenting-Right-Click-Menus-in-LabVIEW/ta-p/3521526 Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===UX / UI Design===&lt;br /&gt;
&lt;br /&gt;
These materials provide insights on how to design user-interfaces in LabVIEW&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
| Extensible and Modular UIs: Extend the VI Server With Object-Oriented Techniques&lt;br /&gt;
| Using QControls to create reusable UI modules.&lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[NIWeek 2018/UI: Extensible and Modular UIs: Extend the VI Server With Object-Oriented Techniques|Wiki Page]]&lt;br /&gt;
|-&lt;br /&gt;
| Encapsulating and Reusing your UI Code&lt;br /&gt;
| Using QControls to make Reusable, Encapsulated, Extensible UIs.&lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[Americas CLA Summit 2019/Encapsulating and Reusing your UI Code|Wiki Page]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| The LabVIEW UI of Your Dreams&lt;br /&gt;
| Often, the LabVIEW front panels we use day after day are far from a “dream UI,” and we’ve all seen some nightmare UIs. In this session, we’ll use a high‐minded design philosophy combined with practical developer checklists that you can apply to make your interfaces more functional, consistent, professional, and dreamy.&lt;br /&gt;
| Hunter Smith&lt;br /&gt;
| [https://www.youtube.com/watch?v=qpxiQ3dFDm0 YouTube Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI/UX Considerations when there is No Keyboard or Mouse&lt;br /&gt;
|This presentation provides an overview of best practices and lessons learned when developing software interfaces that will rely on a touch screen, especially given the number of UI components that are not well suited for a touch interface.&lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[Americas CLA Summit 2019/UI/UX Considerations when there is No Keyboard or Mouse|Wiki Page]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Smartphone-like User Interfaces in LabVIEW&lt;br /&gt;
| Do you want more advanced User Interfaces than you can normally get from LabVIEW? Maybe the user experience needs to be for a touch screen similar to common smartphone interfaces. I’ll show tricks to using the QControl Toolkit to create swipe, scroll, and selection via a touchscreen. &lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[GLA Summit 2022/Smartphone-like User Interfaces in LabVIEW| Wiki Page]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| How to successfully scale UIs in LabVIEW&lt;br /&gt;
| All started with a tough requirement: “The application needs more than 50 Synoptics” . With such a breath taking number, you need to think in a way of programming User Interfaces that is easily scalable, flexible and maintainable. As a programmer, the last thing you want is to have the need to implement a new feature and have to repeat the same piece of code in 50 different places. This presentation navigates through the process of getting a successful approach, from the idea to the implementation.&lt;br /&gt;
| Iker Segovia Revilla(ULMA)&lt;br /&gt;
| [[https://www.youtube.com/watch?v=zYhzQ0Mlp-I| Video]]&lt;br /&gt;
|-&lt;br /&gt;
|Thin Client TestStand&lt;br /&gt;
|Using LabVIEW WebUI hosted on and communicating with SystemLink to remotely control, monitor, and deploy Test software and equipment using a TestStand Server; all from a thin client or phone/tablet.&lt;br /&gt;
|Nathan Lutz (Konrad Technologies)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Debugging/Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
These materials cover suggestions and insight from developers aimed at debugging and troubleshooting LabVIEW applications.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Ludicrous Ways to Fix Broken LabVIEW Code&lt;br /&gt;
|When LabVIEW programmers encounter compiler errors, app builder failures, and crashes, they will usually settle for any hack, kludge, or workaround just to get usable code. This presentation demonstrates a number of ridiculous ways to get broken code running. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/ludicrouslabview Slides, Demos, and Recording]&lt;br /&gt;
|This content is very DNatt-specific, and may be difficult for others to present.&lt;br /&gt;
|-&lt;br /&gt;
|Benchmark and troubleshoot of a high throughput data acquisition system&lt;br /&gt;
|Provides an overview of the combination of tools and methods i used when creating systems for high throughput data acquisition. These type of systems are considered edge cases, but the lessons learned from this presentation can be applied to any other LabVIEW application to ensure an efficient troubleshooting.&lt;br /&gt;
|Sergio Velderrain&lt;br /&gt;
|Soon&lt;br /&gt;
|Yes- CLD Level proficiency, Desktop execution trace toolkit, VI Analyzer, exposure to system integration.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:User Group]]&lt;/div&gt;</summary>
		<author><name>Sergiovelderrain</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=User_group&amp;diff=34359</id>
		<title>User group</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=User_group&amp;diff=34359"/>
		<updated>2024-08-28T23:20:18Z</updated>

		<summary type="html">&lt;p&gt;Sergiovelderrain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
A &#039;&#039;&#039;User Group&#039;&#039;&#039;, or LabVIEW User Group (LUG), is a local group of LabVIEW enthusiasts that come together to share common interests or goals.  The user groups within the NI Community are segmented into different categories such as Local User Groups, Product User Groups, Special Interest Groups, and Partner Groups. Within each of these groups, you may collaborate with others on best practices, plan in-person meetups, or discuss any topic of your choice.&lt;br /&gt;
&amp;lt;ref&amp;gt;LabVIEW Forums: User Groups https://forums.ni.com/t5/User-Groups/ct-p/user-groups&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Organizing a User Group==&lt;br /&gt;
User groups are typically created out of a shared need to seek advice and share ideas among a community of individuals that are working on similar problems OR applications. It is recommended that such a group align on goals for the organization, such as the following:&lt;br /&gt;
# Share ideas and practices to improve the quality, performance, scalability and readability of LabVIEW code&lt;br /&gt;
# Provide a forum to solicit advice from peers regarding how best to solve technical and procedural challenges when developing LabVIEW code&lt;br /&gt;
# Drive standardization on stylings, code organization and tooling for the purpose of enabling greater reuse and collaboration&lt;br /&gt;
&lt;br /&gt;
See the [https://forums.ni.com/t5/User-Groups/ct-p/user-groups LabVIEW Community Forum: User Group List] to find one near you.&lt;br /&gt;
&lt;br /&gt;
==User Groups Roles and Responsibilities==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Role&lt;br /&gt;
! Resposibility&lt;br /&gt;
|-&lt;br /&gt;
| Owner &lt;br /&gt;
| Ultimately in charge, Get the ball rolling&lt;br /&gt;
|-&lt;br /&gt;
| Coordinator(s)&lt;br /&gt;
| Could be the same person as the owner or a committee of people. Their job is to organize the event: Work with sponsors, Find a location, Find a Presenter, [[Events|Schedule the Event]], and Advertise&lt;br /&gt;
|-&lt;br /&gt;
| Sponsors&lt;br /&gt;
| Sponsors provide financial backing for refreshments and could include using facilities for the meeting location.&lt;br /&gt;
|-&lt;br /&gt;
| Presenter&lt;br /&gt;
| Create content, Present, and Publish Content. Ensure attendees can find your presentation and source code if you can share it. Remember to provide links to other applicable resources and your LinkedIn or company pages. (A little self-promotion is allowed for the work you put into sharing your knowledge.) A LabVIEW Wiki page can be created for your presentation as a starting point for these resources ([[GLA Summit 2024/Fantastic LabVIEW Hooks and Where to Find Them|see example]]).&lt;br /&gt;
|-&lt;br /&gt;
| Attendees&lt;br /&gt;
| Attend the event. Be attentive and ask questions. Be willing to be the presenter sometimes too.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==User Group Content==&lt;br /&gt;
&lt;br /&gt;
This is a collection of content that can be used to organize and run a LabVIEW user group. &lt;br /&gt;
&lt;br /&gt;
===Fundamental Programming Constructs===&lt;br /&gt;
&lt;br /&gt;
These materials focus on the G syntax and language-specific constructs&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Python vs. LabVIEW Technical Deep Dive&lt;br /&gt;
|These slides are intended to explore important software considerations when developing large test and measurement software that needs to scale and the merits and considerations when using either LabVIEW. The original materials have been provided by NI but have been made open-source for the purpose of enabling the community to enhance and augment these materials with alternative view points and examples.&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://github.com/elijah286/LabVIEW-vs-python GitHub Repo of Slides]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Using Object-Oriented Programming LabVIEW&lt;br /&gt;
|This session will introduce object-oriented programming as a tool that can dramatically increase the reusability and scalability of your software. Instead of going through a purely academic exploration of the concept, this session attempts to map concepts that should be familiar to any experienced LabVIEW programming towards helping explain how you can evolve your daily programming tasks without starting all over.&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://forums.ni.com/t5/LabVIEW-Development-Best/Object-Oriented-Design-Patterns-Technical-Manual-and-Exercises/ta-p/3507995 Presentation and Demo Materials]&lt;br /&gt;
[https://www.ni.com/en/shop/labview/introduction-to-oop-and-hardware-abstraction-layers.html Video of session]&lt;br /&gt;
|Yes - experience implementing class-based software architectures&lt;br /&gt;
|-&lt;br /&gt;
|Malleable VIs Unlocked&lt;br /&gt;
|Malleable VI&#039;s have been available for quite some years and compliments our toolbox of reusable code perfectly.&lt;br /&gt;
&lt;br /&gt;
Join me on a journey through techniques that have yet to be shared but are the basis of the G²CPU high performance toolkit.&lt;br /&gt;
We&#039;ll have a look at a what its position is compared to polymorphic VI&#039;s, classes, case structures and other techniques to selectively execute code.&lt;br /&gt;
After which we will step-by-step go from simple ground rules to never publicized techniques to elevate your reusable libraries&lt;br /&gt;
|Natan Biesmans and Tom McQuillan&lt;br /&gt;
|[https://www.youtube.com/watch?v=EzhMQ0Gt_1A YouTube Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|What to Expect When You&#039;re Expecting an Error&lt;br /&gt;
|Connecting error wires across nodes on a block diagram is one of the most common, brainless tasks performed by a LabVIEW programmer. Unfortunately, this often means that VI behavior in an error condition is a second thought, if it&#039;s even thought about at all. This presentation will cover best practices in regards to the generation and propagation of errors on LabVIEW block diagrams. You should come out of this presentation with the ability to write VIs that are not only functionally correct in an error condition, but also precisely convey their exact error behavior in an error condition. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnatterrors Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|All About Collection Data Types&lt;br /&gt;
|Introduction to the fundamentals of Strings and Arrays, then moving into Sets and Maps, the newest data types in LabVIEW.  &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnattcollections Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Software Engineering and Team Based Development===&lt;br /&gt;
&lt;br /&gt;
These presentations are intended to review best practices for code design and development processes. They are generally more advanced and benefit a presenter who has multiple years of experience with the relevant tools and technologies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Moving from SVN to Git with LabVIEW&lt;br /&gt;
|Git tends to be the standard versioning system used in software development. DevOps platform like Gitlab and Github rely on it. Git could be a necessary transition to implement CI/CD.&lt;br /&gt;
From my experience and with data collected earlier this year, it seems that SVN is still used by many people in our LabVIEW world.&lt;br /&gt;
I want to share my journey from a former SVN user to a happy Git one and help developers to go further than just a &amp;quot;backup&amp;quot; tool.&lt;br /&gt;
Real experience and no command-line inside.&lt;br /&gt;
|Olivier Jourdan&lt;br /&gt;
|[https://www.youtube.com/watch?v=v_cdlwIWfPY YouTube Recording]&lt;br /&gt;
|Yes - familiarity with SCM, Git and SVN. Qualified presenters include: Olivier Jourdan, Fabiola De la Cueva and Emilie Kia&lt;br /&gt;
|-&lt;br /&gt;
|Team Based Development with LabVIEW&lt;br /&gt;
|This session will provide an overview of best practices and tooling that should be used to streamline LabVIEW development by a team of developers&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://github.com/elijah286/lvug-team-dev GitHub Repo for slides and demo materials]&lt;br /&gt;
|Yes - CLA-level knowledge of how to manage and coordinate development activities across a team&lt;br /&gt;
|-&lt;br /&gt;
|Improving Your LabVIEW Code with the VI Analyzer&lt;br /&gt;
|A comprehensive presentation on the features of the VI Analyzer, and how it can be used to improve code style, increase code performance, and detect bugs. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://forums.ni.com/t5/VI-Analyzer-Enthusiasts/Improving-Your-LabVIEW-Code-with-the-VI-Analyzer/m-p/3415352 Slides, Demos, and Recording]&lt;br /&gt;
|-&lt;br /&gt;
|Architecting long life-cycle LabVIEW applications&lt;br /&gt;
|Presentation provides an overview on one of the many ways of defining the processes to create LabVIEW code that will be used to generate multiple revisions of a product by a constantly changing team of developers.&lt;br /&gt;
|Sergio Velderrain&lt;br /&gt;
|Soon&lt;br /&gt;
|Yes - CLA-level knowledge, VI Package manager, CI/CD.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Software Architectures and Code Design Patterns===&lt;br /&gt;
&lt;br /&gt;
These presentations are intended to review best practices for code design and development processes. They are generally more advanced and benefit a presenter who has multiple years of experience with the relevant tools and technologies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Using Plugin Frameworks for Extensibility&lt;br /&gt;
|This session will show how to improve the reusability and extensibility of LabVIEW code through the use of dynamically loaded plugins&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://github.com/elijah286/Extensible-Config-Dialog Example source code]&lt;br /&gt;
|Yes - CLD-level knowledge of how to dynamically load and communicate with sub processes&lt;br /&gt;
|-&lt;br /&gt;
|Introduction to DQMH&lt;br /&gt;
|DQMH is the world’s most popular 3rd-party framework for LabVIEW, and was designed to facilitate the robust implementation of complex LabVIEW applications, while still being accessible to CLAD/CLD-level LabVIEW programmers.&lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnattdqmhintro Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Workers for LabVIEW&lt;br /&gt;
|Efficiently develop asynchronous applications using Workers for LabVIEW, a framework that provides simple LVOOP QMHs along with a comprehensive set of development tools to streamline application development. This framework is suitable for developing both small and large multi-process LabVIEW applications in a scalable,  modular and extensible way.&lt;br /&gt;
|Peter Scarfe&lt;br /&gt;
|[https://docs.workersforlabview.io User Guide, Introduction Video, Tutorial Videos]&lt;br /&gt;
|LabVIEW Core 3 or CLD level knowledge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Best Practices===&lt;br /&gt;
&lt;br /&gt;
These materials cover best practices for various aspects of LabVIEW development.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|An End to Brainless LabVIEW Programming&lt;br /&gt;
|There are lots of supposed &amp;quot;best practices&amp;quot; we do in LabVIEW without thinking. If we actually think about them, it turns out they may not be best practices at all. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/brainlesslabview Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Industrial Communications in LabVIEW&lt;br /&gt;
|Don’t underestimate the complexity of industrial communications protocols, nor the completeness of LabVIEW toolkits for supporting these. This presentation collates crowd-sourced data on the woes and wahays of integrating National Instruments systems into an industrial network, providing any developer with an up to date and pragmatically authored review of the state of current capabilities and maybe a brief look into the future.&lt;br /&gt;
&lt;br /&gt;
Dr. Richard Thomas, a founding member of GDevCon and the ALA, LabVIEW Champion, CLA and CLED, has worked with LabVIEW and NI systems for nearly 25 years, in various roles from Academia, Consultancy to Production Engineering, with experience in several industry sectors.&lt;br /&gt;
|Dr. Richard Thomas&lt;br /&gt;
|[https://www.youtube.com/watch?v=R4GN_-X__GA Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Communicating intent through the VI Icon - Jesper Kjær Sørensen (GPower)&lt;br /&gt;
|This presentation is one you don&#039;t want to miss. We will embark on a quest through the massive Icon Dungeon in the land of LabVIEW. The goal is to slay the dreaded default icon Dragon, which has brought much pain and suffering to LabVIEW developers. We will wander through the multi-level halls of VI icons to search for traps and recover the ancient knowledge of visual grouping. We will be spelunking into the Casm of Class icons. Finally, we will enter the Vault of Glyphs to fill our bags with loot and make a quick getaway through the dimension of Automation.&lt;br /&gt;
&lt;br /&gt;
My name is Jesper Kjær Sørensen. I am a level 5 Systems Engineer aboard the fantastic vessel GPower, hailing from Denmark. I have replaced my character sheet three times over the past 14 years since I graduated from the University of Aalborg. Throughout the years, I have honed my skills in LabVIEW and TestStand and dabbled in the dark arts of Python programming. I have several side quests involving photography, dairy cows, my family, and my love for Dungeons and Dragons.&lt;br /&gt;
|Jesper Kjær Sørensen&lt;br /&gt;
|[https://www.youtube.com/watch?v=wOntiXaIu2o Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Building the LabVIEW IDE and Tooling That You Always Wanted&lt;br /&gt;
|This presentation will give an insight into how you can build the LabVIEW features and tools you wish it had out of the box to make it even more productive. Emerson/NI have provided many hooks into the environment so let&#039;s use them to make LabVIEW better.&lt;br /&gt;
|Chris Roebuck (Konrad Technologies)&lt;br /&gt;
|[https://www.youtube.com/watch?v=3OBV-RSQSYI Recording]&lt;br /&gt;
|-&lt;br /&gt;
|VI Analyzer: The unsung hero of software quality&lt;br /&gt;
|In this presentation we explore the features of VI Analyzer and show how you can easily incorporate it into your daily workflow. We showcase how to implement your own tests using the in-built templates.&lt;br /&gt;
|Chris Roebuck (Konrad Technologies)&lt;br /&gt;
|[https://www.youtube.com/watch?v=yzjiZJZCe6A&amp;amp;list=PL7Ul36E7e0l97vayGr_OSl5tQlLj5jHkj Recording]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Tips and Tricks===&lt;br /&gt;
&lt;br /&gt;
These materials cover suggestions and insight from developers aimed at streamlining interaction with the development environment for the sake of increased productivity.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|I Find Your Lack of LabVIEW Programming Speed Disturbing&lt;br /&gt;
|In just an hour of LabVIEW programming, you interact with the LabVIEW IDE hundreds, perhaps thousands, of times. Chances are, you could be executing many editor gestures more efficiently. Explore how to change your workflow to perform the most common LabVIEW programming tasks as quickly as possible. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/labviewspeed Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Quick! Drop Your VI Execution Time!&lt;br /&gt;
|Simple tips and techniques for speeding up your VIs. This includes general purpose programming techniques, as well as the most efficient way to use profiling tools in LabVIEW. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/slowvis Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Don&#039;t Wait for LabVIEW R&amp;amp;D... Implement Your Own LabVIEW Features!&lt;br /&gt;
|You can choose from many hooks to add your own G-based features to the LabVIEW IDE (no text programming required). This session reveals every single one of those hooks (No, really!) along with some LabVIEW Scripting tips and best practices for implementing those LabVIEW features you always wanted.&lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnattlvhooks Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Hidden Gems in vi.lib&lt;br /&gt;
|A walkthrough of several useful VIs and APIs that ship with LabVIEW, but are not officially supported by NI.&lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://forums.ni.com/t5/Hidden-Gems-in-vi-lib/Hidden-Gems-in-vi-lib-pptx/td-p/3502591 Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Augmenting Right-Click Menus in LabVIEW&lt;br /&gt;
|All the details of the right-click plugins feature in LabVIEW, that allows you to extend the right-click menus in the LabVIEW editor purely with G code. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://forums.ni.com/t5/LabVIEW-Shortcut-Menu-Plug-Ins/Presentation-Augmenting-Right-Click-Menus-in-LabVIEW/ta-p/3521526 Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===UX / UI Design===&lt;br /&gt;
&lt;br /&gt;
These materials provide insights on how to design user-interfaces in LabVIEW&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
| Extensible and Modular UIs: Extend the VI Server With Object-Oriented Techniques&lt;br /&gt;
| Using QControls to create reusable UI modules.&lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[NIWeek 2018/UI: Extensible and Modular UIs: Extend the VI Server With Object-Oriented Techniques|Wiki Page]]&lt;br /&gt;
|-&lt;br /&gt;
| Encapsulating and Reusing your UI Code&lt;br /&gt;
| Using QControls to make Reusable, Encapsulated, Extensible UIs.&lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[Americas CLA Summit 2019/Encapsulating and Reusing your UI Code|Wiki Page]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| The LabVIEW UI of Your Dreams&lt;br /&gt;
| Often, the LabVIEW front panels we use day after day are far from a “dream UI,” and we’ve all seen some nightmare UIs. In this session, we’ll use a high‐minded design philosophy combined with practical developer checklists that you can apply to make your interfaces more functional, consistent, professional, and dreamy.&lt;br /&gt;
| Hunter Smith&lt;br /&gt;
| [https://www.youtube.com/watch?v=qpxiQ3dFDm0 YouTube Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI/UX Considerations when there is No Keyboard or Mouse&lt;br /&gt;
|This presentation provides an overview of best practices and lessons learned when developing software interfaces that will rely on a touch screen, especially given the number of UI components that are not well suited for a touch interface.&lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[Americas CLA Summit 2019/UI/UX Considerations when there is No Keyboard or Mouse|Wiki Page]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Smartphone-like User Interfaces in LabVIEW&lt;br /&gt;
| Do you want more advanced User Interfaces than you can normally get from LabVIEW? Maybe the user experience needs to be for a touch screen similar to common smartphone interfaces. I’ll show tricks to using the QControl Toolkit to create swipe, scroll, and selection via a touchscreen. &lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[GLA Summit 2022/Smartphone-like User Interfaces in LabVIEW| Wiki Page]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| How to successfully scale UIs in LabVIEW&lt;br /&gt;
| All started with a tough requirement: “The application needs more than 50 Synoptics” . With such a breath taking number, you need to think in a way of programming User Interfaces that is easily scalable, flexible and maintainable. As a programmer, the last thing you want is to have the need to implement a new feature and have to repeat the same piece of code in 50 different places. This presentation navigates through the process of getting a successful approach, from the idea to the implementation.&lt;br /&gt;
| Iker Segovia Revilla(ULMA)&lt;br /&gt;
| [[https://www.youtube.com/watch?v=zYhzQ0Mlp-I| Video]]&lt;br /&gt;
|-&lt;br /&gt;
|Thin Client TestStand&lt;br /&gt;
|Using LabVIEW WebUI hosted on and communicating with SystemLink to remotely control, monitor, and deploy Test software and equipment using a TestStand Server; all from a thin client or phone/tablet.&lt;br /&gt;
|Nathan Lutz (Konrad Technologies)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Debugging/Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
These materials cover suggestions and insight from developers aimed at debugging and troubleshooting LabVIEW applications.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Ludicrous Ways to Fix Broken LabVIEW Code&lt;br /&gt;
|When LabVIEW programmers encounter compiler errors, app builder failures, and crashes, they will usually settle for any hack, kludge, or workaround just to get usable code. This presentation demonstrates a number of ridiculous ways to get broken code running. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/ludicrouslabview Slides, Demos, and Recording]&lt;br /&gt;
|This content is very DNatt-specific, and may be difficult for others to present.&lt;br /&gt;
|-&lt;br /&gt;
|Benchmark and troubleshoot of a high throughput data acquisition system&lt;br /&gt;
|Provides an overview of the combination of tools and methods i used when creating systems for high throughput data acquisition system. These type of systems are edge cases, and the lessons learned from this application can be applied to any other LabVIEW application to ensure an efficient troubleshooting.&lt;br /&gt;
|Sergio Velderrain&lt;br /&gt;
|Soon&lt;br /&gt;
|Yes- CLD Level proficiency, Desktop execution trace toolkit, VI Analyzer, exposure to system integration.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:User Group]]&lt;/div&gt;</summary>
		<author><name>Sergiovelderrain</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=User_group&amp;diff=34358</id>
		<title>User group</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=User_group&amp;diff=34358"/>
		<updated>2024-08-28T23:16:56Z</updated>

		<summary type="html">&lt;p&gt;Sergiovelderrain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
A &#039;&#039;&#039;User Group&#039;&#039;&#039;, or LabVIEW User Group (LUG), is a local group of LabVIEW enthusiasts that come together to share common interests or goals.  The user groups within the NI Community are segmented into different categories such as Local User Groups, Product User Groups, Special Interest Groups, and Partner Groups. Within each of these groups, you may collaborate with others on best practices, plan in-person meetups, or discuss any topic of your choice.&lt;br /&gt;
&amp;lt;ref&amp;gt;LabVIEW Forums: User Groups https://forums.ni.com/t5/User-Groups/ct-p/user-groups&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Organizing a User Group==&lt;br /&gt;
User groups are typically created out of a shared need to seek advice and share ideas among a community of individuals that are working on similar problems OR applications. It is recommended that such a group align on goals for the organization, such as the following:&lt;br /&gt;
# Share ideas and practices to improve the quality, performance, scalability and readability of LabVIEW code&lt;br /&gt;
# Provide a forum to solicit advice from peers regarding how best to solve technical and procedural challenges when developing LabVIEW code&lt;br /&gt;
# Drive standardization on stylings, code organization and tooling for the purpose of enabling greater reuse and collaboration&lt;br /&gt;
&lt;br /&gt;
See the [https://forums.ni.com/t5/User-Groups/ct-p/user-groups LabVIEW Community Forum: User Group List] to find one near you.&lt;br /&gt;
&lt;br /&gt;
==User Groups Roles and Responsibilities==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Role&lt;br /&gt;
! Resposibility&lt;br /&gt;
|-&lt;br /&gt;
| Owner &lt;br /&gt;
| Ultimately in charge, Get the ball rolling&lt;br /&gt;
|-&lt;br /&gt;
| Coordinator(s)&lt;br /&gt;
| Could be the same person as the owner or a committee of people. Their job is to organize the event: Work with sponsors, Find a location, Find a Presenter, [[Events|Schedule the Event]], and Advertise&lt;br /&gt;
|-&lt;br /&gt;
| Sponsors&lt;br /&gt;
| Sponsors provide financial backing for refreshments and could include using facilities for the meeting location.&lt;br /&gt;
|-&lt;br /&gt;
| Presenter&lt;br /&gt;
| Create content, Present, and Publish Content. Ensure attendees can find your presentation and source code if you can share it. Remember to provide links to other applicable resources and your LinkedIn or company pages. (A little self-promotion is allowed for the work you put into sharing your knowledge.) A LabVIEW Wiki page can be created for your presentation as a starting point for these resources ([[GLA Summit 2024/Fantastic LabVIEW Hooks and Where to Find Them|see example]]).&lt;br /&gt;
|-&lt;br /&gt;
| Attendees&lt;br /&gt;
| Attend the event. Be attentive and ask questions. Be willing to be the presenter sometimes too.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==User Group Content==&lt;br /&gt;
&lt;br /&gt;
This is a collection of content that can be used to organize and run a LabVIEW user group. &lt;br /&gt;
&lt;br /&gt;
===Fundamental Programming Constructs===&lt;br /&gt;
&lt;br /&gt;
These materials focus on the G syntax and language-specific constructs&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Python vs. LabVIEW Technical Deep Dive&lt;br /&gt;
|These slides are intended to explore important software considerations when developing large test and measurement software that needs to scale and the merits and considerations when using either LabVIEW. The original materials have been provided by NI but have been made open-source for the purpose of enabling the community to enhance and augment these materials with alternative view points and examples.&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://github.com/elijah286/LabVIEW-vs-python GitHub Repo of Slides]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Using Object-Oriented Programming LabVIEW&lt;br /&gt;
|This session will introduce object-oriented programming as a tool that can dramatically increase the reusability and scalability of your software. Instead of going through a purely academic exploration of the concept, this session attempts to map concepts that should be familiar to any experienced LabVIEW programming towards helping explain how you can evolve your daily programming tasks without starting all over.&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://forums.ni.com/t5/LabVIEW-Development-Best/Object-Oriented-Design-Patterns-Technical-Manual-and-Exercises/ta-p/3507995 Presentation and Demo Materials]&lt;br /&gt;
[https://www.ni.com/en/shop/labview/introduction-to-oop-and-hardware-abstraction-layers.html Video of session]&lt;br /&gt;
|Yes - experience implementing class-based software architectures&lt;br /&gt;
|-&lt;br /&gt;
|Malleable VIs Unlocked&lt;br /&gt;
|Malleable VI&#039;s have been available for quite some years and compliments our toolbox of reusable code perfectly.&lt;br /&gt;
&lt;br /&gt;
Join me on a journey through techniques that have yet to be shared but are the basis of the G²CPU high performance toolkit.&lt;br /&gt;
We&#039;ll have a look at a what its position is compared to polymorphic VI&#039;s, classes, case structures and other techniques to selectively execute code.&lt;br /&gt;
After which we will step-by-step go from simple ground rules to never publicized techniques to elevate your reusable libraries&lt;br /&gt;
|Natan Biesmans and Tom McQuillan&lt;br /&gt;
|[https://www.youtube.com/watch?v=EzhMQ0Gt_1A YouTube Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|What to Expect When You&#039;re Expecting an Error&lt;br /&gt;
|Connecting error wires across nodes on a block diagram is one of the most common, brainless tasks performed by a LabVIEW programmer. Unfortunately, this often means that VI behavior in an error condition is a second thought, if it&#039;s even thought about at all. This presentation will cover best practices in regards to the generation and propagation of errors on LabVIEW block diagrams. You should come out of this presentation with the ability to write VIs that are not only functionally correct in an error condition, but also precisely convey their exact error behavior in an error condition. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnatterrors Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|All About Collection Data Types&lt;br /&gt;
|Introduction to the fundamentals of Strings and Arrays, then moving into Sets and Maps, the newest data types in LabVIEW.  &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnattcollections Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Software Engineering and Team Based Development===&lt;br /&gt;
&lt;br /&gt;
These presentations are intended to review best practices for code design and development processes. They are generally more advanced and benefit a presenter who has multiple years of experience with the relevant tools and technologies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Moving from SVN to Git with LabVIEW&lt;br /&gt;
|Git tends to be the standard versioning system used in software development. DevOps platform like Gitlab and Github rely on it. Git could be a necessary transition to implement CI/CD.&lt;br /&gt;
From my experience and with data collected earlier this year, it seems that SVN is still used by many people in our LabVIEW world.&lt;br /&gt;
I want to share my journey from a former SVN user to a happy Git one and help developers to go further than just a &amp;quot;backup&amp;quot; tool.&lt;br /&gt;
Real experience and no command-line inside.&lt;br /&gt;
|Olivier Jourdan&lt;br /&gt;
|[https://www.youtube.com/watch?v=v_cdlwIWfPY YouTube Recording]&lt;br /&gt;
|Yes - familiarity with SCM, Git and SVN. Qualified presenters include: Olivier Jourdan, Fabiola De la Cueva and Emilie Kia&lt;br /&gt;
|-&lt;br /&gt;
|Team Based Development with LabVIEW&lt;br /&gt;
|This session will provide an overview of best practices and tooling that should be used to streamline LabVIEW development by a team of developers&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://github.com/elijah286/lvug-team-dev GitHub Repo for slides and demo materials]&lt;br /&gt;
|Yes - CLA-level knowledge of how to manage and coordinate development activities across a team&lt;br /&gt;
|-&lt;br /&gt;
|Improving Your LabVIEW Code with the VI Analyzer&lt;br /&gt;
|A comprehensive presentation on the features of the VI Analyzer, and how it can be used to improve code style, increase code performance, and detect bugs. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://forums.ni.com/t5/VI-Analyzer-Enthusiasts/Improving-Your-LabVIEW-Code-with-the-VI-Analyzer/m-p/3415352 Slides, Demos, and Recording]&lt;br /&gt;
|-&lt;br /&gt;
|Architecting long life-cycle LabVIEW applications&lt;br /&gt;
|Presentation provides an overview on one of the many ways of defining the processes to create LabVIEW code that will be used to generate multiple revisions of a product by a constantly changing team of developers.&lt;br /&gt;
|Sergio Velderrain&lt;br /&gt;
|Soon&lt;br /&gt;
|Yes - CLA-level knowledge, VI Package manager, CI/CD.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Software Architectures and Code Design Patterns===&lt;br /&gt;
&lt;br /&gt;
These presentations are intended to review best practices for code design and development processes. They are generally more advanced and benefit a presenter who has multiple years of experience with the relevant tools and technologies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Using Plugin Frameworks for Extensibility&lt;br /&gt;
|This session will show how to improve the reusability and extensibility of LabVIEW code through the use of dynamically loaded plugins&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://github.com/elijah286/Extensible-Config-Dialog Example source code]&lt;br /&gt;
|Yes - CLD-level knowledge of how to dynamically load and communicate with sub processes&lt;br /&gt;
|-&lt;br /&gt;
|Introduction to DQMH&lt;br /&gt;
|DQMH is the world’s most popular 3rd-party framework for LabVIEW, and was designed to facilitate the robust implementation of complex LabVIEW applications, while still being accessible to CLAD/CLD-level LabVIEW programmers.&lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnattdqmhintro Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Workers for LabVIEW&lt;br /&gt;
|Efficiently develop asynchronous applications using Workers for LabVIEW, a framework that provides simple LVOOP QMHs along with a comprehensive set of development tools to streamline application development. This framework is suitable for developing both small and large multi-process LabVIEW applications in a scalable,  modular and extensible way.&lt;br /&gt;
|Peter Scarfe&lt;br /&gt;
|[https://docs.workersforlabview.io User Guide, Introduction Video, Tutorial Videos]&lt;br /&gt;
|LabVIEW Core 3 or CLD level knowledge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Best Practices===&lt;br /&gt;
&lt;br /&gt;
These materials cover best practices for various aspects of LabVIEW development.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|An End to Brainless LabVIEW Programming&lt;br /&gt;
|There are lots of supposed &amp;quot;best practices&amp;quot; we do in LabVIEW without thinking. If we actually think about them, it turns out they may not be best practices at all. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/brainlesslabview Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Industrial Communications in LabVIEW&lt;br /&gt;
|Don’t underestimate the complexity of industrial communications protocols, nor the completeness of LabVIEW toolkits for supporting these. This presentation collates crowd-sourced data on the woes and wahays of integrating National Instruments systems into an industrial network, providing any developer with an up to date and pragmatically authored review of the state of current capabilities and maybe a brief look into the future.&lt;br /&gt;
&lt;br /&gt;
Dr. Richard Thomas, a founding member of GDevCon and the ALA, LabVIEW Champion, CLA and CLED, has worked with LabVIEW and NI systems for nearly 25 years, in various roles from Academia, Consultancy to Production Engineering, with experience in several industry sectors.&lt;br /&gt;
|Dr. Richard Thomas&lt;br /&gt;
|[https://www.youtube.com/watch?v=R4GN_-X__GA Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Communicating intent through the VI Icon - Jesper Kjær Sørensen (GPower)&lt;br /&gt;
|This presentation is one you don&#039;t want to miss. We will embark on a quest through the massive Icon Dungeon in the land of LabVIEW. The goal is to slay the dreaded default icon Dragon, which has brought much pain and suffering to LabVIEW developers. We will wander through the multi-level halls of VI icons to search for traps and recover the ancient knowledge of visual grouping. We will be spelunking into the Casm of Class icons. Finally, we will enter the Vault of Glyphs to fill our bags with loot and make a quick getaway through the dimension of Automation.&lt;br /&gt;
&lt;br /&gt;
My name is Jesper Kjær Sørensen. I am a level 5 Systems Engineer aboard the fantastic vessel GPower, hailing from Denmark. I have replaced my character sheet three times over the past 14 years since I graduated from the University of Aalborg. Throughout the years, I have honed my skills in LabVIEW and TestStand and dabbled in the dark arts of Python programming. I have several side quests involving photography, dairy cows, my family, and my love for Dungeons and Dragons.&lt;br /&gt;
|Jesper Kjær Sørensen&lt;br /&gt;
|[https://www.youtube.com/watch?v=wOntiXaIu2o Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Building the LabVIEW IDE and Tooling That You Always Wanted&lt;br /&gt;
|This presentation will give an insight into how you can build the LabVIEW features and tools you wish it had out of the box to make it even more productive. Emerson/NI have provided many hooks into the environment so let&#039;s use them to make LabVIEW better.&lt;br /&gt;
|Chris Roebuck (Konrad Technologies)&lt;br /&gt;
|[https://www.youtube.com/watch?v=3OBV-RSQSYI Recording]&lt;br /&gt;
|-&lt;br /&gt;
|VI Analyzer: The unsung hero of software quality&lt;br /&gt;
|In this presentation we explore the features of VI Analyzer and show how you can easily incorporate it into your daily workflow. We showcase how to implement your own tests using the in-built templates.&lt;br /&gt;
|Chris Roebuck (Konrad Technologies)&lt;br /&gt;
|[https://www.youtube.com/watch?v=yzjiZJZCe6A&amp;amp;list=PL7Ul36E7e0l97vayGr_OSl5tQlLj5jHkj Recording]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Tips and Tricks===&lt;br /&gt;
&lt;br /&gt;
These materials cover suggestions and insight from developers aimed at streamlining interaction with the development environment for the sake of increased productivity.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|I Find Your Lack of LabVIEW Programming Speed Disturbing&lt;br /&gt;
|In just an hour of LabVIEW programming, you interact with the LabVIEW IDE hundreds, perhaps thousands, of times. Chances are, you could be executing many editor gestures more efficiently. Explore how to change your workflow to perform the most common LabVIEW programming tasks as quickly as possible. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/labviewspeed Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Quick! Drop Your VI Execution Time!&lt;br /&gt;
|Simple tips and techniques for speeding up your VIs. This includes general purpose programming techniques, as well as the most efficient way to use profiling tools in LabVIEW. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/slowvis Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Don&#039;t Wait for LabVIEW R&amp;amp;D... Implement Your Own LabVIEW Features!&lt;br /&gt;
|You can choose from many hooks to add your own G-based features to the LabVIEW IDE (no text programming required). This session reveals every single one of those hooks (No, really!) along with some LabVIEW Scripting tips and best practices for implementing those LabVIEW features you always wanted.&lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnattlvhooks Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Hidden Gems in vi.lib&lt;br /&gt;
|A walkthrough of several useful VIs and APIs that ship with LabVIEW, but are not officially supported by NI.&lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://forums.ni.com/t5/Hidden-Gems-in-vi-lib/Hidden-Gems-in-vi-lib-pptx/td-p/3502591 Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Augmenting Right-Click Menus in LabVIEW&lt;br /&gt;
|All the details of the right-click plugins feature in LabVIEW, that allows you to extend the right-click menus in the LabVIEW editor purely with G code. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://forums.ni.com/t5/LabVIEW-Shortcut-Menu-Plug-Ins/Presentation-Augmenting-Right-Click-Menus-in-LabVIEW/ta-p/3521526 Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===UX / UI Design===&lt;br /&gt;
&lt;br /&gt;
These materials provide insights on how to design user-interfaces in LabVIEW&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
| Extensible and Modular UIs: Extend the VI Server With Object-Oriented Techniques&lt;br /&gt;
| Using QControls to create reusable UI modules.&lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[NIWeek 2018/UI: Extensible and Modular UIs: Extend the VI Server With Object-Oriented Techniques|Wiki Page]]&lt;br /&gt;
|-&lt;br /&gt;
| Encapsulating and Reusing your UI Code&lt;br /&gt;
| Using QControls to make Reusable, Encapsulated, Extensible UIs.&lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[Americas CLA Summit 2019/Encapsulating and Reusing your UI Code|Wiki Page]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| The LabVIEW UI of Your Dreams&lt;br /&gt;
| Often, the LabVIEW front panels we use day after day are far from a “dream UI,” and we’ve all seen some nightmare UIs. In this session, we’ll use a high‐minded design philosophy combined with practical developer checklists that you can apply to make your interfaces more functional, consistent, professional, and dreamy.&lt;br /&gt;
| Hunter Smith&lt;br /&gt;
| [https://www.youtube.com/watch?v=qpxiQ3dFDm0 YouTube Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI/UX Considerations when there is No Keyboard or Mouse&lt;br /&gt;
|This presentation provides an overview of best practices and lessons learned when developing software interfaces that will rely on a touch screen, especially given the number of UI components that are not well suited for a touch interface.&lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[Americas CLA Summit 2019/UI/UX Considerations when there is No Keyboard or Mouse|Wiki Page]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Smartphone-like User Interfaces in LabVIEW&lt;br /&gt;
| Do you want more advanced User Interfaces than you can normally get from LabVIEW? Maybe the user experience needs to be for a touch screen similar to common smartphone interfaces. I’ll show tricks to using the QControl Toolkit to create swipe, scroll, and selection via a touchscreen. &lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[GLA Summit 2022/Smartphone-like User Interfaces in LabVIEW| Wiki Page]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| How to successfully scale UIs in LabVIEW&lt;br /&gt;
| All started with a tough requirement: “The application needs more than 50 Synoptics” . With such a breath taking number, you need to think in a way of programming User Interfaces that is easily scalable, flexible and maintainable. As a programmer, the last thing you want is to have the need to implement a new feature and have to repeat the same piece of code in 50 different places. This presentation navigates through the process of getting a successful approach, from the idea to the implementation.&lt;br /&gt;
| Iker Segovia Revilla(ULMA)&lt;br /&gt;
| [[https://www.youtube.com/watch?v=zYhzQ0Mlp-I| Video]]&lt;br /&gt;
|-&lt;br /&gt;
|Thin Client TestStand&lt;br /&gt;
|Using LabVIEW WebUI hosted on and communicating with SystemLink to remotely control, monitor, and deploy Test software and equipment using a TestStand Server; all from a thin client or phone/tablet.&lt;br /&gt;
|Nathan Lutz (Konrad Technologies)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Debugging/Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
These materials cover suggestions and insight from developers aimed at debugging and troubleshooting LabVIEW applications.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Ludicrous Ways to Fix Broken LabVIEW Code&lt;br /&gt;
|When LabVIEW programmers encounter compiler errors, app builder failures, and crashes, they will usually settle for any hack, kludge, or workaround just to get usable code. This presentation demonstrates a number of ridiculous ways to get broken code running. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/ludicrouslabview Slides, Demos, and Recording]&lt;br /&gt;
|This content is very DNatt-specific, and may be difficult for others to present.&lt;br /&gt;
|-&lt;br /&gt;
|Benchmark and troubleshoot of a high throughput data acquisition system&lt;br /&gt;
|Provides an overview of the combination of tools and methods i used when creating systems for high throughput data acquisition system. &lt;br /&gt;
|Sergio Velderrain&lt;br /&gt;
|Soon&lt;br /&gt;
|Yes- CLD Level proficiency, Desktop execution trace toolkit, VI Analyzer, exposure to system integration.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:User Group]]&lt;/div&gt;</summary>
		<author><name>Sergiovelderrain</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=User_group&amp;diff=34357</id>
		<title>User group</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=User_group&amp;diff=34357"/>
		<updated>2024-08-28T23:04:45Z</updated>

		<summary type="html">&lt;p&gt;Sergiovelderrain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
A &#039;&#039;&#039;User Group&#039;&#039;&#039;, or LabVIEW User Group (LUG), is a local group of LabVIEW enthusiasts that come together to share common interests or goals.  The user groups within the NI Community are segmented into different categories such as Local User Groups, Product User Groups, Special Interest Groups, and Partner Groups. Within each of these groups, you may collaborate with others on best practices, plan in-person meetups, or discuss any topic of your choice.&lt;br /&gt;
&amp;lt;ref&amp;gt;LabVIEW Forums: User Groups https://forums.ni.com/t5/User-Groups/ct-p/user-groups&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Organizing a User Group==&lt;br /&gt;
User groups are typically created out of a shared need to seek advice and share ideas among a community of individuals that are working on similar problems OR applications. It is recommended that such a group align on goals for the organization, such as the following:&lt;br /&gt;
# Share ideas and practices to improve the quality, performance, scalability and readability of LabVIEW code&lt;br /&gt;
# Provide a forum to solicit advice from peers regarding how best to solve technical and procedural challenges when developing LabVIEW code&lt;br /&gt;
# Drive standardization on stylings, code organization and tooling for the purpose of enabling greater reuse and collaboration&lt;br /&gt;
&lt;br /&gt;
See the [https://forums.ni.com/t5/User-Groups/ct-p/user-groups LabVIEW Community Forum: User Group List] to find one near you.&lt;br /&gt;
&lt;br /&gt;
==User Groups Roles and Responsibilities==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Role&lt;br /&gt;
! Resposibility&lt;br /&gt;
|-&lt;br /&gt;
| Owner &lt;br /&gt;
| Ultimately in charge, Get the ball rolling&lt;br /&gt;
|-&lt;br /&gt;
| Coordinator(s)&lt;br /&gt;
| Could be the same person as the owner or a committee of people. Their job is to organize the event: Work with sponsors, Find a location, Find a Presenter, [[Events|Schedule the Event]], and Advertise&lt;br /&gt;
|-&lt;br /&gt;
| Sponsors&lt;br /&gt;
| Sponsors provide financial backing for refreshments and could include using facilities for the meeting location.&lt;br /&gt;
|-&lt;br /&gt;
| Presenter&lt;br /&gt;
| Create content, Present, and Publish Content. Ensure attendees can find your presentation and source code if you can share it. Remember to provide links to other applicable resources and your LinkedIn or company pages. (A little self-promotion is allowed for the work you put into sharing your knowledge.) A LabVIEW Wiki page can be created for your presentation as a starting point for these resources ([[GLA Summit 2024/Fantastic LabVIEW Hooks and Where to Find Them|see example]]).&lt;br /&gt;
|-&lt;br /&gt;
| Attendees&lt;br /&gt;
| Attend the event. Be attentive and ask questions. Be willing to be the presenter sometimes too.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==User Group Content==&lt;br /&gt;
&lt;br /&gt;
This is a collection of content that can be used to organize and run a LabVIEW user group. &lt;br /&gt;
&lt;br /&gt;
===Fundamental Programming Constructs===&lt;br /&gt;
&lt;br /&gt;
These materials focus on the G syntax and language-specific constructs&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Python vs. LabVIEW Technical Deep Dive&lt;br /&gt;
|These slides are intended to explore important software considerations when developing large test and measurement software that needs to scale and the merits and considerations when using either LabVIEW. The original materials have been provided by NI but have been made open-source for the purpose of enabling the community to enhance and augment these materials with alternative view points and examples.&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://github.com/elijah286/LabVIEW-vs-python GitHub Repo of Slides]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Using Object-Oriented Programming LabVIEW&lt;br /&gt;
|This session will introduce object-oriented programming as a tool that can dramatically increase the reusability and scalability of your software. Instead of going through a purely academic exploration of the concept, this session attempts to map concepts that should be familiar to any experienced LabVIEW programming towards helping explain how you can evolve your daily programming tasks without starting all over.&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://forums.ni.com/t5/LabVIEW-Development-Best/Object-Oriented-Design-Patterns-Technical-Manual-and-Exercises/ta-p/3507995 Presentation and Demo Materials]&lt;br /&gt;
[https://www.ni.com/en/shop/labview/introduction-to-oop-and-hardware-abstraction-layers.html Video of session]&lt;br /&gt;
|Yes - experience implementing class-based software architectures&lt;br /&gt;
|-&lt;br /&gt;
|Malleable VIs Unlocked&lt;br /&gt;
|Malleable VI&#039;s have been available for quite some years and compliments our toolbox of reusable code perfectly.&lt;br /&gt;
&lt;br /&gt;
Join me on a journey through techniques that have yet to be shared but are the basis of the G²CPU high performance toolkit.&lt;br /&gt;
We&#039;ll have a look at a what its position is compared to polymorphic VI&#039;s, classes, case structures and other techniques to selectively execute code.&lt;br /&gt;
After which we will step-by-step go from simple ground rules to never publicized techniques to elevate your reusable libraries&lt;br /&gt;
|Natan Biesmans and Tom McQuillan&lt;br /&gt;
|[https://www.youtube.com/watch?v=EzhMQ0Gt_1A YouTube Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|What to Expect When You&#039;re Expecting an Error&lt;br /&gt;
|Connecting error wires across nodes on a block diagram is one of the most common, brainless tasks performed by a LabVIEW programmer. Unfortunately, this often means that VI behavior in an error condition is a second thought, if it&#039;s even thought about at all. This presentation will cover best practices in regards to the generation and propagation of errors on LabVIEW block diagrams. You should come out of this presentation with the ability to write VIs that are not only functionally correct in an error condition, but also precisely convey their exact error behavior in an error condition. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnatterrors Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|All About Collection Data Types&lt;br /&gt;
|Introduction to the fundamentals of Strings and Arrays, then moving into Sets and Maps, the newest data types in LabVIEW.  &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnattcollections Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Software Engineering and Team Based Development===&lt;br /&gt;
&lt;br /&gt;
These presentations are intended to review best practices for code design and development processes. They are generally more advanced and benefit a presenter who has multiple years of experience with the relevant tools and technologies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Moving from SVN to Git with LabVIEW&lt;br /&gt;
|Git tends to be the standard versioning system used in software development. DevOps platform like Gitlab and Github rely on it. Git could be a necessary transition to implement CI/CD.&lt;br /&gt;
From my experience and with data collected earlier this year, it seems that SVN is still used by many people in our LabVIEW world.&lt;br /&gt;
I want to share my journey from a former SVN user to a happy Git one and help developers to go further than just a &amp;quot;backup&amp;quot; tool.&lt;br /&gt;
Real experience and no command-line inside.&lt;br /&gt;
|Olivier Jourdan&lt;br /&gt;
|[https://www.youtube.com/watch?v=v_cdlwIWfPY YouTube Recording]&lt;br /&gt;
|Yes - familiarity with SCM, Git and SVN. Qualified presenters include: Olivier Jourdan, Fabiola De la Cueva and Emilie Kia&lt;br /&gt;
|-&lt;br /&gt;
|Team Based Development with LabVIEW&lt;br /&gt;
|This session will provide an overview of best practices and tooling that should be used to streamline LabVIEW development by a team of developers&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://github.com/elijah286/lvug-team-dev GitHub Repo for slides and demo materials]&lt;br /&gt;
|Yes - CLA-level knowledge of how to manage and coordinate development activities across a team&lt;br /&gt;
|-&lt;br /&gt;
|Improving Your LabVIEW Code with the VI Analyzer&lt;br /&gt;
|A comprehensive presentation on the features of the VI Analyzer, and how it can be used to improve code style, increase code performance, and detect bugs. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://forums.ni.com/t5/VI-Analyzer-Enthusiasts/Improving-Your-LabVIEW-Code-with-the-VI-Analyzer/m-p/3415352 Slides, Demos, and Recording]&lt;br /&gt;
|-&lt;br /&gt;
|Architecting long life-cycle LabVIEW applications&lt;br /&gt;
|Presentation provides an overview on one of the many ways of defining the processes to create LabVIEW code that will be used to generate multiple revisions of a product by a constantly changing team of developers.&lt;br /&gt;
|Sergio Velderrain&lt;br /&gt;
|Soon&lt;br /&gt;
|Yes - CLA-level knowledge, VI Package manager, CI/CD.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Software Architectures and Code Design Patterns===&lt;br /&gt;
&lt;br /&gt;
These presentations are intended to review best practices for code design and development processes. They are generally more advanced and benefit a presenter who has multiple years of experience with the relevant tools and technologies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Using Plugin Frameworks for Extensibility&lt;br /&gt;
|This session will show how to improve the reusability and extensibility of LabVIEW code through the use of dynamically loaded plugins&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://github.com/elijah286/Extensible-Config-Dialog Example source code]&lt;br /&gt;
|Yes - CLD-level knowledge of how to dynamically load and communicate with sub processes&lt;br /&gt;
|-&lt;br /&gt;
|Introduction to DQMH&lt;br /&gt;
|DQMH is the world’s most popular 3rd-party framework for LabVIEW, and was designed to facilitate the robust implementation of complex LabVIEW applications, while still being accessible to CLAD/CLD-level LabVIEW programmers.&lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnattdqmhintro Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Workers for LabVIEW&lt;br /&gt;
|Efficiently develop asynchronous applications using Workers for LabVIEW, a framework that provides simple LVOOP QMHs along with a comprehensive set of development tools to streamline application development. This framework is suitable for developing both small and large multi-process LabVIEW applications in a scalable,  modular and extensible way.&lt;br /&gt;
|Peter Scarfe&lt;br /&gt;
|[https://docs.workersforlabview.io User Guide, Introduction Video, Tutorial Videos]&lt;br /&gt;
|LabVIEW Core 3 or CLD level knowledge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Best Practices===&lt;br /&gt;
&lt;br /&gt;
These materials cover best practices for various aspects of LabVIEW development.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|An End to Brainless LabVIEW Programming&lt;br /&gt;
|There are lots of supposed &amp;quot;best practices&amp;quot; we do in LabVIEW without thinking. If we actually think about them, it turns out they may not be best practices at all. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/brainlesslabview Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Industrial Communications in LabVIEW&lt;br /&gt;
|Don’t underestimate the complexity of industrial communications protocols, nor the completeness of LabVIEW toolkits for supporting these. This presentation collates crowd-sourced data on the woes and wahays of integrating National Instruments systems into an industrial network, providing any developer with an up to date and pragmatically authored review of the state of current capabilities and maybe a brief look into the future.&lt;br /&gt;
&lt;br /&gt;
Dr. Richard Thomas, a founding member of GDevCon and the ALA, LabVIEW Champion, CLA and CLED, has worked with LabVIEW and NI systems for nearly 25 years, in various roles from Academia, Consultancy to Production Engineering, with experience in several industry sectors.&lt;br /&gt;
|Dr. Richard Thomas&lt;br /&gt;
|[https://www.youtube.com/watch?v=R4GN_-X__GA Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Communicating intent through the VI Icon - Jesper Kjær Sørensen (GPower)&lt;br /&gt;
|This presentation is one you don&#039;t want to miss. We will embark on a quest through the massive Icon Dungeon in the land of LabVIEW. The goal is to slay the dreaded default icon Dragon, which has brought much pain and suffering to LabVIEW developers. We will wander through the multi-level halls of VI icons to search for traps and recover the ancient knowledge of visual grouping. We will be spelunking into the Casm of Class icons. Finally, we will enter the Vault of Glyphs to fill our bags with loot and make a quick getaway through the dimension of Automation.&lt;br /&gt;
&lt;br /&gt;
My name is Jesper Kjær Sørensen. I am a level 5 Systems Engineer aboard the fantastic vessel GPower, hailing from Denmark. I have replaced my character sheet three times over the past 14 years since I graduated from the University of Aalborg. Throughout the years, I have honed my skills in LabVIEW and TestStand and dabbled in the dark arts of Python programming. I have several side quests involving photography, dairy cows, my family, and my love for Dungeons and Dragons.&lt;br /&gt;
|Jesper Kjær Sørensen&lt;br /&gt;
|[https://www.youtube.com/watch?v=wOntiXaIu2o Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Building the LabVIEW IDE and Tooling That You Always Wanted&lt;br /&gt;
|This presentation will give an insight into how you can build the LabVIEW features and tools you wish it had out of the box to make it even more productive. Emerson/NI have provided many hooks into the environment so let&#039;s use them to make LabVIEW better.&lt;br /&gt;
|Chris Roebuck (Konrad Technologies)&lt;br /&gt;
|[https://www.youtube.com/watch?v=3OBV-RSQSYI Recording]&lt;br /&gt;
|-&lt;br /&gt;
|VI Analyzer: The unsung hero of software quality&lt;br /&gt;
|In this presentation we explore the features of VI Analyzer and show how you can easily incorporate it into your daily workflow. We showcase how to implement your own tests using the in-built templates.&lt;br /&gt;
|Chris Roebuck (Konrad Technologies)&lt;br /&gt;
|[https://www.youtube.com/watch?v=yzjiZJZCe6A&amp;amp;list=PL7Ul36E7e0l97vayGr_OSl5tQlLj5jHkj Recording]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Tips and Tricks===&lt;br /&gt;
&lt;br /&gt;
These materials cover suggestions and insight from developers aimed at streamlining interaction with the development environment for the sake of increased productivity.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|I Find Your Lack of LabVIEW Programming Speed Disturbing&lt;br /&gt;
|In just an hour of LabVIEW programming, you interact with the LabVIEW IDE hundreds, perhaps thousands, of times. Chances are, you could be executing many editor gestures more efficiently. Explore how to change your workflow to perform the most common LabVIEW programming tasks as quickly as possible. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/labviewspeed Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Quick! Drop Your VI Execution Time!&lt;br /&gt;
|Simple tips and techniques for speeding up your VIs. This includes general purpose programming techniques, as well as the most efficient way to use profiling tools in LabVIEW. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/slowvis Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Don&#039;t Wait for LabVIEW R&amp;amp;D... Implement Your Own LabVIEW Features!&lt;br /&gt;
|You can choose from many hooks to add your own G-based features to the LabVIEW IDE (no text programming required). This session reveals every single one of those hooks (No, really!) along with some LabVIEW Scripting tips and best practices for implementing those LabVIEW features you always wanted.&lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnattlvhooks Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Hidden Gems in vi.lib&lt;br /&gt;
|A walkthrough of several useful VIs and APIs that ship with LabVIEW, but are not officially supported by NI.&lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://forums.ni.com/t5/Hidden-Gems-in-vi-lib/Hidden-Gems-in-vi-lib-pptx/td-p/3502591 Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Augmenting Right-Click Menus in LabVIEW&lt;br /&gt;
|All the details of the right-click plugins feature in LabVIEW, that allows you to extend the right-click menus in the LabVIEW editor purely with G code. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://forums.ni.com/t5/LabVIEW-Shortcut-Menu-Plug-Ins/Presentation-Augmenting-Right-Click-Menus-in-LabVIEW/ta-p/3521526 Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===UX / UI Design===&lt;br /&gt;
&lt;br /&gt;
These materials provide insights on how to design user-interfaces in LabVIEW&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
| Extensible and Modular UIs: Extend the VI Server With Object-Oriented Techniques&lt;br /&gt;
| Using QControls to create reusable UI modules.&lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[NIWeek 2018/UI: Extensible and Modular UIs: Extend the VI Server With Object-Oriented Techniques|Wiki Page]]&lt;br /&gt;
|-&lt;br /&gt;
| Encapsulating and Reusing your UI Code&lt;br /&gt;
| Using QControls to make Reusable, Encapsulated, Extensible UIs.&lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[Americas CLA Summit 2019/Encapsulating and Reusing your UI Code|Wiki Page]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| The LabVIEW UI of Your Dreams&lt;br /&gt;
| Often, the LabVIEW front panels we use day after day are far from a “dream UI,” and we’ve all seen some nightmare UIs. In this session, we’ll use a high‐minded design philosophy combined with practical developer checklists that you can apply to make your interfaces more functional, consistent, professional, and dreamy.&lt;br /&gt;
| Hunter Smith&lt;br /&gt;
| [https://www.youtube.com/watch?v=qpxiQ3dFDm0 YouTube Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI/UX Considerations when there is No Keyboard or Mouse&lt;br /&gt;
|This presentation provides an overview of best practices and lessons learned when developing software interfaces that will rely on a touch screen, especially given the number of UI components that are not well suited for a touch interface.&lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[Americas CLA Summit 2019/UI/UX Considerations when there is No Keyboard or Mouse|Wiki Page]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Smartphone-like User Interfaces in LabVIEW&lt;br /&gt;
| Do you want more advanced User Interfaces than you can normally get from LabVIEW? Maybe the user experience needs to be for a touch screen similar to common smartphone interfaces. I’ll show tricks to using the QControl Toolkit to create swipe, scroll, and selection via a touchscreen. &lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[GLA Summit 2022/Smartphone-like User Interfaces in LabVIEW| Wiki Page]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| How to successfully scale UIs in LabVIEW&lt;br /&gt;
| All started with a tough requirement: “The application needs more than 50 Synoptics” . With such a breath taking number, you need to think in a way of programming User Interfaces that is easily scalable, flexible and maintainable. As a programmer, the last thing you want is to have the need to implement a new feature and have to repeat the same piece of code in 50 different places. This presentation navigates through the process of getting a successful approach, from the idea to the implementation.&lt;br /&gt;
| Iker Segovia Revilla(ULMA)&lt;br /&gt;
| [[https://www.youtube.com/watch?v=zYhzQ0Mlp-I| Video]]&lt;br /&gt;
|-&lt;br /&gt;
|Thin Client TestStand&lt;br /&gt;
|Using LabVIEW WebUI hosted on and communicating with SystemLink to remotely control, monitor, and deploy Test software and equipment using a TestStand Server; all from a thin client or phone/tablet.&lt;br /&gt;
|Nathan Lutz (Konrad Technologies)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Debugging/Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
These materials cover suggestions and insight from developers aimed at debugging and troubleshooting LabVIEW applications.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Ludicrous Ways to Fix Broken LabVIEW Code&lt;br /&gt;
|When LabVIEW programmers encounter compiler errors, app builder failures, and crashes, they will usually settle for any hack, kludge, or workaround just to get usable code. This presentation demonstrates a number of ridiculous ways to get broken code running. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/ludicrouslabview Slides, Demos, and Recording]&lt;br /&gt;
|This content is very DNatt-specific, and may be difficult for others to present.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:User Group]]&lt;/div&gt;</summary>
		<author><name>Sergiovelderrain</name></author>
	</entry>
	<entry>
		<id>https://labviewwiki.org/w/index.php?title=User_group&amp;diff=34356</id>
		<title>User group</title>
		<link rel="alternate" type="text/html" href="https://labviewwiki.org/w/index.php?title=User_group&amp;diff=34356"/>
		<updated>2024-08-28T22:57:14Z</updated>

		<summary type="html">&lt;p&gt;Sergiovelderrain: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
A &#039;&#039;&#039;User Group&#039;&#039;&#039;, or LabVIEW User Group (LUG), is a local group of LabVIEW enthusiasts that come together to share common interests or goals.  The user groups within the NI Community are segmented into different categories such as Local User Groups, Product User Groups, Special Interest Groups, and Partner Groups. Within each of these groups, you may collaborate with others on best practices, plan in-person meetups, or discuss any topic of your choice.&lt;br /&gt;
&amp;lt;ref&amp;gt;LabVIEW Forums: User Groups https://forums.ni.com/t5/User-Groups/ct-p/user-groups&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Organizing a User Group==&lt;br /&gt;
User groups are typically created out of a shared need to seek advice and share ideas among a community of individuals that are working on similar problems OR applications. It is recommended that such a group align on goals for the organization, such as the following:&lt;br /&gt;
# Share ideas and practices to improve the quality, performance, scalability and readability of LabVIEW code&lt;br /&gt;
# Provide a forum to solicit advice from peers regarding how best to solve technical and procedural challenges when developing LabVIEW code&lt;br /&gt;
# Drive standardization on stylings, code organization and tooling for the purpose of enabling greater reuse and collaboration&lt;br /&gt;
&lt;br /&gt;
See the [https://forums.ni.com/t5/User-Groups/ct-p/user-groups LabVIEW Community Forum: User Group List] to find one near you.&lt;br /&gt;
&lt;br /&gt;
==User Groups Roles and Responsibilities==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Role&lt;br /&gt;
! Resposibility&lt;br /&gt;
|-&lt;br /&gt;
| Owner &lt;br /&gt;
| Ultimately in charge, Get the ball rolling&lt;br /&gt;
|-&lt;br /&gt;
| Coordinator(s)&lt;br /&gt;
| Could be the same person as the owner or a committee of people. Their job is to organize the event: Work with sponsors, Find a location, Find a Presenter, [[Events|Schedule the Event]], and Advertise&lt;br /&gt;
|-&lt;br /&gt;
| Sponsors&lt;br /&gt;
| Sponsors provide financial backing for refreshments and could include using facilities for the meeting location.&lt;br /&gt;
|-&lt;br /&gt;
| Presenter&lt;br /&gt;
| Create content, Present, and Publish Content. Ensure attendees can find your presentation and source code if you can share it. Remember to provide links to other applicable resources and your LinkedIn or company pages. (A little self-promotion is allowed for the work you put into sharing your knowledge.) A LabVIEW Wiki page can be created for your presentation as a starting point for these resources ([[GLA Summit 2024/Fantastic LabVIEW Hooks and Where to Find Them|see example]]).&lt;br /&gt;
|-&lt;br /&gt;
| Attendees&lt;br /&gt;
| Attend the event. Be attentive and ask questions. Be willing to be the presenter sometimes too.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==User Group Content==&lt;br /&gt;
&lt;br /&gt;
This is a collection of content that can be used to organize and run a LabVIEW user group. &lt;br /&gt;
&lt;br /&gt;
===Fundamental Programming Constructs===&lt;br /&gt;
&lt;br /&gt;
These materials focus on the G syntax and language-specific constructs&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Python vs. LabVIEW Technical Deep Dive&lt;br /&gt;
|These slides are intended to explore important software considerations when developing large test and measurement software that needs to scale and the merits and considerations when using either LabVIEW. The original materials have been provided by NI but have been made open-source for the purpose of enabling the community to enhance and augment these materials with alternative view points and examples.&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://github.com/elijah286/LabVIEW-vs-python GitHub Repo of Slides]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Using Object-Oriented Programming LabVIEW&lt;br /&gt;
|This session will introduce object-oriented programming as a tool that can dramatically increase the reusability and scalability of your software. Instead of going through a purely academic exploration of the concept, this session attempts to map concepts that should be familiar to any experienced LabVIEW programming towards helping explain how you can evolve your daily programming tasks without starting all over.&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://forums.ni.com/t5/LabVIEW-Development-Best/Object-Oriented-Design-Patterns-Technical-Manual-and-Exercises/ta-p/3507995 Presentation and Demo Materials]&lt;br /&gt;
[https://www.ni.com/en/shop/labview/introduction-to-oop-and-hardware-abstraction-layers.html Video of session]&lt;br /&gt;
|Yes - experience implementing class-based software architectures&lt;br /&gt;
|-&lt;br /&gt;
|Malleable VIs Unlocked&lt;br /&gt;
|Malleable VI&#039;s have been available for quite some years and compliments our toolbox of reusable code perfectly.&lt;br /&gt;
&lt;br /&gt;
Join me on a journey through techniques that have yet to be shared but are the basis of the G²CPU high performance toolkit.&lt;br /&gt;
We&#039;ll have a look at a what its position is compared to polymorphic VI&#039;s, classes, case structures and other techniques to selectively execute code.&lt;br /&gt;
After which we will step-by-step go from simple ground rules to never publicized techniques to elevate your reusable libraries&lt;br /&gt;
|Natan Biesmans and Tom McQuillan&lt;br /&gt;
|[https://www.youtube.com/watch?v=EzhMQ0Gt_1A YouTube Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|What to Expect When You&#039;re Expecting an Error&lt;br /&gt;
|Connecting error wires across nodes on a block diagram is one of the most common, brainless tasks performed by a LabVIEW programmer. Unfortunately, this often means that VI behavior in an error condition is a second thought, if it&#039;s even thought about at all. This presentation will cover best practices in regards to the generation and propagation of errors on LabVIEW block diagrams. You should come out of this presentation with the ability to write VIs that are not only functionally correct in an error condition, but also precisely convey their exact error behavior in an error condition. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnatterrors Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|All About Collection Data Types&lt;br /&gt;
|Introduction to the fundamentals of Strings and Arrays, then moving into Sets and Maps, the newest data types in LabVIEW.  &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnattcollections Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Software Engineering and Team Based Development===&lt;br /&gt;
&lt;br /&gt;
These presentations are intended to review best practices for code design and development processes. They are generally more advanced and benefit a presenter who has multiple years of experience with the relevant tools and technologies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Moving from SVN to Git with LabVIEW&lt;br /&gt;
|Git tends to be the standard versioning system used in software development. DevOps platform like Gitlab and Github rely on it. Git could be a necessary transition to implement CI/CD.&lt;br /&gt;
From my experience and with data collected earlier this year, it seems that SVN is still used by many people in our LabVIEW world.&lt;br /&gt;
I want to share my journey from a former SVN user to a happy Git one and help developers to go further than just a &amp;quot;backup&amp;quot; tool.&lt;br /&gt;
Real experience and no command-line inside.&lt;br /&gt;
|Olivier Jourdan&lt;br /&gt;
|[https://www.youtube.com/watch?v=v_cdlwIWfPY YouTube Recording]&lt;br /&gt;
|Yes - familiarity with SCM, Git and SVN. Qualified presenters include: Olivier Jourdan, Fabiola De la Cueva and Emilie Kia&lt;br /&gt;
|-&lt;br /&gt;
|Team Based Development with LabVIEW&lt;br /&gt;
|This session will provide an overview of best practices and tooling that should be used to streamline LabVIEW development by a team of developers&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://github.com/elijah286/lvug-team-dev GitHub Repo for slides and demo materials]&lt;br /&gt;
|Yes - CLA-level knowledge of how to manage and coordinate development activities across a team&lt;br /&gt;
|-&lt;br /&gt;
|Improving Your LabVIEW Code with the VI Analyzer&lt;br /&gt;
|A comprehensive presentation on the features of the VI Analyzer, and how it can be used to improve code style, increase code performance, and detect bugs. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://forums.ni.com/t5/VI-Analyzer-Enthusiasts/Improving-Your-LabVIEW-Code-with-the-VI-Analyzer/m-p/3415352 Slides, Demos, and Recording]&lt;br /&gt;
|-&lt;br /&gt;
|Architecting long life-cycle LabVIEW applications&lt;br /&gt;
|Presentation provides an overview on one of the many ways of developing a product using LabVIEW and showcases the was i was thought to work on a LabVIEW application that had multiple developers as well as the lessons learned from supporting multiple versions for multiple customers over the span of 2+ years.&lt;br /&gt;
|Sergio Velderrain&lt;br /&gt;
|Soon&lt;br /&gt;
|Yes - CLA-level knowledge, VI Package manager, CI/CD.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Software Architectures and Code Design Patterns===&lt;br /&gt;
&lt;br /&gt;
These presentations are intended to review best practices for code design and development processes. They are generally more advanced and benefit a presenter who has multiple years of experience with the relevant tools and technologies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Using Plugin Frameworks for Extensibility&lt;br /&gt;
|This session will show how to improve the reusability and extensibility of LabVIEW code through the use of dynamically loaded plugins&lt;br /&gt;
|Elijah Kerry&lt;br /&gt;
|[https://github.com/elijah286/Extensible-Config-Dialog Example source code]&lt;br /&gt;
|Yes - CLD-level knowledge of how to dynamically load and communicate with sub processes&lt;br /&gt;
|-&lt;br /&gt;
|Introduction to DQMH&lt;br /&gt;
|DQMH is the world’s most popular 3rd-party framework for LabVIEW, and was designed to facilitate the robust implementation of complex LabVIEW applications, while still being accessible to CLAD/CLD-level LabVIEW programmers.&lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnattdqmhintro Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Workers for LabVIEW&lt;br /&gt;
|Efficiently develop asynchronous applications using Workers for LabVIEW, a framework that provides simple LVOOP QMHs along with a comprehensive set of development tools to streamline application development. This framework is suitable for developing both small and large multi-process LabVIEW applications in a scalable,  modular and extensible way.&lt;br /&gt;
|Peter Scarfe&lt;br /&gt;
|[https://docs.workersforlabview.io User Guide, Introduction Video, Tutorial Videos]&lt;br /&gt;
|LabVIEW Core 3 or CLD level knowledge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Best Practices===&lt;br /&gt;
&lt;br /&gt;
These materials cover best practices for various aspects of LabVIEW development.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|An End to Brainless LabVIEW Programming&lt;br /&gt;
|There are lots of supposed &amp;quot;best practices&amp;quot; we do in LabVIEW without thinking. If we actually think about them, it turns out they may not be best practices at all. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/brainlesslabview Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Industrial Communications in LabVIEW&lt;br /&gt;
|Don’t underestimate the complexity of industrial communications protocols, nor the completeness of LabVIEW toolkits for supporting these. This presentation collates crowd-sourced data on the woes and wahays of integrating National Instruments systems into an industrial network, providing any developer with an up to date and pragmatically authored review of the state of current capabilities and maybe a brief look into the future.&lt;br /&gt;
&lt;br /&gt;
Dr. Richard Thomas, a founding member of GDevCon and the ALA, LabVIEW Champion, CLA and CLED, has worked with LabVIEW and NI systems for nearly 25 years, in various roles from Academia, Consultancy to Production Engineering, with experience in several industry sectors.&lt;br /&gt;
|Dr. Richard Thomas&lt;br /&gt;
|[https://www.youtube.com/watch?v=R4GN_-X__GA Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Communicating intent through the VI Icon - Jesper Kjær Sørensen (GPower)&lt;br /&gt;
|This presentation is one you don&#039;t want to miss. We will embark on a quest through the massive Icon Dungeon in the land of LabVIEW. The goal is to slay the dreaded default icon Dragon, which has brought much pain and suffering to LabVIEW developers. We will wander through the multi-level halls of VI icons to search for traps and recover the ancient knowledge of visual grouping. We will be spelunking into the Casm of Class icons. Finally, we will enter the Vault of Glyphs to fill our bags with loot and make a quick getaway through the dimension of Automation.&lt;br /&gt;
&lt;br /&gt;
My name is Jesper Kjær Sørensen. I am a level 5 Systems Engineer aboard the fantastic vessel GPower, hailing from Denmark. I have replaced my character sheet three times over the past 14 years since I graduated from the University of Aalborg. Throughout the years, I have honed my skills in LabVIEW and TestStand and dabbled in the dark arts of Python programming. I have several side quests involving photography, dairy cows, my family, and my love for Dungeons and Dragons.&lt;br /&gt;
|Jesper Kjær Sørensen&lt;br /&gt;
|[https://www.youtube.com/watch?v=wOntiXaIu2o Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Building the LabVIEW IDE and Tooling That You Always Wanted&lt;br /&gt;
|This presentation will give an insight into how you can build the LabVIEW features and tools you wish it had out of the box to make it even more productive. Emerson/NI have provided many hooks into the environment so let&#039;s use them to make LabVIEW better.&lt;br /&gt;
|Chris Roebuck (Konrad Technologies)&lt;br /&gt;
|[https://www.youtube.com/watch?v=3OBV-RSQSYI Recording]&lt;br /&gt;
|-&lt;br /&gt;
|VI Analyzer: The unsung hero of software quality&lt;br /&gt;
|In this presentation we explore the features of VI Analyzer and show how you can easily incorporate it into your daily workflow. We showcase how to implement your own tests using the in-built templates.&lt;br /&gt;
|Chris Roebuck (Konrad Technologies)&lt;br /&gt;
|[https://www.youtube.com/watch?v=yzjiZJZCe6A&amp;amp;list=PL7Ul36E7e0l97vayGr_OSl5tQlLj5jHkj Recording]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Tips and Tricks===&lt;br /&gt;
&lt;br /&gt;
These materials cover suggestions and insight from developers aimed at streamlining interaction with the development environment for the sake of increased productivity.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|I Find Your Lack of LabVIEW Programming Speed Disturbing&lt;br /&gt;
|In just an hour of LabVIEW programming, you interact with the LabVIEW IDE hundreds, perhaps thousands, of times. Chances are, you could be executing many editor gestures more efficiently. Explore how to change your workflow to perform the most common LabVIEW programming tasks as quickly as possible. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/labviewspeed Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Quick! Drop Your VI Execution Time!&lt;br /&gt;
|Simple tips and techniques for speeding up your VIs. This includes general purpose programming techniques, as well as the most efficient way to use profiling tools in LabVIEW. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/slowvis Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Don&#039;t Wait for LabVIEW R&amp;amp;D... Implement Your Own LabVIEW Features!&lt;br /&gt;
|You can choose from many hooks to add your own G-based features to the LabVIEW IDE (no text programming required). This session reveals every single one of those hooks (No, really!) along with some LabVIEW Scripting tips and best practices for implementing those LabVIEW features you always wanted.&lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/dnattlvhooks Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Hidden Gems in vi.lib&lt;br /&gt;
|A walkthrough of several useful VIs and APIs that ship with LabVIEW, but are not officially supported by NI.&lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://forums.ni.com/t5/Hidden-Gems-in-vi-lib/Hidden-Gems-in-vi-lib-pptx/td-p/3502591 Slides and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Augmenting Right-Click Menus in LabVIEW&lt;br /&gt;
|All the details of the right-click plugins feature in LabVIEW, that allows you to extend the right-click menus in the LabVIEW editor purely with G code. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://forums.ni.com/t5/LabVIEW-Shortcut-Menu-Plug-Ins/Presentation-Augmenting-Right-Click-Menus-in-LabVIEW/ta-p/3521526 Slides, Demos, and Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===UX / UI Design===&lt;br /&gt;
&lt;br /&gt;
These materials provide insights on how to design user-interfaces in LabVIEW&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
| Extensible and Modular UIs: Extend the VI Server With Object-Oriented Techniques&lt;br /&gt;
| Using QControls to create reusable UI modules.&lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[NIWeek 2018/UI: Extensible and Modular UIs: Extend the VI Server With Object-Oriented Techniques|Wiki Page]]&lt;br /&gt;
|-&lt;br /&gt;
| Encapsulating and Reusing your UI Code&lt;br /&gt;
| Using QControls to make Reusable, Encapsulated, Extensible UIs.&lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[Americas CLA Summit 2019/Encapsulating and Reusing your UI Code|Wiki Page]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| The LabVIEW UI of Your Dreams&lt;br /&gt;
| Often, the LabVIEW front panels we use day after day are far from a “dream UI,” and we’ve all seen some nightmare UIs. In this session, we’ll use a high‐minded design philosophy combined with practical developer checklists that you can apply to make your interfaces more functional, consistent, professional, and dreamy.&lt;br /&gt;
| Hunter Smith&lt;br /&gt;
| [https://www.youtube.com/watch?v=qpxiQ3dFDm0 YouTube Recording]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI/UX Considerations when there is No Keyboard or Mouse&lt;br /&gt;
|This presentation provides an overview of best practices and lessons learned when developing software interfaces that will rely on a touch screen, especially given the number of UI components that are not well suited for a touch interface.&lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[Americas CLA Summit 2019/UI/UX Considerations when there is No Keyboard or Mouse|Wiki Page]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Smartphone-like User Interfaces in LabVIEW&lt;br /&gt;
| Do you want more advanced User Interfaces than you can normally get from LabVIEW? Maybe the user experience needs to be for a touch screen similar to common smartphone interfaces. I’ll show tricks to using the QControl Toolkit to create swipe, scroll, and selection via a touchscreen. &lt;br /&gt;
| [[Quentin &amp;quot;Q&amp;quot; Alldredge (LabVIEW Champion)|Quentin &amp;quot;Q&amp;quot; Alldredge]]&lt;br /&gt;
| [[GLA Summit 2022/Smartphone-like User Interfaces in LabVIEW| Wiki Page]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| How to successfully scale UIs in LabVIEW&lt;br /&gt;
| All started with a tough requirement: “The application needs more than 50 Synoptics” . With such a breath taking number, you need to think in a way of programming User Interfaces that is easily scalable, flexible and maintainable. As a programmer, the last thing you want is to have the need to implement a new feature and have to repeat the same piece of code in 50 different places. This presentation navigates through the process of getting a successful approach, from the idea to the implementation.&lt;br /&gt;
| Iker Segovia Revilla(ULMA)&lt;br /&gt;
| [[https://www.youtube.com/watch?v=zYhzQ0Mlp-I| Video]]&lt;br /&gt;
|-&lt;br /&gt;
|Thin Client TestStand&lt;br /&gt;
|Using LabVIEW WebUI hosted on and communicating with SystemLink to remotely control, monitor, and deploy Test software and equipment using a TestStand Server; all from a thin client or phone/tablet.&lt;br /&gt;
|Nathan Lutz (Konrad Technologies)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Debugging/Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
These materials cover suggestions and insight from developers aimed at debugging and troubleshooting LabVIEW applications.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable static-row-numbers sticky-header col1left&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!|Presentation Title&lt;br /&gt;
!|Abstract&lt;br /&gt;
!|Author&lt;br /&gt;
!|Demo Resources&lt;br /&gt;
!|SME Requirements&lt;br /&gt;
|-&lt;br /&gt;
|Ludicrous Ways to Fix Broken LabVIEW Code&lt;br /&gt;
|When LabVIEW programmers encounter compiler errors, app builder failures, and crashes, they will usually settle for any hack, kludge, or workaround just to get usable code. This presentation demonstrates a number of ridiculous ways to get broken code running. &lt;br /&gt;
|Darren Nattinger&lt;br /&gt;
|[https://bit.ly/ludicrouslabview Slides, Demos, and Recording]&lt;br /&gt;
|This content is very DNatt-specific, and may be difficult for others to present.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:User Group]]&lt;/div&gt;</summary>
		<author><name>Sergiovelderrain</name></author>
	</entry>
</feed>