Displaying two box objects, side by side... HELP please!!!

I have to write a program to test the method below, and I haven't a clue as to where to begin. The object is to have two boxes of varying height and length next to each other. Any clues????
public class Box
          private static final int MAX_LENGTH = 12;
          private static final int MAX_HEIGHT = 12;
          private static int numberOfBoxesCreated = 0;
          private int length = MAX_LENGTH / 2;
          private int height = MAX_HEIGHT / 4;
          private char symbol;
          private char convertSingleDigitIntToChar(int digit)
                    char digitAsChar = (char) (digit + (int)'0' );
                    return digitAsChar;
          public Box()
                    numberOfBoxesCreated++;
                    int unitsDigit =numberOfBoxesCreated % 10;
                    symbol = convertSingleDigitIntToChar( unitsDigit);
          public Box(int forLength, int forHeight)
                    numberOfBoxesCreated++;
                    int unitsDigit =numberOfBoxesCreated % 10;
                    symbol = convertSingleDigitIntToChar( unitsDigit );
                    if (forLength > 0 && forLength <= MAX_LENGTH)
                              length = forLength;
                    else
                              length = MAX_LENGTH;
                    if (forHeight > 0 && forHeight <= MAX_HEIGHT)
                              height = forHeight;
                    else
                              height = MAX_HEIGHT;
          public void standOnEnd()
                    int holder = length;
                    length = height;
                    height = holder;
          public void show1()
                    System.out.println();
                    String offset = " ";
                    for (int h = 0; h < height; h++)
                              System.out.print( offset );
                              for (int len = 0; len < length; len++)
                                        System.out.print( symbol );
                              System.out.println();
     }

The method has to diplay two boxes side-by side, as if they were sitting on the ground next to each other. The first box's character is the number 1. It has a height of 3, a length of 8 and has to sit six spaces from the left side of the page and be completely filled in. The second box sits six paces from the first, it has a height of 8, a length of 5 and the character has to be the number 2. This is filled in as well.
I understand I would have to build on the method. How would I go about formulating a plan to do this. The program is a textmode device, like a printer prints from left to right.
Thanks for reply

Similar Messages

  • Error in displaying two pivot tables side by side

    I am creating two pivot tables. They work fine when one after the other. BI Publisher gives an error if I place them side by side.
    One more issue. If i use this "for-eachCOLUMN0end" I get the following:
    Balances with Central Bank
    Cash and Cash-equivalent Securities
    Inter-bank Deposits
    Cash
    Asset-backed Securities Assets
    I want to just display any one of these, say Cash. How do I achieve that?
    Thanks in advance
    Regards,
    Varun

    The method has to diplay two boxes side-by side, as if they were sitting on the ground next to each other. The first box's character is the number 1. It has a height of 3, a length of 8 and has to sit six spaces from the left side of the page and be completely filled in. The second box sits six paces from the first, it has a height of 8, a length of 5 and the character has to be the number 2. This is filled in as well.
    I understand I would have to build on the method. How would I go about formulating a plan to do this. The program is a textmode device, like a printer prints from left to right.
    Thanks for reply

  • How to Display two different objects in a single table header in Cross Tab?

    i All,
    I've a reqiurement for a Cross Tab Report like I need two different objects that should be displayed side-by-side, one object's values after another in a single header. In the picture below I've shown the objects separately in two rows, top header having BSNLNL,MTNLNL,RCOMNL and Header-2 having AIRTIL,RCOMIL. But requirements needs to be showing like this,
    BSNLNL
    MTNLNL
    RCOMNL
    AIRTIL
    RCOMIL
    Actually, the data for the header comes from a single object called Operator. I've show the Operators name ending with NL and after that names ending with IL. So, i've separated the data into two variables using the below formulae.
    IL:
    =[Billing Operator]
    Where
    Match([Billing Operator];"*IL")=1
    NL:
    =[Billing Operator]
    Where
    Match([Billing Operator];"*NL")=1
    Also, the NL data should start first and after the NL data's last value ends, the IL data should begin.
    One more thing is that I've to show '0' for null values. So i've used the below formulae on the column data. You can see below that except the "Outgoing ILD Mins in the month from Mobile Network" everything else showing fine. I don't understand why.
    =If
      Substr([Franchise];3;1)="M"
      Then
       [Mobile Outgoing Charged Usage Minutes]
       Else
       0
    I tried different approaches but couldn't find a solution. Could you please help me?     
    I'm using BO WebI 4.1 SP1
    Regards,
    Naren Vema.

    Hi Naren,
    No need to split Billing Operator object. Create a variable-
    V_IL_NL= If  Match([Billing Operator];"*IL")=1 Then "IL" ElseIf Match([Billing Operator];"*NL")=1 Then "NL"
    1) Put V_IL_NL variable below Billing Operator object header.
    2) Sort and create break on this variable.
    3) Delete Footer column. it will automatically create when you apply break.
    4) Hide V_IL_NL variable from this header.
    ~Anuj

  • How to display two item groups Side by Side (Horizontal)

    I'm using Designer 9.04 and Hradstart 6.5 updated for designer 9.0.4.
    I have two item groups defined in one of the forms module. I wand to display them side-by-side but the generated form shows the item groups one below the other.
    Any idea how to solve this?
    Thanks
    Vimal

    Is your window wide enough?
    If nothing else helps, you can use the Relative tab stop editor to force generator to place the item groups horizontally. Set the tab stop scope of the item groups to parent and place them on two different tab stops.

  • Encountered Incompatible combination of objects (QP0004) error! help please

    Support Case for BOXI
    Title: encountered Incompatible combination of objects (QP0004) error!
    BOXI version: Business Objects boe XIR2 SP2
    OS: PARISC HPUX 11.11
    Description:
    In the Customer Inventory report document, there are three report tabulation and three filter conditions to limit Display relevant customer and date result
    It works incorrectly while the report has three filter conditions,but two filter conditions it works correctly. in the begin i doubt the generate sqls are incorrectly,i copy the sql sentence in the sqlplus envirement and execute , sql sentence syntax and result were correctly.but in BO Edit Query when the report has three filter conditions,i click SQL button and generate sqls there display error .
    so i checked design object and found out why will appear this error, in the designer I put this object(name is 'Is Srvc Level Created in time frame') into Query panel, then click SQL button generate sql,
    This mistake will show:'Incompatible combination of objects (QP0004)'
    'Is Srvc Level Created in time frame' object sql code as follows:
    select:
               CASE WHEN @Select(Service Level\Service Level Creation Date) >= @Select(Time\TIME - Period Start Date) AND @Select(Service Level\Service Level Creation Date)  <= @Select(Time\TIME - Period End Date) THEN 1 ELSE 0 END
    where:
    filter conditions generate sqls like below sentence,please pay attention to bold sentence:
    SELECT
    /*+ LEADING(time_dim) */ 1,
    CUSTOMER_DIM.NAME,
    ( SI_AND_SCI_DIM.LABEL )||' ('||( SI_AND_SCI_DIM.NAME )||')',
    ( SLA_DIM.LABEL )||' ('||( SLA_DIM.NAME )||')',
    CAST(SI_AND_SCI_DIM.DELETION_DATE AS DATE),
    CAST(SLA_DIM.CREATION_DATE AS DATE),
    CAST(SLA_DIM.DELETION_DATE AS DATE),
    ( CUSTOMER_DIM.LABEL )||' ('||( CUSTOMER_DIM.NAME )||')'||'['||( CUSTOMER_DIM.ID )||']',
    CAST(SI_AND_SCI_DIM.CREATION_DATE AS DATE),
    SLA_DIM.NAME,
    CAST(CUSTOMER_DIM.CREATION_DATE AS DATE),
    CASE WHEN ( CAST(SLA_DIM.CREATION_DATE AS DATE) ) >= ( CAST(bo_tools.from_gmt_to_time_zone(TIME_FRAME_START.FULL_DATE) AS DATE) ) AND ( CAST(SLA_DIM.CREATION_DATE AS DATE) ) <= ( CAST(bo_tools.from_gmt_to_time_zone(TIME_FRAME_END.FULL_DATE) AS DATE) ) THEN 1 ELSE 0 END,
    CASE WHEN ( CAST(SI_AND_SCI_DIM.CREATION_DATE AS DATE) ) >= ( CAST(bo_tools.from_gmt_to_time_zone(TIME_FRAME_START.FULL_DATE) AS DATE) ) AND ( CAST(SI_AND_SCI_DIM.CREATION_DATE AS DATE) ) <= ( CAST(bo_tools.from_gmt_to_time_zone(TIME_FRAME_END.FULL_DATE) AS DATE) ) THEN 1 ELSE 0 END,
    CASE WHEN ( CAST(SL_DIM.CREATION_DATE AS DATE) ) >= ( CAST(bo_tools.from_gmt_to_time_zone(TIME_FRAME_START.FULL_DATE) AS DATE) ) AND ( CAST(SL_DIM.CREATION_DATE AS DATE) ) <= ( CAST(bo_tools.from_gmt_to_time_zone(TIME_FRAME_END.FULL_DATE) AS DATE) ) THEN 1 ELSE 0 END FROM
    SI_AND_SCI_DIM,
    CUSTOMER_DIM,
    SLA_DIM,
    TIME_DIM TIME_FRAME_START,
    TIME_DIM TIME_FRAME_END,
    GRANULARITY_DIM,
    SI_VIEW_SCI_HEALTH,
    VIEW_TIME_DIM
    WHERE
    ( CUSTOMER_DIM.ID=SI_VIEW_SCI_HEALTH.DM$CUSTOMER_REF )
    AND ( SI_VIEW_SCI_HEALTH.DM$TIME_REF=VIEW_TIME_DIM.ID )
    AND ( SI_VIEW_SCI_HEALTH.DM$SI_OR_SCI_REF=SI_AND_SCI_DIM.ID )
    AND ( SI_VIEW_SCI_HEALTH.DM$GRANULARITY=GRANULARITY_DIM.KEY_ID )
    AND ( VIEW_TIME_DIM.ID>=TIME_FRAME_START.ID )
    AND ( VIEW_TIME_DIM.ID<TIME_FRAME_END.ID )
    AND ( SI_VIEW_SCI_HEALTH.DM$SLA_REF=SLA_DIM.ID )
    AND ( SI_AND_SCI_DIM.IS_SERVICE = 'T' )
    AND ( SLA_DIM.CUSTOMER_REF = ( CUSTOMER_DIM.ID ) )
    AND
    ( ( CUSTOMER_DIM.LABEL ) in decode(@Prompt('Choose Customer','A','Customer\Customer Label',MONO,FREE), '*', ( CUSTOMER_DIM.LABEL ), @Prompt('Choose Customer','A','Customer\Customer Label',MONO,FREE)) )
    AND
    ( ( TIME_FRAME_START.ID ) = bo_tools.getFirstTimeRef(
    'M',
    NULL,
    'YYYY/MM',
    @Prompt('Enter month and year (date format: YYYY/MM)','A',,MONO,FREE))
    AND
    ( TIME_FRAME_END.ID ) = bo_tools.getLastTimeRef(
    'M',
    @Prompt('Enter month and year (date format: YYYY/MM)','A',,MONO,FREE),
    'YYYY/MM') )
    AND
    GRANULARITY_DIM.KEY_ID = 'M'
    However at the same time, if there has third filter condition,BO Edit Query can not generate sqls and display error.
    I confirm by checking the sqls sentence in the sqlplus, the results are correctly.but in BO Edit Query are not correctly.
    Any one who encountered this before? ,I post this message asking for help and hope it can be fixed soon.
    if you need more info I can send you screen shot, thanks!

    Sorry I didn't read the whole thing above.. But I can advice you as I encountered the same error.
    It happened to me because of a loop that was forming between the tables .
    loop in the sense: A-B-C-D-A
    When i checked Short Cut join in the join properties I was not getting this error message. but... it was joining through a different longer path. It was then I realized that it had a loop. You can have a careful look to see if you are having the same issue. hope it helps people in future.

  • Loading and viewing XML when a class object is created..Help Please

    Hello,
    I have writing a simple class which has a method that gets invoke when the object of the class is created. I am able to view the loaded XML content when I trace it with in my class method, but cannot assign the content to a instance variable using the mutator method. So the process goes like this:
    Class object is instantiated
    Class construtor then calls the loadXML method which laods the XML
    And then assigns the XML to a class instance variable.
    So now if I would like to access the loaded XML through class object, I should be able to see the loaded xml content which I am not able to see. I have spent over few hours and cannot get the class object to display the loaded XML content. I would highly appreciate it if someone can help in the right direction, please.
    [code]
    package com.as3.app
        import flash.display.*;
        import flash.events.*;
        import flash.text.*;
        import flash.net.*;
        public class Cars extends MovieClip {
               public var _CarList:Object;
               public function Quiz()
                  super();
                  loadCars();
    // ===========================================================
    //           CARS GETTER SETTER
    // ===========================================================
            public function set Cars(val:XML):void
                this._CarList = val;
            public function get Cars():XML
                return this._CarList;
    // ===========================================================
    //            LOAD QUESTIONS FROM XML
    // ===========================================================
            public function loadcars()
                var myXML:XML;
                var myLoader:URLLoader = new URLLoader();
                myLoader.load(new URLRequest("xml/cars.xml"));
                myLoader.addEventListener(Event.COMPLETE, processXML);
                function processXML(e:Event):void
                    myXML = new XML(e.target.data);  
                    Cars = myXML;                 // Assigning the loaded xml data via mutator method to the _CarList;
    //=============================================================  
                                  INSTANTIATING THE CLASS OBJECT
    //=============================================================
    package com.as3.app
        import flash.display.*;
        import flash.events.*;
        import flash.text.*;
        import flash.net.*;
        import com.as3.app.*;
        public class DocumentClass extends MovieClip {
            public var c:Car;
            public function DocumentClass()
                super();
                c = new Cars();  
                trace(c.Cars);
    [/code

    where you have:
                super();
                c = new Cars();  
                trace(c.Cars);
    c.Cars will not trace as the loaded xml, because it will not have loaded in time. After some time it should presumably have the correct value.
    loading operations in actionscript are asynchronous, so your nested function which is acting as the listener ( function processXML(e:Event):void) only ever executes when the raw xml data has loaded and that is (I believe, not 100% sure) always at least one frame subsequent to the current one.
    In general I would consider it bad practise to use nested functions like that, but I don't think its contributing to your issues here. I think its just a timing issue given how things work in flash....
    Additional observation:
    your Cars constructor calls loadCars() and your loadCars method is defined as:
    public function loadcars()
    I assume its just a typo in the forum that the uppercase is missing in the function name....

  • Display half black and half white.. help please?

    Hi there,
    I was wondering if anyone can help me with this. Recently, (sometimes) after i start my powerbook up or awake it from sleep.. the display instead of white... it's half white and half black. Top half is white and I can see the apple logo (startup) or the desktop (sleep). The bottom half is completely black. And gradually the the black disappeared. Is my display card screwed?
    Thanks.

    My guess is that you have a backlight going bad. Miniature fluorescent tubes provide the backlight; I think at least two, perhaps top and bottom. You would have a slow starting bottom tube. AFAIK, this is not an easy or cheap repair. Most folks would replace the whole display, although it's probably possible to take the display apart and replace the tube.
    If an external display connected to the computer works OK, the video card is likely fine.

  • I recently upgraded to Yosemite.  Now in my Pages documents I cannot select/edit any objects or images.  Help Please!

    I just recently updated my MacBook Pro to Yosemite 10.10.2
    I also updated my "Pages" when asked to.
    Now when a open any of my Pages documents, I cannot select/edit any of the objects/images in those documents.
    I have gone through the "Pages" help but still cannot solve the problem. 
    There used to be a "make background objects selectable" button, but I can no longer find it.
    I have tried the "arrange tab" > section masters > make master objects selectable, but nothing happened
    Any suggestions

    Hello Kappy,
    I checked out your link and I remember the import box popping up when I upgraded from iWork to Pages a few years ago.  My problem is with all files (even documents created with "pages" last week.  The documents open fine, I just cannot select/edit the objects/images in the background of my documents.  Yes, I have tried going through all of the tab menus and layout options and tried "pages" help.
    So my problem is that I cannot open documents and adapt them to my next lesson, etc.
    Anyone else have any suggestions?

  • HT201210 my iphone 5 has jammed showing the iTunes sign and a plug in wire when plug in box says error 3014 any help please...

    My iphone 5 has jammed in download showing the itunes sign and a plug in cabel  when going to itunes a box is show says error 3014... help please

    http://support.apple.com/kb/ts3694#error3014
    Error 3014
    This error occurs when iTunes is unable to reach gs.apple.com in a timely fashion. Follow the steps below inUnable to contact the iOS software update server gs.apple.com.

  • Two 9320 Curve on one account - Help please :-)

    I have two BB Curve 9320 on one email account with separate ID's and pin. One device BBM locked out and asked to verify log in details. Tried this but device synced BBM contacts from other device. Any ideas on how to create individual identities for each device would be welcomed
    Many thanks

    Hi izzywizzy
    Welcome to Support Forums
    You cannot have the same email address as your BlackBerry ID on both of your devices , because this newer BBM version integrates with your BlackBerry ID.
    So if you remember your email and the password of your BlackBeerry ID then from a PC go to www.blackberry.com/blackberryid  first try changing the Username or the email associated with any one of your device , for further help refer to this Knowledge Base :
    KB28060 : How to change or update a BlackBerry ID username on the BlackBerry ID website.
    Please try it and see if that resolves your issue.
    Click " Like " if you want to Thank someone.
    If Problem Resolves mark the post(s) as " Solution ", so that other can make use of it.

  • Displaying a fieldset within td ... help please.... very urgent

    Can any one help me how to do display a <fieldset> from within a <td>.
    I am trying to do this:
    for a_rec in (select * from table_name) loop
    htp.p('<table border=0 width=100% cellspacing=0 cellpadding=1 nowrap>');
    IF a_rec.main_category <> ' ' THEN
    htp.p('<td colspan=3 valign=top nowrap><fieldset><legend>
    <font color=black><B>'||a_rec.main_category ||':'||'</B></font></legend></td>');
    ELSE
    htp.p('<td colspan=3 valign=top nowrap><fieldset><legend>
    <font color=white><B> Not categorized:'||'</B></font></legend></td>');
    END IF;
    htp.p('</table>');
    end loop;
    This is not putting the fieldset correctly.
    can anyone help me on this please....
    thanks in advance
    Balachander V Venmani.

    Honestly, I'm not even sure what you're trying to do. That is not meant to be an insult, it just means that you've successfully confused me. Here is your code, neatly formatted:
    <div style="margin: 20px; font-size: 90%; font-family: courier;">
    for a_rec in (select * from table_name) loop<br>
        htp.p('&lt;table border=0 width=100% cellspacing=0 cellpadding=1 nowrap>');<br>
    <br>
        IF a_rec.main_category &lt;> ' ' THEN<br>
            htp.p('&lt;td colspan=3 valign=top nowrap>&lt;fieldset>&lt;legend> '||a_rec.main_category ||':'||'&lt;/legend>&lt;/td>');<br>
        ELSE<br>
            htp.p('&lt;td colspan=3 valign=top nowrap>&lt;fieldset>&lt;legend> Not categorized:'||'&lt;/legend>&lt;/td>');<br>
        END IF;<br>
    <br>
        htp.p('&lt;/table>');<br>
    end loop;<br>
    </div>
    It's going to produce HTML of this form:
    <div style="margin: 20px; font-size: 90%; font-family: courier;">
    &lt;table border=0 width=100% cellspacing=0 cellpadding=1 nowrap><br>
        &lt;td colspan=3 valign=top nowrap>&lt;fieldset>&lt;legend>a_rec.main_category: DATA&lt;/legend>&lt;/td><br>
    &lt;/table><br>
    &lt;table border=0 width=100% cellspacing=0 cellpadding=1 nowrap><br>
        &lt;td colspan=3 valign=top nowrap>&lt;fieldset>&lt;legend>a_rec.main_category: DATA2&lt;/legend>&lt;/td><br>
    &lt;/table><br>
    &lt;table border=0 width=100% cellspacing=0 cellpadding=1 nowrap><br>
        &lt;td colspan=3 valign=top nowrap>&lt;fieldset>&lt;legend>Not categorized: DATA3&lt;/legend>&lt;/td><br>
    &lt;/table><br>
    </div>
    ...and so on. This will create a bunch of single-celled tables with the main_catagory field of a_rec as the "legend" of the cell and the contents of the record in the cell.<br>
    <br>
    You're right, that's probably not what you're looking for.<br>
    <br>
    Which leads me to ask, what are you looking for? You've asked how to use a construct in HTML, to which my normal reply is "stfw; that is, Google for it." As with all sorts of web technologies, there is a fine reference available on the W3C's website.<br>
    <br>
    As for why I can't easily answer your question: The fact is that Oracle only lets us users do a very little bit of HTML in these forum replies, and it's way too much effort to emulate the behavior you're looking for with CSS1 embedded in the few HTML tags we're allowed to have.

  • Adobe Acrobat X Standard is displaying some PDFs with garbled text. Help, please.

    I've been using Adobe Acrobat X Standard without any issues for a long while.  The other day, I received a PDF, opened it, and the words are garbled.  My co-worker who has the very same software is able to view the document without all the garbage.  I have gone to distiller in an attempt to fix.  No one from IT can seem to fix the problem and I am at my wits end.  I've lost lots of sleep over this.  I was even upgraded to Adobe Acrobat XI and still can review the document but again.  Everyone else can.  Don't mean to go on and on but, I really need the experts out there to assist me with this issue.
    I would appreciate any assistance you can provide.  Thank you.

    Not sure what you're referring to. Is this "URL" part of the page content or are you viewing PDFs in a browser? A screenshot would help.

  • Displaying Two groups of data side by side

    We are using XML Publisher 5.6.2. We have a requirement where we need to display two independent groups side by side.
    What we tried was, we had a single table, on which on the same row, we defined the first group ( for-each:group1)<?Col1?><end-each>, in a single cell as part of three different form fields and then in the second column, we started the next group.
    But when we ran the report, the second group does not get dsiplayed. The workaround we have to use is that define the second group in a seperate row than the first group. This displayed the data for both the groups.
    The issue is that, if Group1 has 10 rows, then my second group will be pushed down.
    Has anybody had this issue and if there is a resolution, please let us know.
    Thanks,
    - Vasu K -

    hi this is mohan,
    I would Like to display the data in single table. i have 10 groups when i m trying the columns becoming null. when i m taking it in diff tables its working fine but my client is not satisfied with that is there any solution for this making it in one table.
    Regards&Thanks
    Mohan.katepalli
    Path Infotech Limited

  • Hi Guys When trying trying to install latest version of Apple software I'm getting error message that Itunes has not been properly installed which is strange as i have been using it no later than yesterday Jan. 24th 2014. can anyone help please?

    Hi Guys When trying  to install latest version of Apple software I'm getting error message that Itunes has not been properly installed which is strange as I played ' Take Five' two days ago. Can anyone help please?
    Jim Houston

    Please see this post by turingtest2:

  • Black boxes either side of You Tube display

    Using IE9 there are two large black boxes either side of the You Tube video display. All the links appear underneath and to the right. Using Firefox the display appears as it should with the links alongside the display. I have recently updated Flashplayer.  Is this a Flashplayer problem please?

    I have only disabled SpywareBlaster not uninstalled but all the problems outlined in the other thread have been resolved.
    The problem with YoyTube is on every video I watch. I am not sure how long I have had the problem and wonder if it is something to do with all the settings I messed around with on the other matter although I think those settings are back to where they were. I know that I have updated Flashplayer though.
    I assume that these black boxes should not be there. YouTube runs as it should in Firefox.
    Software rendering didn't make any difference.
    Thanks for your help.

Maybe you are looking for

  • Sorting query in workbook

    Hi Expert. I have a big problem. When I insert a query in a workbook this not sort by keyfigure. I insert a condition ( TOP 20 for example ). If I refresh a query in a workbook this sort correct but if I execute a workbook this is sorted by character

  • ITunes cannot update iPod - unknown error occured.

    and then it says something about (-36) can someone help/explain this for me? xxx iPod Mini   Windows XP  

  • XP Services dont start up; get Error 1068 when try to manually start them.

    Hello, I'm running Win XP Pro SP3 on a Lenovo T42, which was running fine.  When I boot now, only 25 services start up, and I cant get to Internet or run some key apps. When I use Services.MSC to show the services, many Automatic services are not run

  • SPROXY dump

    Hi Experts, While running SPROXY transaction I am getting the below dump. An exception occurred that is explained in detail below. The exception, which is assigned to class 'CX_SRAPI_PRECONDITION_VIOLATED', was not caught in procedure "GET_REP_VERSIO

  • Display messages from PL/SQL?

    I am running some PL/SQL code from Application Builder > Page Definition > Processes After Submit > Source. Can the PL/SQL code be written to display messages (like the Messages attribute does)? I tried using htp.prn, but couldn't make it display. Ho