Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


DTaylor last won the day on February 28 2018

DTaylor had the most liked content!


LabVIEW Information

  • Version
    LabVIEW 2015
  • Since

Recent Profile Visitors

1,737 profile views

DTaylor's Achievements


Newbie (1/14)

  • First Post Rare
  • Collaborator Rare
  • Reacting Well Rare
  • Week One Done Rare
  • One Month Later Rare

Recent Badges



  1. What awesome thing(s) do you have in the basement? Or is that a garage?
  2. Thanks for sharing this. This is awesome! bocboc
  3. It is a really nice format, but I'd recommend using something else in LabVIEW because of lack of support, unless the EM library covers everything you need. The repo is unmaintained. (source: I'm the author)
  4. My biggest disappointment is how sluggish it is compared to 20xx, though it has improved since the initial release. Loading an empty project takes 3x as long in NXG for me. I do like the single window environment.
  5. Sounds interesting. I'd love to hear what it was even if it gets shot down. Do you have any stories of ambitious/controversial proposals that never had a chance?
  6. Finally! !!! Is there anywhere we can read about specifics? You've given us priority #0 and #2, are you unable to share #1?
  7. I think it can be useful in cases where you don't need RMR protection and the DVR is part of some sort of data structure that you may have more than one of, making globals not an option or a poorly scaling option.
  8. There are lots of design decisions with C++, C#, and Java that in hindsight are poor, but I don't feel like the author focused on the problematic parts, and maybe confused/conflated encapsulation and abstraction. In my opinion, this style of OO can be best described by: the ability to bundle data (something like a struct or record) and operations on that data (methods, which are essentially functions with an implicit "this" argument) into classes the ability to extend classes via inheritance, and automatically and irrevocably get subtype polymorphism, which can be ad-hoc through overrides the ability to hide implementation details within a class (private fields & methods) Additional ad-hoc polymorphism via interfaces I don't think I have a problem with a language having any of those features. I don't know if bundling data and operations is helpful, but I certainly don't think having the option is harmful. I do appreciate that the <class instance>.<method>() syntax is ergonomic. This can also be achieved by "." being syntax sugar where <expression>.<function>(...args) is equivalent to function(expression, ...args). I do think it's a problem when developers shoehorn their data types into convoluted inheritance hierarchies, but this isn't an OO problem. It's equally problematic when developers shoehorn data types into any convoluted data representation. I acknowledge that there may be some times where the type extension along with the subtype polymorphism may be an elegant representation. Hiding implementation details is not something I see as problematic at all, and it's not unique to OO languages. Other languages allow private struct fields and other definitions that are only usable inside the module where they're defined. It's nice when languages have something more powerful than these style of interfaces like Rust's traits or Haskell's typeclasses, but I don't think that makes interfaces bad, maybe just less useful. The big problems with these languages are: null - Anywhere you expect a class instance you must also expect the possibility of null. Terrible! unchecked exceptions - effectively an implicit potential return type of every function you write. Terrible! lack of type-safe sum-types/discriminated unions/tagged unions. Abstract parent class and multiple concrete children, the OO equivalent, is comparatively clunky. Scala's case classes are a nice implementation with an OOish flavor. lack of robust treatment of functions as data (this is improving as functional concepts are making their way into other languages) inability to extend the functionality of classes without subtyping Unsoundness in Java's type system via inappropriate generic covariance C++ being enormous and complicated loads of safety issues in C++, but it should get a partial pass for being a lower level language C++'s lack of package manager - this is an ecosystem problem, not a language problem verbosity What are the alternatives? Maybe<T> instead of null (a generic sum type which is either T or nothing. It must be cased on) Result<T, Error> instead of exceptions (another generic sum type that is either T or an error. It must be cased on, and what an "error" is a different language decision) Give the option for sum-types! Please LabVIEW! Give facilities for functions as data, lambda functions, partial application, etc. Rust-style traits, typeclasses Appropriate generic covariance/contravariance (invariance if you can't be sound otherwise - restrictive is better than unsound) Good package managers & build systems type inference What languages do these things well that are easy to use? In my opinion: TypeScript, F#, and Scala, which all also support OO stuff. Rust is probably my favorite language, but it is not easy. Haskell is great as a learning experience, but is definitely difficult and is so high level that it makes it hard to reason about when your program will do what at runtime because of laziness.
  9. Did RegisterAddon.exe not run at all, or are you thinking it ran with incorrect privileges? I do see RegisterAddon.exe run every time I install.
  10. I think the included license is OK, we have a handful of users successfully using the trial, though you're the first to try it on Windows 10 (I don't see why that would matter). I did see the invalid status come up once when I was testing, though I don't remember the cause. If you uninstall the EM Control Refs package and re-install it, does it fix the issue? Would you be able to post a screenshot of what you're seeing? Thanks!
  11. Language-independent update just landed! For those curious, the node was creating some property nodes and setting the selected properties by the property's name, which varies from one language to another. We just needed to update it so that they were set by the property's unique ID.
  12. For right now, this node only support English LabVIEW installations. We are working on a language independent update.
  13. We have an internal tool at Erdos Miller that we've turned into a product. It's a node that outputs a cluster of references to all controls on the front panel. A free trial is available for download here: http://info.erdosmiller.com/node-control-references-software-download-v1 It replaces code like this: With a single node: It also lets you: Bind the output type to a typedef. Include a reference to the owning VI and/or the owning VI's front panel. Exclude references to controls above or to the left of the origin. Optionally exclude controls individually. Controls on tabs are organized into page clusters. Try it out and let us know what you think!
  14. Using this is almost assuredly a violation of license agreements: http://www.hmilch.net/h/labview
  • Create New...

Important Information

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