What is Evil?

What is evil? It’s not some force, roaming the land. It is a dark spot inside each of us. It’s an absence of love.

Be a better person. Don’t take joy in someone else suffering for their faults. Protect yourself, and those who are unable to protect themselves, and fill the rest of your heart with love and compassion.

Yes, we all get angry, frustrated, and generally are all horrible on the inside sometimes. That’s okay, but it’s not okay to wallow in it. It’s our responsibility to interrupt those feelings, and try to remember better ones. Try to be in a way that creates those better ones.

AIX JFS2 autoresize

computersarefun put in a request for AIX to auto-grow/shrink filesystems.
Ref: https://www.ibm.com/developerworks/rfe/execute?use_case=viewRfe&CR_ID=114789

This seems more like a monitoring thing than an operating system thing.
Also, handling this as a thin LUN is probably better where possible.
Here is an example script.

Potential improvements:

  • Notifications on exceptions
  • Config file to track different settings per filesystem
  • Also check iused / ifree to handle tiny-files
  • Run as a daemon vs from cron.
  • Explicit lists of filesystems, or include/exclude lists
  1. !/bin/ksh
  2. Run this from cron every minute to automatically resize JFS2 filesystems
  3. Incorrect limits could cause size flapping for small filesystems.
  4. We skip things we cannot reduce.


LVLIST=`mount | grep jfs2 | grep /dev/ | awk ‘{print $1;}’ | cut -f 3 -d /`
for lv in $LVLIST ; do

  df -gv 2>/dev/null | grep $lv | read device size used free pct iused ifree ipct mountpoint || continue
  FREEPCT=$(( $used * 100 / $size ))
  VG=`lslv $lv 2>/dev/null | grep "VOLUME GROUP:" | awk '{print $6;}'`
  PPSIZE=`lsvg $VG 2>/dev/null | grep 'PP SIZE' | awk '{print $6;}'`
  [[ $PPSIZE -gt 0 ]] || continue
  if [[ $FREEPCT -lt $MINFREEPCT ]] ; then
     FREEPPS=`lsvg $VG | grep FREE | awk '{print $6;}'`
     [[ $FREEPPS -gt $MINFREEPPS ]] && chfs -a size=+1 $mountpoint
  [[ $FREEPCT -gt $MAXFREEPCT ]] && chfs -a size=-$PPSIZE $mountpoint


Security Defect in Intel, ARM and AMD processors

The defect allows a user process to read any system memory.
A VM can read memory from the host or another guest in some environments.

This does NOT affect POWER/PPC architecture.
Only some of this affects AMD, and only in some modes.
Almost every ARM and Intel processor since 1995 is affected.
That includes desktops, laptops, servers, cellphones, routers, automobiles with Sync/Onstar/autopilot, etc.

This defect was reported in June, 2017, but due to pervasiveness, has been embargoed.
It is only fully described now because patch notes leaked the problem.

The actual fix would be replacement of the affected CPUs with new silicon, which does not exist yet.
There is a partial software workaround which decreases system performance.

The issue is because the processor does not perform access checking prior to loading L1 cache.
Due to this design issue, data can be forced into L1 cache, and read, before access is denied by the TLB.
It’s fairly slow, at around 2k/second, but a long-running process can harvest everything.

Hardware Statuses:
• ARM has provided workarounds to vendors, but it’s up to them to implement
• Intel’s CEO sold off as much of his stock as possible last year after glowing projections.
• Not a peep from AMD.
• POWER/PPC is not affected.

Software Statuses:
• Windows included a partial workaround in the November security rollup.
• MacOS released a partial workaround in December’s 10.13.2
• Linux included a partial workaround in the mainline kernels 4.15, and 4.14.11.
• The workarounds decrease performance between 1% and 45% depending on the workload.
• Cloud providers are scheduling maintenance January 2018.

More Reading:
• Community: https://spectreattack.com
• Google: https://googleprojectzero.blogspot.com/2018/01/reading-privileged-memory-with-side.html
• Workaround: https://en.wikipedia.org/wiki/Kernel_page-table_isolation
• AMD: https://www.amd.com/en/corporate/speculative-execution
• A better write-up: https://techcrunch.com/2018/01/03/kernel-panic-what-are-meltdown-and-spectre-the-bugs-affecting-nearly-every-computer-and-device/
• Outlet that broke the embargo: https://www.theregister.co.uk/2018/01/02/intel_cpu_design_flaw/

tsm server status

I ordered the new backup server on October 27.
Initial setup gave app crashes intermittently, so was not ready to make it live yet.
I ran BOINC on it for a day, and at one point, all tasks died at once.

Syslog showed EDAC errors starting 11 days after I got the system, calling out CPU#1Channel#2_DIMM#0

This matches CPU1, DIMM1 on the board (ie, DIMMs are ordered backwards in Linux from printed labels).

I swapped all of CPU1 DIMMS with CPU0 DIMMs to troubleshoot.

Problem went away. 99% chance this was just a slightly loose DIMM from shipping.

Aside from that, the system has been awesome. I’ve run DB2, Spectrum Protect, and BOINC on here. For BOINC, the fans stay on low at 66% and 50% on a warm day, and 66%/66% on a cool day.

TLDR – remember to re-seat your DIMMs after shipping. System is stable otherwise.

Here are logs and system queries:

Nov 7 15:00:43 tsm kernel: [929582.997825] EDAC MC1: 1 CE error on CPU#1Channel#2_DIMM#0 (channel:2 slot:0 page:0x0 offset:0x0 grain:8 syndrome:0x0)
Nov 14 19:59:05 tsm kernel: [1552272.728748] EDAC MC1: 7112 CE error on CPU#1Channel#2_DIMM#0 (channel:2 slot:0 page:0x0 offset:0x0 grain:8 syndrome:0x0)

/bin/bash# ll -d /sys/devices/system/edac/mc/mc1/dimm*
drwxr-xr-x 3 root root 0 Nov 14 20:07 /sys/devices/system/edac/mc/mc1/dimm0/
drwxr-xr-x 3 root root 0 Nov 14 20:07 /sys/devices/system/edac/mc/mc1/dimm3/
drwxr-xr-x 3 root root 0 Nov 14 20:07 /sys/devices/system/edac/mc/mc1/dimm6/

/bin/bash# cat /sys/devices/system/edac/mc/mc1/dimm6/dimm_label

/bin/bash# cat /sys/devices/system/edac/mc/mc1/dimm6/dimm_location
channel 2 slot 0

/bin/bash# cat /sys/devices/system/edac/mc/mc1/dimm6/dimm_mem_type

/bin/bash# cat /sys/devices/system/edac/mc/mc1/dimm6/size

/bin/bash# cat /sys/devices/system/edac/mc/mc1/mc_name
i7 core #1

/bin/bash# cat /sys/devices/system/edac/mc/mc1/ce_count

/bin/bash# cat /sys/devices/system/edac/mc/mc0/mc_name
i7 core #0

/bin/bash# cat /sys/devices/system/edac/mc/mc0/ce_count

/bin/bash# uptime

20:15:26 up 17 days, 23:28,  2 users,  load average: 0.01, 0.40, 2.64

Power off and back on, and now BIOS shows:

209-Memory warning condition (WARN_DQS_TEST) detected slot CPU1 DIMM1
209-Memory warning condition (WARN_DQS_TEST) detected slot CPU1 DIMM1
209-Memory warning condition (rd dq dqs) detected slot CPU1 DIMM1
203-Memory module failed self-test and failing rank was disabled slot CPU1 DIMM1

The following configuration options were automatically updated:

Memory:40960 MB

Using ESD precautions, I moved all DIMMs from CPU1 bank to CPU0 bank.
All errors went away.

Loose DIMM. False alarm.

Protect initial install

This is happiness…

tsminst1@tsm:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.3 LTS
Release: 16.04
Codename: xenial

/bin/bash# for i in /dev/sd? ; do smartctl -a $i ; done | grep ‘Device Model’
Device Model: Samsung SSD 850 EVO 250GB
Device Model: WDC WD30EFRX-68EUZN0
Device Model: Samsung SSD 850 EVO 250GB
Device Model: WDC WD30EFRX-68EUZN0
Device Model: WDC WD30EFRX-68EUZN0

tsminst1@tsm:~$ dsmserv format dbdir=/tsm/db01,/tsm/db02,/tsm/db03,/tsm/db04,/tsm/db05,/tsm/db06,/tsm/db07,/tsm/db08 \
> activelogsize=8192 activelogdirectory=/tsm/log archlogdirectory=/tsm/logarch

ANR7800I DSMSERV generated at 11:32:48 on Sep 19 2017.

IBM Spectrum Protect for Linux/x86_64
Version 8, Release 1, Level 3.000

Licensed Materials – Property of IBM

(C) Copyright IBM Corporation 1990, 2017.
All rights reserved.
U.S. Government Users Restricted Rights – Use, duplication or disclosure
restricted by GSA ADP Schedule Contract with IBM Corporation.

ANR7801I Subsystem process ID is 29286.
ANR0900I Processing options file /home/tsminst1/dsmserv.opt.
ANR0010W Unable to open message catalog for language en_US.UTF-8. The default language message catalog will be used.
ANR7814I Using instance directory /home/tsminst1.
ANR3339I Default Label in key data base is TSM Server SelfSigned SHA Key.
ANR4726I The ICC support module has been loaded.
ANR0152I Database manager successfully started.
ANR2976I Offline DB backup for database TSMDB1 started.
ANR2974I Offline DB backup for database TSMDB1 completed successfully.
ANR0992I Server’s database formatting complete.
ANR0369I Stopping the database manager because of a server shutdown.

New data protection

Upgrading TSM server from Q9650 Core 2 Quad 3.0GHz, 8GB DDR2 on Win 2008R2.

New system is HP Z600, two-socket, 6-core 2.66GHz Xeon X5650 and 48GB of RAM. Wattage is the same per socket, but two sockets now. 3x the cores, 4x the performance.

SSDs for DB and Log are also moving to EVO 850 from Corsair M100. I’ll set up a container pool to replace the dedupe file class, and put that on 3x 3TB RAID5 instead of 2x RAID1.

OS will be Ubuntu 16.04.2 LTS. I’d like to just use Debian 9.1, but Debian and long-term-support seem to not be synonymous. I’d hate to run a patch update and have everything break, then fight with debian testing repo to try to get it all back to normal. Plus, I have no Ubuntu boxes, only Debian. It’ll give me a chance to see what operational differences I run into.

Old TSM is 6.4. New will be “Spectrum Protect” 8.1.3. Yes, the billions spent to rebrand to the same name as Charter Cable’s rebrand really seems like money well spent.

Anyway, Since I lost the offsite replication provider for the dedupe file pool, and it was having trouble keeping up anyway, this will let me change to server-side encryption, and object storage. We’ll see which provider wins out on price once everything is rededuped properly.

If the fan noise is not too bad, maybe this platform can be considered for a low-cost upgrade to the kids’ game machines. Though, these are heavy, with 2 big handles on the top.

Also, really, something new enough to have USB3 on the motherboard is probably better. I have some laptops picked out, but that’s re-buying every component, including ones that are presently decent. *sigh*

Calories per Mile

This is a SWAG for calories burned cycling 12-15mph:

  • Divide your feet climbed by 10.
  • Divide again by your average MPH.
  • Add that to your total miles.
  • Multiply the new number by the weight in pounds of you, your bike, and everything you’re carrying.
  • Multiply the new number by 0.105 (or divide by 9.5).
  • (Use 0.115 or 8.7 if you only know your own naked wake-up weight.)
  • That is pretty close to your calories burned for the ride.
  • Baseline here is me, 6’5″, anywhere between 250 and 290 pounds plus bike weight (any bike).

BMR is not a part of this SWAG:

  • BMR is how much you burn in 24 hours of sleeping.
  • Most people are around 9kcal per pound per day.
  • BMR and is not based on your activity level (see TDEE).
  • BMR is based in your microcellular efficiency, and is influenced by hormones.
  • If you are on severe caloric restriction, it goes down.
  • Thyroid issues can affect this either way.
  • Baseline here is me, at 285 pounds, and averaging 2550 kcal per day.

Faster speeds pick up exponentially more wind resistance.

  • Twice the airspeed has four times the wind drag.
  • Higher density altitude has proportionally less drag.
  • Shorter and narrower shouldered people people have less wind drag.
  • Fatter people are slightly more aerodynamic, so the increased wind profile is not THAT much of an issue.
  • Cycling 10mph into a 5mph headwind has as much wind drag as cycling 20mph with a 5mph tailwind.
  • 12-16mph is the 50% transition for wind vs other factors on flat ground. (13mph for me at 6 sqft)
  • Baseline here is me, with about 6 square feet of frontal area, about 22 Watts at 10mph, and about 150 Watts at 20mph, just for wind.

Rolling resistance is a big part of drag.

  • Increases linearly with speed (2x speed is 2x the rolling drag).
  • Lower weight is better (because tiny bumps have to push you UP over them).
  • Race tires can be half the CRR of average tires.
  • Wider tires are better by around 1% per mm with 23mm as baseline.
  • Baseline is me, at 310 total, 31W at 10mph, or 61W at 20mph on 1% grade.

Routes with less uphill than downhill will cost fewer calories.

  • Increases linearly with speed (2x speed is 2x the gravity drag).
  • 1% uphill is 2x the drag of rolling resistance. 2% is 4x.
  • Lower weight people do way better on both gravity and CRR.
  • Baseline is me, at 310 total, 62W at 10mph vs 124W at 20mph on 1% grade.

Good links:

Docker Debian autoinstall fails

Debian (and Ubuntu and others) use apt, aptitude, apt-get, and dpkg. apt currently requires the Release keys to match in a complex way. Mondo, Docker, and many other projects have problems making a repo actually work. The telltale failure is similar to this:

W: The repository 'https://apt.dockerproject.org/repo debian-stretch Release' does not have a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: Failed to fetch https://apt.dockerproject.org/repo/dists/debian-stretch/testing/binary-i386/Packages
E: Some index files failed to download. They have been ignored, or old ones used instead.


You can manually work around this by changing your sources.list to use HTTP instead of HTTPS, but scripts such Ubiquiti’s Universal Network Management Server installer will replace that:

curl -fsSL https://raw.githubusercontent.com/Ubiquiti-App/UNMS/master/install.sh > /tmp/unms_install.sh && sudo bash /tmp/unms_install.sh
Downloading installation package for version 0.10.3.
Setting VERSION=0.10.3
Download and install Docker
# Executing docker install script, commit: 490beaa
+ sh -c 'apt-get update -qq >/dev/null'
+ sh -c 'apt-get install -y -qq apt-transport-https ca-certificates curl software-properties-common >/dev/null'
+ sh -c 'curl -fsSL "https://download.docker.com/linux/debian/gpg" | apt-key add -qq - >/dev/null'
Warning: apt-key output should not be parsed (stdout is not a terminal)
+ sh -c 'echo "deb [arch=amd64] https://download.docker.com/linux/debian stretch edge" > /etc/apt/sources.list.d/docker.list'
+ '[' debian = debian ']'
+ '[' stretch = wheezy ']'
+ sh -c 'apt-get update -qq >/dev/null'
W: The repository 'https://download.docker.com/linux/debian stretch Release' does not have a Release file.
E: Failed to fetch https://download.docker.com/linux/debian/dists/stretch/edge/binary-amd64/Packages
E: Some index files failed to download. They have been ignored, or old ones used instead.


A more stable workaround is to force apt back into the old mode of not caring if the Release certs are perfectly matched to the file server:

cat <<'EOF' >>/etc/apt/apt.conf.d/01docker
Acquire::https::apt.dockerproject.org::Verify-Peer "false";
Acquire::https::download.docker.com::Verify-Peer "false";


Now, the install works fine:

curl -fsSL https://raw.githubusercontent.com/Ubiquiti-App/UNMS/master/install.sh > /tmp/unms_install.sh \
  && sudo bash /tmp/unms_install.sh
Downloading installation package for version 0.10.3.
Setting VERSION=0.10.3
Download and install Docker
# Executing docker install script, commit: 490beaa
+ sh -c 'apt-get update -qq >/dev/null'
+ sh -c 'apt-get install -y -qq apt-transport-https ca-certificates curl software-properties-common >/dev/null'
+ sh -c 'curl -fsSL "https://download.docker.com/linux/debian/gpg" | apt-key add -qq - >/dev/null'
Warning: apt-key output should not be parsed (stdout is not a terminal)
+ sh -c 'echo "deb [arch=amd64] https://download.docker.com/linux/debian stretch edge" > /etc/apt/sources.list.d/docker.list'
+ '[' debian = debian ']'
+ '[' stretch = wheezy ']'
+ sh -c 'apt-get update -qq >/dev/null'
+ sh -c 'apt-get install -y -qq docker-ce >/dev/null'
+ sh -c 'docker version'
 Version:      17.09.0-ce
 API version:  1.32
 Go version:   go1.8.3
 Git commit:   afdb6d4
 Built:        Tue Sep 26 22:42:09 2017
 OS/Arch:      linux/amd64

 Version:      17.09.0-ce
 API version:  1.32 (minimum version 1.12)
 Go version:   go1.8.3
 Git commit:   afdb6d4
 Built:        Tue Sep 26 22:40:48 2017
 OS/Arch:      linux/amd64
 Experimental: false
If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:

  sudo usermod -aG docker your-user

Remember that you will have to log out and back in for this to take effect!

WARNING: Adding a user to the "docker" group will grant the ability to run
         containers which can be used to obtain root privileges on the
         docker host.
         Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
         for more information.
Docker version: 17.09.0
./install-full.sh: line 470: ((: 17 < 1
        || (17 == 1 && 09: value too great for base (error token is "09")
Download and install Docker compose.
Docker Compose version: 1.9
Creating user unms.
Skipping 0.8.0 permission fix
Preparing templates
Creating docker-compose.yml
Pulling docker images.
Pulling redis (redis:3.2.8-alpine)...
3.2.8-alpine: Pulling from library/redis
cfc728c1c558: Pull complete
8eda5cfd7e0a: Pull complete
8acb752a319b: Pull complete
955021cea791: Pull complete
d301d906247c: Pull complete
ff438d9e11c6: Pull complete
Digest: sha256:262d8bd214e74cebb3a0573e0f3a042aa3ddade36cf39a4891dd1b05b636bc55
Status: Downloaded newer image for redis:3.2.8-alpine
Pulling postgres (postgres:9.6.1-alpine)...
9.6.1-alpine: Pulling from library/postgres
0a8490d0dfd3: Pull complete
b6475055d17e: Pull complete
ba55801edf3d: Pull complete
f132014bbab8: Pull complete
9775497ec4a5: Pull complete
678be380896e: Pull complete
31e4998cc9ec: Pull complete
Digest: sha256:fa48df82694141793fb0cd52b9a93a3618ba03e5814e11dbf0dd43797f4d4cf7
Status: Downloaded newer image for postgres:9.6.1-alpine
Pulling rabbitmq (rabbitmq:3)...
3: Pulling from library/rabbitmq
bc95e04b23c0: Pull complete
2e65f0b00e4c: Pull complete
f2bd80317989: Pull complete
7b05ca830283: Pull complete
0bb5a4bbcce5: Pull complete
cf840d8999f6: Pull complete
be339ca44883: Pull complete
ce35cd9f9b5b: Pull complete
a4fe32a0a00d: Pull complete
77408ca9e94e: Pull complete
db03407a1aba: Pull complete
Digest: sha256:9a0de56d27909c518f448314d430f8eda3ad479fc459d908ff8b281c4dfc1c00
Status: Downloaded newer image for rabbitmq:3
Pulling unms (ubnt/unms:0.10.3)...
0.10.3: Pulling from ubnt/unms
627beaf3eaaf: Pull complete
5fc32359ecb8: Pull complete
2b99ae07dd66: Pull complete
99c9d1420b38: Pull complete
b65b0ba413b8: Pull complete
86bd816c9566: Pull complete
32ebfd822bb4: Pull complete
Digest: sha256:5dc99a77ee8bb4d09f02da715ec3142283ce44d5e91b8f515b5694ffb25d6c3c
Status: Downloaded newer image for ubnt/unms:0.10.3
Checking available ports
Port 80 is already in use, please choose a different HTTP port for UNMS. [8080]:
Port 8080 is already in use, please choose a different HTTP port for UNMS. [8080]: 8888
Port 443 is already in use, please choose a different HTTPS port for UNMS. [8443]:
Port 8443 is already in use, please choose a different HTTPS port for UNMS. [8443]: 8883
Creating data volumes.
Will mount /home/unms/data
Creating docker-compose.yml
Deploying templates
Writing config file
no crontab for unms
no crontab for unms
Deleting obsolete firmwares...
Downloading new firmwares...
Downloading e50-1.9.7-hotfix.3.170831.tar
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 74.6M  100 74.6M    0     0  5502k      0  0:00:13  0:00:13 --:--:-- 5870k
Downloading e100-1.9.7-hotfix.3.170831.tar
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 80.8M  100 80.8M    0     0  5692k      0  0:00:14  0:00:14 --:--:-- 5859k
Downloading e200-1.9.7-hotfix.3.170831.tar
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 80.7M  100 80.7M    0     0  5725k      0  0:00:14  0:00:14 --:--:-- 5873k
Downloading e1000-1.9.7-hotfix.3.170831.tar
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 81.7M  100 81.7M    0     0  5705k      0  0:00:14  0:00:14 --:--:-- 5867k
Downloading e600-
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 86.8M  100 86.8M    0     0  5738k      0  0:00:15  0:00:15 --:--:-- 5871k
Downloading SFU-
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 15.0M  100 15.0M    0     0  4663k      0  0:00:03  0:00:03 --:--:-- 4664k
Downloading XC-
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 9046k  100 9046k    0     0  5219k      0  0:00:01  0:00:01 --:--:-- 5216k
Downloading XC-8.3.2-cs.170901.bin
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 9046k  100 9046k    0     0  5218k      0  0:00:01  0:00:01 --:--:-- 5219k
Downloading WA-
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 9028k  100 9028k    0     0  5327k      0  0:00:01  0:00:01 --:--:-- 5329k
Downloading WA-8.3.2-cs.170901.bin
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 9028k  100 9028k    0     0  5006k      0  0:00:01  0:00:01 --:--:-- 5004k
Downloading TI-
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 7083k  100 7083k    0     0  4917k      0  0:00:01  0:00:01 --:--:-- 4915k
Downloading TI-6.0.7-cs.170908.bin
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 7083k  100 7083k    0     0  5181k      0  0:00:01  0:00:01 --:--:-- 5185k
Downloading XM-
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 7389k  100 7389k    0     0  5218k      0  0:00:01  0:00:01 --:--:-- 5222k
Downloading XM.6.0.7-cs.170908.bin
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 7389k  100 7389k    0     0  5963k      0  0:00:01  0:00:01 --:--:-- 5959k
Downloading XW.v6.0.7.170908.bin
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 7227k  100 7227k    0     0  5224k      0  0:00:01  0:00:01 --:--:-- 5225k
Downloading XW-6.0.7-cs.170908.bin
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 7227k  100 7227k    0     0  5075k      0  0:00:01  0:00:01 --:--:-- 5071k
Starting docker containers.
Creating network "unms_internal" with the default driver
Creating network "unms_public" with the default driver
Building fluentd
Step 1/6 : FROM fluent/fluentd:v0.12-latest
v0.12-latest: Pulling from fluent/fluentd
019300c8a437: Pull complete
d30279f73a02: Pull complete
fd39bd5a5dae: Pull complete
4dacb8d2bb26: Pull complete
963e933724db: Pull complete
8b4dd4e99009: Pull complete
59bedb222c2c: Pull complete
Digest: sha256:9b10ed70251fda1cd91c92f07a3ae74059adb1bdad6fc51cfcfe42272a9e78e8
Status: Downloaded newer image for fluent/fluentd:v0.12-latest
 ---> 4fce39752458
Step 2/6 : USER root
 ---> Running in 8f315349c16e
 ---> 84398611a0ad
Removing intermediate container 8f315349c16e
Step 3/6 : COPY entrypoint.sh /
 ---> 157af3140182
Step 4/6 : RUN apk add --no-cache --update su-exec     && apk add --no-cache dumb-init --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/     && chmod +x /entrypoint.sh
 ---> Running in fbdef19d9e1a
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/community/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/community/x86_64/APKINDEX.tar.gz
OK: 27 MiB in 24 packages
fetch http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/community/x86_64/APKINDEX.tar.gz
OK: 27 MiB in 24 packages
 ---> e82e4e7e156f
Removing intermediate container fbdef19d9e1a
Step 5/6 : ENTRYPOINT /entrypoint.sh
 ---> Running in 3a0455e845ef
 ---> 7581bd63c44f
Removing intermediate container 3a0455e845ef
Step 6/6 : CMD fluentd -c /fluentd/etc/$FLUENTD_CONF -p /fluentd/plugins $FLUENTD_OPT
 ---> Running in 13c6baad173b
 ---> 97647e174228
Removing intermediate container 13c6baad173b
Successfully built 97647e174228
Successfully tagged unms_fluentd:latest
WARNING: Image for service fluentd was built because it did not already exist.
 To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Creating unms-fluentd
Creating unms-redis
Creating unms-rabbitmq
Creating unms-postgres
Creating unms
Removing old images
Current image: ubnt/unms:0.10.3
All UNMS images: ubnt/unms:0.10.3
Images to remove: ''
No old images found
Waiting for UNMS to start
CONTAINER ID      IMAGE                   COMMAND                  CREATED             STATUS           PORTS                                            NAMES
6e814af4ffc5      ubnt/unms:0.10.3        "/usr/bin/dumb-ini..."   8 seconds ago       Up 3 seconds>8080/tcp,>8443/tcp   unms
01f61e7d9ae8      postgres:9.6.1-alpine   "/docker-entrypoin..."   10 seconds ago      Up 7 seconds                                                      unms-postgres
99261993de75      rabbitmq:3              "docker-entrypoint..."   10 seconds ago      Up 6 seconds                                                      unms-rabbitmq
21bb0d5db0e1      redis:3.2.8-alpine      "docker-entrypoint..."   10 seconds ago      Up 7 seconds                                                      unms-redis
cdb0b878b633      unms_fluentd            "/entrypoint.sh /b..."   11 seconds ago      Up 1 second      5140/tcp,>24224/tcp             unms-fluentd
UNMS is running


Today, at 8:22am, I turned 42 years old. I set up a mini-monitor and airflow for the new server location. I’m really happy with all that. Planted some squash. Watched about half of “Kill Switch”, a FPS style sci-fi movie. I made some lemon battery videos. I had lunch with my sister. I had cupcakes and coffee with Erica and Khai. I sync’d up with my team lead over the phone. All of that in a different order. Lastly, I’m about to go watch Max’s marching band performance, to see their progression. This has been a nice, chill day so far.

Posted in family, xaminmo | Comments Off on WHAT DO YOU GET WHEN YOU MULTIPLE SIX BY NINE

Lemon Battery Videos

Construction of a lemon battery – for kids

Info about voltage of a lemon battery for interested kids.

Juice batteries in glasses – magnesium cell has more power – for older kids.

Hydrogen Gas Production – just a fun clip for us to see bubbles.

IBM Download Director is a beast

I’m sure this will all change in a week, but until then, here is reference for how to uninstall download director, or forcibly reinstall it.

There was no support, and no google help, no IBM search help, etc. ​After all the usual things, I went to a system without an existing DD installation.

​You can force-reinstall Download Director from here:

​You can manually run DD here, but I don’t know how to feed it packages:

​There is info on how to uninstall DD here:

​I’m sure these URLs will change in the next forced web redesign, but for now, this should help for people with broken DD installs.

Reinstall info is obscured in convoluted JavaScript, but here’s the uninstall information:

How to uninstall

  • Open a new cmd window, paste the following command and hit enter:
  • reg DELETE HKCU\Software\Classes\ibmddp /f && rmdir %HOMEPATH%\AppData\Local\IBM\DD /S /Q
  • You should see a “The operation completed successfully.” message.

How to verify if Download Director is installed

  • Open a new cmd window, paste the following command and hit enter:
  • (reg query HKCU\Software\Classes\ibmddp 1> NUL 2>&1 && IF EXIST %HOMEPATH%\AppData\Local\IBM\DD\DownloadDirectorLauncher.exe (echo DD Installed) else (echo DD not installed)) || echo DD not installed
  • You should see either “DD installed” or “DD not installed”.

How to uninstall

  • Open a new terminal window, paste the following command and hit enter:
  • xdg-mime uninstall ~/.local/share/applications/ibm-downloaddirector.desktop && rm -rf ~/.local/share/applications/ibm-downloaddirector.desktop ~/.config/download-director/
  • If no errors are displayed, the operation completed successfully.

How to verify if Download Director is installed

  • Open a new terminal window, paste the following command and hit enter:
  • [[ -f ~/.local/share/applications/ibm-downloaddirector.desktop || -f ~/.config/download-director/DownloadDirectorLauncher.sh ]] && echo "DD installed" || echo "DD not installed"
  • You should see either “DD installed” or “DD not installed”.

How to uninstall

  • Open the “Terminal” app, paste the following command and hit enter:
  • rm -rf ~/Applications/DownloadDirectorLauncher.app/
  • If no errors are displayed, the operation completed successfully.

How to verify if Download Director is installed

  • Open the “Terminal” app, paste the following command and hit enter:
  • [[ -d ~/Applications/DownloadDirectorLauncher.app/ ]] && echo "DD installed" || echo "DD not installed"
  • You should see either “DD installed” or “DD not installed”.

Why I wrote this up:
I find myself stuck with IBM due to the value of legacy skills vs transitioning to newer skills.
Periodically, IBM makes changes to their webpage, or code download system.
Often, these leave things inconsistent (claims that HTTP can be used, but it’s no longer available).
Worse, forced tools will stop working, and the IBM solution is to wipe your entire browser config and start over.

IBM has decided it’s better to force people to use Download Director instead of any standard protocol.
IBM’s mantra is “It worked for me in the lab, so if it doesn’t work for you, tough patooties.”
There is no escalation to people who make decisions. This has been an ongoing issue for a decade.
No one cares, except a few of the ubertechs supporting things, but they have no sway.

I’ve been using HTTP for a while, but they pulled that, so I had to use DD.
This time, DD gave me an error that JavaWS could not be started.
So I uninstalled all Java, reinstalled the newest, and DD said I had no Java installed.

There were no google hits to help, no IBM pages to help, and IBM search is useless as always.
Of the pages I found, none of them had contact forms, because that costs money.
There is no uninstall tool for Download Director.
There is no Browser Extension, no OS uninstall tool.
Removing the AppData folder does not help.

I went to a clean system, and wrote down all that I could find during a new code download attempt.
There is actually a webpage for this, but it is not indexed anywhere. That’s linked above.
That’s what this post is about.

Note that this is not acceptable in any way, and is one of the many reasons people are leaving IBM for open standards.
It’s not about “The Cloud”. It’s about IBM having so many layers between the decision-makers and the workers that they are out of touch. They have no idea how to be a tech business anymore, and are run by people who are content to gut the reputation of IBM so as to report a short-term improvement in gross profit. Zero interest in the long term.

Omnitech DP server lives

10 days ago, the drive enclosure for the TSM server failed during a storm. The enclosure is an RSV-S5 from 2010. The PSU died, and seems to be a specialty part. The part costs $250. A newer version of the enclosure $180 from Sans Digital. This is a bulk data server, so a 4-pay box was fine. I picked up a Mediasonic Probox 4-bay JBOD with ESATA and USB3 ports. It’s a faster port multiplier, better functionality, and half the volume on the server shelf.

I still plan to migrate everything to Linux on Spectrum Protect 8, with container pools, and maybe use glacier for off-site storage. This is compounded by CrashPlan ditching their non-business plans, and never being able to sync anyway. I really need a better way to store off-site DR data. BOX for a critical chunk is okay. Google and Dropbox for active data is okay. But for an off-site DR pool, it would be too expensive to put into either of those. Plus, SP8 is chunk aware much better. I’d hate for a CDP product to revert a chunk, or be constantly out of sync.

Posted in News | Comments Off on Omnitech DP server lives

Body Energy Usage

I ponder macro-nutrition needs a whole bunch. Here’s what I have handy, though my technical references are scattered and omitted.

There’s always a need for roughage, vitamins, and minerals, which come from foods with very low calories/kilojoules. Aside from that, the three main macros have specific needs.

A body needs 125 grams of carbs for your brain/nerves; just under 1 gram of protein per kilo of lean body mass to maintain tissues/muscles; and around 30g of fat for cellular and neurological structures. This is usually around 1200 kcal per day, but varies by person 10-20 percent.

Anything else you eat is either poop, or gets converted to sugar. Sugar is burned if it’s needed immediately for exercise (growing, standing, walking, cardio, whatever, anything other than sleeping). Any sugar that is not immediately needed is stored in muscles as glycogen, up to around 4% of your muscle mass. All sugar past that is turned into fat and stored in our fat cells.

This is where “whole grains” comes into play. If it’s not ground up, it takes longer to break it down. However, if you take grains, and mill them into a powder, IT IS NOT WHOLE GRAINS. Just because there is fiber in the food does not mean it’s slow to absorb. The less processed the food, the longer time period over which it trickles energy into your body. If it’s super processed, it all absorbs very quickly, and your body may have trouble figuring out what to do with it unless you’re depleted already.

This is also where some insulin resistance comes from, and why diabetics have normal sugar metabolism in their muscles during exercise, even if they are short on insulin, or are resistant to it. Resistance is GLUT4 which causes glucose receptors to move to the cell membrane, but exercise does the same thing – muscle is hungry, it asks for more. Muscle is not hungry, it asks for less, even if you try to overfeed it. Where would it put this excess sugar? It can only store so much.

During exercise, your fat cells can liberate about 90% of your weight in pounds as usable calories per hour. For me, it’s about 260 calories. The gap is made up from glycogen in the muscles, which is good for just about 90 minutes. If you exercise hard, and stop at 60, and rest for 30, those 30 mins still use up that glycogen for delayed processes, cleanup, etc.

Eating carbs cannot provide as much energy as glycogen, but it’s the next best thing. Also, if you’re fasting, your glycogen reserves get burned up pretty quickly. Glycogen is 3:1 water to sugar, so this is why the first week of dieting is so awesome. No, that’s not fat. It’s muscle energy.

Any energy deficiency not covered by food will be covered by muscle damage. About the same number of calories can be broken down out of injured muscle cells. For me, this is a total of muscle and fat sourced calories of about 520 calories per hour. If I exercise for 3 hours with no food, then my power output drops to 130 watts, which is about 520 calories per hour.

The best option to limit muscle damage, limit recovery time, and optimize exercise benefits when going for more than your glycoge, is to eat as much every hour as you burn, minus the calories that can come from fat. Staying carb focussed can give more energy, and can be easier to absorb, though for some people, this slows the breakdown of body fat.

Staying fat focussed keeps the fat burn mechanisms running, but it takes twice as much oxygen, which means you’re hear-rate limited. It’s less about muscle conditioning then, and more about cardiovascular improvement.

Staying protein focussed is tougher on the kidneys. The aminos have to be converted for use as fuel, and that’s a lot of extra ammonia to pee out. That can be an issue when dehydration might already be at play.

Cycling Fuel

Max bodyfat you can burn in an hour is roughly 1 gram per 10 pounds, or in calories, 9 times your weight in pounds.

Anything else is food, muscle glycogen, or actual muscle tissue. Glycogen max is about 4% lean muscle mass, which usually is enough for 90 mins, plus or minus. Food is whatever is in your gut, though exercise slows digestion.

Bonk is when you have used up all food, and your glycogen stores, effectively exercising while fasted.

Bonk power is the max sustained energy ouput when you are fasted/bonked. This is fat burn, and muscle breakdown, combines.

Average watts is roughly 1/4 your calories per hour.

Me as an example
I’m 280 pounds, and bonk power for me is 133 watts, which is about 520 calories per hour. Doing that pretty much guarantees cramps from muscle breakdown.

Biking, I tend to burn 750-850 calories per hour, but I can peak at over 1000 in some instances (beginning, well fed, well rested, very driven).

That’s a big gap, because being big, I get more wind drag, which is 50% of your energy above 15mph. I also take more energy to climb a hill.

Downhill is faster, so less benefit (less time spent going downhill), and often waste the energy by riding brakes so as to not plow through others.

I do best consuming 600 calories per hour while riding more than 90 mins.

So, I have to eat the equivalent of a meal every hour to keep up, and reduce cramp risks. Most of that needs to be carbs that break down in less than an hour. Also, I don’t want to have a bathroom break every hour.

Ride Fuel
Sugary colas have phosphate, glucose, and fructose – all good for refueling. Cookies, sandwiches, etc usually are low roughage, good energy density, and include salt. M&Ms were actually designed to be endurance fuel for the army, and they hold up pretty well in a plastic bag.

Basically, all the things that are bad for you normally make great endurance fuel.

As to proper “race fuel”, honestly, it’s too low calorie for someone my size. Some people only need 200 calories an hour to stay fueled, so half banana, a 2″ square of granola, and a swig of gatorade is fine. For me, that would be a whole bunch bananas, and two quarts of gatorade. Just too much bulk.

Add to all that the need for oxygen to build ATP (actual muscle energy chemical). It takes 35% more oxygen to burn blood glucose than intra-muscular glycogen. Fat takes twice as much oxygen as glucose. High heat, humidity, low pressure, altitude, carbonation, and alcohol all reduce oxygen availability. Transport of glucose into the cell takes ATP. Digestion of food takes ATP.

Diabetes, Insulin Resistance, and Metabolic Syndrome
The key there is to not eat much carbohydrate outside of the exercise times. When glycogen reserves are full (muscles recovered), and adipose cells are replete, then why would you need more fuel? That’s the practical wording of the physiology here, despite the perception of a faulty hunger mechanism for the obese, or lack of islets for type I, or the defective signalling in Type II without obesity triggers.

Exercise induced glucose uptake is normal in diabetic muscle cells:

Exercise may increase glucose sensitivity:

While glycogen is being replenished, glucose uptake by muscles in normal. GLUT4 is transported to the membrane during exercise, even in absence of insulin.

Dream: Mark Hamish synth dogs

Lost most of the details, but we were at a party, restaurant was Josh Vernon’s, brass and marble. Well lit, open floor mingling, our company had the whole place. It was in a mall, but so was my company, a research firm.

My boss was not there, but his dogs were. They were getting sick, throwing up if they ate. We could not reach him on the phone, and no-one knew where he was.

I went to find him, but his office was torn apart. I found his research that indicated he had engineered them to starve to death. I could not believe he had not euthanized them.

I kept looking, and found him with the board if directors, and I laid into him, telling him he was horrible, etc etc. I knew I’d just resigned, so I left in a rush.

Somehow, between leaving, and getting out, I knew he was dead, andbthey thought I did it. My DNA was all over his office, and I took his jacket, because he was an ass, because it was cold, and because I could not find my jacket.

Ecxept, by the time I cleared out my locker, it was not cold out, and I was now wearing his jacket over mine. Two people asked me why I was wearing Hamish’s jacket, and I made up stories.

I just had to get out. I knew I was going to be investigated for his death now. I was sort of lost, but finally made it to a bar that was opening, and could pass from the “mall”, theough the bar, to the parking lot.

The lines were huge, so I just went for the compact car lot, because it openned first. I could not get to my car from there, but when I walked to the far edge of the lot, my mom, aunt, and sister saw me, and they drove over ti get me in their big SUV. They heard Mark Hamisch had died, and knew I would be upset.

HOWTO: AIX support for R/W filesystem on USBMS

JFS2 Unsupported
Putting JFS2 on non-LVM block devices has been working for a long time. I​ wrote up how to put JFS2 on a ramdisk back at AIX 4.3.3. I lost the techdoc from back then, but IBM has a newer re-write dated 2008 here: http://www-01.ibm.com/support/docview.wss?uid=isg3T1010722

JFS2 requires the underlying system to tell it if something goes away, or for it to stay there as long as the filesystem is mounted. LVM does this for disk, and the ramdisk drivers do this as well (mostly because if the ramdisk fails, likely the system has failed). The key there is that with JFS2, the ramdisk pages are pinned.

I wrote up including performance on USB 1 and USB2 ports in January of 2010 HOWTO: JFS2 on USB device on AIX Everything is fine, and dandy, even mount on boot, except it’s not supported by AIX Development.

JFS2 Problems
The problem for USB Mass Storage Devices is that the device can just go away unexpectedly. If a disk goes into deep sleep, or resets because of a loose connection, the JFS drivers do not get notified. So, they take writes, and JFS2 saves them up until it’s time to flush. It goes to flush, and the I/O channel is gone. Sometimes, this is just loss of everything in cache. If it’s an important file, then the system crashes.

​Because of that, we still cannot put LVM on a USB Mass Storage Device. This would take changes to notification of device availability, perhaps changes to the sync daemon, etc. Who knows, but there’s not been enough push from paying customers to make it a priority for AIX Development. Until that happens, don’t expect formal support for JFS2 on these devices.

UDF is the solution
AIX development supports read/write and even booting from USB Mass Storage Devices, but only with UDFS. The purpose is for writing a mksysb (system boot) image, or tar/cpio files, etc, and exists because of the RDX USB Internal Dock sold with some systems.

​Boot support is provided as well: REF: ​http://www-01.ibm.com/support/docview.wss?uid=isg1IZ66737

More info on RDX USB Internal Dock. https://www.ibm.com/support/knowledgecenter/POWER7/p7hdt/fc1103.htm

RDX is just a hot-swap USB to SATA drive bay. Any current USB drive (USB3 is preferred due to performance), should work fine.

HOWTO: Create, Read, and Write UDF on AIX

Create bootable filesystem

  mksysb -eXpi /dev/usbms0

Create empty filesystem

  udfcreate -d /dev/usbms0

Create UDF 2.01 filesystem

  udfcreate -f3 -d/dev/usbms0

NOTE: UDF 2.01 supports a real-time filesystem. It’s still UDF, so don’t try to put a database, or a million files on there.

Access read/write

  mount -vudfs /dev/usbms0 /USBDRIVE

NOTE: The mksysb is a SPOT, plus a mksysb image, so adding files to the UDF will not make the restore huge.

USB Adapters on AIX
Add-in USB3 XHCI adapter for POWER8 is:

  • CCIN 58F9 – PCIE2 4-port USB3 adapter
  • FC EC45 and FRU 00E2932 for Low Profile
  • FC EC46 and FRU 00E2934 for full height.
  • driver is 4c1041821410b204 internal or 4c10418214109e04 PCIe

Add-in USB2 EHCI adapter for POWER7 is:

  • CCIN 57D1 – PCI-E 4-port USB2 adapter
  • driver is 33103500 integrated or 3310e000 PCIe
  • FC 2728 or FRU 46K7394

Add-in USB2 EHCI adapter for POWER6/POWER5 is:

  • CCIN 28EF – PCI 2-port USB2 adapter
  • FC 2738 or FRU 80P2994
  • Belkin F5U219 – exact same card without the sticker.
  • driver is 99172604 internal or 99172704 PCI

Original USB1 OHCI /UHCI adapter for POWER5 and earlier was

  • driver 22106474 on blades or c1110358 PCI
  • This device is not really available anymore.

Modern Crusade Dream

We were at a Western hotel in Mumbai. The staff were white, and everything catered to the wealthy. Business was off, so we got to visit sometimes for lunch. Something happenned to the staff, and the east side dining hall got no service for hours after seating patrons.

The manager comped four tables, including ours, and gave us a his card. It said we could come in after 11:30pm and before 2:30 am to get leftovers and seconds (errored orders) buffet style for free. But, really, we could come in by 9:30pm, and until 5:30am. Lots of leftovers due to slow business.

This helped because we were always busy in the slums, and never knew when we’d get back. We were a mercenary tactical / investigation team, with not as much budget as we’d like, but enough to get what we needed. A bit of extra time in the fancy hotel was welcome.

We were at odds with the CIA, so we were on alert when we found the two familiar agents standing in our equipment room. They were fatigued, and just said, “load up.”

A Christian extremist group was hunting internationally, kidnapping members of our team, and forcing them to call in warnings. “Do not touch us! Do not touch us!”

We would find the team member, and we would have 10 minutes to query them, look through pockets, etc. Then they would get confused, seize, foam at the mouth, and die. If we touched them, it was contagious, and would get the next person. There would always be awriting, in Arabic, that said “do not touch us”.

This time, they needed our help. The extremists seemed nearly impossible to identify, but always left a subtle clue. We needed more than just that they hated Arabs, they considered themselves Christians, and that they were very well funded.

Minimum Wage 2017 edition

Looking at the “OMG VISA/MCDONALDS ARE EVIL” stuff around some first-draft budget from 4 or 5 years ago got me to thinking.

I definitely see a lot of unrealistic expectations, entitlement, etc. But there are a few valid points. I’ve long felt the minimum wage is unrealistic right now. You should be able to support yourself on 2000 hours per year, even if you’re unskilled, and had a spouse die young. I don’t like the idea of a hand-out, or certain people get extra money because we feel bad for them, or whatever.

I like the idea that someone could work a reasonable number of hours, and scrape by without being seriously concerned about whether they could feed themselves.
One important point is that a single parent with 2 kids (again, dead spouse scenario) will have about the same expenses as a traditional 4-person household. Federal Poverty Level for a 4-person household is $24k.

Another is that, while some people thrive on 60-80 hour workweeks, that is not sustainable for most people. 35-45 hours of work per week is reasonable, because, ideally, it leaves time for grocery shopping, registering kids for school, paying bills, etc. without so much fatigue that you’re a road hazard.

So, in my mind, that means minimum wage should be around $12.25/hr, but with regional increases based on cost of living within a 1-hour commute. I also think this should be indexed more often than whenever a politician needs a bump in popularity.

This isn’t going to make anyone rich, and isn’t going to keep anyone from working hard to better themselves through struggle. It’s not going to bankrupt fast-food places, and automated systems have been in roll-outs for years, despite having a pretty low minimum wage.

I think this COULD reduce the number of people on government poverty programs, and also give people a sense of control, stability and empowerment over their own lives.

So… Poke holes in this. What am I missing, for real. Be prepared to defend your claims beyond “That’s just not right!” Also, check out the US Census website, encyclopedic, wikipedic, and almanac information on poverty.

Amazon continues downward spiral

Head’s up. Amazon Seller Central now will cancel your account if you have not sold anything in 30 days. You will not get a notice of your account being closed. If you have inventory stored with them, they will not send it back to you. When that inventory sells, you will get an email, but they keep the money since your account is closed.

The normal Amazon helpdesk cannot help, but also doesn’t tell you they cannot help. My rep told me “that order number isn’t registered to your account. If you need help, use the contact us link.”

After multiple tries, a chat rep was able to send me to a voice robot for Seller Central. I was not given the phone number. They had it call me. I got someone who was willing to at least submit a request for my account to be reopenned, but “it will take a while.”

I had asked to escalate regarding the whole situation, because it’s not just about fixing my one issue today. It’s about preventing this issue at all. You cannot silently steal someone’s inventory.

I was told by Amazon main helpdesk if I had a problem, ask to escalate. I asked the Seller Central rep to escalate, and was told to fill out the web form instead.

The Seller Central help form is available if you log out of the error page, go the front login page, click help next to the sign-in button, then middle-right, you can click on “Contact Us”.

However, all of the support people believe this is acceptable behavior. There is no escalation, and your only recourse is to make a new account and sell more items.

You cannot reply to messages from Seller Central via email. You can just fill out a whole new request, and get a whole new case number.

Obviously, someone is paid on the number of cases they open, and not customer satisfaction. I say this because also, each reply has a “did we solve your problem?” The link requires you to be already logged in. You simply cannot report to them that they did not solve your problem, unless you can log in.

Every time I get upset at Amazon, I go pull a report on what I have spent with them. My first order with Amazon was 6/23/1999. Since then, I have spent roughly 1 year’s salary with Amazon. (I made a little less back then, and make a little more right now, but it averages out.)

That excludes the Seller Central stuff I’ve sold, from which they have made money on their FBA services.

Bicycle cross-chaining

Mark loves to prod me about cross-chaining, because it’s formally a naughty-no-no. I thought I’d give some observations, since I am a chronic cross-chainer.

Cross chaining wears the sides of the sprockets, which is never what wears out. I ride like I am a 1×9 unless I’m on hills. No problems. All major makers support 1×11 (single gear in front, all the way back and forth in the rear).

Cross chaining puts a side load on chain pins, so use a chain whose plates don’t pop off. Most are made by KMC, with a brand label on them. I found SRAM branded chains hold up better. SRAM was the first to offer 1×11 drivetrains. KMC branded, Shimano branded, etc would pop a link by 600 miles. Maybe better now, but I have no reason to change brands. Bell chains are just too heavy/slow/frictiony, but work fine. Whippermsn chains are super durable, but expensive. Chains with a dimple or flat pin edge are better than the ones that look like a wite cutter went after them.

Wear on the teeth, ramps, and pins of the cassette/chainrings is due to shifting. Side loads don’t matter much, but heavy loads do. Don’t shift under high load, and they will last longer. If you hear a crunch when shifting because you waited to downshift, that’s more damaging.

Wear on chains is mostly from higher wattage, incorrect lubrication, and grit abrasion. Clean and lube your chain any time you can hear it at all. Try different lubes and see what you like. You can even throw it in a jug of 50wt motor oil, or molten candle wax if you like, but make sure to wipe it off well. Oil only needs to be inside the rollers. Anywhere else attracts grit.

Wattage, well, whatever power you can put into a chain is part of the fun, but if you are 285 pounds like me, and stand to power up a hill, expect more wear.

Lastly, when your chain gets to 0.5% stretched, replace it. Letting it go longer causes additional wear on the sprockets.

The only other issue to bring up is practical, not wear related, and that’s dropped chains.

If you are all the way tiny in the back, and shift up to the big ring in the front, expect to drop the chain off the outside, onto the crank arm.

If you are all the way small in the back, and try to shift to the small ring up front, expect to drop your chain between the cranks and the frame.

If you are fast, you can soft pedal, shift 2-3x in the rear, then shift up front, before losing much momentum. Chain guards and idler arms are not super effective at preventing drops caused by cross chaining.

Dangerous Car AC in the heat – FALSE

Starting your car A/C / benzene chain letter has popped up in several places again recently. That letter is FAKE. No need to worry.

It’s a rewrite of a 2009 chain letter, which is false, and based on cherry picked information out of a 2001 report on automobiles in Korea, and a 2007 article on new cars in Germany.

The article claims benzene exposure is related to the A/C, and that is false. Benzene levels are related to combustion engines, because gasoline contains benzene. A properly maintained car will emit very little benzene. A poorly maintained car will emit more while the engine is running. It does not build up or accumulate when the car is off, unless you have a fuel leak.

REF: http://www.sciencedirect.com/science/article/pii/S0048969701011019?via%3Dihub

The article claims the benzene comes from plastic, which is false. All plastics DO offgass, and usually that is formaldehyde. This is more of an issue for new cars, and has nothing to do with the A/C itself. If the car stinks like new car smell, then air it out. The only observed risk was for people with allergies, it increased those temporarily.

REF: http://pubs.acs.org/doi/abs/10.1021/es0617901

A more detailed write-up about this chain letter is here:


When did “millennials” get redefined?

“Generations” for grouping (vs ancestry) have been roughly 15 year spans. Generation X was the 1970s through about ’85. After that was Generation Y. Millennials, by definition, were people born at or after the turn of the millennium. Being generous, that could be as early as ’98.

Now, people are trying to say Gen-X included the ’60s, and that Millennials are in their 30s.

Nooooo! That is inaccurate. Labels matter, and some media or researcher does not get to redefine people after the fact to fit their narratives!

Dreams of Heroes

Ending fragment.  Guy like a cross between The Punisher and Star Lord.  I was his friend.  He was having some struggles, and his car would not start.  I looked at is, spotless under the hood, cavernous even, and all simple.  There was not enough under the hood to go wrong.  It was just a matter of running way too rich, so it would not even start.  Clouds of half-burnt fuel would spurt out of the intake, sputter, lop, die.

He wandered off, comfused and conflicted, while I troubleshot it.  There was a small, compact, spark control computer as part of the distributor.  I figured that had failed, but maybe if we opened up the throttle, it would at least stay running.  There was not a usual air filter, rather a yellow box, with a key on it.  Again, spotless, shiny.  Far too small to filter that much airflow, it must be an EM field generator that actively cleans the air.

I went to find him to get the key, and he’s wandered out back, hood pulled up.  I followed, and he’d gone to track someone down.  Through some alleyways, etc I followed.  The dream is faded as to whether he kicked some ass, or could not find them.  But, I followed him to the back gate, put my gand on his shoulder, and someone else spun around.

She was a shapeshifter.  She had been drawn to our place.  Others came, a green woman, a woman who’s skin looked like a concert hall inside out.  She traveled by playing a violin.   The feeling and nuancel directed her vehicle.  Ther were many others, but I walked past as they mingled, up to the small shop that was my friend’s home.

“It’s an honourable intent lockout,” I said.  He had been conflicted, and had decided to seek revenge.  The car could not support that.

He was frustrated, almost indignant, but he knew it made sense.  He felt hopeless about it.

“I’m your sidekick.  I’m here to help you through this.”  He was my friend, and it would take time.  The others who came would help.  We were not looking for trouble.  We just wan to help when situations arise.

AIX and PowerHA levels

Research shows these dates for AIX:

  • AIX should come out around October, 2017 (est Week 46)
  http://www-01.ibm.com/support/docview.wss?uid=isg1IV95390   ### 7200-01-03-1720
  • AIX should come out around October, 2017 (est Week 46)
  http://www-01.ibm.com/support/docview.wss?uid=isg1IV95393   ### 7100-04-05-1720
  • AIX may come out around January, 2018 (est Week 5); however, it may be cancelled.
  http://www-01.ibm.com/support/docview.wss?uid=isg1IV86307   ### 7100-05-00-1731

It’s generally 26 weeks, plus or minus, from the initial YYWW date. Once a TLSP APARs releases, the YYWW code is be updated.

My PowerHA selection process would be:

  • 7.1.3 SP06 if I needed to deploy quickly, because I have build docs for that. However, it may be withdrawn from marketing in 2018.
  • 7.2.0 SP03 if they wanted longer support, but had time for me to work up the new procedures during the install.
  • 7.2.1 SP01 when it comes out, but not 7.2.1 base.

My AIX selection process would be:

  • for any NIM server or POWER9. Next updates should be Oct 2017.
  • or later for customer preference. Next updates should be Oct and Jan
  • Minimum level for application compatability. This is is the final TLSP.
  • For anything POWER6 or older, I push hard for p710 to p740 or s81x/s82x as replacements (cost).
  • For anything AIX 5.3 or older, I push hard for app testing on newer AIX (EoS).
    • PTF U866665.bff (bos.mp64. enables POWER8. AIX must be Must be patched before p8 (install nim or mksysb). p8 must be 840 firmware. VIO must be or later.
    • PTF U866665 requires an active extended support agreement AND p8 systems on file. No free access to biz partnets.

Code sources:

  • rpm.rte and yum ezinstall, then deploy tar, wget, and rsync:
  • openssh from the IBM Web Download expansion:
  • AIX security patches for any DMZ hosts
  • Base media, if I were certain the customer was entitled, but didn’t want to wait for them to provide media, Partnerworld SWAC:
  • Latest service pack for AIX from Fix Central:
  • Latest service pack for PowerHA from Fix Central:

Reference: PowerHA to AIX Support Matrix:


Posted in Reference, Work | Comments Off on AIX and PowerHA levels

Weird dream

Middle of the dream… family and I were meeting up for dinner. The place was similar to a Cracker Barrel, except it was upscale. Lots of wood, but more open space, different kinds of goods, and I think there was a Casino off the other side.

The waiter was someone we know. He called me by name, and I recognized him. I think he was an uncle. I think he was also Gene Hackman.

The table we were seated at, the four of us, was about 2 feet on a side. Basically, food came out one person at a time, except drinks and desserts. Khai had trouble deciding, and I ended up with the grilled salmon because of some change I wanted or would want, was easier on that.

After, we ended up at a Christmas partly. Lots of people, drinking, etc. And then someone died. Cue murder mystery, and before the police arrived, someone figured out the guy’s wife had poisoned him. There were $6m worth of $125k bearer bonds or similar in the stocking, and she wanted them. Except, in the process of explaining this, whomever figured out what happened lost track of the wife. Police showed up, and the wife had slipped away, with the bonds.

At the end, I was unpacking my own stocking. About 20 things in there, including what looked like a small Champagne bottle, with a plastic nozzle on it. It was Chilled Baby Wash. Also, a bottle with what looked like a thin roll of toilet paper on it. It was liquid toilet paper, or butt wash. Several other things in there, but the last present I opened was a phone call. Not a phone. Not a recording of a call. The call itself.

Anyway. I know there was a bunch more I missed. Lighting was dim, and colors were subdued, leaning towards blues, greys, but not exclusively.