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 John@JohnMuellerBooks.com 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 John@JohnMuellerBooks.com.

 

Viability of Java Programming as a Job

I get a lot of e-mail from readers asking whether I can tell them about their chances of getting a job using a particular programming language or skill that I write about. There are so many factors to consider in answering that question that it really is impossible to answer correctly or with any accuracy. Books, such as Java eLearning Kit for Dummies, provide you with a marketable skill that can potentially land you a job. In fact, The Importance of Finding Work post provides you with some ideas on just where you can find an interesting job writing Java code. I can also tell you that Java is both popular and important as far as programming languages are concerned. A recent InfoWorld article, Good news, Java developers: Everyone wants you, literally screams opportunity in the title. You can find further confirmation in the recent TIOBE index that places Java as the second most popular language in the world. All these indicators tell you that Java is a good selection for success.

Whether you can get a job programming with Java is an entirely different story. For example, there isn’t any way I can judge your skill at using Java, so there is no way I even know if you’re able to write applications. Being able to use Java to write applications is a prerequisite to getting the job, so only you know what your chances are in this area. If you’re honest with yourself, you know your skill level and whether you really do need more time practicing your skills before you go in for a job interview. Being realistic about your chances of getting a particular job is also important. If you try to get a leadership position with beginner skills, be prepared for disappointment.

If I could limit the criteria to issues such as job availability and your personal skills, I might be able to answer your question with some degree of success. However, the question is far more complex than that. A glut in people with basic skills could affect your chances of getting a job in a particular area. Likewise, if employers are looking for someone, anyone, to fill a position, you might get into a really good position with lackluster skills.

How you present yourself to a potential employer also affects the potential for success. Many highly skilled developers lack the kind of self-confidence required to get a job. The person in HR will see your interpersonal skills, not your ability to write code. Unless you have an in with the department you want to work with, trying to convince someone in HR to let the interview process go further could be quite hard.

I really do want you to succeed. So, I’ll continue to provide you with ideas of where to find work and the popularity of the skills that I’m helping you obtain. Unfortunately, my ability to provide help beyond these two areas is limited. In most cases, the rest is up to you. In keeping with the idea of preparing you as fully as I can to get that job of your dreams, I’m always open to answering your book-specific questions. Always feel free to contact me at John@JohnMuellerBooks.com.

 

Getting Python to Go Faster

No one likes a slow application. So, it doesn’t surprise me that readers of Professional IronPython and Beginning Programming with Python For Dummies have asked me to provide them with some tips for making their applications faster. I imagine that I’ll eventually start receiving the same request from Python for Data Science for Dummies readers as well. With this in mind, I’ve written an article for New Relic entitled 6 Python Performance Tips, that will help you create significantly faster applications.

Python is a great language because you can use it in so many ways to meet so many different needs. It runs well on most platforms. It wouldn’t surprise me to find that Python eventually replaces a lot of the other languages that are currently in use. The medical and scientific communities have certainly taken a strong notice of Python and now I’m using it to work through Data Science problems. In short, Python really is a cool language as long as you do the right things to make it fast.

Obviously, my article only has six top tips and you should expect to see some additional tips uploaded to my blog from time-to-time. I also want to hear about your tips. Make sure you write me about them at John@JohnMuellerBooks.com. Be sure to tell me which version of Python you’re using and the environment in which you’re using it when you write. Don’t limit your tips to those related to speed either. I really want to hear about your security and reliability tips too.

As with all my books, I provide great support for all of my Python books. I really do want you to have a great learning experience and that means having a great environment in which to learn. Please don’t write me about your personal coding project, but I definitely want to hear about any book-specific problems you have.

 

 

Scoring Your JavaScript Library

Choosing a library for your Web application can be difficult. Both HTML5 Programming with JavaScript for Dummies and CSS3 for Dummies emphasize the need to choose libraries with care. There are all sorts of considerations, such as whether the library enjoys popular support and has a good upgrade policy. You also need to know whether the library is secure and performs all the tasks you require of it in the manner you want them performed. These books do a great job of helping you understand the requirements for choosing a library.

At the time I wrote these books, jQuery was the most popular library available. In fact, both books emphasize use of jQuery for programming needs. It turns out that jQuery is still the most popular library around and for good reason, the producers of jQuery have done just about everything right, so developers continue to support them. If you need general interface and low level programming support, jQuery and jQuery UI are good places to start. What it really comes down to is reducing costs and getting work done faster. Money drives everything on the Internet, including your next project.

Two libraries simply can’t meet every need. Developers often use a wide variety of libraries to get the job done. Choosing the right library can be difficult. There are literally hundreds of them, all purporting to do the job faster, better, and for less money (when money is directly involved in the equation). Choosing the wrong library can incur huge penalties. That’s why a site such as Libscore is so important. You can use Libscore to find the top:

  • JavaScript Library
  • Script
  • Site Using JavaScript

The last option is the most important because it tells you what the top sites are and which libraries they use to achieve their goals. By viewing the site and seeing how it uses a library, you can make intelligent decisions for your own site. Exploring Libscore doesn’t take long, but can net you huge gains in productivity that translate into reduced costs and fewer errors.

I receive more than a few e-mails each week about JavaScript, HTML5, and CSS3. Readers really do want to know my opinion about this library or that. Unfortunately, my ability to test every library out there is limited. In fact, let’s be practical—even if I were to attempt to perform the task full time, I still wouldn’t have time as an individual to test all the options. So, using a site such as Libscore is the best option that I can offer you. I’d love to hear your opinions about Libscore or any other site offering the same functionality at John@JohnMuellerBooks.com. If you send me information about another library scoring site, please make sure it actually works with JavaScript or another viable Web technology.

 

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 John@JohnMuellerBooks.com.

 

Fun is Where You Find It (Part 7)

The Fun is Where You Find It series of posts is one of the more popular series I’ve created because they all talk about fun things you can do for little or no cost. Of course, the problem that most people are facing right now is some sort of Seasonal Affective Disorder (SAD) mixed with negative feelings about the weather and a general letdown from the holidays. Fortunately, there are a lot of fixes for these issues—all of which hinge on focusing on anything else.

I use a lot of laugh therapy to get past this time of year. Generally speaking, laugh therapy is all about getting a good laugh in every day. You can get the laugh any way that works for you, but I’ll read something funny, view funny videos, or talk with a friend who knows good jokes (not the lame sort that I usually tell). There are even books about laugh therapy if you have problems figuring out how to get a good laugh on your own.

This past Sunday I decided to approach the problem from another angle. I have a number of items that need to be used up, so I decided to use them for a picnic. No, the picnic isn’t outside in the cold. Instead, I put together potato salad, fruit salad, fried chicken, chips, and drinks. I laid a blanket out on the floor in front of my wood stove (which is standing in for the hot summer sun) and watched a summery movie. The whole thing cost me about $5.00, so were not talking a major entertainment expense for several hours of fun.

Of course, the question is whether my little experiment worked. Overall, I felt pretty happy afterward—it was a lot of fun and I plan to do it again. Doing something completely different, something outside the range of normal winter activities, helped me get past some of the usual problems associated with winter by thinking about summer and picnics instead. A lot of the time, how we approach life and what we think about controls our mood, so thinking about summer and picnics in winter is possibly every bit as good as the laugh therapy I normally use. At least, it gives me another alternative.

What sorts of amazing things are you doing to fight the winter blahs? Do you think you might ever try a winter picnic to chase the blues away? Let me know your thoughts about winter fun at John@JohnMuellerBooks.com.

 

Create Your Own Solar System!

Educational games can be fun and addicting, and still teach you something. Astronomy Picture of the Day (APOD) has presented a new game called Super Planet Crash. The game is interesting because it’s a lot harder than you might think to create a planetary system that will actually last 500 years. Considering that some planetary systems last a whole lot longer than that, you gain an appreciation for the delicate balance that is being maintained by the various gravitational bodies. So far, the longest my solar system has lasted is 312 years. Let’s hope no one is counting on me to create something lasting!

The game is actually quite simple. You select a gravitational body from the list and put it in place in the solar system. The body then starts to rotate using all the laws of physics we now know. If it doesn’t manage to crash into anything, you have a lasting solar system. The game awards extra points for things like planets in habitable zones. The reason the game is so addicting is that there are infinite possibilities and only a few of them really will last the full 500 years. Trying out the various combinations helps you understand planetary physics better, but it’s just fun seeing the various bodies rotate around their sun as well.

I’m sure that more than a few adults will play the game given that APOD is frequented by people with a need to know about the solar system. However, I can see kids getting quite addicted to the game and that’s really a good thing. The more we can interest kids in science, the better the outcome for education and our society as a whole. After all, many of the people who excel in science today were motivated by writers, artists, and dreamers of the past. Getting kids interested in science is essential for the future health of our society as a whole and I see games like Super Planet Crash as one way to do it.

Whether you like the game because it’s fun or educational, you’ll have to admit that it’s quite addicting. If you need a quick fix for the midday boredom that seems to overtake us all, check this game out.

 

Beta Readers Needed for Python for Data Science for Dummies

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 a 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 John@JohnMuellerBooks.com 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 John@JohnMuellerBooks.com.