Jump to content

Neil Pate

Members
  • Content Count

    964
  • Joined

  • Last visited

  • Days Won

    78

Everything posted by Neil Pate

  1. I use InnoSetup for a custom installer and I also install the 2019 runtime this way. It may not be the "right" way to do it, but the way I solve this problem is to manually extract the runtime installer and then just include that directory in my installer and run the Install.exe from the installer.
  2. I think LabVIEW is going to be around in some form for at least another ten years, primarily due to how entrenched it currently is in the niche it fills. However, if I was starting my career again in 2021 I would definitely not choose LabVIEW as my primary language of specialization. I think the poor decisions NI have made over the last ten years will lead to its irrelevance/obsolescence, which I am genuinely saddened by. It pains me to think where current gen LabVIEW could be if the money and time funneled into NXG had been put to overhauling current gen.
  3. I didn't say perfect...
  4. Being able to drop pictures on a block diagram is so amazing.
  5. I tried with a longer row replacement, 6000 elements, and the MoveBlock technique starts to become marginally faster. I am going to stick with the simple replace an element at a time method.
  6. It really makes sense to me to have the MoveBlock be the fastest when replacing a row (or subset of a row). I wonder if the difference is also more exteme as the size of the replacement changes? In other words replacing a section 1M elements long is probably much slower when doing it element by element compared to a single MoveBlock call.
  7. Sure, but I am surprised that looping over an array doing individual array element replaces is quicker than doing a single MoveBlock! Seems suspicious...
  8. In another plot twist it looks like my original naive method of just doing a for loop is actually quicker than the MoveBlock. I do not really understand this but am going to leave it here for now.
  9. Method 3 using MoveBlock seems the fastest when you want to replace without starting at zero
  10. I actually have a scenario where your MoveBlock method might be faster. Using the primitives you cannot replace a portion of a row (which is actually what I want to do). This should be a lightning fast operation but I have to either do it item by item or index out the row first, replace a portion of it and then replace the 2D array. My code might be sped up a bit with an In Place structure, I have not yet tried this.
  11. Yes I did. Actually my first benchmark was just to make the change manually in the VI and re-run it. The results are the same. Sorry my picture was not good, if you look closely I introduce some forced data flow from the first structure to the second so that they do not run in parallel as I did not want to bias the results in any way.
  12. Risky click of the day running that VI! But hey, life is short so I tried. My Russian is a bit rusty but I guess you came to a similar conclusion?
  13. I guess it is expected if you think about how the arrays are laid out in memory, but still interesting to confirm. For the eagle eyed I know my two loops will not actually produce the same result, but I don't think this should change the conclusion.
  14. That looks cool! My eldest is the right age but has literally zero interest in this kind of thing, my younger one is much more into this but right now is a bit too young.
  15. I was able to connect to an Azure IoT hub using a MQTT library and generating my own SAS token based on the following algorithm I found somewhere on a Microsoft site. This is my implementation. I struggled a long time with this until I figured out the Base64 decoding and encoding and URI encoding. For reference this is a typical SAS token (obviously URI and Key have been changed to protect my stuff) The SAS token is then used as the Password like this: Please note I am definitely not an expert here, I figured this out on my own
  16. I mean I needed some other analysis functions and these were also broken. At that point I was worried I would hit something I would not be able to recreate myself. The environment variable solved it straight away for me so I am not sure what is going on with your PC.
  17. So I took the the same route initially and just implemented my own Mean.vi as it was trivial. Then something else broke and I realised it would be a game of whack-a-mole I could not win so went to solve the actual problem.
  18. 1. What type of source control software you are using? Currently use Git for my LabVIEW work with my repos hosted on github.com 2. You love it, or hate it? Love it. Sure there is a learning curve, but anything worth learning will take a bit of time. 3. Are you forced to use this source control because it's the method used in your company, but you would rather use something else My choice. I have gone down the path of Nothing-->Zips-->SVN --> Mercurial --> Git and am happy with git. I still have heaps to learn (even coming from pretty high competency with
  19. Would love to see your more sophisticated testing, especially the holding state data.
  20. Sure. But doing dev work on your own PC could then be potentially problematic if you have to support multiple different projects and implementations. I do expect the native node to get better as time progresses and python slowly strangles all other languages.
  21. Having the Status visuals as a tick or a cross but represented by a boolean. After 17 years of LabVIEW development I still make mistakes when using the error Status boolean and forget that a True means "Error Present".
  22. Docker? Nope that's not at all related to this. I mean Project Dragon.
  23. So again I am definitely not an expert but my understanding is that a virtual environment is like a small sandboxed instance where you can install packages and generally work without affecting all other python code on the system. I guess it's like nuget. If you don't use a virtual environment when you install packages it affects the global python installation on your machine. Seems like pretty sensible stuff (and hopefully what Project Dragon will do for LabVIEW). However I have not been able to get the native python node to work with a virtual environment.
  24. Nice question James! I have tried to go down this route myself and had a very similar journey. In the end I have decided to stick with VS Code for Python dev work as it seems to be gaining so much traction and is improving at a great rate. None of the python connectors I tried worked very well. I would prefer to use the native one but it does not seem to support virtual environments which is what seems to be the preferred way of doing things in Python. In the end I rolled a simple TCP/IP client/server solution and was planning on using that to get data to/from Python. But. I hav
×
×
  • Create New...

Important Information

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