Simple Array and Concat Issue...

my problem shouldn't be to terribly difficult to resolve, however it might be a little rough to explain. I am having an issue using the concat feature...
I want to join 2 arrays, I assume you can use concat for this right?
This is my goal...
I am dynamically adding objects to my mx:List box. I want to be able to submit this list of objects to another mx:List box and when I add elements to the first list box, i want to again add them into the second list box without erasing the results that we first added...
That probably doens't make much sense... I know. But I am just wanting to combine 2 arrays...
How do I get the elements of a Mx:List into an array? would it be MyListBox.data ?? or MyListBox.DataProvider.???
Any advice and help would be appreciated.

dataProvider will be the one, but remember that once you set a dataProvider if it's an array it gets converted into an ArrayCollection.

Similar Messages

  • Simple array comparison not working. Please HELP!

    I have been struggling to solve this problem for a few days now, and I'm slowly losing my mind.
    I am in Adobe Acrobat 10.
    I have a group of button fields called: btn0, btn1, btn2, etc.
    I have a group of text fields called: txt0, txt1, txt2, etc.
    I have a script that takes the value of txt0 and makes it the caption for btn0, and so on.
    I have a script that sets the MouseUp action of btn0 to setFocus to txt0, and so on.
    These scripts work fine.
    I have a script that takes the values of all the txt fields and puts them in an array, and sorts it.
    I have a script that takes the array[0] item and makes it the caption for btn0, and so on (alphabetizing my list of buttons).
    Those scripts work fine.
    I am trying to compare the value of the array[0] item to each of the txt fields to find the match, and then set the MouseUp action of btn0 to setFocus to the matching txt field, and so on (so my alphabetized list points to the correct locations).
    This is where I'm at a loss.
    Here is what I have:
    //specified the txt fields
    var txt0 = this.getField("Z name");
    var txt1 = this.getField("A name");
    //etc.
    //put their values into an array called rxArray
    var rxArray = [txt0.value, txt1.value]; //etc.
    //sorted the array
    rxArray.sort();
    //set the captions equal to the sorted array items
    for (var i = 0; i < 5; i++) {
        var b = ("btn" + i);
        this.getField(b).buttonSetCaption(rxArray[i]); //works fine; alphabetizes the list of buttons
        //below is what goes wrong
        for(var x = 0; x < 5; x++) {
            var r = ("txt" + x);
            if(rxArray[i] == r.value){
                var s = (r + ".setFocus();");
                this.getField(b).setAction("MouseUp", s);
    //end
    Here is what I know:
    The alphabetizing and labeling works fine, but the buttons' MouseUp scripts don't work at all. Nothing happens.
    If I change the following piece of the above script:
            if(rxArray[i] == r.value){
                var s = (r + ".setFocus();");
                this.getField(b).setAction("MouseUp", s);
    To this:
            if(rxArray[i] == txt1.value){
                var s = (r + ".setFocus();");
                this.getField(b).setAction("MouseUp", s);
    Because rxArray[0] does equal the value of txt1 ("A name"), then the MouseUp script for btn0 gets set to:
    txt4.setFocus();
    So I know that, each time the nested loop runs, the if statement is true, and the setFocus script updates. Until the end of the loop, leaving the setFocus as the last item run. So why doesn't my script work? It should only update the setFocus script IF the array item matches the txt field, and should set it to THAT txt field.
    Please please help. I know I'm missing something simple in there somewhere.

    @Try67:
    That's a good question. I was running into some other issues and have revamped my code. Here is what I have in my test file:
    A list of five buttons and a list of five text fields. One additional button that sets the focus to the next empty text field to add a new item, and two additional buttons, one that sorts my list alphabetically, and one that unsorts it.
    with the following field names
    The sort button calls function sortName and the unsort calls function sortNumber (the order of entry).
    Here are those scripts in final form:
    function sortName() {
    //first reset the captions for the buttons to blank
    for (var a = 0; a < 5; a++) {
        var b = ("btn" + a);
        this.getField(b).buttonSetCaption("");
    var txt0 = this.getField("t0");
    var txt1 = this.getField("t1");
    var txt2 = this.getField("t2");
    var txt3 = this.getField("t3");
    var txt4 = this.getField("t4");
    var rxArray = [txt0.value, txt1.value, txt2.value, txt3.value, txt4.value];
    for(var m = rxArray.length - 1; m > -1; m--){
        if(rxArray[m] == ""){
            rxArray.splice(m, 1);
    rxArray.sort();
    var newArray = [txt0, txt1, txt2, txt3, txt4];
    for(var n = newArray.length - 1; n > -1; n--){
        if(newArray[n].value == ""){
            newArray.splice(n, 1);
    for (var i = 0; i < rxArray.length; i++) {
        var b = ("btn" + i);
        this.getField(b).buttonSetCaption(rxArray[i]);
        for (var x = 0; x < newArray.length; x++) {
            if(rxArray[i] == newArray[x].value){
                var s = ("this.getField('" + newArray[x].name + "').setFocus();");
                this.getField(b).setAction("MouseUp", s);
    //end
    function sortNumber() {
    var txt0 = this.getField("t0");
    var txt1 = this.getField("t1");
    var txt2 = this.getField("t2");
    var txt3 = this.getField("t3");
    var txt4 = this.getField("t4");
    var newArray = [txt0, txt1, txt2, txt3, txt4];
    for (var x = 0; x < newArray.length; x++) {
        var b = ("btn" + x);
        this.getField(b).buttonSetCaption(newArray[x].value);
        var s = ("this.getField('" + newArray[x].name + "').setFocus();");
        this.getField(b).setAction("MouseUp", s);
    //end
    As you can see, I've used the array lengths rather than fixed numbers, except when clearing the button values. I use a number there because there is no array to reference and didn't feel like making an array just for that. The number of buttons won't change.
    I've also added in a splice() method to remove the blank entries from my arrays when appropriate (making using the array length even more important).
    The result of the sort is:
    The only quirk I've found in all this is with the Add New button, which calls function addNew, which is:
    function addNew() {
    var txt0 = this.getField("t0");
    var txt1 = this.getField("t1");
    var txt2 = this.getField("t2");
    var txt3 = this.getField("t3");
    var txt4 = this.getField("t4");
    var newArray = [txt0, txt1, txt2, txt3, txt4];
    for (var i =  newArray.length - 1; i > -1 ; i--) {
        if (newArray[i].value == "") {
            newArray[i].setFocus();
    //end
    For this, I would have though that running through the array from start to finish looking for the first empty text field and setting the focus to it would have been correct. But that resulted in the last empty text field being focused. So I reversed the for loop to run finish to start, and the result was that the first empty field was focused. Not sure why that is...

  • Yet another case of new type[array] and parametrized type

    I suppose this is an often asked question, to which I seem not to be able to find a simple answer. I know of the "incompatibility" of arrays and generics, and yet in such a seemingly simple case I run into a mystery, or a compiler bug. Look at this warning:
    Set<Integer>  C[];
    foo/bar/some.java:1148: warning: [unchecked] unchecked conversion
    found   : java.util.HashSet[]
    required: java.util.Set<java.lang.Integer>[]
                    C=new HashSet[H-L+1];So far so good, but precisely this *"Set<type>[]"* does not exists, does it? When I try to add a parametrized type to this new statement, compiler says:
    Set<Integer>  C[];
    foo/bar/some.java:1148: generic array creation
                    C=new HashSet<Integer>[H-L+1];
                      ^
    1 errorIn a regular case we can easy deal with the "unchecked" warnings, e.g. Effective Java 2nd Ed, Item 24 discusses this, but all this seem to be ignoring this case. When generic array creation is not permitted, than why this warning stating that *"java.type<typeparam>[] required"* appear, and how to resolve this for safety and correctness? Of course, I can still ignore the warning and do a few instanceof checks and casts, like before, but I am really curious how to transfer this into the new paradigm.
    As much generics improve and help in many cases, I regret their arcane complexity. To paraphrase C.A.R. Hoare, the Java language itself becomes now the problem, not its solution.
    Thomas

    I wonder if we have someplace recent measure just an array stack against a current implementation of a set in Java? In JDK1.4 I remember array was several times faster, 350% faster if my memory serves me, and I do have the classic "inner loop" operation, very repetitive. I can live with the warning, what's the problem?
    Of course all this are considerations fully aside of the issue at hand, that the JDK1.6 compiler prints a nonsense warning message that a parametrized array is expected, what is in fact illegal in current implementation of generics. Which is in my eyes severely faulty, but that would be yet another assault on the Braha Ivory Tower, wouldn't it?
    Thomas

  • Iphone 4s siri and notifications issue? Maybe a problem with one of my processors??

    Okay, so let me try to lay this out. Bottom line is, I am pretty sure it's an issue with something in my phone, but it isn't consistant enough to show to someone at the apple store, I've already tried haha.
    So it's a relativly new phone, I got it late June of this year, 32 GB black (if those matter for anything) 4s. Before we continue, YES, I am exiting all my apps fully, quite often (nearly every hour or two). And I restart my phone every 3 or 4 days, I sync it with i-tunes pretty regularly, etc.
    Some of the issues I'm having
    1. Notifications
         When I get notifications (almost always texts, and I think I may have figgured this one out but it's ****** if I'm right) and I swipe THE NOTIFICATION in my lock screen, to open the message thread or call someone back, it will swipe, but it's like I only swipe it halfway, even when it show it being swiped all the way, and it just flys back to the left and doesn't react (doesn't go to the message). i'll swipe a few times and sometimes it will finally work. As it's gone on (for 2 months or so now) it's gotten so that it drops the message halfway throgh, even though I'm sure I didn't let go of the screen. I thought maybe my touch overlay there might be going bad or somehting but it happens all over the screen (top, middle, bottom, etc) when the notification is in a different location because of how many notifications i have.
         It doesn't seem to be related to the amount of notifications I have, or how long I've had them, or battery life, etc.
         It does seem to happen most with my girlfriends texts, I'd imagine the only corolation here is either that she texts me more often so just overall I do it more often to her, or that our text thread is really long. But it still happens even with short threads, or when there are no previous messages from that person. Just an idea.
    2. Siri.
         I'll give siri a command. Very simple commands, and very complex alike, she (well i changed it to he, but it happens on both) won't react. "Call Laura" and the little circle orbiting the microphone will just spin. and spin. and spin. No "I didn't catch that" or "calling laura" or "calling craig". Just spinning. I hit the home button, try again, same story. Close all my apps. Same story. It used to be that I could re-start my phone and that would help, but even that doesn't work probably 80% of the time anymore.
    Both of these problems happened in both IOS 5 and 6... So I'm lead to believe it's some sort of hardware problem. The reason I'm guessing processor is simply because I feel like my phone is not a LOT slower than other 4s', but noticably slower, It doesn't just react, it takes a second.
    Also, this happened for the first time today, but with my Iphone luck i feel like it might happen again, I had something opened and needed to get to my home screen, so obviously I pushed the home button, nothing happened instantly, so I waited a second or so, nothing still so I pushed home again and the popup for open apps came up. So OBVIOUSLY it registered my first home button push, if it counded the second as a second push, but I am sure I waited long enough for it to have gone home after the first push. I pushed home for a third time, the menu went away and my home screen came up. No other crazy stuff going on.
    and finaly, the reason I was prompted to finaly ask this. Back to the notification thing, I had a text (not my girlfriend so like i said, this happens with all texts). Swiped the notification over, phone shuts off. Not imedatly, it shows the apple surounded by black. then it turned itsself back on.
    I love apple products, simply because they are simple and work. Androids always seem to slow down, they freeze up with age, etc. But this is very un-apple product-like. And I'm sure there's some fix for it.

    Anything?

  • How to save data in a 4D array and make partial plots in real time?

    Hi, this is a little complex, so bear with me...
    I have a test system that tests a number of parts at the same time. The
    experiment I do consists of measuring a number of properties of the
    parts at various temperatures and voltages. I want to save all the
    measured data in a 4-dimensional array. The indices represent,
    respectively, temperature, voltage, part, property.
    The way the experiment is done, I first do a loop in temperature, then
    in voltage, then switch the part. At this point, I measure all the
    properties for that condition and part and want to add them as a 1D
    array to the 4D array.
    At the same time, I want to make a multiple plot (on an XY graph) of
    one selected property and part (using two pull-down selectors near the
    XY graph) vs. voltage. (The reason I need to use an XY graph and not a
    waveform graph, which would be easier, is that I do not have
    equidistant steps in voltage, although all the voltage values I step
    through are the same for all cases). The multiple plots are the data
    sets at different temperatures. I would like to draw connection lines
    between the points as a guide to the eye.
    I also want the plot to be updated in the innermost for loop in real
    time as the data are measured. I have a VI working using nested loops
    as described above and passing the 4D array through shift registers,
    starting with an array of the right dimensions initialized by zeroes. I
    know in advance how many times all the loops have to be executed, and I
    use the ReplaceArraySubset function to add the measured properties each
    time. I then use IndexArray with the part and property index terminals
    wired to extract the 2D array containing the data I want to plot. After
    some transformation to combine these data with an array of the voltage
    values in the form required to pass to the XYGraph control, I get my
    plot.
    The problem is: During program execution, when only partial data is
    available, all the zero elements in the array do not allow the graph to
    autoscale properly, and the lines between the points make little sense
    when they jump to zero.
    Here is how I think the problem could be solved:
    1. Start with an empty array and have the array grow gradually as the
    elements are measured. I tried to implement this using Insert Into
    Array. Unfortunately, this VI is not as flexible as the Replace Array
    Subset, and does not allow me to add a 1D array to a 4D array. One
    other option would be to use the Build Array, but I could not figure
    out if this is usable in this case.
    2. The second option would be to extract only the already measured data
    points from the 4D array and pass them to the graph
    3. Keep track of the min. and max. values (only when they are different
    from zero) and manually reset the graph Y axis scale each time.
    Option 3 is doable, but more work for me.....
    Option 2: I first tried to use Array Subset, but this always returns an
    array of the same dimensionality of the input array. It seems to be
    very difficult, but maybe not impossible, to make this work by using
    Index Array first followed by Array Subset. Option 3 seems easier.
    Ideally, I would like option 1, but I cannot figure out how to achieve
    this.
    Your help is appreciated, thanks in advance!
    germ Remove "nospam" to reply

    In article <[email protected]>,
    chutla wrote:
    > Greetings!
    >
    > You can use any of the 3D display vi's to show your "main" 3d
    > data, and then use color to represent your fourth dimension. This can
    > be accessed via the property node. You will have to set thresholds
    > for each color you use, which is quite simple using the comparison
    > functions. As far as the data is concerned, the fourth dimension will
    > be just another vector (column) in your data file.
    chutla, thanks for your post, but I don't want a 3D display of the
    data....
    > Also, check out
    > the BUFFER examples for how to separate out "running" data in real
    > time.
    Not clear to me what you mean, but will c
    heck the BUFFER examples.
    > As far as autoscaling is concerned, you might have to disable
    > it, or alternatively, you could force a couple of "dummy" points into
    > your data which represent the absolute min/max you should encounter.
    > Autoscaling should generally be regarded as a default mode, just to
    > get things rolling, it should not be relied on too heavily for serious
    > data acquisition. It's better to use well-conditioned data, or some
    > other means, such as a logarithmic scale, to allow access to all your
    > possible data points.
    I love autoscaling, that's the way it should be.
    germ Remove "nospam" to reply

  • I would like to migrate from Aperture. What happens to my Masters which are on a RAID array and then what do I do with my Vault which is on a separate Drive please ?

    I am sorry, but I do noisy understand what happens to my RAW original Master files, which I keep offline on a RAID array and then what I do with my Vault which as all my edited photos ? Sorry for such a simple question, but would someone please help my lift the fog ?
    Thanks,
    Rob

    Dear John ,
    Apologies, as I am attempting to get to the bottom of this migration for my wife ( who is away on assignment ) and I am not 100% certain on the technical aspects of Aperture, so excuse my ignorance.
    She has about 6TB worth of RAW Master images ( several 100 thousand ) which, as explained, are on an external RAID drive. She uses a separate Drive as a Vault . Can I assume that this Vault contains all of her edits, file structures , Metadata, etc ?
    So, step by step........She can Import into Lightroom her Referenced Masters from her RAID and still keep them there ? Is that correct ?
    The Managed Files that are backed up by her Vault , are in the pictures folder of her MacPro, but not in a structure that looks like her Aperture library ? This means Lightroom will just organize all the Managed files, simply by the date in the Metadata ? Am I correct ( Sorry for being so tech illiterate ).
    How do I ensure she imports into Lighgtroom in exactly the same format as she runs her workflow in Aperture ?  ( Projects, that are organized by year and shoot location and Albums within those projects with sub-locations, or species , etc ). What exactly do I need to do in Aperture please to organize Managed Files to create a mirror structure of Aperture on my internal Hard Drive ?
    There are a couple of points I am unsure about in regard to Lightroom. Does it work in the same way as Aperture ? Meaning, can she still keep Master Files on an external RAID and Lightroom will reference them ? If the answer is yes, how do you back up your Managed ( edited ) work in Lightroom ? ( Can you still use an external Drive as a Vault ? ) . Will the vault she uses now be able to continue to back up Managed Files post migration ?

  • MacBook Pro Health and safety issue: Potential Burn during normal use

    Hi,
    I am not a complainer. I worked for Apple of 6+ years and have had a top of the line Apple Notebook since Apple created the concept of the laptop notebook.
    I recently experienced a 3rd degree burn using my MacBook Pro that I think Apple needs to warn folks about:
    MacBook Pro 17"
    Machine Model: MacBookPro1,2
    CPU Type: Intel Core Duo
    Number Of Cores: 2
    CPU Speed: 2.16 GHz
    L2 Cache (shared): 2 MB
    Memory: 2 GB
    Bus Speed: 667 MHz
    Boot ROM Version: MBP12.0061.B00
    Serial Number: ()
    SMC Version: 1.5f10
    Sudden Motion Sensor:
    State: Enabled
    I had my laptop on my lap. I was wearing shorts. It noticed that it was warm on my leg where the left side of the MacBook Pro was touching my leg, but it didn't create a reflex pain response.
    Upon completing my session, when I closed the machine and put it away, I noticed a 1 inch x .75 inch blister on my leg where it had been touching the MacBook/Pro; and it has turn out to be a significant burn.
    I checked all the documentaiton that came with my MacBook Pro and there was no warning about the potential of this situation.
    I recommend that Apple let owners know, perhaps through an email or a popup when they visit the Apple site. Lastly, when I encountered this issue, I wasn't running any high performance, compute bound applications. It was email. So, I have to believe that it is possible to detect wait states within the processes running and take the processors to a low power mode of operation when they are not performing actual work. Am I out in left field here?
    I want Apple to be successful. I haven't heard of a similar complaint on any of the high performance PC's at work. Beyond a Health and Safety issue, this is also a reputation issue. Better to face into the storm and honestly deal with this issue.
    A slightly crisp, but loyal, MacBook Pro user.
    Mike Doherty
    MacBook Pro Mac OS X (10.4.5) Potential Health and Safety Issue- 3rd degreee burn potential under normal use

    Mike... I do sympathize with your situation but let me correct you:
    I recently experienced a 3rd degree burn using my
    MacBook Pro
    Do you know what a 3rd degree burn is? A 3rd degree burn involves the dermis, and is full thickness involving the subcutaneous tissues and fat underneath your skin layers. This is something that usually happens when man meets fire, electrocution, and chemical burns. A 3rd degree burn is not typically achieved by a simple transfer of energy by conduction, unless extreme heat for an extended period of time.
    I had my laptop on my lap. I was wearing shorts. It
    noticed that it was warm on my leg where the left
    side of the MacBook Pro was touching my leg, but it
    didn't create a reflex pain response.
    Reflex pain response? Don't try to make up medical terminology. You didn't feel it much like you don't feel the sun when you get a sunburn initially... your skin slowly adjusted to the temperature, and at some point the heat increased over the threshold of which causes damage. You should have gone to the doctor if you were overly concerned.
    Upon completing my session, when I closed the machine
    and put it away, I noticed a 1 inch x .75 inch
    blister on my leg where it had been touching the
    MacBook/Pro; and it has turn out to be a significant
    burn.
    You're right, if you have a 1inch by almost 1 inch heat related blister on your leg, it is bad, nothing that I would consider significant. That is less then 1% of your body, probably about 0.25% to 0.5%, and only a 2nd degree burn. Your most significant complication would be a local skin infection.
    I checked all the documentaiton that came with my
    MacBook Pro and there was no warning about the
    potential of this situation.
    Actually... I'd hate to call you a liar, but I'm pretty sure that it does warn about burns.
    To confirm this, apple has also information online:
    http://docs.info.apple.com/article.html?artnum=30612
    I recommend that Apple let owners know, perhaps
    through an email or a popup when they visit the Apple
    site.
    They do... link above.
    Lastly, when I encountered this issue, I wasn't
    running any high performance, compute bound
    applications. It was email. So, I have to believe
    that it is possible to detect wait states within the
    processes running and take the processors to a low
    power mode of operation when they are not performing
    actual work. Am I out in left field here?
    No, you're definitely not. Here's where I start to agree with you. For the computer to heat up that much, when not doing things like rendering video is abnormal, and you deserve to have apple check out your computer. I think you should contact them on this concern.
    I want Apple to be successful. I haven't heard of a
    similar complaint on any of the high performance PC's
    at work. Beyond a Health and Safety issue, this is
    also a reputation issue. Better to face into the
    storm and honestly deal with this issue.
    It's harder for other manufacturers... our computers are aluminum, designed to disperse the heat. Technically they are considered "portables" not laptops, but I don't get into that argument because I disagree with the word "portable"... it's meant to work on your lap, and if you can't comfortably using regular apps, you deserve an answer.
    A slightly crisp, but loyal, MacBook Pro user.
    Hey, at least you're taking it with some humor. It's a shame you had to get hurt as a result of your computer. If I were you I would have gone to your Primary Care Physician, documented the burn, and returned your computer for a new one, and for something say, a free iPod for your pain.
    Sorry you got hurt, I think you should have your heat issue professionally investigated through apple care

  • Raid Performance and Rebuild Issues

    Rebuilding a Raid array
    What happens when you have a Raid array and one (or more) disk(s) fail?
    First let's consider the work-flow impact of using a Raid array or not. You may want to refresh your memory about Raids, by reading Adobe Forums: To RAID or not to RAID, that is the... again.
    Sustained transfer rates are a major factor in determining how 'snappy' your editing experience will be when editing multiple tracks. For single track editing most modern disks are fast enough, but when editing complex codecs  like AVCHD, DSLR, RED or EPIC, when using uncompressed or AVC-Intra 100 Mbps codecs, or using multi-cam or multiple tracks  the sustained transfer speed can quickly become a bottleneck and limit the 'snappy' feeling during editing.
    For that reason many use raid arrays to remove that bottleneck from their systems, but this also raises the question:
    What happens when one of more of my disks fail?
    Actually, it is simple. Single disks or single level striped arrays will lose all data. And that means that you have to replace the failed disk and then restore the lost data from a backup before you can continue your editing. This situation can become extremely bothersome if you consider the following scenario:
    At 09:00 you start editing and you finish editing by 17:00 and have a planned backup scheduled at 21:00, like you do every day. At 18:30 one of your disks fails, before your backup has been made. All your work from that day is lost, including your auto-save files, so a complete day of editing is irretrievably lost. You only have the backup from the previous day to restore your data, but that can not be done before you have installed a new disk.
    This kind of scenario is not unheard of and even worse, this usually happens at the most inconvenient time, like on Saturday afternoon before a long weekend and you can only buy a new disk on Tuesday...(sigh).
    That is the reason many opt for a mirrored or parity array, despite the much higher cost (dedicated raid controller, extra disks and lower performance than a striped array). They buy safety, peace-of-mind and a more efficient work-flow.
    Consider the same scenario as above and again one disk fails.  No worry, be happy!! No data lost at all and you could continue editing, making the last changes of the day. Your planned backup will proceed as scheduled and the next morning you can continue editing, after having the failed disk replaced. All your auto-save files are intact as well.
    The chances of two disks failing simultaneously are extremely slim, but if cost is no object and safety is everything, some consider using a raid6 array to cover that eventuality. See the article quoted at the top.
    Rebuilding data after a disk failure
    In the case of a single disk or striped arrays, you have to use your backup to rebuild your data. If the backup is not current, you lose everything you did after your last backup.
    In the case of a mirrored array, the raid controller will write all data on the mirror to the newly installed disk. Consider it a disk copy from the mirror to the new disk. This is a fast way to get back to full speed. No need to get out your (possibly older) backup and restore the data. Since the controller does this in the background, you can continue working on your time-line.
    In the case of parity raids (3/5/6) one has to make a distinction between distributed parity raids (5/6) and dedicated parity raid (3).
    Dedicated parity, raid3
    If a disk fails, the data can be rebuild by reading all remaining disks (all but the failed one) and writing the rebuilt data only to the newly replaced disk. So writing to a single disk is enough to rebuild the array. There are actually two possibilities that can impact the rebuild of a degraded array. If the dedicated parity drive failed, the rebuilding process is a matter of recalculating the parity info (relatively easy) by reading all remaining data and writing the parity to the new dedicated disk. If a data disk failed, then the data need to be rebuild, based on the remaining data and the parity and this is the most time-consuming part of rebuilding a degraded array.
    Distributed parity, raid5 or raid6
    If a disk fails, the data can be rebuild by reading all remaining disks (all but the failed one), rebuilding the data and recalculating the parity information and writing the data and parity information to the failed disk. This is always time-consuming.
    The impact of 'hot-spares' and other considerations
    When an array is protected by a hot spare, if a disk drive in that array fails the hot spare is automatically incorporated into the array and takes over for the failed drive. When an array is not protected by a hot spare, if a disk drive in that array fails, remove and replace the failed disk drive. The controller detects the new disk drive and begins to rebuild the array.
    If you have hot-swappable drive bays, you do not need to shut down the PC, you can simply slide out the failed drive and replace it with a new disk. Remember, when a drive has failed and the raid is running in 'degraded' mode, there is no further protection against data loss, so it is imperative that you replace the failed disk at the earliest moment and rebuild the array to a 'healthy' state.
    Rebuilding a 'degraded' array can be done automatically or manually, depending on the controller in use and often you can set the priority of the rebuilding process higher or lower, depending on the need to continue regular work versus the speed required to repair the array to its 'healthy' status.
    What are the performance gains to be expected from a raid and how long will a rebuild take?
    The  most important column in the table below is the sustained transfer  rate. It is indicative and no guarantee that your raid will achieve  exactly the same results. That depends on the controller, the on-board  cache and the disks in use. The more tracks you use in your editing, the higher the resolution you use, the more complex your codec, the more  you will need a high sustained transfer rate and that means more disks in the array.
    Sidebar: While testing a  new time-line for the PPBM6 benchmark, using a large variety of source  material, including RED and EPIC 4K, 4:2:2 MXF, XDCAM HD and the like,  the required sustained transfer rate for simple playback of a  pre-rendered time-line was already over 300 MB/s, even with 1/4  resolution playback, because of the 4 4 4 4 full quality deBayering of  the 4K material.
    Final thoughts
    With the increasing popularity of file based formats, the importance of backups of your media can not be stressed enough. In the past one always had the original tape if disaster stroke, but no longer. You need regular backups of your media and projects.  With single disks and (R)aid0 you take risks of complete data loss, because of the lack of redundancy.  Backups cost extra disks and extra time to create and restore in case of disk failure.
    The need for backups in case of mirrored raids is far less, since there is complete redundancy. Sure, mirrored raids require double the number of disks but you save on the number of backup disks and you save time to create and restore backups.
    In the case of parity raids, the need for backups is more than with mirrored arrays, but less than with single disks or striped arrays and in the case of 'hot-spares' the need for backups is further reduced. Initially, a parity array may look like a costly endeavor. The raid controller and the number of disks make it expensive, but if you consider what you get, more speed, more storage space, easier administration, less backups required, less time for those backups, continued working in case of a drive failure, even though somewhat sluggish, the cost is often worth more with the peace-of-mind it brings, than continuing with single disks or striped arrays.

    Raid3 is better suited for video editing work, because it is more efficient when using large files, as clips usually are. Raid5 is better suited in high I/O environments, where lots of small files need to be accessed all the time, like news sites, webshops and the like. Raid3 will usually have a better rebuild time than raid5.
    But, and there is always a but, raid3 requires an Areca controller. LSI and other controller brands do not support raid3. And Areca is not exactly cheap...
    Keep in mind that a single disk shows declining performance when the fill rate increases. See the example below:
    A Raid3 or Raid30 will not show that behavior. The performance remains nearly constant even if fill rates go up:
    Note that both charts were created with Samsung Spinpoint F1 disks, an older and slower generation of disks and with an older generation Areca ARC-1680iX-12.

  • Trouble with primitive arrays and casting, lesson 521

    hi everyone!
    there is a problem i discovered right now - after years with java where was no necessity to do this.....
    and i'm shure this must have been the topic already, but i couldn't find any helpful resource :-/
    right here we go:
    1. an array is a (special) kind of object.
    2. there are "primitive" arrays and such containing references to objects. of course - and i imagine why - they are treated differently by the VM.
    3. then both are - somehow - subclasses of Object. whereas primitive types are not really, primitive-arrays are. this is hidden to the programmer....
    4. any array can be "pointed" at via local Object variable, like this:
    Object xyz = new int[6];
    5. arrays of Objects (with different dimensions) can be casted, like this:
      Object pointer = null;
      Object[]   o  = new SomeClass[42] ;
      Object[][] oo = new OtherClass[23] [2] ;
      Object[][][] ooo = new OtherClass[23] [2] [9] ;
      o = oo = ooo;     // this is save to do,
                                   //because "n-dimensional" object-arrays
                                  // are just arrays of  other arrays, down to simple array
    pointer = o;         // ok, we are referencing o via Object "pointer"6. but, you cannot do this with primitive types:
      int[]  i1 = new int [99] ;
      int[][] i2 = new int [1] [3] ;
      i1 = i2                  // terror: impossible. this is awful, if you ask me.
                                   // ok, one could talk about "special cases" and
                                   // "the way the VM works", but this is not of interest to me as
                                   // a programmer. i'm not happy with that array-mess!
      pointer = i2;       // now this is completely legal. i2, i1 etc is an object!7. after the preparation, let's get into my main trouble (you have the answer, i know!) :
    suppose i have a class, with methods that should process ANY kind of object given. and - i don't know which. i only get it at runtime from an unknown source.
    let's say: public void BlackBox( Object x );
    inside, i know that there might be regular objects or arrays, and for this case i have some special hidden method, just for arrays... now try to find it out:
    public void BlackBox( Object x )
      if ( x == null)
           return;
       Class c = x.getClass();
       if ( c.isArray() )
              // call the array method if it's an array.........
              BlackBoxes(     (Object [] )  x );         // wait: this is a cast! and it WILL throw an exception, eventually!
              return;
       else
               DoSpecialStuffWith( x );
    }ok ? now, to process any kind of array, the special method you cannot reach from outside:
    private void BlackBoxes( Object[] xs )
       if ( xs != null )
            for ( Object x : xs )
                 BlackBox( x );
    // this will end up in some kind of recursion with more than one array-dimension, or when an Object[] has any other array as element!this approach is perfectly save when processing any (real) Object, array or "multi-dimensional" arrays of Objects.
    but, you cannot use this with primitive type arrays.
    using generics wouldn't help, because internally it is all downcasted to Object.
    BlackBox( new Integer(3) ) ---- does work, using a wrapper class
    BlackBox( new Integer[3] ) ----- yep!
    BlackBox( 3 ) ---- even this!
    BlackBox( new int[42] ) ---- bang! ClassCastException, Object[] != int[]
    i'm stuck. i see no way to do this smoothly. i could write thousands of methods for each primitive array - BlackBox( int[] is ) etc. - but this wouldn't help. because i can't cast an int[][] to int[], i would also have to write countless methods for each dimension. and guess, how much there are?
    suppose, i ultimately wrote thousands of possible primitive-type methods. it would be easy to undergo any of it, writing this:
    BlackBox( (Object) new int[9] [9] );
    the method-signature would again only fit to my first method, so the whole work is useless. i CAN cast an int[] to Object, but there seems no convenient way to get the real array out of Object - in a generic way.
    i wonder, how do you write a serialisation-engine? and NO, i can't rely on "right usage" of my classes, i must assume the worst case...
    any help appreciated!

    thanks, brigand!
    your code looks weird to me g and i think there's at least one false assumption: .length of a multidimensional array returns only the number of "top-level" subarrays. that means, every length of every subarray may vary. ;)
    well i guess i figured it out, in some way:
    an int is no Object;
    int[ ] is an Object
    the ComponentType of int [ ] is int
    so, the ComponentType of an Object int[ ] is no Object, thus it cannot be casted to Object.
    but the ComponentType of int [ ] [ ] IS Object, because it is int [ ] !
    so every method which expects Object[], will work fine with int[ ] [ ] !!
    now, you only need special treatment for 1-dimensional primitive arrays:
    i wrote some code, which prints me everything of everything:
        //this method generates tabs for indentation
        static String Pre( int depth)
             StringBuilder pre = new StringBuilder();
             for ( int i = 0; i < depth; i++)
                  pre.append( "\t" );
             return pre.toString();
        //top-level acces for any Object
        static void Print( Object t)
             Print ( t, 0);
        //the same, but with indentation depth
        static void Print( Object t, int depth)
            if ( t != null )
                 //be shure it is treated exactly as the class it represents, not any downcast
                 t = t.getClass().cast( t );
                if ( t.getClass().isArray() )
                     //special treatment for int[]
                     if ( t instanceof int[])
                          Print( (int[]) t, depth);
                     // everything else can be Object[] !
                     else
                          Print( (Object[]) t, depth );
                     return;
                else
                    System.out.println( Pre(depth) + " [ single object:] " + t.toString() );
            else
                System.out.println( Pre(depth) + "[null!]");
        // now top-level print for any array of Objects
        static void Print( Object [] o)
             Print( o, 0 );
        // the same with indentation
        static void Print( Object [] o, int depth)
            System.out.println( Pre(depth) + "array object " + o.toString() );
            for ( Object so : o )
                    Print( so, depth + 1 );
        //the last 2 methods are only for int[] !
        static void Print( int[] is)
             Print( is, 0 );
        static void Print( int[] is, int depth)
            System.out.println( Pre(depth) + "primitive array object " + is.toString() );
            // use the same one-Object method as every other Object!
            for ( int i : is)
                 Print ( i, depth + 1 );
            System.out.println( "-----------------------------" );
        }now, calling it with
    Print ( (int) 4 );
    Print ( new int[] {1,2,3} );
    Print( new int[][] {{1,2,3}, {4,5,6}} );
    Print( new int[][][] {{{1,2,3}, {4,5,6}} , {{7,8,9}, {10,11,12}}, {{13,14,15}, {16,17,18}} } );
    Print( (Object) (new int[][][][] {{{{99}}}} ) );
    produces this fine array-tree:
    [ single object:] 4
    primitive array object [I@9cab16
          [ single object:] 1
          [ single object:] 2
          [ single object:] 3
    array object [[I@1a46e30
         primitive array object [I@3e25a5
               [ single object:] 1
               [ single object:] 2
               [ single object:] 3
         primitive array object [I@19821f
               [ single object:] 4
               [ single object:] 5
               [ single object:] 6
    array object [[[I@addbf1
         array object [[I@42e816
              primitive array object [I@9304b1
                    [ single object:] 1
                    [ single object:] 2
                    [ single object:] 3
              primitive array object [I@190d11
                    [ single object:] 4
                    [ single object:] 5
                    [ single object:] 6
         array object [[I@a90653
              primitive array object [I@de6ced
                    [ single object:] 7
                    [ single object:] 8
                    [ single object:] 9
              primitive array object [I@c17164
                    [ single object:] 10
                    [ single object:] 11
                    [ single object:] 12
         array object [[I@1fb8ee3
              primitive array object [I@61de33
                    [ single object:] 13
                    [ single object:] 14
                    [ single object:] 15
              primitive array object [I@14318bb
                    [ single object:] 16
                    [ single object:] 17
                    [ single object:] 18
    array object [[[[I@ca0b6
         array object [[[I@10b30a7
              array object [[I@1a758cb
                   primitive array object [I@1b67f74
                         [ single object:] 99
    -----------------------------and i'll have to write 8 methods or so for every primitive[ ] type !
    sounds like a manageable effort... ;-)

  • Copy and paste issue

    While trying to create a simple copy and paste function ( from one open document / image into another open document in Photoshop CS5 ) like:
    PsApp.bringToFront();
    PsApp.activeDocument.selection.selectAll();
    PsApp.activeDocument.selection.copy();
    PsApp.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
    PsApp.activeDocument.paste();
    //more code to work with the pasted image 
    I have noticed that many times it doesn't paste the image and the next code throws unexpected results, but if I run it in debug mode and place a breakpoint just after calling the function ( like forcing a pause) then it runs fine.
    Tried also with scripting listener code, both in flex and Java with the same result; this also happens with a File - place script.
    I tried to insert a loop at the end of the process checking if the number of layers have increased after the paste call, and they actually increase but the image is not pasted
    For some reason it seems that the clipboard is not working as expected when the process is fast ¿?. Have also tried to clear the clipboard and to purge with no luck.
    I have had similar issues with Java scripting before but they were solved using the listener code instead, but it doesn't works now. Other users have the same problem but haven't found a solution.
    I'm using CS5 and Extension Builder 1.5.0.2 with Flash Builder 4.5.1

    Copy the text, click on the Desktop, CMD+B, and see if it shows up there. If not, then delete the com.apple.finder.plist from your /Library/Preferences folder, OPTION-click & hold  the Finder's Dock icon, and select RELAUNCH. That should fix the issue.

  • Build Array and Output Values to Text or Excel File

    I know this is a simple question but I need some help. I'm reading a DC voltage in LabVIEW a while loop. I want to store all the read values into an array and export that array as an text or Excel file. I had a VI that I build before for this but I cannot seem to find it and I can't remember how I did it before. Any help is appreciated. I think I can do the exporting part but I do help with building the array (storing all the data values).

    I run into a problem while using the "Write to Text File Function". Initially I took about 60 measurements and wrote to a text file. That works but I increased the amount of measurements to be taken to 600 and when I did that the output in the text file are all Chinese letters (or that's what it seems like). Is this because I'm writing too much data?
    When I use the "Write To Spreadsheet File VI" to write the measurments it works fine for the 600 measurements. The problem with this is I cannot insert any text. Using the "Write to Text File Function" I inserted some text before the measurements and "end of lines", to format the data. Attached is a screenshot of my VI.
    Attachments:
    measurements.PNG ‏45 KB

  • Rookie Question: Swap values? Declare an array and values of its indices?

    Hello,
    I hope this is the right forum: I have a simple Java Problem but i do not get it.
    Is like that: I have to swap values within an array e.g i have one array with 3 indices. Indice 0 (the first indice) has value 12. The middle indice has no value, and the second indice has value 9. How to swap 9 to 12 and 12 to 9 without direct swap, in other words, by using the middle indice that has no value or is zero? And how do i write it in an array?
    My other questions: How do i Declare an array and values of its indices?
    I hope this is the right forum or site at all, in cas enot, i hope you still can help or give me links that could help. I really need this.

    Hi Rookie,
         http://forum.sun.com is the best place to get answers for your queries.
         Answer to you first question:
         array[0]=array[0]+array[2]; // array[0] will have 21, because 9+12.
         array[2]=array[0]-array[2]; // array[2] will have 9, because 21-12.
         array[0]=array0]-array[2];  // array[0] will have 12, because 21-9.   
         Hope your first query is resolved.
         I will answer your next query in my next reply.
    Thanks & Regards,
    Charan.  

  • Charts and graph shown as --array and cluster datatype in block diagram

    Hi friends,
    I new user...
    I have a basic doubt...
    In many examples the graph and charts are shown as "array data type and cluster data type "------in the block diagram panel...
    Please tell me, how these data types are shown as graph and charts in the front panel window.....
    regards
    raja

    These are very basic issues and it should be clear once you study the online help and examples for a while.
    Waveform Graphs
    Plain waveform graphs assume equally spaced data. The x-values are implicit from x0 and dx of the x-axis. By default x0=0 and dx=1, meaning the x-values are the array indices. You can change the offset and multiplier from the properties dialog or programmatically via property nodes.
    If you give a 2D array, there will be multiple graphs. Transpose if needed.
    Alternatively, you can give a cluster of [x0, dx, y-array] and the x-axis will adjust accordingly.
    As another alternative, you can built a waveform datatype and feed it to the graph.
    You can also graph dynamic data.
    XY graphs
    xy graphs are needed if the x-vlaues are not regularly spaced.They take a variety of data formats, so pick what is most approriate for the data
    A cluster of an x-array and a y-array
    An array of clusters, each containing an xy pair
    A complex datatype (it will graph imaginary vs. real or similar).
    Charts
    Charts are different, because they maintain a data history buffer an retain a certain amount of data. Some examples of data inputs:
    A single scalar: it wil be appended to the existing chart data, possibly throwing out the oldest existing point.
    An array: The array data will be appended to the existing chart data.
    A cluster of e.g. 5 points: The chart will have 5 dividual plots, one point gets appended to each plot.
    etc.
    The express xy-graph can be configured as xy chart, etc.
    Sure, it is a bit complicated at the beginning, but the complexity also gives you flexibility to do exactly what you want. Just play around with various scenarios and look at the outcome. The best way to learn!
    LabVIEW Champion . Do more with less code and in less time .

  • Simple array

    Hi. I'm trying arrays as a beginner and keep running into the same problem. The error I keep getting is "class, interface or enum expected". I recently installed the new Java 1.6.0_06....
    I started off with a array of arrays and since that didn't work I tried a very simple one which didn't work either.
    http://mindprod.com/jgloss/compileerrormessages.html has a glossary of error meanings which I tried but didn't work.
    Thanks.
    public class Array1 {
         int[] arr = new int[] {1,2,3,4,5};
         public static void main(String[] args) {
         for (int i : arr) {
              print.out.println(i);
         }

    nevermind
    Edited by: JacobsB on May 21, 2008 4:20 PM

  • K8N DIAMOND: New Raid array and old HD... I'm going crazy!!! Please

    Hi guys
    First, sorry for my poor english...
    My problem is:
    I bought two Raptor 36 Gb for my new raid array.
    I have my old HD Hitachi 250 Gb connected on sata 1.
    I connected my two raptor, on sata 3 and 4, I enabled all sata port and raid config for ports 3 and 4.
    I restart PC, typed F10 and set a stripe array with two raptor. All run ok...
    Restarted and boot with my copy of WinXP with SP2 and NF4 raid drivers.
    Installation found my array and my Hitachi;
    Hitachi with 4 partitions; C (os), D (driver), E (films), F (music)
    I create one partitions on my raid array, and it takes I: letter... So I formatted and start to copy os...
    Errors occurs when, restarting pc and resetting the boot to Hard disk (the order of booting is 1 - nvidia array, 2 - hitachi 250 gb), just before loading installation, It shows a black screen with an error: "there is an error in your hard disk bla bla bla.. try to control your connection or connect to windows help....bla bla..."
    The Raid array works properly, infact I try to disconnect my Hitachi from sata port 1 and all installation works (I'm writing from Win xp on the raid array).
    I tried to connect the hitachi on port 1 of silicon image controller.... same error..!!
    I'm desperate... I have all my life on my hitachi...
    I think that there's  a sort of conflict in drive letter assignement... I cant find a solution ..
    PLEASE HELP ME!!!

    Glad it worked, I had a feeling it would. 
    Quote
    One question for you.. on G: partition, there's a directory called "Windows", do you suggest me to format this partition??
    You can format it if you want to free up space, but unless you moved things around the My documents folder and everything in it is on that partition, along with anything you might of had on the old desktop during that Windows install.  You might have something you want there, I usually leave mine for a few month, and figure out if I have everything I need.
    Quote
    What I  have to do, if I need to reinstall WIn XP on first partition of raptor array??
    Things should be fine now as Windows marked the Hitachi drive as G. You should be able to reinstall without issue. But if you have a lot of sensitive info on the Hitachi, I would always disconnect the Hitachi if doing a fresh install.  Once windows is done installing, hook it back up.  But next time you shouldn't have to reconfigure NVRAID after disconnecting and reconnecting.
     

Maybe you are looking for

  • Digital Editions 2.0.1 crashes in Windows 8

    I have run Digital Editions 1.7.2 for a couple of years, easily accessible from my PAID Acrobat Pro, on several PAID publications. I am running Windows 8 on a Lenovo Thinkpad Carbon X1 Touch under Windows 8 Pro x64.  I have tried using the updated ve

  • My Factory Unlocked iPhone 4s shuts down and restarts randomly. How do I get it to stop?

    My Factoy Unlocked iPhone 4s shuts down and restarts randomly. How do I get it to stop?

  • Measure

    I like to measure a voltage with help of a HP34401A multimeter via GPIB, and I like to save the result with the correspondig time in a EXCEL table. I have the Labview 7 professional edition. Does it exist an application example ?

  • Accept call problem?

    plz kindly reply,  when i press accept receiving call its goes to yellow reject option? and my call reject i dont know every thing works fine, thanks Solved! Go to Solution.

  • Legal Consolidation problem

    Hi Experts , Couple of days before , we restored the appset in the our development server . After we did the procees all the dimensions and optimization all the application . When i runned the legal consoldation , its running but no effect in the dat