Sunday, July 14, 2019

This One Image Destroys Tesla’s Self-Driving Car Fantasy

This One Image Destroys Tesla’s Self-Driving Car Fantasy

A two-year-old video of a prankster confusing a self-driving car has gone viral for a second time, and it demonstrates a critical reason why Tesla’s self-driving cars will never become ubiquitous.
Going viral once is a big event, but a “recurrent” viral video indicates that something about the content has gripped people in some visceral fashion.
In this case, it’s the fact that human ingenuity can fool a self-driving car. It drives home the reason why it seems unlikely that they will ever have mass-market appeal, no matter what company makesthem.

How to Confuse a Self-Driving Car

The video below is of a self-driving car surrounded by a solid and unbroken line of salt, which is further enclosed by a circle consisting of dashed lines of salt.
The video demonstrates that the self-driving car understands it can cross the dashed lines, and even the solid line following it.
As anyone who has ever driven a car knows, the dashed-solid line pair is the universal symbol that permits a car to move into the opposing lane in order to pass a vehicle in front of it.
However, while a human driver knows that he must then travel back into his original lane to avoid a head-on collision, the self-driving car only views its motion activity in a vacuum. It doesn’t use the previous data of having crossed over the dashed line to understand that it must cross back.
Consequently, the car ends up stuck in the circle of solid salt. The AI interface believes that, because there is a solid line, it cannot be crossed lest it place the car into a head-on collision.
It seems likely that, at some point, software engineers will find a solution to this particular problem.
Yet it is also indicative of the infinite variables that exist when a human being drives a car, combined with an infinite number of variables that exist when that driver shares the road with other vehicles.

Maybe One Day This Can Be Fixed. Maybe.

elon musk tesla stock
The public will never truly accept self-driving cars. | Source: AP/Kiichiro Sato
No matter how intelligent self-driving cars and AI interfaces become, they will never be able to account for every situation. That is going to lead to terrible accidents, and the public is going to take notice.
So will insurance companies and personal injury lawyers.

The Public Will Never Trust Tesla’s Robot Cars

The public will be wary of trusting self-driving cars that make these kinds of errors. Insurance companies will be hesitant to cover self-driving cars. Personal injury lawyers will rub their greedy little hands together at the prospect of terrible accidents.
This is not to say that the public will never come to accept self-driving vehicles, but expecting the mass market to adopt them in anything less than ten years is folly, no matter what Elon Musk says.
While technology will sufficiently advance to the point where there will not be these kinds of problems to worry about, that technology is likely to be decades away.
Disclaimer: The views expressed in the article are solely those of the author and do not represent those of, nor should they be attributed to, CCN.

Monday, July 8, 2019

사설 IP 클래스



Python 3 Cheat Sheet


Using Most Advanced Computer of the ’60s It’d Take a Billion Times the Age of the Universe to Mine a Bitcoin Block

Using Most Advanced Computer of the ’60s It’d Take a Billion Times the Age of the Universe to Mine a Bitcoin Block

An early computing expert has been restoring the guidance system used by NASA to land a man on the moon in the 1960s. Ken Sheriff has also programmed the machine to run Bitcoin code but says it would take an insanely long time to mine a single Bitcoin block using the once-high tech hardware.
Despite being a challenge to code, Sheriff believes it would be possible to mine Bitcoin using the Apollo Guidance Computer (AGC). The only problem is that at 10.3 seconds per single hash, it would take a billion times the length that the universe has existed to guess a Bitcoin block hash.

The Ludicrousness of Bitcoin Mining on AGC Shows How Computers have Developed in Just 50 Years

Ken Sheriff is an expert with early computers. He has previously rebuilt the computer from a Soviet Union air defence system, as well as various other important relics from hardware history.
His latest project has been to restore the guidance computer from the Apollo missions to the moon in the 1960s. Having rebuilt the once-cutting-edge machine, he decided to try to code it to be able to mine Bitcoin, an exercise that Sheriff describes as both “pointless and anachronistic”. On these grounds, he decided to give it a go.
Since the computer systems that the Bitcoin code was written on are far more advanced than the AGC, the computing historian writes on his blog that even getting the computer to mine the network was wrought with challenges.
However, Sheriff persevered with the old hardware and was successful in writing the necessary code to put the AGC to work mining digital gold for him. The only problem is that he estimates the length of time needed to guess a single hash of a Bitcoin block to be a billion times the duration of the entire universe.
The AGC is capable of making a single guess at a random hash every 10 seconds. Compare this to a modern, top-spec ASIC Bitcoin mining unit, which can make 16 trillion guesses every second. To be honest, a human guessing hashes is likely going to average out at a faster hash rate than the AGC!
Although setting the AGC to actually mine Bitcoin today would be incredibly wasteful in terms of electricity cost, the hardware was the absolute cutting edge of its day. Previous computer systems were often the size of an entire room. At just 70 pounds and a cubic foot in size, the AGC was compact enough to be taken aboard a rocket and quite literally blasted to the moon. It was also one of the first machines to feature integrated circuits. Aboard the Apollo missions, the AGC was tasked with guidance and navigation. It also controlled the engines of the ships.

Featured Image from Shutterstock.

How to Install Apache 2.4, MariaDB 10.3, and PHP 7.2 on Ubuntu 18.04

How to Install Apache 2.4, MariaDB 10.3, and PHP 7.2 on Ubuntu 18.04

Published on: Fri, Nov 16, 2018 at 12:45 pm EST 
MySQL and MariaDBPHPPopularSystem AdminUbuntuWeb Servers
In this article, you will learn how to setup an up-to-date LAMP stack by installing the latest stable releases of Apache 2.4 and MariaDB 10.3 on Ubuntu 18.04.
Note: Ubuntu 18.04 ships with PHP 7.2 already installed, so we will only need to install some necessary packages.

Prerequisites

  • An up-to-date Ubuntu 18.04 x64 server instance
  • A sudo user.

Create a sudo user

First, update your system:
apt-get update -y
apt-get upgrade -y
Next, create a new user:
adduser <username>
Type and re-type a new secure password for this user, then either set the user information or leave the fields blank and press ENTER to use the defaults.
Add the user to the sudo group:
usermod -aG sudo <username>

Install Apache 2.4

Install the latest stable release of Apache 2.4:
sudo apt-get install apache2 -y
Use the following command to confirm the installation and check the Apache version:
apache2 -v
The output will resemble the following:
Server version: Apache/2.4.29 (Ubuntu)
Server built:   2018-10-03T14:41:08
In a production environment, you will want to remove the default Ubuntu Apache welcome page:
sudo mv /var/www/html/index.html /var/www/html/index.html.bak
For security purposes, you should prevent Apache from exposing files and directories within the web root directory /var/www/html to visitors:
sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf
Note: In accordance with your specific requirements, you can customize more settings in that file later.
Start the Apache service and make it start on system boot:
sudo systemctl start apache2.service
sudo systemctl enable apache2.service

Install MariaDB 10.3

First, install software-properties-common, if necessary:
sudo apt-get install software-properties-common
Next, import the gpg key:
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
Add the system apt repo:
sudo add-apt-repository 'deb [arch=amd64] http://mirror.zol.co.zw/mariadb/repo/10.3/ubuntu bionic main'
Update apt:
sudo apt update -y
Now you can install MariaDB:
sudo apt install -y mariadb-server mariadb-client
During the installation process, the MariaDB package configuration wizard will automatically pop up and ask you to setup a new password for the MariaDB root user. Choose a secure password and repeat it to confirm it.
Having MariaDB installed, you can confirm the installation:
mysql -V
The output will be similar to the following:
mysql  Ver 15.1 Distrib 10.3.10-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Start and enable the MariaDB service:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Secure the installation of MariaDB:
sudo /usr/bin/mysql_secure_installation
The first prompt will be to enter the root password you just set. Next it will ask if you would like to change the password. You can enter n and press ENTER, unless you would like to change the password.
During the interactive process, just press ENTER for the default options, as they are the safest.
MariaDB 10.3 has now been securely installed onto your system. In the future, you can setup designated users and databases for your web apps as well. Log into the MySQL shell as root:
mysql -u root -p
Type the MariaDB root password you set earlier when prompted.
Create a MariaDB database webapp, a database user webappuser, and the database user's password yourpassword:
CREATE DATABASE webapp;
CREATE USER 'webappuser'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON webapp.* TO 'webappuser'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
If necessary, you can customize MariaDB by reviewing and editing the main MariaDB config file which is /etc/mysql/my.cnf:
sudo cp /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
sudo vi /etc/mysql/my.cnf
Remember to restart the MariaDB service if you make any modifications to that file:
sudo systemctl restart mariadb.service

Install PHP 7.2 packages

Be sure to install these packages after installing Apache:
sudo apt-get install -y php libapache2-mod-php7.2 php7.2-cli php7.2-common php7.2-mbstring php7.2-gd php7.2-intl php7.2-xml php7.2-mysql php7.2-zip

Setup the UFW firewall

By default, the UFW firewall on Ubuntu 18.04 is inactive. You should enable the UFW firewall in order to enhance security. First check the app list:
sudo ufw app list
Next set your rules:
sudo ufw allow OpenSSH
sudo ufw allow in "Apache Full"
Finally, start ufw:
sudo ufw enable
Congratulations, you now have a LAMP stack up and running on your Ubuntu 18.04 system. You can now deploy your own web app on the basis of the LAMP stack.