Jump to content

Chris Cilino

Members
  • Content Count

    24
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by Chris Cilino

  1. 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!
  2. @Bryan Which link are you referring to? I just checked all of them and they seem to be working for me.
  3. 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)
  4. 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?
  5. #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 Cilino VIWeek Intro.mp4
  6. 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)
  7. 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.
  8. 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.
  9. 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.
  10. 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)
  11. 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!
  12. 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.
  13. 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) LinkedIn Instagram (gcentralorg) Facebook Website GitHub Repo
  14. 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 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 LabVIEW Champion Page LinkedIn LabVIEW Champion Badge Certified LabVIEW Architect Badge Twitter NI.com Profile
  15. 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.
  16. 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
  17. 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!
  18. 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: Build UI Demo.mp4 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. Component_Builder_5_31_2018.zip Component_Builder_10_11_2018.zip
  19. 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!
  20. 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!!
  21. 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. Darren's Coding Challenge Chris Cilino Certified LabVIEW Architect
  22. Hey MarcCG, Thanks for the props! It's kinda funny. I've created some "hidden VIs" for my own purposes and one of them is to return an array of references to each node in the tree. In effect I flatten the hierarchy into an array so that you can touch every element. After install, the vi is located at ..vi.lib_ApplicationToolsContainersContainersContainerTestsTesting UtilitiesReturnEntireHierachyofContainers.vi Hey drjdpowell The Containers are by-reference. I didn't want to create copies of Containers in the tree so I store references to children in parents.
  23. Well.... here it goes. This is my first LAVA post and I'm pumped! Figured I'd start out by asking for ya'lls (yes I'm from Texas) opinion on a side project I've had in the works for a while. I've developed in LabVIEW for just about a decade, even before my career at NI, and I've run into cases where I wished the array shared some of the characteristics of the cluster and the cluster had some attributes of the array. For example, I wish I was able to name and index my array elements by name like you can with the cluster while also not having to hard code that name on the block diagram with something like an unbundle. Almost like a dynamic unbundle by name... or something like that. So I've put together something I call the LabVIEW container that has the "dynamic-ness" of an array and the hierarchy mixed type named data "feel" of the cluster. It also behaves like a tree because of the "One parent - Many child" model. Here's a super short 5 minute video describing the concept and demonstrating a functional prototype. I've also created a community document that goes into much more detail and from which you can, if you so desire ( ), download the Container and give it a spin. I'm still doing a TON of cleaning under the hood, and adding things like VI documentation at the moment, but I'd like to get ya'lls feedback on the usefulness of the idea and thoughts on the API. This is something I'm really excited about and I hope that it benefits the LabVIEW community. Thanks ya'll!!!! Chris
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.