-
Posts
27 -
Joined
-
Last visited
-
Days Won
3
Content Type
Profiles
Forums
Downloads
Gallery
Posts posted by Chris Cilino
-
-
Howdy ya'll
Thanks for your input. Please keep it coming! I'm trying to minimize my interactions with this thread so as not to inadvertently skew the conversation.
I love the technical aspect of this conversation. Sounds like so far in this conversation we're exploring the "How can we do this?". I'd like to propose the additional following set of questions to summarize the virtual coffee conversations we've been having and hopefully merge the conversations (mentioned by Stagg54) in the first post
To summarize, here is the logic \ questions that have arisen:
The primary question: "How do I (as a consumer of code) prevent unwanted effects from code I download?"
Leads to responsibility:
- Who is responsible to prevent unwanted effects of code?
- How do the responsible parties prevent unwanted effects of code?
There seem to be two ways to prevent unwanted effects:
- Prevention: don't distribute bad code
- Mitigation: As a user, I have bad code. I need to remove it.
Mitigation spawns two more questions:
- How to notify people so they can remove bad code?
- Should people be forced into a system so they can be notified?
I'm not suggesting answers to those questions, but want to also throw them into our calculus. Please feel free to comment on those questions and keep the conversation rolling.
-
Hey Ya'll
Just wanted to let you know we're tracking user stories at https://github.com/gcentral/Website/issues. Please feel free to submit issues there and continue the discussion on the user stories here.
-
On 5/8/2020 at 4:06 PM, gregoryj said:
Do you use the case that comes with the Canakit, or do you have to take off the case in order to use the connectors with the breakout board? Thank you, looks like a lot of fun!
Hi @gregoryj
Sorry for taking forever to respond. I need to adjust my notification settings apparently.
I do use the case that comes with Canakit. I'm able to keep the raspberry pi in the case and even put the lid on because of the ribbon that attaches to the breakout board. I got the ribbon and breakout board from Freenova. My full hardware setup is documented in the bitbucket readme at https://bit.ly/ChrisCilino_LabVIEWCommunityAndRP.
And yes... it is fun! Enjoy!
-
On 5/18/2020 at 11:30 AM, Bryan said:
Linky no worky for me...
@Bryan Which link are you referring to? I just checked all of them and they seem to be working for me.
-
GCentral is taking a yearly survey to help identify trends so we have data to back decisions. We're asking for 3 minutes of your time to complete the survey at:
https://bit.ly/GCentral_Survey_2020-21
At the end of the survey you'll be able to see a summary of the results. In order to help keep the results accurate, you're allowed to take the survey only once, and requires you to sign in to your google account.
Thank you for your time and your opinions. GCentral's success is only measured by its usefulness to you. Help make GCentral what you need it to be.
See additional information in the GCentral FAQ.
And remember: GCentral is opening VIWeek this Sunday at 9 am CTD (https://bit.ly/VIWeek_GCentralPresentation)
-
Love this idea! So basically an "idea exchange". I have an idea!
- Does the solution exist already?
- Is anyone planning to create it?
- Can I plan it in such a way that other's can implement it?
- Can I start implementation so that other's can join in?
As a community member I would like answers to all of the above quickly.
Is that a fair summary @ChrisStrykesAgain?
-
#VIWeek The first Virtual LabVIEW Event Hosted By the Community. Starting Sunday, May 17th at 9 AM CDT
See the full agenda at https://bit.ly/viweek -
- Popular Post
- Popular Post
LabVIEW Community Edition rocks! In order to help kick off this momentous occasion, I've put together an example alarm clock. It is broken down into 6 lessons (so far) taking you from blinking an led through creating an alarm clock with a state machine. To download or learn about LabVIEW Community Edition check out GCentral.org
Check out the alarm clock here! <-(http://bit.ly/ChrisCilino_LabVIEWCommunityAndRP)
-
4
-
Howdy Brian
So this is awesome! I know Jeremy presented some stuff just like this in his NIWeeek 2018 presentation (posted on the LV Wiki). Do you know if something like this was ever exported into a package? I'm having a hard time finding it if it exists.... ironically.
-
There has been a lot of discussion, which is great, but I feel the need to reiterate GCentral's vision and mission.
GCentral envisions a LabVIEW community making the best version of itself by improving its capability through collaboration.
GCentral is a non profit organization:
- for programmers who need to find, share or collaborate on G reusable code or software engineering tools.
- that provides a platform for G code packages and collaboration resources.
- that is independent and driven by community experts.
GCentral's Mission
Enable LabVIEW programmers to collaborate by
- removing barriers to finding / using code designed for reuse (packaged code)
- removing barriers to contributing code designed for reuse (packaged code)
- removing barriers to co-developing code
- using code with confidence
GCentral is package technology agnostic / SCC agnostic
- GCentral does not endorse or encourage the use of one package manager over the other, nor will we. Each community member can package their code according to their preference.
- GCentral does not endorse or encourage the use of one Source Code Control Provider (local or cloud based) over the other nor will we. Each community member can use the SCC they prefer.
GCentral will ease the pain we all feel when attempting to find and use packages by
- index the currently available public repositories (Tools Network, GPM, JKI Tools, NI Packages)
- by indexing an new, un-gated, cloud based storage location that can house any package type.
- by displaying the index results in a web page / APIs, etc (see https://www.gcentral.org/ for the prototpye)
GCentral will ease the pain we all feel when attempting to contribute packages by
- creating new, un-gated, cloud based storage location that can house any package type (not source).
- MAYBE creating software to transport built packages from build machine to the new cloud storage location
GCentral will ease pain we feel when attempting to co-develop code by
- Creating template projects for each of the major online SCC. (GitHub, etc).
- Coming pre-configured to build the package type of your choice and upload to the GCentral package server.
GCentral will inspire confidence by
- Making any submitted package always available. Once submitted, a package cannot be deleted apart from a GCentral administrator. As a result, you can depend on a package without fear of it ever missing.
- Product pages per package designed to educate on the package and author.
The above is a summary of the CLA summit presentation I gave (https://sites.google.com/gcentral.org/website/about-gcentral)
The advent of the GitHub Package Registry is very interesting. I've reached out to GitHub to provide clarity on how extensible their framework is. At time 29:44 in the presentation Michael linked above the presenter says "We have a great extension framework for adding support for new registries, which will be opening up in the future". That MAY mean we can provide plugins for their registry to recognize NIPKGs, VIPs, GPKGs. And that may completely solve the "find/use" pain point i mention above... so long as the community is ok putting their packages in GitHub AND sacrificing confidence that the package will always be available to use or link against.
In conclusion, GCentral's aim is to impose the least amount of infrastructure on a community member while enabling us to find/use, contribute, co-develop packages designed for reuse. GCentral will use already existing technologies to accomplish its goal and create new technologies where needed.
-
1
-
All
In case you haven't already, GCentral could really use your help in getting CLA feedback. If you attended the CLA, summit would you mind taking 10 min to fill out the survey .
If you didn't get the chance to attend the CLA summit please feel free to watch the presentation. I've included the presentation outline so you can go to the parts of the presentation you find most interesting. Then we would love your feedback via the survey.
We're up to 33 respondents and I'm closing the survey end of next week (Nov 1). We really want to make sure we gather feedback from the community so we know we're on the right track. GCentral is for us as a community. Help us make this happen.
Thanks.
-
As a member of the LabVIEW community I would like to have only one profile so I can have a consolidated summary of my activity in the community (number of ni.com posts, number of packages I've created, average rating on the software I release, etc)
-
Hi Rolf
That's good feedback. The current UI \ UX is just a proof of concept. Once we start designing the actual UI \ UX we hope it'll be efficient to use and pleasant to look at. One other note: the indexer is open source. Please feel free to suggest adjustments by joining the dev team on GCentral's git repo. Keep in mind GCentral.org is in its infancy so we're choosing to sacrifice aesthetics for functionality to avoid bikeshedding.
Glad to hear you think GCentral is a good initiative and thanks for your thoughts!
-
1
-
-
As a participant in the G package community I would like a periodic manifest of all new packages so I can stay up to date on what's new. I want to be able to specify how often I get the manifest and the maximum number of packages listed in the manifest.
-
- Popular Post
- Popular Post
At the 2019 Americas Certified LabVIEW Architect Summit, GCentral was introduced to the LabVIEW Community.
GCentral is
- a non profit organization (incorporated September 2019)
- composed of G community leaders
- creating a platform for programmers to find/use, contribute, and co-develop G code packages and collaboration resources.
While GCentral is leading the charge to solve these problems, we will closely align with the community's needs. This forum is designed to connect GCentral's efforts with the community's needs.
Some links to be aware of:
- GCentral.org
- LabVIEW Wiki
- Twitter (@GCentralOrg)
- Instagram (gcentralorg)
- Website GitHub Repo
-
4
-
1
-
Rather than have a bunch of links floating around, I'm creating this "one stop shop" for my contributions to the LabVIEW community. This is my Cilino Suite aka "C Suite".
Presentations
-
My YouTube Channel of Presentations (bit.ly/ChrisCilino_Presentations) including:
- My LabVIEW Champion Interview
- NIWeek 2018 Keynote Presentation
- Soliton Customer Testimonial
- LabVIEW Architect's Forum Q3 2018 - LabVIEW Auto Documentation Software
- LabVIEW Architect's Forum Q4 2016 - Automated Build Process
- 2018 Certified LabVIEW Architect Summit - Everything a Software Engineer Needs to Know That Has Nothing to Do with Software Engineering
- My First Keynote Presentation at VIP Days in Germany
Code - Reuse Libraries
-
Automated Build System - Software Module Builder
- Summary: A system that turns source into exports. The exports can be of any type. Also determines build order of hierarchical modules, updates dependencies, and allows you to move the exports to the location you need for your end users to find and install the export and its dependencies.
- Download
- BitBucket Repository: git clone https://ChrisCilino@bitbucket.org/ChrisCilino/software-module-builder.git
-
Dependencies
- LabVIEW Container (see link below)
-
LabVIEW SCC API
- Summary: An API designed to abstract server based source code control providers.
- BitBucket Repository: git clone https://ChrisCilino@bitbucket.org/ChrisCilino/labview-scc-api.git
- Distributed as a part of the Automated Build system
-
NI Package Manager Build Spec API
- Summary: An API to programmatically interact with and edit the LabVIEW NI Package Build Specification.
- BitBucket Repository: git clone https://ChrisCilino@bitbucket.org/ChrisCilino/ni-package-manager-api.git
- Distributed as a part of the Automated Build system
-
Custom Install Step Launcher
- Summary: Enables NI Package Manager to execute VIs as a Post-Install/Post-Install All/Pre-Uninstall action.
- Download: Distributed as a part of the Automated Build system
- BitBucket Repository: git clone https://ChrisCilino@bitbucket.org/ChrisCilino/custom-install-step-launcher.git
-
Software Module Template - NIPKG and VIP
- Summary: A template LabVIEW Project designed to be built into an NI Package and VI Package by the Software Module Builder (see above). With this template, a user need only put their code in the "source" directory and edit some build specification information and the build process will do the rest.
- Distributed with the Software Module Builder
- BitBucket Repository: git clone https://ChrisCilino@bitbucket.org/ChrisCilino/software-module-template-nipkg-vip.git
-
Watchdog Framework
- Summary: A software observer of "situations" that can notify when something of "interest" happens. The observer is the "WatchDog", the thing being observed is a "Perpetrator", and the notification is a "bark".
- Download
- BitBucket Repository: git clone https://ChrisCilino@bitbucket.org/ChrisCilino/labview-watchdog-framework.git
-
Sequencer
- Summary: A simple design pattern that organizes code on a single block diagram without the inappropriate/excessive use of subVIs.
- Download
- BitBucket Repository: git clone https://ChrisCilino@bitbucket.org/ChrisCilino/sequencer-pattern.git
-
Auto Documentation
- Summary: Think of this as Doxogen for LabVIEW. Given a Project, Lvlib or .class, this software generates report. The report is "printed" to a confluence page. The software is Object Oriented and designed to be extended through inheritance.
- Download
- BitBucket Repository: git clone https://ChrisCilino@bitbucket.org/ChrisCilino/labview-auto-documentation.git
-
Dependencies
-
LabVIEW Atlassian / Confluence / Jira APIs
- Summary: An API that allows you to control Atlassian assets such as Confluence and JIRA from LabVIEW
- BitBucket Repository: git clone https://ChrisCilino@bitbucket.org/ChrisCilino/labview-atlassian-api.git
-
LabVIEW Atlassian / Confluence / Jira APIs
-
LabVIEW Container
- Summary: A dynamic data structure that combines the strengths of a cluster and an array.
- Download
- BitBucket Repository: git clone https://ChrisCilino@bitbucket.org/ChrisCilino/labview-container.git
History/Credentials/Social Media
-
1
-
My YouTube Channel of Presentations (bit.ly/ChrisCilino_Presentations) including:
-
My apologies for not having much info on this page yet. I'm just trying to get the code in a presentable state and then I'll broadcast it's purpose and stuff....
And Cirrus Logic is not affiliated with NI. I'm not sure why my profile reads "NI"... hmmm.... I'll see if i can get that squared away.
-
Description
The Watchdog is composed of 3 main sections of code:
- Perpetrators: A perpetrator is something the watchdog knows to monitor or look out for. The most common perpetrator would be "elapsed time". We want the watchdog to notify us if a certain amount of time has elapsed. But...what if you wanted the watchdog to monitor many types of perpetrators? Disk usage? CPU usage? Temperature? Hence the perpetrator class was born and is a circumstance that the watchdog watches out for.
- Barks: a bark is what happens when the watchdog spots a perpetrator. You might want the watchdog to send you an email, or a text message or write to file or... Hence the "bark" class was born. When the watchdog sees a perpetrator it barks.
- Watchdog: this is the asynchronous engine that monitors perpetrators and barks when it spots a condition.
Perpetrators and barks can be extended through inheritance so you can create your own circumstances to monitor and actions to take. The watchdog can monitor N perpetrators and preform M barks.
API Example
Below we see an example usage of the watchdog written using the Sequencer Pattern
First, we create a perpetrator. In this case we want the watchdog to watch for time. If the watchdog is not petted within one second it will bark. Note you can build an array of Perpetrators.
WatchDog Bark Configuration. Here we see three barks being configured. The first bark is a dialog box that will appear with the text "My Popup". The second is to send an email. The third is to send a text message.
Last we "set the watcdog loose" to start monitoring our perpetrator. Here you can see we start the watchdog and tell it to monitor perpetrators and preform bark actions. In a for loop we pet the watchdog. Petting the watchdog reset equal to true resets the condition the watchdog was monitoring. So that if it noticed a perpetrator, it will start monitoring again. Because the watchdog is set to monitor a timeout not to exceed one second, it will bark twice. Unless the watchdog is petted again, it will always report that the timeout has occurred each time pet is executed.
UML
All UML and API documentation are included in the Word document per released zip file
Software Requirements
LabVIEW 2017
Release Notes
1.0.0-11(Watchdog 1.0.0-11.zip)
- Fixed spelling errors and regenerated documentation.
1.0.0-9 (Watchdog 1.0.0-9.zip)
- Refactored locations of files on disk to be more structured
- Completed documentation
- Using timestamp for timeout perpetrator.
- Updated example with instructions
1.0.0-3 (Watchdog 1.0.0-3.zip)
- This is the initial release. Very very alpha
-
Have you ever needed to programmatically generate a report documenting your LabVIEW Classes? I've released an alpha version of my auto-documentation utility I designed and implemented at Cirrus Logic (http://bit.ly/ChrisCilino_AutoDoc).
I designed and created the software in 4 parts. 1) An Atlassian Confluence API, 2) An Atlassian JIRA API, 3) A Class Report generation API, and 4) Two very small "applications" the demonstrate the API's usage. Not only can the APIs \ examples document your code, you can also generate JIRA tickets for the parts of your documentation you're missing.
I hope you'll find this software as useful as we at Cirrus Logic have. I would consider it "mid alpha" quality, but intend on investing in it over time. You can find the software at http://bit.ly/ChrisCilino_AutoDoc
Here's an example of a generated report for the members of a class
The private data also has its own table that looks like
There are many more features to the report, not to mention the APIs used to generate the reports. Also I've created an application to generate JIRA tickets that list the missing parts of a report.
Enjoy!
-
2
-
-
Overview
In order to quickly and efficiently prepare source for distribution, a build system was necessary to abstract away the conversion of source into the different types of deliverables (VIPackages, Executables, dlls, ect) as well as abstract away the build order of our software hierarchy.
Many have undertaken to solve this problem. I don't claim to have created a silver bullet. But I do hope that the system I've put together (and am releasing as open source) will act as a starting point for you to extend and customize to meet your needs. I've endeavored to employ good software development principles including separation of concerns, and the SMoRES principles.
I'll be the first to volunteer that it isn't perfect and as always, our best software is constantly a work in progress. However, I believe the build system is at a stage to be at least moderately helpful to a handful of people in our community.
Description
The Application's UI
The UI is designed to guide someone through the build process, allowing them to select what components or exports they would like to build, if and how they would like to be notified about the build, auto submission options, and source code control. I've attached a small video titled "Build UI Demo.mp4" below.
UML and APIs
All UML and API documentation are included in the Word document per released zip file
Software Requirements
LabVIEW 2017
NI Application Builder
VI Package Manager Pro
Other dependencies are listed in the Instructions per zip file.
UML Overview
As of 1.4.0-58 the UML looks like:
Release Notes
1.4.0-123 (Component Builder 1.4.0-123.zip)
- Added new NI Package Manager API
- Added new NI Package Manager BuildSpec Utils
- Added procedure and documentation for the component template and its anatomy
1.4.0-113 (Component Builder 1.4.0-113.zip)
- Added documentation for the SCC API
1.4.0-111 (Component Builder 1.4.0-111.zip)
1.4.0-99 (Component Builder 1.4.0-99.zip)
- Added a few new P4 API functions allowing the creation of a session if a user is already logged it.
- Added Log in and log out tests to the test suite.
- Adding new function to tag all p4 paths in a label with the label.
- Resolving the input path to a p4 depot path
-
Adding quotes around p4 paths.
1.4.0-91 (Component Builder 1.4.0-91.zip)
- The refactor of the LabVIEW SCC API is complete and the build process is linked to the new install location. The LabVIEW SCC API can now be used independently of the Component Build process.
- I've included a test suite for the P4 implementation of the SCC API. It assumes that you have checked in the two files in the "Build Instructions\LabVIEW SCC API\Test Suite\Tests\Test Dir" into perforce.
1.4.0-85 (Component Builder 1.4.0-85.zip)
- This is a major refactor in the SCC API. I've modeled the p4 label with a new api. This release is primarily as an intermediary release. I intend on breaking SCC out of the component builder into its own separate component in the next release.
1.4.0-81 (Component Builder 1.4.0-81.zip)
- Created a "proxy" api for VI Package manager interactions. Sometimes the VI Package manager api would hang. So I now call by reference and will kill and restart VIPM if it doesn't respond in time.
1.4.0-75 (Component Builder 1.4.0-75.zip )
- Fixed reference counting for executable builds.
1.4.0-73 (Component Builder 1.4.0-73.zip)
- In the case where a user has specifically unchecked "auto increment", the build process will auto increment the build. Builds must be auto incremented.
- I've released a new build of the container that has a minor bug fix.
- Added file utility tools to aid with using "net use" to move and copy files across the network.
1.4.0-59 (Component Builder 1.4.0-59.zip)
- Minor spelling error in component template: "componet".
- Added documentation for the Custom Install Step Launcher.
- Added build instructions for Custom Install Step Launcher.
1.4.0-58 (Component_Builder_1.4.0-58.zip)
- Added the ability to export NI-Source Distributions, NI-Executables, NI-Insatllers, and NSIS Installers
- Released a template component that exports an NI Package and VI Package including step by step instructions
- Released "Custom Install Step Launcher" to execute VIs as pre install, post install and post install all actions for NI Packages.
- Released comprehensive documentation included in the zip file.
-
2
-
With NIWeek 2015 around the corner community events like the "World's Fastest Coding Challenge" are getting spun up. Another one of my favorite community event is the "Challenge the Champions", a competition between 5 LabVIEW Champions (including the new LabVIEW Champions being inducted at NIWeek 2015) and 5 challengers who think they can usurp these leaders of the LabVIEW community. In case you're unfamiliar with the LabVIEW Champions program you can find out all about it at bit.ly/lv_champions.
I already have three challengers who'll definitely give the Champions a run for their money lined up. So I'm looking for two brave souls to step up to the plate on Tuesday evening, August 4 at 6pm sharp. To those two challengers out there, please send me a private message by Wednesday July 29th. Fame and glory await!
NIWeek 2015... 8 days and counting! All systems go!
-
1
-
-
NIWeek 2015 is just a few short weeks away! Community is a huge aspect of NIWeek and one of the most popular and fun community events is the “World's Fastest LabVIEW Programmer†competition. This prestigious title has been successfully defended by NI’s own Darren Nattinger (and if you’ve ever seen him compete you understand why). But this year Darren has announced his retirement from the competition and will go down in history as undefeated for 7 straight years beginning in 2008. While we’re sad that he won’t be competing, that means there will be a new name inscribed on the coveted trophy!
For those of you unfamiliar with the event, the “World’s Fastest LabVIEW Programmer†is a competition to see who can best take advantage of the many LabVIEW IDE tools, like Quick Drop and a vast array of APIs, that make it easy to crank out code at breakneck speeds! Visit bit.ly/lv_fastestcoder to learn more.
Your journey to the trophy begins at the “LabVIEW Coding Challenge†kiosk in the LabVIEW Zone on the NIWeek expo floor. There you’ll face three challenges designed to put your lightning fast LabVIEW skills to the test. The two fastest competitors will be brought up on the Technology Theater stage Wednesday evening of NIWeek at 5 pm in a live, face to face race to the finish. And of course, spectators are welcome to cheer them on!
Think you have what it takes to be the next World’s Fastest LabVIEW Programmer? Step up to the kiosk and let the race begin .... glory awaits!!
-
Totally looking forward to the BBQ!!!
-
2
-
-
Howdy! It's getting close.... NIWeek 2014 is almost upon us! To celebrate I put together a video for the LabvIEW Coding Challenge (linked below). To qualify for a chance to go up against Darren, visit the LabVIEW Coding Challenge in the LabVIEW Zone of the expo floor and test your skills. The two fastest coders will go head to head for a chance to go up against Darren, the world's fastest LabVIEW coder! The competition is at high noon on Thursday, August 7. I've personally written the questions and this year will be entertaining and fun.... I guarantee it.
Chris Cilino
Certified LabVIEW Architect
Looking for Beta Testers
in GCentral
Posted · Edited by Chris Cilino
@Manzolli and @Deon
Sorry for taking so long to get back to you. The beta website is at
https://test.gcentral.org/
Let's use this thread to capture feedback.