Catalogue Search | MBRL
Search Results Heading
Explore the vast range of titles available.
MBRLSearchResults
-
DisciplineDiscipline
-
Is Peer ReviewedIs Peer Reviewed
-
Item TypeItem Type
-
SubjectSubject
-
YearFrom:-To:
-
More FiltersMore FiltersSourceLanguage
Done
Filters
Reset
63
result(s) for
"Goetz, Brian"
Sort by:
Good times par for course at new golf venue
by
Rosdahl, Nils
in
Goetz, Brian
2006
Coeur d'[Alene] owners Allan and Lisa Gwaltney had operated the business out of their home for three years. Originally from Richmond, Va., and Orange County, Calif., respectively, they came to Coeur d'Alene from Colorado in 2003 after searching for the \"best place to live and raise kids,\" Lisa said. Phone (208) 664-2032; the Web site is www.windowworldinc.com. Offering a full line of commercial and residential products and expertise in decisions, Idaho Lights' 8,000-square-foot facility is under construction at U.S. Highway 95 and Sunshine Avenue (between the Silver Lake Motel and Robideaux Motors), Coeur d'Alene. The lodge-style building should open in the fall. The store is now at neighboring 6235 N. Sunshine St. -- A pickup-truck-shopping friend was treated rudely when he hesitated after the Coeur d'Alene dealer finance expert didn't offer a deal the friend could make. Of course, the friend told his friends about his treatment and bought a truck from another dealer who wasn't rude.
Newspaper Article
Design for performance, Part 3: Remote interfaces; Learn to avoid performance hazards when designing Java classes
by
Goetz, Brian
in
Goetz, Brian
2001
When you obtain a reference to a remote object through a directory service, you don't receive an actual reference to that object, but rather a reference to a stub object that implements the same interface as the remote object. When you invoke a method on the stub object, the stub has to marshal the method parameters -- convert them into a byte-stream representation, a process similar to serialization. The stub sends the marshaled parameters over the network to a skeleton object, which unmarshals them and invokes the actual remote method you wanted to invoke. Then the method returns a value to the skeleton, the skeleton marshals the return value and ships it to the stub, and the stub unmarshals it and returns the value to the caller. Phew! That's a lot of work for a single method call. Clearly, despite an outward similarity, a remote method invocation is a more expensive operation than a local method invocation. The above description glosses over some important details that are significant for program performance. What happens when a remote method returns not a primitive type, but an object? That depends. If the returned object is a type that supports remote method invocation, then it creates a stub and skeleton object, as is the case when looking up a remote object in the registry. That is clearly an expensive operation. (Remote objects support a form of distributed garbage collection, which involves each of the participating JVMs maintaining a thread for talking to the remote garbage collection thread of other JVMs, and sending reference status information back and forth.) If the returned object doesn't support remote invocation, then all of the object's fields and any objects referenced by the returned object have to be marshaled, which could also be an expensive operation. A third technique for further lightening the load on the RMI layer would be to not make the DirectoryEntry a remote object, but instead define it as an ordinary object with fields or accessors for name, address, email address, and so forth. (In a CORBA system, we would use the analogous object-by-value mechanism.) Then, when the email application calls getEntryByName(), it will retrieve an entry object by value -- which doesn't require the creation of a stub or skeleton, and the invocation of getEmailAddress() will be a local invocation instead of a remote one.
Magazine Article
Design for performance, Part 2: Reduce object creation; Avoid performance hazards while designing Java classes
by
Goetz, Brian
in
Goetz, Brian
2001
Programs that heavily use BadRegExpMatcher will run slower than those using BetterRegExpMatcher. First, callers have to create a String object to pass into match(), which then has to create another String object to return the matched text to the caller. That results in at least two object creations per invocation, which may not sound like much, but if you call match() frequently, the performance overhead of those object creations can really add up. The problem with BadRegExpMatcher's performance is not in its implementation but in its interface; with the interface defined as it is, there is no way to avoid creating several temporary objects. In the RegExpMatcher example, you saw that when a method had a return type of String, it usually necessitated the creation of a new String object. One of the problems with BadRegExpMatcher was that match() returned an object rather than a primitive type -- but just because a method returns an object, doesn't mean that a new object must be created. Consider the geometry classes in java.awt such as Point and Rectangle. A Rectangle is just a container of four integers (x, y, width, and height). The AWT Component class stores the component location and returns it as a Rectangle through the getBounds() accessor method: In the case of String, the object creations were required because String is immutable. But in this case, an object creation seems to be required because Rectangle is mutable. We avoided the problem with String by not using any objects in our interfaces. While that worked in the case of RegExpMatcher, that solution is not always possible or desirable. Fortunately, you can employ several techniques when designing classes that allow you to rid yourself of the too-many- small-objects problem without avoiding small objects altogether.
Magazine Article
Design for performance, Part 1: Interfaces matter; Avoid performance hazards when designing Java classes
by
Goetz, Brian
in
Goetz, Brian
2001
The String class is a major source of object creation in programs that manipulate text. Because Strings are immutable, a new object must be created each time a String is modified or constructed. As a result, performance-conscious programmers avoid excessive use of String. However, this is often impossible. Even when you eliminate reliance on String from your code, you frequently find yourself using components whose interfaces are defined only in terms of String. Thus, you end up being forced to use String anyway. It's bad enough that BadRegExpMatcher forces you to provide it with input in the form that it wants to see, rather than in the form that you can more efficiently provide. But using BadRegExpMatcher comes with another risk, one that is potentially even more hazardous to MailBot's performance: You began with the noble intention of avoiding the use of Strings when processing the mail headers. But since you are forced to create many String objects anyway to satisfy BadRegExpMatcher, you might be tempted to abandon that goal and use String even more liberally. Now, one component's bad design has infected the program that uses it. Even if you later find a better regular expression component that doesn't require you to provide it with a String, your whole program might be infected by then. BadRegExpMatcher forced MailBot to convert the input text from the character array it already had into a String, resulting in an unnecessary object creation. Ironically, many implementations of BadRegExpMatcher would immediately convert that String right back into a character array for easy access to the input text. Not only does this allocate yet another object, but it means that you performed all that work only to end up with the same representation that you started with. Neither MailBot nor BadRegExpMatcher actually wanted to deal with a String -- String just seemed like the obvious format for exchanging text between components.
Magazine Article
GOETZ,-- Elizabeth \Betty\ - Born in Topsail, Newfoundland
2007
Elizabeth GOETZ,-- \"Betty\" - Born in Topsail, Newfoundland and a long time resident of Kitchener, passed away peacefully surrounded by family on Monday, June 18, 2007 at Freeport Health Centre of Grand River Hospital at the age of 71.-- Beloved wife of Douglas Goetz of Neustadt for 50 years. Loving mother of Brian Goetz (Judy), Kim Gingerich (Keith), and Wayne Goetz. Dear grandmother of Candice, Stephanie, Joshua, Janine and Jared.
Newspaper Article
GOETZ,-- Elizabeth \Betty\ - Born in Topsail, Newfoundland
2007
Elizabeth GOETZ,-- \"Betty\" - Born in Topsail, Newfoundland and a long time resident of Kitchener, passed away peacefully surrounded by family on Monday, June 18, 2007 at Freeport Health Centre of Grand River Hospital at the age of 71.-- Beloved wife of Douglas Goetz of Neustadt for 50 years. Loving mother of Brian Goetz (Judy), Kim Gingerich (Keith), and Wayne Goetz. Dear grandmother of Candice, Stephanie, Joshua, Janine and Jared.
Newspaper Article
Masuhr, Hugo J
2002
Masuhr, Hugo J. \"Hooks\" Friday, October 04, 2002 Masuhr, Hugo J. \"Hooks\" Born into Eternal Life Wed., Sept. 18, 2002, age 90. Preceded in death by his loving wife, Marguerite. Dear father of Mark (Pauline) Masuhr and Margo (John) Goetz.
Newspaper Article
Letters to the Editor
2001
I am a Java developer, but I never realized the subtleties that optimizations could cause. I enjoy a good test of my abilities and took the article as a challenge to find a solution. I am by no means an expert in the workings of microprocessors and optimizing compilers/ JITs. However, I have come up with a technique that I would like you to comment on. It involves creating a second instance variable to hold the reference to the singleton. The call to getHelper() still checks to see if the helper instance variable reference is null. If it is, instead of instantiating a new Helper object, it calls a second synchronized method, getSingleton(), that has its own null check. That method then instantiates a helper() method and sets the singleton reference to it; the singleton is then returned. Before A exits the synch block, data written to A's memory may not be moved to main memory, or it could be moved in an order different than the order in which it was written to A's memory. Also, some values may be written out slowly to main memory. But let's say that the reference to the new Resource is written out to main memory before the constructor finishes, which is certainly possible. If B goes to main memory to examine the reference, it may see the valid value of resource, but not the fields of resource (because it's still being constructed or those fields have not yet been written to main memory). That's bad; it sees a partially constructed Resource. Those are good questions. Clearly, there are differences between XPath and XPointer, as you mentioned. XPointer is built on top of XPath, but allows you to select areas of an XML document that a pure XPath could not address.
Magazine Article