AD/OD Golden Triangle problem

Hello everyone.
I am having a weird problem with my AD/OD integration, let me give you some background on what is going on.
I have a DC running windows 2003, I installed a new version of 10.5.6 server on a brand new Xserve. Initially I installed the standard configuration of the server and then i went into the Advanced server. I checked the DNS, forward and reverse works fine. Basically I am able to login to AD accounts fine, i can point to network home folders, authentication works just like its supposed to except...my MCX preferences are not taking effect. I am trying to push out MCX prefs for each machine, machine group, user and user groups, none of them work. I am also getting a "network account are unavailable" with a yellow dot at start up. I changed some settings in the Directory Access application to see if it will make a difference but it doesn't. Also, when i try to unbind the machine I am getting a message "Could not contact the LDAP server...." I checked the log files and the only thing that seems out of place is "GSSAPI Error: Miscellaneous failure (Server not found in Kerberos database)" I am kind of stuck, i would like to roll this out for production but without the ability to push out mcx settings makes no sense. If anyone could chime in with opinions and hopefully a solution i would greatly appreciate it. Thanks in advance.

When Macintosh Management started out the trend was to manage on the group. This continued when MCX came along. Now the trend is more towards managing Computer Groups on a location basis. You can then build workgroups on top of that if you need them. Some environments are fine with just management on the Guest computer record.
Honestly you would find this all child's play if you'd been through the books I referenced... or taken the training courses. It explains everything and tells you how to bring everything together.
Kerberos probably won't be the problem as it won't block delivery of the MCX settings. They come through LDAP. You really want to learn how to use dscl to see what Mac OS X sees when it reads your LDAP. If dscl sees everything then normally it should be working. If dscl gets stuck somewhere it tells you something is wrong.

Similar Messages

  • Golden triangle authentication problem

    Hi,
    Im trying to set up the golden triangle on our AD/Mac network. I have bound to AD fine and now Im trying to set up an OD Master. After clicking "Kerberize Services" I click on "Remain connected and set up an Open Directory Master". Upon doing this I get
    Single Sign-On Unavailable
    Single Sign-ON (Kerberos v5) will not be enabled for your new Open Directory master because your networks DNS server does not provide forward and reverse mappings for your servers domain name, or because Single Sign-On is already configured on your server.
    To resolve this issue, close the assistant and correct your DNS or Single Sign-On configuration.
    My forward and reverse digs look fine and my "changeip -checkhostname" returns the correct results.
    Any ideas as why this happens?

    Hello Gareth, and welcome to the Apple Boards,
    Please bear with me as I point out a couple of things:
    1) You should post a new topic for your issue rather than hijack someone else's thread - it's just good form.
    2) The reason this question probably didn't draw any responses is that it is not Xserve specific and there are much better groups that are specifically about Directory Services where you will get more and better eyes on your issue.
    Please check out the OS X Server specific boards: http://discussions.apple.com/category.jspa?categoryID=96
    That being said - if you have a fresh Server in Standalone mode, bind it to AD before doing anything else and then promote it to OD Master it should just do the right thing. In 10.4 you had to just through hoops and drop to the command line but from 10.5 on OD should draw its information for set-up from AD if it is bound before it's promoted to Master. I haven't done it a bunch of times but I have done it a few and - if and only if your forward and reverse DNS is solid and working - this actually does work as advertised. If your box is already a Master you can demote it (THIS DESTROYS YOUR CURRENT LDAP - BACK IT UP) and then bind and promote. If you've run kerb on the box previously you might want to blow away your old keytabs just to be safe but it should still just work. And always, always, always double check that your DNS is rock solid in forward and reverse or it will not work.
    The best documentation for this process is a paper by Bombich (no surprise) and there's a little known paper at AFP548 called +OD AD Sandbox+ that is really worth a read, but read the entire thing before trying anything.
    =Tod

  • Mac Pro 10.6.8 following golden triangle setup users cannot see their home dirs after login

    I have Mac Pro running 10.6.8 and has been running well in a golden triangle for 3 years. Ldap database corrupt so I deleted OD master and reconfigured.
    Augmented users from AD and they log on no problems except the home directory is unavailable after login.
    Has anyone got ant clues… I'm sure its something stupid I've overlooked.

    I have Mac Pro running 10.6.8 and has been running well in a golden triangle for 3 years. Ldap database corrupt so I deleted OD master and reconfigured.
    Augmented users from AD and they log on no problems except the home directory is unavailable after login.
    Has anyone got ant clues… I'm sure its something stupid I've overlooked.

  • Taking long time to log in after 10.6.8 update (Golden Triangle)

    Hi,
    Our school has the "golden triangle" set up.
    After updating our macs to 10.6.8, the time taking to log in as Network Account is taking much longer. It took more than 30 seconds to log in successfully after I got the Network Account Available green dot. I tried a machine with 10.6.4 or 10.6.7, neither of them need to take that longer.
    Anybody idea?
    Thanks much!

    Try booting in Safe Mode. Mac OS X: Starting up in Safe Mode
    It can take a little longer to boot in Safe Mode then a normal boot. Once you are in Safe Mode, go to the Apple menu (top left in your screen) then click: Restart.
    I just updated to 10.6.8 tonight, and went on the App Store to see if any more news about Lion.
    Lion is not available until July. Apple - OS X Lion - Get Lion in July. Only from the Mac App Store.
    And.... launch iTunes. From the menu bar click Store / View My Account / Edit Payment Information. Make sure the Security code and expiration date for your credit / debit card is available and correct then click Done. This is necessary even for updating software

  • Navigation menu indicator triangle problem

    Hi all,
    the navigation menu of my site looks correct in layout mode:
    It still looks correct in preview mode (notice the triangles' position):
    BUT when I go on to Safari, either by previewing it or uploading to my server, the triangles interfere with the text:
    Is there anything I can do about it? This looks awful!
    Thanks a lot!

    No. But it isn’t in Muse’s hand how a browser renders a certain font. You have to use a sort of "security belt".
    The alternative is, you have a layout problem (different font sizes for example in different menu states; using system fonts … …)

  • Simple pascal's triangle problem

    Hi,
    I'm new to Java, and I'm trying to make a recursive method that outputs a pascal's triangle, n = 4. based on the choose function: (n,k) =(n-1, k-1) + (n-1,k). I believe there are a lot of errors in my source code, which compiles, but I just can't figure out what I need to do next to get it to actually display the pascal triangle, based on what I have so far. could anyone give me some directions as to how to think through the problem. here's my source code:
    public class pascal
         public int choose (int n, int k)
              int result = 0;
              if (n==0 && k==0)
                   result = 1; \\base case
              else
                   for (int i=0; i<=k; i++)
                        if(i==0 || i==k)
                             result = 1;
                        else
                        result = choose(n-1,i-1) + choose(n-1,i);
              System.out.print(result);
              return result;
         public static void main (String[] args)
              int n = 4;
              int k = n;
              pascal test = new pascal();
              test.choose (n,k);
    }

    Think of this little recurrence relation a bit more: c(n,k) =c(n-1, k-1) + c(n-1,k).
    When n == k, the result equals 1 (one). Those values can be found
    on the right diagonal side of the triangle. If k > n, the value has to be
    0 (zero). Those values can be found outside the triangle.
    Of course n >= 0 and k >= 0. If you put this all together you get:int c(int n, int k) {
       if (k == n) return 1;
       if (k > n) return 0;
       return c(n-1, k-1)+c(n-1, k);
    }kind regards,
    Jos

  • A triangle problem

    im finishing an assignment for one of my course modules and i'ved hit a problem with part of it.
    i need to be able to compare three values (each the length of one side of a triangle) use this to output the type of triangle to the user
    for example if all three sides are the same, its an equilateral, if only two are the same, its isoceles, and if no sides are the same, its a scalene triangle.
    ive sta here for a long while thinking about how to do it, it anybody could point me in the right direction that would be great
    thanks
    glenn

    i had a class i wrote ages ago that worked out the area of a rectangle. i thought it was sort of similar so i used the old class as a starting point, changing the details where needed.
    public class Triangle
    private int sideA;
    private int sideB;
    private int sideC;
    String type;
    public Triangle( int sideA, int sideB, int sideC)
    this.sideA = sideA;
    this.sideB = sideB;
    this.sideB = sideB;
    public int getsideA()
    return sideA;
    public int getsideB()
    return sideB;
    public int getsideC()
    return sideC;
    public String getType()
    return type;
    }

  • TRIANGLE PROBLEM

    Hi everyone - I am developing various proofs of the pythagora's theorem
    and the following code draws a triangle on screen and the proof follows -
    but i need to know how to drag the triangle such tht 1 angle is always set to 90 degrees.
    i.e. i need to resize the triangle by dragging its vertex points by which the1 angle remains at 90 no matter what the size.
    The proof has got some graphics code hardcoded in it - i.e. LINES AND POLYGONS have been hardcoded
    i need to reconfigure that such that everytime the user increases the size of the triagnle and clicks on next it draws the lines and polygons in the correct area and place
    PLEASE HELP
    the code is as follows
    MAIN CLASS
    import java.awt.BorderLayout;
    import java.awt.Container;
    import java.awt.*;
    import java.awt.event.*;
    import java.text.*;
    import javax.swing.*;
    public class TestProof {
        TestControl control;          // the controls for the visual proof
        TestView view;          // the drawing area to display proof
        // called upon class creation
        public TestProof() {
            view = new TestView();
    view.setBackground(Color.WHITE);
            control = new TestControl(view);
            Frame f = new Frame("Pythagoras");
            f.add(view,"Center");
            f.add(control,"South");
            f.setSize(600,600);
            f.setBackground(Color.lightGray);
            f.addMouseMotionListener(
            new MouseMotionListener() { //anonymous inner class
                //handle mouse drag event
                public void mouseMoved(MouseEvent e) {
                    System.out.println("Mouse  " + e.getX() +","  + e.getY());
                public void mouseDragged(MouseEvent e) {
                    System.out.println("Draggg: x=" + e.getX() + "; y=" + e.getY());
            JMenu File = new JMenu("File");
            JMenuItem Exit = new JMenuItem("Exit");
            Exit.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    ExitActionPerformed(evt);
            JMenuBar menuBar = new JMenuBar();
            menuBar.add(File);
       File.add(Exit);
            f.add(menuBar,"North");
            f.show();
        private JMenuBar getMenuBar() {
            JMenu File = new JMenu("File");
            JMenuItem Exit = new JMenuItem("Exit");
            Exit.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    ExitActionPerformed(evt);
            JMenuBar menuBar = new JMenuBar();
            menuBar.add(File);
                 File.add(Exit);   
            return menuBar;
        private void ExitActionPerformed(java.awt.event.ActionEvent evt) {
            // TODO add your handling code here:
            System.exit(0);
        // for standalone use
        public static void main(String args[]) {
      TestProof TP = new TestProof();
    }Test VIEW
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    import java.text.*;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    public class TestView extends Canvas {
        int TRANSLUCENT = 1;
        int sequence;          // sequencer that determines what should be drawn
        // notes matter
        int noteX = 100;     // note coordinates
        int noteY = 60;
        int fontSize = 11;     // font size
        int lineSpacing     // space between two consecutive lines
        = fontSize + 2;
        Font noteFaceFont;     // font used to display notes
        // objects matter
        Polygon tri;          // right-angled triangle with sides A, B, and C
        Polygon tri1;
        Polygon sqrA;          // square with side of length A
        Polygon sqrB;          // square with side of length B
        Polygon sqrC;          // square with side of length C
        Polygon parA;          // parallelogram of base A and height A
        Polygon parB;          // parallelogram of base B and height B
        Polygon poly1;
        Polygon poly2;
        Polygon poly3;
        Polygon poly4;
        Polygon poly5;
        Polygon poly6;
        int X0 = 350;          // coordinates of triangle
        int Y0 = 350;
        int A = 90;//60;          // triangle size
        int B = 120;//80;
        int C = 150;//100;
        //CORDS of 2nd triangle
        int X1 = 350;
        int Y1 = 500;
        // notes: three lines per note
        String notes[] = {
            // note 0
            // note 1
            // note 2
            // note 3
            // note 4
            // note 5
            // note 6
            // note 7
            // note 8
            // note 9
            // note 10
            // note 11
            // note 12
            // note 13
            // note 14
        // constructor
        public TestView() {
            addMouseMotionListener(
            new MouseMotionListener() { //anonymous inner class
                //handle mouse drag event
                public void mouseMoved(MouseEvent e) {
                    System.out.println("Mouse  " + e.getX() +","  + e.getY());
                public void mouseDragged(MouseEvent e) {
                    System.out.println("Draggg: x=" + e.getX() + "; y=" + e.getY());
            // set font
            noteFaceFont = new Font("TimesRoman", Font.PLAIN, fontSize);
            // (coordinates specified w.r.t. to P0, unless otherwise specified)
            // create the triangle
            tri = new Polygon();
            tri.addPoint(0, 0);                    // add P0 coordinate
            tri.addPoint(A*A/C, -A*B/C);          // add A3 coordinate
            tri.addPoint(C, 0);                    // add C1 coordinate
            tri.translate(X0, Y0);               // place triangle
            tri1 = new Polygon();
            tri1.addPoint(0,0);                    // add P0 coordinate
            tri1.addPoint(A*A/C +38, +A*B/C);          // add A3 coordinate
            tri1.addPoint(C, 0);                    // add C1 coordinate
            tri1.translate(X1, Y1);
            // create square of side A
            sqrA = new Polygon();
            sqrA.addPoint(0, 0);               // add P0 coordinate
            sqrA.addPoint(-A*B/C, -A*A/C);          // add A1 coordinate
            sqrA.addPoint(-A*(B-A)/C, -A*(A+B)/C);     // add A2 coordinate
            sqrA.addPoint(A*A/C, -A*B/C);          // add A3 coordinate
            sqrA.translate(X0, Y0);               // place square
            // create square of side B
            // warning: the coordinate of this object are specified relative to C1
            sqrB = new Polygon();
            sqrB.addPoint(0, 0);               // add C1 coordinate
            sqrB.addPoint(B*A/C, -B*B/C);          // add B1 coordinate
            sqrB.addPoint(B*(A-B)/C, -B*(A+B)/C);     // add B2 coordinate
            sqrB.addPoint(-B*B/C, -B*A/C);          // add A3 coordinate
            sqrB.translate(X0 + C, Y0);               // place square
            // create square of side C
            sqrC = new Polygon();
            sqrC.addPoint(0, 0);               // add P0 coordinate
            sqrC.addPoint(C, 0);               // add C1 coordinate
            sqrC.addPoint(C, C);               // add C2 coordinate
            sqrC.addPoint(0, C);               // add C3 coordinate
            sqrC.translate(X0, Y0);               // place square
            poly1 = new Polygon();
            poly1.addPoint(405,279);
            poly1.addPoint(413,350);
            poly1.addPoint(432,500);
            poly1.addPoint(442,571);
            poly1.addPoint(500,500);
            poly1.addPoint(500,350);
            poly2 = new Polygon();
            poly2.addPoint(279,297);
            poly2.addPoint(404,280);
            poly2.addPoint(571,254);
            poly2.addPoint(500,350);
            poly2.addPoint(350,350);
            //Polygon 3
            poly3 = new Polygon();
            poly3.addPoint(404,280);
            poly3.addPoint(350,350);
            poly3.addPoint(414,350);
            poly4 = new Polygon();
            poly4.addPoint(350,350);
            poly4.addPoint(350,500);
            poly4.addPoint(442,572);
            poly4.addPoint(433,500);
            poly4.addPoint(414,350);
            poly5 = new Polygon();
            poly5.addPoint(476,183);
            poly5.addPoint(332,225);
            poly5.addPoint(278,295);
            poly5.addPoint(404,279);
            poly5.addPoint(571,254);
            poly6= new Polygon();
            poly6.addPoint(405,278);
            poly6.addPoint(332,224);
            poly6.addPoint(476,182);
            // create parallelogram of height A
            parA = new Polygon();
            parA.addPoint(0, 0);               // add P0 coordinate
            parA.addPoint(0, C);               // add C3 coordinate
            parA.addPoint(A*A/C, C - A*B/C);          // add Q0 coordinate
            parA.addPoint(A*A/C, -A*B/C);          // add A3 coordinate
            parA.translate(X0,Y0);               // place parallelogram
            // create parallelogram of height B
            // warning: the coordinate of this object are specified from C1
            parB = new Polygon();
            parB.addPoint(0, 0);               // add C1 coordinate
            parB.addPoint(-B*B/C, -B*A/C);          // add A3 coordinate
            parB.addPoint(A*A/C - C, C - A*B/C);     // add Q0 coordinate
            parB.addPoint(0, C);               // add C2 coordinate
            parB.translate(X0 + C, Y0);
            // place parallelogram
        // depending on the sequence number we draw certain objects
        public void paint(Graphics gfx) {
            super.paint(gfx);
            Graphics2D g = (Graphics2D) gfx;
            g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
            RenderingHints.VALUE_ANTIALIAS_ON);
            // text first, then objects (and animation)
            // we always output some notes
            g.drawString(notes[3*sequence], noteX, noteY);
            g.drawString(notes[3*sequence + 1], noteX, noteY + lineSpacing);
            g.drawString(notes[3*sequence + 2], noteX, noteY + 2*lineSpacing);
            // the object are drawn in an order so that they are properly overlapped
            if(sequence == 13) {
                g.setColor(Color.green);
                g.fillPolygon(poly1);
                g.fillPolygon(poly2);
                g.fillPolygon(poly3);
                g.fillPolygon(poly4);
                g.fillPolygon(poly5);
                g.setColor(Color.RED);
                g.setColor(Color.GREEN);
                g.drawLine(413,351,433,499);
                g.setColor(Color.white);
                g.fillPolygon(tri);
                g.fillPolygon(tri1);
                g.fillPolygon(poly6);
            if(sequence == 12 ) {
                g.setColor(Color.green);
                g.fillPolygon(poly1);
                g.fillPolygon(poly2);
                g.fillPolygon(poly3);
                g.fillPolygon(poly4);
                g.fillPolygon(poly5);
                g.setColor(Color.BLACK);
            if(sequence == 11){
                g.setColor(Color.green);
                g.fillPolygon(poly1);
                g.fillPolygon(poly3);
                g.fillPolygon(poly4);
                g.setColor(Color.BLACK);
            if(sequence == 8 ){
                g.setColor(Color.green);
                g.fillPolygon(poly5);
                g.setColor(Color.MAGENTA);
                g.drawString("E",578,254);
                g.drawString("D",268,302);
                g.setColor(Color.black);
                g.drawArc(250,150,350,250,320,65);
            else if (sequence == 9 ){
                g.setColor(Color.green);
                g.fillPolygon(poly2);
                g.setColor(Color.MAGENTA);
                g.drawString("E",578,254);
                g.drawString("D",268,302);
                g.setColor(Color.black);
                g.drawArc(250,150,350,250,320,65);
            if( sequence == 10){
                g.setColor(Color.green);
                g.fillPolygon(poly2);
                g.fillPolygon(poly5);
                g.setColor(Color.black);
                g.setColor(Color.MAGENTA);
                g.drawString("E",578,254);
                g.drawString("D",268,302);
                g.setColor(Color.black);
                g.drawArc(250,150,350,250,320,65);
            if(sequence == 7){
                g.setColor(Color.green);
                g.fillPolygon(poly2);
                g.setColor(Color.MAGENTA);
                g.drawString("E",578,254);
                g.drawString("D",268,302);
                g.setColor(Color.black);
            if(sequence == 6){
                g.setColor(Color.yellow);
                g.fillPolygon(poly2);
                g.setColor(Color.green);
                g.fillPolygon(poly3);
                g.setColor(Color.blue);
                g.fillPolygon(poly4);
                g.setColor(Color.black);
                g.drawArc(250,175,350,275,300,65);
                //g.drawArc(250,150,350,250,320,65);
                g.drawLine( 606,309,599,299);
                g.drawLine(592,313, 599,299);
                g.drawString("+90 degrees",605,378);
            if (sequence == 5 ) {
                g.setColor(Color.yellow);
                g.fillPolygon(poly2);
                g.setColor(Color.black);
            if (sequence == 4) {
                g.setColor(Color.YELLOW);
                g.fillPolygon(poly1);
                g.setColor(Color.black);
                g.drawArc(319,310,250,195,89,-35);
                g.drawLine(499,319, 492,312);
                g.drawLine(499,319, 492,325);
                g.drawArc(200,180, 233,238,-120,-60);
                g.drawLine(200,298, 208,309);
                g.drawLine(200,298, 194,313);
                g.drawString("-90 degrees",227,347);
            if (sequence >= 3) {
                g.drawLine(404,279,442,572);
            // draw the squares
            if (sequence >= 2) {
                g.drawLine(278,296,572,254);
            // draw the squares
            if (sequence >= 1) {
                g.drawLine(333,224,476,182);
                g.drawPolygon(tri1);
            // always draw the triangle
            g.drawPolygon(tri);
            g.drawPolygon(sqrA);
            g.drawPolygon(sqrB);
            g.drawPolygon(sqrC);
            g.setColor(Color.MAGENTA);
            g.drawString("C", X0 + C/2 - fontSize/2, Y0 + lineSpacing);
            g.drawString("A",
            X0 + A*A/(2*C) - fontSize*A/B/2,
            Y0 - A*B/(2*C) - lineSpacing*A/B);
            g.drawString("B",
            X0 + C - B*B/(2*C) - fontSize*A/B/2,// the last "-" isn't log.
            Y0 - B*A/(2*C) - lineSpacing*A/B);
        public void redraw(int sequence) {
            this.sequence = sequence;
            repaint();
    }TEST CONTROL
    * TestControl.java
    * Created on 28 February 2005, 11:16
    import java.awt.*;
    import java.awt.event.*;
    import java.text.*;
    import javax.swing.JFrame;
    * @author  Kripa Bhojwani
    public class TestControl extends Panel implements ActionListener {
      TestView view;
      int sequence;                    // event sequence
      // constructor
      public TestControl(TestView view) {
        Button b = null;
        Label label = new Label("A^2 ");
        this.view = view;          // initialize drawble area
        sequence = 0;               // initialize sequence
        b = new Button("Prev");
        b.addActionListener(this);
        add(b);
        b = new Button("Next");
        b.addActionListener(this);
        add(b);
        add(label);
      // exported method
      public void actionPerformed(ActionEvent ev) {
        String label = ev.getActionCommand();
        if (label.equals("Prev")) {
          if (sequence >0) {
         --sequence;
        else {
          if (sequence < 15) {
         ++sequence;
        this.setEnabled(false);          // disable the controls
        view.redraw(sequence);
        this.setEnabled(true);          // enable the controls
    }Please help --- really need to sort this out...
    THANKS

    Cross post http://forum.java.sun.com/thread.jspa?threadID=603432&messageID=3251958#3251958

  • Pascal's Triangle Problem

    Hey there guys. I was looking around the forums seeing if there was anything that someone posted simliar to my assignment. While there were SOME similar things, I think mines a bit more specific. Let me just state here that I don't want anyone to just come out and do the assignment for me, nor do I think that anyone would be willing to. Anyways, here's what I am dealing with.
    I am to design a method which uses recursion to print the n-th line of the Pascal's triangle. I have a few ideas in my head about how to make it, but I just can't translate my thoughts into words.
    My first guess is that my method declaration should look something like this:
    public int println(int n)
    }But I'm just at a brainlock. My class really hasn't touched recursion extremely in-depthly expect for what was needed for AP Exam and Binary Search methods. Usually I can figure this stuff out, but ahhh!
    Anyways, any help (aka nudge in the right direction) would be very appreciated.

    A recursive function can be explained as a function defined in terms of itself.
    It is a mathematical concept. Let's take a look at something simple, like fibonacci numbers. Fibonacci numbers are defined in math something like:f(1) = 1
    f(2) = 1
    f(n) = f(n-1) + f(n-2)What this means is that the first two fib numbers are 1 and 1, and every fib number after that is the sum of the two numbers immediately preceeding it. So if we unroll the fibonacci numbers, they are:1 1 2 3 5 8 13 21 34 ...Now we want to implement a method in Java that accepts a single int argument, n, and will return the nth fibonacci number. One way is to do this recursively as such:public int fibonacci(int n) {
        if (n == 1 || n == 2)
            return 1;
        return fibonacci(n - 1) + fibonacci(n - 2);
    }(what we haven't handled is when n < 1, but since this is just to increase understanding of recursion I will omit that)
    What you see is a commonality with all recursive functions, a base case and a recursion step. All recursive methods must have a base case or they will run infinately. Similarly all recursive methods must have a recursion step, for the simple reason that they would not be recursive functions otherwise. Another thing that all recursive functions have in common is that the recursive call is made on some narrower scope (in this case n less 1 and n less 2) resulting in a call drawing ever closer to the base case (not doing so would also result in infinite recursive calls).
    Note: sometimes fibonacci numbers are defined to have the 0th number as 0 and the 1st number as 1, for me that is matter of taste and still results in the same sequence of numbers, with an added 0 at the front.
    In your example, the base case is when n == 1, and the recursion step is the call to fillN with n less 1 (i.e., narrowing the scope). The thing that is different in your example is that the resulting array is being passed around in the recursive calls, this is quite common for accumulating results as the recursion is being wound up (the calls themselves) and even down (when calls return, like in your case).
    You should try tracing out the calls on paper with a reasonably small n, this will better help your understanding. Let me do it with n == 2.fillN(2, a) // a = [0, 0]
    // n is not 1 so we do the recursive call
    fillN(1, a) // a = [0, 0]
    // n is 1 so we do the base case
    array[0] = 1 // a = [1, 0]
    // returning back to the call with n == 2
    // we run through the loop (i begins at n - 1 or 1)
    array[1] += array[0] // a = [1, 1]
    // i becomes 0 which is not > 0 so we exit the loop
    // the recursion has ended and a is now [1, 1]Now you try it with n == 3.
    ps. slightly off-topic, there is a great article by Olivier Danvy and Mayer Goldberg called "There and back again" on the programming pattern of traversing one data structure as recursive calls are being made and traversing a different data structure as the calls are returning (hence, there and back again or TABA). If you're interested you should check it out (Note: they use Scheme in their examples, but that doesn't mean that there's nothing to learn from it if you don't know Scheme):
    http://www.brics.dk/RS/05/3/BRICS-RS-05-3.pdf
    Message was edited by:
    dwg

  • Looking for some advice on a Golden Triangle Storage setup.

    Good Afternoon,
    I'm an IT technician at a school where we currently have a 600 computers and are now getting many requests to integrate our Macs also into our system. I've used Macs for a while and have tried and researched to get this query sorted but with no avail.
    We have our students/staff log into the Macs with Active Directory authentication and then they access their windows folders from there. The problem we are having is with programs like Logic and other Music Technology related programs the allocated storage is getting filled up rapidly.
    We have now bought ourselves an external hard disk for use only with Macs and we would like to have that allocated to users. So our ultimate goal is to have users being able to log into the Macs, access their windows areas and save their mac files to the mac only storage. We're not sure where to start and if we were pointed in the right direction we don’t mind researching and learning-by-doing if needed it's just the first step we're not sure of!
    Server:  MAC OS X 10.5.8
    Macs: Most on Snow Leopard some on Leopard and a couple of staff on Lion
    Windows: All XP except for a few staff on Windows 7
    Thanks,
    Josh

    If any more information is required to make my question easier to understand please feel free to ask!

  • Having problem accessing MacMini over network with PC's Windows 7

    Hi all,
    I have a Mac Mini with 10.6.x
    Onec in a while, especially when restart Airport Extreme for upgrade or something else (both are connected with ethernet cable cat5e) ALL PC's on the network having problem accessing Mac Mini Server while All MACs are fine and can access all folders no problem. Usually takes about 3-4 min for PC to connect to server. Then  once it is connected (it loads all folder and files in that current window on the PC) i can go from folder to folder with no delays. However if i close the window with all folders then again i have to wait for around 3 min. to load everything all over again. AFP and SMB are ON. Today i made an experiment and turned SMB off and the problem still excist with the difference that after 3-4 min delay no folders were shown.
    It seems that the PCs have hard time establishing connection with the server which is weird that Macs don't have that problem. It must be something with the setting of Mac MIni. Other wise i have no problem accessing Internet so the routher is working fine. DHCP is ON on the AP Extreme.
    I came across as i was searching for this issue and it seems that authentication - Golden triangle or whatever is called - might be the issue in the whole mess. Do you guys think that this might be the case ?
    The only way i have found out to help is to restart the Router and Server and that usually fix the problem  .
    Could you please help me figure what is going on there?
    Here is the original thread: https://discussions.apple.com/thread/3867559?tstart=0 ( i think i posted in the wrong forum )

    The specified changeip -checkhostname command does not make changes to your configuration. 
    To research the command (and that's entirely your perogative), please use Google or Bing to search for previous discussions and details, or review the provided man page documentation for the command.  (Launch Terminal.app (folder Applications > Utilities) and issue the command man changeip.  You'll see something like this:
    $ man changeip
    changeip(8)               BSD System Manager's Manual              changeip(8)
    NAME
         changeip -- Change service configuration files with hard-coded IP addresses
    SYNOPSIS
         changeip [-v] [-d path] old-ip new-ip [old-hostname new-hostname]
         changeip -checkhostname
         changeip -h
    DESCRIPTION
         changeip is used to manually update configuration records when a server's IP address or hostname changed in a way that affected services were unable to properly process, for example when the server is behind a NAT device and the WAN identity changed.  ...
    Given your response and your concern, consider creating a backup of your disk.  Shut down, boot the installation DVD, and use Disk Utility (from the Utilities menu) in the second screen of the installation process to copy your disk contents to an external storage device.  (Time Machine isn't as good at getting a backup of a server as is a clean backup created while shut down.)  There are descriptions around that detail how to create this backup using Disk Utility.
    There is no DNS server implemented in the Airport Extreme.  The Airport Extreme forwards DNS requests to a DNS server elsewhere.  Few gateway devices contain DNS servers; that these devices request a DNS address tends to be confusing, too.  That address is solicited from the user for use in the DHCP server that many of the available gateway devices provide.
    There is no need for a DNS forwarder, particularly if your server is configured for your LAN.  (Adding a forwarder adds another hop into the whole translation process.  That configuration and that extra hop can be useful when the intermediate DNS server is providing specific, enhanced DNS-related functions, such as security monitoring and logging, or providing a "nanny filter" mechanism.)
    If you are running DNS services on your LAN, then your Airport Extreme DHCP server should be configured to pass out the IP address of your DNS server.
    It would appear that your local box has the default self-hosted DNS, and is not configured to serve LAN DNS (other than for itself).  That's good.  Accordingly, it'll likely be getting good DNS from itself, but will not be getting translations for other hosts on your network.  That's not so good.  When DNS responses are not available, you'll get DNS-level timeouts, and those are usually around 30 seconds each.
    Check your server logs for messages related to the failed connections, and check the Windows file service logs for any errors being generated by the file service.  The log information is most easily available from Console.app, which is a utility in Applications > Utilities folder, or from the Server Admin tool (Applications > Server folder) for DNS, and for the file server component.
    The above is probably going to read like a wall of unfamiliar jargon, so please ignore this and my previous response here, and I'll leave it to somebody else to assist you here.

  • Yellow triangle and a grayed out movie clip

    Hi, I created a project in iMovie 08, kind of elaborate for me, with several movie clips, each with a transition, and background music from iTunes through out the majority of the 3 minute and 30 second final project. Initially, all was well and the project played perfectly. A couple of days later when I went into iMovie 08 to enhance the project, several clips were grayed out and had a yellow triangle in the clip. Placing the cursor over the clip resulted in the clip "coming to life" that is revealing the clip but the clip was not visible in the browser and the grayed out clips were not visible if I played the project in full screen mode. If I published the project to the web, the grayed out clips would not show (the video portion); the audio which was part of the whole project would play. I do not think I moved any clips to a different location although I certainly added other clips to iPhoto and then to iMovie. I just finished the lynda.com training on iMovie 08 which was just released and I got no help from that training on the yellow triangle problem. Any help or ideas would be appreciated. Thank you.

    Great news! After some browsing around, I located the problem, and now my movie project is fixed!
    As it turns out, videos that are located in iPhoto are referenced based on the Event that they belong to, which means that if you change the name of the Event that the picture belongs to then iMovie will no longer be able to find your picture. (This is also why the clips appear in the lower section of iMovie, because they are still there, just in a renamed or merged event.)
    I was able to fix the problem very easily by renaming my event back to the original name, and then after closing and restarting iMovie all the nasty little yellow triangles were gone and all my clips were back as if they'd never left.
    This may or may not help, but for me, to make sure that I got the event name correct, I found the movie file (which was in "Movies/iMovie Projects") and then right mouse clicked and selected "Show Package Contents" so that I could see what was in my project, and then opened the "Project" file, which had the names listed in it. Hope that helps!
    Trigby

  • Triangle on message

    In reply to your reply to my question on triangle showing up on some of my messages to people. This has been happening to some messages never all messages just a few and the recipient does recieve the text. But has been happening last couple weeks. Also had to uninstall and reinstall messenger because my alert sound went silent. Tried reseetting with different sound and still did not work after reinstalling itworks for sound but triangle problem still happening
    Sent from my Verizon Wireless 4G LTE smartphone

    >> Discussion continued from:  my verizon messenger <<

  • Problems with Active Directory Users showing as not found in Open Directory work group manager

    I’m running a golden triangle setup with Open directory assigning group policy and authentication provide by active directory. In workgroup manager I can search through the AD and add users or computers to groups in OD workgroup manager. However when I save and refresh the users or computer appear as ‘not found’. Is there a reason for this?

    Hi Zero
    It's very reassuring to know im not the only one having issues with this..
    Im on my second re install of the server.. I like you have no wish to do another clean install as everything else is connected and it seems like the answer is probably very simple.
    So today im going to re- run the terminal commands as layed out in the online guides.
    However i was kinda hoping someone would be able to supply us with an answer.
    thanks
    J

  • Hi, Someone Know why my charger is not working properly but always it was been working good but now when conect my iphone (3gs) shows a yellow triangle saying : Charging is not supported with this accessory. Please I need some help here. Thanks =D

    Hi Someone Know why my charger is not working properly but always it was been working good but now when conect my iphone (3gs) appears a golden triangle saying :Charging is not Supported with this accessory. Please I Need Some Help Here. Thanks =D

    sounds like the cable or the iphone connector are somehow damaged

Maybe you are looking for

  • DV9000 No longer recognizes my CD-ROM drive

     HI guys, I am by no means a computer guy, but I have been trying to figure out why my laptop no longer recognizes my CD drive.  It had the 3 yellow exclimation points in the devise manager, 2 for Base System Device and 1 for Coprocesser.  I updated

  • Setting db isolation level on transaction without EJB

              I'm using UserTransaction in the servlet container, to control XA transactions.           We're not using EJB. How do I set the database isolation level? I'm tempted           to use java.sql.Connection.setTransactionIsolation(). However, t

  • Type shift between design mode and preview mode in Muse.

    My type shifts / moves positions between design and preview modes. It then justifies differently in differnet Web Browsers. This mean I end up positioning things incorrectly in design mode to accommodate the error when published. I am using the Droid

  • Free goods Delivery charge

    Hi, I wants to add the Delivery costs to Free flaged Purchase order pls help me on this thanks, Mohan

  • Service manager says t8ExtEx.dll is missing

    My internet won't connect and it says service manager says t8ExtEx.dll what does this mean ? how can it be missing all of a sudden ?