A lot of readers have asked me to provide a better, centralized, location for the source code for my books. With this in mind, I’ve created a new Source Code web page on my website. All you need to do to use it is locate the name of the book whose source code you need and click the associated link or Download button. Not all of my books appear on the Source Code page yet, but I’m working on it. If you find that you can’t locate a book you desperately need, please let me know at John@JohnMuellerBooks.com. I’ll do my best to help you make great use of my books. Please continue to frequent this blog for updates and news about my books.
The Fisherman by Brigid Malloy is a children’s book that is remarkably fun, contains some really amazing art, and also teaches a lesson. Our society is based on the concept that winning is everything and that failure is always awful. I’ve talked about this issue before in my Defining the Benefits of Failure post. However, this book takes an entirely different twist on the topic by viewing a failure as a success. I thought it was a pretty amazing lesson to teach younger people who are used to hearing that they must be first in absolutely everything. In fact, I’d recommend more than a few adults read this book too.
I read this story to my 9 year old grandniece and she was quite taken with it. She thought the fisherman was quite funny and kept pointing out various elements of the art that weren’t immediately apparent to me (mostly because I was reading the text). She remained engaged for the entire story, which says a lot for a child that is sometimes distracted by absolutely everything. Most important of all, she got it! The story helped her understand that success isn’t everything and she liked the idea that the fisherman was happy and comfortable at the end.
Is this a good book? Yes, it’s a great book! This is one of the few times I find myself at a loss to say anything whatsoever negative about a book except that it’s not available for sale on Amazon. You must currently go to the author/illustrator’s website to buy a copy (see link in the first paragraph).
There is a mistake on page 188 of C++ All-in-One for Dummies, 4th Edition that is based on a supposed April Fool’s prank that was actually initiated on March 26, 2018 (see https://www.modernescpp.com/index.php/no-new-new) and spread throughout the Internet to sites such as: https://www.fluentcpp.com/2018/04/01/cpp-will-no-longer-have-pointers/. The problem with pranks, especially pranks that linger because the people who perpetuate them haven’t removed them, is that other people tend to believe them, as in this post: https://stackoverflow.com/questions/59820879/are-new-and-delete-getting-deprecated-in-c#. Later, much later, as in the note on the Fluent C++ site, people admit that it was a joke, but still leave the errant material in place.
After I had discovered that this information was a joke, I had meant to remove two sentences from the book, but somehow they stayed intact. The two sentences in question appear in the “Understanding the Changes in Pointers for C++ 20” section:
Readers who already know something about pointers need to be aware of the changes in pointers for C++ 20, which is why it appears first. The essential thing to remember as you move to C++ 20 (where
new is deprecated) and then to C++ 23 (where
new is removed) is that pointers are going to change.
If you find any other references in the book that state that
new is deprecated or removed, they too will be modified or eliminated during the next printing. I apologize for any problems that the error has caused, especially to readers who are new to C++, and have submitted an errata to the publisher so that the error is fixed during the next printing. If you have any questions at all about the book, please contact me at John@JohnMuellerBooks.com.
Five people now have a copy of C++ All-in-One for Dummies, 4th Edition coming their way. Please wait four to six weeks for delivery and let me know when you receive your book. These people are:
- Eva Beattie
- Thomas McQuillan
- Michael Flores
- Syam Poolla
- Tom Taylor
I hope that each of you enjoys the book and will provide a review of it on Amazon. Thank you for your support, it’s really important to me. Your reviews will help other readers as well. If you have any questions at all about the book, please contact me at John@JohnMuellerBooks.com.
I’ve just released a new book, C++ All-in-One for Dummies, 4th Edition, and I’d love to give five people in the US a chance to read it for free (I can’t accept requests from other countries due to the amount of postage required to send a book to you). There’s only one catch. In exchange for the free book, I’d appreciate your review of it on Amazon.com. Your reviews are important because they give other people some idea of what the book is like outside of my opinion of it.
This new edition contains an amazing amount of changes from the 3rd Edition, many of which you requested. Of course, I started by updating everything, so you see the latest version of Code::Blocks used in this book. Working with Code::Blocks makes C++ coding a lot easier, but Code::Blocks tends not to hide the details or add any odd background code like some IDEs do. In addition to the updates, you can expect to see these changes:
- Instructions on how to use your mobile device to write C++ code.
- Updates on how to work with
- Using functional programming techniques.
- Employing new operators, such as the spaceship operator.
- Understanding modifications to the Standard Library.
This new edition of the book comes in at a whopping 912 pages, so there is no expectation that you’ll read it cover-to-cover. What I would appreciate is your honest viewpoint on the topics that appeal to you most. If you’d like to participate in this drawing, please contact me at John@JohnMuellerBooks.com by 8 March 2021 by email with a subject of “C++ Book Drawing”. I need your name and address. I’ll post the winners of the contest (sans email addresses) in a future blog post.
In the past, I discussed how the Internet of Things (IoT) could eventually cause a wealth of problems on the Internet, including security breaches, in a number of my books and articles. Some of my strongest warnings came in Build Your Own PC on a Budget and Security for Web Developers, but I included warnings in other places as well. Unfortunately, the worst case scenario has occurred according to the ComputerWorld article, Armies of hacked IoT devices launch unprecedented DDoS attacks. Yes, your DVR or smart television might have turned into a zombie at this point and now works for someone else committing crimes. All it takes is a little negligence on your part and your device will take a walk on the dark side.
The article is worthwhile reading because the statistics sound like something out of a bad science fiction novel. If anything, my warnings were too tame and I should have used my imagination a bit more in exploring just how bad things could get. Yet, I’ve received e-mail from readers who found the warnings I did provide barely believable. It didn’t seem possible that something as simple as the router installed to provide broadband support for your digital telephone could possibly cause any sort of problem. After all, your old telephone system never went on the attack. The thing is, any device that connects to the Internet today probably has enough intelligence to do harm, especially the IoT devices that everyone assumes just work.
IoT devices are actually some of the best targets for hackers. The users who have them barely know how they work, have no clue that they should change the password, and wouldn’t care even if they could figure it out. After all, the goal is to see Sunday afternoon football, not to configure security for a device. This worry can even extend to IoT sex toys, websites like Lovegasm (https://lovegasm.co/blogs/sex/bluetooth-sex-toys-hacking-privacy) have a story on how hackers hacked into a person’s Bluetooth sex toy. Vendors share in the blame because anyone with even a modicum of common sense would know that users have no desire whatsoever to change device passwords. IoT devices should go out with a unique password printed in a place that the user can easily find on the device, should it ever become necessary to access the device (and it might not ever become necessary). If hackers faced a unique default password for every device, the IoT devices would likely remain relatively secure unless hackers could somehow figure a pattern out in the password assignments. Ensuring the unique password is printed on the device means the user won’t lose it.
It’s not as if changing IoT device passwords is easy anyway, so hackers have every reason to believe that the default password is still in place for the majority of these devices. A recent device purchase pointed out to me that some IoT devices view even password changes as unwelcome user fiddling-it took nearly 20 minutes of reading to discover how to change the password using an arcane set of remote control clicks. Until this situation changes, you must expect that hackers will continue to use IoT devices to perform various kinds of attacks and that device owners will continue to remain oblivious about their cherished device’s life of crime. Let me know your thoughts on IoT security at John@JohnMuellerBooks.com.
This has been an interesting year in the garden. In looking at the Harvest Festival 2015 post, I see a year that offered me what I would call the standard garden items. Not so this year. The problems began with a late frost that wiped out my grapes and pears. In fact, it nearly wiped out my apples as well, but I learned a curious lesson with the fruit this year because of the apples. All the outer apple trees had no fruit, but those in the center of the orchard did have some fruit. In other words, the trees on the outside protected those on the inside. I didn’t get a lot of fruit this year, but it isn’t a big deal because my larder is setup to provide multiple years’ worth of any particular item. The lesson I learned was not to prune too heavily when the weather is uncertain (as it was this year). In fact, the reason the apples survived as they did was because I didn’t have time to prune them much at all.
The garden also behaved quite oddly this year due to the weather. The Wisconsin winter was semi-mild this year without nearly as much snow as normal, so different bugs survived than normal. In addition, the weather was either hot or cold, without a lot of in between this summer. It has also been the fourth wettest summer on record. All these changes produced prodigious amounts of some insects that I don’t normally see and the vegetables didn’t produce as expected.
As an example of odd behavior, I normally have a hard time growing cauliflower. This year I grew huge cauliflower and one plant is attempting to grow a second head, which is something that never happens here. On the other hand, broccoli, a plant that always does well, didn’t even produce a head this year. All I got were some spikes that didn’t taste good (they were quite bitter). The rabbits didn’t even like them all that well. The cauliflower is usually plagued by all sorts of insects, but this year there was nary a bug to be seen. The point is that you need to grow a variety of vegetables because you can’t assume that old standbys will always produce as expected.
Two other examples of odd behavior are okra (which normally grows acceptably, but not great) and peppers (which often produce too well for their own good). This year I’m literally drowning in beautiful okra that gets pretty large without ever getting tough, but the peppers are literally rotting on the plant before they get large enough to pick. I’m not talking about a few peppers in just one location in the garden either—every pepper plant completely failed this year.
Location can be important and planting in multiple locations can help you get a crop even if other people are having problems (and I didn’t talk to a single gardener this year who didn’t have problems of one sort or another). One example in my case were potatoes. I planted six different varieties in six completely different locations in the garden. Five of those locations ended up not producing much of value. A combination of insects destroyed the plants and tubers. All I got for my efforts were rotting corpses where the potatoes should have been. The last area, with Pontiac Red potatoes, out produced any potato I’ve ever grown. The smallest potato I took out of this patch was a half pound and the largest was 1 ¼ pounds. I didn’t even find any of the usual smallish potatoes that I love to add to soup. The potatoes were incredibly crisp and flavorful. The odd thing is that this patch was in an area of the garden that doesn’t usually grow potatoes very well.
A few of my garden plantings didn’t seem to mind the weather or the bugs in the least. My peas did well, as did my carrots. I grew the carnival carrots again because the colors are so delightful and even canned, they come out multiple colors of orange, which dresses up the shelves. I also grew of mix of yellow wax and green beans this year. The two beans work well together canned. They have a nicer appearance than just yellow or just green beans in a can. However, because the two beans have slightly different tastes, you also get more flavorful meals out of the combination.
I still stand by the statement I made long ago when starting this blog, every year is both a good and a bad year. Because I planted a wide range of vegetables and ensured I didn’t plant all the vegetables in a single location in the garden, I ended up with more than enough vegetables to can or freeze. No, I didn’t get all of the vegetables that I had hoped to get, but I definitely won’t starve either. My larder is quite full at this point. Let me know your thoughts on ensuring a garden has a significant variety of items in it to ensure success at John@JohnMuellerBooks.com.
A number of people have contacted me to tell me that the downloadable source for Machine Learning for Dummies isn’t appearing on the Dummies site as described in the book. I’ve contacted the publisher about the issue and the downloadable source is now available at http://www.dummies.com/extras/machinelearning. Please look on the Downloads tab, which you can also find at http://www.dummies.com/DummiesTitle/productCd-1119245516,descCd-DOWNLOAD.html and navigate to Click to Download to receive the approximately 485 KB source code file.
When you get the file, open the archive on your hard drive and then follow the directions in the book to create the source code repository for each language. The repository instructions appear on Page 60 for the R programming language and on Page 99 for Python. I apologize for any problems that the initial lack of source code may have caused. If you experience any problems whatsoever in using the source code, please feel free to contact me at John@JohnMuellerBooks.com. Luca and I want to be certain that you have a great learning experience, which means being able to download and use the book’s source code because using hand typed code often leads to problems.
A number of people contacted me about this post and wondered whether I still feel the same way about Memorial Day. The fact of the matter is that I feel even more strongly that the need to recognize the ultimate sacrifice made by fellow Americans to assure our freedom should take precedence on this day. As I read about the overwhelming odds faced by veterans in the newspaper, magazines, online, and in various veteran’s sources, I become even more aware of the lifelong commitment that anyone who has spent time in the military makes. Some things simply can’t be fixed—the commitment, the sacrifice, and the awful truth of the outcome of decisions made to help our country are permanent. Those who made the ultimate sacrifice paid the highest price of all to ensure that everyone else can enjoy the freedom this country has to offer.
For many people, Memorial Day, which is also known as Decoration Day, is simply another day to spend time with friends and family. Of course, every veteran would agree that the reason for the sacrifice is so that people could spend time with friends and family. Everyone loves a good picnic or barbecue and being free to gather as we wish is important. The freedom to do what you want, when you want to do it, is an important right. Memorial Day is all about remembering, at least for a moment, the cost of that freedom.
I’m writing this post on Friday. Like many people, I won’t be in my office today. In fact, I’m making it a true day off—I’m not even bringing my computers up. About now, I’ve spent some time thinking about the guys I served with in the Navy and said a prayer for their well being. I’ve also thought about all those people who came before me and have served since my time—people who gave of themselves. However, I have to wonder just how many people have thought of those who died (or even the veterans who managed to live through it all).
In preparing for the post today, I wanted to find something interesting—something I haven’t discussed in years past. It was a bit surprising that Google returned all sorts of unexpected results. The first entry was from Wikipedia, which is quite nice, but hardly noteworthy. However, the next several entries were about the things that could (and should) surround Memorial Day, but didn’t discuss the main event at all. There were entries about the weather, finding the food you need for your picnic, the potential for wet conditions ruining the Memorial Day celebration, and an ad for Travelocity. At least I didn’t go ten straight entries without finding something worthwhile. The next entry was a CNN presentation of the difference between Memorial Day and Veteran’s Day. I then went another 14 entries before I found something that was actually related to Memorial Day. So, out of the top 20 hits on Google, 18 of them talked about the weather, picnics, travel, television shows, and all sorts of things that really don’t have anything to do with Memorial Day.
Fortunately, you don’t have to follow the crowd. You can choose to celebrate the true meaning of Memorial Day, which is to remember those who have made the ultimate sacrifice to ensure you have the freedom to live as you wish to live. Take time this Memorial Day to provide a moment of silence at your picnic or other festivity. No one is asking you to be somber for the rest of the day, just to take a quick time out in remembrance. After all, all those fellows in Arlington (and other cemeteries worldwide) thought your freedom was worth far more than a moment of silence, they gave their lives to attain it.
I’ve written more than a few times about the role that emotion plays in books, even technical books. Technical books such as Accessibility for Everybody: Understanding the Section 508 Accessibility Requirements are tough to write because they’re packed with emotion. The author not only must convey emotion and evoke emotions in the reader, but explore the emotion behind the writing. In this case, the author’s emotions may actually cause problems with the book content. The writing is tiring because the author experiences emotions in the creation of the text. The roller-coaster of emotions tends to take a toll. Three common emotions that authors experience in the writing of a book and that authors convey to the reader as part of communicating the content are apathy, sympathy, and empathy. These three emotions can play a significant role in the suitability of the book’s content in helping readers discover something new about the people they support, themselves, and even the author.
It’s a mistake to feel apathy toward any technical topic. Writers need to consider the ramifications of the content and how it affects both the reader and the people that the reader serve. For example, during the writing of both Python for Data Science for Dummies and Machine Learning for Dummies Luca and I discussed the potential issues that automation creates for the people who use it and those who are replaced by it in the job market. Considering how to approach automation in an ethical manner is essential to creating a positive view of the technology that helps people use it for good. Even though apathy is often associated with no emotion at all, people are emotional creatures and apathy often results in an arrogant or narcissistic attitude. Not caring about a topic isn’t an option.
I once worked with an amazing technical editor who told me more than a few times that people don’t want my sympathy. When you look at sympathy in the dictionary, the result of having sympathy toward someone would seem positive, but after more than a few exercises to demonstrate the effects of sympathy on stakeholders with special needs, I concluded that the technical editor was correct—no one wanted my sympathy. The reason is simple when you think about it. The connotation of sympathy is that you’re on the outside looking in and feel pity for the person struggling to complete a task. Sympathy makes the person who engages in it feel better, but does nothing for the intended recipient except make them feel worse. However, sympathy is still better than apathy because at least you have focused your attention on the person who benefits from the result of your writing efforts.
Empathy is often introduced as a synonym of sympathy, but the connotation and effects of empathy are far different from sympathy. When you feel empathy and convey that emotion in your writing, you are on the inside, with the person you’re writing for, looking out. Putting yourself in the position of the people you want to help is potentially the hardest thing you can do and certainly the most tiring. However, it also does the most good. Empathy helps you understand that someone with special needs isn’t looking for a handout and that they don’t want you to perform the task for them. They may, in fact, not feel as if they have a special need at all. It was the realization that using technology to create a level playing field so that the people I wanted to help could help themselves and feel empowered by their actions that opened new vistas for me. The experience has colored every book I’ve written since that time and my books all try to convey emotion in a manner that empowers, rather than saps, the strength the my reader and the people my reader serves.
Obviously, a good author has more than three emotions. In fact, the toolbox of emotions that an author carries are nearly limitless and its wise to employ them all as needed. However, these three emotions have a particular role to play and are often misunderstood by authors. Let me know your thoughts on these three emotions or about emotions in general at John@JohnMuellerBooks.com.