What is wrong with my non-blocking client?

I have two classes here, my abstract base class SingleSocketHandler, and its concrete subclass SingleSocketHandlerImpl. The subclass implements the protocol and parsing of my server.
For some reason, my server is not receiving the packet my client sends to it, and my client is getitng nothing in return (which makes sense, the server is supposed to respond to the logon packet). I make it non-blocking AFTER logon, so I knwo that this is not a problem. Can you see why my server is not receiving the packet my client writes to it? Did I not configure some setting with the SocketChannel that enables it to write? I am sort of unfamiliar with the java.nio.channels package, so the problem may be related to a setting in the SocketChannel or whatnot that I haven't configured.
NOTE: My chat server works fine with my blocking, multi-threaded test clients. Just not for my non-blocking client. The original problem for my blocking clients was that once the server stopped sending them data, they'd get caught in the in.read() loop and never get out of it. That's why I turned to non-blocking.
Just to remind you, my question is: why isn't my client sending the logon packet AND/OR my server receiving+responding to it?
public abstract class SingleSocketHandler extends Thread
     /* Subclasses must implement these methods
        /* Even though they're not a (public) interface */
     /** <------------------------------- */
          abstract void parse(int num);
          abstract void parseNext();
          abstract void doLogon();
     /** -------------------------------> */
     private SocketChannel sock;
     /* Queues for in and out buffers */
     private LinkedList <ByteBuffer> qIn;
     private LinkedList <ByteBuffer> qOut;
     /* Server info */
     private String hostname;
     private int port;
     /* Flags */
     protected int flags;
          protected final int LOGGED_ON = 0x01;
      * Default Constructor
     protected SingleSocketHandler()
          initQs();
      * Constructor that sets socket info
      * @param hostname
      * @param port
      * @param connect
     protected SingleSocketHandler(String hostname, int port, boolean connect)
          initQs();
          if (connect)
               connect(hostname, port);
          else
               setSocket(hostname, port);
      * Switches off between reading and writing
     protected void handleIO()
          try
               sock.configureBlocking(false);
          } catch (IOException e)
               // TODO
          readInBuffers(1);
          writeOutBuffers(1);
      * Read in specified number of buffers into in queue
      * Call for parsing
      * @param num
     protected void readInBuffers(int num)
          Reporter.println("READING BUFFER");
          for (int i = 0; i < num; i++)
               ByteBuffer header = ByteBuffer.allocate(ProtocolCheck.HEADER_LEN);
               try
                    Reporter.println("Reading header...");
                    sock.read(header);
                    Reporter.println("Read header.");
               } catch (IOException e)
                    // TODO
               /* Only add packet to in queue if it has a valid header */
               if (ProtocolCheck.validHeader(header.array()))
                    Reporter.println("valid header");
                    ByteBuffer packet = ByteBuffer.allocate(ProtocolCheck.findPacketLen(header.array()));
                    packet.put(header);
                    try
                         Reporter.println("Reading rest of packet...");
                         sock.read(packet);
                         Reporter.println("Read packet.");
                    } catch (IOException e)
                         // TODO
                    addInBuffer(packet);
      * Write out specified number of buffers from out queue
      * And remove from out queue
      * @param num
     protected void writeOutBuffers(int num)
          Reporter.println("WRITING BUFFER");
          int i = 0;
          while (qOut.size() > 0 && i < num)
               try
                    sock.write(nextOutBuffer());
                    Reporter.println("Wrote buffer.");
               } catch (IOException e)
                    // TODO
               i++;
      * Returns and removes next buffer from in queue
      * @return ByteBuffer
     protected ByteBuffer nextInBuffer()
          return qIn.remove();
      * Returns and removes next buffer from out queue
      * @return ByteBuffer
     protected ByteBuffer nextOutBuffer()
          return qOut.remove();
      * Sees if there is anohter in buffer
      * @return boolean
     protected boolean hasNextInBuffer()
          return qIn.size() > 0;
      * Sees if there is another out buffer
      * @return ByteBuffer
     protected boolean hasNextOutBuffer()
          return qOut.size() > 0;
      * Add a buffer to in queue
      * @param b
     public void addInBuffer(ByteBuffer b)
          qIn.add(b);
      * Add a buffer to in queue
      * @param b
     public void addInBuffer(Bufferable b)
          qIn.add(b.getByteBuffer());
      * Add a buffer to out queue
      * @param b
     public void addOutBuffer(ByteBuffer b)
          qOut.add(b);
      * Add a buffer to out queue
      * @param b
     public void addOutBuffer(Bufferable b)
          qOut.add(b.getByteBuffer());
      * Instantiate queues
     protected void initQs()
          qIn = new LinkedList <ByteBuffer> ();
          qOut = new LinkedList <ByteBuffer> ();
      * Set socket info then call connect()
      * @param hostname
      * @param port
     public void connect(String hostname, int port)
          setSocket(hostname, port);
          connect();
      * Connect to server
     public void connect()
          try
               sock = SocketChannel.open();
               sock.configureBlocking(true);
               sock.connect(new InetSocketAddress(hostname, port));
               while (!sock.finishConnect())
          } catch (IOException e)
               // TODO
      * Disconnect from server
     public void disconnect()
          try
               sock.close();
          } catch (IOException e)
               // TODO
      * Set socket info without connecting
      * @param hostname
      * @param port
     public void setSocket(String hostname, int port)
          this.hostname = hostname;
          this.port = port;
      * @return state of connection
     public boolean isConnected()
          return (sock != null && sock.isConnected());
      * @return state of being logged on
     public boolean isLoggedOn()
          return (sock != null && (flags & LOGGED_ON) == LOGGED_ON);
public final class SingleSocketHandlerImpl extends SingleSocketHandler
     private UserDatabase <User> users;
      * Constructor that does not set socket info
     public SingleSocketHandlerImpl(UserDatabase <User> users)
          super();
          this.users = users;
      * Constructor that does set socket info
      * @param hostname
      * @param port
      * @param connect
     public SingleSocketHandlerImpl(String hostname, int port, boolean connect, UserDatabase <User> users)
          super(hostname, port, connect);
          this.users = users;
      * Thread's run method (base class extends Thread)
     public void run()
          doLogon();
          while (isConnected() && isLoggedOn())
               handleIO();
      * Parses specified number of buffers from in queue
      * @param num
     /* (non-Javadoc)
      * @see client.SingleSocketHandler#parseNext()
     @Override
     protected void parse(int num)
          Reporter.println("Parse(int num) called.");
          int i = 0;
          while (hasNextInBuffer() && i < num)
               parseNext();
               i++;
     /* (non-Javadoc)
      * @see client.SingleSocketHandler#parseNext()
     @Override
     protected void parseNext()
          Reporter.println("Parsing!");
          if (!hasNextInBuffer())
               Reporter.println("NO IN BUFFER.");
               return;
          /* Get buffer to work with */
          ByteBuffer inBuffer = nextInBuffer();
          byte[] data = inBuffer.array();
          /* Decide what to do based on message ID */
          byte msgid = data[1];
          switch (msgid) {
          case 0x01:
               Reporter.println("0x01 packet.");
               /* Determine success of login */
               byte success = data[3];
               if (success == (byte) 1)
                    flags |= LOGGED_ON;
                    Reporter.println("Logged on!");
               else
                    flags &= ~LOGGED_ON;
                    Reporter.println(" <eChat> Unable to logon. Check the hostname and port settings.");
               break;
          case 0x02:
               /* Parse out text message */
               byte[] txtmsgbytes = new byte[data.length - 3];
               System.arraycopy(data, 3, txtmsgbytes,  0, txtmsgbytes.length);
               String txtmsg = new String(txtmsgbytes);
               Reporter.println(txtmsg);
               break;
          case 0x03:
               System.out.println("Packet ID not yet handled.");
               break;
          case 0x04:
               System.out.println("Packet ID not yet handled.");
               break;
          default:
               System.out.println("validID() method is buggy.");
         * I make it non-blocking after logon sequences
     /* (non-Javadoc)
      * @see client.SingleSocketHandler#doLogon()
     @Override
     protected void doLogon()
          Reporter.println("DOING LOGON!");
          User myUser = users.getCurr();
          addOutBuffer(new ScpLogon(myUser.getUsername(), myUser.getPassword()));
          writeOutBuffers(1);
          readInBuffers(1);
          parseNext();
}

Oh, if this helps, this is what gets output to my GUI. I did a lot of outputs for debugging purposes.
[3:29:27 PM]: Connecting...
[3:29:27 PM]: Connected!
[3:29:27 PM]: Logging on...
[3:29:27 PM]: DOING LOGON!
[3:29:27 PM]: WRITING BUFFER
[3:29:27 PM]: Wrote buffer.
[3:29:27 PM]: READING BUFFER
[3:29:27 PM]: Reading header...

Similar Messages

  • What is wrong with the anonymous  block ??

    when i am trying to execute the block it throws me an error
    can anyone help ??
    SQL> declare
    2 asd number ;
    3 begin
    4 for i in( select tr,count(*) from test group by tr) loop
    5 if i.count(*)<6 then
    6 dbms_output.put_line("hello");
    7 else
    8 dbms_output.put_line("nice");
    9 end if;
    10 end loop;
    11 end ;
    12 /if i.count(*)<6 then
    ERROR at line 5:
    ORA-06550: line 5, column 12:
    PLS-00103: Encountered the symbol "*" when expecting one of the following:
    ( ) - + case mod new not null others <an identifier>
    <a double-quoted delimited-identifier> <a bind variable>
    Message was edited by:
    SHUBH

    SQL> declare
    2 asd number ;
    3 begin
    4 for i in( select tr,count(*) from test group by tr) loop ---- select tr,count(*) cnt
    5 if i.count(*)<6 then ----- if a.cnt < 6 then
    6 dbms_output.put_line("hello"); -- dbms_output.put_line('hello')
    7 else
    8 dbms_output.put_line("nice"); ---double quotes
    9 end if;
    10 end loop;
    11 end ;
    Message was edited by:
    jeneesh
    Message was edited by:
    jeneesh

  • HT1688 My iphone 5 won't charge and it's in perfect condition, I dont drop it and it's not cracked. I tried multiple chargers, none of them are damaged and my outlets work with other things so the problem is my phone. What's wrong with it and what should

    My iphone 5 won't charge and it's in perfect condition, I dont drop it and it's not cracked. I tried multiple chargers, none of them are damaged and my outlets work with other things so the problem is my phone. What's wrong with it and what should I do? Please help me I need my phone for work.

    Make sure there's nothing blocking a contact in the charging port of the phone.

  • I can't figure out what's wrong with this code

    First i want this program to allow me to enter a number with the EasyReader class and depending on the number entered it will show that specific line of this peom:
    One two buckle your shoe
    Three four shut the door
    Five six pick up sticks
    Seven eight lay them straight
    Nine ten this is the end.
    The error message i got was an illegal start of expression. I can't figure out why it is giving me this error because i have if (n = 1) || (n = 2) statements. My code is:
    public class PoemSeventeen
    public static void main(String[] args)
    EasyReader console = new EasyReader();
    System.out.println("Enter a number for the poem (0 to quit): ");
    int n = console.readInt();
    if (n = 1) || (n = 2)
    System.out.println("One, two, buckle your shoe");
    else if (n = 3) || (n = 4)
    System.out.println("Three, four, shut the door");
    else if (n = 5) || (n = 6)
    System.out.println("Five, six, pick up sticks");
    else if (n = 7) || (n = 8)
    System.out.println("Seven, eight, lay them straight");
    else if (n = 9) || (n = 10)
    System.out.println("Nine, ten, this is the end");
    else if (n = 0)
    System.out.println("You may exit now");
    else
    System.out.println("Put in a number between 0 and 10");
    I messed around with a few other thing because i had some weird errors before but now i have narrowed it down to just this 1 error.
    The EasyReader class code:
    // package com.skylit.io;
    import java.io.*;
    * @author Gary Litvin
    * @version 1.2, 5/30/02
    * Written as part of
    * <i>Java Methods: An Introduction to Object-Oriented Programming</i>
    * (Skylight Publishing 2001, ISBN 0-9654853-7-4)
    * and
    * <i>Java Methods AB: Data Structures</i>
    * (Skylight Publishing 2003, ISBN 0-9654853-1-5)
    * EasyReader provides simple methods for reading the console and
    * for opening and reading text files. All exceptions are handled
    * inside the class and are hidden from the user.
    * <xmp>
    * Example:
    * =======
    * EasyReader console = new EasyReader();
    * System.out.print("Enter input file name: ");
    * String fileName = console.readLine();
    * EasyReader inFile = new EasyReader(fileName);
    * if (inFile.bad())
    * System.err.println("Can't open " + fileName);
    * System.exit(1);
    * String firstLine = inFile.readLine();
    * if (!inFile.eof()) // or: if (firstLine != null)
    * System.out.println("The first line is : " + firstLine);
    * System.out.print("Enter the maximum number of integers to read: ");
    * int maxCount = console.readInt();
    * int k, count = 0;
    * while (count < maxCount && !inFile.eof())
    * k = inFile.readInt();
    * if (!inFile.eof())
    * // process or store this number
    * count++;
    * inFile.close(); // optional
    * System.out.println(count + " numbers read");
    * </xmp>
    public class EasyReader
    protected String myFileName;
    protected BufferedReader myInFile;
    protected int myErrorFlags = 0;
    protected static final int OPENERROR = 0x0001;
    protected static final int CLOSEERROR = 0x0002;
    protected static final int READERROR = 0x0004;
    protected static final int EOF = 0x0100;
    * Constructor. Prepares console (System.in) for reading
    public EasyReader()
    myFileName = null;
    myErrorFlags = 0;
    myInFile = new BufferedReader(
    new InputStreamReader(System.in), 128);
    * Constructor. opens a file for reading
    * @param fileName the name or pathname of the file
    public EasyReader(String fileName)
    myFileName = fileName;
    myErrorFlags = 0;
    try
    myInFile = new BufferedReader(new FileReader(fileName), 1024);
    catch (FileNotFoundException e)
    myErrorFlags |= OPENERROR;
    myFileName = null;
    * Closes the file
    public void close()
    if (myFileName == null)
    return;
    try
    myInFile.close();
    catch (IOException e)
    System.err.println("Error closing " + myFileName + "\n");
    myErrorFlags |= CLOSEERROR;
    * Checks the status of the file
    * @return true if en error occurred opening or reading the file,
    * false otherwise
    public boolean bad()
    return myErrorFlags != 0;
    * Checks the EOF status of the file
    * @return true if EOF was encountered in the previous read
    * operation, false otherwise
    public boolean eof()
    return (myErrorFlags & EOF) != 0;
    private boolean ready() throws IOException
    return myFileName == null || myInFile.ready();
    * Reads the next character from a file (any character including
    * a space or a newline character).
    * @return character read or <code>null</code> character
    * (Unicode 0) if trying to read beyond the EOF
    public char readChar()
    char ch = '\u0000';
    try
    if (ready())
    ch = (char)myInFile.read();
    catch (IOException e)
    if (myFileName != null)
    System.err.println("Error reading " + myFileName + "\n");
    myErrorFlags |= READERROR;
    if (ch == '\u0000')
    myErrorFlags |= EOF;
    return ch;
    * Reads from the current position in the file up to and including
    * the next newline character. The newline character is thrown away
    * @return the read string (excluding the newline character) or
    * null if trying to read beyond the EOF
    public String readLine()
    String s = null;
    try
    s = myInFile.readLine();
    catch (IOException e)
    if (myFileName != null)
    System.err.println("Error reading " + myFileName + "\n");
    myErrorFlags |= READERROR;
    if (s == null)
    myErrorFlags |= EOF;
    return s;
    * Skips whitespace and reads the next word (a string of consecutive
    * non-whitespace characters (up to but excluding the next space,
    * newline, etc.)
    * @return the read string or null if trying to read beyond the EOF
    public String readWord()
    StringBuffer buffer = new StringBuffer(128);
    char ch = ' ';
    int count = 0;
    String s = null;
    try
    while (ready() && Character.isWhitespace(ch))
    ch = (char)myInFile.read();
    while (ready() && !Character.isWhitespace(ch))
    count++;
    buffer.append(ch);
    myInFile.mark(1);
    ch = (char)myInFile.read();
    if (count > 0)
    myInFile.reset();
    s = buffer.toString();
    else
    myErrorFlags |= EOF;
    catch (IOException e)
    if (myFileName != null)
    System.err.println("Error reading " + myFileName + "\n");
    myErrorFlags |= READERROR;
    return s;
    * Reads the next integer (without validating its format)
    * @return the integer read or 0 if trying to read beyond the EOF
    public int readInt()
    String s = readWord();
    if (s != null)
    return Integer.parseInt(s);
    else
    return 0;
    * Reads the next double (without validating its format)
    * @return the number read or 0 if trying to read beyond the EOF
    public double readDouble()
    String s = readWord();
    if (s != null)
    return Double.parseDouble(s);
    // in Java 1, use: return Double.valueOf(s).doubleValue();
    else
    return 0.0;
    Can anybody please tell me what's wrong with this code? Thanks

    String[] message = {
        "One, two, buckle your shoe",
        "One, two, buckle your shoe",
        "Three, four, shut the door",
        "Three, four, shut the door",
        "Five, six, pick up sticks",
        "Five, six, pick up sticks",
        "Seven, eight, lay them straight",
        "Seven, eight, lay them straight",
        "Nine, ten, this is the end",
        "Nine, ten, this is the end"
    if(n>0)
        System.out.println(message[n]);
    else
        System.exit(0);

  • What is wrong with as3

    this is not a question about 'how i do X'. is rather a 'discussion' (flame or whatever, but to defend or argue about aspects, not people) about 'what is wrong with as3' and what aspects whould be taken into consideration for updates. right now i am using as3, and since i paid for this license, i choose this tool over some alternatives and i am using it to do stuff for other people who pay me to do it, i think it can be helpful for all of us if some actions are started in the right direction. i have already posted about 'all people in adobe are dumbasses that do not know how to make a scripting tool and are messing up my work', but i was pissed at the time (i still am pissed) but i believe this is not the right aproach. instead, if this goes to the right people in adobe, we all may get something in the future, like better and easier todo apps and web presentations.
    pre: not only about the as3 specification, but COMPLY with the specification that you set. for example, some time ago there were problems with matrix transforms. this was corrected later with a patch. but this means it is not even doing what is is supposed to do
    1. scriptable masks and movement, sprites and child sprites: there is a sprite with a mask, the mask is a shape drawn via script, something like
    somemask=new shape();
    somemask.graphics.beginfill();
    (...etc)
    somesprite.mask=somemask;
    just like that. now add some child sprites to 'somesprite', and make 'somesprite' move, scale and rotate. there you will have something like a kaleidoscope, but not what you expected to do with your script. as the child sprites move in the parent mask, you will see that the child sprites appear or dissapear kind of randomly, and if the child sprites are textfields, it may be that the text is rendered outside the mask, or partially rendered outside the mask (as in only part of the text), rendered with the wrongf rotation or in the wrong place. some child sprites are clipped correctly, some dissapear totally when only a part should dissapear (clipped) etc.
    way around: have not tried it yet, but i have the impression that bitmaps have different criteria for clipping, so i am thinking of trying this: appli an empty filter (a filter with params so it does not have any effect on the sprite or in the textfield) so the sprite is rendered as bitmap before doing anything else with it. as i said, i have not done it yet, but it may be a way around this problem, to avoid all this inconsistency with clipping
    1-b. inconsistency between hierarchy and coordinates, specially masks: you apply a mask to a sprite, yet the sprite has a set of coordinates (so 'x' in the sprite means an x relative to its container), yet the mask applied to the very same sprite, as another reference as reference for coordinates (like the stage)
    2. painting via script: in any other languaje, in any other situation, something like:
    beginFill(params);
    (...stuff 1)
    endFill();
    beginFill(params);
    (...stuff 2)
    endFill();
    (...etc)
    means: render region of block 1, then render region of block 2 etc, and no matter what, it should be consistent, since there is noplace for ambiguity. if you read it, you may think what that means, even if you dont run it you may have an idea of the picture you want to draw, but not with as3. as3 somehow manages to screw something that simple, and mixes all the blocks, and somehow uses the boundaries of one block as boundaries for other block. is like all blocks are dumped into whatever, and then uses all lines defined into it as boundaries for a unique block. it changes all boundaries and generates inconsistency between what is shown and redraw regions of the resulting picture, like lines that go to the end of the screen and then dont go away in the next frames, even tough the beginfill endfill block should prevent it
    3. event flow: i dont know what was the policy behind as3 event flow design. it is in no way similar or an extension to previous event flow, neither with any event flow in any other plattform. i dont know how most people start with as3; in my case, i unpacked, installed and when i tried to do something with what i already knew i could not, so i started reading the as3 docs, and since is like 800 pages long, i just read the basics and the rest i would 'wing it'. in the part of the event flow, there was something about bubbling and stuff, it was not clear at all and when i tried to do what is was said in the documentation (like preventing events to 'bubble', as is called in the documentation), i could not see any effect but i could see it was a mess. flash is not the only thing out there to work with pictures or to work with mouse events, but is the only one that deals with things like 'target' and 'currentTarget'. my first experience on needing this was when i was dealing with my own event handlers (so the only thing that had control over mouse was the stage, and i would admin everything via script). there were events generated everywhere, the stage got events that were not genrated directly over the stage, but got there not with stage coordinates but the coordinates relative to the sprite that generated the event. so if i hover the mopuse over the stage, and the stage has some things on it how does it work? i get multiple event calls, like it was hovering multiple times over the stage in a single frame, but in each call with different coordinates? and what if i set all child sprites as mouseenabled=false or compare like 'if (event.target != event.currenttarget)', what if i move the mouse over a child, does it prevent the move mouse event at all? or does it filter only the event call with only stage coordinates? in my case, every time i move over another clip (with mouseenabled = true), the stage gets it as 'mouse up', even tough there was never a mouse release, what the hell? do even the people at adobe know how to handle events with their own tool when they require it? why does an event 'bubble' when i have not specifically tell it to do it? mi thought is that this event flow was very poorly conceived, and tough the intention may have been that there were different cases and it shopuld cover all cases, they actually introduced new problems that were not present in traditional ways to handle it, and it is neither the easier way to handle things, and this way, a very simple problem turns into a very ugly thing because it must handle things that were not neccesary to handle, or were implicit in other situations.
    4. legacy: since as3, all interaction is different, and if you want to do things in the new plattform, using the new features, what you already knew just goes to the garbage can. when a new tool arrives, it should be an extension to previous tools (which is a reason to update instead of just buying a new tool from a different vendor). if everything i had or knew just means nothing from now on, then i can not say 'i know flash script', and my previous knowledge gives me no advantage when aproaching the new version. as3 is a new aproach that requires doc reading and stuff, even if you knew something about previous as specifications or other oo languajes. if you decide to change things from now on, like the things mentioned in this post, instead of just throwing away everything the users alerady knew about the tool, do like in java releases, they mark some things as 'deprecated', they keep working as they should, give a warning, but also a message saying this feature is deprecated, we suggest you use this library instead.
    5. lack of previous functionality: if you 'update' something, it meand all previos functionality is still there (probably improved, but not with bugs if it was working fine), plus something else. now it seems backwards, there are some things that could be done in previous versions but not in this one, like 'duplicatemovieclip'
    6. inconsistency with scripting/programming paradigms: (ok, fancy work, but fits perfectly here): as3 proposed ways to handle things, but the people who designed it got 'too creative', and they did something that is not consistent neither with previous versions of as or with other languajes. the documentations is full of things like 'it looks like x languaje or languaje family, but instead of using XXX word, you must use YYY'. great, what is this? namespaces 'work like', but 'differently' for example from java, .net, .c. its got the idea that a namespace means a grouped functionality but there are rules about where should be placed the file (ok, java has this also, .net takes care of it automatically if all files are registered in the project), but what you got is a mess that 'if you know other languajes you got the general idea, but nonetheless, even if you knew this or previosu versions of as, you still have to read whatever we decided arbitrarily just to be different'. namespaces, event handling, vars definition which is not like previous scripting neither like fully typed languajes.. is just a mess.
    7. lack of scripting and graphics integration: unlike flash and adobe tools that just got on the graphics side leaving all the scripting integratuion apart, most tools from other vendors integrate very well interacton with what is on the screen. the script editor: very poor. autocompletion? a drop down list that does not heklp at all, appears in the wrong places, and when you need it to go, it does not go (so if i want to move away from the uncalled drop down list, i have to click somewhere else, making developement slowewr instead of helping, so the drop down list does not capture all events when i dont want to). in other ides you double click somewhere and it will go to the part of code relevant to that event or whatever. for example microsoft tools, ok i am antimicrosoft, and one of the reasons was that when windows 95 got to market proposing itself as the ONLY pc os you could use if you wanted to keep useing the apps you already had, it was a lousy product full of flaws but you had to keep using it because you had no choice. what is so different from what is happening with flash just now? yet the ide of c# is awesome, works very well and seems reliable.
    adobe people: not all user are designers that just make pretty pictures. if it is not intended for scripting then why is it there. and if there are corrections to be done, they should patch all versions, not only the last one. previous version users also paid for their versions.

    Well, there is no point in arguing.
    I personally believe AS3 does exactly what it promises to do within limits (read: reasonable limits) of ECMA type of language. And sometimes it doesn’t do what we expect it to for it cannot possibly emulate everyone’s thinking process. The task, I guess, is to learn to think in terms of AS3 – not to try to make AS3 think like us. No language covers all the grounds. And no, it is not Java - with no negative or positive connotation. It is what it is. Period. I just hope that AS5 will be more Java like.
    You are right about the fact that it is not necessary to know all the aspects of language in order to perform the majority of tasks. But it is paramount to have a clear idea about such fundamental concepts as display list model and events. For instance, depth swap has no meaning in terms of AS3 because display list object stacking is controlled automatically and there is no need for all these jumping through hoops one has to perform in order to control depth in AS2. There no more gaps in depths and one always know where to find things.
    Similarly, there is no point in having duplicateMovieClip method. More conventional OOP ways of object instantiation accomplishes just that and much more. Just because OOP object instantiation needs to be learned doesn’t mean past hacks have place in modern times. duplicateMovieClip is a horse carriage standing next to SUV. What one should choose to travel?
    Events are implemented to the tee in the context of ECMA specifications. I consider Events model as very solid, it works great (exactly as expected) and never failed me. True, it takes time to get used to it. But what doesn’t?
    By the way, speaking about events, contrary to believe in Adobe’s inconsideration to their following. Events are implemented with weakly reference set to false although it would be better to have it set to true. I think this is because there are smart and considerate people out there who knew how difficult it would be for programming novices to deal with lost listeners.
    I think AS3 is million times better than AS2. And one of the reasons it came out this way is that Adobe made a very brave and wise decision to break totally loose from AS2’s inherent crap. They have created a totally new and very solid language. If they had tried to make it backward compatible – it would be a huge screw up, similar to how our friends at Microsoft are prostituting VB and VBA – extremely irritating approach IMHO.
    Also, Flash legacy issues shouldn’t be overlooked. Flash did not start as a platform for programmers. Entire timeline concept in many ways is not compatible with the best OOP practices and advancements. I think for anyone who is used to writing classes the very fact of coding on timeline sounds awkward. It feels like a hack (and AS2 IS a pile of hacks) – the same things can be nicely packaged into classes and scale indefinitely. As such I wouldn’t expect Adobe to waste time on hacking timeline concept issues by making smarter editor. They have made a new one – FlexBuilder – instead. Serious programmers realize very soon that Flash IDE is not for developing industrial strength applications anyway. So, why bother with channeling great minds into polishing path to the dead end?
    I would like to state that all this is coming form a person who knew Flash when there was no AS at all. And I applaud every new generation of this wonderful tool.
    I believe Adobe does a great job making transition from timeline paradigm to total OOP venue as smooth as possible. And no, they don’t leave their devoted followers behind contrary to many claims. They are working on making developing Flash applications as easy as possible for people of all walks. Welcome Catalyst!
    Of course there is not enough information about AS3 capabilities and features. But, on the other hand, I don’t know any area of human kind activities that does.

  • What's wrong with my iPhone 5c?

    Last night I was on my phone until it died. It was working perfectly fine as usual. Then this morning when I went to charge it, it turned on, but the screen looked distorted and the touch was not working. The only thing I can do is turn it on and off. I took it to an iPhone repair place to see what was wrong and if it can be fixed. The guy checked it out to see if there was any type of damage to it, which there was none. He then tried to put a different screen on it but the screens he tried also were distorted and the touch did not work. Since it couldn't be fixed, I went back home and tried to plug it into my iTunes account on my computer to see if I can somehow try to fix it from my computer by restoring it or something else. However, when I plugged it into my computer, it says that iTunes cannot connect to my iPhone because it is locked with a passcode. I don't even have a passcode on my phone. I have no idea what has happened to my phone. I have had it for about 9 months and never had an issue with it before. If anyone can help me out or at least give me an idea of what is wrong with it, that would be greatly appreciated. Thanks

    Try the usual steps: restart, reset, restore.
    http://support.apple.com/kb/HT1430
    http://support.apple.com/kb/HT1414
    If you try restoring from a backup and that doesn't fix the problem, try restoring to factory settings and, if the problem goes away, then synching your apps. You'll lose the app data and settings, but if the problem is due to a corrupt cache or settings file, that should cure it.
    If none of that helps, your device may have developed a hardware fault and will need to be take or sent to Apple.
    Regards.

  • What's wrong with my XPath statement using dom4j?

    I'm pretty new to XML. However, I did pick up a book and I'm pretty much through it. I got a copy of dom4j and I created a sample XML file. I'm able to parse the data and find out the child elements of root but I'm having problems with using XPath no matter what I do. Here's my code:
    import org.dom4j.*;
    import org.dom4j.io.*;
    import java.util.*;
    import java.io.*;
    public class XMLACL {
      org.dom4j.Document doc;
      org.dom4j.Element root;
      XMLACL(String x) {
        String tempFile = System.getProperty("user.dir") + "/winsudo.xml";
        tempFile = tempFile.replace('\\', '/');
        SAXReader xmlReader = new SAXReader();
        try {
          doc = xmlReader.read(tempFile);
        catch (Exception e) {}
        root = doc.getRootElement();
        //treeWalk();
        //iterateRootChildren("grant");
        XPath xpathSelector = DocumentHelper.createXPath("/grant[@prompt='no']");  
        List results = xpathSelector.selectNodes(doc);
        for (Iterator iter = results.iterator(); iter.hasNext(); ) {
         Element element = (Element) iter.next();
          System.out.println(element.getName());
    }And here's my XML:
    <?xml version="1.0" encoding="UTF-8"?>
    <config>
         <alias name="admin">
              <user>geneanthony</user>
              <user>mike</user>
              <user>rob</user>
         </alias>
         <grant prompt="no" runas="root" service="no">
              <user>geneanthony</user>
              <command>!ALL</command>
         </grant>
         <grant>
              <user>geneanthony</user>
              <group>users</group>
              <command>C:/Program Files/Mozilla Firefox/firefox.exe</command>
         </grant>
         <grant>
              <alias>admin</alias>
              <command>!Panels</command>
         </grant>
    </config>I'm currently getting this error:
    C:\Borland\JBuilder2005\jdk1.4\bin\javaw -classpath "C:\code\java\WinSudo\classes;C:\Borland\JBuilder2005\jdk1.4\jre\javaws\javaws.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\charsets.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\dnsns.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\ldapsec.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\localedata.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\sunjce_provider.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\im\indicim.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\im\thaiim.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\jce.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\jsse.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\plugin.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\rt.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\sunrsasign.jar;C:\Borland\JBuilder2005\jdk1.4\lib\dt.jar;C:\Borland\JBuilder2005\jdk1.4\lib\htmlconverter.jar;C:\Borland\JBuilder2005\jdk1.4\lib\tools.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\jRegistryKey.jar;C:\Borland\JBuilder2005\jdk1.4\lib\hsqldb.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\dom4j-1.6.1.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\syntax.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\IzPack-install-3.7.2.jar" winsudo.Main
    java.lang.NoClassDefFoundError: org/jaxen/JaxenException
         at org.dom4j.DocumentFactory.createXPath(DocumentFactory.java:230)
         at org.dom4j.DocumentHelper.createXPath(DocumentHelper.java:121)
         at winsudo.XMLACL.<init>(XMLACL.java:26)
         at winsudo.Main.main(Main.java:15)
    Exception in thread "main"
    Can someone tell me what's wrong with my code. None of the samples I've seen came with the XML files so I don't know if I when I start the XPATH I need to use / for the root element, or // or a forward slash and the root name. Can I please get some help!

    Thank you! I didn't haven Jaxen I thought everything was in the package and I must have missed it in the tutorials. That resolved the dropouts and I think I'm good know. I couldn't think for the life of me what I was doing wrong!

  • What's Wrong with My SLP?

    I have posted for login errors:
    1. LOGIN-LGNWNT32.DLL-430: The following drive mapping operation could
    not
    be completed.
    [J:=\\ABRAM\BOSS\MAS90\]
    The error code was 8819.
    2. Login-LGNWT32.dll-470: The specified drive mapping is an invalid
    path.
    This leads to a NW6.0SP5 path that has worked for years.
    and several others in the Client forum and in the Admi & tools forum with
    no success. So I thought perhaps i would come here for advice. Two
    netware servers NW6.5SP3 and the DA is NW6.0SP5. All workstations
    involved are XP Pro SP2, most have 4.91SP@ client. Many now have
    Patch "C" plus.
    The following is info from slpinfo /a on my workstation, does anyone see
    anything wrong with it?
    *** Novell Client for Windows NT ***
    *** Service Location Diagnostics ***
    SLP Version: 4.91.3.0
    SLP Start Time: 4:15:13pm 10/3/2006
    Last I/O: 8:04:42am 10/4/2006
    Total Packets: Out: 71 In: 41
    Total Bytes: Out: 5670 In: 1127
    SLP Operational Parameters Values
    Static Scopes YES
    Static Directory Agents NO
    Active Discovery YES
    Use Broadcast for SLP Multicast NO
    Use DHCP for SLP YES
    SLP Maximum Transmission Unit 1400 bytes
    SLP Multicast Radius 4 hops
    SLP Timers Values
    Give Up on Requests to SAs 15 seconds
    Close Idle TCP Connections 5 minutes
    Cache SLP Replies 1 minutes
    SLP Default Registration Lifetime 10800 seconds
    Wait Before Giving Up on DA 5 seconds
    Wait Before Registering on Passive DA 1-2 seconds
    Scope List Source(s)
    scope1 CNFG,DHCP
    DA IP Address Source(s) State Version Local Interface Scope(s)
    10.16.148.21 DHCP UP SLPV2 10.16.148.42 Scope1
    Local Interface 10.16.148.42
    Operational State: UP
    Operating Mode(s): MCAST,STATIC-DA,DHCP-MANDATORY-SCOPES
    SA/UA Scopes: scope1
    Last I/O: 8:04:42am 10/4/2006
    Total Packets: Out: 71 In: 41
    Total Bytes: Out: 5670 In: 1127
    Last Addr Out: 10.16.148.21
    Last Addr In: 10.16.148.21
    Peter

    Andrew:
    I only use one container except for the Admin object.
    Before I deleted everything saturday in nwadmn32 I had an NLS_LSP_PUFF
    (My 6.5 server) and a NLSP_NLS_ABRAM (My 6.0 server). Now I only have
    the NW6.0 server NLSP_NLS_ABRAM (and the host servername is ABRAM.LORCH &
    search to the root of the tree)??
    Licenses (non MLA) being consumed are 63 of 75 for the NW6.0 and 63 of
    the 85 6.5.
    I only loaded "Setupnls" on the master server the NW6.0 as it didn't say
    in TID 10067212 to load it on all servers. Should I load it on the NW6.5
    server to create that object: NLS_LSP_PUFF?
    > You should have an NLS_LSP object for each 6.5 server, in its container.
    > A 6.5 server license object should be in the same container as the
    > server object(s), or above that in the tree, and not assigned to any
    > server. If non-MLA, a 6.5 user (conn) license needs to be in the same
    > container as the user objects, or above that in the tree, and not
    > assigned to any server. Make sure the two license types are successfully
    > being consumed.
    > --
    > Andrew C Taubman
    > Novell Support Forums Volunteer SysOp
    > http://support.novell.com/forums
    > (Sorry, support is not provided via e-mail)
    >
    > Opinions expressed above are not
    > necessarily those of Novell Inc.

  • What's wrong with this?HELP

    What's wrong with this piece of code:
    clickhereButton.addActionListener(this);
         ^
    That's my button's name.
    Everytime I try to complie the .java file with this code in it it says:
    Identifier expected: clickhereButton.addActionListener(this);
    ^
    Please help.

    You must have that code in a method or an initilizer block... try moving it to eg. the constructor.

  • What's wrong with MyEJB? please!!

    What's wrong with my client code for lookup CMP EJB?
    i deployed a simple CMP EJB2.0 on j2ee server.
    JNDI Names
    Application
    component Type Component JNDI Name
    EJB StudentEJB myEJB
    files.Application.test.Ejb1
    General
    JAR File Name:ejb-jar-ic.jar JAR Display Name:Ejb1
    JNDI Names
    EJBs
    Component JNDI Name
    StudentEJB myEJB
    References
    Ref.Type Referenced By Reference Name JNDI Name
    Resource Ejb1[CMP] jdbc/Cloudscape
    javax.naming.NameNotFoundException: No object bound for java:comp/env
    at com.sun.enterprise.naming.java.javaURLContext.lookup(javaURLContext.java:116)
    at javax.naming.InitialContext.lookup(InitialContext.java:347)
    at client.testejb.main(testejb.java:14)
    testejb.java:
    try {
    Context ic = new InitialContext();
    Context myEnv = (Context)ic.lookup("java:comp/env");
    Object objref = myEnv.lookup("MyEJB");
    StudentHome home = (StudentHome)PortableRemoteObject.narrow(objref,com.test.StudentHome.class);
    Student stu = home.create("123400001111","Satori","Asfar");
    Student stu = home.findByPrimaryKey("12340001111");
    System.out.println(stu.getFirstName());
    } catch (Exception ex) {
    ex.printStackTrace();
    Could you tell me something about myEJB?
    Thanks in advance.

    Looks like your JNDI names do not match, you have myEJB
    in the description and MyEJB in the lookup. Is this just a typo for the example?

  • What's wrong with my iMac G3?

    What's wrong with my iMac G3?
    Ok. I'm going to attempt to be as thorough as possible on this one. When I first got my iMac G3, it was stated to be non working. I got it from freecycle. The lady who provided my with the machine said that "one day it just wouldn't turn on". So, I still took it home. After I set it up, it turned on and booted into Mac OS 8.6 no problem. After about two days of using it, I turned it on again and it said something about "finder could not be started because draglib-setdragimage (or something like that) could not be found." It gave me a restart button, which I clicked. After about a day of messing around with it, I found that holding the shift key to disable extensions would allow it to boot properly. I decided to re-install 8.6. However, the cd was not recognized (perhaps because it was an ISO, not DMG). So, I proceeded to install panther. The first time it booted with the panther cd (and ever since), there has been no startup chime. It also will only get to the apple logo, without the spinning thing, where it freezes. Only the button on the keyboard works to start it up. And, occasionally it will boot into open firmware. I don't know what to do from here. I can still boot into os 8.6 with extensions off.
    Help?
    Thanks so much in advance,
    -Don

    And, occasionally it will boot into open firmware.
    Seems odd to me. All by itself? Did you press any keys?
    I don't know what to do from here. I can still boot into os 8.6 with extensions off.
    Most likely, you have a bad extension. They are in a folder called extensions What you need to do is create a new folder and move extensions to this folder. Move extensions to the folder in groups. try 1/2 first. Move back & forth between folders. See which extension is causing the problem. command + n to create a new folder
    verify that you have the correct firmware.
    Figuring out what level of firmware you have?
    1) Mac OS 9.x or 8.x, you need to use the Apple System Profiler.
    Apple -> Apple System Profiler
    2) Mac OS X, use the System Profiler.
    Apple -> About This Mac
    click on the More Info... tab
    click on Hardware
    read the Boot ROM Version
    3) Open Firmware, boot into Open Firmware.
    Power on your iMac while holding down commandoption+of
    The first output line contains the firmware level. Mine reads:
    Apple PowerMac4,1 4.1.9f1 BootRom built on 09/14/01 at 13.18.04
    Copyright 1994-2001 Apple Computer Inc.
    The 4.1.9f1 will be different on a 333 machine.
    What firmware do you need?
    http://docs.info.apple.com/article.html?artnum=86117

  • What's wrong with my select?

    Hi! What's wrong with my select? The message I got is:
    "("has no closing ")"
    SELECT SINGLE iclclaim~claim
         INTO os_namir_stabi-claim
         FROM ( ( iclclaim
        INNER JOIN iclpoloau
          ON iclpoloauclaim = iclclaimclaim
        CLIENT specified
         WHERE iclclaim~client   = c_client1
         AND   iclpoloau~client   = c_client1
         AND iclpoloau~plateno = is_namir_stabi-plateno
         AND iclclaim~dateloss = is_namir_stabi-dateloss )
         INNER JOIN iclpartocc
          ON iclpartoccclaim = iclpoloauclaim
        CLIENT specified
         WHERE iclpartocc~client   = c_client1
           AND iclpartocc~bpartner = gv_bpartner ) .

    Please try it like this.  I'm pretty sure that you can not format your inner join with multiple where clauses.
    SELECT SINGLE iclclaim~claim
    INTO os_namir_stabi-claim
    FROM  iclclaim
          INNER JOIN iclpoloau
            ON iclpoloau~claim = iclclaim~claim
         INNER JOIN iclpartocc
            ON iclpartocc~claim = iclpoloau~claim
         WHERE iclclaim~client = c_client1
           AND iclclaim~dateloss = is_namir_stabi-dateloss
           AND iclpoloau~client = c_client1
           AND iclpoloau~plateno = is_namir_stabi-plateno
           and iclpartocc~client = c_client1
           AND iclpartocc~bpartner = gv_bpartner  .
    Regards,
    Rich Heilman

  • What's wrong with 8.1.7 export utility

    I was trying to export an Oracle 8.1.6 database by using export
    utility from Oracle 8.1.7 client. But I get a lot of errors.
    When I try to export from Oracle 8.1.6 client everything goes
    smoothly.
    What's wrong with export utility in Oracle 8.1.7 client??
    regards,
    Evan

    It is because for each new version there is more and different
    things that need to be exported so the x+1 exp utility expects
    the new things to be there and fails if they are not.
    The reason I suspect Oracle did this is that most exports are
    done on the server. It is not generaly a good idea to run exp
    across a network for performance reasons (ie you move the entire
    database). As most exports are done on the server the
    comapability is not an issue.most bullet proof solution.

  • Script debug - what's wrong with this picture?

    I wrote a script a while back which shrinks and saves out images in png format. Nothing fancy. It works fine. I am happy. However yesterday, I discovered that it baulked at a certain file. Initally I thought it was a problem with the script (and that may be the case - i'm still new to scripting) but it worked with every other image I've thrown at it. Ergo it must be something wrong with the image.
    Now here's the thing: I also noticed that adding a new layer underneath the existing single layer and then merging down allowed the script to work fine. So what is wrong with the inital image before it's had a new layer added and merged? Or what does adding and merging do to an image do to fix as I can't see any visual difference?
    Here is the bare bones of the script:
    // Set filePath and fileName to source path
    filePath = "C:\\temp" + "/" + 'debugme' + '.png';
    // save out the image
    var pngFile = new File(filePath);
    pngSaveOptions = new PNGSaveOptions();
    pngSaveOptions.embedColorProfile = true;
    pngSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
    pngSaveOptions.matte = MatteType.NONE;
    pngSaveOptions.quality = 1;
    pngSaveOptions.PNG8 = false;
    pngSaveOptions.transparency = true;
    activeDocument.saveAs(pngFile, pngSaveOptions, false, Extension.LOWERCASE);
    I would include the two psds (one that works and the one that doesn't) only this forum doesn''t seem to allow .psd files - and saving them out in another format is the whole problem.

    A quick test and this resolved the issue for me…
    #target photoshop
    filePath = '~/Desktop/Testing.png';
    // save out the image
    var pngFile = new File(filePath);
    pngSaveOptions = new PNGSaveOptions();
    pngSaveOptions.embedColorProfile = true;
    pngSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
    pngSaveOptions.matte = MatteType.NONE;
    pngSaveOptions.quality = 1;
    pngSaveOptions.PNG8 = false;
    pngSaveOptions.transparency = true;
    clearLayerStyle();
    activeDocument.saveAs(pngFile, pngSaveOptions, false, Extension.LOWERCASE);
    function clearLayerStyle() {
         function cTID(s) { return app.charIDToTypeID(s); };
         function sTID(s) { return app.stringIDToTypeID(s); };
              var desc01 = new ActionDescriptor();
              var ref01 = new ActionReference();
              ref01.putEnumerated( cTID('Lyr '), cTID('Ordn'), cTID('Trgt') );
              desc01.putReference( cTID('null'), ref01 );
         executeAction( sTID('disableLayerStyle'), desc01, DialogModes.NO );

  • What is wrong with the idl code generated by packager.exe?

    Hello everybody,
    I am trying to figure out what is wrong with the idl code generated by packager.exe. In the evaluation for the bug posted at http://developer.java.sun.com/developer/bugParade/bugs/4964563.html it says that the IDispatch interface is not exposed correctly and thus early binding of java objects is not possible using the current activex bridge implementation.
    As I am no idl expert I have no idea what that means. However, I managed to dig out the idl code generated by packager.exe for the following example bean:
    package test;
    public class MyBean
         protected int value;
         public MyBean()
         public void setMyValue(int _value)
              value = _value;
         public int getMyValue()
              return value;
         public MyBean getSelfReference()
              return this;
    }The corresponding idl code generated by packager.exe is
    uuid(81B0BF63-2A55-11D8-A73E-000475EBF021),
    version(1.0)
    library MyBean
    importlib("Stdole2.tlb");
    dispinterface MyBeanSource;
    dispinterface MyBeanDispatch;
    uuid(81B0BF64-2A55-11D8-A73E-000475EBF021),
    version(1.0)
    dispinterface MyBeanSource {
    properties:
    methods:
    uuid(81B0BF65-2A55-11D8-A73E-000475EBF021),
    version(1.0)
    dispinterface MyBeanDispatch {
    properties:
    [id(4097)]
    int myValue;
    methods:
    [id(32768)]
    VARIANT_BOOL equals(IDispatch* arg0);
    [id(32769)]
    IDispatch* getClass();
    [id(32770)]
    int getMyValue();
    [id(32771)]
    IDispatch* getSelfReference();
    [id(32772)]
    int hashCode();
    [id(32773)]
    void notify();
    [id(32774)]
    void notifyAll();
    [id(32775)]
    void setMyValue(int arg0);
    [id(32776)]
    BSTR toString();
    [id(32779)]
    VARIANT wait([optional] VARIANT var0, [optional] VARIANT var1);
    uuid(81B0BF62-2A55-11D8-A73E-000475EBF021),
    version(1.0)
    coclass MyBean {
    [default, source] dispinterface MyBeanSource;
    [default] dispinterface MyBeanDispatch;
    };Does anyone know what is wrong with this code and maybe how to fix the idl code? Generating the dll should then be easy (I already tried several variations of the idl code but as my idl knowledge is limited it didn't really do what I wanted).

    Then the question is why it does work with visual controls (even if you set them to non-visible)?

Maybe you are looking for

  • Open doc url question

    Hi, I have a requirement wherein I need to access some reports using the URL. I need to test the reports which open through a url as it needs to get embedded to the intranet. When I run the below url thorugh the browser I get the following error http

  • Substitution not working properly

    Hi, I have extended a VO and substituted. I could able to successfully add a new column in the LOV region from the VO. But when I tried to map the newly added column in the LOV region with the parent region item, its not working properly. There is no

  • Problem with OC4j 10G 10g (10.1.2.0.2)

    Hi I have a quite strange problem. We are migrating one of our apllication from Oracle 10g Application Server 9.0.4 to Oracle 10g Application Server 10.1.2.0.2 For this first we build the application ear file using JDK 1.4.2_06.Then we deployed it in

  • Changing database version in the application

    Hi The production site would be changing its database version from oracle 8.1.5 to oracle 8.1.6. Could I please have pointers to documents telling me the changes in the versions; or your expert comments; so that I would know the differences and the e

  • IPad is not showing TV Show titles in Video

    This is a new one for me. I've imported some MP4 files into iTunes that I want to be seen in iTunes and iPad as TV Shows. For all the MP4 entries in question I have set in Get Info: - Options | Media Kind: TV Show - Video | Show, Season Number, Episo