> So Jason what books are on you current reading list.
Okay.
The following are the books which I'm currently reading. This does not
include the books in the adjacent stacks, which I haven't cracked yet.
"Java Swing" by Eckstein, Lay, Wood; O'Reilly
Decent book.
"BUGS in Writing" by Lyn Dupre; Addison/Wesley
BUGS is an acrynonym for "bad, ugly, good, splendid". Pretty good
book to read if you want improve your writing skills. Gets lots of
positive reviews.
"The Unified Software Development Process" by Jacobson et al;
Addison/Wesley
I'm determined to finish this book. Call me Hercules.
"Object-Oriented Development: The Fusion Method" by Coleman et al; Prentice
Hall
Fusion was created at HP. As a 2nd generation methodology,
it's a synthesis of 1st generation stuff (Booch, OMT, CRC
Cards, Objectory). The emphasis is on well defined deliverables
which can be tested. Lightweight compared to Rational's Unified
Process. I intend to use Fusion on two projects I'm currently
working on.
"Journey of the Software Professional" by Hohmann; Prentice Hall
Read this book. First few chapters are dense; they introduce you
to a theory of problem solving. The rest of the book covers how
people and teams work. Again, read this book to gain insights
on project management, team organization, and personal growth.
"Software Architecture in Practice" by Bass et al; Addison Wesley
I couldn't possibly summarize this book. The best I can do is
say that it talks about software "in-the-large". Topics covered
are structure, analysis, style, quality, reviews, description
languages, etc. I've read about half the chapters (jumping
around) and can't claim that I've assimilated the knowledge yet.
But I can say it's a good book. Very likely something I'll
have to read again in two years. Kind of like "Design Patterns".
"Rapid Development" by McConnell; Microsoft Press
"Code Complete" is one of my all time favorite software engineering
texts. I really value the accessibility of McConnell's writing style.
As for project management, leading teams, and so forth, "Rapid
Development" is to "Journey of the Software Professional" what
"The Prince" (by Machivelli) is to "The Art of War" (by Sun Tzu).
Kind of like the difference between a How To guide and the
philosophy which explains it all.
"Software Architecture : Perspectives on an Emerging Discipline" by Shaw,
Garlan; Prentice Hall
I have to admit, this one is gathering dust. If something can be
explained in 10 words, this book uses 40. Definitely written by
academics for academics. Even so, I'm determined to eventually
finish this one.
Cheers, Jason
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/group/wingdinghttp://www.eGroups.com - Simplifying group communications
Patterns Books on the shelf (which should we study next?):
Pattern Oriented Software Architecture : A System of Patterns
by Buschmann, et al
Analysis Patterns by Martin Fowler
Concurrent Programming in Java : Design Principles and Patterns
by Doug Lee
Second Edition is not due out until Feb 2000 :(.
I missed a few like- Object-Oriented Software Construction, second
edition by Bertrand Meyer- but this covers the basics.
What about you?
See you soon,
Lance
Jason Osgood wrote:
Hi Billy-
[I cc'd the WingDing list. See below. I hope you don't mind.]
> I recently read one of your reviews at amazon.com. Thanks
> for saving me some $.
Glad to help! <grin>
> Do you know of an object oriented design book
> (preferably based on java) that would teach me
> sound OOD and OOP?
I don't have any recommendations for learning OOA/D, particularly based
on Java. Mostly because I don't buy entry level books any more. But
also because it's hard to figure out what people are talking about. An
analogy: Mention "security requirements" and everyone has a different
notion about what "security" is. They're all right, of course. But
until two people can talk about security, they have agree on precisely
what they're talking about.
I'm currently reading a bunch of books on methodology, process, and
architecture. Everyone's got a different idea about how to do
architecture and design. And that's good, because there's so many
different types of problems, so we need many types of solutions. [*]
But there's certainly no one "rigth answer" to OOA/D. And I certainly
don't have well formed opinions about the relative merits of all the
methods, processes, and theories.
Having said all that, I strongly recommend two books to all software
engineering types: "Design Patterns" by Gamma et al and
"Object-Oriented Design Heuristics" by Arthur Riel. I most most other
patterns books. I particularly like the PLoP books and
"Pattern-Oriented Software Architecture".
If you're trying to learn Java or OO basics, I encourage you to join
either the Seattle Java User Group list server (visit www.seajug.org)
and/or the Wing Ding Design Pattern study group list serve (visit
www.egroups.com/list/wingding). People are generally quite helpful.
Cheers, Jason
PS- Grady Booch told me of his interest to extend Mary Shaw's work on
classifying methods and processes into a "taxonomy". With such a tool,
us mortals can hope to make sense of it all. I take great comfort
knowing the issue has been noticed by the big brains and is being
addressed. <grin>
_________________________________________________________
Do You Yahoo!?
Free instant messaging and more at http://messenger.yahoo.com
Hi Billy-
[I cc'd the WingDing list. See below. I hope you don't mind.]
> I recently read one of your reviews at amazon.com. Thanks
> for saving me some $.
Glad to help! <grin>
> Do you know of an object oriented design book
> (preferably based on java) that would teach me
> sound OOD and OOP?
I don't have any recommendations for learning OOA/D, particularly based
on Java. Mostly because I don't buy entry level books any more. But
also because it's hard to figure out what people are talking about. An
analogy: Mention "security requirements" and everyone has a different
notion about what "security" is. They're all right, of course. But
until two people can talk about security, they have agree on precisely
what they're talking about.
I'm currently reading a bunch of books on methodology, process, and
architecture. Everyone's got a different idea about how to do
architecture and design. And that's good, because there's so many
different types of problems, so we need many types of solutions. [*]
But there's certainly no one "rigth answer" to OOA/D. And I certainly
don't have well formed opinions about the relative merits of all the
methods, processes, and theories.
Having said all that, I strongly recommend two books to all software
engineering types: "Design Patterns" by Gamma et al and
"Object-Oriented Design Heuristics" by Arthur Riel. I most most other
patterns books. I particularly like the PLoP books and
"Pattern-Oriented Software Architecture".
If you're trying to learn Java or OO basics, I encourage you to join
either the Seattle Java User Group list server (visit www.seajug.org)
and/or the Wing Ding Design Pattern study group list serve (visit
www.egroups.com/list/wingding). People are generally quite helpful.
Cheers, Jason
PS- Grady Booch told me of his interest to extend Mary Shaw's work on
classifying methods and processes into a "taxonomy". With such a tool,
us mortals can hope to make sense of it all. I take great comfort
knowing the issue has been noticed by the big brains and is being
addressed. <grin>
_________________________________________________________
Do You Yahoo!?
Free instant messaging and more at http://messenger.yahoo.com
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/group/wingdinghttp://www.eGroups.com - Simplifying group communications
Hey, I got a ride; see you all tonight!
(Thanks, Angel!)
Adam
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/group/wingdinghttp://www.eGroups.com - Simplifying group communications
Would anyone who will be attending tonight's Design Pattern discussion group
at Jason's be able to give me a lift home to Bothell after the meeting?
I'll buy your dinner in return.
Thanks,
Adam
425.806-4508
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/group/wingdinghttp://www.eGroups.com - Simplifying group communications
This week we're studying Layered Initialization and Filter. The book
"Pattern-Oriented Software Architecture" by Buschmann et al covers Pipes and
Filters. Does anyone know of a supplemental reference for Layered
Initialization?
We're eating spagetti, sausages, and rolls. Again. Nummy! Please RSVP by
Wednesday noon so I know how many mouths to feed.
Thanks again to Lance for putting together our current study guide.
If you need directions, additional information, check out:
http://www.sns.to/Patterns/
(Thanks also to George for putting together the web site.)
Cheers, Jason
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/group/wingdinghttp://www.eGroups.com - Simplifying group communications
Hi Joe-
You wrote:
> I don't have a silver bullet, but I've been interested in an application
> server called zope (www.zope.org).
On your recommendation, I checked out zope.org. From the documentation, it
looks rather cool. I even read the online tutorial for Python; why the
hell are we all still using Java?! <grin>
The Cocoon stuff I'm also interested in has a different feature set. Zope
is definitely a full-fledged app server. The Apache, JServ, and Cocoon
combo is more familiar (to me) but would require quite a bit more effort to
be on par with Zope.
I'm all in favor of trying Zope out.
We all think a collaborative site would be cool, right? Ward Cunningham's
WikiWikiWeb tech/idea has a small following:
Portland Pattern Repository
http://c2.com/ppr/index.html
Swiki (for Squeak)
http://minnow.cc.gatech.edu/squeak
Lego-Robotics
http://www.object-arts.com/wiki/html/Lego-Robotics/FrontPage.htm
My only full-formed concern with WikiWikiWeb tech is that there's no query
or sorting abilities. At a very minimum, I want our repository to be
sorted by type or alpha. Because Zope is backed by a database, I'm
guessing it'll be easier to sort, filter, query, etc. I believe Zope also
supports Les' suggestion to have versioning.
Cheers, Jason
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/group/wingdinghttp://www.eGroups.com - Simplifying group communications
FYI,
I've kind of been waiting for Linux Expo before trying out Zope. The Zop'ists
are readying a new version for release at Linux Expo with plenty of updates (to
oodb, indexing support, web server, new features (e.g., ZClasses), etc.) and
packaging it all into one big new Zope update. At that
point, it'll probably be easy to pick up and install (caveat: the new version
shakedown :-).
I've been following the mailing list which has been informative (as I squirrel
away tidbits of info). They also have a manager's guide which is *the* primary
source for zope introductory info.. The other source is the new, developing
Zope Documentation Project. The mailing list is available at
http://www.zope.org/Community
= Joe =
Les Novell wrote:
> I perused the Zope web page and it seems like a pretty good tool. It would
take me some time to learn it. I'm not an expert in HTML or Python, so I've got
a bit of a learning curve :).
>
> Maybe it would help if someone prepared (D?)HTML templates for me to work off
of.
>
> Les
>
> Joe Grace wrote:
>
> > I don't have a silver bullet, but I've been interested in an application
server called zope (www.zope.org). It has some very compelling features, allows
various branches to be developed independently, includes real-time deployment of
branches, and... is open source. Zope is python based
> > (which I consider largely a good thing), but I'm not sure if it has any
hiccups handling java alongside (which would be bad).
> >
> > Anyway, I'm not a web application server guru but suspect zope might be a
good way to go. If anyone has any other ideas, I'd be interested in those too.
If anyone has feedback or experience with zope already, that'd be good too!
Zope does seem to have an active and growing user base.
> >
> > Cheers,
> >
> > = Joe =
> >
> > lesn@... wrote:
> >
> > > Earlier this week over coffee Jason suggested that Wingdings have a
website containing improved sample implementations for patterns found in Grand's
book.
> > >
> > > I think there was positive support for this suggestion, but it is still
unclear how we can host a dynamic web site that everyone can update and post to.
> > >
> > > Here at ASIX we manage our intranet using a configuration management
system. This allows people to checkout, modify, and check back in new versions
of web pages and related documents. The web site then grabs and posts any
updates on an hourly basis. We could do something similar with CVS.
> > >
> > > Also, if this initiative does get off the ground, I might be able to
scrounge up an old computer that would run Linux adequately.
> > >
> > > Les
> > >
> > > ------------------------------------------------------------------------
> > > eGroups Spotlight:
> > > "Kosovo-Reports" - Direct reports from Kosovo/Serbia/Yugoslavia.
> > > http://clickhere.egroups.com/click/5
> > >
> > > eGroup home: http://www.eGroups.com/group/wingding
> > > http://www.eGroups.com - Simplifying group communications
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/group/wingdinghttp://www.eGroups.com - Simplifying group communications
I perused the Zope web page and it seems like a pretty good tool. It would take
me some time to learn it. I'm not an expert in HTML or Python, so I've got a bit
of a learning curve :).
Maybe it would help if someone prepared (D?)HTML templates for me to work off
of.
Les
Joe Grace wrote:
> I don't have a silver bullet, but I've been interested in an application
server called zope (www.zope.org). It has some very compelling features, allows
various branches to be developed independently, includes real-time deployment of
branches, and... is open source. Zope is python based
> (which I consider largely a good thing), but I'm not sure if it has any
hiccups handling java alongside (which would be bad).
>
> Anyway, I'm not a web application server guru but suspect zope might be a good
way to go. If anyone has any other ideas, I'd be interested in those too. If
anyone has feedback or experience with zope already, that'd be good too! Zope
does seem to have an active and growing user base.
>
> Cheers,
>
> = Joe =
>
> lesn@... wrote:
>
> > Earlier this week over coffee Jason suggested that Wingdings have a website
containing improved sample implementations for patterns found in Grand's book.
> >
> > I think there was positive support for this suggestion, but it is still
unclear how we can host a dynamic web site that everyone can update and post to.
> >
> > Here at ASIX we manage our intranet using a configuration management system.
This allows people to checkout, modify, and check back in new versions of web
pages and related documents. The web site then grabs and posts any updates on an
hourly basis. We could do something similar with CVS.
> >
> > Also, if this initiative does get off the ground, I might be able to
scrounge up an old computer that would run Linux adequately.
> >
> > Les
> >
> > ------------------------------------------------------------------------
> > eGroups Spotlight:
> > "Kosovo-Reports" - Direct reports from Kosovo/Serbia/Yugoslavia.
> > http://clickhere.egroups.com/click/5
> >
> > eGroup home: http://www.eGroups.com/group/wingding
> > http://www.eGroups.com - Simplifying group communications
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/group/wingdinghttp://www.eGroups.com - Simplifying group communications
I don't have a silver bullet, but I've been interested in an application server
called zope (www.zope.org). It has some very compelling features, allows
various branches to be developed independently, includes real-time deployment of
branches, and... is open source. Zope is python based
(which I consider largely a good thing), but I'm not sure if it has any hiccups
handling java alongside (which would be bad).
Anyway, I'm not a web application server guru but suspect zope might be a good
way to go. If anyone has any other ideas, I'd be interested in those too. If
anyone has feedback or experience with zope already, that'd be good too! Zope
does seem to have an active and growing user base.
Cheers,
= Joe =
lesn@... wrote:
> Earlier this week over coffee Jason suggested that Wingdings have a website
containing improved sample implementations for patterns found in Grand's book.
>
> I think there was positive support for this suggestion, but it is still
unclear how we can host a dynamic web site that everyone can update and post to.
>
> Here at ASIX we manage our intranet using a configuration management system.
This allows people to checkout, modify, and check back in new versions of web
pages and related documents. The web site then grabs and posts any updates on an
hourly basis. We could do something similar with CVS.
>
> Also, if this initiative does get off the ground, I might be able to scrounge
up an old computer that would run Linux adequately.
>
> Les
>
> ------------------------------------------------------------------------
> eGroups Spotlight:
> "Kosovo-Reports" - Direct reports from Kosovo/Serbia/Yugoslavia.
> http://clickhere.egroups.com/click/5
>
> eGroup home: http://www.eGroups.com/group/wingding
> http://www.eGroups.com - Simplifying group communications
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/group/wingdinghttp://www.eGroups.com - Simplifying group communications
I wrote:
> If the implementer decides to make products immutable,
> she may decide to clone the product only as needed,
> otherwise known as "copy-on-write".
Err, make the products MUTABLE. Sorry.
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/group/wingdinghttp://www.eGroups.com - Simplifying group communications
Hi George, Everyone-
At the last session, we studied Cache Management. We had an open-ended
discussion about whether products from a Cache should be immutable or
mutable. If the implementer decides to make products immutable, she
may decide to clone the product only as needed, otherwise known as
"copy-on-write".
Dr. Tony Simons presented a paper at OOPSLA'98 that addressed this
design issue and explores some alternatives. Here's the link
"Borrow, copy or steal? Loans and larceny
in the orthodox canonical form"
http://www.dcs.shef.ac.uk/~ajhs/abstracts.html#steal
Warning, the programming language used in the paper is C++. I'm
reading the paper again, this time with a better understanding of the
issues involved. I'm hopeful at least some of the ideas will be
applicable to Java. News at eleven.
Cheers, Jason
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/group/wingdinghttp://www.eGroups.com - Simplifying group communications
Hi Les, Everyone-
Aside: Has anyone tried the new "interface" thru www.egroups.com/list/wingding?
It's pissing me off. I am encouraged, though, by egroups.com willingness to try
out new ideas and variants. I'm sure they'll eventually stick the landing.
Re: Bill Joy Presentation
It was a great presentation. I'm writing up a report for my company. I'll post
an abbreviated version here. Does anyone know if the slides he showed are
available somewhere?
Re: Wing Ding Patterns Repository
I love the idea of version control behind a collaborative web site. I'm going
to think about this some. If anyone has any ideas or experience, please post.
Meanwhile, I'm talking to our intranet web master (here at ScenicSoft) about
some tools I could use. I hate hand-coding HTML but can't tolerate the crap
authoring tools generate. Is there a compromise?
I'll rough something in over the next few days. We can evolve towards a dynamic
enviroment.
Re: Cache Management and Reference Objects
During the last session, we discussed the use of RefObjects in the
implementation of an Object Pool pattern. I'm embarrassed that I didn't follow
through with the use of RefObjects with a Cache. Basically, a Cache
implementation would need to know when items are no longer in use. It's
unreasonable to ask the client to perform some sort of clean up step (and hard
to enforce). Use RefObjects and Voila! problem solved; Cache gets the
information it needs to manage its collection.
Re: Object Pool
My primary motivating factor for creating the Patterns Repository is to document
our discussion about Object Pool. Tidbits...
Relate Object Pool to Factory Method, specifically: separating concerns -- in
this case object creation and object use -- to postpone implementation details.
Using a Factory Method allows the one to start with an Abstract Factory and
switch over to an Object Pool at some later date, if needed.
Relate how Object Pool is like the opposite of Lazy Initialization.
Discuss strategies for returning a product from an Object Pool's Factory Method;
blocking, blocking with timeout, and callback.
Re: Rerun
I just decided that I definitely want to repeat the IndustrialLogic study guide
at some point in the future. I've learned SO MUCH from this go around. Like
the mages say: We teach, we learn.
I also want to tweak the order of the patterns a little bit, like we discussed
before. I think there are some logical groupings for 2 hour sessions that help
in comparing and contrasting like patterns.
In conjunction with the Pattern Repository idea, I see it as an opportunity to
document patterns as-you-go instead of one huge big task.
Ideas? I
Re: Eastside Wing Ding Group
We ran into Steven Lewis after the Bill Joy presentation. He related how
they're studying "AntiPatterns". If anyone is interested, they should encourage
him to spread the word.
Cheers, Jason
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/group/wingdinghttp://www.eGroups.com - Simplifying group communications
Earlier this week over coffee Jason suggested that Wingdings have a website
containing improved sample implementations for patterns found in Grand's book.
I think there was positive support for this suggestion, but it is still unclear
how we can host a dynamic web site that everyone can update and post to.
Here at ASIX we manage our intranet using a configuration management system.
This allows people to checkout, modify, and check back in new versions of web
pages and related documents. The web site then grabs and posts any updates on an
hourly basis. We could do something similar with CVS.
Also, if this initiative does get off the ground, I might be able to scrounge up
an old computer that would run Linux adequately.
Les
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/group/wingdinghttp://www.eGroups.com - Simplifying group communications
Thanks to Lance for the head's up.
Please RSVP. We're having homemade burritos. Yes, they're better than
Gorditos. George can make his very own casadilla if he chooses.
I probably have enough chairs now. Pretty soon I'll be giving 'em away.
Cheers, Jason
_______________________________________________________
Jason Osgood, Principal Software Engineer
ScenicSoft Inc 1133 - 164th St SW Lynnwood WA 98037 USA
425-355-6655 (fon) -6898 (fax) jason@...http://www.scenicsoft.com/
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/group/wingdinghttp://www.eGroups.com - Simplifying group communications
The topics for tomorrow's meeting are:
Object Pool
Manage the reuse of objects for a type of object that is expensive to create or
only a limited number of a kind of object can be created.
Cache Management
The Cache Management pattern allows fast access to objects that would otherwise
take a long time to access. It involves keeping a copy of objects that are
expensive to construct after the immediate need for the object is over. The
object may be expensive to construct for any number of reasons, such as
requiring a lengthy computation or being fetched from a database.
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/group/wingdinghttp://www.eGroups.com - Simplifying group communications
Seattle Wing Ding Study Group Report for 4/14/1999
Misc Business
Nine people attended. We ate deli sandwiches.
Jason brought up the possibility of a summer hiatus. Past experience indicates
that user group attendance drops considerably during July and August. The
current study plan keeps the group busy through July. Jason forewarned everyone
that he'll suspend the Wing Ding if six or fewer people attend a meeting and
then resume in September.
Null Object
We read from both Mark Grand's "Patterns in Java" and the PLoP 3 book, where the
pattern originally appeared. We covered the points already mentioned on this
list. George brought up costs of implementation in the form of additional
classes, which we judged a reasonable tradeoff. George also related a case
where he uses Null Objects to always throw an exception when the usage would be
invalid.
Immutable
We read from "Patterns in Java" and Jason related the recent article in
JavaWorld on emulating the const keyword. George stated that no classes should
be immutable because in Java being immutable effectively eliminates the
possibility of subclassing (inheritance). This is a shortcoming of the
language, where the return types of methods are not polymorphic. This requires
all objects returned from a method to be cast, which places burden on the
client. Joe used the phrase "makes the design brittle", which we all pretty
much agreed with.
This led to a lengthy tangent talking about return types, template methods, and
a bunch of other OO language design issues.
Marker Interface
We read from "Patterns in Java". Jason stated that this isn't a pattern, but
rather an idiom, generating nods all around. No one had an example from his or
her own work. The consensus seemed to be that Clonable and Serializable from
the JDK are lame hacks. George stated that java.lang.Object shouldn't have a
clone() method. Which makes sense when you consider that clone()'s contract is
underspecified and doesn't return objects of the correct type. We had general
discussion about the expense of instanceof and casting operations.
The final group opinion is that Marker Interface is evil and should be avoided.
---
That's my report. Feel free to correct, contribute, or collaborate.
Cheers, Jason Osgood
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/list/wingding
Free Web-based e-mail groups by eGroups.com
No, we can keep the member list private, but public is fine with me too.
I just thought you could check the list and see if everyone, who normally
shows up, has made the jump between groups.
Thanks,
Lance
josgood@... wrote:
Lance Young asked:
> we also need to post this message to the old patterns@... list?
Probably a good idea. Will do.
> I can not access the membership list.
Yea, I disabled membership access to all but the moderator (which is me). Should the membership list be public?
Cheers, Jason
Does your free web site address contain more letters than the alphabet?
Register a domain name with DomainDirect. A domain and NO hosting fees.
Visit http://www.domaindirect.com
for full details
Howdy-
I was talking with my brother about Null Objects this last weekend. He
cautioned that the use of a Null Object could be the sign of a bad
architecture. I accept his observation, but haven't witnessed for myself.
I'm still wildly enthusiastic about Null Object. When used in a
collection, such as inconjunction with the Composite pattern, it affords
runtime efficiency by eliminating explicit check for null object references.
I also think State design pattern implementations benefit from a default
Null Object implementation (aka "Null State"?).
Lastly, building frameworks is eased with the use of Null Object
implementations of various elements of the framework. The tangible benefit
is that Null Objects simplify initialization dependancies, making the
client code for initializing a framework much more simple.
Look forward to seeing everyone tonight!
Cheers, Jason
_______________________________________________________
Jason Osgood, Principal Software Engineer
ScenicSoft Inc 1133 - 164th St SW Lynnwood WA 98037 USA
425-355-6655 (fon) -6898 (fax) jason@...http://www.scenicsoft.com/
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/list/wingding
Free Web-based e-mail groups by eGroups.com
Lance Young asked:
> we also need to post this message to the old patterns@... list?
Probably a good idea. Will do.
> I can not access the membership list.
Yea, I disabled membership access to all but the moderator (which is me).
Should the membership list be public?
Cheers, Jason
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/list/wingding
Free Web-based e-mail groups by eGroups.com
Jason, do we also need to post this message to the old patterns@... list? I
was going to check the membership list to see if everyone has joined the new
egroup list, but I can not access the membership list. In any case, it seems
prudent to copy the old list for a little longer.
Thanks,
Lance
<01be85e7.6ecb282-@...> wrote:
Original Article: http://www.egroups.com/list/wingding/?start=9
> Hi George, Everyone-
>
>
> I've been having a REALLY bad week. Sorry for not posting an announcement
> earlier. Yes, the meeting is still on. We'll be having deli sandwiches.
> See everyone tomorrow night!
>
>
> Cheers, Jason
>
>
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/list/wingding
Free Web-based e-mail groups by eGroups.com
Hi George, Everyone-
I've been having a REALLY bad week. Sorry for not posting an announcement
earlier. Yes, the meeting is still on. We'll be having deli sandwiches.
See everyone tomorrow night!
Cheers, Jason
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/list/wingding
Free Web-based e-mail groups by eGroups.com
Tonight is "supposedly" the East-Side Patterns Group meeting. But I have
seen no "recent" announcement.
Tommorrow night is the West-Side Meeting. Jason, no announcement?
Is it on?
Hello out there...
George
---------------------
Smith's Net Services
9505 S. 241 St.
Kent, WA 98031 USA
Fon: 1.253.813-8698
Fax: 1.253.813-8532
http://www.SNS.to
mailto:zgas@...
"Chase the dream, not the competition." -- Nemesis Racing Team
---------------------
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/list/wingding
Free Web-based e-mail groups by eGroups.com
Sorry all for the delay...
But the SeaJUG Patterns pages have FINALLY been updated:
http://sns.to/Patterns
George
---------------------
Smith's Net Services
9505 S. 241 St.
Kent, WA 98031 USA
Fon: 1.253.813-8698
Fax: 1.253.813-8532
http://www.SNS.to
mailto:zgas@...
"Chase the dream, not the competition." -- Nemesis Racing Team
---------------------
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/list/wingding
Free Web-based e-mail groups by eGroups.com
The Westside Patterns Group's latest study topics come from the Java
Patterns 1 book by Mark Grand
You still have time to order the book before the next meeting.
The Amazon book link:
http://www.amazon.com/exec/obidos/ASIN/0471258393/n/qid=922744353/sr=2-1/002
-8461463-2419041
Fatbrain has the Java Patterns 1 book for 41% off:
http://www1.fatbrain.com/asp/BookInfo/BookInfo.asp?theisbn=0471258393
Did I mention the $15 off coupon?
Company Blurb:
We value your business, and want you to remain a customer, whether you love
our new name or you think we're completely nuts. Get your discount by
entering the discount code "FATBRAIN" in the referral code field when
placing your order online. Discounts will be taken off orders totaling $15
or more. Tell a friend about it;
the $15-off discount code is good for anyone, anywhere through April 19.
----------------------
April 14th Meeting Schedule
---------------------
1.a Null Object
The Null Object pattern provides an alternative to using null to indicate
the absence of an object to
delegate an operation to. Using null to indicate the absence of such an
object requires a test for null
before each call to the other object’s methods. Instead of using null, the
Null Object pattern uses a
reference to an object that doesn’t do anything.
1.b Immutable
The Immutable pattern increases the robustness of objects that share
references to the same object
and reduces the overhead of concurrent access to an object. It accomplishes
this by not allowing an
object’s state information to change after it is constructed. The Immutable
pattern also avoids the
need to synchronize multiple threads of execution that share an object.
1.c Snapshot
Capture a snapshot of an object's state so that the object's state can be
restored later. The object that
initiates the capture or restoration of the state does not need to know
anything about the state
information. It only needs to know that the object whose state it is
restoring or capturing implements
a particular interface.
Details:
The meetings are the second and forth Wednesdays of each month, start, with
food, at 6:30PM and at 7PM the fun begins.
Our current meeting location is:
Host:
Chez Jason (Osgood)
Address:
9208 Dayton Ave N
Seattle WA 98103
Phone:
(206) 784-9416
Email:
josgood@...
Directions:
From I-5 (north or south)
take the 85th St exit
head west pass Aurora (99)
right on Dayton Ave N (for about 7 blocks, just past 92cnd St)
house is on the right
park somewhere near house
So pick up the book and be prepared to contribute,
Lance B. Young
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/list/wingding
Free Web-based e-mail groups by eGroups.com
I really got a new perspective on Patterns from this presentation. I
would suggest that anyone who is interested in patterns or who thinks
they know patterns (beginner to advanced) should attend.
Enjoy,
Lance
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/list/wingding
Free Web-based e-mail groups by eGroups.com
Hi fellow software developers:
Many of you were unable to attend the Thinking in Patterns presentation Alan
Shalloway did earlier this month due to the 520 bridge being out that night.
Although we still had a great turnout, we've received enough requests to
offer the presentation again (this time on the Eastside) to do so.
You are therefore cordially invited to a free seminar (presented by Net
Objectives) about using design patterns, to be held Monday, April 19, from
6-8 pm at the Orcas Conference Room (#1480) in Microsoft Building 12 (go to
http://www.tadseattle.com/msdir.htm for a map). See
http://www.netobjectives.com/pr_990304.htm for more information on the
seminar.
We have modified the seminar slightly from the March 4th presentation to
include more detail of the patterns as some of the attendees requested, but
it is essentially the same and Alan Shalloway again will be presenting it.
If you attended and found value in the seminar, please pass this invitation
along to your friends. If you didn't attend, and you've never used design
patterns before, this seminar will be an excellent introduction. If you've
already been exposed to them, we’ll show you new ways of using them. This
Net Objectives Patterns Thinking seminar will expand the exciting world of
design patterns for intermediate and advanced object-oriented software
developers.
We’ll begin by showing four design patterns - adapter, facade, bridge and
abstract factory. We then use the design patterns to understand and solve a
complex problem. Our approach focuses on using the design patterns to
illustrate several basic object-oriented design principles as well as a way
to use design patterns together, not merely to solve isolated problems.
(This seminar builds on a presentation made at January's OOP Conference in
Munich, Germany.)
Net Objectives believes that design patterns aren’t merely the combination
of classes in well-formed ways to solve specific problems. Rather, we follow
Christopher Alexander’s (e.g. the Father of Patterns) philosophy which
states that patterns should be used in combination with each other — to give
insights into the problem domain and guide us towards a greater conceptual
understanding of system components and their interrelationships. Then we can
use the patterns individually to complete software designs for a more
robust, flexible implementation throughout a product's life-cycle.
Patterns thus shift from ‘building blocks’ to providing insights into how we
can reorganize our problem domain into more manageable pieces. Attendees at
the Net Objectives’ seminar will learn several new design patterns and new
ways of using them: leading to improved application architectures.
Please note that seating is by reservation only. Please e-mail to:
netobjectives@... to ensure a seat. Seating is even more
limited this time as the room will only hold 75 people (if someone has a
larger facility we can use that night, please let us know).
The Speaker:
Alan Shalloway is the primary consultant for Net Objectives, and has made
presentations on design patterns at conferences in the United States, Canada
and Germany. As an object-oriented consultant and software developer, he is
currently assisting PricewaterhouseCoopers with a
middleware/intranet/internet project. He has just completed an assignment
at Boeing -- aiding their transition to OO. Alan focuses on creating
paradigm shifts: first into the OO perspective and then into using design
patterns as a basis for design. His book - Using Design Patterns to Learn
The Principles of Object-Oriented Design: A Primer on Patterns will be
published later this year, and is the foundation for his upcoming course:
Using Design Patterns to Build Application Architectures. (For more
information: http://www.netobjectives.com/c_ooaawdp.htm). Alan holds a
Masters in Computer Science from the Massachusetts Institute of Technology.
Thanks for your time,
Net Objectives
_________________________________________
Net Objectives offers mentoring and training in Design
Patterns and in the transition to object-oriented technology.
www.netobjectives.com
425-313-3065 pager 206-236-4665
We value your business, and want you to remain a customer, whether you love our new name or you think we're completely nuts. Get your discount by entering the discount code "FATBRAIN" in the referral code field when placing your order online. Discounts will be taken off orders totaling $15 or more. Tell a friend about it; the $15-off discount code is good for anyone, anywhere through April 19.
The number represents the meeting and the letter the order of the pattern discussion within the meeting. The first meeting to follow this agenda will be, April 14th.
1.a Null Object
The Null Object pattern provides an alternative to using null to indicate the absence of an object to
delegate an operation to. Using null to indicate the absence of such an object requires a test for null
before each call to the other object’s methods. Instead of using null, the Null Object pattern uses a
reference to an object that doesn’t do anything.
1.b Immutable
The Immutable pattern increases the robustness of objects that share references to the same object
and reduces the overhead of concurrent access to an object. It accomplishes this by not allowing an
object’s state information to change after it is constructed. The Immutable pattern also avoids the
need to synchronize multiple threads of execution that share an object.
1.c Snapshot
Capture a snapshot of an object's state so that the object's state can be restored later. The object that
initiates the capture or restoration of the state does not need to know anything about the state
information. It only needs to know that the object whose state it is restoring or capturing implements
a particular interface.
2.a Object Pool
Manage the reuse of objects for a type of object that is expensive to create or only a limited number
of a kind of object can be created.
2.b Cache Management
The Cache Management pattern allows fast access to objects that would otherwise take a long time
to access. It involves keeping a copy of objects that are expensive to construct after the immediate
need for the object is over. The object may be expensive to construct for any number of reasons,
such as requiring a lengthy computation or being fetched from a database.
3.a Layered Initialization
When you need multiple implementations of an abstraction, you usually define a class to encapsulate
common logic and subclasses to encapsulate different specialized logic. That does not work when
common logic must be used to decide which specialized subclass to create. The Layered
Initialization pattern solves this problem by encapsulating the common and specialized logic to
create an object in unrelated classes.
3.b Filter
The Filter pattern allows objects that perform different transformations and computations on streams
of data and have compatible interfaces to be dynamically connected to perform combinations of
operations on streams of data.
4.a Dynamic Linkage
Allow a program, upon request, to load and use arbitrary classes that implement a known interface.
4.b Virtual Proxy
If an object is expensive to instantiate and may not be needed, it may be advantageous to postpone its
instantiation until the object is needed. The Virtual Proxy pattern hides the fact that an object may not
yet exist from its clients, by having them access the object indirectly through a proxy object that
implements the same interface as the object that may not exist. The technique of delaying the
instantiation of an object until it is actually needed is sometimes called lazy instantiation.
5 Model-View Controller (MVC)
Divide application into three components:
Model--encapsulates core data and functionality, independent of input and output
considerations.
View--responsible for display of information to the user.
Controller--Associated with each view. Receives input events which are translated into
service requests for the model or view.
Concurrency Patterns
6.a Single Threaded Execution
Some methods access data or other shared resources in a way that produces incorrect results if there
are concurrent calls to a method and both calls access the data or other resource at the same time.
The Single Threaded Execution pattern solves this problem by preventing concurrent calls to the
method from resulting in concurrent executions of the method.
6.b Two-Phase Termination
Provide for the orderly shutdown of a thread or process through the setting of a latch. The thread or
process checks the value of the latch at strategic points in its execution.
7.a Guarded Suspension
Suspend execution of a method call until a precondition is satisfied.
7.b Balking
If an object’s method is called when the object is not in an appropriate state to execute that method,
have the method return without doing anything.
7.c Producer-Consumer
Coordinate the asynchronous production and consumption of information or objects.
8.a Scheduler
Control the order in which threads are scheduled to execute single threaded code using an object
that explicitly sequences waiting threads. The Scheduler pattern provides a mechanism for
implementing a scheduling policy. It is independent of any specific scheduling policy.
8.b Read/Write Lock
Allow concurrent read access to an object but require exclusive access for write operations.
Howdy-
Thank you for checking out the Wing Ding Design Pattern Study Group mailing
list.
The original Wing Ding was an informal group that I ran along side the
larger Seattle AutoCAD Users Group (1988-1991). Where the larger user
group was formal, had monthly presentations, and so forth, the Wing Ding
was purposefully unstructured so us techies could get together and talk
shop.
This reincarnated Wing Ding was created in 1998 to study the seminal book
"Design patterns" by Gamma et al:
http://www.hillside.net/patterns/books/#Gamma
We are indebted to Joshua Kerievsky of Industrial Logic for creating and
sharing the study guide that we used:
www.industriallogic.com/papers/learning.html
Shortly after the Wing Ding began, for practical reasons (traffic) it split
into two groups: Seattle and Eastside (Bellevue). I host the Seattle group
and Steven Lewis <smlewis@...> hosts the Eastside group.
Both the Seattle and Eastside Wing Dings have finished Industrial Logic's
study guide of the "Design Pattern" book. After much discussion, the
Seattle Wing Ding decided to continue by studying selected patterns from
various sources, though mostly patterns from the book "Patterns in Java" by
Mark Grand that we had not yet covered. The Eastside Wing Ding has chosen
to continue by studying Donald Norman's seminal book "Design of Everyday
Things" (a must read!).
In the next few days, I'll update my home page to contain information about
the Seattle Wing Ding. The URL will be:
http://www.halcyon.com/josgood/wingding
I'll post another note here when the page is up.
Cheers, Jason Osgood
------------------------------------------------------------------------
eGroup home: http://www.eGroups.com/list/wingding
Free Web-based e-mail groups by eGroups.com
This list supports the Wing Ding Design Pattern study groups (Seattle and
Eastside). On here you'll find meeting announcements and general discussions.
Both the Seattle and Eastside Wing Dings have just finished the "Design
Patterns" book. Seattle is continuing with selected patterns. Eastside is
studying Donald Norman's "Design of Everyday Things."
Jason Osgood 3/27/99
Group Manager: wingding-owner@egroups.com
To subscribe, send a message to wingding-subscribe@egroups.com or go to the
e-group's home page at http://www.egroups.com/list/wingding