Jump to content

ShaunR

Members
  • Posts

    4,883
  • Joined

  • Days Won

    296

Everything posted by ShaunR

  1. Creating libraries and reuse code is the fun bit that everyone wants to be part of. Maintaining and supporting them is the soul destroying part that usually spells the demise of a project and gets no thanks. Good luck. It's a worthy cause.
  2. We can't see the real question so it may just be a trivial task to generate the numbers - which doesn't require binning (sorting or range checking.) The OP needs his LabVIEW eureka moment so non trivial solutions not directly addressing the question will just be confusing.
  3. This whole thread (and there are others) is about users being unclear as to how to attribute OpenG components they use. It is never clarified by an authoritive source and there are proposals to automate salutations with scripting etc. That will not work for LGPL because of the distribution component and until this conversation I expect many didn't even know there were other licences included apart from BSD. My view isn't from protecting the IP and which licences to use. It is from using a single licence type throughout and preferably one that only requires attribution - BSD fits that requirement and is ubiquitous within the toolkit whereas LGPL doesn't and isn't. A single licence type throughout is just common sense from both an administrative and pratical point of view. Deciding on MIT, Apache or any other type is also a non-starter from this viewpoint since it is a rationasation/simplification process not a "lets let the tail wag the dog" At the end of the day, though. I don't have any skin in this game. I don't use OpenG for exactly these reasons and am old and ugly enough to have written similar functionality in the past that I have complete control over for the few that I might need. These sorts of issues are barriers to adoption for someone like me so I am no worse off if nothing changes but could be better off if they did. None of it is a show stopper for me as I just rule out OpenG as I do ActiveX and .NET. In terms of sending patches.I don't think anything is needed. Changing licences is a documentation issue, not a coding issue and only the author has the authority to change licence terms. So it is pretty much a case of your licence; your call. I've laid out my arguments and others have voiced their confusion and I expect that is now compunded by highlighting the LGPL components.
  4. Nice work Rolf. I think the way to look at this is probably that it is bringing the last, outstanding, non BSD code into line with the rest of the toolkit - completing, or continuing a transition that was decided many versions ago. Your contributions are particularly problematic for others to assist with since they generally require a knowledge above and beyond just LabVIEW and therfore the skills are few and far between in the community. This tends to require us to rely on you mainting your code without assistance which is obviously a heavy burden. I think if you just addressed the code that is under your licence terms specifically, then you would be absolved of any further responsibitlites. It would be up to the OpenG maintainer (whoever that may be) to decide how to proceed further, if at all, in regards to an amalgamated licence and pruning of depricated or unreleased software - your transition would allow them that ability without caveats. In terms of your effort; that is probably something you would need to discuss with JGCode, J Kring et.al as to process but I don't think it is effort intensive. I transitioned from Creative Commons simply by up issuing and releasing into the source tree. I'm a little suprised and dissapointed that you say OpenG is no longer actively maintained. I think there are a lot of people that rely on OpenG. P.S OpenG Pipe library- Please release this proper. Pretty please with cherries on top? This is far too valuable to let wither and die.
  5. The end user of OpenG are developers making executables that may be distributed or more tools for others so yes, they do have distribution obligations under LGPL.
  6. Well. Whatever components are LGPL, the author would need to release under a different licence. Alternatively they can be replaced with other, non LGPL versions if available. Someone has resposibility for maintaining builds. It was JGCode the last time, i recall. Zlib doesn`t require a salutation. It only demands no misrepresentation or removal of existing. Unless source is distributed, i see no requirement to distribute a licence, although a mention would be nice, i agree.
  7. With NI, they all get installed with the run-time engine. Unfortunately. With licencing, you need to split hairs. LGPL is as obnoxious as my Creative Commons Share-Alike It puts an onus on the end user which means intermedaite distribution cannot cover the licence on the end users behalf. For the risk to the end user I would seriously consider rationalising all the LGPL and/or GPL to BSD if it is an option and, if a single licence that references all the contained licences could be produced so that only a single text file needs to be distributed by users of OpenG - that'd be swell
  8. Incorrect. The end userr of the OpenG toolkit has a duty to redistribute and make clear the licence terms with LGPL that is far beyond other licences. Can't the remaining LGPL be superceded with BSD?
  9. Well. It depends if you are a LabVIEW island in a C [sic] of programmers. Then you only have to learn that you *must* specify the DLL function prototypes and keep shouting "Threadsafe, Threadsafe, Threadsafe" until their ears bleed No need to learn C/C++ then I think every LabVIEW programmer should have a pet C programmer
  10. My usual retort to this sort of jibe is: "Real programmers use a number of languages and preferably one that isn't over 40 years old-do you also know Algol?" Learning another language won't make you a better LabVIEW programmer - they are generally different paradigms so require a different thought process. What it will enable you to do is fill in the gaps in LabVIEW capabilities and/or leverage other code. My preferred "alt" is actually "Free Pascal" for which I use CodeTyphon but Codeblocks is my mainstay for C/C++. Since C/C++ programmers are 10-a-penny (it's generational so the numbers are dwindling) and there are a lot of projects written in C/C++ which are must-haves for me.. I personally wouldn't jump straight to C as next in line after LabVIEW. I would probably opt for Python which is a much more vibrant and growing community even though it is (ahem) interpreted. It is also a much better option for web services (where all software is heading) so will have much more future relevance. Some others might argue for Javascript but that's just scripted and interpreted C with obfuscation features (AKA client side PHP), as far as I'm concerned. Python seems more thoughtful and designed as well as yielding elegant code. TL;DR If you want to compile DLLS (there be dragons); learn a bit of C. If you want to learn another language. Learn Python.
  11. My tuppence. None work great. This comes up at least once a year and always ends the same. SVN externals work OK. (My preference) Git submodules work, sort of. (Git is too complicated for me). Checkout in a single directory tree so LV uses relative paths to find sub VIs. The enemy is linking and re-linking which has never been resolved but .is better than it used to be. Resign yourself to just using text based SCC as binary backup system that you can quickly do a restore or branch and life is good. LabVIEW has always needed its own SCC system but NI have little interest in providing one. We cope at best but usually suffer.
  12. This is awesome. How much of a pain in the backside WAS flattening JSON objects so we can deal with them as self indexing arrays or name/value tables? And we can filter them on the fly too. How easy is that?
  13. SQLite has added the json1 extension module in the source tree. It implements eleven SQL functions and two table-valued functions that are useful for managing JSON content stored in an SQLite database. This is a huge feature feature improvement that effectively allows transparent queries of embedded JSON strings in the DB and will be of special interest to LabVIEW web enabled applications with SQLite back-ends for direct to DB insertions and remote queries. It achieves an impressive pars speed of over 300 MB/s (allegedly)
  14. Have you considered making it an XControl so it is a drop in replacement?
  15. "Upsert" is a database function. I don't know how the salesforce thing is set up but I don't think this has anything to do with HTTP but is probably describing a query executed by the HTTP request. PATCH is detailed here. It won't help you with using the NI HTTP VIs though because I believe they only implement GET and POST. You will have to fall back to the TCPIP primitives and hand craft the HTTP headers and body. Maybe Rolfs HTTP VIs would be useful here.
  16. You seem to be all over the place with this. I'm not even sure you know what you want. You started off with a complaint about toolkit developers failing to deliver multi-client websocket servers. Moved onto complaining that the websocket toolkits only enable LabVIEW UIs to be exported (all of which is untrue) and ended up complaining at not being able to write LabVIEW code in a browser (which only NI would be able to do). When I try to ask you for specific examples of failures or requirements you seem to just ride off on another unicorn hunt. Maybe you should post your requirement on the Ideas Exchange because I don't think it is anything I can help with.
  17. Your impression of Brits is rather coloured when you can't even spell 50.
  18. 1. You don't need a client. That's what the browser is. If you want a LabVIEW client, then you need to write one in LabVIEW. If you want a C# one. Then you need to write one in c# etc. Websockets is a protocol! If you do want a LabVIEW client, then here is one that sends the time to the www.websocket.org echo test server. The Open, Read, Write and Close should be a familiar concept. 2. You don't need a web server. With websockets, a web server is sometimes used so that the browser HTML and javascript can be found and downloaded. It isn't a requirement though if the client already has the HTML and Javascript. The web server is a distribution tool for the HTML and JavaScript. Here is a LabVIEW websocket server. You can see it is just a direct replacement for the TCPIP primitives and you use it exactly the same. It supports 1 connection just like it would do if you used the TCPIP primitives. . Here is another websocket server that supports multiple clients. You can download and play with this one here. You can see it uses the primitives to create the server in a producer/consumer fashion just like you would with the TCPIP primitives . There's nothing tremendously complicated here and since the VI services are launched dynamically, you just need to add it to them the the "Always Include" of your build spec. If you use a web server to enable the end user to download the HTML and Javascript rather than supply it, say, as a zip file. The web server still has nothing to do with the websocket communication. Where the toolkits vary is in how they get the HTML and javascript to the clients browser. (which is required only for browsers) Some rely on a web server and if they rely on the NI web server then you need all the deployment malarky. Some pretend they are a webserver and spurt out the webpage on port 80. All that has nothing really to do with websockets just ways of deploying the HTML and Javascript for web browsers. You still have to create/write the HTML and Javascript and some devs are attempting to do that dynamically (like Thomas). So. I will try one more time. What are your concerns with the available toolkits around creating multi client, browser enabled applications. As far as I am aware, they all can but you insist they "fail"
  19. It doesn't stop me so I expect people in here are acclimatised Guess how many toolkits Mac users buy? Guess how many queries I have had for installing any of my toolkits on Mac? :
  20. Nothing really to say except nice work. I have come to the conclusion that too little rediscovery is sought and many would learn a great deal by doing exercises from first principles like this of technology we all take for granted.
  21. Easy tiger. He was just being jocular with an expression..
  22. Hmmm. Extreme A isn't an extreme, IMO. It is what all languages provide when it comes to servers - diddly squat. Servers are applications, not language constructs so you have to write them. Extreme B has been sculpted by your LabVIEW experience and again. I don't see this as an extreme. I don't know of many corporate environments that use the NI webserver. They all want interfaces to their Apache, Nginx, Lighttpd etc. I don't know of a single IT department that I could convince to install the NI webserver, let alone supporting it so I'm not quite sure where to start with this. That aside. Probably the only place the NI webserver is used exclusively is to embedded NI products, so that may be why this particular method is appealing to you The deploy/undeploy capability from the project manager is an abomination in my opinion. I don't want to have a full version of LabVIEW just to install servers. This is before we get to how undocumented and how no NI support is available when interfacing to the project explorer. It's a lot of effort for very little gain with probably you as the increase in sales due to this feature with what? One licence? There is nothing stopping you using one of the toolkits and creating such a deployment method but this is a very subjective requirement based on a particular workflow in one use case. So I am not surprised you don't see this unless you specifically commission someone to do it. But in relation to the available toolkits. I'm not seeing any arguments around issues to create multi client, browser enabled applications. In particular can you expand on: Your terminology concerns me here."Work on the system" implies that you think these toolkits are an IDE extension for multi developer programming environments. This is clearly not anywhere near their remit.
×
×
  • Create New...

Important Information

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