Jump to content

Neil Pate

Members
  • Posts

    1,156
  • Joined

  • Last visited

  • Days Won

    102

Everything posted by Neil Pate

  1. In LabVIEW (and perhaps all Web Services, I am not sure here) the connection string is in the form: host_address:port/WebServiceName/QueryString so it just seems to me that something is redundant here. You can infact have multiple Web Services on the same port when running in the IDE, but then I suppose there is only a single application (LabVIEW.exe) that is bound to the port. However as soon as you have built applications this paradigm breaks.
  2. Something to add (note, this is just something I "figured" out, it is completely uneducated and could be totally wrong) on the handle vs a pointer to a handle... Dealing with a pointer to a handle is a mechanism that allows the underlying memory allocation mechanism to do stuff like defrag or completely change your memory allocation without affecting your running application. Your application has a constant "memory address" that is the pointer to the handle. Then any actual requests to memory always go through the lower level manager (i.e. LabVIEW's memory manager) which actually does the translation between the handle that your app knows about, and the actual physical memory address. No doubt I am using all the wrong vocabulary here, picture me waving my hands in the air to get an idea that I only have a vague notion that I know what I am talking about.
  3. Sure, your comments pretty much echo my internal dialogue. I can't figure out what the point is then of naming the web service? If all traffic to the IP address and port gets directed to the single instance of the web service why bother identifying it by name?
  4. Amazon EC2 is pretty cool.

    1. CRoebuck

      CRoebuck

      It is Neil, just be careful to keep an eye on your bill. I dropped off the free tier and it cost me a few £

  5. 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
  6. 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.
  7. It's a good thing NI never got around to making an SSH toolkit
  8. 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 ;-)
  9. I recently took a peek at some C++ I did in post-grad. Ouch! "Clever" variable names, swearing in comments, massive functions... The things you do when you are young
  10. 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.
  11. 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!
  12. Version 1.0

    5,076 downloads

    This project is a 100% G based Rubiks Cube solver that I coded quite a while ago (2007) and then forgot about. I must have saved it it more recently in LV2011. The algorithm is based on the 7-step method, which is totally sub-optimal for solving a cube, but relatively simple to understand. Please note this code is not representative of my current coding ability, I just upload it in case anybody is interested. If I get time I would like to do a 3D representation of the cube and allow the manipulations to be done in this view. Run instructions: set the show boolean to True click randomise! pick a start colour click solve! The buttons on the left hand side can be used to do manual manipulations of the cube.
  13. Name: Rubiks Cube Solver Submitter: Neil Pate Submitted: 03 Apr 2014 Category: *Uncertified* LabVIEW Version: 2011 License Type: Creative Commons Attribution 3.0 This project is a 100% G based Rubiks Cube solver that I coded quite a while ago (2007) and then forgot about. I must have saved it it more recently in LV2011. The algorithm is based on the 7-step method, which is totally sub-optimal for solving a cube, but relatively simple to understand. Please note this code is not representative of my current coding ability, I just upload it in case anybody is interested. If I get time I would like to do a 3D representation of the cube and allow the manipulations to be done in this view. Run instructions: set the show boolean to True click randomise! pick a start colour click solve! The buttons on the left hand side can be used to do manual manipulations of the cube. Click here to download this file
  14. 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.
  15. Yes, I did mention something like that in the line before.
  16. 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.
  17. Programmatic RT deploy FTW!

  18. 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.
  19. For those who do not know me in person, Neil Pate is my real-world alias.
  20. Indeed, a worthy cause. I was browsing the donation page earlier today and spotted a few familiar names there
  21. 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.
  22. Although this process is painful I am learning a tonne of new things about VirtualBox and InnoSetup. VirtualBox is a mighty impressive piece of software, I cannot believe I have not been making more use of it (especially snapshotting).
×
×
  • Create New...

Important Information

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