Errata

Mono: A Developer's Notebook

Errata for Mono: A Developer's Notebook

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted By Date submitted Date corrected
Printed
Page 1
2nd Paragraph,the last two words of this paragraph;

The text "...you move on toChapter 4."

NOW READS:
"... you move on to Chapter 4."

Anonymous    Sep 01, 2004
Printed
Page 2
First paragraph, under the section labelled "Linux"

The mono homepage HAS CHANGED to http://www.mono-project.com.

Anonymous    Sep 01, 2004
Printed
Page 9

The screenshot of MonoDevelop shows templates no longer available in
the MonoDevelop application.

Anonymous   
Printed
Page 22
Say "Hello" to the World, 3rd sentence

Choosing from among the Choosing from among the panoply of Mono IDEs
and installing your IDE of choice is discussed in Chapter 1.
Should be:
Choosing from among the panoply of Mono IDEs and installing your IDE
of choice is discussed in Chapter 1.

Anonymous    May 22, 2015
Printed
Page 24
Example 2-2

Before the code listing there is

"Example 2-2 shows Hello.cs with the fully specified Hello.World
namespace [...]"

but the code is missing the following:

namespace Hello.World {
[...]
}

Anonymous   
Printed
Page 25
Example after 1st paragraph

The first part of the example is missing a closing brace.

namespace OReilly {
namespace DevelopersNotebook {
public class HelloWorld {
...
}
}

should have an extra } at the end:

namespace OReilly {
namespace DevelopersNotebook {
public class HelloWorld {
...
}
}
}

Anonymous    May 22, 2015
Printed
Page 32
in the source code of about boxing is a copying operation

In the code comments, it says that j is a copy of of i, yet it looks like j is a copy
of o.

Anonymous    May 22, 2015
Printed
Page 35
Last Paragraph

"You instantiate an exception just you would..."
should be:
"You instantiate an exception just as you would..."

Anonymous    May 22, 2015
Printed
Page 39
1st paragraph

There is no while loop in the code shown on page 37.

Note from the Author or Editor:
Page 39, paragraph 1 should read as follows:

Having handled all the events, we set the FileSystemWatcher's EnableRaisingEvents flag to true to start it. The Console.ReadLine() method will wait for the return key to be pressed on the console, allowing the program to handle events as they happen.

Anonymous    May 22, 2015
Printed
Page 40
First paragraph

The text states that XmlSerializer uses the SerializableAttribute at determine how to
serialize an object to XML. This is incorrect. The last sentence of the paragraph
should read:

Instead, the serialization formatters in System.Runtime.Serialization use reflection
to look inside a serializable class and determine how to serialize it.

Also, on page 39, the second sentence of the last paragraph should be changed to the
following:

System.SerializableAttribute is one attribute that shows up quite often; it's used to
mark a class which can be serialized, which is necessary for remoting (see "Access
Remote Objects" in Chapter 7).

Anonymous    May 22, 2015
Printed
Page 48
2nd paragraph

"gacutil.exe is the tool responsible for installing assemblies in the GAC.s"
should be:
"gacutil.exe is the tool responsible for installing assemblies in the GAC."

Anonymous    May 22, 2015
Printed
Page 48
1st paragraph

AssemblykeyFile
should read:
AssemblyKeyFile

Note from the Author or Editor:
Note: that should be a capital K

Anonymous    May 22, 2015
Printed
Page 52
Line 7 of Syscall.cs

Syscall.chmod(file, (FileMode)0x777);
should be:
Syscall.chmod(file, (FileMode)0x1ff);

lower in the page;
...changes it permissions to 0x777 (rwxrwxrwx), full read....
should be:
...changes it permissions to 0x1ff (0777 octal), full read....

Anonymous    May 22, 2015
Printed
Page 59
Program output

In the program listing of Example 3-5 the lines:
Console.WriteLine(variables.GetType( ));
Console.WriteLine(variableNames.GetType( ));

Those two lines HAVE BEEN DELETED.

Anonymous    Sep 01, 2004
Printed
Page 69
Output listening

According to example 3-9, the following is wrong
"started on" and "at"
it should have been:
"on" and "started at"

Anonymous    May 22, 2015
Printed
Page 76
2nd paragraph

Since writing the book, the name of the NUnit library has changed to
'nunit.framework', not 'NUnit.Framework'.

The new compile line should read:

$ mcs -target:library -r:nunit.framework MathTest.cs

Anonymous    May 22, 2015
Printed
Page 76
3rd sidebar

The sidebar should appear inline in the text, between the last para on p 76 and the first para on p 77.

Anonymous   
Printed
Page 77
sidebar

The sidebar should appear inline in the text, before the first para on the page.

Anonymous   
Printed
Page 96
Last paragraph

The compiler directive shown as:

mcs Main.cs -pkg:gtk-sharp -resource:monkey.png,monkey.png

should be:

mcs Main.cs -pkg:gtk-sharp -resource:monkey.png,monkey.png

(remove the )

Anonymous    Sep 01, 2004
Printed
Page 135
2nd paragraph

The second occurrence of the exception System.InvalidCastException should actually read GConf.NoSuchKeyException

Anonymous    May 22, 2015
Printed
Page 153
first code block

args.RetVal = (true|false) causes a crash, it should be args.RetVal = (1|0) (using
Mono 1.0.1). Furhtermore, when returning true (1) the link is NOT opened but when
returning false (0).

AUTHOR: This is a bug found in gecko-sharp 0.5 (and maybe earlier versions) and will be fixed sooner
or later to match watch the book says.

Anonymous    Sep 01, 2004
Printed
Page 160
Code sample following second paragraph

The command
"xgettext -o monodn-intl.potMain.cs" is missing a space and should read
"xgettext -o monodn-intl.pot Main.cs"

Anonymous    May 22, 2015
Printed
Page 163
Line 1 of Catalog.GetString (String s)

IntPtr inptr = Marshal.StringToHGloablAuto (s);
should be:
IntPtr inptr = Marshal.StringToHGlobalAuto (s);

Anonymous    May 22, 2015
Printed
Page 171
4th para under "How it works"

The text of the entire paragraph previously appeared in boldface and HAS BEEN REFORMATTED
as plain text.

Anonymous    Sep 01, 2004
Printed
Page 178
Just before "Where to learn more"

"a XmlNode" should be "an XmlNode"

Anonymous    May 22, 2015
Printed
Page 192
4th paragraph

The 3rd paragraph describes "runtime serialization" as a way to serialize an object,
possibly to a binary format, and "XML serialization", as a way to serialize an object
to an arbitrary XML format.

The 4th paragraph says:
"In this lab, we show you how to use runtime serialziation to serialize and object
instance to XML..."

This sentence has two issues:
1: The example uses XML serialization, not runtime serialization. The example uses
System.Xml.Serialization; runtime serialization would use
System.Runtime.Serialization.Formatters.Soap (binary and SOAP being the current
runtime serializers).

2: "...to serialize and object instance..." should to "...to serialize an object
instance...". That is, s/and/an/.

Note from the Author or Editor:
On page 192, paragraph 4 should read as follows:

In this lab, we show you how to use XML serialization to serialize an object instance to XML, and to deserialize XML back into an object instance.

Anonymous    May 22, 2015
Printed
Page 206
command line input around the middle of the page

The command line had an extraneous whitespace character after -out:bin/, and NOW READS:

$ mcs -t:library -r:System.Web.Services
-out:bin/DirectoryLister.dll DirectoryLister.cs

Anonymous    Sep 01, 2004