Validated by Amaya

Richard G Baldwin (512) 223-4758, NRG Room 4238, Baldwin@DickBaldwin.com, http://www.austincc.edu/baldwin

INEW2338 Advanced Java Programming

Spring 2010

Online Bulletin Board

Revised 02/15/10


Note:  The official web site for this course is located here.


This is the web page that will be used for communicating information from Professor Baldwin to students enrolled in this course.

NOTE: The program named Blackboard will not be used for communication with students except in those cases where confidentiality is required, such as the reporting of grades to students.  Check this area daily for messages from Professor Baldwin to all students enrolled in the course.

New messages are added at the bottom of the list with the date that they were added.  Therefore, after reading all of the messages once, each time you check, you can go straight to the bottom to read the new messages.

Also, some of the messages have been repeated from previous semesters due simply to the fact that the information contained therein will be useful during this semester.


01/09/10 Upgrade to JDK version 1.5
In the Spring 2005 semester, we began using Sun's JDK 1.5 (and later upgraded to JDK 1.6).  Much of the material for this course was written prior to the release of JDK 1.5.  I have performed spot checks to confirm that the study guides, the assignments, and the exams are all compatible with JDK 1.5 and JDK 6.0.  With the exception of some compiler warnings caused by new features in JDK 1.5, I haven't found any problems.  However, it is possible that I may have missed something.

When you compile source code used in this course, you may get compiler warnings as a result of new features that were incorporated in JDK 1.5.  This is particularly true if the source code uses the Java Collections Framework.

As of this writing, however, I haven't discovered any "code breakers" in the new features in JDK 1.5 as was the case with JDK 1.4.  Please notify me if you discover any situation where the new features of JDK 1.5 cause problems with the study guides, the assignments, or the exams so that I can correct the situation for future semesters.


01/09/10 Warnings in JDK version 1.5 and later
As a result of changes (improvements?) made in JDK1.5, many existing programs will produce the following warning when recompiled using JDK 1.5:

Note: ....java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

This is a warning, and is not an error.  As far as I am concerned, you can simply ignore the warning.

I have investigated the changes and have published material on how to avoid the warning on future programs.  However, it is extremely unlikely that I will modify and re-publish earlier programs that worked fine prior to the changes in the JDK.


01/09/10 Generics in J2SE 5.0
Several new features were incorporated into the release of JDK 1.5, also known as J2SE 5.0.  One of those new features is referred to as Generics.  On 04/05/05, I published my first tutorial lesson discussing the new features in J2SE 5.0, and explaining Generics in particular.  It would probably be worth your while to review this material.  You will find it in Lesson 2300 at http://www.dickbaldwin.com/tocadv.htm.  Among other things, this lesson explains the following compiler warnings that are frequently encountered when recompiling old programs:

Note: ....java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.


01/09/10 Do not send executable attachments
If you send an email message to me and expect me to read it, DO NOT attach any executable files, even if they are encapsulated in a zip file.  This includes files with the following extensions, just to name a few:

.exe
.com
.scr
.bat
.pif
.vb

If you do send such files, my virus blocker will simply reject the message and I will never see it.

The following file extensions should be OK:

.java
.class
.htm
.html
.css
.xml
.xsl
.doc
.zip (Provided the zip file doesn't contain any executable files.)

If you find it necessary to send a questionable file for any reason, you should also send another message without an attachment notifying me that you sent the questionable file as an attachment so that I can be on the lookout for it.


01/09/10 Exams are ready
Both exams are ready to be taken whenever you are ready to take them following the beginning of the semester.

You may not take the exams in an ACC testing center.  If you are a classroom or Distance Learning student in Austin, you must complete your exams under Prof. Baldwin's supervision at the Northridge campus during regular office hours or laboratory hours.

VCT students must take the exams in an approved testing center (see Exam Instructions).

Don't procrastinate and let a last-minute emergency make you late.  Take your exams early if possible.


01/09/10 Completing your exams
This posting does not apply to VCT students.

If you are a classroom or Distance Learning student in Austin, you must complete your exams under Prof. Baldwin's supervision at the Northridge campus during one of the times listed below.  You may not complete your exams in an ACC testing center.

You may complete the exams by visiting with Prof. Baldwin in NRG room 4238 during his office hours.

If you arrive at Prof. Baldwin's office about ten minutes before he begins a lecture class,  he can get you started on the exam and you can finish it while he is in his classroom.

You may also complete the exams by visiting with Prof. Baldwin during one of the scheduled lab periods for any of the classes that he is teaching.  See the course schedule to determine Prof. Baldwin's lab schedule.  During those periods, you may find him in the lab or in his office.

Before making a trip to the campus, you should probably make arrangements in advance via email or telephone but that is not a requirement.

Finally, if you see Prof. Baldwin in NRG Room 4238 at any other time, he will probably be able to arrange for you to take the exam at that time.


01/09/10 Problems with the Java version and the path environment variable
A student of mine who had successfully compiled and executed Java programs on his system suddenly began to experience problems when trying to execute programs that had compiled successfully and had been run successfully in the past.

After a great deal of troubleshooting effort, this student determined that the recent installation of Oracle software for a database course that he was taking had caused an old version of the Java virtual machine to be installed on his system.  In addition, that installation had placed an element at the beginning of his path environment variable that caused the old version to be executed every time he attempted to execute a Java program.

If you experience problems when executing compiled Java programs from the command line, try entering the following command and confirming that you get a similar response (the first few digits of the version shown should be the same as the version that you installed):

C:\jnk\1>java -version
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode)

Similarly, if you experience problems when compiling Java programs, try entering the following command.  Your output should consist of about 25 lines of text, which should begin in a manner similar to the following.  Once again, the objective is to confirm the version.

C:\jnk\1>javac -version
javac 1.5.0_01
javac: no source files
Usage: javac lt;optionsgt; <source files>
where possible options include:
 ...

(Apparently the difference in the last digit of the two versions for my system is the result of my Java Runtime Environment having been updated several times since I originally installed the Java Development Kit.)


01/09/10 Don't use NetBeans, Eclipse, or other high-level IDEs
NetBeans, Eclipse, and other high-level IDEs are excellent productivity tools for programmers in the workplace who are working on large projects, who know exactly what they are doing, and who have a need to become more productive in their programming efforts.

However, to write the simple programs required for this course, you should need nothing more sophisticated than a text editor (preferably with Java syntax color coding) and the Sun Java Development Kit (JDK).  You shouldn't need a high-level IDE to serve as a crutch to help you write these simple programs.  The use of a high-level IDE to write the programs required for this course is a gross overkill, can lead to problems as illustrated by the following example, and is not recommended.

One of my students recently recently scored zero on an exam because he:

As a result, when I attempted to execute this student's programs in the prescribed manner, they all threw Exceptions or Errors and failed to execute.

Obviously, I can't keep you from using a high-level IDE to develop your programs on your system at home.  If you elect to do so, however, make certain that you understand exactly what you are doing, and also make certain that you test those programs in the prescribed manner.  Otherwise, you too may find that you won't get credit for the programs.


01/09/10 Your official Email address
It is my understanding that as of 09/15/08, all ACC students will be provided an official Email address by ACC, and that address will be reflected in all official ACC student records.  I have been told that you can cause messages sent to that address to be forwarded to the Email address of your choice.  You should make it point to either forward those messages, or to check your ACC email address on a daily basis.


01/09/10 DrJava
I was recently introduced to a free Java IDE named DrJava that has some very interesting features including the ability to execute Java code interactively.  It can also be run without the requirement for a Windows installation and should run on any platform that has a Java JRE installed.  For example, I am currently running it from a USB memory stick.  If you download it, I recommend that you download the JAR file and run it as a Java application instead of downloading the Windows executable version.  I was unable to run successfully run the Windows executable version under Windows Vista Home Premium edition.

01/09/10 Problems with Java version 1.6.0_14
This is the sort of thing that I hate to report but I have no choice.

A student in ITSE 2317 told me that he was having problems running my version of three exam programs using Java version 1.6.0_13 and Windows XP Home edition.

As a result, I downloaded and installed Java version 1.6.0_14 (update 14) and attempted to use it to run the programs for which he was having problems under Windows Vista Home Premium Edition.  I experienced problems running one of the three.

The following text shows the version of Java (update 4) with which the exam programs were compiled and tested.  Unless I tell you differently on this web page, this is the version that I will use to score your exams as well.

C:\jnk>javac -version
javac 1.6.0_04

C:\jnk>java -version
java version "1.6.0_04"
Java(TM) SE Runtime Environment (build 1.6.0_04-b12)
Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing)

Please be aware that if you are using a later version, you may also experience problems.  If you have recently updated your version of Java, the old version is probably still available on your computer.  If so, you should be able to revert to the older version by modifying the path environment variable to force it to point to the correct directory.

If you have never had update 4 on your machine, I believe that you can download it from http://java.sun.com/products/archive/j2se/6u4/index.html


01/09/10 Java version mystery solved
On 06/17/09, I reported a situation where certain programs that I wrote and successfully tested using Java version 1.6.0_04 would not compile and run successfully using Java version 1.6.0_14.  It appears that when writing those programs, I unknowingly exploited a bug in the BorderLayout manager that has existed since the beginning of Java.  The bug has apparently been fixed in version 1.6.0_14 causing certain programs that compiled and ran successfully using the earlier version to compile and run, but to not produce the correct output using the later version.  (Some of the required output is hidden and can only be seen by manually expanding the frame.)

Now that the bug has been fixed, it is necessary to program somewhat more rigorously than before when using the new version.  In particular, with the new version of Java, it is necessary to pack the frame in ITSE 2317, Exam 1, Prob03, Prob04, and Prob05 after the GUI components have been added to the SOUTH location in the frame.  This, in turn, causes the overall height of the frame to increase in order to provide space for both the image and the GUI components.  (In the earlier version, part of the image was hidden by the GUI components.)

In order to avoid the confusion that can result from changing versions in the middle of the semester, I will continue using Java version 1.6.0_04 for the remainder of the summer and will switch to the latest available version at the beginning of the Fall semester.  You should do the same.

Although I haven't done extensive testing at this point in time, I believe that this issue impacts only Prob03, Prob04, and Prob05 on Exam 1 for ITSE 2317.  I don't believe that it impacts any of the programs for ITSE 2317 Exam 2 or Exam 3.  I also don't believe that it impacts any of the exam programs for ITSE 2321 or any of the projects for INEW 2338.  If someone determines differently, please let me know.


01/20/10 Austin Global Game Jam Invitation
From: Joseph Harding [mailto:joehharding@gmail.com]

Sent: Tuesday, January 19, 2010 9:34 AM

To: rmcgoldr@mailbox.austincc.edu

Subject: Austin Global Game Jam Invitation

Hi Bob,

I got your email from Michael Agustin at Gendai Games, though we have been in contact before. I'm writing because I thought you might be interested in letting your students, and anyone at ACC who might be interested, know that EGaDS (Electronic Game Developers Society) will be hosting the Austin location of the Global Game Jam starting the 29th of January.

We're going to be hosting the jam on the UT campus in the McCombs Business School. We'll be providing free breakfast, free internet, and a great location for collaborative team work. I hope we can expect to see some ACC students there!

All the information about the event can be found here: http://www.globalgamejam.org/sites/electronic-game-developers-society

Let me know if you ave any questions I can help you with,

Joe


01/28/10 Clarification for Assignment 1
A student has made me aware that when you download and run my sample code for Asg01, you will get an output that reads something like the following instead of what the Asg01 document says you should see:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://www.austincc.edu/baldwin/page1.html">here</a>.</p>
<hr>
<address>Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny4 with Suhosin-Patch Server at www.austincc.edu Port 80</address>
</body></html>

This indicates that ACC moved my file at some point in time to http://www.austincc.edu/baldwin/page1.html and I didn't update my online sample program to reflect that move, However, the URL shown on the assignment page is correct.

To see what your program should produce, (in addition to your name followed by a blank line) open the URL given above in your browser and view the html source code.


02/15/10 Intern needed

Prof Baldwin,

A number of years back I took several of your classes at ACC. The start up I am currently working at is looking for an intern and I am hoping you might have a few talented students you'd be willing to recommend.

This is the official desire list:

********

Prior Experience: Startups, Agile development, Prototyping, Facebook

Technologies: Java, Hibernate, Guice, Junit, Eclipse, Maven, Subversion, Jetty

Note: Please do not apply if you are only experienced in J2EE or

mainstream development.

Individual must be able to work at a fast pace and handle complex projects.

*********

All of the frame work and heavy core programing is done. What we need is someone to help with proof of concept. I think the ideal person is looking to work at least 20hrs a week or more. Ability to grasp concepts quickly is very important. If you have anyone you think would be a potential fit would you be so kind to give them my email address.

Thank you again for your time.

Sincerely,

Charles F Thornton <cthornton@fisoc.com>

Class of 2000


-end-

 

File: BulletinBoard.htm