Best practices, software architecture question

I'd like to offer a challenge to everyone in good software architectural design principles. Here is a mocked up version of some code that I've been working with, grossly over-simplified for this example. Take a look at the following classes and see if you can determine what the parentComponent will be for the JOptionPane that is displayed in the HardDriveController's constructor:
public abstract class Controller {
    private JFrame parentFrame = null;
    public void setParentFrame(JFrame parent) {
        this.parentFrame = parent;
    public JFrame getParentFrame() {
        return parentFrame;
public class MyGUI extends JFrame {
    private CPUController cpuController = null;
    public MyGUI() {
        setSize(300, 300);
        setVisible(true);
        cpuController = new CPUController();
        cpuController.setParentFrame(this);
    public static void main(String [] args) {
        new MyGUI();
public class CPUController extends Controller {
    private RAMController ramController = null;
    public CPUController() {
        ramController = new RAMController();
public class RAMController extends Controller {
    private BusController busController = null;
    public RAMController() {
        busController = new BusController();
public class BusController extends Controller {
    private HardDriveController hardDriveController = null;
    public BusController() {
        hardDriveController = new HardDriveController();
public class HardDriveController extends Controller {
    public HardDriveController() {
        JOptionPane.showMessageDialog(
                getParentFrame(), "Hey! We're inside the HardDriveController!");
}Did you figure it out? If you said the parentComponent will be null, then you are correct. The logic behind the code had intended to set the parentComponent to refer to MyGUI, but of course, the code does not behave as expected. Now this seems simple enough, but the legacy code I'm working with is full of many examples like this. Notice how MyGUI creates an instance of CPUController which creates an instance of RAMController, which creates an instance of BusController, etc...In some cases, I see a "Controller" class that is 8 or 9 "levels" deep with respect to one controller creating another, creating another, etc.
Let's say that I want the JOptionPane in the above example to have its parentComponent refer to the instance of MyGUI. The following code is one means of passing the reference down to the HardDriveController, while still using the getParentFrame() method in HardDriveController:
public class MyGUI extends JFrame {
    private CPUController cpuController = null;
    public MyGUI() {
        setSize(300, 300);
        setVisible(true);
        cpuController = new CPUController(this);
    public static void main(String [] args) {
        new MyGUI();
public class CPUController extends Controller {
    private RAMController ramController = null;
    public CPUController(JFrame frame) {
        setParentFrame(frame);
        ramController = new RAMController(frame);
public class RAMController extends Controller {
    private BusController busController = null;
    public RAMController(JFrame frame) {
        setParentFrame(frame);
        busController = new BusController(frame);
public class BusController extends Controller {
    private HardDriveController hardDriveController = null;
    public BusController(JFrame frame) {
        setParentFrame(frame);
        hardDriveController = new HardDriveController(frame);
public class HardDriveController extends Controller {
    public HardDriveController(JFrame frame) {
        setParentFrame(frame);
        JOptionPane.showMessageDialog(
                getParentFrame(), "Hey! We're inside the HardDriveController!");
}Note that the reason I'm calling the Controller class's setParentFrame() method in each extended class's constructor is that I want to ensure that any call to getParentFrame() in these classes will return a reference to MyGUI, and not null.
After this long description, I want to ask all you Java gurus the following question: What is the best means of offering the JOptionPane a reference to MyGUI? My solution passes a JFrame reference all the way down from the CPUController to the HardDriveController. Is this an "acceptable" solution, or is there a more elegant means of getting a reference to MyGUI to the JOptionPane (for example, modifying the MyGUI class to follow the singleton pattern)? Thanks for your input. 

Proflux, One thing I failed to mention is that this is a very old codebase and the likelihood of the object graph being reworked is slim to none. I agree with you 100% that the dependency doesn't feel right. But I have to live with it. I mentioned the idea of using a singleton pattern. Here's a mock up of how that would look:
public class FrameRetriever {
    private static FrameRetriever instance = null;
    private HashTable frameHash = new HashTable();
    private FrameRetriever() {
    public static getInstance() {
        if(instance == null) {
            instance = new FrameRetriever();
        return instance;
    public void addFrame(JFrame frame)
        frameHash.put(frame.getTitle(), frame);
    public JFrame getFrame(String frameTitle)
        return (JFrame) frameHash.get(frameTitle);
public class MyGUI extends JFrame {
    private CPUController cpuController = null;
    public MyGUI() {
        setTitle("Test GUI");
        setSize(300, 300);
        setVisible(true);
        FrameRetriever.getInstance().addFrame(this);
        cpuController = new CPUController();
    public static void main(String [] args) {
        new MyGUI();
public class HardDriveController extends Controller {
    public HardDriveController() {
        JFrame parentFrame = FrameRetriever.getInstance().getFrame("Test GUI");
        JOptionPane.showMessageDialog(
                parentFrame, "Hey! We're inside the HardDriveController!");
}My only concern with this solution is that it couples the HardDriveController to MyGUI because we need to know the frame's title in order to get the frame instance. But at the same time, I won't have to add constructor arguments to any "in between" classes for the sole purpose of passing a reference down the object graph. Any thoughts?

Similar Messages

  • EFP and Intranet Portal - Best Practices for architecture

    Hi All,
       We are planning to create a portal for our partners  (b2b scenario). This portal will provide anonymous  and user specific access. We also have a intranet portal with ESS and MSS.  I have some doubts around implementing EFP and Intranet portal.
       1) What is the best practice solution architecture around portal instances? Is it suggested to implement both intranet and internal portals on same portal instance? Do you implement them as 2 seperate instances (and 2 seperate boxes) one for intranet and another for internet?
       2) There are couple of functions shared between inranet and internet portals. Has any one attempted   a FPN connection between a internet portal and intranet portal?
       3)  What is the best practices around an external portal connecting to ECC directly?
    Any suggestions are greatly appreciated.

    Hi Pallayya,
             We are implementing a similar kind of thing for our client.I can explain that so you find some glimpse out of it.
    We have decided twp ways.
    1) We are having one instance of the portal that will be accessed both in Intranet & Internet.We are using two different URL for intranet & internet.We have a reverse proxy in the picture also,coz it will increase the security of the portal in the Internet.The reverse proxy will be available in the DMZ Zone.We have integrated ECC & BW with the portal and some web dynpro application(For intranet only).
    Now the user comes from the Internet will hit the reverse proxy first->then it will go to EP Server->in EP it will be decided which kind of request client is asking ->
    If it is a ECC request->Portal Server sends back the request to Reverse Proxy->RP will send it to web dispatcher->Then it will go to ECC.
    If it is a BW request ->Portal server sends the request to BW Server.
    2) There will be two different URLS for the portal in Intranet & Internet
         For that we used two reverse proxy
    regards
    Indranil

  • Best Practice - Software Simulation Projects

    Hello,
    I'm beginning a new software simulation project where I will need to switch back and forth between demonstration mode and training mode.    The talent will explain and demonstrate the software, then ask the learner to click or type to get to the next step.   What is the best way to capture the screenshots and integrate them as needed?

    Thanks, that's exactly what I was thinking.   My concern is that it's a pretty long simulation -- about 1.5 hours on video currently.  I don't want to run into problems with the file being too large.  Right now I have 229 slides in the training mode.  I started trying to capture all three modes, but I had to stop and start several times, and it's difficult to keep track of all the separate files.   I think I will start over, but chunk recordings into segments, so I can deal with fewer slides at a time.   I understand that I can link these separate files with a click box.   Is that correct? 

  • Software architecture question. + second question as bonus)

    Hi, my little friends! I have 2 questions about architecture.
    1) What is the approach for interactive GUI? Suppose, I need in my gui hierarchy to change panel (and all objects it contains) to new panel . I need it by clicking button1. So, where should i put Action Listeners buttonclicked method? At JFrame or where? Is it a good idea to have static class ContentBuilder which will return all kind of elements? For example getMainMenu(ContentBuilder.NEW_CLIENT_CAME_FOR_HALLOWEEN)
    2) I have database... my application connects to it. I need new customer... I created JTextField for first name, last name... then input data... gui generate an object client (Class Client) then one by one get strings from Jtextfields to object attributes. Then never guess, this object went to model(according to model view controller pattern) and then there all strings one by one goes from object attributes to table fields... The end. Is it good? or not?
    Thanks in advance. God bless you.
    Sincerely yours, Mr. America. (:

    America70 wrote:
    Hi, my little friends! I have 2 questions about architecture.
    Your first question is really four.
    1) What is the approach for interactive GUI? Suppose, I need in my gui hierarchy to change panel (and all objects it contains) to new panel . I need it by clicking button1. So, where should i put Action Listeners buttonclicked method? At JFrame or where? Is it a good idea to have static class ContentBuilder which will return all kind of elements? For example getMainMenu(ContentBuilder.NEW_CLIENT_CAME_FOR_HALLOWEEN)
    The ActionListeners are part of the controller. I'd have a controller that instantiated the UI elements and injected them with the Listeners they need. That way you can change the Listeners if you have to on the fly.
    I'd want to see /ui, /controller, and /model packages in your solution. The /ui package would have interfaces for injecting Listeners, but it should have JPanels that the Controller could assemble into JFrames for display.
    2) I have database... my application connects to it. I need new customer... I created JTextField for first name, last name... then input data... gui generate an object client (Class Client) then one by one get strings from Jtextfields to object attributes. Then never guess, this object went to model(according to model view controller pattern) and then there all strings one by one goes from object attributes to table fields... The end. Is it good? or not?
    "One by one"? No. Create the Client class, pass it to the Controller, and let it deal with the database.
    %

  • ApplicationStorageDirectory - Best Practice for Games Question

    So I've been working on a game which uses AIR. My problem is that I have been storing my game assets in the application directory. That would be fine except that the game has a built-in editor which requires the ability to write files. Adobe has since locked the ApplicationDirectory to write access, so now I'm not sure of where I'm expected to store all of my user editable game files - which is potentially ALL game assets.
    The seemingly obvious choice is to use ApplicationStorageDirectory. While not ideal, in that it seems I would need to duplicate all assets from inside the application to the storage directory on startup, it would provide a standard and easy to find place to store editable game assets.
    However, this article (on this site) clearly tells me that I should not do that. It makes a good point. Backing up all of the games assets is messy proposition. And while I can see users who take advantage of the editting capabilities as appreciating the backup, for the average player, that would be a pretty big annoyance.
    So what am I expected to do in this scenario? I need a writable location where the user and the application can easily access all game assets ( XML, Image, MP3 ). I don't want to pick an arbitrary location, and I'm turned off by the application needing to redundantly house the data just to copy to the destination directory since there's no way for me to delete it once it's copied since I can't write to the application folder.
    Thanks for the thoughts.

    Hi,
    A couple things come to mind. It's actually not Adobe that locks the application directory on Windows, that's a MS permissions thing with folders under Program Files.  But either way, it's still a problem. 
    As you mentioned, you could copy files on first launch but depending on the size, this could be annoying after a user just sat through the install.  It's also not very friendly when you want to uninstall.  You might want to consider sub launching the AIR installer from a separate installer which also takes care of installing the game resources to another writable location.  Maybe this is user selectable, but at least it's monitored by the installer which should allow you to uninstall properly.
    Would it be possible to keep the resources with your app, but architect the editor such that only user created content would go in a user writable directory (such as a subdirectory off of their documents folder?)
    Chris

  • Bring CRM to clients and partners, Architecture DMZ best practices

    Hi, we need to bring access to CRM from internet to clients and partners.
    So that we need to know the best practices to architecture design.
    We have many doubts with these aspects:
    - We will use SAP portal, SAP Gateways and web dispatchers with a DMZ:
           do you have examples about this kind of architecture?
    - The new users will be added in 3 steps: 1000, 10000 and 50000:
           how can regulate the stress at internal system?, is it possible?
    - The system can't show any problems to the clients:
           we need 24x7 system, because the clients are big clients.
    - At the moment we have 1000 internal users.
    thanks

    I use the Panel Close? filter event and discard it and use the event to signal to my other loops/modules that my software should shut down. I normally do this either via user events or if I'm using a queued state machine (which I generally do for each of my modules) then I enqueue a 'shutdown' message where each VI will close its references (e.g. hardware/file) and stop the loop.
    If it's just a simple VI, I can sometimes be lazy and use local variables to tell a simple loop to exit.
    Finally, once all of the modules have finished, use the FP.Close method to close the top level VI and the application should leave memory (once everything else has finished running).
    This *seems* to be the most recommended way of doing things but I'm sure others will pipe up with other suggestions!
    The main thing is discarding the panel close event and using it to signal the rest of your application to shut down. You can leave your global for 'stopping' the other loops - just write a True to that inside the Panel Close? event but a better method is to use some sort of communications method (queue/event) to tell the rest of your application to shut down.
    Certified LabVIEW Architect, Certified TestStand Developer
    NI Days (and A&DF): 2010, 2011, 2013, 2014
    NI Week: 2012, 2014
    Knowledgeable in all things Giant Tetris and WebSockets

  • Best Practices & Strategy Planning for SAP BI Architecture

    What are best practices and strategy planning that SAP BI Architect should know?
    What are the challenges are involved with this role ?
    What are the other information that this Architect should know to deliver the robust BI solution?
    Is there any white papers on the best practices on Architecture & Data Modeling, please ?
    Thanks,
    Venkat.

    Hi
    As per the Best Practice  first load the master and next transaction data .
    Please find the link for best practices
    http://www.sap.com/services/pdf/BWP_SAP_Best_Practices_for_Business_Intelligence.pdf.
    Regarding the architecture it depend upon the size of volumen and how much frequency  your load and  hard ware sizing
    based on this  we can provide best  solution
    If you any issues please let me know
    Regards
    Madan

  • Bean load best practice

    I am not new to Java, but up until now have been a programmer. I am now getting more into design and architecture and have a question about best practice. This question arises from a UML class I was taking. But in the class we stayed within the UML and did not get into implementation.
    My Question
    When creating classes and designing how they interact, what is the best practice for implementing associative relationships. For example, if I were modeling a Barn that contained Animals, I would create a Barn bean and an Animal bean. Since the Barn contained Animals I could create the code like this:
    public class Barn {
    String color;
    Collection animals;
    void setColor(String newcolor);
    String getColor( );
    void setAnimals(Collection newanimals);
    Collection getAnimals( );
    public class Animals{
    String name;
    void setName(String newname);
    String getName( );
    }The Collection within the Barn bean would be made up of Animal beans.
    This seems fairly straight forward. However, what if I loaded the bean from a database? When building the bean, do I also find all animals and build the Animal beans and create the Collection to store within the Barn object?
    Or
    Do I omit the animal Collection from my Barn bean and only populate the Collection at runtime, when someone calls the getAnimals method?
    I am confident that the latter is the better design for performance and synchonization issues. But I wanted to get other opinions.
    Do I need to read up more on object design?
    Thanks,
    Lonnie

    And lazy initialization. Basically, unless the data is needed. Don't load it.

  • IPhone Best Practices - A Work In Progress

    Hello all. I've been tasked with introducing my coworkers into the inner workings of the iPhone, and there are a good number of pointers that I find myself saying over and over again. I'd like to share my best practices with everyone, as well as collect more pointers and opinions from the community at large.
    Care and Handling:
    First - wash your hands, often. Now I know we all do this often anyway, but I'd like to point out that a healthy amount of hand washing will really go a long way to keep your iPhone screen smudge free. The worst offender, unfortunately, is doughnuts. A small layer of sugar will render that area un-tappable, without any real indication that it has done so. If you are frantically tapping the screen on the iPod button and nothing is happening, clean your phone before you do a hard reset.
    Second - Pockets. Keeping your phone in your front pocket is natural and what most of us do. In these summer months, however, keeping your phone in a sweaty front pocket can do a good deal to the dirt level of the screen. If you find yourself cleaning your phone constantly, try a belt clip.
    Lastly - Battery Life. Your iPhone's battery life is in your hands, literally. Being aware of your power consumption and planning accordingly is going to be infinitely more important that the battery's native charge-holding ability. This goes especially for the day of purchase - as tempting as it may be to open the box and activate, immediately running around the house watching YouTube, it is best to let the phone charge for 12 hours before use. Charging the phone every night is an absolute must, skipping a day will kill the battery life as your ride the bottom edge the following day. Most of us have access to a USB port while we're at work, best idea will be to plug in your phone when you sit down at your desk.
    iPod:
    Large Libraries: In the opening weekend, I got many complaints that you cannot manually manage your music. There is a workaround that has made me change the way I work with all of my iPods: the iPhone specific playlist. Simply create a playlist with all of the music you wish to put on your phone and sync that one playlist. This also helps with sync time - you have a start sync and an end sync, not a constant sync all throughout your music management, slowing your computer down in the process.
    TV Shows: I watch a lot of MST3K, which I have organized into iTunes as TV shows, split into seasons, the works. The problem that has arisen, therefore, is the one of selective synchronization - you cannot specifically select the TV show you want to sync to the device, instead getting the choices to sync all, unwatched, or latest shows. This is problematic when each show is 700MB large. Here's the work around - select all of the episodes of a specific show and right click, selecting "Mark as Not New", removing all of the little blue dots from the episodes. Select the one, three, or five episodes, and right click them, selecting "Mark as New", then sync the last one, three, or five unwatched episodes. The shows you selected will sync.
    iPhoto:
    Many users are complaining that iPhoto opens whenever the phone is connected. This is not a preference of the phone, but rather iPhoto. Remember when you first launched iPhoto and it asked you if you wanted to use iPhoto whenever your camera was attached? iPhoto is detecting that your phone is a camera and launching, just as you told it to do.
    Mail:
    POP accounts - too many unread messages: When first adding a POP account, all of the messages downloaded to the phone arrive as unread. Tapping a message, tapping back, and then tapping the next message can get tedious. Here's the workaround - tap the small down arrow to the upper right hand side of the screen, watching closely to the number next to Inbox. When that number goes down by one, tap the arrow again. If that number hasn't gone down yet, wait a sec, and do not try to tap tap tap tap tap, you'll flood the input queue and crash Mail.
    Syncing Mail accounts - All too often people blame the iPhone when their mail does not work. A perfect test is sync you accounts from Mail. If they work in mail, they'll work on the phone, if they are unreliable in Mail, they will also be unreliable on the phone. The Mail client on the iPhone is just as powerful as any other mail client in terms of how it connects to mail servers, if you are having problems you need to check your settings before blaming the hardware. If you prefer to leave your install of Mail.app alone, create a new user account on your Mac, set up all of the accounts you want there, and use iTunes to sync that data to the phone. Make sure to remove that portion of sync from your actual user account's instance of iTunes, however, or it will all sync back.
    This message has not been downloaded from the server: This message has snagged a couple users, but upon investigation, these users have filled their iPhones to the absolute brim with music and video. It hasn't been downloaded from the server because there is no space to download to - this also applies to the Camera application dumping to the Home screen. Because there is no space, it can't add any new data. Make some room, then be patient as the mail client gets to that message in cleanup (often a sync or reboot will clear it up).
    Safari:
    Safari and iPod: Many users have reported iPod stopping in the middle of browsing, often pouting and pursing their lips crying, "This is terrible, I can't even browse the web and listen to music at the same time?". I then check their phone, and lo and behold they have upwards of eight separate pages open at the same time. This device (like every other computer out there) has a finite amount of memory, each page taking up a significant portion depending on how busy the page is. I've routinely gotten through entire albums while browsing through Safari, but I've got one page open in total, and it's usually mostly text. Keep it to one or two pages open and iPod will run forever if you let it.
    Web Apps: "This web app is terrible, it keeps booting me to Home!" When was your last reboot? How many other pages are open? In the same vein as Safari and iPod, Web Apps need a good deal of breathing room - give it to them. Close down other pages, stop iPod, or even reboot. Give the app a clean slate and it will perform, every time. iPhoneRemote users will attest to this.
    iCal:
    Multiple Calendars - Default Calendar: When adding a new appointment, it adds to the default calendar. Appointments can't be shunted to the correct calendar until after sync anyway, so create an "iPhone" calendar and make that the default. Because it's in that calendar, you'll know enough to move it to the appropriate calendar after sync.
    Please feel free to add your own best practices, and ask questions, too.

    is there any application you can get for the iphone to enlarge text and phone numbers ?
    If included with an email or on a website, yes with no application needed.
    If you are referring to the text size for your iPhone's contact list, no.
    can you insert a phone number from your contact list into a text message ?
    No.
    i cant seem to figure it out, does the alarm clock work if you turn off the phone at night,
    No - powered off with the iPhone means powered off. Any phone that provides for this is not powered off - it is in deep sleep or deep standby mode, which the iPhone does not support. If you don't want your phone ringing or don't want to receive SMS at night but you want to use the iPhone's alarm feature as a wake-up alarm, you can turn on Airplane Mode before going to bed, which will also conserve the battery if your iPhone is not plugged in at night.
    can you send a multi media text message ?
    No.

  • SAP Best Practices Installation (Baseline Package US 1.604)

    Hi All,
    I need to setup a 4 system landscape of SAP ECC 6.0 EHP4 with the SAP Baseline Package
    (Best Practices for Country US - V1.604). Landscape is as below:
    Sandbox - (1 client) - Configuration Sandbox
    Development - (2 clients) - Config. Master and Development
    Quality - (4 Clients) - Quality Assurance, Integration Testing, Training and Pre-Production
    Production - (1 Client) - Production Client
    Can you please assist with the below queries:
    1. Do I need to Install/Activate Best Practices software / building blocks for each client of every system?
    2. Can I Install and activate best practices for 1 client of Sandbox system and then perform the client copies to development to quality to production? Will this work?
    Appreciate your help.
    Thanks.
    Best regards,
    Kaushik Sethna

    Hi,
    > 1. Do I need to Install/Activate Best Practices software / building blocks for each client of every system?
    No, you need to need to activate in all clients. Just activate this in one client and create another clietns with copy from this client.
    > 2. Can I Install and activate best practices for 1 client of Sandbox system and then perform the client copies to development to >quality to production? Will this work?
    >
    Don't copy development client in production client. You should activate it manually in production system. I will recommend same to you for quality system as well.
    Thanks
    Sunny

  • Best Practices Installation (Baseline Package US 1.604)

    Dear experts,
    I need to setup a 4 system landscape of SAP ECC 6.0 EHP4 with the SAP Baseline Package
    (Best Practices for Country US - V1.604). Landscape is as below:
    Sandbox - (1 client) - Configuration Sandbox
    Development - (2 clients) - Config. Master and Development
    Quality - (4 Clients) - Quality Assurance, Integration Testing, Training and Pre-Production
    Production - (1 Client) - Production Client
    Can you please assist with the below queries:
    1. Do I need to Install/Activate Best Practices software / building blocks for each client of every system?
    2. Do I need to Install and activate best practices for each system separately or will the client copies from a particular client of development to quality to production will work.
    Appreciate your help.
    Thanks.
    Best regards,
    Kaushik Sethna

    Hi,
    > 1. Do I need to Install/Activate Best Practices software / building blocks for each client of every system?
    No, you need to need to activate in all clients. Just activate this in one client and create another clietns with copy from this client.
    > 2. Can I Install and activate best practices for 1 client of Sandbox system and then perform the client copies to development to >quality to production? Will this work?
    >
    Don't copy development client in production client. You should activate it manually in production system. I will recommend same to you for quality system as well.
    Thanks
    Sunny

  • Architecture/Design Question with best practices ?

    Architecture/Design Question with best practices ?
    Should I have separate webserver, weblogic for application and for IAM ?
    If yes than how this both will communicate, for example should I have webgate at both the server which will communicate each other?
    Any reference which help in deciding how to design and if I have separate weblogic one for application and one for IAM than how session management will occur etc
    How is general design happens in IAM Project ?
    Help Appreciated.

    The standard answer: it depends!
    From a technical point of view, it sounds better to use the same "midleware infrastructure", BUT then the challenge is to find the lastest weblogic version that is certified by both the IAM applications and the enterprise applications. This will pull down the version of weblogic, since the IAM application stack is certified with older version of weblogic.
    From a security point of view (access, availability): do you have the same security policy for the enterprise applications and the IAM applications (component of your security architecture)?
    From a organisation point of view: who is the owner of weblogic, enterprise applications and IAM applications. In one of my customer, application and infrastructure/security are in to different departments. Having a common weblogic domain didn't feet in the organization.
    My short answer would be: keep it separated, this will save you a lot of technical and political challenges.
    Didier.

  • Not a question, but a suggestion on updating software and best practice (Adobe we need to create stickies for the forums)

    Lots of you are hitting the brick wall in updating, and end result is non-recoverable project.   In a production environment and with projects due, it's best that you never update while in the middle of projects.  Wait until you have a day or two of down time, then test.
    For best practice, get into the habit of saving off your projects to a new name by incremental versions.  i.e. "project_name_v001", v002, etc.
    Before you close a project, save it, then save it again to a new version. In this way you'll always have two copies and will not loose the entire project.  Most projects crash upon opening (at least in my experience).
    At the end of the day, copy off your current project to an external drive.  I have a 1TB USB3 drive for this purpose, but you can just as easily save off just the PPro, AE and PS files to a stick.  If the video corrupts, you can always re-ingest.
    Which leads us to the next tip: never clear off your cards or wipe the tapes until the project is archived.  Always cheaper to buy more memory than recouping lost hours of work, and your sanity.
    I've been doing this for over a decade and the number of projects I've lost?  Zero.  Have I crashed?  Oh, yeah.  But I just open the previous version, save a new one and resume the edit.

    Ctrl + B to show the Top Menu
    View > Show Sidebar
    View > Show Staus Bar
    Deactivate Search Entire Library to speed things up.
    This should make managing your iPhone the same as it was before.

  • Best Practices for NCS/PI Server and Application Monitoring question

    Hello,
    I am deploying a virtual instance of Cisco Prime Infrastructure 1.2 (1.2.1.012) on an ESX infrastructure. This is being deployed in an enterprise enviroment. I have questions around the best practices for moniotring this appliance. I am looking to monitor application failures (services down, db issues) and "hardware" (I understand this is a virtual machine, but statistics on the filesystem and CPU/Memory is good).
    Firstly, I have enabled via the CLI the snmp-server and set the SNMP trap host destination. I have created a notification receiver for the SNMP traps inside the NCS GUI and enabled the "System" type alarm. This type includes alarms like NCS_DOWN and PI database is down. I am trying to understand what the difference between enabling SNMP-SERVER HOST via the CLI and setting the Notification destination inthe GUI is? Also how can I generate a NCS_DOWN alarm in my lab. Doing NCS stop does not generate any alarms. I have not been able to find much information on how to generate this as a test.
    Secondly, how and which processes should I be monitoring from the Management Station? I cannot easily identify the main NCS procsses from the output of ps -ef when logged in the shell as root.
    Thanks guys!

    Amihan_Zerrudo wrote:
    1.) What is the cost of having the scope in a <jsp:useBean> tag set to 'session'? I am aware that there are a list of scopes like page, application, etc. and that if i use 'session' my variable will live for as long as that session is alive. (did i get this right?). You should rather look to the functional requirements instead of costs. If the bean need to be session scoped (e.g. maintain the logged in user), then do it so. If it just need to be request scoped (e.g. single page form data), then keep it request scoped.
    2.)If the JSP Page where i use that <useBean> is to be accessed hundred of times a day, will it compensate my server resources? Right now i am using the Sun Glassfish Server.It will certainly eat resources. Just supply enough CPU speed and memory to a server. You cannot expect that a webserver running at a Pentium 500MHz with 256MB of memory can flawlessly serve 100 simultaneous users at the same second. But you may expect that it can serve 100 users per 24 hour.
    3.) Can you suggest best practice in memory management given the architecture i described above?Just write code so that it doesn't unnecessarily eat memory. Only allocate memory if your application need to do so. You should rather let the hardware depend on the application requirements, not to let the application depend on the hardware specs.
    4.)Also, I have implemented connection pooling in my architecture, but my application is to be used by thousands of clients everyday.. Can the Sun Glassfish Server take care of that or will I have to purchase a powerful sever?Glassfish is just an application server software, it is not server hardware. Your concerns are rather hardware related.

  • Teststand best practices architecture for communicating with TCP instruments

    Hi,
    I am using Teststand 2014 and LabVIEW 2013 SP1 as the module adapter.
    My Teststand sequence file includes communication with 3-5 different instruments via TCP/IP.
    Such as Spectrum analyzer, generator and other RF measurement devices.
    There are many steps located in subsequences that implement code to communicated with these devices whether to fetch , query or write.
    What is the best architecture to implement this program ?
    As I can see it there are many possibilities, such as :
    1. Launching a subsequence as a new thread in the Sequence Setup. This subsequence calls a VI that dynamically register for events/queue that can be launched from any step. (in this case there is a VI running in the background that can perform Write/Read/Qurey to the instrument and he is triggered from any step using an event or dequeue element)
    This option can be duplicated for any instrument or only once for all of the instrument with prioritizing the event queue.
    2. Creating a communication reference in the Setup of the Main Sequence. And passing it to any step that need it. (there is also the question how to pass this reference… in Teststand globals or in LabVIEW queue).    
    another 2 small questions that I encountered -
    Is using LabVIEW queues and notifiers in TS steps and obtaining their reference (in the LabVIEW code) by name is considered best practices ?
    If I would like to run only one VI in a new thread, should I use a new subsequnce and set it as a new thread or use the Run VI Asynchronously ? what are the differences ?

    I use Action Engines to hold my VISA Sessions and just write my LabVIEW VIs to use those to send commands and read data.  Any returned data can be analyzed in the VI or passed on to TestStand as a step result.  You just need a sequence to run at start up to initialize your Action Engines and another one to close them.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

Maybe you are looking for

  • My iphone is dead, tried everything but nothing is happening?

    I am fearing the worst, having to send it in to get it repaired. But my phone is not under warranty so have to pay for it. So far, my phone is not doing anything, just a black screen, tried plugging it in and restoring it in itunes, but that doesnt w

  • Any Knowledge In Regard to GarageBand?

    I don't own a MacBook, but do frequent the GarageBand forum here at Apple Discussions quite a bit. Lately, there have been a rash of questions/conflicts/problems in regard to MacBooks/GarageBand. I know I could - or perhaps even should - just refer f

  • All Day/Recurring Events showing a day early

    Hello, We recently deployed about 200 iphones and have been noticing that some people are experiencing an issue where only their all day or recurring all day events are showing on day early on their phone, while showing correctly in outlook. I've don

  • Perfomance  FCC

    Hi Experts                   I have to devlop the sencario for the converting txt file to xml . The text file contain 450 fileds. what is perfromance of this interface . Regards Upendra

  • Printed invoice shows quantity only *000000  instead of 10.000.000 pc

    Printed invoice shows quantity only *000000  instead of 10.000.000 pc. How to get 10 000 000 seen in printed / pdf invoice? Thanks.