Jump to content

Neil Pate

Members
  • Posts

    1,172
  • Joined

  • Last visited

  • Days Won

    106

Everything posted by Neil Pate

  1. I am not *that* paranoid, but certainly I like to push my work at the end of each day. I am not actually anti-git, it is just taking me a while to get used to its best practices and nuances.
  2. I guess what I mean is I find it strange that people would even have local branches that are not pushed to the server. Maybe I am just paranoid about my house burning down, my computer getting stolen of my hard drive dying. For me one of big benefits of cloud based VCS is that I almost always have an up-to-date geographically distributed copy of my code.
  3. The thing I still find a bit strange is how it is possible for the remote and local branches to be totally different (even different names). I totally get that the local branch can be out of sync if you have not done a push/pull to the server, the thing that seems weird to me is that the local can have a totally different structure. This is just something I need to get used to.
  4. This morning I finally realised why I semi-regularly get into a detached head state (I think I know why...). In git there are several different options for checking out a commit (checkout commit, checkout branch etc) and I never really paid much attention to the subtleties of these. As far as I thought they all did the same thing, that is revert the local code to the state of that commit. It turns out that my understanding was flawed, and every time you check out a single commit (rather than the actual branch) the current state will not point to any particular branch and you will be in the detached head state. I find this a bit weird, as I presumed if you checkout a commit in say the middle of a branch somewhere you would still be on that particular branch. Checking out a branch will always checkout the latest commit of that branch. This article explains it nicely. I have not been too scared of detached head for a while now as I know it can be easily fixed just by making a new branch, but it is nice to know why this actually happening. Happy gitting! (next step in my git mastery is to understand the subtleties of local and remote branches).
  5. 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.
  6. 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.
  7. Being able to drop pictures on a block diagram is so amazing.
  8. 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.
  9. 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.
  10. Sure, but I am surprised that looping over an array doing individual array element replaces is quicker than doing a single MoveBlock! Seems suspicious...
  11. 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.
  12. Method 3 using MoveBlock seems the fastest when you want to replace without starting at zero
  13. 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.
  14. 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.
  15. 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?
  16. 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.
  17. 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.
  18. 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 so it is possible I am doing something terribly wrong!
  19. 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.
  20. 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.
  21. 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 Mercurial), but I am treating this as an opportunity to get better. 4. Pro's and Con's of the source control you are using? Pro: Lot's of resources out there to help me when I screw up. Git is ubiquitous now. I love the GitKraken client! Con: Some of the things still confuse me a bit, especially how local and remote can have different branches. 5. Just how often does your source control software screw up and cause you major pain? I don't think I have ever actually lost work or been caused major pain because of my misuse of source code control. Certainly I have made mistakes but have always managed to recover things. Contrasting this, I still sometimes lose stuff when I am being careless with documents that are not yet under any kind of control In a nutshell I could not live without Source Code Control as a regular part of my daily workflow.
  22. Would love to see your more sophisticated testing, especially the holding state data.
  23. 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.
×
×
  • Create New...

Important Information

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