Thursday, December 29, 2016

Christmas 2016

I am just back from my Christmas break in Sydney. This was the first Christmas in years that I have had to stay at a hotel and not with a relative.

To recap.

24th December.

I flew to Sydney with Tiger air. This was my first flight with Tiger and It was generally OK. We left Melbourne a bit late but got into Sydney on time.



I had booked into the IBIS hotel in the Sydney suburb of Mascot. I chose this hotel because it is close to the airport and close to Mascot train station. It makes getting around Sydney quite easy.


The IBIS is quite a nice hotel and I would recommend it to anyone wishing to travel to Sydney.

25th December 2016. Christmas day.

Christmas celebrations were held at the home of my niece Caitlin Hill and her husband Jarrod.  They live in the suburb of Mosman which is located on Sydney's north side. About 20 people attended and I met a few new people. It was a fun day and I am glad that I came up for it.







26th December. Boxing day.

Boxing day is always a quite day for me. I just try to sleep in and relax, watch the cricket at the MCG and the start of the Sydney to Hobart yacht race on TV.

In the afternoon I caught a train into the City and visited the Microsoft store. The city was packed with tourists and shoppers. It was a really hot day and not very pleasant.

27th December.

My last day in Sydney for the year. I went to Cronulla Beach and spent some time in the surf and walking along the beach. This is the only chance I get all year to go to the beach and it was a nice day.

28th December.

I fly back to Melbourne and catch the train back to Bendigo. Good to go away but good to be back.



Sunday, December 18, 2016

Seeing Rogue One and a small car bingle

Today was a somewhat bittersweet day for me. In the afternoon I had a small accident in my car. I was reversing out of a driveway and scraped the right side of the car, leaving some rather ugly scrape marks on the rear right side. I was really annoyed with myself.

In the evening I saw the new Star Wars Movie, Rogue One. I really enjoyed it, although the plot was a bit complicated at times. It is the first standalone Star Wars movie as it takes place before the time of the original movie.

I do recommend you go and see it.




Thursday, December 15, 2016

Lentara meeting and thank you lunch

This morning, those of us who are employed at Lentara, had a meeting with two of the principles. They told us of their plans for next year, which was interesting.

We were also treated to a very nice lunch at the Rifle Brigade Hotel. I had a very juicy porterhouse steak, which tasted great. I am glad they shouted the meal.

In the afternoon, a new book arrived. It was Murach's Visual Basic 2015, of which I will have to read and write up a review. I am looking forward to it.


Saturday, November 26, 2016

Melbourne Motorcycle Expo - 2016

This morning, I traveled to Melbourne to view the 2016 Melbourne Motorcycle Expo at the Melbourne Showgrounds in Flemington.

This show is held every two years. There were plenty of motorcycles and accessories on display. I was particularly interested in viewing the Kawasaki stand as I wanted to inspect the Kawasaki Verysys 650 and 300 models. Generally speaking the show did not disappoint. I actually got to ride a Harley-Davidson while at the show. It was on a stationary stand but it was my first time on a Harley.

The only downer for me was that I almost missed my train home.





Wednesday, November 2, 2016

My first paper run

Today, I did my first catalog run. I delivered paper catalogs to the local area.  It took about 5 hours and the day was hot in the end but I got the job done. I will keep this going till Christmas to make some extra money. Lets see how this goes.

Monday, October 31, 2016

Last day of October 2016

Today was memorable for two things. At BUCO, a new regime officially took over the place. Unfortunately, they have fired a couple of people, which I am disappointed about.

I also started a new part time job as a catalog deliverer. This will take place every Wednesday and go for a few hours. I should be able to earn some extra income from them. I will see how it goes.

Monday, October 24, 2016

Last weekend. My mothers 90th birthday party.

My family celebrated my mothers 90th birthday party last weekend. It was held at the St George Sailing Club at Dolls point in Sydney. Nearly all the family came and we had a great afternoon all up. I would not have missed this for the world even though it was a bit of an expensive weekend. I stayed at the Ibis hotel in Sydney, which is located near Sydney Airport.





Saturday, October 8, 2016

Lake Eppalock Spillway overflowing.

Today, I visited the lake Eppalock Spillway for the first time in years. The spillway was overflowing.

It was an awesome sight to see. It came about because it has rained all throughout the winter. This only happens very rarely, in fact this is only the third time since the year 2000 that this has happened.

What a sight, what a blessing. This bodes well for the upcoming summer.




Sunday, October 2, 2016

The Cronulla Sharks finally win a grand final.

Today, the Cronulla Sharks finally won their first premiership. It has only taken them about 50 years to do it. They beat the Melbourne Storm 14-10 in the grand final. It has been  along time. They came into the competition in 1967 and had to wait this long to get a premiership. Well done the Sharks. Keep it up.




The original team in 1967. Things have changed since then.


Saturday, October 1, 2016

AFL Grand Final day 2016

Today was the the AFL Grand Final for 2016. It was a match between my team, the Sydney Swans and the Western Bulldogs. In the end, the Bulldogs won by 22 points. It was a great match, the lead see sawed back and forth for 3 quarters but my team eventually lost.

Actually, I was not sorry to see the Bulldogs win as it was their first premiership in 62 years. 
The last time they won was back in 1954, the year I was born. Well done to the Western Bulldogs.


Friday, September 9, 2016

Ben-Hur



This evening, I saw the movie Ben-Hur at the Bendigo Cinemas. It was a modern remake of an old Classic. I found it entertaining enough, although it was not as good as the original which starred Charlton Heston.

I saw it with some other men from my church. This was an official men's night out and afterwards we retreated to a nearby farm for a barbecue. It was nice to have a good night out even though the weather was unpleasant.

Sunday, July 3, 2016

July 3rd

Today was July 3rd 2016. In the evening I saw the movie Independence Day - Resurgence. Not a bad movie. A bit corny but entertaining.

Friday, July 1, 2016

1st July 2016

I have not updated this blog for quite some time a there was really nothing to report that was worth reporting.

Today was a bittersweet day however. Bitter, because a sum of money that I was expecting did not arrive. Sweet, because I finally solved a difficult computer problem that had  been worrying me for some time.  I finally made some real progress today.

Sunday, May 15, 2016

Eurovision 2016 - Close but no cigar for Australia

This last weekend saw the running of the 61st edition of the Eurovision Song Contest. It was held in Stockholm, Sweden and it was by far the best one I have watched so far. The two hosts, Petra Meade and Mans Zemerlow were just great and the show was a hoot.

Australia was represented by Dami Im who sang "The Sound of Silence". When the jury voting came in, Dami was a long way in front, but when the televotes were counted, Australia just got pipped by Ukraine at the last minute. 

I was sad for Dami, but glad for Ukraine, considering all the bad stuff that has been happening there.




Monday, May 2, 2016

Murach's JQuery - my book review



Murach’s jQuery
 2nd Edition
By Zak Ruvalcaba and Anne Boehm

Section 1 – JavaScript essentials for jQuery users


Chapter 1 – Page 3 – Introduction to web development.

As I am already familiar with basics of web development, I only skimmed through this chapter. I typed in your email program and it worked OK (after I got rid of my typing errors!). I only needed to skim through the rest of this chapter as I am quite familiar with the contents.


Chapter 2 – Page 49 – A JavaScript subset for jQuery users.

As I read through this chapter, I found it a good refresher. I did not need to study it in depth as I am already familiar with the concepts presented.


Chapter 3 – Page 99 – How to script the DOM with JavaScript.

This chapter provided a good refresher in the whole idea of scripting the DOM. I had studies this in your previous book (JavaScript 2nd Edition), but it was still worth going through it to update the concepts presented.
DOM scripting is fairly complicated is fairly complicated and it was worth studying all the examples that were presented.
All the examples worked well and I got up to speed very quickly.


Chapter 4 – Page 133 – How to test and debug a JavaScript or jQuery application.

I did not bother with this chapter as I have found that you only learn debugging by practice.



Section 2 – jQuery essentials

Chapter 5 - Get off to a fast start with jQuery.


Page 158 – 159 Introduction to jQuery.

These pages were a nice introduction to just what jQuery can do.


Page 160 – 161 How jQuery can simplify JavaScript
development

The example you present on page 161 sure looks much simpler than the original FAQ application.


Page 162 – 163 How jQuery and plugins can simplify JavaScript development.

It was good to explain that jQuery is an add on to JQuery.


Page 164 – 165 The basics of jQuery programming.

These pages provided a good discussion of how to use the jQuery library in your application, as well as the migrate plugin.

Page 166 – 167 How to code jQuery selectors.

I had to read through these pages a few times to make sense of them. The key bit was that the item inside the parenthesis was a CSS selector. The key thing to understand that the dollar sign refers to the jQuery library and that we code selectors by using the CSS syntax.

Page 168 – 169 How to call jQuery methods.

These pages gave me the impression that jQuery is certainly a lot easier to use than JavaScript.

Page 170 – 171 How to use jQuery event methods.

These pages provided a good exercise on how to code the jQuery event methods.

Page 172 – 175 The email application in jQuery.

By studying the jQuery code on page 175, it was noticeable that there is a difference with the earlier versions of the Email List application.

Page 176– 177 A working subset of selectors, methods and event methods.

These pages were a lot to take in. I think that it will take practice eto get good at it.

Page 178 – 179 The most useful methods.

All I could do was read through these methods and try to make sense of them.


Page 180 – 181 The most useful event methods.

Again, all I could do was read through these methods and try to make sense of them.

Page 182 – 183 Other event methods that you should be aware of.

Same as in the previous examples. It will take time and practice to get used to them all.

Pages 184 – 191 Three illustrative applications.

Again, all I could do was read through these methods and try to make sense of them.

Page 184 – The FAQ’s application.

It was impressive just how brief the JavaScript application is. JQuery certainly trims things down a fair bit.

Page 186 – The image swap application in jQuery.

Again, what is interesting is just how much simpler the JavaScript code is.

Page 190 – The image Rollover application in jQuery.

Same as in the previous two examples.

Perspective.

This chapter did provide a useful introduction into a working subset of the most useful jQuery selectors. While it does give me an idea of what there is to work with, I can see that it will take time and practice to get seriously good at it. It is just as well that you presented some good examples to work with.

Sunday, May 1, 2016

Adelaide United win their first grand final

This afternoon, I watched the A-League grand final on TV. In the end, Adelaide United were too strong for the Western Sydney Wanderers. Both sides had previously lost there only two previous grand final appearances, so I would be third time lucky for one team but third time a runner up for the other. In the end, Adelaide United won 3-1. It was a very entertaining game but I was happy to see Adelaide win. They deserved it.



Monday, April 18, 2016

Panasonic TZ80 Roadtrip

This evening, the local Camera House retailer hosted an event called the TZRoadtrip in their shop.

This involved a visit from professional photographer Rob Mulally who was on a national road trip promoting the latest Panasonic TZ  range of cameras.

 He gave an interesting one hour discussion about this camera and afterwards we were able to go and take some photos of the Marilyn Monroe statue in Bendigo's Rosalind park using the TZ80 and TZ110.

 It was good to learn about what is new in the camera world and to get to play with a new camera.








Saturday, April 16, 2016

Australia's role in Bible Prophecy

This evening, I attended a lecture held at the Bendigo Library. The lecture was entitled "Australia's role in Bible Prophecy".

The lecture was hosted by the Bendigo Revival Fellowship.


The lecture essentially dealt with Australia's role in World war 1, particularly the capture of Beersheeba by the Australian Light Horse in 1917. This victory allowed for the capture of Jerusalem a few weeks later. The pastor who hosted the meeting went to some length to explain how it all fitted into Bible Prophecy. Very detailed but very interesting.





Wednesday, March 23, 2016

Risen, the Movie





This evening, my Church had a movie night at the local cinema. We saw the movie "Risen". It is a movie that deals with the resurrection of Jesus, told from the point of view of a non-believer. It was a very good movie and well worth seeing. I though it was fascinating to see a movie that dealt with the resurrection itself, not just the crucifixion. 

Wednesday, February 17, 2016

Some success with bulk file uploading

Today was a free day for me, but I still went into work at BUCO to try to get on top of a problem we are having. I need to be able to bulk upload some of our data to the Department of Social Services in order to be eligible for grants. Working out how to do this had been eluding me but by the afternoon, I had successfully loaded up one file at least. It was a good day overall and in the evening I finally got back to the gym for a session.

Unfortunately, I am still battling with indigestion.

Thursday, February 11, 2016

Another visit to the Doctor.

This morning, I had to pay my six monthly visit to Dr Barclay, who is my surgeon. After a brief examination, Dr Barclay booked me in for a Colonoscopy. This will check to see whether or not that I have any bowel cancer. Lets hope not. Should happen in about a month.

Sunday, January 24, 2016

My 62nd Birthday - and the Sydney Thunder win the Bigbash final

Today marks my 62nd birthday. Yes, I am all of 62 years old. I didn't really do anything to celebrate my birthday today. I got lots of phone calls and messages on Facebook which was nice.

In the evening, my favourite Cricket Club the Sydney Thunder won the Big Bash league grand final for the first time in their history. I was so happy, I ordered a commemorative T-Shirt for myself, as a birthday present for myself.

So, it was a pretty good day overall.


Wednesday, January 13, 2016

A hot Wednesday

Today was my day off for the week. The temperature got to 40 degrees Celsius. I took a dip in the local pool later on.

I visited Botanic Village in Kangaroo Flat earlier. I had a look at the premises. Very nice. If  I can afford it I might look at moving in one of these days.

Check them out at http://www.botanicvillage.com.au/.

Monday, January 11, 2016

Our local MP (Member of Parliament) pays BUCO a visit



Today, my workplace had the privilege of getting a visit from Ms Lisa Chesters, who us the federal MP for the Bendigo Region. She bought the local media up with her and this will guarantee BUCO some good free publicity, (and hopefully some more support). I can't wait to see what is in the local paper tomorrow.


Saturday, January 9, 2016

Book review - Murachs Javascript - 2nd Edition


Here is my book review of Murach's Javascript - 2nd Edition ………………………………………………………………………………………….

 Section 1 Get off to a fast start with JavaScript development.


 Chapter 1 


Pages 4-5 How a web application works 

Well explained text. Calling the Internet “the cloud” was interesting.

 Pages 6 and 7. How static web pages are processed.

Well explained. Made the process very clear but I already knew this.

 Pages 8 and 9. How dynamic web pages are processed.

 These pages gave a good explanation of server-side processing. The diagram using the three servers was well done. Perhaps you should have explained the difference between dynamic web pages and static web pages here.

 Pages 10 and 11. How JavaScript is used for client-side processing.

 I feel that you could have explained that Client side processing happens on the browser as against server side processing.

 Pages 12 and 13. What you need to know about the ECMAScript specification? 


You gave a good history lesson page 12. On page 13 you wrote: • Allows you to run in strict mode. What is “strict mode”. • Allows several methods to that make it easier work with arrays. Arrays and methods are not explained at this stage. • Adds a safer way to create an object and more control over object properties. What are objects? Not explained just yet. Writing this stuff here could be confusion for new people not familiar with Javascript.

 Pages 14 to 17. The components of a JavaScript application.


 As I already understood HTML and CSS I just skimmed through his section.

 Page 18. The JavaScript. 

I ran the example for Chapter 1 in my browser and was pleased to see that it worked well the first time. I had downloaded the files from Murach.com. I felt that it was important to talk about DOM scripting as JavaScript works by changing the Document Object Model. This very fundamental.

 Page 20 – 31. The HTML skills you need to know fore this book. 

As I am familiar with HTML and CSS, I just skimmed through this section of the book. I typed in the web stuff on page 25 to help get a refresher with attributes.

 Page 32. How to test a JavaScript application.


 Testing can only be a matter of experience. Page 32 was mostly common knowledge. I usually use file explorer to find my files. Page 33 was common knowledge.

 Page 34. How to find errors in your code


Everything worked OK. Could be scary for new developers.

 Page 36. How to provide cross browser compatibility.

 Very good explanation about how to use shiv’s etc.

 Page 38 – 45 Aptana.

 I am not a big fan of Aptana. I use Codelobster or Notepad++.

 Perspective

A good introduction. I don’t think it went too fast.

   Chapter 2. Getting started with JavaScript.


 Page 52. How to include JavaScript in an HTML document.

I typed in the example you had. Everything worked well the first time and was easy to follow. Well explained.

 Page 54 - 55. How to include JavaScript in the body of an HTML document.

Your examples worked well and were easy to understand.

 Page 56 - 57. The JavaScript syntax. 

These pages were well written and easy to understand. This is important as good syntax needs to be understood. 

Page 58. How to create identifiers. 

These pages were well written and easy clear. The rules for creating identifiers was well spelt out. There was a good discussion about using camel case and underscores. 

Page 60. How to use comments. 

Self-explanatory.

 Page 62. How to use objects, methods and properties.

 I thought that these two pages were well explained. The second page did a good job of reinforcing the first one. These concepts need to be understood. Very well explained. 

Page 64 - 65. How to use write and writeln methods in the document object. 

These methods were well explained. I followed the examples which worked well. But I am not sure why JavaScript bothered with writeln if you have to use


   to make it work.


Page 66. How to work with JavaScript data.

The concept of the three data types were clear enough. I am assuming that this book is aimed at people with some type of programming knowledge. So far everything is clear but it is not a beginner’s book.

Page 68. How to code numeric expressions.

JavaScript uses largely the same expressions that most other languages use. The order of precedence is the same as in most other languages. The author did well to explain where to use the increment and decrement operators as that can be crucial to the program.

Page 70. How to work with numeric variables.

I have seen this before. Nothing new here. This will make more sense to new users with
 practice though.

Page 72. How to work with string and Boolean variables.

This was a good explanation about how to use string variables. What was new here was
 using += to concatenate a string. I had not seen that before.

Page 74. How to use ParseInt and ParseFloat methods.

This was a good explanation about ParseInt and ParseFloat. I had not heard of Nan before
 this.

Test Exercises.
Both the Miles Per gallon program and the Test Exercises program worked well. Made
sense of what has been taught so far. I feel that these 2 chapters have got me off to a good start.

Chapter 3. The essential JavaScript elements

Page 84. How to use the basic control statements.

The IsNan method was new to me. I was familiar with the other operators. 

Page 86. How to code if statements.

It says on page 86 “if you are new to programming, take it slower”. This is not a book for
 beginners as JavaScript is not a language for beginners. While overall, I understood what
 was written here, I feel that this may be too terse for a beginning programmer to understand.

Page 88-89. How to code while and do while loops.

The examples were easy enough to follow. 

Page 90-91. How to code while and do while loops.

Again, the examples were easy enough to follow. 

Page 92. The three illustrative applications.

Without getting too much into detail, I typed in all three of your practice programs, and after getting rid of my typing errors, discovered they all worked well. They all did a good job of
conveying the concept of loops and conditionals.

Page 98 - 104. How to work with arrays.

After reading through these pages, I noticed how close they were in syntax to C and Java. The text was easy to follow and the example worked well.

Perspective

I felt that this chapter did a fine job of explaining how conditionals, loops and arrays worked. The examples were good and I feel that it gives me a basis to move on to the next chapter.

Chapter 4. How to work with JavaScript objects, functions and events.

Page 108. How to use objects to work with data.

confirm (string) is new. I have seen parseInt and parseFloat before. We are clearly starting to get into the DOM structure here.

Page 110. How to use Textbox and Number objects.

I found reading through the text on page 110 slow going, although the examples on page 111 were clear to follow.

Page 112. How to use Date and String objects.

I found reading through the text on page 110 slow going, although the examples on page 113 were clear to follow.

Page 114. How to use DOM to change the text for an Element.

Page 114 was well explained. The image on page 115 helped.
It was good that you pointed out that elements that do not have closing tags are called Void or singleton elements and do not have any child nodes.

Page 116 - 119. How to use functions.

I am quite familiar with functions. Your examples all worked well, except for the showYear
function on page 119.
The first line was incorrectly coded as 
function() showYear {
instead of
function showyear ()  {

Page 120 -121. When and how to use local and global variables.

You gave a good explanation about local and global variables.
It was good to point out what happens if the var keyword is left out.

Page 122 -123. When and how to use Strict mode.
You gave a good explanation about strict mode and why it is used. It was good to point out the best coding practices for variables.


Page 124 -125. How to handle events.
Reading through the pages made things clear.
I types in the example on page 127 and it worked fine.
Things are coming together quite well I feel.

Page 128 – 133. Two illustrative applications.

The Miles per gallon program.
After reading through the text on pages 128-129, the coding in the program made sense. I
typed in the program from my keyboard and could not get it to work! When I opened up the exercise file you provided it worked just fine! Maybe it was just my crappy typing.

Page 130 – 133. The email list application.

I found your explanation of the program easy to follow and the way it was presented made sense. It worked well the first time.

Perspective

This was a complicated but important topic but it made sense the way it was presented. I learned a few new things such as Nan, chaining, strict etc.
I am also starting to see how JavaScript uses the DOM in order to process the browser. It is coming together just nicely.

Chapter 5. How to script the DOM with JavaScript.

Page 140 – 143. DOM scripting properties and methods.

The discussion on DOM scripting made good sense. It is becoming clear how JavaScript works.

Page 144 – 145. The methods of the Document and Element Interfaces.

I read through these page sand it appears to make sense. I really do fee l that the reader should have more small examples to work with.

Page 146 – 147. The properties of the DOM HTML specification.

You talked here about the DOM Core specification followed by the DOM HTML specification. I thought that this got a bit confusing.

Page 148 – 151 The FAQ’s application.

I studied the text carefully. The actual examples worked well. I felt hat I understand what is written, but I can see how JavaScript takes practice.	

Page 152 – 153 How to script forms and controls.

Easily understandable.

Page 154 – 155 How to script Textbox, TextArea and Select objects.

Easily understandable. I am familiar with these.

Page 156 – 157 How to script radio and Checkbox objects.
Well explained.

Page 158 – 158 How to use Methods and Events for form and controls
Well explained.

Page 160 – 163 The register application.

The example worked well. The JavaScript is becoming easy enough to follow by now.

Page 164– 165 How to add new nodes to the DOM.

After reading the text, it was not at all immediately apparent.

Page 166– 167 How to add new nodes to the DOM.

I read through the text but without a good example to work with it was not immediately apparent what was being discussed here.


Page 166– 173 The Register application with a table.

The program worked well. It was fascinating to see how JavaScript adds a table to the
browser after the form has been filled in.

Perspective
I learned a lot from this chapter. But I can see that I will need plenty of practice with
JavaScript to really get the hang of it.

Chapter 6. How to test and debug a JavaScript application.

I feel that you only learn debugging by practice so I skipped over this chapter.

Section 2
Javascript essentials.

Chapter 7. How to work with numbers, strings and dates.

Page 200 - 201 How to work with numbers.

I wonder how many people really use positive and negative infinity? The rest of the pages
were understandable.

Page 202 - 203 How to work with numbers.

I am not sure why they they have such things as abs, but there must be a reason for that.

Page 204 - 205 How to generate a random number.

I ran the example on Page 205 and it did not seem to want to output the second half of the
program.

Page 206- 209 How to generate a random number.

I tried this application and it worked well. After studying the JavaScript I found that it all
made sense.

Page 210- 211 How to generate a random number.

This was a good explanation about escape sequences.

Page 212- 213 How to use the methods of the String Object.

I am familiar with these methods as they are similar to methods used in other languages I
have studies in the past.
Your explanation was clear enough.

Page 214- 215 Examples of working with strings.

I am not sure why anybody would want to put leading or trailing spaces on a string but your examples worked well enough.

Page 216- 217 How to work with dates and times.

I thought your discussion was overly complicated. I did not follow all of it.

Page 218- 219 The methods of the Date object.

A good discussion of the Date object. Your examples worked well.

Page 220- 221 Examples of working with dates.

Your examples all worked well and I am fairly sure that I could use them in my own
applications of I needed to.

Page 222- 226 The Count Down application.

This program worked well when I ran it. I followed the JavaScript code and made good
sense of it. I am sure I could use this program in my own applications if I wanted too.

Perspective
This chapter provided a very good introduction to numbers, strings and dates. 

Chapter 8. How to code control statements.

Page 230 – 231 How to code conditional expressions.

I had never heard of “type coercion” before. Also “Identity operators” are new to me. I feel 
that it is a god idea to make sure your operators are of the same type.

Page 232 – 233 How to code relational operators.

I did not know that relational operators also perform type coercion. These pages clearly 
show that you need to be aware when making comparisons.

Page 234 – 235 How to use logical operators.

I am familiar with conditional expressions but was not aware that there was an order of 
precedence. I feel that it is a good idea to use parentheses to clarify the order of evaluation.
I had not heard of short circuit evaluation.

Page 236 – 237 How to use the selection structures.

It was interesting to hear about one-line IF statements. I just think that it is better coding to put your code on several lines.

Page 238 – 239 How to code switch statements.

I am familiar with switch statements. I am not sure why you would want to employ fall through in a switch statement though.

Page 240– 241 How to use the conditional operator.

I had never heard of a Ternary operator before I read this book. I am familiar with
conditionals.

Page 242– 243 How to use AND and OR operators for selections.

I was unaware that AND and OR operators return the last value of the last operand they
evaluate.
The text of the book here was complicated at times. For example, what is the point of using a method that does not exist? Surely you would make sure and object exists before coding it

Page 244 - 245. The Invoice Application.

I tried this program and it worked first time. After studying the JavaScript, it was easy to see how it all worked. A nice program.

Page 248 - 249. How to code while and do loops.

I am familiar with do and while loops so I picked this up easily enough.

Page 250 - 251. How to code while and do loops.

Same as with for loops. These examples all worked well.

Page 252 - 253. How to use the break and continue statements.

Same as with for loops. These examples all worked well and I picked up the idea well.

Perspective

What I learned from this chapter is that JavaScript has its own particular ways of doing loops, conditionals, iterations etc. and returns values in ways we need to be aware of.


Chapter 9. How to work with arrays and web storage.

I was glad that you made out at the start that all JavaScript arrays are dynamic.

Page 258 – 259 How to create and use an array.

This was generally a good explanation of arrays. You did not specifically tell the user what arrays are used for. I am sure that the author expects pre-knowledge on the part of the reader.

Page 260 – 261 Add and delete array elements.

You did a good job of describing how to add and delete array elements. I had never heard of a “sparse” array before this.

Page 262 – 263 How to use for loops to work with arrays.

I read through these pages and then ran the examples on page 263. All worked well. Having good simple examples to work with as you go made learning much easier.

Page 264 – 265 How to use for-in loops to work with arrays.
I had never heard of for-in loops before this. All the examples you showed on page 265 worked well in practice.

Page 266 – 267 How to use the methods of the array objects.

It was interesting to see all the various ways you can manipulate an array. Doing sort() and reverse() was great to learn. It would have been nice if you had provided more simple examples just here.

Page 268 – 269 Examples of the Array methods.

I studied the code and did not have any trouble understanding just how these methods work. I am not sure why you would want to splice an array however.

Page 270 – 273 The ECMAScript 5 methods.

Things started to get a bit more technical here. After reading through the first three pages, I ran the examples on page 273 and they did not all work as expected. These pages got things rather complicated.

Page 274 – 275 Other skills for working with Arrays.

On these pages ALL the examples worked and everything made sense.

Page 276 – 277 Other skills for working with Arrays.

I had never heard of an associative array before, that is one that uses strings as indexes. The description was good and all your examples worked well.

Page 278 – 279 How to create and use an array of arrays.

This was news to me. No multidimensional arrays so far. Things are getting complicated here. Still understandable but getting complicated.

Page 280 – 283 How to use web storage.

This was completely new to me. In fact, a bit of a revelation. These pages provided a good discussion on local and session storage. I can see where this can be a good advantage over server-side storage. I was also unaware that you could use the Chrome browser to tell what other websites are storing information about me.

Page 284 – 290 The task manager application.

I studied both these programs. They will make more sense with a bit of practice I am sure.

Perspective

This was a very comprehensive chapter on arrays. I did not realize they could be so complicated or that there were so many ways they could be modified. Certainly a well written chapter although a few things might have escaped me.

Chapter 10. How to create and use functions.

Page 294 – 295 Basic skills for working with functions.

After reading through the text on page 294, I tried the examples on page 295. All worked 
well. 

Page 296 – 297 How values are passed to functions.

The difference of being passed by value and passed by reference were all well explained. The examples on page 297 all worked well. 

Page 298 – 299 How lexical scope works.

The difference between local and global scope was well explained here. The examples on
page 299 all worked well. 

Page 300 – 301 How to create and use Javascript libraries.

This was a good introduction to using JavaScript libraries. I am not sure what “separation of concerns” means.

Page 302 – 309 The Task Manager application.

I read through these pages and found that the example you provided worked well. The
JavaScript code was quite understandable.

Page 310 – 311 Object-oriented skills for working with functions.

I did not understand your first example on page 311. The rest made sense. All examples worked well.

Page 312 – 313 How to use the this keyword and the call and apply methods.

Your text on page 312 was a bit complicated. I am not sure what is the purpose of the this keyword. The examples on page 313 all worked well enough.

Page 314 – 315 How to use the method to get to the this keyword.

I am afraid that I am still not sure of the purpose of the bind keyword.

Perspective

This chapter did provide a good discussion on functions and their uses. I felt that I generally got a good grasp on the subject.

Chapter 11. How to create and use objects.

Page 320 – 321 Basic skills for working with objects.

I did not know that there was an object of the Object type. These pages provided a good discussion about Object types.

Page 322 – 323 Basic skills for working with objects.

Page 322 provided a good explanation about objects and object literals. The examples you provided on page 323 all worked well.

Page 324 – 325 How to extend, modify or delete an object.

Page 324 provided a good discussion about how to extend, modify or delete objects. I am
glad you talked about referring to objects by reference and not by direct value.
Frankly, I did not find your explanation or your examples very clear here. This was
disappointing as constructors are a fairly important topic.

Page 328 – 358 Rest of the chapter

Unfortunately, I rather gave up on the rest of this chapter as I did not find your explanations very clear at all. I am afraid you are starting to lose me a bit here. I did have to look to other sources, notably Bill Tabor of http://www.LearnVisualStudio.NET” for a clearer and simpler explanation of this topic. 

Perspective

The chapter started off well but you lost me as you went along.

Chapter 12. How to use regular expressions, handle exceptions, and

validate data.

Page 362 – 364 How to use regular expressions.

This was easy to follow. All the examples worked well.

Page 364 – 365 How to create regular expression patterns.

This did start to get a bit complicated. I just think a simpler explanation plus maybe one example per pattern might be a good idea.

Page 366 – 367 How to create regular expression patterns.

I read through the page and generally found your explanation easy enough to follow. The examples all worked well but this is a bit of a complicated subject.

Page 368 – 369 How to create regular expression patterns.

Really getting a bit complicated now.

Page 370 – 371 String methods that use regular expressions.

As I go through the examples provided I find that the all work well. But your explanation on
page 370 is complicated.

Page 372 – 373 Regular expressions for data validation.

 I read through these pages and did my best to understand them, I found it complicated.
Page 372 ends with the notion that many programmers find these patterns online and use
them without fully understanding them. I agree.

Page 374 – 375 How to handle exceptions.

I found this easy to follow and all your examples were self explanatory. Same with pages
376 – 377.

Page 378 – 379 The Register application.

This program worked well. I will need to study the code well to get a good understanding of it, but I feel that it pulls together everything I have learned so far. I do believe that this type of validation is at the heart of JavaScript.

Perspective.

I found this topic complicated in places. I can see where data validation is a key component of JavaScript.

Section 3
Advanced JavaScript skills

Chapter 13. How to work with events, images and timers.

Page 396 – 397 How to work with events.

You did a good job of explaining how and event travels down the DOM tree. You did a good job explaining about the three types of events.

Page 398 – 399 How to attach and detach event handlers.

Page 398 provided a very complicated explanation about event handlers. I thought it was interesting that at the end of the page the author said that you usually use JQuery for event handling.

Page 400 – 401 How to cancel the default action of an event.

I had never heard of the a “default” action before. But thinking about it, it makes sense to have one. I did not realize you could enable the default action. I assume that the third example works with all elements.

Page 402 – 407 The FAQs application.

I read through the text and code and it is all starting to come together for me. Although it is not hard to see why people are using JavaScript Libraries for these things.

Page 408 – 411 How to work with images.

When I tried the code on page 409 it did not work at all. I coded the examples on page 411 and it still did not work.

Page 412 – 415 The Rollover application.

The Rollover application worked well. The HTML and the JavaScript was easy to understand.
Page 416 – 419 How to use timers.

I though t your explanation bit complicated and did not come away with a good understanding of timers.

Page 420 The Slide Show application.

Your example worked well but the coding is becoming more complicated. I can see why developers are using JQuery.

Perspective.

This chapter did provide a good grasp of events, images and timers. But I feel things are getting complicated and I can see how it takes time and practice to become a good JavaScript programmer.

Chapter 14. How to work with closures, callbacks, and recursion.

Page 430 – 431 How to work with events.

The discussion about the scope chain was clear.

Page 432 – 433 How closures work.

When I types in and ran your examples I got a different looking result as to what you got on your page. I am not sure just why you would want to use closures at all!!

Page 434 – 435 Closures in the Rollover application.

I felt that your discussion on page 434 did not make things clearer.

Page 436 – 437 How to use closures.

I can understand why we have to make things private. An example that we could type in here would have been useful.

Page 438 – 439 How to code an immediately invoked function expression (IIFE).

When I ran the examples on page 439, the fourth example did not display anything.

Page 440 – 441 How to solve the closure loop problem.

Your fist example on page 441 gave me no results at all.

Page 442 – 443 How to work with the this keyword in closures.

When I ran your first two examples on page 443, neither would work properly.

Page 444 – 449 The Slide Show application.

The Slide Show program worked well. With practice and patience, I am sure the code will be understandable.

Page 450 – 451 How to use callbacks.

This was lot to learn here.

Page 452 – 455   How to create and use callback functions.

I am afraid that I found page 452 – 455 a bit hard to understand rather hard to understand.

Page 456 – 457   How to use recursion.

I read through these pages without any real understanding of Recursion. I am not sure of the point behind Recursion.

Page 458 – 459   A binary search recursive function.
I ran your example on page 459 and could not get it to work. Maybe it was just my crappy typing (who knows……??).

Perspective
I am afraid I struggled to get my head around this chapter. I am beginning to think that this
book is a good reference book but not a good tutorial.


Chapter 15. How to work with namespaces, modules, and custom

properties.

Page 474 – 475 How to work with namespaces.

Your discussion about Global Namespace Pollution was good to read about.

Page 476 – 477 How to create and use namespaces.

This was a good discussion which was easy to understand.

Page 478 – 479 How to create nested namespaces and use aliases.

I can see the sense of using aliases. I was not quite sure of the idea of the Namespace Creator function.

Page 480 – 481 How to prevent Global Pollution with an IIFE.

I can see why using an IIFE makes sense as everything goes out of space once the IIFE completes.

Page 482 – 487 The Task Manager Application.

Your task Manager application worked well, except in the Microsoft browser. I read through your code and tried to follow it the best I could but I have to say that things are getting complicated here.

Page 488 – 489 How to work with the Module pattern.

Not sure I quite understood it all.

Page 490 – 491 How to augment a Module.

Not sure I quite understood it all. Once again, I seemed to find this topic a bit over my head.

Page 492 – 497 The Slide Show application.

The Slide Show application worked well in my Chrome Browser. I read through the program in an effort to make sense of it all.

Page 492 – 497 The Slide Show application.

The Slide Show application worked well in my Chrome Browser. I read through the program in an effort to make sense of it all.

Page 498 – 511.
I have to say that I rather slogged my way through until the end of this chapter and tried to understand it as best I could.

Perspective

This was clearly a very advanced topic and one that I struggled to get my head around. It will take time and experience to come to grips with some of these topics. These are clearly not topic for the novice user.

Chapter 16. How to work with Javascript Object Notation (JSON).

I started reading this chapter but unfortunately, soon got bogged down. I thought the author was trying to explain to much too quickly, so I just gave up. I have seen other explanations about JSON that were much more understandable and readable. Including those at: http://www.w3schools.com and http://www.develophp.com. 

Chapter 17. When and how to use JQuery.


I did not even start reading this chapter as I have a whole book to read on the subject.

Final thoughts.

I must say that I did learn a lot about JavaScript by reading this book. JavaScript is a very
difficult subject and one that I have really tried to avoid until recently. Your book did fill me in on a good deal of the subject but there were parts, (particularly in the last chapters) that just went over my head. I found it a slog in parts. But generally, I have to say that I feel that is a
very good reference book, if not always an ideal tutorial. I would certainly keep this book
handy if I have to develop any web sites that involve complicated JavaScript in the future. 
I am looking forward to reading your book on JQuery. It should make a lot more sense after going through this book.

Thank you for sending me this book to review. It was a challenge in places, but we all need to be challenged some times.

Have an awesome and happy 2016.

Gerry Gates

Funeral of an old friend

This week, my good friend Colin Pilcher passed away after a fall at his home. I have known Colin for more than 40 years and it was sad to se...