Death of the Heading Group (hgroup) Tag

In the “Working with the new elements” section of Chapter 14 of HTML5 Programming with JavaScript For Dummies I briefly mention the <hgroup> tag. The purpose of this tag is good enough; it lets you group content together to form a heading from multiple elements. I had noted during my research that the tag is supported by a number of browsers but no one seems very enthusiastic about it. In fact, the tag is now dead and you should avoid using it.

Fortunately, there are some methods to work around the support the <hgroup> tag. The main workaround is to use the <header> tag instead. In fact, the presence of the <header> tag makes me wonder why anyone thought the <hgroup> tag was needed in the first place. In order to group elements using the <header> tag, you simply place them inside the tag like this:

<header>
   <h1>Section Title</h1>
   <p>Last Modified:
      <time datetime="2013-07-31">31 March 2013</time>
   </p>
</header>

In this case, you see a section title that also provides a date of last modification. The two items are obviously related (even though you may want to format them differently), so you want to group them on the page. Creating a group will help users interact with the page more easily and also reduce the work required to render the page for those with special needs. The <header> tag performs this task quite easily. You can then use CSS to format the information in any way needed so the viewer can easily distinguish the various kind so information.

The bottom line is that the <hgroup> tag is gone and you should forget it even appears in my book. Let me know your thoughts out repetitive or unneeded tags at John@JohnMuellerBooks.com. You should also contact me if you have any questions about using the <header> tag.

 

A Discussion About Green Technology Pollution (Part 2)

I like to report good news on a post whenever I can. Recently I wrote a post entitled, “A Discussion About Green Technology Pollution” that makes it clear that many supposedly green technologies aren’t very green at all. Sometimes you can find a partial solution to a problem, which is the topic of this post. No, the solution isn’t a complete answer to the question of green technology pollution, but it does help. In this case, it appears that a proper response could clean up old pollution, while making it possible to obtain rare earth elements quickly and easily.

During the gold rush (and while performing other mining), the miners threw away what has turned out to be valuable rocks. Yes, the tailings contain rare earth metals in at least some cases. If things work out well, mining companies could go to these old sites of pollution and clean up the mess, while making a profit. The rare earth metals needed for luxury items, such as cell phones, and alternative energy sources, such as solar panels, are available in plain sight. This is one of those stories where one person’s junk turns into another person’s treasure.

Unfortunately, I haven’t been able to find a lot of information about this particular story as of yet. It could be that the government and industry are still in talks about what can be done. In an ideal scenario, a company would come in and clean up both the pollution generated by the mine and those valuable tailings. Selling the rare earth metals contained in the tailings would generate income for the company and reduce our reliance on rare earth metals coming from China.

However, even if everything works absolutely perfectly, it still isn’t a complete solution. Processing the rare earth metals causes significant pollution. Cleaning up the tailings to obtain the rare earth metals they contain would solve one problem, but processing those tailings would create another, more substantial, pollution problem. The pollution will happen whether the source of the raw material is rock from a new mine or rock from tailings, so this scenario does reduce overall pollution.

The important thing to remember is that processing materials creates pollution. When you choose a supposedly green technology, you need to remember that it really isn’t all that green. The processing of materials for that green technology generates heaps of long-lasting pollution that fouls rivers and makes entire sections of land completely unusable for growing food. Any step we can take toward reducing the pollution these green technologies cause is a good thing and reusing these tailings seems (at least on the surface) like such a step.

I’d be interested in hearing about any additional information you have on the topic. Especially important would be knowing how the government and industry eventually decide to use these tailings and whether we end up with a perfect scenario that truly does clean up some of those old mining sites. Let know what you hear at John@JohnMuellerBooks.com.

 

Review of MCSD Certification Toolkit (Exam 70-483): Programming in C#

You’re really excited about becoming a Microsoft Certified Solutions Developer (MCSD)! How do you proceed to make your venture a success? Having been through several certifications myself, I understand the importance of having a great certification guide to help you overcome some of the less intuitive parts of the examination process. Tiberiu Covaci, Gerry O’Brien, Rod Stephens, and Vincent Varallo have provided such a guide with MCSD Certification Toolkit (Exam 70-483): Programming in C#. Anyone planning to take exam 70-483 will benefit from this book because it presents the exam topics in a highly organized manner.

Let me get one of the gripes out about the book before I discuss all of the good material though. It seems as if every certification guide I’ve ever looked at includes topics such as, “Why Get Certified?” The problem with these topics is that they waste space and bore the reader. The reader already knows why certification is important, so there is no need to discuss the topic. The reasons for getting certified vary, of course, but the vast majority of people can sum it up in one word, money. Certification will open a door to a better job, help the candidate keep an existing job, or move the candidate one step further up the corporate ladder. The topic is unimportant because the only thing the reader wants to know is how to ace the exam (or at least get a passing score). I feel strongly that the authors could have used the space spent in preaching to the choir to provide additional helps and aids. If your tolerance for less useful material is low, then you’ll want to skip directly to page 11 of the book and start reading “How to Study for the Exam Using This Book.”

After you get past Chapter 1, the rest of the book starts to take on a predictable pattern. You read the theory behind each of the topics that the exam will test. Code Labs give you hands on experience putting the theory into practice. My favorite sections are the Real-World Case Scenario, which helps you understand how the theory is actually used to write an application that could exist in the real world. A problem with many certification guides is that they pursue a purely academic course—this book avoids that particular problem and gives you practical knowledge as well.

Each chapter ends with a Chapter Test Questions section that contains a few questions you can use to check what you have absorbed. The questions will typically be useful for one or two uses, so you need to ensure you read the chapter and go through the exercises before you attempt to try the test questions. Otherwise, you won’t really know whether you have absorbed the material. Personally, I found the number of questions a bit small. The authors could have beefed up this section to provide the reader with a better idea of how the exam will appear.

The Cheat Sheet and Review of Key Terms sections provide an outstanding method for refreshing your memory the day before the exam. One of the mistakes I (and probably many others) made in preparing for a certification exam is to study too hard the night before. If you don’t know the material the night before, you most definitely won’t pass the exam because these exams are designed to thwart people who cram. A reminder, an overview of what you should know, is really all you need the night before. Relaxing and getting the rest you need are essential.

I wasn’t quite sure about the Additional Reading and Resources section found in each chapter. This section is helpful, but only if you’re using the book as a reference after the exam, rather than as a means for preparing for the exam. The authors could have possibly skipped this section in favor of providing more questions or other kinds of hands on learning activities (one of my favorite CNE books used puzzles as a learning aid). Then again, having the book as a reference after the example will likely prove useful too—just don’t cloud your mind with too many competing sources of information before the exam. The trick is to keep your mind clear and focused on your objective (passing the exam).

Overall, the text is written in a clear manner and you’ll find that the authors carefully lead you from one topic to the next. Developers who are already familiar with C# application development may find the book a bit boring because it really does cover all the details. The book is more designed for someone who hasn’t programmed using C# in the past. In fact, the authors recommend that more advanced readers simply skim the book and look for areas of weakness, which seems to be a winning strategy.

Of course, the big question is whether a book is worth the price you pay for it. In this case, you’re getting a bargain. The book is well written and will serve the needs of anyone who needs to take the 70-483 exam. Certification usually brings some significant benefit, so anything you spend on materials today will reap financial rewards in the future. Getting a book is also a lot less expensive than taking a course. Using this book will save you money in the long run.

 

Understanding the Maturing of the Command Line

A number of people have asked me why I’ve written several different command line reference books. The answer is that each book serves a different market. Serving reader needs is a quest of mine. As reader needs change, I also change my books to better meet those needs. The command line may seem static, but reader needs have changed over the years because of the way in which the command line is perceived and the new commands added to it.

The most popular of the set, Windows Command-Line Administration Instant Reference, provides the reader with quick access to the most commonly used commands. In addition, this book emphasize examples over documentation, so you see how to use a command, but don’t necessarily get every detail about it (only those that are used most often). This book is mainly designed to assist administrators. With this group in mind, the book also provides a good overview of batch files and scripting. The point is to provide something small that an administrator can easily carry around.

A second command line reference, Administering Windows Server 2008 Server Core, is designed to meet the needs of those who use Microsoft’s Spartan Server Core operating system. The book includes a number of special features for this audience, such as instructions on getting hard to install software to work in this environment. This is also the only book that discusses how to use Mono to overcome .NET Framework limitations in this environment. Even though the title specifies Windows Server 2008 Server Core, the book has also been tested with Windows Server 2012 Server Core. The point of this book is to allow you to get all of the speed, reliability, and security benefits of Server Core installations without all of the hassle that most administrators face.

My third command line reference, Windows Administration at the Command Line for Windows Vista, Windows 2003, Windows XP, and Windows 2000, serves the general needs of administrators and power users. This book is intended to help anyone use the command line more efficiently. It provides a little more hand holding and considerable more detail about all of the available commands than my other two books. This is also the only book that discusses PowerShell.

The PowerShell portion of this third book has received a lot more attention as of late. Microsoft is making a much stronger emphasis on this new version of the command line, so I’m glad I included it in my book. One of the strong suites of this book is that it not only discusses documented commands, but many undocumented commands as well (with the appropriate caveats, of course).

No matter which version of my command line reference you use, I’m always here to answer your questions about my books. How do you interact with the command line? Has PowerShell taken a more prominent role in the way you do your work? Let me know at John@JohnMuellerBooks.com.

 

Making an Opportunity from Falling Trees

No matter where you have them, trees eventually fall. Parts of our property are heavily wooded, so falling trees are expected and happen fairly often. Winds will blow a tree down, lightning will crack it, insects will kill it, woodpeckers will weaken it, or old age will simply take it. No matter the cause, the tree lands somewhere and in most cases, the landing is benign from our perspective. However, we recently experienced a less benign falling tree. The woodpeckers had weakened it, birds had nested in the holes, and carpenter ants had drilled a hole through the center. A lightning strike and high winds finished the job. After the storm we got up to see a rather large tree draped across our rabbit hutches.

FallenTree01

 

Most of the pictures in this post were taken by my wife, Rebecca. I greatly appreciate her help in putting this post together.

Our first thought was that the rabbits had escaped their hutch or were possibly dead. Amazingly, the rabbit hutch held and the rabbits were safe. The main problem was that we couldn’t get to them to feed them.

FallenTree02

Unfortunately, cutting up a large tree is hot work and the heat index was well over 100 degrees that day (into the danger zone of the heat index chart). Let’s just say that it was sweaty work and leave it go at that. The tree was poised like a giant spring. The main trunk was actually split in two, but it was butted up against the rabbit cages in a way that didn’t let it fall completely, so I had to cut the tree with extreme care—starting with the branches.

FallenTree03

As I cut the branches, I separated the parts that I would later chip from those we would dry for firewood. The larger pieces were cut into lengths for stacking.

FallenTree04

After a while, all of the branches were cut. The tree was as safe as I could make it. However, the main part of the trunk was still braced against the rabbit hutch, so we still couldn’t get to the rabbits to feed them.

FallenTree05

The most challenging moment came when I had to release the spring holding the trunk against the cages. The cut was extremely dangerous because I had to cut the tree enough to release the pressure, but not so much that it would flip in some unexpected way. What I needed was a slow release of pressure so that the tree would come to a safer position. I made the cut and the tree slowly started to move as expected. The spring completely released itself and the piece I had partially cut ended up standing straight in the air before falling to the ground.

FallenTree06

I still have a lot of tree to cut, but we’ve managed to make use of everything. The pieces of the tree I have already cut up are stacked and drying nicely.

FallenTree07

We also obtained a large stack of branches.

FallenTree08

A lot of people would create a huge brush pile from the branches and burn them. However, doing so is really bad for the environment and wasteful of a useful part of the tree. I’m currently chipping the branches up and using them for mulch on our grapes. The mulch will keep the grapes moister, reduce watering costs, and make the grapes more productive because they won’t be battling weeds.

FallenTree09

In the end, what started as a disaster turned into an opportunity. Not every act of nature turns out this way, but we try to make the best of every situation. When did you last make an opportunity out of a natural event that started as a negative? Let me know at John@JohnMuellerBooks.com.

 

A New Emphasis On Libraries

I’ve been talking with a friend about libraries recently. He had noted that the only people he had seen using libraries lately were older; that children had no desire whatsoever to even enter a library. Of course, this bodes ill for the institution because the youth of today will be the supporters of libraries tomorrow. However, his observations don’t match my own. Our local libraries seem to be packed with children. In fact, I saw three children standing outside our local library the other day while waiting for the doors to open. The difference in these two observations has me quite curious.

The way in which people use libraries has always interested me because these public warehouses of knowledge are essential to a functioning society. People require some method of accessing exotic or expensive texts—especially people who have limited means. The way in which libraries present information to the public will change in the future, but I have no doubt they will remain. In fact, I’ve touched on this topic before in my “Future of Libraries?” post. Before a future kind of library can take shape, however, the children of today must be engaged in the materials that a library can provide and see these materials as useful.

The two of us are still discussing the topic of libraries because the differences in our observations provide good fodder for discourse on the topic. My thought is that the differences in our observations could come from a number of sources:

 

  • A difference in the community (small town versus large city)
  • Differences in the society (such as, beach community versus Midwest farming community)
  • Times of observation
  • Motivation level of the librarians manning the library
  • Perceived value of the library’s content


Our local library is blessed with a great librarian and strong support from volunteers who truly care that we have a library. For example, we actually host events at our library to get people engaged and to enter the building so they can see what the library has to offer. The state has also been running ads to help support the local libraries and those ads may be boosting the number of people the library sees. Whatever the difference, I’m truly happy to see children waiting for the doors to open at our community library.

Of course, I always want to hear your opinion. What level of participation do you see at your local library? Who goes there and what seems to interest them most? What do you see as factors that affect participation in your local library? Let me know your thoughts at John@JohnMuellerBooks.com

 

No Question Too Small

Sometimes reader questions take me by surprise. I simply didn’t think about the issue and there was no way I could have even thought about the issue in advance. For example, I recently received a question from a reader of HTML5 Programming with JavaScript For Dummies. It seemed that the first example wouldn’t work.

After asking all of the usual questions, I asked the reader to tell me what he was seeing on screen. It turned out the reader was getting the right result all the time, but wasn’t seeing the fancy skin I was using on my browser. Here’s the screenshot from the book.

9781118431665FG0101

The content that the reader should have been interested in is the heading, “My First JavaScript Example” and the subsequent paragraph, “This is a JavaScript test.” Those two items are the output from the example, not the browser itself. If you’re seeing the content I just described, then you’re seeing the correct result from the example—ignore the browser, it’s only there to act as a frame for the content.

The example is designed to work with any browser, decorated or not. Of course, I had looked at the content and the content was fine, but the reader pointed out that not everyone looks at just the content. Some people will look at the browser window as a whole and want their browser window to look the same (or nearly so). Normally I put a disclaimer about this in the book and I should have provided it in this book.

At issue here is the reader’s learning experience. No one should ever feel that a question is too small for me to answer. I really want you to learn something from my books and if an issue such as the decoration on my browser window is causing problems, then we’ll work through it together.

This particular issue has also demonstrated why beta readers are so important to my writing efforts. I ask for beta readers for each of my books for precisely this reason. I can’t see these sorts of issues myself because I have worked with computers for a long time and they’re simply invisible. What I need are fresh eyes to look at my work and tell me when I’m hiding the entire forest in the trees. Always feel free to contact me regarding any question you have, especially those simple questions most of us are hesitant to ask.

I also ask for your continued help in producing the best books possible. Whenever possible, volunteer to be a beta reader. I find your input incredibly helpful and useful. Let me know your thoughts about simple question or being a beta reader at John@JohnMuellerBooks.com.

 

Application Development and BYOD

I read an article a while ago in InforWorld entitled, “The unintended consequences of forced BYOD.” The Bring Your Own Device (BYOD) phenomenon will only gain in strength because more people are using their mobile devices for everything they do and corporations are continually looking for ways to improve the bottom line. The push from both sides ensures that BYOD will become a reality. The article made me think quite hard about how developers who work in the BYOD environment will face new challenges that developers haven’t even had to consider in the past.

Of course, developers have always had to consider security. Trying to maintain a secure environment has always been a problem. The only truly secure application is one that has no connectivity to anything, including the user. Obviously, none of the applications out there are truly secure—the developer has always had to settle for something less than the ideal situation. At least devices in the past were firmly under IT control, but not with BYOD. Now the developer has to face the fact that the application will run on just about any device, anywhere, at any time, and in any environment. A user could be working on company secrets with a competitor looking right at the screen. Worse, how will developers legal requirements such as the Health Insurance Portability and Accountability Act (HIPAA)? Is the user now considered an independent vendor or is the company still on the hook for maintaining a secure environment? The legal system has yet to address these sorts of questions, but it will have to do so soon because you can expect that your doctor (and other health professionals) will use a mobile device to enter information as well.

Developers will also have to get used to working with new tools and techniques. Desktop development has meant working with tools designed for a specific platform. A developer would use something like C# to create a desktop application meant for use on any platform that supports the .NET Framework, which mainly meant working with Windows unless the company also decided to support .NET Framework alternatives such as Mono (an open source version of the .NET Framework). Modern applications will very likely need to work on any platform, which means writing server-based applications, browser-based applications, or a combination of the two in order to ensure the maximum number of people possible can interact with the application. The developer will have to get used to the idea that there is no way to test absolutely every platform that will use the application because the next platform hasn’t been delivered yet.

Speed also becomes a problem for developers. When working with a PC or laptop, a developer can rely on the client having a certain level of functionality. Now the application needs to work equally well with a smartphone that may not have enough processing power to do much. In order to ensure the application works acceptably, the developer needs to consider using browser-based programming techniques that will work equally well on every device, no matter what level of power the device possesses.

Some in industry have begun advocating that BYOD should also include Bring Your Own Software (BYOS). This would mean creating an environment where developers would make data available through something like a Web service that could be accessed by any sort of device using any capable piece of software. However, the details of such a setup have yet to be worked out, much less implemented. The interface would have to be nearly automatic with regard to connectivity. The browser-based application could do this, but only if the organization could at least ensure that everyone would be required to use a browser that met minimum standards.

My current books, HTML5 Programming with JavaScript for Dummies and CSS3 for Dummies both address the needs of developers who are looking to move from the desktop into the browser-based world of applications that work anywhere, any time. Let me know your thoughts about BYOD and BYOS at John@JohnMuellerBooks.com.