Jump to content

Francois Normandin

  • Content Count

  • Joined

  • Last visited

  • Days Won


Francois Normandin last won the day on November 15 2020

Francois Normandin had the most liked content!

Community Reputation



About Francois Normandin

  • Rank
    Son of Scotland
  • Birthday 02/26/1975

Profile Information

  • Gender
  • Location
    Montreal, Canada
  • Interests
    LabVIEW (!!!), Astrophysics, Science-Fiction, Kilts.

LabVIEW Information

  • Version
    LabVIEW 2019
  • Since

Contact Methods

Recent Profile Visitors

10,799 profile views
  1. @pajaramillo1 You can open VIs from previous years at any time. LabVIEW is going to compile it for your version and once you save them, you will not be able to open them in a previous version unless you back save them. Download the file you need from this thread and it will work in LV2015.
  2. As a publisher of packages myself, I really like the interface and how easy it is to have a package of mine find its way to the Community repository. It was always nice to have the LAVAG code repository (same info, direct ungated access), but having the packages accessible to anyone just by virtue of refreshing the VIPM package list is really a nice feature. @Antoine Chalons, sure I'll move the Controls Addon to VIPM Community... Already put in the request!
  3. This control seems to have been set as a private member of the library, which means you cannot use it outside of the library itself. If this controlID is available on a public method, it should also be made public. Two things can happen: 1- The library is repackaged with this control set to be public 2- Disconnect the type definition. (Right-click on Controller ID and choose "Disconnect from type definition". Solution 2 is your best choice right now, unless someone ants to repackage the library and expose the control publicly
  4. fixed and pre-released as 1.0.2 build. pushed to default branch https://github.com/LabVIEW-Open-Source/LV-MQTT-Broker/releases/tag/1.0.2
  5. @Neil Pate I thought I had fixed this bug. It dates from my NIWeek 2019 demo when I made a last minute change from "Destroy" public method to "onDestroy" protected method. You see what happens when you do a TDD project and you skip the tests "JUST ONCE" because you're in a hurry and the boss wants this code deployed ASAP??? Hahaha! I'll do a fix this weekend... Edit: Was fixed in the Develop branch... I'll test, bring to master branch, build and release a new package.
  6. I had not realized either it was so simple to add TLS. I didn't plan to upgrade my broker to 2020, but multiplatform TLS is tempting. (shameless plug for my project: https://github.com/LabVIEW-Open-Source/LV-MQTT-Broker)
  7. If it's a commercial project and you're on a deadline, you can check Wireflow's MQTT client. It ain't free, but supports TLS. http://sine.ni.com/nips/cds/view/p/lang/fr/nid/213501
  8. Just a thought. Have you verified which version of MQTT is supported on Azure? MQTT 5 is most recent, and although MQTT 3.1 is normally supported by brokers, Azure IoT hub is not a fully-compatible MQTT broker. There might be restrictions on QoS, will messages or even TCP vs Web Sockets...
  9. As someone that sometimes publishes open source code, I generally choose the most permissive license I can because I basically only want the code to be shared and I don't mind the rest. I had started using the Unlicense for all my work but realized that it's not OSI-approved (and apparently some countries don't recognize Public Domain as a thing), so I fell back on Zero-clause BSD. https://opensource.org/licenses/0BSD You know, if someone wants to use my name to advertise their stuff, I am not sure I would mind. I guess if they misuse my name in some way, I could sue them for that anyhow.
  10. I, too, have been uneasy about this for a long time, but the convenience of the mechanism is such that I generally hope that the user is going to use it properly. There are two alternatives that I know of: - Use the mediator pattern and make sure the user event is unique for your event consumer (if the consumer closes the reference, the mediator can just assume it doesn't want to be notified again and can destroy the thread) - Use Actor Framework or another message-based framework that does not expose the queue/event/notifier publicly.
  11. How about this for "Array to Cluster"? It works for any array size. I have not tested whether it is faster or slower than the "array to fixed-size cluster" method, but it is cleaner than having 256 cases to handle all possible clustersaurus configurations. The "TD_Create Cluster" type descriptor method is a gem you can find at <vi.lib>\Utility\GetType.llb\TD_Create Cluster.vi // Note: you can ignore the error on the unflatten node, an empty array input will return "void" as an output. Oh, and it's faster than OpenG...
  12. https://www.ni.com/en-ca/events/niweek.html?cid=Twitter-a243q000004k8RqAAI-Awareness-sf120637664&sf120637664=1 https://www.linkedin.com/posts/national-instruments_niweek-activity-6656176258671525888-78H6
  13. I recently did a code review with @Jim Kring about upcoming Caraya 1.0 (yeah, I know, I'm using the opportunity to plug Caraya... shame on me), and when I showed him this block diagram, his eyes immediately caught the top comment I placed on the block diagram. It took him less than two seconds to say something like: "You have to put that on the Idea Exchange." (Jim, let me know if I'm misquoting you) Indeed, the Block Diagram... erm... the Mother of All Diagrams... does not have a Subdiagram label property. I say this is a grave injustice. So anyhow, I wanted to share the paternity
  14. I don't think it differs from a traditional event-based architecture if one overwrites the Actor Core and adds a parallel loop, which is the equivalent of Gregory's problem statement. The child's Actor Core parallel loop will still need to interact with the parent, through a subscription (user event or message-based). I agree that Actor model solves this problem (AF or event-based): the way to avoid this registration duplication in each child is to refactor the application's architecture where the child does not provide a second parallel loop, but only implements a set of messages that ex
  • Create New...

Important Information

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