Jump to content

Neil Pate

Members
  • Posts

    1,156
  • Joined

  • Last visited

  • Days Won

    102

Posts posted by Neil Pate

  1. OpenSSH is a different toolkit and, although it does use OpenSSL, the vulnerability only affects TLS (which OpenSSH doesn't use)

     

     I was being a bit facetious, but I did not know about it only being TLS, so I forgive you.

     

    I have a ten week old at home, I didn't get to sleep with anybody last night  :lol:

  2. Just tried out something that I would have expected should work, but doesn't.

     

    As a Web Service is identified by a name I would have expected I could run several of them on the same system with the same port. This does not work, whichever service is started first works, the other does not. Moving the second Web Service to a different port works properly.

     

    Am I being unreasonable with my expectations here? I know enough about ports to be dangerous but that is about all, is there some underlying restriction of the OS (Windows in this instance) that only allows one application to bind onto a port?

     

    The reason I am doing this is to try and create a test environment so that I do not affect my production Web Service application.

     

     

  3. Very seriously  :angry:

     

    It is the only time I've ever heard that using encryption is worse than not using it.

     

    Luckily, the binaries shipped with LabVIEW are not susceptible-they're too old :D

    It's a good thing NI never got around to making an SSH toolkit  :lol:

  4. So, most of you here are probably aware of the Heartbleed bug in OpenSSL.

     

    How seriously is everybody taking this? Seems like a good time to change my password; "12345" was probably due for an extra digit on the end by now ;-)

  5. Thanks guys.

     

    The code in question was written by myself some time ago (circa 2007).  I was creating a NaN by dividing by zero, I suppose at the time I did not even bother to consider the "correctness" of the conversion, it worked and I just accepted it and moved on to the next thing.

     

    I find it really educational to look back at my old code and see how my style has changed. Coercion dots all over the place, no defensive programming techniques etc etc.

     

     

  6. Hi All,

     

    I am in the process of porting a LV8.5 application to LV2013. One thing I have noticed is that there is a difference in behaviour when converting a NaN (DBL) to U32 using the To Unsigned Long Integer primitive.

     

    In LV8.5 NaN is converted to 0

    In LV2013 NaN is converted to 4294967295 (the maximum a U32 can hold).

     

    Does anybody known when this changed, and does this seem like a reasonable change? This could lead to some very strange bugs!

     

     

  7. A picture says a thousand words :P , but yes I included both parts to demonstrate a good way to check if the elements exist before attempting to read them.  Regarding your last point, I would suggest at least employing a timeout if someone isn't going to do the initial check.  The host loop should be structured in such that it doesn't need data every iteration (if you are looking for a chunk of buffered data), or manually provide your own polling by placing something like what I have in the picture in a loop with a timing element. 

     

    The point I was trying to get across (unsuccessfully it seems!) is that even with a timeout a lot of CPU is used up waiting for the DMA buffer to have enough elements. This is probably contrary to what most people would expect.

  8. Just to add to Jordan's post for those that don't know.

     

    His picture shows an efficient way of reading from the DMA FIFO, first check to see if there are enough elements by requesting zero with a zero timeout, this will return the number elements remaining. Then only perform the actual read if the number of available elements is equal to (or more than) what you want.

     

    My understanding of this necessity is that although the transfer occurs via DMA, if there are not enough elements yet then the CPU actually polls (using a lot of resource) until the number of elements is achieved, and this can really kill performance.

    • Like 1
  9. "Fastest" being a relative term, but a couple weeks recoding is apparently faster than getting LabVIEW to resolve what should be a totally elementary organizational operation. This would be one of the "troughs" in our love/hate relationship with LabVIEW.

    I feel your pain Mike,

     

    This advice will probably come across as totally patronising (it really is not meant to be), but I really recommend nightly builds of all executables, committed into your VCS. Doing this generally saves a whole bunch of time when LabVIEW throws its toys out the cot.

  10. If you're distributing a Web Service, ship the entire, Full RTE. LV2013 Web service run-time dependencies reticulate throughout a wide smattering of RTE packages, and I've been as-yet unsuccessful to pare to a reasonable subset. (Reference: experience gained through significant efforts over the past year to do this, and far more time in front of ProcMon consoles than what's healthy)

     

    This is what I ended up doing. I spent days trying to figure out which dependencies were required, and gave up in the end after trying many different "sensible" permutations.

     

    I have gained a whole heap of Inno Setup knowldege and random installer stuff now though, so I suppose it is time well spent.

  11. Thanks for the tips guys,

     

    I am getting there, slowly! This is my current [Run] section

     

    [Run];Filename: "{tmp}InstallDotNET4dotNetFx40_Full_x86_x64.exe"; Parameters: "/q"; WorkingDir: "{tmp}InstallDotNET4"Filename: "{tmp}LVRTE_Extractedsetup.exe"; Parameters: "/q /AcceptLicenses yes /log /r /disableNotificationCheck"; WorkingDir: "{tmp}LVRTE_extracted"; Flags: waituntilterminated
  12. Hi All,

     

    So I have spent a large portion of my weekend either changing nappies or trying to get a LabVIEW application running on a fresh PC (in a VM). Basically I am trying to streamline the RTE (using a technique similar to Jack's described here). I will admit I have not made very much progress, I can run a very simple app, but have not yet found the magic sauce for making .NET4 DLLs work, or WebServices.

     

    I have two simple builds that I am trying to run. One is a simple .NET DLL test, the other a WebService test. The first fails to run properly with a broken run arrow, the second runs, but I get a LabVIEW error the same at the original post in this thread.

     

    Any tips here on which parts of the RTE I should be using? Note I tried the components described in this document to try and make the WebServices work, no luck.

     

    Edit: ok figured out the .NET portion (maybe) needed to include VC2010MSMs.

     

    Help!

    Neil

  13. We abandoned the NI built installers with the 2011 release over similar issues, the 64-bit IDE was failing to package up the entire RTE even when asked. You're not alone.

     

    "Glad" to hear I am not alone in my frustrations here. If you don't mind me asking which 3rd party setup generation tool did you settle on? From speaking with a few others it seems that Inno Setup is quite a good option.

  14. More info on this error in case anybody else stumbles upon it.

     

    I still do not know what causes this problem, and the only reliable solution I have found so far is to install the LV runtime engine manually before proceeding with the application installer. This is not a very satisfying fix for the problem, and am not devoting some time to looking into alternate install creators as I do not think the one built into LabVIEW is doing a very good job.

×
×
  • Create New...

Important Information

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