Jump to content

Aristos Queue

  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by Aristos Queue

  1. There are only 2 problems in using this with modern GPower Error, easily fixed and still compatible with LV2013. 1) Replace all calls to the GPower Clear Error VI with LabVIEW's built-in Clear Error.vi, which did exist in LV2013. 2) Replace C:\Program Files (x86)\National Instruments\LabVIEW 2019\project\LAVA\LabVIEW Task Manager.vi with the attached VI (saved in LV2013) where I fixed the only use of Filter Error. LabVIEW Task Manager.vi
  2. Never mind my previous post. I missed seeing this post at first. Known issue.
  3. It’s a project window, not an arbitrary information pane window. And while we could make it an arbitrary info window, there are usability issues with that. VS doesn’t create a single window/pane with various modes. It has many panes that can be rearranged as different dockers or windows. As a project window, it should provide different views on the whole project, not one aspect of the project. It is software — we *can* do anything. But various UX reviews suggest this particular approach would be a less-than-ideal solution. Is the downside worth the gain? Our answer up to now has been, “No, don’t introduce a bad hack, just wait and do it right in NXG.” A variation that is in line with UI design expectations would be a splitter bar in the window that has the project pane above and the class pane below. The project pane would still have two views (virtual and files). Or a completely separate window. Or introducing a docking/undocking system. Any of those are things that would be more likely to fly. Do any of those appeal? Obviously a full docker pane system would take longer to develop.
  4. What you’re asking for is the dockable panels that NXG had. NXG was able to use more of that VS pattern. But LabVIEW doesn’t have the same setup. A class tree isn’t another view of the project tree — where do you put all the VIs and libraries that aren’t part of a class?
  5. I did not know. That possibility was not even on my radar. Even though the drumbeat of bad news had been going for a while, most corporations refuse to change direction on a bad decision. NI showed more sentience than I usually expect from massed humans: the sunk cost fallacy is a trap that is very hard to get out of. I figured the very good engineers on NXG would either surge through it and make it fly or we would bankrupt the company trying. That's the pattern established by plenty of other companies. Mixed. I spent 4.5 years directly working on NXG (2011 to 2016) and countless hours in later years working with the NXG team to design a future G. I really wanted it to fly. There is so much good in that IDE, including some amazing things that I just don't see how we ever do in the LabVIEW codebase without just shattering compatibility. But at the same time, I was watching good friends toil on something that the market just wasn't adopting. The software had some problems that were going to take a long time to solve. The issues were all solvable, but the time needed to fix them... that was harder and harder to justify. NXG gave us a GREAT platform for other software: Veristand, FlexLogger, etc. That code is extremely modular and can be repurposed for all sorts of tools. We also learned a heck of a lot by building NXG -- some things that I thought we could never do in LabVIEW now seem possible. NXG gave us a sandbox to learn a whole lot about modern software engineering without putting the delivery schedule for mature software at risk, and those practices [have been|are being] brought back and applied to LabVIEW -- that will decrease cost of maintaining older code. All in all, NXG was valuable -- the expenditure was not a complete loss. I am very sorry to the few customers who did migrate to NXG. We don't have a reverse migration tool, and building one would be absurdly expensive. Leaving those folks stranded is going to hurt -- I hate letting our customers down and just saying, "We have no solution to help you." There aren't many of those folks (that's essentially the problem), but they do exist, and they are basically stuck having to rewrite their NXG apps in some other tool. I can only hope that they pick LabVIEW. I don't know if this will help us or hurt us with customers in the future... on one hand, people may say, "Well, you let us down on NXG, why should we trust you will be there for us on any new products?" On the other hand, this decision was clearly made listening to customer feedback, and it takes a lot of humility to swallow a loss that big, which may make customers trust our judgement more in the future. And, really, there's nothing to compare with the scale of NXG -- an entire computing platform -- so this does seem like something that needs to be judged in isolation. I really like programming in G. I like being able to expand G to make it more powerful. I wanted NXG to succeed because it had the potential to be a better G. It failed. Its failure means more resources for the existing LabVIEW platform, which will directly help our customers in the short run. It leaves open some big questions for the long run. So, in summary: I think it was a decision that had to be made, and I'm happy to work for a company that can learn from new data, then admit a mistake, and then figure out how to correct it.
  6. Data color implies data type in G. Speaking only for myself as a G programmer, that's not an invariant I would want a developer on my team to be able to mess with. It would be a disaster of incomprehensibility if an orange wire running around was secretly an integer. Even just shades of blue would be a problem. I would put a hard stop against such a feature in my team's style guide if LV R&D ever decided to add it... and I have a hard time imagining LV R&D adding it.
  7. Bobillier: It isn't really meaningful to color a particular instance of an object -- from wire to wire, it isn't necessarily the same object. It's the same as asking to have different color wires for two integers in the diagram or two strings. If the two things really represent different concepts in your system, you might create two different classes, both inheriting from the same parent class. Classes are distinguished on identity, state, and behavior, and there are good arguments for making two things be different data types even when they both have identical APIs. LabVIEW has never introduced distinct colors for individual typedefs (.ctl).
  8. It would be fine to do... I just didn't bother writing the conversion. The performance differences between a set and linear searching an array are essentially impossible to measure until about 1000 elements on a modern CPU.
  9. @JKSH Thank you very much. Attached, folks, is a revised copy of the .lvllib and its subVIs that will set icons for camel case VI names. Just unzip it to replace the files currently in your 2020 install -- make a backup copy first in case I've done something egregious. Text-Based VI Icon.lvlib.zip Included in the directory is one VI that is *not* part of the library: "Configure Named Icons.vi" If you open it, you can fill in a list of words to abbreviate and list of words to ignore. If you run the VI, these lists will be saved to your LabVIEW config file. The regular expression parser can be improved to handle a lot more cases, if someone wants to tackle it, but this is good enough for my purposes.
  10. @Darren Command line requires lots of quote marks if there are spaces involved. Not everyone uses a UI.
  11. And if we had something like "Split English CamelCase.vi", someone could also fix the spell checker in VI Analyzer. Just sayin'. 🙂
  12. UPDATE: Solution posted below. In LV2020, if you right-click on VI's panel icon, there's a new menu item: "Set Icon to VI Name". It splits the name at spaces into words and creates a nice text icon. Great! But some places have coding conventions that require no spaces in the name -- it's easier to use git with such files. And in that case, the current code sees the VI name as all one string. I would very much appreciate it if someone with spare time wants to rewrite this VI to handle CamelCase names: vi.lib\LabVIEW Icon API\Set Text Icon\Adjust Text to Fit Rectangle.vi There's a small While Loop at the left side of the diagram that splits the VI name into an array words. It needs a bit of adjustment, something like, "If input string contains spaces then do the While Loop as it stands today. Otherwise, call some function that will split the string into an array of words based on CamelCase separation." If it helps, I found this rather amazing Stack Overflow post that provides a detailed 10-part regex expression that can successfully translate this: into this: I couldn't quickly get it working, so I moved on to other projects. But it would be nice...
  13. “There was this fence where we pressed our faces and felt the wind turn warm and held to the fence and forgot who we were or where we came from but dreamed of who we might be and where we might go...” -- Opening lines of “R is for Rocket” by Ray Bradbury I spent 20 years building this G language of ours. It’s time for me to go enjoy the fruits of that labor as a user! I will still be employed by NI, but I will be working full time for Blue Origin. As part of the NI “Engineer in Residence” program, I will be on loan to Blue Origin to revise their engine and support test systems. They wanted a Certified LabVIEW Architect with deep knowledge of LVOOP, multiple years of experience with Actor Framework, and deep knowledge of cRIO and PXI. I asked, “Can we negotiate on that last part?” They said, “Yes, yes we can.” Turns out, based on the interview, I know more than I thought – apparently some hardware knowledge does rub off just by sitting near it for a couple decades. This new job runs for six months, but it is extensible through the end of 2021 at the discretion of myself and Blue Origin. When I come back, I do not know if I will be returning to LabVIEW. Spaceflight has long been a passion of mine. Over my 20 years with LabVIEW R&D, I have had the chance to help out with various Mars rovers, large telescopes, and rocket launches. It has been awesome, and I’m proud of the language advances I brought to LabVIEW that helped so many users along the way. Now, I am going to focus on just one customer for a while... a customer with very large rocket engines! My last day will be Friday, October 23. I will not have the same availability to respond to posts as I have in the past, but Aristos Queue will still be around on the forums. “And, walking, I went beyond the fence.” -- ending of “R is for Rocket”
  14. I have made public a document detailing an old internal feature of LabVIEW that will be of great interest to those of you deploying Packed Project Libraries. Until recent conversations with a customer, I never considered that this would have much utility. The problem this solves: First, you build a packed project library (PPL) from source. Then, you write a VI that calls that PPL. It works fine. But now you load the caller VI under a different target in your project. The caller VI breaks because it tries to load the PPL, and the PPL refuses because it isn't built for the new target. Packed project libraries are compiled for one and only one specific target. How can you write ONE caller VI that will load DIFFERENT libraries depending upon the target without adding Conditional Disable structure complications? https://forums.ni.com/t5/Community-Documents/Resolution-of-Pseudopaths-in-LabVIEW-Per-Target-Invocation-of/ta-p/4087124
  15. A software team can produce the next version of the software with the same staffing as the previous version. There’s no requirement to keep ramping investment other than pay raises. But if the employment environment is sufficiently non-competitive, not giving raises doesn’t lose devs. I presume hardware has similar economics, but I’ve never dug into that. In short, flat R&D can still provide continuous growth in revenue, as seen during 2001 and 2008 downturns at NI.
  16. I have a theory for what a good UI for GIT would look like, and it is a bit different from the existing ones. I think there should be a picture of the current state of the world. You draw a picture of the state you want. Then the tool generates the command line commands that get you from A to B. This serves two purposes: rather than taking an action and then seeing if that did what you want, it puts the UI in charge of figuring out how to get you textually what you're specifying graphically. Second, it shows the user what the commands are that it is executing so that you figure out "oh, that's how that is done" so that when the UI inevitably hits its limits (for whatever reason, GIT seems to exceed the complexity of all UIs used to render it), then the user is already are familiar with the commandline interface. I don't think I'll ever be motivated to write this UI, but I figured I'd toss out that bit of brainstorming in case anyone decides to chase that albatross.
  17. THIS. Absolutely this. Misery loves company: please use GIT!
  18. GIT is that awful, in my opinion. I've screwed up many things years. I try not to use it as much as possible. The reason that GIT has taken over the SCC world is not because of its ease of comprehension or elegance of interface. It is because it is the only tool that can manage the full complexity of massive software teams, parallel releases, compression of features, etc, and the folks who use it daily just deal with it and get used to it.
  19. Glad I could help. I’ve already seen it have some small external impacts on how NI interacts with customers (in both cases, positively). We will have to wait and see whether it turns into anything more substantive.
  20. NI had a massive online event, the company updated the website, our execs have given interviews, and I-don’t-know-how-many employees are on social media. I’m not sure how much louder we can amplify this. All I did is repeat what has been said in other public forums. 🙂 If I happened to use words that got the point across, great. But the content ain’t new!
  21. The core of our business has changed. Fewer users are developing their own test applications; instead, they're buying something off the shelf like TestStand. Fewer users are developing their own data acquisition software; instead, they're buying something off the shelf like FlexLogger. This trend alters significantly the role of LabVIEW (CG and NXG) in the NI ecosystem -- it becomes far less important to support whole application development (though, of course, we still do and will) and far more important to support "just a bit of customization" when the pre-built tools fail. A lot of software has an endless array of switches and options, but LV provides the ability for a user to write a custom routine to specify the behavior they want in some corner niche of a product. Think like Signal Express, able to generate sine wave, square wave, triangle wave or "pick a VI that generates the wave that you need" wave. What's funny about this is that although the app devs are growing rarer, they're also individually growing more profitable for NI as a whole because the companies still paying to develop custom software are the ones that are generally buying a lot of hardware to do something unique in the world (or not in the world, in the case of SpaceX, Blue Origin, Ad Astra, etc.). So I don't expect the big scale parts of LabVIEW to vanish, but I do expect them to be driven by specific requests from megascale customers rather than from the massed collective. The massed collective will be driving more of the IDE developments. At least, that's my suspicion at this time based on the presentations I've seen.
  22. It is uncommon enough to do the job -- truly unique is hard to do with the limits imposed on modern logos. Color: The folks who study this said that the blue was a color used all over the place in corporate logos; the green is much rarer. There's really only a handful of colors that are available for corporate logos: red and blue are the big dogs, then green/purple/orange. And black. Yellow doesn't have enough contrast -- as we constantly prove trying to put the LV logo on things, so it has to be boxed into stuff. Yes, you pick a shade of those colors, but your logo will be bucketed anyway -- Hulu, TechCrunch, and NI have very different greens, but it's all just "green" when evaluating uniqueness. What that means is, yeah, you can argue about particular shades, but it's hard to actually be unique, so it is all about finding a not-as-common color for your industry. Green works for NI. Symbol: The logo has to be renderable recognizably down to absurdly small sizes, which limits how many places you can put the logo before you end up with a smudge -- which happened to the blue eagle a lot. Something that is easily represented by vectors scales a lot better. The eagle was a distinctly USA symbol in some places -- sometimes a pro, sometimes a con. Or it was recognized as something else. The new logo isn't a representation of anything, so it doesn't accidentally pick up cultural baggage. Is it wild and unique? No. Generally, modern multinational logos cannot afford to be splashy like the old LabVIEW logo was -- too many colors limits where you can use it, and too many graphics limits its scale. But it'll be recognizable. That's the goal more than anything. And it represents a break from the past, and there was a fair amount in that presentation that was different than the Dr. T era. Most of it good, some of it aspirational. We'll see how it goes.
  23. I liked it in theory, but I'm seeing a bunch of warnings online about Stylish having become malware that is shipping private information to third-party. You might want to investigate.
  24. I answered the question you were really asking, which was, “Did you idiots even think before implementing this junk?” If you had wanted an actual explanation of the feature, I’ve seen your posts often enough to know you would have asked directly. You didn’t ask that, so I didn’t answer that. Your response to JeffP strongly suggests that I was right. X__, it is honestly hard to tell in many of your posts whether you want an answer or just want to pick a fight. My goal is to answer customer questions about LabVIEW and its design and to learn enough to fix designs that aren’t working. Please, if you want a more useful answer, ask a question that isn’t snark and doesn’t require Latin translation. It would make helping you a lot easier — and I mean that *even if* your question is about R&D’s general lack of forethought.
  25. Yes. It is an excellent change from CurGen that makes source management far easier for all use cases that we have evaluated.
  • Create New...

Important Information

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