Review of Mastering VBA

A lot of people have asked about the next book to read after reading VBA for Dummies. Yes, the current 5th edition of VBA for Dummies still works fine as a starting point, even with issues such as dealing with the Ribbon to consider. In fact, you can find some great updates to VBA for Dummies on my blog. However, the fact of the matter is that readers have been asking for more, which is where Mastering VBA by Richard Mansfield comes into play. This is the next book you should get if you want to move on from what VBA for Dummies shows you to writing applications with greater functionality. For example, a lot of you have requested more information about creating forms and Chapters 13 through 15 will help you in this regard. Richard has done an outstanding job of moving you to the next step of creating the complex forms required for robust applications.

Another common request that Mastering VBA addresses is the need for security. While VBA for Dummies helps you understand the need for basic security, Mastering VBA takes the process several steps further and could help prevent breaches given the modern computing environment (one that didn’t exist when I wrote VBA for Dummies). Chapter 18 begins the process by emphasizing the need to build well-behaved code. After all, if your code doesn’t behave, there isn’t any set of security measures that will protect it from harm. Chapter 19 goes on to help you understand the essentials of good security, especially with all the modern threats that cause problems for developers today.

At 924 pages (versus 412 for VBA for Dummies), Richard is also able cover some topics in detail that would have been nice to have in my own book. Readers have complained about having to go online to view object model details for the various Office applications in my book. Mastering VBA provides coverage of the object model as part of the book so you can work through it without having to go anywhere else. It’s a convenience issue—readers really shouldn’t have to look for essentials like the object model online, but every author has to face space limitations when putting a book together. The object model material is spread out across the book, but there really isn’t any way to organize it so that it all appears together. This is one time when you’ll need to actually use the table of contents and index to find the material you need.

As with all the books in the Mastering series, this one has questions at the end of each chapter. These questions are designed to help you master the skills learned in the chapter. You find the answers for each of the questions in the back of the book. This makes Mastering VBA an excellent option for the classroom. More importantly, it gives you another way to learn the material in the book. The longer I write books, the more I come to realize that one or two methods of learning simply won’t do the job. This book usually provides three or four ways to learn each task, which means that you have a higher probability of actually mastering the material (as defined by the title).

For all of you who have been asking for the next book after VBA for Dummies, Mastering VBA is the one that gets my recommendation. Until I actually have time to write a book that specifically addresses the concerns in the reader e-mails I’ve received, this book is your best option. No, it doesn’t address every e-mail request that I’ve received, especially with regard to form creation, but it does answer a considerable number of them. Of course, I’ll look forward to your continued interest in my book and I hope you keep those e-mails coming my way!

 

Considering Our Future Cyber War

It’s not if a cyber war will happen, but when. Precisely what form such a war will take depends on the perpetrators and their goals. I’ve spend quite of time discussing the relative insecurity of the Supervisory Control and Data Acquisition (SCADA) systems out there. However, I’m only assuming that SCADA is going to be targeted at some point because it’s such low hanging fruit and no one seems to have any interest at all in securing. Plus, the attack would be of the sort that we’d have a hard time defending against (and possibly identifying at first as the hospitals fill with victims of some mysterious problem).

I recently read an article by John Dvorak entitled, “What if Facebook Is Hacked Next?” John makes some excellent points, but probably doesn’t go far enough. Why would an attacker stop with just Facebook? Why not attack all of the sources of social media out there, including places like LinkedIn and Twitter? The confusion created by the loss of all social media would be amazing. It could easily act as a smokescreen for some other activity even more devastating than the loss of data. While everyone is scrambling to fix their social media issues, someone could work in the background to do something truly horrible.

Actually, the attacker might not even have to do anything other than disrupt all online activities. Think about the number of jobs lost, the hit to online commerce, and the other problems that such an attack would cause. Perhaps these people are simply waiting until more brick and mortar stores close that people no longer have local resources to help in such an emergency. For example, think about the problems that the loss of online stores would have to IT professionals who maintain huge networks of computer systems. The potential for truly terrifying results is amazing.

A cyber war is coming. Just when it will arrive is the topic of much speculation, but my feeling is that it’ll come sometime soon. What sorts of security measures do you have in place? Have you done anything else to prepare? Let me know about your thoughts on cyber war at [email protected].

 

Radio Shack, We Knew Thee Well

I’m dating myself here, but the first time I entered a Radio Shack was in 1972. I had just finished reading The Radio Amateur’s Handbook and was absolutely fascinated by the whole thought of working with electronics. The combination of reading science fiction and electronics books of various sorts, convinced me to go to a technical high school. I graduated with all the necessary knowledge to become an apprentice electrician. However, entering the Navy moved me into computers, where I remain today. (I started out as a hardware guy and moved into programming later.) Radio Shack was filled with all sorts of cool looking gizmos. It was akin to entering my science fiction books and experiencing what “could be” first hand. The day I finished designing and building my first power supply and amplifier was an absolute thrill. I still have the plans for it somewhere. The mono output of 20 watts seemed fantastic. I’m not the only one with fond memories-authors such as PC Magazine’s Jamie Lendino and John Dvorak have them as well.

Over the years I watched Radio Shack change from this absolutely fascinating place I had to visit every time I passed it to something less. Eventually, it became just a common store-the aisles filled with televisions, radios, and consumer gizmos of all sorts. It got to the point where I could buy the same type of goods just about anywhere for a much lower price. For me, the death spiral was just sad to watch. As a country, we really need stores that encourage people to invent-to think outside the box. Unfortunately, Radio Shack is no longer that store. I visited a Radio Shack in a mall the other day and there were only a few items left for sale at high discount. I helped a friend buy a mouse. It was an odd feeling to leave the store one last time knowing that I’d never see the store I knew and loved in the 70s and 80s again.

Even the salespeople changed over time. During the early 70s when I first started going to Radio Shack, I could hear salespeople talking the talk with any customer that came in. One of them even convinced me to use a different transistor for my amplifier and to rely on a full bridge rectifier to make the output cleaner. If these terms seem foreign, they do, in fact, belong to a different time. The surge of creativity I experienced during that phase in my life is gone-replaced by something totally different today. The young lad I talked with the other day was a salesperson and just barely knew his trade. Gone are the salespeople who really made Radio Shack special.

I yearn for the resurgence of creativity and of stores that promote it. This is one case where brick and mortar stores have a definite advantage over their online cousins. When you go into a brick and mortar store, you can talk with real people, see real demonstrations, touch real hardware, and get that special ethereal feeling of entering the zone of the tinkerer and the definer of dreams. Radio Shack, we knew thee well, and we really need something like you back.

 

Our Borders are Porous

No, I’m not talking physical borders here—I’m talking cyber borders. I’ve talked a number of times about the relative insecurity of Supervisory Control and Data Acquisition (SCADA) systems. My biggest personal concern is how leaks in these systems can affect people with special needs. At a minimum, implanted devices used by people today are open to hacking. However, there are some reports that say that hackers could eventually become murderers. I wrote Accessibility for Everybody: Understanding the Section 508 Accessibility Requirements with the idea that implanted devices and other aids should help people, not hurt them.

However, other sorts of devices are leaky. Just about any hacker could attack our water supply, power grid, or any other utility. A hacker could turn off your car engine by remote control, lock you into the car, and then do whatever nefarious deed seemed pleasant at the time. These posts aren’t meant to scare you as much as to inform you that the borders of your devices are wide open to attack in many cases. Yet, despite a huge number of newspaper articles, radio talk shows, government inquiries, and odd assorted other do nothing activities, surprisingly little has been done to secure anything.

It probably won’t surprise you to know that the latest casualty, in a long list of problematic devices, is the gas pump. Yep, your gas pump can turn against you. I hadn’t really thought about a gas pump as being anything particularly worthwhile to hack. Yes, you could possibly turn on the pump and get free gas or deny someone else their gas, but it really didn’t strike me as something that hackers would invest time in learning about. Actually, it turns out that gas pumps are connected to all sorts of monitors and messing with the pump can cause those monitors to go off. It doesn’t seem like alarms are anything to worry about either, but think about someone intent on disrupting the emergency services network in a city so that they can attack in some other way. While everyone is distracted with the gas pump spills that haven’t actually happened, someone could do something that would cause the city to go into overload because emergency services are already overwhelmed.

The thing that gets me about a lot of these deficiencies is that they aren’t caused by systems that are secured, but someone has manged to get into anyway. They’re caused by systems that have no security at all. That’s right—someone connected those gas pumps to the Internet so they could monitor them remotely and didn’t add any security at all. Someone who knows the right information can just walk right in and cause all sorts of mischief.

From direct attacks on our infrastructure, to feints used for distraction, to personal attacks, SCADA systems will let us down at some point. I’m surprised that we haven’t had a major issue so far. Perhaps someone is out there right now planning just the right sort of attack that’s designed to cause a maximum of damage. Until we make security a priority, these open systems will continue to pose a serious risk to everyone, whether you have special needs or not. Let me know your thoughts about insecure SCADA systems at [email protected].

 

Sending e-Mail My Way

The e-mail was emphatic and I felt bad that I had missed the original missive, but the original had no subject line and I’m leery of opening e-mail without a subject line—it could contain anything. When you send me e-mail, please be sure that it contains a subject. I need to know at the outset that you have a question about one of my books—that the e-mail is legitimate. Otherwise, it ends up in my Junk Mail folder and won’t ever see the light of day. Adding a subject doesn’t take much time and helps me organize my responses to readers. I still receive upwards of 65 e-mails every day and I answer each of them. Having a subject helps me work more efficiently and also makes it possible for me to provide you with better responses.

While we’re on the topic of e-mail, I do encourage you to write me about any book-specific issue that you encounter. It’s always my goal to provide you with the best possible reading experience. I’ll always take your e-mail seriously, answer it as fully as is possible, and provide the fastest response that I can. All this said, I won’t answer e-mails that are outside the boundaries of good social communication. For example, I won’t answer these sorts of e-mails:

  • Please don’t ask me for free consulting. I do provide paid consulting services and will provide you with a bid for consulting services should you require them.
  • Keep any e-mail you send book- or blog-specific. Yes, I’ve had some interesting off-topic conversations, but for the most part, I much prefer to provide a service to people who have purchased my books or read posts in this blog.
  • No, I won’t do your homework for you. Your homework is for your benefit, not mine.
  • I’ll ignore any e-mail that calls my parentage into question or uses inappropriate language. Yes, I understand that you’re essentially anonymous, but courtesy is for everyone, even people online.
  • I don’t perform free code reviews. If you need a code review and would like to hire me, we can discuss my rates.

I truly do try to provide a valuable service through my books, my e-mail correspondence, and this blog. All that I’m asking is that you treat these resources with the respect they deserve. Please contact me at [email protected] if you have any questions.

 

A Problem with Short Attention Spans and Getting Only What You Want

I read more articles every day that talk about how content is distributed today. It isn’t just one sort of content; it’s every sort of content, from writing to music to videos. Books are presented electronically without any ads or other content to disrupt your reading, magazines are becoming a thing of the past as readers blithely read just the article they want to see, music is presented as individual song downloads, and video is streamed without any of the extras that come with a DVD.

The idea is to package content items individually, in the smallest container possible. People consuming the content need not bother with anything that doesn’t immediately attract their attention. The smaller size ensures they can consume the content in seconds (even in my books, I’ve made the size of the sections smaller because I noted that readers weren’t making it through the material and missing important information). As a result, consumers are getting used to seeing just the content they want and not having to work at all to get it. Spoon feeding consumers content is probably something that marketers love because they can keep the consumer well fed and not asking too many questions. The content is focuses precisely the way the marketing folks want it. At some point, the quality of the content can decrease without anyone actually noticing. The somnolent mutterings of a few is all that will otherwise detract from the utter quiet of a new age of customized consumerism.

Inferior content is a problem, but it’s not the problem that you should consider immediately. Lack of diversity will cause more problems than content quality ever will. When music was distributed in albums, you counted on getting two or possibly three hit songs. Some of the remaining songs were pretty bad. However, you often encountered two or so additional songs that didn’t get played on the radio for whatever reason are were quite good. Because you were forced (after a fashion) to listen to all the songs on the album, it became common to discover the gems that no one really thought to hype. A few of those songs ended up being hits in their own right simply because people were forced to listen to them as part of listening to the album as a whole. With customized content, you never hear the good songs because no one is hyping them.

The lack of diversity affects your growth as a person. When you listen to something unanticipated or read an article that you didn’t think you’d like, you experience the world in a new way. An idea or concept that didn’t occur to you before is now part of your being. However, with today’s marketing model, you’re being cheated out of that opportunity. The marketers have determined what you’ll read, hear, and see. They control the picture. Think about it for a minute and you’ll see that I’m right.

Magazines are headed in the same direction. It won’t be long and paper magazines will be gone. Electronic magazines will almost certainly follow the current trend at some point. You’ll read only the article that you were interested in seeing in the first place. The supposed boring article that will broaden your horizons will never see the light of day because you won’t be exposed to it. Sometimes it’s necessary for some agent to force you to see content that you might not otherwise review. In the past, it was the added content that came as part of magazines, books, CDs, DVDs, and other distribution techniques that provided this force. There is no such force today. You don’t really see any additional content when viewing a streamed movie.

We view content with fewer interruptions and in purer form, deadening our minds to new ideas. At some point, the lack of growth will cause additional problems. People who get used to thinking only within the box that they draw themselves are less likely to create innovative ideas. As a society, our ability to create something entirely new, entirely different, will be diminished due to a lack of diversity in the input we provide to our brains.

The solution to the problem is uncomfortable and requires a level of determination that our society lacks in large part today. Because alternative content is no longer provided as part of the package, it’s imperative that you look for content that you might not otherwise enjoy. This means making a conscious decision to read, hear, and view content that you may not like at the outset, but will find grows on you with exposure. Let’s hope that there are enough people who don’t mind being uncomfortable to make this a reality. What are your thoughts on the methods used to package content today? Let me know at [email protected].

 

Considering the Continued Encroachment on Privacy

I keep a close eye on privacy issues because many companies are hoping we’ll all fall asleep and they’ll be able to do whatever comes to mind. I was recently appalled by a ComputerWorld article that describes a new technique that companies such as Verizon and AT&T are using to track you even when you perform tasks such as clearing your cookies. The sort of encroachment on privacy discussed in this article has nothing to do with the usual user sloppiness that I described in An Unreasonable Expectation of Privacy. (In this post I encourage people to keep their private lives private by not posting secrets on Facebook and other social media.) This new threat is different in that companies are actively circumventing your ability to remain anonymous. No matter what you do, companies are now able to snoop on your browsing habits and they’re quite open in saying that they don’t care if you mind.

The use of Unique Identifier Headers (UIDHs) should be illegal. In fact, the companies that are burdening users with this unwanted technology shouldn’t have created it in the first place because it’s a bad idea. The article tries to gloss over the fact that these companies knew full well what they were doing and are sheepishly trying to say that they never meant any harm. The organizations using the technology are stupidly placing the burden on the user to opt out, but giving themselves all sorts of outs for just ignoring the request. Opting out through organizations such as the Network Advertising Initiative (NAI) or the Digital Advertising Alliance (DAA) carries no legal weight. A company can choose to ignore your request and there is nothing you can do about it. If an opt out solution truly is required, it should carry some penalties for companies that choose to ignore the user’s request for privacy.

Of course, you could always question why you should care about companies snooping on your habits. After all, you have nothing to hide. Privacy is important because it allows you to do as you choose. You still have an ethical requirement to behave within the laws that society lays down, but you should also be free to browse where you want on the Internet without someone snooping on you. It’s a short trip from snooping on your browsing habits to other kinds of snooping. As society becomes inured to the snooping, companies can begin performing other sorts of snooping, some of which would be clearly inconvenient or dangerous.

Setting a precedent of allowing companies to snoop without consequence will lead to all sorts of issues in the future. As you lose your freedoms to corporations who really don’t care whether you’re free or not (actually, they’d prefer to enslave you), you begin to lose a lot of what makes our current society worthwhile. It’s time that government did step in and start controlling the use of snooping online (and not actually perform snooping itself). After all, one of the purposes of government is to protect citizens from precisely the kinds of threats that UIDHs represent. Let me know your thoughts about snooping at [email protected].

 

Beta Readers Needed for Python for Data Science for Dummies

According to just understanding data, a data science consultancy, “data science lies at the intersection between statistics, programming and hacking.” And many businesses can take advantage of data science because it can help them identify patterns that you can use to improve your business’s operations. But, what exactly is it?

Data science is the act of extracting knowledge from data. This may seem like a foreign concept at first, but you use data science all the time in your daily life. When you see a pattern a sequence of numbers, your mind has actually used data science to perform the task. What data science does is quantify what you do normally and make it possible to apply the knowledge to all sorts of different technologies. For example, robots use data science to discover objects in their surroundings.

Of course, data science is used for all sorts of applications. For example, data science is used with big data to perform tasks such as data mining or to predict trends based on various data sources. The fact that your browser predicts what you might buy based on previous purchases rests on data science. Even your doctor relies on data science to predict the outcome of a certain series of medications on an illness you might have.

Even though data science first appears easy to categorize, it’s actually huge and quite difficult to pin down. It relies on the inputs of three disciplines: computer science, mathematics, and statistics. There are all sorts of sub-disciplines used as well. Because of the depth and width of knowledge required, a data scientist often works as part of a team to tease out the meanings behind the data provided to solve a problem.

Python for Data Science for Dummies provides you with a beginning view of data science through the computer science discipline using a specific language, Python. The capabilities of Python as a language make it a perfect choice for this book. While reading this book, you’ll see these topics explained:

  • Part I: Getting Started with Data Science & Python
    • Chapter 1: Discovering the Match between Data Science and Python
    • Chapter 2: Introducing Python Capabilities and Wonders
    • Chapter 3: Setting Up Python for Data Science
    • Chapter 4: Reviewing Basic Python
  • Part II: Getting Your Hands Dirty with Data
    • Chapter 5: Working with Real Data
    • Chapter 6: Getting Your Data in Shape
    • Chapter 7: Shaping Data
    • Chapter 8: Putting What You Know in Action
  • Part III: Visualizing the Invisible (2 Pages)
    • Chapter 9: Getting a Crash Course in MatPlotLib
    • Chapter 10: Visualizing the Data
    • Chapter 11: Understanding Interactive Graphical and Computing Practice
  • Part IV: Wrangling Data
    • Chapter 12: Stretching Python’s Capabilities
    • Chapter 13: Exploring Data Analysis
    • Chapter 14: Reducing Dimensionality
    • Chapter 15: Clustering
    • Chapter 16: Detecting Outliers in Data
  • Part V: Learning from Data
    • Chapter 17: Exploring Four Simple and Effective Algorithms
    • Chapter 18: Performing Cross Validation, Selection and Optimization
    • Chapter 19: Increasing Complexity with Linear and Non-linear Tricks
    • Chapter 20: Understanding the Power of the Many
  • Part VI: Parts of Ten
    • Chapter 21: Ten Essential Data Resources
    • Chapter 22: Ten Data Challenges You Should Take

As you can see, this book is going to give you a good start in working with data science. Because of the subject matter, I really want to avoid making any errors in book, which is where you come into play. I’m looking for beta readers who use math, statistics, or computer science as part of their profession and think they might be able to benefit from the techniques that data science provides. As a beta reader, you get to see the material as Luca and I write it. Your comments will help us improve the text and make it easier to use.

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 [email protected] and will fill in all the details for you.

 

Learning as a Human

I started discussing the whole idea of robot perception from a primate level in Seeing as a Human. In that post I discussed the need for a robot not to just see objects, but to be able to understand that the object is something unique. The ability to comprehend what is being seen is something that robots must do in order to interact with society at large in a manner that humans will understand and appreciate. Before the concepts espoused in works of science fiction such as I, Robot can be realized, robots must first be able to interact with objects in a manner that programming simply can’t anticipate. That’s why the technology being explored by deep learning is so incredibly important to the advancement of robotics.

Two recent articles point to the fact that deep learning techniques are already starting to have an effect on robotic technology. The first is about the latest Defense Advanced Research Projects Agency (DARPA) challenge. A robot must be able to drive a vehicle, exit the vehicle, and then perform certain tasks. No, this isn’t science fiction, it’s actually a real world exercise. This challenge is significantly different from self-driving cars. In fact, people are actually riding in self-driving cars now and I see a future where all cars will become self-driving. However, asking a robot to drive a car, exit it, and then do something useful is a significantly more difficult test of robotic technology. To make such a test successful, the robot must be able to learn to at least some extent, from each trial. Deep learning provides the means for the robot to learn.

The second article seems mundane by comparison until you consider just what it is that the robot is trying to do, cook a meal that it hasn’t been trained to cook. In this case, the robot watches a YouTube video to learn how to cook the meal just as a human would. To perform this task requires that the robot be able to learn the task by watching the video—something that most people see as something only a human can do. The programming behind this feat breaks cooking down into tasks that the robot can perform. Each of these tasks is equivalent to a skill that a human would possess. Unlike humans, a robot can’t learn new skills yet, but it can reorganize the skills it does possess in an order that makes completing the recipe possible. So, if a recipe calls for coddling an egg and the robot doesn’t know how to perform this task, it’s unlikely that the robot will actually be able to use that recipe. A human, on the other hand, could learn to coddle an egg and then complete the recipe. So, we’re not talking anything near human level intelligence yet.

The potential for robots to free humans from mundane tasks is immense. However, the potential for robots to make life harder for humans is equally great (read Robot Induced Slavery). We’re at a point where some decisions about how technology will affect our lives must be made. Unfortunately, no one seems interested in making such decisions outright and the legal system is definitely behind the times. This means that each person must choose the ways in which technology affects his or her life quite carefully. What is your take on robotic technology? Let me know at [email protected].

 

Seeing as a Human

Neural networks intrigue me because of their ability to change the way in which computers work at a basic level. I last talked about them in my Considering the Future of Processing Power post. This post fed into the A Question of Balancing Robot Technologies post that explored possible ways in which neural networks could be used. The idea that neural networks provide a means of learning and of pattern recognition is central to the goals that this technology seeks to achieve. Even though robots are interesting, neural networks must first solve an even more basic problem. Current robot technology is hindered by an inability of the robot to see properly, so that it can avoid things like chairs in a room. There are all sorts of workarounds for the problem, but they all end up being kludges in the end. A recent ComputerWorld article, Computer vision finally matches primates’ ability, gives me hope that we may finally be turning the corner on making robots that can interact well with the real world.

In this case, the focus is on making it possible for a robot to see just like humans do. Actually, the sensors would be used for all sorts of other technologies, but it’s the use in robots that interests me most. A robot that can truly see as well as a human would be invaluable when it comes to performing complex tasks, such as monitoring a patient or fighting a fire. In both cases, it’s the ability to actually determine what is being seen that is important. In the case of a robotic nurse, it becomes possible to see the same sorts of things a human nurse sees, such as the start of an infection. When looking at a fire fighting robot, it becomes possible to pick out the body of someone to rescue amidst the flames. Video cameras alone can’t allow a robot to see what the camera is providing in the form of data. That being said, thanks to exciting developments in 3D hands data and other computer vision techniques, these possibilities could soon become a reality.

However, just seeing isn’t enough either. Yes, picking out patterns in the display and understanding where each object begins and ends is important. However, in order to use the data, a robot would also need to comprehend what each object is and determine whether that object is important. A burning piece of wood in a fire might not be important, but the human lying in the corner needing help is. The robot would need to comprehend that the object it sees is a human and not a burning piece of wood.

Using standard processors would never work for these applications because standard processors work too slow and can’t remember knowledge learned. Neural networks make it possible for a robot to detect objects, determine which objects are important, focus on specific objects, and then perform tasks based on those selected objects. A human would still need to make certain decisions, but a robot could quickly assess a situation, tell the human operator only the information needed to make a decision, and then act on that decision in the operator’s stead. In short, neural networks make it possible to begin looking at robots as valuable companions to humans in critical situations.

Robot technology still has a long way to go before you start seeing robots of the sort presented in Star Wars. However, each step brings us a little closer to realizing the potential of robots to reduce human suffering and to reduce the potential for injuries. Let me know your thoughts about neural networks at [email protected].