Internet of Things (IoT) Security Issues

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. 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.

 

Missing Machine Learning for Dummies Downloadable Source Files

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.

 

Apathy, Sympathy, and Empathy in Books

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.

 

Writing Involves Reading

A lot of people think that ideas simply come into my head from nowhere and then I write them down. At some point, usually after three or four hours with several coffee breaks thrown in, I go fishing or do something else with my life. Somehow, the books just magically appear on sites such as Amazon and in the bookstores.

Unfortunately, writing isn’t quite that simple. During any given week I probably spend a minimum of 14 hours reading, often times more. I don’t just read computer science books either. In fact, many of my best ideas come from non-computer sources. It’s hard to say what will make a good source for ideas for my particular kind and style of writing. I’ve actually had poems influence me and more than a few fiction books. I once created a section of a chapter based on an idea I got from a Tom Clancy novel. The point is that writers are engaged in two-way communication. We get input from all sorts of sources, use that input to create new ideas and concepts, and then write those new bits of information down for others to read.

Reading differs from research. When an author researches something, the focus is direct and narrow. The goal is to obtain specific information. Reading is far more general. There really isn’t a focus, just communication. In reading a book or magazine, I might find a new technique for presenting information or a perspective I hadn’t considered before. The goal is to obtain experiences; to explore the world of print in an unfettered manner. The result is often enhanced creativity.

Of course, just as no one is able to get up in the morning and say, “Today I will be brilliant!” with any level of serious intent, reading may not produce any lasting effect at all. The communication may be an ephemeral experience of pleasure, joy, or some other emotion. Even in this case, letting the subconscious mind work while keeping the conscious mind entertained is a good idea. Sometimes a reading session, followed by a walk or some other activity, yields a solution to a writing problem that has nothing to do with the reading or the walking, but simply the allocation of time to the needs of the subconscious mind.

The bottom line is that if you want to become a writer, then you really must engage in writing activities because writing is as much about practice as it is talent. However, you must engage in other forms of communication as well or your skills will top out at some level and you’ll never fully realize your potential. Reading is truly a fundamental part of writing. Let me know your thoughts on reading as part of building skills in writing at John@JohnMuellerBooks.com.

 

Getting a Good Anaconda Install

Some people may have misinterpreted the content at the beginning of Chapter 3 in Python for Data Science for Dummies. It isn’t necessary to install the products listed in the Considering the Off-the-Shelf Cross-Platform Scientific Distributions section starting on Page 39. These products are for those of you who would like to try a development environment other than the one used in the book, which is Anaconda 2.1.0. However, unless you’re an advanced user, it’s far better to install Anaconda 2.1.0 so that you can follow the exercises in the book without problem. Installing all of the products listed in Chapter 3 will result in a setup that won’t work at all because the various products will conflict with each other.

Because Continuum has upgraded Anaconda, you need to download the 2.1.0 version from the archive at https://repo.continuum.io/archive/.There are separate downloads for Windows, Mac OS X, and Linux.  The chapter tells you precisely which file to download.  For example, for Windows you’d download Anaconda-2.1.0-Windows-x86_64.exe. The point is to use the same version of Anaconda as you find in the book. You can find the installation instructions on Page 41 if you have a Windows system, Page 45 if you have a Linux system, or Page 46 if you have a Mac OS X system.  Make sure you download the databases for the book by using the procedures that start on page 47.

Following this process is the best way to ensure you get a good installation for Python for Data Science for Dummies. Luca and I want to make certain that you can use the book to discover the wonders of data science without having to jump through a lot of hoops to do it. Please feel free to contact me at John@JohnMuellerBooks.com if you have any questions about the installation process.

 

Continuing to Use Your Old Parallel Port Printer

A problem with building a newer system is that you may not always have the older ports needed to support older devices. In some cases, it pays to replace the device because you want to gain the added functionality that a newer device can provide. However, if you have a major investment in a device, such as a printer, that doesn’t necessarily provide additional support, then you need to find another solution. I cover all the major port types in Build Your Own PC on a Budget. However, in today’s post you discover a way around the whole issue of supporting an older, yet usable, parallel printer when all you have is USB ports on your new system.

One way around the problem is to connect the printer to an older PC that does have a parallel port. You can then share the printer through a network connection. Of course, this solution assumes that you have an older PC that you want to devote to print server duties and a network to use. However, it’s a solution that many organizations have used over the years with great success.

Another solution is to obtain a special connector cable, such as the Sabrent USB to Parallel printer cable shown in the following picture.

A USB to DB25F parallel port connector with 6 foot cable.
USB to Parallel Port Connector

It’s important to note that the parallel end of the cable is a DB25F. You need to ensure the parallel end of the cable is of the right type for the connection you want to make. The package contains just the cable with the appropriate ends. It also contains a tiny piece of paper with some contact information, but there isn’t any special software required.

Make the connection between the USB port and the printer with the system off. Power the system and the printer up and log in as normal. In most cases, the system will automatically detect the printer and install appropriate drivers for you (or ask you to supply the needed drivers). However, you may need to install the drivers manually on some platforms. The chance of successfully making the connection work do diminish when installing the drivers manually because it usually means that the printer and the system aren’t communicating properly.

The only complaint I had about this solution is that the female parallel connector has screws instead of nuts, which means that you can’t secure the male printer cable to the female USB cable. Yes, the connectors work just fine, but they aren’t screwed together, which means that they could become loose at some point and you’ll lose contact with the printer (probably at the worst possible moment). Even so, the solution does work well.

A side benefit of this solution is that it’s possible to use a longer cable. Depending on who you talk with, the maximum cable length for a parallel printer is between 15 feet for the older Centronics standard and 25 feet for the newer IEEE 1284 standard. Using this solution makes it possible to work with a longer cable. The length tested for this post was 31 feet and I haven’t noticed any glitches, misprints, miscommunication, or loss of speed. Let me know your thoughts about continuing to use older peripherals with newer computers at John@JohnMuellerBooks.com.

 

Automation and the Future of Human Employment

It wasn’t long ago that I wrote Robotics and Your Job to consider the role that robots will play in human society in the near future. Of course, robots are already doing mundane chores and those list of chores will increase as robot capabilities increase. The question of what sorts of work humans will do in the future has crossed my mind quite a lot as I’ve written Build Your Own PC on a Budget, Python for Data Science for Dummies, and Machine Learning for Dummies. In fact, both Luca and I have discussed the topic at depth. It isn’t just robotics, but the whole issue of automation that is important. Robots actually fill an incredibly small niche in the much larger topic of automation. Although articles like The end of humans working in service industry? seem to say that robots are the main issue, automation comes in all sorts of guises. When writing A Fuller Understanding of the Internet of Things I came to the conclusion that the services provided by technologies such as Smart TVs actually take jobs away from someone. In this case, a Smart TV rids us of the need to visit a video store, such as Blockbuster (assuming you were even around to remember these stores). Imagine all the jobs that were lost when Blockbuster closed its doors.

My vision for the future is that people will be able to work in occupations with lower risks, higher rewards, and greater interest. Unfortunately, not everyone wants a job like that. Some people really do want to go to work, clock in, place a tiny cog in a somewhat large wheel all day, clock out, and go home. They want something mindless that doesn’t require much effort, so losing service and assembly line type jobs to automation is a problem for them. In Robots are coming for your job the author states outright that most Americans think their job will still exist in 50 years, but the reality is that any job that currently pays under $20.00 an hour is likely to become a victim of automation. Many people insist that they’re irreplaceable, but the fact is that automation can easily take their job and employers are looking forward to the change because automation doesn’t require healthcare, pensions, vacation days, sick days, or salaries. Most importantly, automation does as its told. In the story The rise of greedy robots, the author lays out the basis for an increase in automation that maximizes business profit at the expense of workers. Articles such as On the Phenomenon of Bullshit Jobs tell why people are still working a 40 hour work week when it truly isn’t necessary to do so. In short, if you really do insist on performing a task that is essentially pointless, the government and industry is perfectly willing to let you do so until a time when technology is so entrenched that it’s no longer possible to do anything about it (no, I’m not making this up). Even some relatively essential jobs, such as security, have a short life expectancy with the way things are changing (see How much security can you turn over to AI? and The eerie math that could predict terrorist attacks for details).

The question of how automation will affect human employment in the future remains. Theoretically, people could work a 15 hour work week even now, but then we’d have to give up some of our consumerism—the purchase of gadgets we really don’t need. In the previous paragraph, I talked about jobs that are safer, more interesting, and more fulfilling. There are also those pointless jobs that the government will doubtless prop up at some point to keep people from rioting. However, there is another occupation that will likely become a major source of employment, but only for the nit-picky, detail person. In The thin line between good and bad automation the author explores the problem of scripts calling scripts. Even though algorithms will eventually create and maintain other algorithms, which in turn means that automation will eventually build itself, someone will still have to monitor the outcomes of all that automation. In addition, the search for better algorithms continues (as described in The Master Algorithm: How the Quest for the Ultimate Learning Machine Will Remake Our World and More data or better models?). Of course, these occupations still require someone with a great education and a strong desire to do something significant as part of their occupation.

The point of all this speculation is that it isn’t possible to know precisely how the world will change due to the effects of automation, but it will most definitely change. Even though automation currently has limits, scientists are currently working on methods to extend automation even further so that the world science fiction authors have written about for years will finally come into being (perhaps not quite in the way they had envisioned, however). Your current occupation may not exist 10 years from now, much less 50 years from now. The smart thing to do is to assume your job is going to be gone and that you really do need a Plan B in place—a Plan B that may call for an increase in flexibility, training, and desire to do something interesting, rather than the same mundane task you’ve plodded along doing for the last ten years. Let me know your thoughts on the effects of automation at John@JohnMuellerBooks.com.

 

Beta Readers Needed for Amazon Web Services for Admins for Dummies

I still remember Amazon Web Services (AWS) when it was simply a method for getting information about Amazon products, making sales, and getting product status. The original web service didn’t do much, but people absolutely loved it, so it continued to evolve. Amazon has put a lot of work into AWS since that humble beginning and now you can perform all sorts of tasks that have nothing to do with buying or selling anything. You can create an entire IT structure for your organization that doesn’t involve any of the micromanagement, hardware purchases, software purchases, and other issues that kept IT from doing what it was supposed to do in the past—serving user needs in the most efficient manner possible.

There are a number of AWS books either published or currently in the process of being published, but these books don’t really answer the one question that everyone appears to be asking in the forums online, “How do I get started?” Most of the titles out there right now answer questions for a specific group after that group has installed the product and gotten started with it. AWS is immense and is naturally intimidating. Unfortunately, the getting started documentation from Amazon is incomplete, outdated, and hard to understand. Amazon Web Services for Admins for Dummies helps administrators (the focus group) and others (such as DevOps and developers) get started so that they can actually make use of that next level up book. Here are the sorts of things you see covered in the book:

  • Part I: Uncovering the AWS Landscape
    • Chapter 1: Starting Your AWS Adventure
    • Chapter 2: Obtaining Free Amazon Services
    • Chapter 3: Determining Which Services to Use
  • Part II: Configuring a Virtual Server
    • Chapter 4: Creating a Virtual Server Using EC2
    • Chapter 5: Managing Web Apps Using Elastic Beanstalk
    • Chapter 6: Responding to Events with Lambda
  • Part III: Working with Storage
    • Chapter 7: Working with Cloud Storage Using S3
    • Chapter 8: Managing Files Using Elastic File System
    • Chapter 9: Archiving Data Using Glacier
  • Part IV: Performing Basic Database Management
    • Chapter 10: Getting Basic DBMS Using RDS
    • Chapter 11: Moving Data Using Database Migration Service
    • Chapter 12: Gaining NoSQL Access Using DynamoDB
  • Part V: Interacting with Networks
    • Chapter 13: Isolating Cloud Resources Using Virtual Private Cloud
    • Chapter 14: Connecting Directly to AWS with Direct Connect
  • Part VI: Getting Free Software
    • Chapter 15: Using the Infrastructure Software
    • Chapter 16: Supporting Users with Business Software
  • Part VII: The Part of Tens
    • Chapter 17: Ten Ways to Deploy AWS Quickly
    • Chapter 18: Ten Must Have AWS Software Packages

As you can see, this book is going to give you a good start in working with AWS by helping you with the basics. Because of the subject matter, I really want to avoid making any errors in this book, which is where you come into play. I’m looking for beta readers who want to use AWS to perform basic administration tasks, even when those tasks are related to a home office. In fact, I have a strong interest in trying to meet the needs of the small-to-medium sized business (SMB) because many of the other books out there cover the enterprise to the exclusion of these smaller entities. As a beta reader, you get to see the material as I write it. Your comments will help me improve the text and make it easier to use.

As you can see from the outline, Amazon Web Services (AWS) is actually a huge array of services that can affect consumers, Small to Medium Sized Business (SMB), and enterprises. Using AWS, you can do everything from back up your personal hard drive to creating a full-fledged IT department in the cloud. The installed base is immense. You can find case studies of companies like Adobe and Netflix that use AWS at https://aws.amazon.com/solutions/case-studies/. AWS use isn’t just for private companies either—even the government is involved. That’s why Amazon Web Services for Admins for Dummies has a somewhat narrowly focused audience and emphasizes a specific set of tasks that it will help you perform. Otherwise, a single book couldn’t even begin to cover the topic.

In consideration of your time and effort, your name will appear in the Acknowledgements (unless you specifically request that we not provide it). You also get to read the book free of charge. Being a beta reader is both fun and educational. If you have any interest in reviewing this book, please contact me at John@JohnMuellerBooks.com and will fill in all the details for you.

 

Is Your Car Green, Really?

It seems like I receive yet another brochure about the huge advances various government entities, enterprises, vendors, or energy companies making in protecting the planet every month. Everyone seems to think that their technology is going to be the next green thing, when the facts simply don’t bear them out. The previous post I wrote on this topic, More People Noticing that Green Technology Really Isn’t, discussed the issue that some informed people are discovering that all that green technology out there is really just designed to sell more products—not help the earth in any significant way. The problem is one of complexity, which is the case with the green car.

Driving an electric car might seem like the right way to reduce emissions. However, recent studies show that your electric car might actually be worse for the environment. I say might here because it all depends on how the electricity is generated. In some cases, your electric car actually is better than gas at the first level. That is, the manner in which the electricity is generated produces fewer pollutants than driving a car with a gas engine would be. For example, sunlight and wind are both plentiful in Nevada, so driving an electric car could make sense there. However, as I’ve noted in previous posts, solar and wind power both rely heavily on special materials, the mining of which actually produces a serious amount of pollution. The studies available right now also assume that the manufacturing processes for the supposedly green cars are actually no worse than the older technology they replace. Consequently, even though it might appear that your electric car is a win, it may not be right now.

A problem with all the entities making the promises and telling you just how good they are at fulfilling them is that they lie. Sometimes they even get caught. For example, the EPA finally caught VW in the act of lying about its emission test results. The only problem is that those cars are still out there producing millions of tons of lung killing smog. In fact, it’s hard to tell whether any of those green technologies actually do anything at all, except make you pay a lot more when buying the vehicle, and to run and maintain it later. Add to this the fact that some people are now saying that the solar industry is dying (and would already be dead were it not for government subsidies) and you have to wonder just how long these green cars will even maintain the appearance of being green.

Some people are saying that we should simply get rid of cars, which is obviously not going to happen. If people really wanted to use mass transit, it would have happened already. In addition, there isn’t any evidence that mass transit actually reduces pollution either. The vehicles are often poorly maintained and spew a horrid amount of pollution out of their exhaust (as evidenced by the stench when you drive behind a bus). In addition, mass transit only works when you live in or around a major city, which won’t work for those of us who live in the country.

The best way to create a green car is not to drive it any more than necessary. I’ve taken to planning out my trips so that I drive the fewest possible miles. Because I’m self-employed, I don’t even start my car five days a week (getting everything done in just two days). Not only does my strategy save time, but I’ve reduced by gas bill by half in the last two years. Green often equates to not using a resource such as gas. Using the resource will inevitably produce some sort of pollution. Through careful planning, you can significantly reduce the number of miles you drive and you can drive more of them at once (a warm engine normally works more efficiently and produces fewer emissions). You also want to reduce gas waste by starting up slowly, stopping over a longer distance, and keeping your engine from idling. In fact, there are a wealth of tips you can find online for making your car more efficient (such as removing all that junk from the trunk).

You can make the world a cleaner place and still keep your car. All it really takes is planning and careful maintenance. Unfortunately, there is no magic that will just make the problems with pollution go away. Driving that electric car or paying more for a vehicle with dubious emissions extras isn’t going to do much. What it really takes is a bit of self control. Let me know your thoughts about green cars at John@JohnMuellerBooks.com.

 

IPython Magic Functions

Both Python for Data Science for Dummies and Machine Learning for Dummies rely on a version of Anaconda that uses IPython as part of its offering.Theoretically, you could also use Anaconda with Beginning Programming with Python For Dummies, but that book is designed to provide you with an experience that relies on the strict Python offerings (without the use of external tools). In other words, the procedures in this third book are designed for use with IDLE, the IDE that comes with Python. IPython extends the development environment in a number of ways, one of which is the use of magic functions. You see the magic functions in the code of the first two books as calls that begin with either one or two percent signs (% or %%). The most common of these magic functions is %matplotlib, which controls how IPython Notebook or Jupyter Notebook display plot output from the code.

You can find a listing of the most common magic functions in the Python for Data Science for Dummies Cheat Sheet. Neither of the first two books use any other magic functions, so this is also a complete list of magic functions that you can expect to find in our books. However, you might want to know more. Fortunately, the site at https://damontallen.github.io/IPython-quick-ref-sheets/ provides you with a complete listing of the magic commands (and a wealth of other information about IPython).

Of course, you might choose to use another IDE—one that isn’t quite so magical as Anaconda provides through IPython. In this case, you need to remove those magic commands. Removing the commands won’t affect functionality of the code. The example will still work as explained in the book. However, the way that the IDE presents output could change. For example, instead of being inline, plots could appear in a separate window. Even though using a separate window is less convenient, either method works just fine. If you ever do encounter a magic function-related problem, please be sure to let me know at John@JohnMuellerBooks.com.