Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 12/09/2009 in all areas

  1. Funny, this reminds me of a framework I used. I posted a blog about it on the old LAVA framework, if someone has it please post. In short it's this way. An active engine with several 'set methods' Set Data Set Start ... However I created an accessor VI for each of these methods. Then i wrapped all these methods inside one polymorphic VI. Ton
    2 points
  2. My $0.02... FGs / AEs / LCODs have proven themseleves as excellent constructs for many years (config file library comes to mind). Yes, they can be abused (I can abuse anything). Yes, they can get out of hand with quick fixes (the quick fix is to blame not the AE construct). Just because we have another tool (e.g. LVOOP) in our bag doesn't mean we need to throw out the old ones... maybe we just need to protect them better as suggested above. BTW... aren't you the one who said "...[don't] throw the baby out with the bath water" awhile back? ~Dan
    2 points
  3. Finaly , i have just a bit modify your vi to creat a list of folders in a new project. I have creat Obj package , who install this tool in wisard folder. I have just i small problem, i have try to "close front panel" of this tool at start. And in this case, the project is creat , but not the folders. When i let the front panel open and close it at the end, all run ok. I send you my package , tell me if it's ok ,and perhapse why i can't close FP at start. Regards Eric Project_creation_tool-1.0-1.ogp
    2 points
  4. I started a new job yesterday that I think is going to be great, and I just got my CLA results...I PASSED!!! Life is good!
    1 point
  5. I'd say, that the AE is superseded by LVOOP. We shouldn't blame them as Anti-Patterns yet for reasons Ben mentioned (we got used to them) as well as issues we will face when we rewrite legacy code to be OOP. The main reason IMO for AEs is encapsulation. So I have a configuration data TD and a set of methods (load, save) and each of these methods (they might be SubVIs or inlined code) goes in one case of the AE. When you have a wide variety of parameters for the set of methods on the AE, you will get a messy interface, either due to a big cluster or a huge number of terminals or both... But we managed to deal with that by exposing the relevant parameters only with a set of Wrapper VIs (especially to mark the required inputs). So we have a hierarchy like this: n Wrapper VIs 1 AE with data in shift register m SubVis Using LVOOP we eliminate the AE layer having only the accessor methods (which is the level of the wrapper). n Public Accessor Methods 1 Private Data Cluster m SubVis OOP gives as some more benifites: * interface, so we have public and private (ok, we can do it also for AEs as suggested above, recently I was thinking of just postfixing VIs to mark it as public/private) * inheritance But there are differences between both designs, and these will still give the AE a place in our templates folder. Even more, these differences should warn us not to blindly replace AEs by OOP: * AEs are effectivily serializing the access to the data (or whatever we encapsulate). And it works even on a network scope as Bens experience tells. And all those 100s of posts about singelton design pattern (and I think no satisfying solution evolved yet) are a clear sign that the time of the AE is not yet over. Either we still think in AE serialization or this is a serious drawback that comes with OOP. My personal thinking is, that the singeltone debate will be solved by employing an AE (either encapsulating the Object or implementing the locking mechanism inside our class. * AEs transport the data wireless (that makes a good marketing slogan: 'transmitt your data wireless with Action Engines'). As such they are a good choice for passing data between parallel loops and between states in a SM when we don't want to sacrifice a shift register for that). This implies that an object replacing them must be based on a by-ref design, which still is evolving with the introduction of the DVR last summer. Current designs still suffer from the serialization we get for free with an AE, leading to race conditions and deadlocks. I'd conclude, AEs will become a less important design pattern as LV transforms into LVOOP. Maybe in some years, we will look at this design pattern like we look at stacked sequences today (legacy, but still rare/exotic use cases exist where they are correct to use). And as the rise of scripting languages (such as lua) in the text programmers world showed, the AEs might even come back as a way to 'Express program', which of course we all will reject publicly (LAVA shirts on NI week: 'No AEs required') and all will use for things like prototyping, QD-bugfixes (QD != quickdrop, QD=quick-and-dirty, hint: Darren, change the name for the sake of the marketing guys, they will all go crazy if the read this; if not, remind them that microsoft went big with Q-DOS when just removing the 'quick'). Felix
    1 point
  6. Sarah Palin's take on Copenhagen.
    1 point
  7. How much time do you spend time in arranging the controls in the cluster ? We develop lot of Express VI and we use these kind on clusters in those express VIs. We spend much time on arranging the controls in the cluster in the front panel as shown below. Initially I had written a VI to arrange controls in cluster but I had to place it in project for it to be easily accessible under tools menu. Now I had created a RCF plugin to do this Thanks to JKI team . You can consider this as fifth menu option in Auto sizing Cluster. The image below will show two Clusters Cluster in the Left show the input cluster and the cluster in the right is the cluster that is cleaned up using the plugin. We need to select the cluster and Right Click to invoke the Arrange Controls RCF plugin. I thought this will be useful for people who develop clusters like me. Rajkumar B Arrange Cluster Controls.zip
    1 point
  8. Hi Ryan Use the Text - Scroll Position property node to move the scroll position. In order to get a reference to a VI in memory... The other way would be to check for an error returned from the Open VI Reference function if the VI is not in memory. It's up to you. Cheers JG
    1 point
  9. Copenhagen climate summit: global warming 'caused by sun's radiation'. The SUN causes global warming, uh, er, I mean "climate change". Climategate: Biggest. Scandal. Ever.
    1 point
  10. Here it comes ... wait for it ... here ya' go.
    1 point
  11. This should help DraggableFP.zip <object width="786" height="600"> <param name="movie" value="http://content.screencast.com/users/NJKirchner/folders/Jing/media/e383f68c-f6e5-4966-a51b-45a46b0d8724/jingh264player.swf"></param>'>http://content.screencast.com/users/NJKirchner/folders/Jing/media/e383f68c-f6e5-4966-a51b-45a46b0d8724/jingh264player.swf"></param> <param name="quality" value="high"></param> <param name="bgcolor" value="#FFFFFF"></param> <param name="flashVars" value="thumb=http://content.screencast.com/users/NJKirchner/folders/Jing/media/e383f68c-f6e5-4966-a51b-45a46b0d8724/FirstFrame.jpg&containerwidth=786&containerheight=600&content=http://content.screencast.com/users/NJKirchner/folders/Jing/media/e383f68c-f6e5-4966-a51b-45a46b0d8724/2009-12-08_1805.mp4"></param> <param name="allowFullScreen" value="true"></param> <param name="scale" value="showall"></param> <param name="allowScriptAccess" value="always"></param> <param name="base" value="http://content.screencast.com/users/NJKirchner/folders/Jing/media/e383f68c-f6e5-4966-a51b-45a46b0d8724/"></param>'>http://content.screencast.com/users/NJKirchner/folders/Jing/media/e383f68c-f6e5-4966-a51b-45a46b0d8724/"></param> <embed src="http://content.screencast.com/users/NJKirchner/folders/Jing/media/e383f68c-f6e5-4966-a51b-45a46b0d8724/jingh264player.swf" quality="high" bgcolor="#FFFFFF" width="786" height="600" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/users/NJKirchner/folders/Jing/media/e383f68c-f6e5-4966-a51b-45a46b0d8724/FirstFrame.jpg&containerwidth=786&containerheight=600&content=http://content.screencast.com/users/NJKirchner/folders/Jing/media/e383f68c-f6e5-4966-a51b-45a46b0d8724/2009-12-08_1805.mp4" allowFullScreen="true" base="http://content.screencast.com/users/NJKirchner/folders/Jing/media/e383f68c-f6e5-4966-a51b-45a46b0d8724/" scale="showall"></embed> </object>
    1 point
×
×
  • Create New...

Important Information

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