Mind Matters Natural and Artificial Intelligence News and Analysis

CategoryProgramming

infrastructure-portuaire-stockpack-adobe-stock.jpg
infrastructure portuaire

Making Docker Work in Your Computer Infrastructure

Here are some best practices for building Docker images

If you use Docker to manage your infrastructure, you need to put time into thinking about how to build it. Here is a quick rundown of the things to keep in mind: Smaller is Better By itself, Docker makes great use of filesystem space. Because each container only holds the changes from the images, a little bit of image bloat doesn’t directly impact the server adversely. However, this doesn’t mean that we shouldn’t worry about bloat at all. Not only should we not waste space without reason, images that are too big cause other problems that you need to be aware of. The most important consideration is attack surface. Every program that you have on your image is a potential…

-stockpack-unsplash.jpg

China: COVID-19’s True History Finds an Unlikely Home — GitHub

The Chinese Communist party, rewriting the COVID-19 story with itself as the hero, must reckon with truthful techies

For a brief window of time at the beginning of 2020, China’s internet censors didn’t block stories about Wuhan and COVID-19, the coronavirus. Caixin, a widely-read news magazine, published a multi-page investigative report on everything leading up to the outbreak, including the way in which the provincial authorities in Hubei, of which Wuhan is the capital, suppressed knowledge of the virus. Fang Fang, an award-winning novelist, kept a Wuhan diary online on Weibo, which was recently published as a book in the U.S. (HarperCollins 2020). For that short time, comments on the coronavirus were not being censored (Wired) at WeChat. Many people were thus able to vent their frustrations and pay their respects when 32-year-old ophthalmologist and whistleblower Li Wenliang…

new-resistors.jpg
many new resistors stay together in close-ups

Circuit Patterns, Part 3: Pull-Up and Pull-Down Resistors

If a part of a circuit is disconnected, the voltage of that circuit isn’t necessarily zero; it can pick up static electricity
In this series, we have been talking about the importance of circuit patterns for both understanding circuit schematics that you might find on the web and building your own circuits. This series introduces some of the commonly used circuit patterns that are essential to electronics. Part 1 covered the importance of patterns and the most basic resistor pattern, the current limiting resistor. Part 2 covered voltage dividers, which—once you recognize them — you see in circuits everywhere. Part 3 covers two other important resistor patterns: pull-up and pull-down resistors. To understand the importance of pull-up and pull-down resistors, you must first realize that, if a part of a circuit is disconnected, the voltage of that circuit isn’t necessarily zero. In fact, it is unknown. This is especially true of inputs to microcontrollers such as an Arduino or a single-board computer such as Raspberry Pi. These inputs use so little current that, if they are disconnected from any voltage, they can react to voltage fluctuations in the air as if they were changes to their inputs. For instance, let’s say that you wanted a microcontroller to sense whether or not a button is pushed. It is tempting for new electronics hobbyists to simply connect a voltage source to an on/off button which goes to a pin on the microcontroller. This works fine while the button is pressed. What happens when the hobbyist lets go of the button? Letting go disconnects the microcontroller pin from the circuit. This does not mean that the voltage is zero, it means that the voltage is floating! Static electricity in the air will influence the voltage. All sorts of things that you can’t control will influence the voltage on that pin. Therefore, we must make sure that the pin is always attached to a fixed voltage. We want the high, positive voltage when the button is pressed and a zero voltage when the button is released. It might be tempting to simply connect the pin to ground (zero voltage) directly, thinking that, when the button is pushed, you will get the voltage from the button and when it is not pushed, it will then drop to zero. The problem is that electricity always finds the easiest path to ground. So, when the button is pushed, it will skip the microcontroller pin entirely and just short out directly to ground. To fix this situation, what is needed is a pull-down resistor. A pull-down resistor will keep the voltage high when the button is pushed but then pull the voltage low when the button is released. The size of the resistor will affect the operation as well. A larger resistor will waste less current when the button is pushed but it takes longer to stabilize the circuit when the button is let go. A smaller resistor will stabilize the circuit more quickly but waste more electricity while the button is pushed. In practice, for beginners, pretty much any resistor of 1,000 ohms or higher will work fine. In fact, just using the largest resistor you have is probably the best choice: A pull-up resistor is just like a pull-down resistor but with a different “default” value. Pull-down resistors essentially say, “if this circuit gets disconnected, set the voltage to zero.” Pull-up resistors essentially say, “if this circuit gets disconnected, set the voltage to be the battery (or source) voltage.” Pull-down resistors get connected to ground and pull-up resistors get connected to a voltage source. Pull-up resistors would be used if, for instance, the button itself was connected to ground instead of to the positive voltage source. In practice, some parts of circuits may look like they are connected when, in reality, they aren’t. Some input/output pins from transistors, microcontrollers, or integrated circuits may feature situations where the pin acts as if it were completely disconnected. In those cases, you need a pull-up or pull-down resistor to tell the circuit what its voltage is. For more information on pull-up and pull-down resistors and other basic circuit patterns, have a look at my new book, Electronics for Beginners: A Practical Introduction to Schematics, Circuits, and Microcontrollers, published by technology publisher Apress (a Springer Nature company). Here are Parts 1 and 2: Circuit Patterns, Part I: Understanding circuit schematics You will get on much better in electronics if you learn to see the schematic line drawings as a series of patterns. When you begin to see the drawings in books on electronics as a connected series of familiar patterns, the world of electronics opens up. Circuit Patterns, Part 2: Voltage Dividers When you see two resistors connected in series with a wire coming out from between them, the wire is likely a voltage divider. Knowing about voltage dividers will not only help you with projects, it will help you recognize this pattern on schematics you might find on the internet. You may also want to have a look at: New electronics book honors citizen scientist Forrest Mims IIIJonathan Bartlett’s dedication reflects Mims’ immense influence on electronics enthusiasts—including himself, as a boy. Electronics for Beginners follows in Mims’ footsteps as it shows the budding electronics enthusiast the many new components now available and how to use them. Read More ›
bright-colored-light-led-smd-screen-stockpack-adobe-stock.jpg
Bright colored light LED smd screen

Circuit Patterns, Part 2: Voltage Dividers

Pretty much any time you see two resistors connected in series with a wire coming out from between them, you are witnessing a voltage divider in action.

In yesterday’s installment, we talked about the importance of circuit patterns, both for understanding the circuit schematics that you might find on the web and for building your own circuits. This series introduces some of the commonly used circuit patterns that are essential to electronics. The first installment covered the most basic resistor pattern, the current limiting resistor. In this article, we are going to look at another basic resistor pattern the voltage divider. Voltage dividers work because resistors, while they limit current, also eat up excess voltage. An LED, for instance, will tend to only eat up a few volts. The excess voltage left over will quickly lead to an overabundance of current. That is why, to work properly,…

concentrated-elementary-student-examining-circuit-board-stockpack-adobe-stock.jpg
Concentrated elementary student examining circuit board

Circuit Patterns, Part I: Understanding Circuit Schematics

You will get on much better in electronics if you learn to see the schematic line drawings as a series of patterns

When I was young, I wanted to learn how to build electronics. I bought a large number of books from Radio Shack and read them all, cover to cover. Unfortunately, the books that I read helped me to understand a little bit about the periphery of electronics but not the core subject. I learned what each type of part did in general resistors, capacitors, transistors, inductors, etc., but I never really understood how all of the pieces fit together. How do you go from understanding the parts to understand how they fit together into a circuit? Throughout my life, I have returned to electronics now and again, sometimes personally, sometimes professionally. I eventually learned that most electronics follows basic patterns…

evolving-technology-stockpack-adobe-stock.jpg
Evolving Technology

Can Computers Evolve to Program Themselves Without Programmers?

How much computing power would we need to evolve the programmer’s intelligence via Darwinian evolution

At Science earlier this year, we were told that “Researchers have created software that borrows concepts from Darwinian evolution, including ‘survival of the fittest,’ to build AI programs that improve generation after generation without human input.” Critics say it’s not that easy. Computer scientist Roman Yampolskiy (pictured) discusses the problem in an open access paper, starting with a joke: On April 1, 2016 Dr. Yampolskiy posted the following to his social media accounts: “Google just announced major layoffs of programmers. Future software development and updates will be done mostly via recursive self-improvement by evolving deep neural networks”. The joke got a number of “likes” but also, interestingly, a few requests from journalists for interviews on this “developing story”. To non-experts…

curious-boy-looking-out-the-window-with-binocular-stockpack-adobe-stock.jpg
Curious boy looking out the window with binocular

Has Microsoft Ever Really Innovated?

That’s a question worth asking, with a history of litigation winning out over innovation

An interesting question in a 2010 discussion thread at Quora is “Why has Microsoft seemingly stopped innovating?” A deeper question is “Has Microsoft ever innovated?” Microsoft’s Bill Gates should be celebrated as a gifted and highly competitive entrepreneur and businessman. But his background as a computer scientist and student of algorithmic information theory is questionable. For this reason, Bill Gates’ assessment of the future of AI should be questioned. Undergraduate Gates dropped out of Harvard University to pursue the founding of Microsoft. He was a knowledgeable programmer with early computer hardware but his more significant talents as an entrepreneur did not require deep studies in computer science. Much of his success came from his business instincts and his team of…

containers-stockpack-adobe-stock.jpg
containers

Part 4: Docker—An Introduction to Container Orchestration

This tutorial will focus on Docker’s swarm because it comes installed with Docker and uses the same standard Docker files

In this installment we are going to look at “container orchestration” for Docker. In the previous installment, we just looked at how to run an individual container. However, most applications are a combination of services which are orchestrated together to make an application. While in theory all the pieces of an application could be built into a single container, it is better to split an application into its relevant services and run a separate container for each service. There are several reasons for this, but the biggest one is scalability. Remember, the containers don’t care if they all run on the same physical machine or different machines. By splitting the services into different containers, we can tell them all to…

a-boy-teenager-with-a-teacher-collect-robot-arduino-and-program-it-on-the-computer-the-boards-and-microcontrollers-are-on-the-table-stem-education-programming-mathematics-the-science-technologie-stockpack-adobe-stock.jpg
A boy teenager with a teacher collect robot arduino and program it on the computer. The boards and microcontrollers are on the table. STEM education. Programming. Mathematics. The science. Technologie

New Electronics Book Honors Citizen Scientist Forrest Mims III

Jonathan Bartlett’s dedication reflects Mims’ immense influence on electronics enthusiasts—including himself, as a boy

Forrest M. Mims III (pictured) has been an icon for many decades to two hobbyist movements: hobbyist electronics and citizen science. Anyone who used to visit Radio Shack in its heyday has probably seen and/or benefited from more than one of Mims’ books. Mims’ most prominent claim to fame was his series of Engineer’s Mini-Notebooks, small volumes that diagrammed circuits and their components and designs. Most hobbyists had a large collection of these notebooks and eventually they were collected into the book Getting Started in Electronics. Mims has also been one of the most prominent “citizen scientists.” A citizen scientist engages in science without the backing of a degree or institution, for the love of discovery. Mims is famous for…

a-3d-render-of-a-futuristic-person-made-of-gold-looking-up-at-the-sun-stockpack-adobe-stock.jpg
A 3D render of a futuristic person made of gold, looking up at the sun

A Physicist Weighs In on “A.I. Jesus” Sputtering from the Bible

Rob Sheldon explains why the prophecies sound bizarre rather than merely mundane

Last Sunday we reported on the computer program that inventor George Davila Durendal, hoped (or so he said) would—for millennia—be a sort of Scripture for robots and people. The program constructs “prophecies” from the text of the King James Version, a translation of the Bible into English completed in 1611, which has remained influential for centuries. Will the A.I. Jesus version do so well? Not if you go by prophecies like this: “And he shall come against him, and said, As the LORD liveth, that he might be fulfilled which was spoken, he said, Thou are the spirit of your good works that ye have not seen, nor any thing of the service thereof, and a certain censer, and the…

containers-stockpack-adobe-stock.jpg
containers

Part 3: Working with Docker: An Interactive Tutorial

Docker gives development teams more reliable, repeatable, and testable systems, deployed at massive scale with the click of a button

As businesses move more and more infrastructure online due to the effects of competition (not to mention COVID-19), finding the best way to manage that infrastructure becomes more and more important. Docker gives development teams more reliable, repeatable, and testable systems that can be deployed at massive scale with the click of a button. In this series (Parts 1 and 2 are linked below), we are looking under the hood at Docker, an infrastructure management tool that has grown rapidly in popularity over the last decade. In this installment, I will walk you through the process of using the Docker command line tools to download, install, and run containers, as well as build your own container. If you’re not a…

Stack of shipment boxes.jpg
Interior of warehouse storage, Stack of shipment boxes on pallets and hand pallet truck, Warehouse industry delivery shipment goods, logistics and transportation.

Part 2: A Peek Under the Covers at the New Docker Technology

Many advances enable Docker to significantly reduce a system’s overhead

As businesses move more and more of their infrastructure online due to the effects of competition (not to mention COVID-19), finding the best way to manage that infrastructure becomes more and more important. As we saw in Part 1, Docker enables development teams to have more reliable, repeatable, and testable systems that can be deployed at massive scale with the click of a button. In this installment, we are going to take a look at the technology behind Docker and how it originated. From Emulators to Virtual Machines Docker allows you to run numerous “containers” at the same time on a single computer. Each of these containers acts as if it were a separate computer. It knows nothing about what…

conceptual-image-of-international-logistics-featuring-a-docker-looking-at-the-unloading-of-a-container-ship-by-huge-cranes-in-the-stockpack-adobe-stock.jpg
Conceptual image of international logistics, featuring a docker, looking at the unloading of a container ship by huge cranes in the

How the Docker Revolution Will Change Your Programming, Part 1

Since 2013, Docker (an operating system inside your current operating system) has grown rapidly in popularity

As businesses move more and more infrastructure online due to the effects of competition (not to mention COVID-19), finding the best way to manage that infrastructure becomes more and more important. Docker enables development teams to have more reliable, repeatable, and testable systems that can be deployed at massive scale with the click of a button. In this series, we are looking under the hood at Docker, an infrastructure management tool that has rapidly grown in popularity over the last decade. A new infrastructure element has been quietly taking over for managing server-side code deployments. Docker was first released in 2013, and has seen an exponential rise in usage for developer deployments. Over the last seven years, Docker has quietly…

inner-life-of-super-human-ai-stockpack-adobe-stock.jpg
Inner Life of Super Human AI

GPT-3 Is “Mindblowing” If You Don’t Question It Too Closely

AI analysts sound unusually cautious in pointing out that it doesn’t live up to a lot of the hype

Last week, Jonathan Bartlett wrote about the somewhat misleading buzz around the new OpenAI third-generation software, GPT-3 (Generative Pretrained Transformer). And now—for a change—much of the industry has begun to seem socially distant, so to speak, from the reckless hype that has accompanied other releases. For example, one article starts off breathlessly: The artificial intelligence tool GPT-3 has been causing a stir online, due to its impressive ability to design websites, prescribe medication, and answer questions… Its predecessor, GPT-2, made headlines for being deemed “too dangerous to release” because of its ability to create text that is seemingly indistinguishable from those written by humans. While GPT-2 had 1.5 billion parameters which could be set, GPT-3 has 175 billion parameters. A…

hand-of-god-stockpack-adobe-stock.jpg
hand of god

Built to Save Us from Evil AI, OpenAI Now Dupes Us

When combined with several metric tons of data, its new GPT-3 sometimes it looks like it is “thinking.” No, not really

OpenAI started life in 2015 as a non-profit organization whose mission was to safeguard humanity from malevolent artificial intelligence (AI). The founders’ goal was to ensure that when superhuman AI arrived, its inborn purpose was to serve humanity rather than subjugate it. In 2019, OpenAI transitioned to a for-profit company based in San Francisco and secured a one billion dollar investment from Microsoft. Things seem to have moved on from there. There’s a good question whether superhuman AI is even possible, as we have pointed out repeatedly here at Mind Matters News. While some of the AI tasks seem impressive, oftentimes when you look under the hood, what you find is a very expensive party trick or a staged demo.…

software-engineers-working-on-project-and-programming-in-company-stockpack-adobe-stock.jpg
Software engineers working on project and programming in company

Automated Code Generation Tools Can Solve Problems

We may be seeing the rebirth of an old approach to productivity that finds a middle ground between too constrained and too risky

A programming language creates a middle space between the way humans think and the way computers think. What's the best compromise point?

Read More ›
close-up-view-of-the-difference-engine-stockpack-adobe-stock.jpg
Close-up view of the Difference Engine

Lovelace: The Programmer Who Spooked Alan Turing

Ada Lovelace understood her mentor Charles Babbage’s plans for his new Analytical Engine and was better than he at explaining what it could do

Turing thought that computers could be got to think. Thus he had to address Lovelace’s objection from a century earlier, that they could not be creative.

Read More ›
shirts-stockpack-adobe-stock.jpeg
Shirts

Why Your Computer Will Never Talk to You

As a jokester recently demonstrated, even “shirts without stripes” is a fundamental, unsolvable problem for computers

At first, “shirts without stripes” might not seem like much of an issue but it turns out that many important and interesting problems for computers fundamentally reduce to this “halting problem.” And understanding human language is one of these problems.

Read More ›
Shot of Corridor in Working Data Center Full of Rack Servers and Supercomputers with Internet connection Visualisation Projection.
Shot of Corridor in Working Data Center Full of Rack Servers and Supercomputers with Internet connection Visualization Projection.

What’s Hard for Computers Is Easy for Humans

Some of the surprising things computers have a hard time doing and why

We often hear that what’s hard for humans is easy for computers. But it turns out that many kinds of problems are exceedingly hard for computers to solve. This class of problems, known as NP-Complete (NPC), was independently discovered by Stephen Cook and Leonid Levin.

Read More ›
magician-hands-with-magic-wand-showing-trick-stockpack-adobe-stock.jpeg
magician hands with magic wand showing trick

Current Artificial Intelligence Research Is Unscientific

The assumption that the human mind can be reduced to a computer program has never really been tested

Because AI research is based on a fundamental assumption that has not been scientifically tested—that the human mind can be reduced to a computer—then the research itself cannot be said to be scientific.

Read More ›