Comic for May 27, 2018

Transcript

Woman: I need help persuading your boss to bless my project. Should I use facts and logic? Dilbert: No, he hates that stuff. Woman: Maybe I could appeal to his better angels? Dilbert: His better angels wear noise-canceling headphones. Woman: Okay, fine. I’ll just appeal to his self-interest. Dilbert: It would be in his best interest to avoid people like you. Woman: What do you suggest? Dilbert: We’ve had good outcomes using his ignorance and fear. Woman: Sign this ore else a blockchain drone will kill you in your sleep. Boss: Where’s my pen!

via Dilbert Daily Strip
Comic for May 27, 2018

Percona Monitoring and Management 1.11.0 Is Now Available

Percona Monitoring and Management

Percona Monitoring and ManagementPercona Monitoring and Management (PMM) is a free and open-source platform for managing and monitoring MySQL® and MongoDB® performance. You can run PMM in your own environment for maximum security and reliability. It provides thorough time-based analysis for MySQL® and MongoDB® servers to ensure that your data works as efficiently as possible.

In PMM Release 1.11.0, we deliver the following changes:

  • Configurable MySQL Slow Log Rotation – enable or disable rotation, and specify how many files to keep on disk
  • Predictable Graphs – we’ve updated our formulas to use aggregation functions over time for more reliable graphs
  • MySQL Exporter Parsing of my.cnf – we’ve improved how we read my.cnf
  • Annotation improvements – passing multiple strings results in single annotation being written

The issues in the release includes 1 new features & improvements, and 9 bugs fixed.

MySQL Slow Log Rotation Improvements

We spent some time this release going over how we handle MySQL’s Slow Log rotation logic. Query Analytics requires that slow logging be enabled (either to file, or to PERFORMANCE_SCHEMA) and we found that users of Percona Server for MySQL overwhelmingly choose logging to a file in order to take advantage of log_slow_verbosity which provides enhanced InnoDB Usage information. However, the challenge with MySQL’s Slow Log is that it is very verbose and thus the number one concern is disk space. PMM strives to do no harm and so MySQL Slow Log Rotation was a natural fit, but until this release we were very strict and hadn’t enabled any configuration of these parameters.

Percona Server for MySQL Users have long known about Slow Query Log Rotation and Expiration, but until now had no way of using the in-built Percona Server for MySQL feature while ensuring that PMM wasn’t missing any queries from the Slow Log during file rotation. Or perhaps your use case is that you want to do Slow Log Rotation using logrotate or some other facility. Today with Release 1.11 this is now possible!

We’ve made two significant changes:

  1. You can now specify the number of Slow Log files to remain on disk, and let PMM handle deleting the oldest files first. Default remains unchanged – 1 Slow Log to remain on disk.
  2. Slow Log rotation can now be disabled, for example if you want to manage rotation using logrotate or Percona Server for MySQL Slow Query Log Rotation and Expiration. Default remains unchanged – Slow Log Rotation is ON.

Number of Slow Logs Retained on Disk

Slow Logs Rotation – On or Off

You specify each of these two new controls when setting up the MySQL service. The following example specifies that 5 Slow Log files should remain on disk:

pmm-admin add mysql ... --retain-slow-logs=5

While the following example specifies that Slow Log rotation is to be disabled (flag value of false), with the assumption that you will perform your own Slow Log Rotation:

pmm-admin add mysql ... --slow-log-rotation=false

We don’t currently support modifying option parameters for an existing service definition. This means you must remove, then re-add the service and include the new options.

We’re including a logrotate script in this post to get you started, and it is designed to keep 30 copies of Slow Logs at 1GB each. Note that you’ll need to update the Slow Log location, and ensure a MySQL User Account with SUPER, RELOAD are used for this script to successfully execute.

Example logrotate
/var/mysql/mysql-slow.log {
    nocompress
    create 660 mysql mysql
    size 1G
    dateext
    missingok
    notifempty
    sharedscripts
    postrotate
       /bin/mysql -e 'SELECT @@global.long_query_time INTO @LQT_SAVE; SET GLOBAL long_query_time=2000; SELECT SLEEP(2); FLUSH SLOW LOGS; SELECT SLEEP(2); SET GLOBAL long_query_time=@LQT_SAVE;'
    endscript
    rotate 30
}

Predictable Graphs

We’ve updated the logic on four dashboards to better handle predictability and also to allow zooming to look at shorter time ranges.  For example, refreshing PXC/Galera graphs prior to 1.11 led to graphs spiking at different points during the metric series. We’ve reviewed each of these graphs and their corresponding queries and added in <aggregation>_over_time() functions so that graphs display a consistent view of the metric series. This improves your ability to drill in on the dashboards so that no matter how short your time range, you will still observe the same spikes and troughs in your metric series. The four dashboards affected by this improvement are:

  • Home Dashboard
  • PXC/Galera Graphs Dashboard
  • MySQL Overview Dashboard
  • MySQL InnoDB Metrics Dashboard

MySQL Exporter parsing of my.cnf

In earlier releases, the MySQL Exporter expected only key=value type flags. It would ignore options without values (i.e. disable-auto-rehash), and could sometimes read the wrong section of the my.cnf file.  We’ve updated the parsing engine to be more MySQL compatible.

Annotation improvements

Annotations permit the display of an event on all dashboards in PMM.  Users reported that passing more than one string to pmm-admin annotate would generate an error, so we updated the parsing logic to assume all strings passed during annotation creation generates a single annotation event.  Previously you needed to enclose your strings in quotes so that it would be parsed as a single string.

Issues in this release

New Features & Improvements

  • PMM-2432 – Configurable MySQL Slow Log File Rotation

Bug fixes

  • PMM-1187 – Graphs breaks at tight resolution 
  • PMM-2362 – Explain is a part of query 
  • PMM-2399 – RPM for pmm-server is missing some files 
  • PMM-2407 – Menu items are not visible on PMM QAN dashboard 
  • PMM-2469 – Parsing of a valid my.cnf can break the mysqld_exporter 
  • PMM-2479 – PXC/Galera Cluster Overview dashboard: typo in metric names 
  • PMM-2484 – PXC/Galera Graphs display unpredictable results each time they are refreshed 
  • PMM-2503 – Wrong InnoDB Adaptive Hash Index Statistics 
  • PMM-2513 – QAN-agent always changes max_slowlog_size to 0 
  • PMM-2514 – pmm-admin annotate help – fix typos
  • PMM-2515 – pmm-admin annotate – more than 1 annotation 

How to get PMM

PMM is available for installation using three methods:

Help us improve our software quality by reporting any bugs you encounter using our bug tracking system.

The post Percona Monitoring and Management 1.11.0 Is Now Available appeared first on Percona Database Performance Blog.

via MySQL Performance Blog
Percona Monitoring and Management 1.11.0 Is Now Available

Setting up PMM on Google Compute Engine in 15 minutes or less

Percona Monitoring and Management on Google Compute Engine

In this blog post, I will show you how easy it is to set up a Percona Monitoring and Management server on Google Compute Engine from the command line.

First off you will need to have a Google account and install the Cloud SDK tool. You need to create a GCP (Google Cloud Platform) project and enable billing to proceed. This blog assumes you are able to authenticate and SSH into instances from the command line.

Here are the steps to install PMM server in Google Cloud Platform.

1) Create the Compute engine instance with the following command. The example creates an Ubuntu Xenial 16.04 LTS compute instance in the us-west1-b zone with a 100GB persistent disk. For production systems it would be best to use a 500GB disk instead (size=500GB). This should be enough for default data retention settings, although your needs may vary.

jerichorivera@percona-support:~/GCE$ gcloud compute instances create pmm-server --tags pmmserver --image-family ubuntu-1604-lts --image-project ubuntu-os-cloud --machine-type n1-standard-4 --zone us-west1-b --create-disk=size=100GB,type=pd-ssd,device-name=sdb --description "PMM Server on GCP" --metadata-from-file startup-script=deploy-pmm-xenial64.sh
Created [https://www.googleapis.com/compute/v1/projects/thematic-acumen-204008/zones/us-west1-b/instances/pmm-server].
NAME        ZONE        MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP   STATUS
pmm-server  us-west1-b  n1-standard-4               10.138.0.2   35.233.216.225  RUNNING

Notice that we’ve used

--metadata-from-file startup-script=deploy-pmm-xenial64.sh

  The file has the following contents:

jerichorivera@percona-support:~$ cat GCE/deploy-pmm-xenial64.sh
#!/bin/bash
set -v
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
# Format the persistent disk, mount it then add to /etc/fstab
sudo mkfs.ext4 -m 0 -F -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
sudo mkdir -p /mnt/disks/pdssd
sudo mount -o discard,defaults /dev/sdb /mnt/disks/pdssd/
sudo chmod a+w /mnt/disks/pdssd/
sudo cp /etc/fstab /etc/fstab.backup
echo UUID=`sudo blkid -s UUID -o value /dev/sdb` /mnt/disks/pdssd ext4 discard,defaults,nofail 0 2 | sudo tee -a /etc/fstab
# Change docker’s root directory before installing Docker
sudo mkdir /etc/systemd/system/docker.service.d/
cat << EOF > /etc/systemd/system/docker.service.d/docker.root.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -g /mnt/disks/pdssd/docker/
EOF
sudo apt-get install -y docker-ce
# Creates the deploy.sh script
cat << EOF > /tmp/deploy.sh
#!/bin/bash
set -v
docker pull percona/pmm-server:latest
docker create -v /opt/prometheus/data -v /opt/consul-data -v /var/lib/mysql -v /var/lib/grafana --name pmm-data percona/pmm-server:latest /bin/true
docker run -d -p 80:80 --volumes-from pmm-data --name pmm-server --restart always percona/pmm-server:latest
EOF

This startup script will be executed right after the compute instance is created. The script will format the persistent disk and mount the file system; create a custom Docker unit file for the purpose of creating Docker’s root directory from /var/lib/docker to /mnt/disks/pdssd/docker; install the Docker package; and create the deploy.sh script.

2) Once the compute engine instance is created, SSH into the instance, check that Docker is running and the root directory pointing to the desired folder.

jerichorivera@pmm-server:~$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/docker.service.d
           └─docker.root.conf
   Active: active (running) since Wed 2018-05-16 12:53:30 UTC; 45s ago
     Docs: https://docs.docker.com
 Main PID: 4744 (dockerd)
   CGroup: /system.slice/docker.service
           ├─4744 /usr/bin/dockerd -H fd:// -g /mnt/disks/pdssd/docker/
           └─4764 docker-containerd --config /var/run/docker/containerd/containerd.toml
May 16 12:53:30 pmm-server dockerd[4744]: time="2018-05-16T12:53:30.391566708Z" level=warning msg="Your kernel does not support swap memory limit"
May 16 12:53:30 pmm-server dockerd[4744]: time="2018-05-16T12:53:30.391638253Z" level=warning msg="Your kernel does not support cgroup rt period"
May 16 12:53:30 pmm-server dockerd[4744]: time="2018-05-16T12:53:30.391680203Z" level=warning msg="Your kernel does not support cgroup rt runtime"
May 16 12:53:30 pmm-server dockerd[4744]: time="2018-05-16T12:53:30.392913043Z" level=info msg="Loading containers: start."
May 16 12:53:30 pmm-server dockerd[4744]: time="2018-05-16T12:53:30.767048674Z" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
May 16 12:53:30 pmm-server dockerd[4744]: time="2018-05-16T12:53:30.847907241Z" level=info msg="Loading containers: done."
May 16 12:53:30 pmm-server dockerd[4744]: time="2018-05-16T12:53:30.875129963Z" level=info msg="Docker daemon" commit=9ee9f40 graphdriver(s)=overlay2 version=18.03.1-ce
May 16 12:53:30 pmm-server dockerd[4744]: time="2018-05-16T12:53:30.875285809Z" level=info msg="Daemon has completed initialization"
May 16 12:53:30 pmm-server dockerd[4744]: time="2018-05-16T12:53:30.884566419Z" level=info msg="API listen on /var/run/docker.sock"
May 16 12:53:30 pmm-server systemd[1]: Started Docker Application Container Engine.

3) Add your user to the docker group as shown below and change deploy.sh script to executable.

jerichorivera@pmm-server:~$ sudo usermod -aG docker $USER
jerichorivera@pmm-server:~$ sudo chmod +x /tmp/deploy.sh

4) Log off from the instance, and then log back in and then execute the deploy.sh script.

jerichorivera@pmm-server:~$ cd /tmp/
jerichorivera@pmm-server:/tmp$ ./deploy.sh
docker pull percona/pmm-server:latest
latest: Pulling from percona/pmm-server
697841bfe295: Pull complete
fa45d21b9629: Pull complete
Digest: sha256:98d2717b4f0ae83fbca63330c39590d69a7fca7ae6788f52906253ac75db6838
Status: Downloaded newer image for percona/pmm-server:latest
docker create -v /opt/prometheus/data -v /opt/consul-data -v /var/lib/mysql -v /var/lib/grafana --name pmm-data percona/pmm-server:latest /bin/true
8977102d419cf8955fd8bbd0ed2c663c75a39f9fbc635238d56b480ecca8e749
docker run -d -p 80:80 --volumes-from pmm-data --name pmm-server --restart always percona/pmm-server:latest
83c2e6db2efc752a6beeff0559b472f012062d3f163c042e5e0d41cda6481d33

5) Finally, create a firewall rule to allow HTTP port 80 to access the PMM Server. For security reasons, we recommend that you secure your PMM server by adding a password, or limit access to it with a stricter firewall rule to specify which IP addresses can access port 80.

jerichorivera@percona-support:~$ gcloud compute firewall-rules create allow-http-pmm-server --allow tcp:80 --target-tags pmmserver --description "Allow HTTP traffic to PMM Server"
Creating firewall...-Created [https://www.googleapis.com/compute/v1/projects/thematic-acumen-204008/global/firewalls/allow-http-pmm-server].
Creating firewall...done.
NAME                   NETWORK  DIRECTION  PRIORITY  ALLOW   DENY
allow-http-pmm-server  default  INGRESS    1000      tcp:80
jerichorivera@percona-support:~/GCE$ gcloud compute firewall-rules list
NAME                    NETWORK  DIRECTION  PRIORITY  ALLOW                         DENY
allow-http-pmm-server   default  INGRESS    1000      tcp:80
default-allow-icmp      default  INGRESS    65534     icmp
default-allow-internal  default  INGRESS    65534     tcp:0-65535,udp:0-65535,icmp
default-allow-rdp       default  INGRESS    65534     tcp:3389
default-allow-ssh       default  INGRESS    65534     tcp:22

At this point you should have a PMM Server in GCP running on a Compute Engine instance.

The next steps is to install pmm-client on the database hosts and add services for monitoring.

Here I’ve launched a single standalone Percona Server 5.6 on another Compute Engine instance in the same project (thematic-acumen-204008).

jerichorivera@percona-support:~/GCE$ gcloud compute instances create mysql1 --tags mysql1 --image-family centos-7 --image-project centos-cloud --machine-type n1-standard-2 --zone us-west1-b --create-disk=size=50GB,type=pd-standard,device-name=sdb --description "MySQL1 on GCP" --metadata-from-file startup-script=compute-instance-deploy.sh
Created [https://www.googleapis.com/compute/v1/projects/thematic-acumen-204008/zones/us-west1-b/instances/mysql1].
NAME    ZONE        MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP     STATUS
mysql1  us-west1-b  n1-standard-2               10.138.0.3   35.233.187.253  RUNNING

Installed Percona Server 5.6 and pmm-client and then added services. Take note that since the PMM Server and the MySQL server is in the same project and same VPC network, we can connect directly through INTERNAL_IP 10.138.0.2, otherwise use the EXTERNAL_IP 35.223.216.225.

[root@mysql1 jerichorivera]# pmm-admin config --server 10.138.0.2
OK, PMM server is alive.
PMM Server      | 10.138.0.2
Client Name     | mysql1
Client Address  | 10.138.0.3
[root@mysql1 jerichorivera]#
[root@mysql1 jerichorivera]# pmm-admin check-network
PMM Network Status
Server Address | 10.138.0.2
Client Address | 10.138.0.3
* System Time
NTP Server (0.pool.ntp.org)         | 2018-05-22 06:45:47 +0000 UTC
PMM Server                          | 2018-05-22 06:45:47 +0000 GMT
PMM Client                          | 2018-05-22 06:45:47 +0000 UTC
PMM Server Time Drift               | OK
PMM Client Time Drift               | OK
PMM Client to PMM Server Time Drift | OK
* Connection: Client --> Server
-------------------- -------
SERVER SERVICE       STATUS
-------------------- -------
Consul API           OK
Prometheus API       OK
Query Analytics API  OK
Connection duration | 408.185µs
Request duration    | 6.810709ms
Full round trip     | 7.218894ms
No monitoring registered for this node identified as 'mysql1'.
[root@mysql1 jerichorivera]# pmm-admin add mysql --create-user
[linux:metrics] OK, now monitoring this system.
[mysql:metrics] OK, now monitoring MySQL metrics using DSN pmm:***@unix(/mnt/disks/disk1/data/mysql.sock)
[mysql:queries] OK, now monitoring MySQL queries from slowlog using DSN pmm:***@unix(/mnt/disks/disk1/data/mysql.sock)
[root@mysql1 jerichorivera]# pmm-admin list
pmm-admin 1.10.0
PMM Server      | 10.138.0.2
Client Name     | mysql1
Client Address  | 10.138.0.3
Service Manager | linux-systemd
-------------- ------- ----------- -------- ----------------------------------------------- ------------------------------------------
SERVICE TYPE   NAME    LOCAL PORT  RUNNING  DATA SOURCE                                     OPTIONS
-------------- ------- ----------- -------- ----------------------------------------------- ------------------------------------------
mysql:queries  mysql1  -           YES      pmm:***@unix(/mnt/disks/disk1/data/mysql.sock)  query_source=slowlog, query_examples=true
linux:metrics  mysql1  42000       YES      -
mysql:metrics  mysql1  42002       YES      pmm:***@unix(/mnt/disks/disk1/data/mysql.sock)

Lastly, in case you need to delete the PMM Server instance. Just execute this delete command below to completely remove the instance and the attached disk. Be aware that you may remove the boot disk and retain the attached persistent disk if you prefer.

jerichorivera@percona-support:~/GCE$ gcloud compute instances delete pmm-server
The following instances will be deleted. Any attached disks configured
 to be auto-deleted will be deleted unless they are attached to any
other instances or the `--keep-disks` flag is given and specifies them
 for keeping. Deleting a disk is irreversible and any data on the disk
 will be lost.
 - [pmm-server] in [us-west1-b]
Do you want to continue (Y/n)?  y
Deleted [https://www.googleapis.com/compute/v1/projects/thematic-acumen-204008/zones/us-west1-b/instances/pmm-server].

The other option is to install PMM on Google Container engine which was explained by Manjot Singh in his blog post.

The post Setting up PMM on Google Compute Engine in 15 minutes or less appeared first on Percona Database Performance Blog.

via Planet MySQL
Setting up PMM on Google Compute Engine in 15 minutes or less

How to Really Listen in Conversations 

Listening: the poor man’s talking. But your turn to pay attention to someone else’s blah blah will come. Here’s how to be the kind of listener you’d like to talk to.

Cash Nickerson is the author of The Samurai Listener, which is kind of a mashup of business advice and a how-to on listening that leans heavily on western ideas of the way of the Samurai. Fast Company interviewed Nickerson for some easy tips on how to improve your ability to not just hear what people are saying, but to really listen.

Get Off Your Phone

This is basic politeness, but if someone is talking to you and you’re scrolling through Instagram, you are not paying attention. Much of our communication comes from more than words, and you’re not noticing enough about someone to get the subtext. Unless they’re on their phone, too—in which case I think they’re probably saying they don’t want to be having this conversation either.

Keep Your Opinions To Yourself

Not forever, of course. But when you’re discussing something, you won’t really be able to receive what the other person is saying if you can’t let go of your ideas about what they’re saying first. There are some opinions I personally don’t ever want to let go of, but if you want to really understand someone’s point of view, sitting through the end of it without interrupting will help.

Advertisement

“Listening helps you handle conflict, express respect and be a better leader,” Nickerson says. “Unfortunately, most people don’t remember because they don’t hear it in the first place.”

An article in Psychology Today says something similar, describing it as “consciously deciding to give input.” You are leading someone so you can learn more, not shutting them down:

The good listener is secure enough to rationally decide whether, in any given situation, to add input or to just listen and possibly ask follow-up questions. Don’t let your desire to impress trump what’s best for the interaction and the desired outcome. In the right situation, restraint can be just as compelling. Do you add content to a conversation only when wise?

Do you? Or are you just listening to get revved up to talk?

Read Between The Lines

Another thing mentioned by Psychology Today is the importance of noticing what is not being said. They give the example of talking to someone who never wants to discuss personal relationships, but is always willing to chat about work. That’s kind of a red flag if you’re on a date, but great if you’re looking for a business partner. And if, say, you were an investigative reporter, you would probably notice the topics that your subject kept turning away from—and push harder in those directions.

Advertisement

Most of us aren’t conducting an interrogation, but still, there’s a lot to learn about someone based on what they avoid talking about. Listen for the silences.

Work On Comprehension

A lot of misunderstandings can be avoided with a few simple questions. If you’re not one hundred percent sure what someone is saying, try to rephrase it and ask if that’s what they mean. You won’t look stupid—you’ll look like you give a crap. That’s all most people want.

Get to the Heart of It

Once you’ve got a hold of the facts, you need to understand someone’s reason for sharing them. This is something I personally do when I’m interviewing a person for a story, or even when I’m on a date: I analyze what they’re saying in the moment, but instead of responding with my own opinion, I double check.

“You’ve said A and B. Does that mean you believe C?”

That gives them the opportunity to clarify, or agree. People rarely tell you a story for no reason. Figuring out what that reason is is the challenge.

Keep Trying

This all sounds exhausting. It is! Listening actively is a skill that’s honed, and one you can employ or not. There are also whole courses on listening, because not everyone you listen to is a good talker. Sometimes people are boring, meandering, and distracted. But sometimes they have useful information. You should know how to extract it.

Know When To Quit

Sometimes you just can’t listen! I cannot pay attention to someone when I’m hangry, exhausted or stressed, and all three of those things can come up in the course of a long talk. Sunny Sea Gold wrote in Scientific American that she had been accused of being a bad listener by her husband. She interviewed psychology researcher John Stewart, author of U&amp;Me: Communicating in Moments That Matter, in an effort to improve. Stewart said that it’s very important to know when you’re no longer able to pay attention:

“Genuine listening requires humility and curiosity—and neither can be successfully faked,” Stewart says. If you’re not feeling well, if you’re hurried, rushed or overly stressed, you’re not going to be able to be truly present and curious during a conversation, especially a tough one.

Convincing someone that it’s time to pause is an entirely different skill from listening, but here’s something you can say:

Advertisement

“I think this conversation is important, but I need some time so I can give it my undivided attention.”

And if someone doesn’t get that, they’re the one who needs to work on listening.


via Lifehacker
How to Really Listen in Conversations 

How Cruise Ships Work

How Cruise Ships Work

Link

Cruise ships seem to offer a lot of bang for your buck, and some do sell tickets at a loss. PolyMatter points out some of the many ways that cruise ship companies make or save money, such as flying under different flags, offering one-way trips and having casinos.

via The Awesomer
How Cruise Ships Work

Computer History Museum Makes Eudora Email Client Source Code Available To the Public

Computer History Museum (CHM), an institution which explores the history of computing and its impact on the human experience, announced on Tuesday the public release and long-term preservation of the

Eudora source code

, one of

the early

successful

email clients

, as part of its Center for Software History’s Historical Source Code. The release comes after a five-year negotiation with Qualcomm. From the

press release

:

The first version of Eudora was created in the 1980s by Steve Dorner who was working at the University of Illinois at Urbana-Champaign. It took Dorner over a year to create the first version of Eudora, which had 50,000 lines of C code and ran only on the Apple Macintosh. In 1991, Qualcomm licensed Eudora from the University of Illinois and distributed it free of charge. Qualcomm later released Eudora as a consumer product in 1993, and it quickly gained popularity. Available both for the IBM PC and the Apple Macintosh, in its heyday Eudora had tens of millions of users. After 15 years, in 2006, Qualcomm decided that Eudora was no longer consistent with their other major project lines, and they stopped development. The discussion with Qualcomm for the release of the Eudora source code by the company’s museum took five years.

Len Shustek, the chairman of the board of trustees of the Computer History Museum,

writes

:

Eventually many email clients were written for personal computers, but few became as successful as Eudora. Available both for the IBM PC and the Apple Macintosh, in its heyday Eudora had tens of millions of happy users. Eudora was elegant, fast, feature-rich, and could cope with mail repositories containing hundreds of thousands of messages. In my opinion it was the finest email client ever written, and it has yet to be surpassed. I still use it today, but, alas, the last version of Eudora was released in 2006. It may not be long for this world. With thanks to Qualcomm, we are pleased to release the Eudora source code for its historical interest, and with the faint hope that it might be resuscitated. I will muse more about that later.

via Slashdot
Computer History Museum Makes Eudora Email Client Source Code Available To the Public

Forewarned is Forearmed – Springfield Armory

by Steve Tarani, Originally Posted here.

Forewarned is Forearmed
Forewarned is Forearmed

U.S.A.-(Ammoland.com)- Living in a world where extreme physical violence can erupt at a moment’s notice, it’s important to be armed with more than only one weapon!

The most effective way to stop a bad guy with a gun is a good guy with a gun – a good guy who has the skills to stop the threat (AKA – you). However, to rely solely on a carry pistol as your only response tool puts you at a tactical disadvantage.

In addition to a lightweight, compact, easily-accessible handgun, you’re also armed with a weapon that requires no bullets, batteries or carry permit. Your most powerful weapon for avoiding or mitigating an active threat will always be YOUR MIND.

We’ve all heard the term “situational awareness,” but what exactly is it? Simply put, situational awareness (S/A) is an awareness of your immediate environment. Should one of your five senses pick up a threat indicator, such as seeing a bad guy across the street moving toward you with a knife, hearing gunfire, smelling smoke, etc., you are forewarned of a potential physical threat. The extra few seconds or even minutes in some cases, affords you the opportunity to not be there, should the threat continue to evolve.

Real-world examples are easy to come by. In Salzburg, Austria lampposts are being covered in airbags to stop “smartphone zombies” from bumping into them as they walk around staring at their screens. Really. Here at home it’s the same thing – you don’t have to look very hard to find people texting while driving or walking. All of their awareness is focused around a 6” radius of their device-holding hand. How would they know if something threatening was unfolding in their immediate environment?

That’s how S/A gains you a tactical advantage – by giving you knowledge… plus time. If you happen to hear gunfire or observe an active shooter before they observe you, those precious seconds are valuable chunks of time that you may need to make a judgment call, take flight or fight. If you choose to take flight, which is the safest of the two options, then that borrowed time can help get you out of effective threat range and/ or possibly behind cover or into hiding.

Should your decision be to fight, then those very valuable quarter seconds just bought you immediate response opportunity. More time equals more opportunity to solve the tactical problem.

Sufficient time is required to defeat your cover garment, clear your pistol from its holster, and verify that you have a good backstop. All of this takes some amount of time before you can point your muzzle toward the bad guy(s), align your sights and initiate your trigger press.

Buying yourself this required time, places you in a dominant posture. This position would not have been afforded you, had you not applied your S/A, and were instead caught behind the action/ reaction power curve of an active threat.

Being situationally aware is one of the most powerful tools you can have in your tool kit. Combined with a good firearm, you can decrease your vulnerability and gain the tactical advantage of being forewarned and forearmed.


About Steve TaraniSteve Tarani

Steve Tarani, is a former CIA protective services subject matter expert who served on Donald Trump’s pre-election protection detail and is the lead instructor for the NRA’s new Non-ballistic Weapons Training program offered nationally to 2.3 million members. Tarani, an active protective agent, is a Central Intelligence Agency and FLETC-certified federal firearms instructor who also provides services for the US Naval Special Operations Command, FBI National Citizens Academy Alumni Association, National Association of School Resource Officers (NASRO), and others.

The post Forewarned is Forearmed – Springfield Armory appeared first on AmmoLand.com.

via AmmoLand.com
Forewarned is Forearmed – Springfield Armory

Gun owners, non-owners agree on these proposals

Gun owners and people who don’t own firearms often agree on their support for new gun regulations, a survey shows.

The survey, which measured support for 24 different proposed gun policies, found minimal gaps in support between gun owners and non-owners on 15 of those policies.

“Policies with high overall support among both gun owners and non-gun owners may be the most feasible to enact,” says lead author Colleen Barry, “and some have strong evidence to support their ability to reduce gun violence.

“Widespread claims that a chasm separates gun owners from non-gun owners in their support for gun safety policies distracts attention from many areas of genuine agreement—areas that can lead to policy solutions and result in the prevention of gun violence,” says Barry, chair of health policy and management at the Johns Hopkins Bloomberg School of Public Health.

For the 2017 survey, researchers used the National Opinion Research Center’s AmeriSpeaks online panel, designed to be representative of the US population. The sample included 2,124 adults (602 gun owners, 1,522 non-gun owners).

As reported in the American Journal of Public Health, in 2016, firearms were responsible for more than 38,000 US deaths and 116,000 nonfatal gunshot wounds treated in US hospitals.

Particularly in the wake of recent school shootings and mass shootings in Las Vegas and elsewhere, Americans continue to debate measures at both the state and federal levels that seek to address gun violence.

The proposals covered in the survey with the highest overall support and minimal support gaps between gun owners and non-owners were:

  • Universal background checks before gun purchases (support from 85.3 percent of gun owners and 88.7 percent of non-gun owners)
  • License suspension for gun dealers who cannot account for 20 or more guns in their inventory (82.1 percent of owners, 85.7 percent of non-owners)
  • Higher safety training standards for concealed carry permit holders (83 percent of owners, 85.3 percent of non-owners)
  • Improved reporting of mental illnesses for background checks (83.9 percent of owners, 83.5 percent of non-owners)
  • Gun prohibitions for people subject to temporary domestic violence restraining orders (76.9 percent of owners, 82.3 percent of non-owners)
  • Gun violence restraining orders, commonly referred to as extreme risk protection orders or Red Flag laws (74 .6 percent of owners, 80.3 percent of non-owners)

The survey did find several areas of greater disagreement between owners and non-owners, though several of those proposals still had majority support even from owners.

Nine of 24 policies covered in the survey had greater than 10 -point support-gaps, including:

  • Requiring that a person lock up guns in the home when not in use to prevent access by youth (support from 58 percent of gun owners and 78.9 percent of non-owners)
  • Giving police and the public information about gun dealers that sell the most guns later used in crimes (62.9 percent of owners, 73.4 percent of non-owners)
  • Requiring a person to obtain a license from local law enforcement before buying a gun (63.1 percent of owners and 81.3 percent of non-owners)
  • Allowing cities to sue gun dealers when there is evidence that the dealer’s practices allow criminals to obtain guns (66.7 percent of owners, 77.9 percent of non-owners).
Survey: 54% of gun owners break gun safety rules

Two questions on concealed carrying were new in the 2017 survey.

  • As many as 42.6 percent of gun owners but only 19.3 percent of non-gun owners believed a person who can legally carry a gun should be allowed to bring that gun onto K-12 school grounds.
  • But both 83 percent of gun owners and 85.3 percent of non-owners believed that a person who can legally carry a concealed gun should have to pass a test demonstrating they can safely handle the gun in common situations they may encounter.

“There is data supporting the efficacy of many of the policies with wide support among both gun owners and those who don’t own guns,” says coauthor Daniel Webster, director of the Johns Hopkins Center for Gun Policy and Research.

Americans have ‘complicated’ views on guns

“Relatively few states have these laws in place. This signals an opportunity for policy makers to enact policies which are both evidence-based and widely supported.”

Johns Hopkins University, Bloomberg Philanthropies, and the Smart Family Association funded the work.

Source: Johns Hopkins University

The post Gun owners, non-owners agree on these proposals appeared first on Futurity.

via Futurity.org
Gun owners, non-owners agree on these proposals

Preppers and Unrealistic Prepping Plans

Prepping is divided into various categories.  There are the realistic preppers who prep for stuff like hurricanes and other natural disasters; the bug out preppers, who plan on bugging out to the wilderness; and the prepsteaders, such as myself who are working on developing a homestead.

Then there are the armchair preppers who talk about stuff that is so far off the wall their plans are unrealistic.  For example, in 2015 I posted a video on YouTube about trespassers scouting the bug out location.

The gist of the video was of people trespassing on private property.  Whoever it was crossed a creek, and walked up on my land far enough to see a shed and the back of a field.  Just a little further and they could have seen the back of my house.

Someone posted a comment on the video stating, “This why you do not have neighbors.”

Let me get this straight, preppers are not supposed to have neighbors? Are we supposed to live so far in the boonies nobody else wants to live near us? We talked about this in the forum – Survivalist Living Too Far in the Boonies.  There comes a point where someone is living so far in the boonies even driving to town is an all day affair.

Then there is the issue of urban creep.  Land bought today in the boonies may have neighbors in 10, 20 or 30 years.  Land has a way of changing hands.  Property may be seized for back taxes, then auctioned off.  Then the land my turn into someones home.  Elderly people pass away, and the kids sell the land.

The person who posted the comment, when someone buys land next to his, what would he be xpected to do?  Maybe sell his land and relocate?

It is unrealistic to buy land, then move when someone buys land next to you.  How is someone supposed to set down long term roots if they are relocating every few years?  How is someone supposed to develop an orchard, build anything… selling and relocating every year?

Anyway, here is the video mentioned earlier.

The post Preppers and Unrealistic Prepping Plans appeared first on AllOutdoor.com.

via All Outdoor
Preppers and Unrealistic Prepping Plans

Capturing Per-Process Metrics with Percona Monitoring and Management (PMM)

In this blog post, I will show you how to use Percona Monitoring and Management (PMM) to capture per-process metrics in five minutes or less.

While Percona Monitoring and Management (PMM) captures a lot of host metrics, it currently falls short providing per-process information, such as which particular process uses a lot of CPU resources, causes Disk IO or consumes a lot of memory.

In our database performance optimization and troubleshooting practice, this information has proven quite useful in many cases: batch jobs taking much more resources than developers would estimate and misconfigured Percona XtraBackup or Percona Toolkit are among the most common offenders.

Per-process metrics information can also be very helpful when troubleshooting database software memory leaks or memory fragmentation.

You don’t know which processes cause you problems at the outset, so it is important to capture information about all of the processes (or specifically exclude the processes you do not want to capture information about) rather than capture information about selected few.

While capturing such helpful information is not available in PMM out of the box (yet), you can easily achieve it using PMM’s External Exporter support and the excellent Prometheus Process Exporter by Nick Cabatoff.

These instructions are for Debian/Ubuntu  Linux Distributions but they should work with RedHat/CentOS based versions as well – just use RPM package instead of DEB

1: Download the process exporter packages from GitHub:

2: Install the package

(Note: the file will be different depending on the platform and current release.)

3: Run the Exporter

4: Register Exporter with Percona Monitoring and Management

Assuming the current node is already monitored by PMM you just need one command:

This captures process metrics every 10 seconds (adjust interval if desired).

Important note: due to some internal limitations, you need to use a different service name (“processes-my-host”)  for each host. I suggest just adding the hostname to the descriptive name “processes” for simplicity.

5: Get Matching Dashboard from Grafana.com

While you can browse the data captured by the Advanced Data Exploration Dashboard, it is not any fun. I created a PMM-style dashboard and published it on Grafana.com. I based it on Nick’s original dashboard.

To add this dashboard to your PMM Server, click Dashboard Search on your PMM Server.

PMM Per-Process Metrics

From there, click on “Import Dashboard”. Use 6033 as the Grafana.com Dashboard ID.

PMM Per-Process Metrics

6: You’re done!

You should have data flowing, and you should be able to see the data on the graphs.

PMM Per-Process Metrics

In this example, I have pt-query-digest (shown as Perl) parsing the log file and pushing MySQL Server away from memory.

Note, as you likely have many processes on the system, the graphs are designed to show only the top processes. All running processes, however, are available in the drop-down if you want to access the history for a specific process.

Let us know what you think. We are looking at how to integrate this functionality directly into Percona Monitoring and Management!

Peter Zaitsev

Peter managed the High Performance Group within MySQL until 2006, when he founded Percona. Peter has a Master’s Degree in Computer Science and is an expert in database kernels, computer hardware, and application scaling.

via Planet MySQL
Capturing Per-Process Metrics with Percona Monitoring and Management (PMM)