User group: Difference between revisions
Adding DNatt content |
|||
Line 29: | Line 29: | ||
|[https://forums.ni.com/t5/LabVIEW-Development-Best/Object-Oriented-Design-Patterns-Technical-Manual-and-Exercises/ta-p/3507995 Presentation and Demo Materials] | |[https://forums.ni.com/t5/LabVIEW-Development-Best/Object-Oriented-Design-Patterns-Technical-Manual-and-Exercises/ta-p/3507995 Presentation and Demo Materials] | ||
|Yes - experience implementing class-based software architectures | |Yes - experience implementing class-based software architectures | ||
|- | |||
|What to Expect When You're Expecting an Error | |||
|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'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. | |||
|Darren Nattinger | |||
|[https://bit.ly/dnatterrors Slides and Recording] | |||
| | |||
|- | |||
|All About Collection Data Types | |||
|Introduction to the fundamentals of Strings and Arrays, then moving into Sets and Maps, the newest data types in LabVIEW. | |||
|Darren Nattinger | |||
|[https://bit.ly/dnattcollections Slides, Demos, and Recording] | |||
| | |||
|- | |||
|} | |} | ||
Line 57: | Line 70: | ||
|[https://github.com/elijah286/lvug-team-dev GitHub Repo for slides and demo materials] | |[https://github.com/elijah286/lvug-team-dev GitHub Repo for slides and demo materials] | ||
|Yes - CLA-level knowledge of how to manage and coordinate development activities across a team | |Yes - CLA-level knowledge of how to manage and coordinate development activities across a team | ||
|- | |||
|Improving Your LabVIEW Code with the VI Analyzer | |||
|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. | |||
|Darren Nattinger | |||
|[https://forums.ni.com/t5/VI-Analyzer-Enthusiasts/Improving-Your-LabVIEW-Code-with-the-VI-Analyzer/m-p/3415352 Slides, Demos, and Recording] | |||
| | |||
|} | |} | ||
Line 76: | Line 95: | ||
|[https://github.com/elijah286/Extensible-Config-Dialog Example source code] | |[https://github.com/elijah286/Extensible-Config-Dialog Example source code] | ||
|Yes - CLD-level knowledge of how to dynamically load and communicate with sub processes | |Yes - CLD-level knowledge of how to dynamically load and communicate with sub processes | ||
|- | |||
|Introduction to DQMH | |||
|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. | |||
|Darren Nattinger | |||
|[https://bit.ly/dnattdqmhintro Slides, Demos, and Recording] | |||
| | |||
|} | |||
===Best Practices=== | |||
These materials cover best practices for various aspects of LabVIEW development. | |||
{|class="wikitable sortable static-row-numbers sticky-header col1left" border="1" cellpadding="20" cellspacing="0" | |||
!|Presentation Title | |||
!|Abstract | |||
!|Author | |||
!|Demo Resources | |||
!|SME Requirements | |||
|- | |||
|An End to Brainless LabVIEW Programming | |||
|There are lots of supposed "best practices" we do in LabVIEW without thinking. If we actually think about them, it turns out they may not be best practices at all. | |||
|Darren Nattinger | |||
|[https://bit.ly/brainlesslabview Slides and Recording] | |||
| | |||
|- | |||
|} | |} | ||
Line 89: | Line 133: | ||
!|SME Requirements | !|SME Requirements | ||
|- | |- | ||
| | |I Find Your Lack of LabVIEW Programming Speed Disturbing | ||
| | |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. | ||
|Darren Nattinger | |||
|[https://bit.ly/labviewspeed Slides, Demos, and Recording] | |||
| | |||
|- | |||
|Quick! Drop Your VI Execution Time! | |||
|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. | |||
|Darren Nattinger | |||
|[https://bit.ly/slowvis Slides, Demos, and Recording] | |||
| | |||
|- | |||
|Don't Wait for LabVIEW R&D... Implement Your Own LabVIEW Features! | |||
|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. | |||
|Darren Nattinger | |||
|[https://bit.ly/dnattlvhooks Slides and Recording] | |||
| | |||
|- | |||
|Hidden Gems in vi.lib | |||
|A walkthrough of several useful VIs and APIs that ship with LabVIEW, but are not officially supported by NI. | |||
|Darren Nattinger | |Darren Nattinger | ||
|[ | |[https://forums.ni.com/t5/Hidden-Gems-in-vi-lib/Hidden-Gems-in-vi-lib-pptx/td-p/3502591 Slides and Recording] | ||
| | | | ||
|- | |- | ||
| | |Augmenting Right-Click Menus in LabVIEW | ||
| | |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. | ||
|Darren Nattinger | |Darren Nattinger | ||
|[ | |[https://forums.ni.com/t5/LabVIEW-Shortcut-Menu-Plug-Ins/Presentation-Augmenting-Right-Click-Menus-in-LabVIEW/ta-p/3521526 Slides, Demos, and Recording] | ||
| | | | ||
|- | |- | ||
|} | |||
===Debugging/Troubleshooting=== | |||
These materials cover suggestions and insight from developers aimed at debugging and troubleshooting LabVIEW applications. | |||
{|class="wikitable sortable static-row-numbers sticky-header col1left" border="1" cellpadding="20" cellspacing="0" | |||
!|Presentation Title | |||
!|Abstract | |||
!|Author | |||
!|Demo Resources | |||
!|SME Requirements | |||
|- | |||
|Ludicrous Ways to Fix Broken LabVIEW Code | |||
|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. | |||
|Darren Nattinger | |||
|[https://bit.ly/ludicrouslabview Slides, Demos, and Recording] | |||
|This content is very DNatt-specific, and may be difficult for others to present. | |||
|- | |||
|} | |} | ||
==References== | ==References== | ||
<references /> | <references /> | ||
[[Category:User Group]] | [[Category:User Group]] |
Revision as of 21:55, 5 April 2024
A User Group, 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. [1]
Organizing a User Group
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:
- Share ideas and practices to improve the quality, performance, scalability and readability of LabVIEW code
- Provide a forum to solicit advice from peers regarding how best to solve technical and procedural challenges when developing LabVIEW code
- Drive standardization on stylings, code organization and tooling for the purpose of enabling greater reuse and collaboration
See the LabVIEW Community Forum: User Group List to find one near you.
User Group Content
This is a collection of content that can be used to organize and run a LabVIEW user group.
Fundamental Programming Constructs
These materials focus on the G syntax and language-specific constructs
Presentation Title | Abstract | Author | Demo Resources | SME Requirements |
---|---|---|---|---|
Using Object-Oriented Programming LabVIEW | 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. | Elijah Kerry | Presentation and Demo Materials | Yes - experience implementing class-based software architectures |
What to Expect When You're Expecting an Error | 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'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. | Darren Nattinger | Slides and Recording | |
All About Collection Data Types | Introduction to the fundamentals of Strings and Arrays, then moving into Sets and Maps, the newest data types in LabVIEW. | Darren Nattinger | Slides, Demos, and Recording |
Team Based Development
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.
Presentation Title | Abstract | Author | Demo Resources | SME Requirements |
---|---|---|---|---|
Moving from SVN to Git with LabVIEW | 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.
From my experience and with data collected earlier this year, it seems that SVN is still used by many people in our LabVIEW world. 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 "backup" tool. Real experience and no command-line inside. |
Olivier Jourdan | YouTube Recording | Yes - familiarity with SCM, Git and SVN. Qualified presenters include: Olivier Jourdan, Fabiola De la Cueva and Emilie Kia |
Team Based Development with LabVIEW | This session will provide an overview of best practices and tooling that should be used to streamline LabVIEW development by a team of developers | Elijah Kerry | GitHub Repo for slides and demo materials | Yes - CLA-level knowledge of how to manage and coordinate development activities across a team |
Improving Your LabVIEW Code with the VI Analyzer | 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. | Darren Nattinger | Slides, Demos, and Recording |
Software Architectures and Code Design Patterns
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.
Presentation Title | Abstract | Author | Demo Resources | SME Requirements |
---|---|---|---|---|
Using Plugin Frameworks for Extensibility | This session will show how to improve the reusability and extensibility of LabVIEW code through the use of dynamically loaded plugins | Elijah Kerry | Example source code | Yes - CLD-level knowledge of how to dynamically load and communicate with sub processes |
Introduction to DQMH | 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. | Darren Nattinger | Slides, Demos, and Recording |
Best Practices
These materials cover best practices for various aspects of LabVIEW development.
Presentation Title | Abstract | Author | Demo Resources | SME Requirements |
---|---|---|---|---|
An End to Brainless LabVIEW Programming | There are lots of supposed "best practices" we do in LabVIEW without thinking. If we actually think about them, it turns out they may not be best practices at all. | Darren Nattinger | Slides and Recording |
Tips and Tricks
These materials cover suggestions and insight from developers aimed at streamlining interaction with the development environment for the sake of increased productivity.
Presentation Title | Abstract | Author | Demo Resources | SME Requirements |
---|---|---|---|---|
I Find Your Lack of LabVIEW Programming Speed Disturbing | 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. | Darren Nattinger | Slides, Demos, and Recording | |
Quick! Drop Your VI Execution Time! | 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. | Darren Nattinger | Slides, Demos, and Recording | |
Don't Wait for LabVIEW R&D... Implement Your Own LabVIEW Features! | 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. | Darren Nattinger | Slides and Recording | |
Hidden Gems in vi.lib | A walkthrough of several useful VIs and APIs that ship with LabVIEW, but are not officially supported by NI. | Darren Nattinger | Slides and Recording | |
Augmenting Right-Click Menus in LabVIEW | 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. | Darren Nattinger | Slides, Demos, and Recording |
Debugging/Troubleshooting
These materials cover suggestions and insight from developers aimed at debugging and troubleshooting LabVIEW applications.
Presentation Title | Abstract | Author | Demo Resources | SME Requirements |
---|---|---|---|---|
Ludicrous Ways to Fix Broken LabVIEW Code | 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. | Darren Nattinger | Slides, Demos, and Recording | This content is very DNatt-specific, and may be difficult for others to present. |
References
- ↑ LabVIEW Forums: User Groups https://forums.ni.com/t5/User-Groups/ct-p/user-groups