Why Fear Artificial Intelligence?

Concerns have been expressed that AI is dangerous as revealed in a recent article on CNN titled, Is AI a threat to humanity? I think the article does an excellent job summarizing the views for and against artificial intelligence. I recommend that you read the article to understand the range of views on this topic. I take a different approach to the question. The first piece of information is that no one has proven mathematically, scientifically, or rationally the likelihood of malevolent artificial intelligence. The absence of such proofs in the mainstream consciousness suggests that such arguments are at best speculative and subjective. Continue reading

Free Knowledge is Priceless

I do not believe in software computer code patenting or copyright in terms of restricting the use, distribution, or making of software. Patents and copyrights can give credit to those who make such technology. That is a useful purpose. What I oppose is punishing someone or an entity for sharing ideas unrelated to specific national defense concerns. When I see the news that $4.5 billion was spent trying to preserve the ability to use, distribute, or make software, I cannot help but think of how else those funds could have been used. Continue reading

Review of Game Programming Patterns

Game Programming Patterns by Robert Nystrom is an excellent way to acquaint oneself with the style and thought process of well crafted software code. I believe this book to be a very strong description of semantic style and organization relevant to computer code. The material may serve as a good guide book for improving the modular division of software code according to a object-oriented and component-based perspective.

The recommendations are clear and can be put into use immediately. The book is all about good thinking, good design in laying out and reshaping software. I found the book a short read. It did take me a while to put it in the context of other books of a similar kind, hence this review. Continue reading

A Stable Tech Economy

Many years ago, I worked in a corporate office with access to a CEO who had a strong background in marketing. I learned a lot from him through conversation and osmosis. He seemed to me to have a clear-cut view on value. I don’t know for sure if he believed this, but I felt he saw value as either present or not. While he had a marketing background he also a very strong real-world background in hard materials, their manufacture, and the full scope of operational management required to move raw materials into products and into customer’s hands. Through osmosis, I learned that value is there or it is not. Continue reading

Patterns of Real World Code in Game Programming Patterns

Continuing from an earlier discussion of software design, many of the Design Patterns discussed in section 2 of the book, Game Programming Patterns are great solutions to a range of design requirements. The section describes 6 of the original 23 patterns from the 1994 Design Patterns book. Those patterns that are discussed are useful for strengthening structure at various levels of a software code implementation consisting of an upper level API, mid level API and low-level implementation. Class types designed for the upper level API and top-level function region of a solution may be well treated by patterns such as Command, State, and Observer. Continue reading

Considering Architecture in Game Programming Patterns

Writing software can often take you down 3 separate paths. Speed, flexibility, or obviousness are classic goals in writing software. Speed is how fast the program runs or how soon a certain part of the program finishes its work. Flexibility is the ability to adapt the program or a part of the program to new work, behaviors, and conditions. Often, you can judge successful flexibility based on the time it takes or the level of effort needed to adapt the program. Obviousness is how a line of code can be understood and perhaps how well an entire program can be known in just a few readings of the program’s code. Continue reading

Review of Scott Meyers’ Effective Modern C++

The programming language, C++ has a long history in digital computer programming and information technology. It is the chief language for video games, most major desktop software (MS Office, Adobe, and AutoCAD), biotech analysis, aircraft systems, and certain kinds of information technology infrastructure. The programming language, C is more versatile and the chief language for creating operating systems like Windows, Mac OS X, and Linux and C++ allows you to harness C language capabilities in a more extensively modular way. Continue reading