Mac Gatekeeper Error

A number of my books, such as C++ All-In-One for Dummies, 3rd EditionBeginning Programming with Python For Dummies, Python for Data Science for Dummies, and Machine Learning for Dummies ask readers to download an IDE or other code and install it on their Mac systems. The problem is that the Mac system won’t always cooperate. For example, you might see an error dialog like the one shown for Code::Blocks:

The Gatekeeper error tells you that it won't allow you to install software from unknown publishers.
Your Mac won’t let you install software.

The problem is one of permissions. The default permissions set for newer Mac systems restrict you to getting your apps from the Mac App Store or from vendors who have signed their files. Fortunately, you can overcome this problem either temporarily or permanently, depending on how you want to use your Mac. The Fix the “App can’t be opened because it is from an unidentified developer” Error in Mac OS X blog post provides you with illustrated, step-by-step directions to perform the task using either method. Let me know if you encounter any other problems getting your Mac to install the software required to use my books at John@JohnMuellerBooks.com.

 

Working with Code in e-Books

Most of my technical readers now use e-books instead of paper books. Of course, there is a convenience factor to storing your entire library on a Kindle, even if it’s a software version of the Kindle. Of course, there are all sorts of e-book formats for your desktop system as well. The point is that electronic format makes a lot of sense when dealing with technical books.

However, e-books can cause some interesting problems and I’ve encountered a few with a number of readers now. The most important consideration is that you can’t cut and paste code from an e-book directly into your IDE and expect it to work. There are all sorts of reasons for this exclusion. For example, cutting and pasting may insert special characters into the output stream or the resulting paste may not have white space in the right places. A common problem is that publishers often convert regular single and double quotes into curly quote equivalents. The two kinds of quotes (both single and double) are completely different and the second type definitely won’t compile.

The best option when working with an e-book is to view the code in the e-book, but still get the downloadable source code for the book from the publishers website. I always provide a blog post detailing where to obtain the downloadable source for a book, when you need source code to use the book. If you can’t find the downloadable source, always feel free to contact me at John@JohnMuellerBooks.com. I want to be sure you have a great reading experience, which means having source code that actually runs in your development environment.

Another potential problem with e-books is that you may see unfortunate code breaks (despite the efforts of the publisher and myself). When you need to understand how white space works with a programming language, always review the downloadable source. The fact that the downloadable source compiles and runs tells you that all the of white space is in the right place and of the correct type. Typing the source code directly out of your e-book could result in added carriage returns or other white space errors that will cause the code to fail, even though the commands, variables, and other parts of the code are all correct.

As always, I’m open to your questions about my books. If you don’t understand how things work, please contact me—that’s why I’m here.

 

Using the Correct Product with MATLAB for Dummies

A reader recently wrote in with a problem with the example on pages 311 and 312 of MATLAB for Dummies. In this case, the reader was using the R2015b academic license edition. What the reader saw was this error:

>> A = magic(4)

A =

    16     2     3    13
    5    11    10     8
    9     7     6    12
    4    14    15     1

>> factor(sym(A))
Error using sym/factor (line 50)
The first argument must be a scalar.

It turns out that the newer version of MATLAB doesn’t provide the same support as the R2013b release used for the book. As a result, the example code doesn’t work as expected because the newer version requires different code that looks like this:

A=magic(4)
for i=1:4
    for j=1:4
        B{i,j}=factor(A(i,j));
    end
end

To get all factors double click on B in the workspace window. This workaround is needed because the newer version no longer supports the old method of performing the task.

The point is that the book is written to use a specific version of MATLAB, R2013b, so you must have that version in order to get good results. Fortunately, you can still get the R2013b release. All you need to do is go to the Mathworks site at: http://www.mathworks.com/downloads/select_release. Simply choose the R2013b release from the Download Earlier Release list after you have logged in. Please let me know if you have any questions or concerns at John@JohnMuellerBooks.com.

 

Source Code Placement

I always recommend that you download the source code for my books. The Verifying Your Hand Typed Code post discusses some of the issues that readers encounter when typing code by hand. However, I also understand that many people learn best when they type the code by hand and that’s the point of getting my books—to learn something really interesting (see my principles for creating book source code in the Handling Source Code in Books post). Even if you do need to type the source code in order to learn, having the downloadable source code handy will help you locate errors in your code with greater ease. I won’t usually have time to debug your hand typed code for you.

Depending on your platform, you might encounter a situation the IDE chooses an unfortunate place to put the source code you want to save. For example, on a Windows system it might choose the C:\Program Files folder (or a subdirectory) to the store the file. Microsoft wants to make your computing experience safer, so you don’t actually have rights to this folder for storing your data file. As a result, the IDE will stubbornly refuse the save the files in that folder. Likewise, some IDEs have a problem with folder names that have spaces in them. For example, your C:\Users\<Your Name>\My Documents folder might seem like the perfect place to store your source code files, but the spaces in the path will cause problems for the IDE and it will claim that it can’t find the file, even if it manages to successfully save the file.

My recommendation for fixing these, and other source code placement problems, is to create a folder that you can access and have full rights to work with to store your source code. My books usually make a recommendation for the source code file path, but you can use any path you want. The point is to create a path that’s:

  • Easy to access
  • Allows full rights
  • Lacks spaces in any of the path name elements

As long as you follow these rules, you likely won’t experience problems with your choice of source code location. If you do experience source code placement problems when working with my books, please be sure to let me know at John@JohnMuellerBooks.com.

 

Considering the Effects of Automation

After recently watching Disney’s new movie, Tomorrowland, I started thinking about the world that really could come about tomorrow. Of course, it will have many of the same problems we have today, but I’m sure it will also have a few new problems and hopefully, some of the old problems will see some sort of resolution. My recent forays into advanced math have given me a new perspective of just what it will take to create tomorrow. In writing both Python for Data Science for Dummies and MATLAB for Dummies I’ve come to a greater appreciation of the role that both math and science will play in creating this new world—not that there was any lack of appreciation before I wrote the books, but the vision now is clearer.

The fact of the matter is that people will require more education. Even plumbers and electricians will need to know more in order to deal with new technologies coming on the scene (think about performing tasks such as installing solar panels). It will come to a point where advanced schooling after high school (whether trade or technical) is going to become a necessity. Yes, people can still get jobs today without a college education, but those days are coming to an end with the advances in robotics I keep reading about. For example, a recent New York Times article, As Robots Grow Smarter, American Workers Struggle to Keep Up, says quite a lot about the future of low paying jobs—they simply won’t exist. Articles such as the one found in MIT Technology Review, Robots That Learn Through Repetition, Not Programming, tell the story of why this is the case. In the future, robots will learn to perform new tasks as needed. The tone of some of these articles is a bit negative because we’re viewing the future through today’s eyes.

What I see in the future are opportunities for people to create, but in a safer environment than in the past. Just as it’s difficult to see the past as it actually was (the way the people viewed things at that time), trying to view the future, even if you have some inkling of what that future might contain, is difficult. For example, imagine having to saddle your horse before you can go anywhere—people today are used to simply climbing into the car and turning the key. However, if you lived in the early 1900s, a car was a really loud, obnoxious device that would spell the ruination of society—horses were far more practical and comfortable (interestingly enough, about 40 percent of those cars were steam powered). There is a difference in viewpoint that is hard to overcome (or even imagine for that matter). A ComputerWorld article, How enterprises can use artificial intelligence, describes how technology in the movies doesn’t quite match reality. In fact, you might find some of the ways in which advanced technologies and automation are used somewhat boring. Fraud detection hardly ranks as a highly exciting way to use technology, but it reflects the practical nature of how technology sees use today.

When I see kids today doing absolutely everything on a smartphone, I come to realize that they already live in a world far different from the one I knew as a child. There is no going back. Children today have different problems than I had simply because the technology is different. If I encountered a problem, I first had to find a phone to call someone for help—children today carry their phone with them (almost as another body part). Then again, children when I grew up didn’t have the problems with obesity that children do today.

A lot of the readers I talk with every day express various feelings about automation and all it entails—some are scared, others elated. The fact is that the future has always been different. Change is a part of the human condition. We’ll live through the changes that automation will create too. Let me know your thoughts on the changes that automation will bring at John@JohnMuellerBooks.com.

 

MathWorks Promotes MATLAB for Dummies

I was incredibly pleased to receive an e-mail the other day stating that MathWorks, the makers of MATLAB, had placed a link for MATLAB for Dummies on their site. I’m always thrilled to receive that sort of recognition and I really appreciate the vendor doing it for me. MathWorks was especially helpful during the writing of the book and I thank everyone involved for their support.

Products such as MATLAB are becoming ever more important as people ask for consumer products with more and more capability, and also want smart devices with which to interact. Of course, MATLAB is used for all sorts of technical, scientific, and medical work. However, the place where most people are likely to see the effect of MATLAB is in the improved devices offered at the store, as part of appliances, and within vehicles.

I also see MATLAB as an important tool to help continue the fight to provide better accessibility aids. At some point in everyone’s life, accessibility aids become essential. If nothing else, getting older means having to use accessibility aids to continue being independent. The sooner we come up with truly effective accessibility aids, the better for everyone.

No matter how you use MATLAB, it’s a great tool for performing a wide range of tasks that require heavy duty math. Yes, you could possibly use it for simple math tasks too, but what would be the fun of that. Thanks again to the MathWorks folks for their support of my book. I really do appreciate it!

 

The Importance of Finding Work

Readers sometimes show patterns in the questions they ask and, in some cases, the pattern shows across a number of my books. When I started to note that readers were interested in discovering just how to earn a living once they have developed a new skill and that they were interested in me providing that information, I started adding a new section to many of my books, such as MATLAB for Dummies, that describes what sort of industries could use the skills the reader has learned. However, I don’t want anyone to be bored to tears either, so I made a point of listing interesting vocations. It’s my feeling that readers want to be engaged in their work. Of course, jobs with less pizzazz are always available and you might have to accept one of them—at least in the short term.

I didn’t provide such a listing for Java eLearning Kit for Dummies. My thought was that Java jobs are so plentiful that readers could probably find a job they liked without too much trouble. However, even with this book, I’ve received more than a few queries about the issue. That’s why I wrote 10 Surprisingly Interesting Ways to Earn a Living Using Java recently for New Relic. As with all my other job listings, this article focuses on jobs that could be really interesting and most definitely rewarding. Of course, not every job is for every person out there—you need to read the article to find the kind of job you like best.

One reader actually did ask why I focused my efforts on interesting (or at least, unusual) jobs. It all comes down to my personal vision of work. I get up every morning with all kinds of cool ideas to try for my books. I actually like opening my office door, starting up my systems, and getting down to writing. For me, work is an enjoyable experience—so much so, that I often forget that it’s work. I’d like other people to have that experience—to have the joy of enjoying their work so much that they really hate to leave at the end of the day.

Of course, there are other languages out there and I have other books that lack lists of jobs. If you find that one of my books is lacking this sort of information, and you really would like me to research the kinds of jobs that are available, let me know at John@JohnMuellerBooks.com. I’d like to hear which book should receive a listing of associated jobs next. In the meantime, be sure to enjoy the Java job listing. You might see your dream job listed, you know, the one you didn’t think existed.

 

Table 3-1 in MATLAB for Dummies

A reader wrote a short while ago about a potential error in Table 3-1 on page 51 of MATLAB for Dummies. Errors do creep into books during the writing process and, despite my best efforts, no one spots them until after the book appears in print. In fact, I cover this very issue in Errors in Writing. If you ever find an error in your copy of a book, I’ll do my best to verify it and then post my findings there. The updated Table 3-1 should look like this:

Table 3-1: Relational Operators

Meaning Operator Example
Less than A < B A=2;
B=3;
A<B
ans = 1
Less than or equal to A <= B A=2;
B=3;
A<=B
ans = 1
Equal A == B A=2;
B=3;
A==B
ans = 0
Greater than or equal to A >= B A=2;
B=3;
A>=B
ans = 0
Greater than A > B A=2;
B=3;
A>B
ans = 0
Not equal A ~= B A=2;
B=3;
A~=B
ans = 1

 

The area of interest is the Example column. The updated information will demonstrate the use of MATLAB in figuring out the relationships between expressions. Please let me know if you find any other errors in this book by contacting me at John@JohnMuellerBooks.com.

 

Getting Your MATLAB for Dummies Extras

The process of discovering how to use MATLAB begins when you get your copy of MATLAB for Dummies. However, it only starts there. Like many of my other books, you can also find online content for MATLAB for Dummies in these forms:

I always want to hear your questions about my books. Be sure to write me about them at John@JohnMuellerBooks.com. In the meantime, I hope you enjoy your MATLAB for Dummies reading experience. Thank you for your continued support.

Announcing MATLAB for Dummies

If you’ve ever wondered how to solve certain kinds of advanced mathematics, then MATLAB may fulfill the need for you. Schools are also using MATLAB as a teaching tool now because it provides so many visual aids. MATLAB for Dummies helps these two groups and many others. If you’ve wanted to use a product like MATLAB, but find the learning curve way too high, then you really do need this book. Here’s what you’ll find inside:

  • Part I: Getting Started With MATLAB
    • Chapter 1: Introducing MATLAB and its Many Uses
    • Chapter 2: Starting Your Copy of MATLAB
    • Chapter 3: Interacting with MATLAB
    • Chapter 4: Starting, Storing, and Saving MATLAB Files
  • Part II: Manipulating and Plotting Data in MATLAB
    • Chapter 5: Embracing Vectors, Matrices, and Higher Dimensions
    • Chapter 6: Understanding Plotting Basics
    • Chapter 7: Using Advanced Plotting Features
  • Part III: Streamlining MATLAB
    • Chapter 8: Automating Your Work
    • Chapter 9: Expanding MATLAB’s Power with Functions
    • Chapter 10: Adding Structure to Your Scripts
  • Part IV: Employing Advanced MATLAB Techniques
    • Chapter 11: Importing and Exporting Data
    • Chapter 12: Printing and Publishing Your Work
    • Chapter 13: Recovering from Mistakes
  • Part V: Specific MATLAB Applications
    • Chapter 14: Solving Equations and Finding Roots
    • Chapter 15: Performing Analysis
    • Chapter 16: Creating Super Plots
  • Part VI: Part of Tens
    • Chapter 17: Top Ten Uses of MATLAB
    • Chapter 18: Ten Ways to Make a Living Using MATLAB
  • Appendix A: MATLAB’s Functions
  • Appendix B: MATLAB’s Plotting Routines
  • Appendix C: Geometry, Pre-calculus, and Trigonometry Review

This book starts out simply and gently introduces you to the various tasks that MATLAB can perform. By the time you get done, you can perform many basic and a few complex tasks with MATLAB. The important part is that you’ll be in a position to use the tutorials and other learning aids that MathWorks provides to use with MATLAB. Making the learning process both simple and enjoyable is the main goal of this book. When dealing with a complex product such as MATLAB, you really do need the simpler introduction.

MATLAB is an amazing product. Once you start using it, you’ll wonder how you ever got along without it. Not only does it help you solve complex math problems, but you can also use it for a wide range of plotting needs (many of which are covered in the book). This book also acts as an idea generator to help you better use the capabilities of MATLAB. It’s amazing to discover just how many people use MATLAB and the ways in which they employ it.

I want to be sure you have the best possible learning experience. If you have any questions about this book, please feel free to contact me at John@JohnMuellerBooks.com. Please keep your questions book-specific. If you have questions about MATLAB as a product, please address those questions to MathWorks. I’ll be providing more posts about this book soon, so please come back to my blog to discover more about MATLAB for Dummies.