jzoller
Members-
Posts
285 -
Joined
-
Last visited
-
Days Won
5
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by jzoller
-
How to handle extra data in a queue?
jzoller replied to george seifert's topic in Application Design & Architecture
You might consider using a notifier instead. http://zone.ni.com/reference/en-XX/help/371361J-01/glang/notification_vis/ JZ -
Anyone with an interest in language design: Ithkuil
jzoller replied to Aristos Queue's topic in LAVA Lounge
Interesting link, thanks.- 2 replies
-
- graphical language
- language
-
(and 1 more)
Tagged with:
-
Do you aim to get users working quickest or do you aim to teach?
jzoller replied to Mr Mike's topic in LAVA Lounge
Because it's fun and related, here's Alex P's related "Pounding a Nail: Old Shoe or Glass Bottle?" post... http://weblogs.asp.n.../25/408925.aspx Does the user know enough to understand a sophisticated explanation? Are they interested in learning, or do they just care about their deadline in two hours? How much time do I have to explain? Is it the type of solution that I can explain without digressing into compiler/parser/memory structure/boring stuff/things I'm marginal on? Has the user actually thought about the problem yet? Answering either short or long form is fine, but it just depends. Personally, I often find that problems I have time to solve are too trivial to be interesting, and problems that are interesting I don't have the time to really dig in to solve them. Joe Z. -
I have always like rolfk's explanation at http://lavag.org/top...post__p__25413. LGPL potentially requires segmenting your code into libraries that may not be natural to the architecture. BSD is much more permissive, in that it simply requires notices on the affected code, but doesn't really require an architecture change. I thought http://www.smashingmagazine.com/2010/03/24/a-short-guide-to-open-source-and-similar-licenses/ was a pretty good summary, too. Joe Z.
-
Congrats!
-
Just wanted to say I'm loving the thread, thanks for everything! I'm afraid I've been sidetracked lately by swapping employers... I'll get back into it one day soon. Joe Z.
-
Thanks Shaun, I should be able to take a look at it this weekend.
-
Hi all, I've put together a small library to convert JSON formatted messages into something more useful in LabVIEW: variant attributes. It's still in progress (more scripting to go...), but you can see it at: http://code.google.com/p/jsonlv/downloads/list. Grab and unzip the .zip, open the json_example.vi, and work from there. Because JSON is a pretty variable format, I'm looking for JSON (valid or not) that breaks the parser. If anyone wants to give it a try, please feel free to contact me here, or at joe@underflowsoftware.com. (Side note: LV crashes if you try to create a very, very deeply nested cluster using scripting. So... don't do that!) Thanks, Joe Z.
-
http://forums.ni.com/t5/Multifunction-DAQ/NI-DAQmx-Base-3-5-Mac-OSX/td-p/1980101 James-D's answer was pretty reasonable, I thought.
-
Indirect recursion only working with a breakpoint inserted
jzoller replied to jzoller's topic in LabVIEW General
Ton, There are potential licensing issues on this version. I'll be re-implementing (without globals) for an open source version... or anyone else is welcome to, if they wish. Joe Z. -
Indirect recursion only working with a breakpoint inserted
jzoller replied to jzoller's topic in LabVIEW General
It looks useful. My work currently doesn't allow me to get to the mirrors that carry the OpenG tools, so I'll check it out later tonight. -
Indirect recursion only working with a breakpoint inserted
jzoller replied to jzoller's topic in LabVIEW General
Thanks Ton! I'll scrub the code for other possible race conditions as well. Joe Z. -
Indirect recursion only working with a breakpoint inserted
jzoller posted a topic in LabVIEW General
Maybe someone can find what I'm doing incorrectly... I'm doing a fairly literal port of json_parse.js from Douglas Crockford. It's an indirect recursive descent parser that uses a global to track where it's at in the JSON string that it's parsing. Essentially, value() calls object(). object() may then call value(), and so on. Works great... as long as my value.vi has a breakpoint inserted at the beginning. Take the breakpoint out, and the vi doesn't... really seem to execute. Or it does, but unpredictably. Does anyone have any insight into what might be going on here? The code was crashing with an access violation. I spoke with an AE, and he said my top level VI was corrupted. Replacing the LV native globals with an LV2 global fixed the crash, but hasn't fixed the execution issue. Code's attached, if anyone has any insight. Parse.vi is the top level. (Sorry, haven't had a chance to implement array() yet...) Thanks, Joe Z. json indirect recursion.zip -
I recently went through a training with Requirements Gateway. It struck me as a vastly powerful and versatile engine (really amazing!)... hidden behind an incredibly clunky and dated VB6 style interface. Screen switching to set up the model in one place and view the effects in another. Very strange mouse behavior: click a button to enter some mode (like there was no mouseover event...?), and the mouse teleports to a different part of the screen. Entry fields were also... odd: some things you could click on, some you couldn't (but it seemed like you should). And clicking on entry fields tended to make the screen flash as it redrew everything so I could type. Nothing came up in the training about web integration, either. That's something I more or less expect a modern, expensive tool to have boldly stamped on the front. Honestly, RG had the overall feel of a tool that had been abandoned except for the document interface engine. Sorry NI folks, I really wanted to like it. Joe Z.
-
I'm late to this, but I wanted to make a recommendation for a project you should do someday: Build a compiler for a programming language. Just a small one. Sounds complicated, right? Really, it's not that bad. At its core, a compiler just translates information from one form to another. I guarantee, though, that you will learn more about how CS is applied than in just about any other project. And, it turns out, a huge number of day to day, real world problems can be solved with the exact same ideas that compilers implement. There are tons of resources on Google for compiler building. Good luck! Joe Z.
-
Passing data between languages
jzoller replied to Mark Yedinak's topic in Application Design & Architecture
Using JSON for this as well. -
Congrats to LV programmers on the Discovery Telescope project!
jzoller replied to Aristos Queue's topic in LAVA Lounge
Congrats Paul! Nothing is exciting as astronomy... I hope we get to see many images in the coming years. -
I'm very much not an expert, but I've tinkered with this a bit. My experience is that it is functionally impossible to tell my code from internal LV code in the assembly. Perhaps if there were more NI internal knowledge available on how things are structured, this would be more reasonable. It's possible that such structural information is available in the LLVM decomposition... it doesn't appear to be available in DFIR. JZ
-
In a similar fashion to grabbing the actual queue, you might consider creating a fourth component that just sends out messages to the other three. Then, "spike" the messages with a heavy bias towards suspect states, and see which cause the largest memory increase. You could also mock or fake existing components to isolate the one of the others... 2 cents Joe Z.
-
Configuration File (.INI) Best Practices
jzoller replied to jbjorlie's topic in Database and File IO
For smaller, relatively unstructured systems (especially when the requirements are still largely unknown), I tend to drop the config file contents into a variant as a set of name/value variant attributes. This maps pretty well to the native ini format. I can pass the top level variant around, and pull out the values as if from a dictionary. There's still the downside of needing to typecast things as they're pulled out of the variant attributes, but overall, it's a very flexible method. I'm not sure how this would work for object initialization. I suppose that each object could contain a single top level variant dictionary, corresponding to it's own section(s) from the ini file. Like most flexible methods, this can be taken too far. Keep in mind that variant attributes hide information, and can make debugging a nightmare. Joe Z. -
Never knew this... thanks! Joe Z.
-
Most major public sites have a license applied to uploaded code through their terms of use. See stackoverflow (section 3) and NI (under User Contributions) for examples. I am not a lawyer, but my understanding from talking to lawyers in the US: If you use code that does not have an explicit license attached to it, you may end up owing the creators licensing fees, and/or they could restrict you from using it. This includes use in non-commercial and non-profit applications. Overall, it's not a good area for misunderstandings, and a real legal opinion is probably needed. Especially if the admins decide to apply a license in the future... do they have to strip all attachments from the past? Do they have to track down all the authors and get permission for the new license to be applied? Does everyone need to create new accounts to agree with the new licensing? JZ
-
Calculating dynamic formulas with boolean operations
jzoller replied to Sima's topic in LabVIEW General
I've used LuaVIEW for this as well. From the manual: I had a (mostly) binary decision tree that had an arbitrary set of rules that users could input to reach a manufacturing rework/binning decision. I used Lua for the original tests, but ended up building my own parser and evaluator directly in LabVIEW. Sadly, the company I did that for is now gone, and the code with it... but such code is possible, and not even that hard, if you don't mind getting all computer-science-like. I adapted my implementation from an elementary textbook, but the basic subjects for googling are evaluating postfix expressions, and converting infix to postfix expressions. Joe Z. -
Futures - An alternative to synchronous messaging
jzoller replied to Daklu's topic in Object-Oriented Programming
Thanks, this is interesting. What's the recommended action when the consumer reaches the point of needing the information, but the producer hasn't gotten around to filling the future yet? Do you end up having to detect stale data? Joe Z.