Dolphin Book (is there one yet?)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Dolphin Book (is there one yet?)

Christopher J. Demers
I have a friend that is asking about books for Dolphin that might be good
for someone who is new to Smalltalk.  I saw a message from Ted Bracht (last
December) saying "A beginners book will be in the shops by July 2001".  I
was wondering if that was still on target?

I suppose I will pass this link:
http://www.object-arts.com/wiki/html/Dolphin/SmalltalkBooks.htm on to my
friend, but I would really love to be able to refer people to a
Dolphin-centric book one day.

Chris


Reply | Threaded
Open this post in threaded view
|

Re: Dolphin Book (is there one yet?)

Andy Bower
Chris,

> I have a friend that is asking about books for Dolphin that might be good
> for someone who is new to Smalltalk.  I saw a message from Ted Bracht
(last
> December) saying "A beginners book will be in the shops by July 2001".  I
> was wondering if that was still on target?
>
> I suppose I will pass this link:
> http://www.object-arts.com/wiki/html/Dolphin/SmalltalkBooks.htm on to my
> friend, but I would really love to be able to refer people to a
> Dolphin-centric book one day.

I'll let Ted provide the definitive answer but I believe the book is now "on
target" for September.

Best Regards,

Andy Bower
Dolphin Support
http://www.object-arts.com
---
Are you trying too hard?
http://www.object-arts.com/Relax.htm
---


Reply | Threaded
Open this post in threaded view
|

Re: Dolphin Book (is there one yet?)

Ted Bracht-2
"Andy Bower" <[hidden email]> wrote in message news:<9gmfuj$9spfs$[hidden email]>...

> Chris,
>
> > I have a friend that is asking about books for Dolphin that might be good
> > for someone who is new to Smalltalk.  I saw a message from Ted Bracht
>  (last
> > December) saying "A beginners book will be in the shops by July 2001".  I
> > was wondering if that was still on target?
> >
> > I suppose I will pass this link:
> > http://www.object-arts.com/wiki/html/Dolphin/SmalltalkBooks.htm on to my
> > friend, but I would really love to be able to refer people to a
> > Dolphin-centric book one day.
>
> I'll let Ted provide the definitive answer but I believe the book is now "on
> target" for September.
>

Indeed, the publisher has it 'in production', which means that if
there's no hickups it should be available in the book shops by the end
of september.

It's taken a bit longer as the reviewers came back with some excellent
feedback that required quite a bit of reorganisation but makes the
book significantly better.

Watch this space....

Ted


Reply | Threaded
Open this post in threaded view
|

Re: Dolphin Book (is there one yet?)

Joey Gibson-2
In article <[hidden email]>,
[hidden email] says...

> Indeed, the publisher has it 'in production', which means that if
> there's no hickups it should be available in the book shops by the end
> of september.
>
> It's taken a bit longer as the reviewers came back with some excellent
> feedback that required quite a bit of reorganisation but makes the
> book significantly better.

    That's great news. Could you possibly post the table of contents so
we'll know what to expect?

Joey


-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
-----==  Over 80,000 Newsgroups - 16 Different Servers! =-----


Reply | Threaded
Open this post in threaded view
|

Re: Dolphin Book (is there one yet?)

Christopher J. Demers
In reply to this post by Ted Bracht-2
Ted Bracht <[hidden email]> wrote in message
news:[hidden email]...
>
> Indeed, the publisher has it 'in production', which means that if
> there's no hickups it should be available in the book shops by the end
> of september.

It will be great to finally have a Dolphin Smalltalk book!  I actually just
found it listed on Amazon.com as "Dolphin Smalltalk Companion" available for
preordering for $39.99.  They don't have much information about it yet.
They show it listed as available on October 5th.

Chris


Reply | Threaded
Open this post in threaded view
|

Re: Dolphin Book (is there one yet?)

Steve Taylor
In reply to this post by Ted Bracht-2
Ted Bracht wrote:

> Indeed, the publisher has it 'in production', which means that if
> there's no hickups it should be available in the book shops by the end
> of september.

Excellent. Dolphin has needed a book for ages.

Would you like to tease us by posting a table of contents?

> Ted



                            Steve


Reply | Threaded
Open this post in threaded view
|

Re: Dolphin Book (is there one yet?)

Ted Bracht-2
>
> Would you like to tease us by posting a table of contents?
>

The TOC might look different from what you expect from a book on a
programming language, as I didn't want to just focus on the language.
Instead I take the reader through the process of building a complete
application. Each 'component' of the application covers some design
decisions and of course uses some base classes which are explained at the
time. See also the preface.

Note that there might still be some small changes in the TOC (especially the
page numbers of course ;-))

Hope you enjoy it.

Ted

(I tried to attach it but my news provider didn't let me, so I just pasted
it below)

The Dolphin Smalltalk Companion

Preface
When I tried to learn Smalltalk, it took me a long time to work out how real
applications could be built in Smalltalk. I could see how to execute
snippets of code, and even how to make those snippets of code permanent. I
bought a couple of books, and they all helped me to understand more of the
language, how to become a better object oriented designer, how to make
better use of the standard classes, but I still couldn't see how to build a
complete application in Smalltalk.

This book will therefore take you through the creation of a complete
application with Dolphin Smalltalk. In that this book differs from most
other books on Smalltalk, which typically explain the language and show you
some examples. This book will not cover all the ins and outs of the
Smalltalk language, there are too many good books around to compete with.
See Appendix I for a number of suggested additional reads. But as we will be
writing quite some Smalltalk code throughout this book, chapter 1 gives a
brief introduction to the Smalltalk language and the Dolphin Smalltalk
development environment. Appendix II contains some additional explanation on
the major Dolphin Smalltalk classes.

One of the most difficult choices to make in a tutorial is which domain
(business case) to use in which the material can be explained. The domain
has to have something recognisable for the reader so that the reader can
translate the examples into his own environment. It also has to have enough
aspects so that a wide variety of the available functionality of the
programming language can be demonstrated and it has to allow to start
simple. This tutorial is built around an application where we can maintain
the scores for Formula 1 motor racing. We will start with simple building
blocks which we will later on glue together in an application framework.
After that we will build some more advanced components that allow us to
import data and show data in graphs. We will come across some issues that
are specific for Formula 1 racing, but many of the functionality that we
will be building can easily be adopted for other sports. Formula 1 racing is
about teams and drivers. Most other sports have equivalents, like in
football where it is all about teams and the players within the teams. In F1
a driver scores points, which also make up the team's points. In football
the player scores, the end result defines the points scored by a team.
Stretching the example a bit you can even think of the similarities with a
business application like a bank account application. In a bank account
application you have 'static data' like the bank account which bear
similarities with the team, and 'dynamic data' -  the transactions, which
bear similarities with the results of races.

As Smalltalk is an object oriented programming language, we will approach
the design of the application by trying to find the objects in the domain
and build the functionality around those objects which together make up the
application.

Acknowledgement
First of all I want to thank Debbie Griffiths for her patience and support
while I was writing this book. Even though she didn't and surprisingly still
doesn't have any interest at all in the subject, she was always willing to
listen to whatever I wanted to explain to her to order my thoughts.

I would also like to thank Blair McGlashan and especially Andy Bower from
Object Arts, for their encouragement to produce this book and of course for
bringing Dolphin Smalltalk on the market. Furthermore I want to thank Peter
Kriens for enthusiastically introducing me to Smalltalk back in the 80s.
Thanks to Till Schümmer, Roel Wuyts and Stephane Ducasse this book has got
the structure and contents it currently has. Finally I want to thank Steve
Waring and Ian Bartholomew for their coding suggestions and everybody else
in the Dolphin Smalltalk newsgroup community who supported me with coding
issues and other suggestions.


Table of Contents
1 Introduction 9
1.1 The Smalltalk Language 9
1.2 The Dolphin Smalltalk Environment 12
1.2.1 The File setup 12
1.2.2 The Launcher 13
1.3 The Workspace 14
1.4 Playground 15
2 The Application 23
2.1 What are we going to build 23
2.2 How are we going to build the Application 24
2.3 A standard pattern for the Components 24
3 The First Application Component - The Team 26
3.1 The Team Model 26
3.1.1 The Class Hierarchy Browser 27
3.1.2 Creating our First Class 31
3.1.3 Summary 34
3.2 The Team Presenter 34
3.2.1 Summary 38
3.3 Creating a View 38
3.3.1 The View Composer 39
3.3.2 The Team View 41
3.3.3 Testing the Team View 44
3.3.4 The Finishing Touch 45
3.3.5 The Microsoft-look 46
3.3.6 Summary 48
3.4 Some basic maintenance work 49
4 The Driver Component 51
4.1 The Driver Model 52
4.1.1 The Abstract RacingActor Class 53
4.1.2 Modifications to the Team class 54
4.1.3 The Driver class 55
4.1.3.1 The Driver's Name 56
4.1.3.2 The Driver's Age 59
4.1.4 Summary 60
4.2 The Driver Presenter and View 60
4.2.1 The Driver Presenter 61
4.2.2 The Driver View 62
4.2.3 Testing the View 64
4.2.4 Summary 67
4.3 The Driver's Gender 67
4.3.1 The 1-of-n variable in the Model 67
4.3.2 Presenting 1-of-n variables 69
4.3.3 Radio Buttons 69
4.3.3.1 Testing the Radio Button Behaviour 69
4.3.3.2 A Simple Layout Manager 71
4.3.3.3 Radio buttons on the Driver Dialog 72
4.3.4 List Presenters 74
4.3.5 Summary 79
4.4 Some loose ends 79
4.4.1 The Caption 80
4.4.2 A Picture Paints a Thousand Words 81
4.4.3 Summary 84
5 The Season Component 85
5.1 The Season Model 85
5.1.1 The Collection Classes 85
5.1.2 The Score Definition 89
5.1.3 Summary 90
5.2 The name of an object 90
5.3 The Season Presenter and View 91
5.3.1 The SeasonDialogPresenter definition 92
5.3.2 The Season View 93
5.3.3 Copy and DeepCopy 94
5.3.4 Summary 97
5.4 Multi Column lists 98
5.4.1 A virtual list 98
5.4.2 The Multi Column ListView 99
5.4.3 Summary 101
6 The Racecar Component 102
6.1 The Racecar model 102
6.1.1 The RaceCar Class Definition 102
6.1.2 The Starting Number 104
6.1.2.1 The LookupTable and the IdentityDictionary 106
6.1.3 The Team Association 107
6.1.4 The Default driver 110
6.1.5 The link with the Season 111
6.1.6 Summary 111
6.2 Error handling and the Debugger 112
6.2.1 Error Handling in Dolphin Smalltalk 112
6.2.2 The Debugger 114
6.2.3 Debugger playground 115
6.2.4 Another way of writing Smalltalk 117
6.2.5 Our own Error Handling Mechanism 118
6.2.6 Summary 121
6.3 The RaceCar Presenter and View 121
6.3.1 The Lists of Teams and Drivers 121
6.3.2 The RaceCarView as subclass of the Shell class 123
6.3.3 Building the View for the Race Cars 125
6.3.4 Summary 127
7 The Circuit Component 128
7.1 The Basic Circuit Model 128
7.1.1 The length of the circuit 129
7.1.2 The Lap Record 131
7.1.3 Summary 135
7.2 The Circuit Presenter and View 135
7.2.1 The Milliseconds TypeConverter 139
7.2.2 The Length of the Circuit 141
7.2.3 Summary 144
8 The Race Component 145
8.1 The Race Model 145
8.2 The Race Presenter and View 149
8.2.1 The Race Dialog 150
8.2.2 The Main Race View 152
8.2.3 Entering the Results 156
8.3 Sorting the starters 159
8.4 Summary 163
9 Bringing the Components Together 165
9.1 The Basic Racing Application Model 166
9.1.1 The Model 166
9.1.2 The Race Application Presenter 170
9.1.3 The Application Framework View 170
9.1.4 Summary 174
9.2 Maintaining Items 174
9.2.1 The maintenance methods 174
9.2.2 Context Menus and Menu Bars 175
9.2.3 Enabling and Disabling commands 176
9.2.4 Toolbars 178
9.2.4.1 Large Toolbar Buttons 182
9.2.4.2 Using your own bitmaps 183
9.2.5 Summary 184
9.3 Integrating the Season Dependent Components 184
9.3.1 The Tree Model 185
9.3.1.1 The Basic TreeModel 185
9.3.1.2 The Virtual Tree - Parent - Child relationships 189
9.3.1.3 The Virtual Tree in the Racing Application 191
9.3.1.4 Setting up a Default Tree 193
9.3.1.5 Summary 194
9.3.2 Add branches for the Race and the RaceCars 194
9.4 Tidying up the Race Application Components 199
9.4.1 Global Variables revisited 199
9.4.2 Opening a Race for the Results 201
10 The Results 203
10.1 The Results for the Season 203
10.1.1 Collecting the results 203
10.1.2 A presenter for the results 204
10.1.3 Showing the Results in the Application Shell 206
10.1.4 Dynamic resizing of MultiColumn Lists 208
10.1.5 Summary 210
10.2 A Graph of the Results 210
10.2.1 A short information requirement analysis 210
10.2.2 The LineGraph View 211
10.2.3 A User Definable Graph 216
10.2.4 Summary 223
11 Saving and Importing the Race Data 224
11.1 Saving Object Data 224
11.1.1 Modifications to the Models 227
11.1.2 Modifications to the Presenter and the View 225
11.1.3 Summary 229
11.2 Importing Comma Separated Data 229
11.2.1 A Generic Import Class 230
11.2.2 The Data Import Wizard 234
11.2.3 Summary 241
11.3 Importing from the Web 241
11.3.1 The HTML Import model 241
11.3.2 The Web data Import Wizard 247
11.3.3 Summary 251
11.4 XML Data 251
12 Application Deployment 253
12.1 Making an Executable 253
12.2 Web Deployment 253