Warning to the World

At this end of 2017 the situation for humanity on Earth is grim. Over past decades again and again humanity has witnessed one sad turning point after another as humanity continues its plummet towards catastrophe. Many of these turning points are ecological, biological, or environmental in nature as species die off, habitats disappear, environments are changed, and natural systems which have existed for countless millennia irrevocably break down.

Humanity has not even achieved ways to measure and fully understand many of the catastrophic changes that are being inflicted upon the world, but even if it could it would not really matter as the orientation of human society can scarcely be changed. Over the past years we have witnessed what were once among the brightest nations on Earth commit literal suicide as their political leaders allow the mass invasion of millions of immigrants who ultimately drain the precious resources of those countries which represent the cumulative hard work of their peoples. It would have been more honorable if the leaders of these countries put their citizens in gas chambers than allow the mass rape, abuse, destruction, mayhem, and heartbreak inflicted upon their peoples who must watch their traditions and their once cherished societies die an agonizing death.

Human governments across the world are a shambles and as technology increases to ever greater, seemingly miraculous accomplishments, this is a recipe for catastrophe on scales never before imagined. Humans have not even accomplished being able to run their countries, their cities and towns safely, sustainably, and justly for their citizens but they allow slow-moving catastrophes to occur as their cultures are destroyed and their once great cultural centers fall into ruin.

While over the past years alarms have been raised over the potential destructive aspects of different technologies such as artificial intelligence, robotics, or drones the most frightening prospect is not from any of these, but from the attainment of an unlimited supply of power in the form of nuclear fusion. The state of human society with its disastrous political and spiritual conditions around the world is hardly in a position to handle the extreme responsibility of unlimited energy, and this power placed in the hands of almost any government in the world today would almost certainly lead to unbridled disaster.

Perhaps the greatest catastrophe of all in this dark time is humans’ forgetting that the most essential accomplishment they can make is not to change the world around them but to change themselves. This is not a metaphor either, no different than the non-Cartesian conception of space in the Heideggerian sense being non-metaphorical. Humans are flesh and blood and ultimately it is in our DNA and our hearts and our minds where our greatest achievements are attained and where the legacies of these achievements continue to live on.

Our struggle and our achievements need to drastically change their focus from the external world to the internal world of which the political worlds which shape our societies are a refelection. The greatest change we can make for ourselves and for our world and all the beings around us is to evolve on every plane both physical and spiritual.

Evolution is not an SJW agenda, not the newest milestone to achieve in a never-ending campaign of “rights”, but the result of quiet effort, achievement, discipline, concentration, conscientiousness, dedication, devotion, and ultimately love. It is a love which is not complicit in enabling destructiveness, but always stands clear and strong for highest choice, no matter how uncomfortable.

Python-based rsync backup script

This is a backup script I created in Python which uses the eminent rsync utility to perform the actual backup operation.  This script addresses a few things that are lacking from rsync’s options that I really want: One is the ability to specify in one single config file which paths (directories and/or files) to backup and which to ignore.

If you’re familiar with rsync you will know that it actually does have the –exclude-from <file> option which will read from a designated file for paths to exclude.  But unfortunately that file only contains paths to exclude, and paths to include must be specified on the command line.

In the past I wrote a Bash script to perform this desired functionality however using Bash to do this was extremely tedious due to string quoting/escaping issues.  I finally decided to write the script in Python which is a vast improvement.

This is a first-draft version of the script and it is intended to run under Cygwin on Windows.  It will run on Linux but is not (yet) optimized for it.  I intend to improve this script even further but as it stands right now it very robust and works well.

The magic of this script is how it uses the config file to include and exclude paths. For example let’s assume you want to backup two directories /cygdrive/c/Users/smith/testdir and /cygdrive/c/Users/jones/testdir . Both of these would be specified in the config file just as they are:

Now let’s say both of these users have a directory named stuff under testdir and we want to exclude the stuff directory for both users. We can do so with:

Note that the - at the beginning of the line specifies that it is an exclude line. Exclude lines must begin with a hyphen followed by an anchor directory.

Exclude lines must always be anchored in at least the lowest level directory specified in a backup path. By anchored I mean that the last directory in the backup path /cygdrive/c/Users/smith/testdir overlaps with the first part of the exclude path testdir/stuff . In this example testdir is the anchor.

If you only want to exclude testdir/stuff from jones but not smith, then you can move the anchor point back one level to specify only the jones directory:

in which case jones is the anchor directory.

Similarly you could exclude only testdir/stuff for smith but not for jones:

I actually didn’t know rsync was this intelligent with it’s handling of excludes until I started testing it while creating this script. The ability to shift anchor points up the tree and to be able to use multiple source directories with exclude statements is amazing.

The config file for this backup script is extremely powerful in this way. One further thing to note is that spaces in pathnames must be escaped with a backslash. For example to exclude a directory “My Files” under testdir for smith use:

To include a directory “some stuff” in smith’s home use:

I could have finageled the script to allow specifying paths without having to backslash escape whitespaces, however I deliberately did not want to do this because the backslash escape is exactly how whitespaces in paths are represented on the Unix command line, for example in output of the command pwd.

You can also include comment lines in the config file. Comment lines must contain # as the first character of the line. Blank lines in the config file are ignored.

The order of lines in the config file does not matter as they all will be parsed and sorted before processing.

You should not put trailing slashes at the end of pathnames in the config file but the script will remove them anyway for safety’s sake.

Obviously with any script that writes to disk you should be careful. Anything in the backup directory not specified as part of an include path in the config file will be deleted.

Python is growing into an extremely powerful systems administration language which I would not be surprised – and would be happy – if it supplants the Bash shell in the future (see this for an exciting project in the present). It already has the ability to perform an increasing amount of os-related functions (also see here).

Below is a sample backupsync.conf config file:

Because of the default permissions of the top-level /cygdrive and /cygdrive/c directories in Cygwin, when they are copied to the backup directory you may need to chmod them to the appropriate permissions for your user in order for the backup to run. This will be addressed in the next version.

California was never Mexican

The early generals, ranchers, and governors of California were Spanish. During that time there were indigenous tribes of native Americans living in California. But California was never Mexican.

Juan Bautista Valentín Alvarado y Vallejo, Governor of Alta California from 1837 to 1842. Image links to article.

General Mariano Guadalupe Vallejo, military commander, politician, and rancher. Image links to article.

José Antonio Castro, acting governor of Alta California in 1835. Declared independence from Mexico in 1836, becoming Presidente of California. Image links to article.

Luis Antonio Argüello (pictured right), first governor of Alta California. Image links to article.

Yes California was a territory under Mexico, but Mexico was a Spanish territory and the people who controlled it were Spanish. They were not “Mexican”. These guys were all Spanish, Europeans.

This whole thing about “sanctuary” cities in America is a joke because Mexicans already have their own sanctuary country: Mexico!

I would be happy to see indigenous native American tribes living in villages around the state, but California is not Mexican and doesn’t belong to Mexicans and never will.

We are at war

US-Mexico border bridegroom smuggled heroin

A US man who wed his Mexican fiancée at the border with Mexico last month turned out to be a convicted heroin smuggler, local media report.

Background checks failed to reveal Brian Houston was awaiting sentencing in San Diego at the time, and the US Border Patrol approved the event.

The wedding was part of a “Door of Hope” event which allows meetings between people not allowed to cross.

Houston, who is from San Diego, signed official Mexican documents with Evelia Reyes of Mexico, making them husband and wife.

“It’s a statement that love has no borders,” Houston said afterwards.

He had been arrested in February at another border crossing after police found 19.5kg (43lb) of heroin, 21kg of methamphetamine and 19.5kg of cocaine in his car, according to the complaint.

Opioid crisis linked to two-year drop in US life expectancy

US life expectancy fell last year for a second year running for the first time in more than half a century, reportedly driven by the worsening opioid crisis.

Years of over-prescription of opioid painkillers in the US has created a nationwide addiction crisis, with patients turning to heroin and other street drugs when their prescriptions stop.

“The key factor in all this is the increase in drug overdose deaths,” said Robert Anderson, the chief of mortality statistics at the National Center for Health Statistics (NCHS), calling the two-year life expectancy drop “shocking”.

The only question I have is why was someone caught smuggling 43 pounds of heroin not executed?

Super-quick guide to create a Linux (CentOS) virtual machine under LXD

These instructions work for Ubuntu 16.04, possibly with other distros as well. My goal was to set up a CentOS virtual machine for learning purposes.

Install LXD via snap
These commands must be run as superuser/root:

Answer the questions. Default answers should work fine but I was getting issues with the default storage pool name “default” so just chose the name “storage1” which sounds more logical anyhow.

Create the virtual machine
Here are commands to create several different types of virtual machines:

I chose to create a CentOS 7 VM. Note that this default VM is very barebones with only the most minimal components installed.

Connect to the virtual machine
This part was initially tricky but turned out to be very easy. Without knowing the default password, if you use lxc console centos you will not be able to log in. So instead connect with:

Now you’re connected, you can run useradd, passwd, yum or other commands to do more setup. Here are a few very preliminary things you might want to do:

Install some essential things

Some basic admin stuff
Replace username with your user’s name

Connect to your VM
Run ifconfig on your VM to see what your interface address is. LXD init automatically sets up a private subnet for the VM.

Note the address and netmask of the eth0 adapter. For example it might be 10.111.164.72 with a netmask of 255.255.255.0.

On the LXD host system itself you can directly reach hosts in the private subnet via ssh. Other hosts on the same network as your LXD host need to somehow know that to reach hosts in the 10.111.164.0/24 range they should go through the main interface of the LXD host system. For example if the LXD host system’s main interface address is 192.168.1.20 then the following command on a Windows machine (run in an Administrative console) creates the appropriate net route:

On a Linux system the command would be:

This is called a net route because it defines that a network is reached through a specific route. This is in contrast to a host route which creates a route to a specific host. Knowing how to create routes is a powerful admin tool.

After this point, you can now reach the new virtual machine via ssh and the user account created above.

Sexual harassment

As a boy/young adult growing up I experienced what is called sexual harassment many times. There were older adults who basically hit on me – wanted to have sex with me. I was never violated by any of these people and I don’t consider the experiences to have been traumatic. More disappointing. When you’re friends with an older person and you have a level of camaraderie and trust with them, it’s a let down that they might be interested in being your friend not because of your personality, but because of physical urges.

I was also sexually harassed as a young boy in gradeschool by other students. I remember at least one student who would grab my hand and force it over his genitals. At the time I didn’t even really understand what he was doing or what it meant other than it being physical harassment. I was also humiliated and spit on almost daily. I would say those experiences were damaging, but less in a sexual way than in a bullying kind of way.

I’ve never been raped, but my first relationship was with a woman who had been raped and I feel that it also affected me and kind of fucked me up. I think rape has wide-reaching consequences. It seems like something too extreme for me to handle and I would probably choose to not ever date nor want to have any relationship with a person who has been raped because it would be too traumatic to me.

In fact I believe living in a community or society in which there is a high incidence of rape is damaging. It means that you will inadvertently have interactions with people who have been raped, and thus be affected by it. I would rather choose to not live in a society like this. If I had some magic vision power I would choose to live somewhere where rape was uncommon.

I have also been sexually harassed as a transgender, including being deliberately called with pronouns not matching my gender for the sake of insulting/abusing me, having explicit remarks made about my genitalia, being deliberately humiliated in front of others, treated like a zoo animal by people in public, being ogled, and harassed. Some of it was institutional.

Of all the things I’ve experienced I would actually consider the come-ons by older adults when I was younger as the least upsetting things. The explicit humiliation and harassment of me because of my being transgender is definitely the worst.

Cygwin Quick Install

Install Cygwin
Open an cmd terminal as administrator, then:

cd ..
mkdir cygwin64

Open a web browser to cygwin.com and download setup-x86_64.exe to the C:\cygwin64 directory.

Back in the cmd terminal, copy this:

and press enter.

Change the Cygwin home directory to your Windows home directory
Once the install completes open a Cygwin terminal and do the following:
cp /etc/nsswitch.conf /etc/nsswitch.conf.ORIG

Edit /etc/nsswitch.conf (for exampe using the vi command-line editor) and change the following line:
# db_home: /home/%U
to this:
db_home: windows cygwin desc

Setup up OpenSSH server
In a Cygwin terminal do the following:
pwgen -an 20

This gives you a list of passwords to use for the Cygwin sshd account.

Open another Cygwin terminal as Administrator (by right-clicking and selecting “Run as Administrator”) and do the following. Replace “password” below with one of the long passwords generated in the previous step. Make sure to put quotes around it.
ssh-host-config -c "ntsec" -u "cygwin_sshd" -w "password"

Answer the following prompts as indicated:
Should StrictModes be used? (yes/no) -> no
new local account 'sshd'? (yes/no) -> yes
Do you want to install sshd as a service?
(Say "no" if it is already installed as a service) (yes/no) -> yes
Enter the value of CYGWIN for the daemon: [ntsec] -> press enter to confirm
Do you want to use a different name? (yes/no) -> no
Create new privileged user account 'CIRCLE\cygwin_sshd' (Cygwin name: 'cygwin_sshd')? (yes/no) -> yes

Now start the ssh daemon:
cygrunsrv -S sshd

See my other guide Set up Apache, PHP, and MySQL (MariaDB) in Windows under Cygwin for setting up more services.

Upgraded a system to Windows 10 today

The first time I ever upgraded a system to Windows 10 was not long after it was initially released. The process was sufficiently distasteful to me at the time that I reverted back to Windows 8.1 not long afterwards. Many apps were uninstalled without my having a choice nor being notified. The interface looked bad. Then there was all the horrible stuff in the news about privacy violations, etc.

But my experience today was quite different. I downloaded the Windows 10 update to a USB key and did the installation that way. It went very smooth. It did not even touch master boot record of the drive Windows is installed on which is shared with Linux which is what controls the MBR via the Grub bootloader.

I didn’t have many apps installed on the system but anyhow none of the ones I did were touched. They all worked fine after the upgrade. By the way, this was an upgrade from Windows 7 Ultimate to Windows 10 Pro.

As for the privacy stuff, I know it is a concern but my feeling now is that what Microsoft is doing is basically similar to what Google does with Android and I’m sure Apple does with their devices. There is some data collection and of course there’s bundling in of all their preferred apps. They all want you to use their version of messaging, photo sharing, social apps, cloud apps, etc. I chose to pretty much disable everything, all forms of data sharing, etc. except for Cortana which I’m curious to try. On an Android tablet I have I’ve been using Google Assistant and having fun with it. Cortana will be interesting to try. It seems like voice command stuff with computers has moved at a snail’s pace over the years. I remember when Dragon Naturally Speaking was big but even then it never seemed to really be that great. Now maybe things are progressing somewhat.

One thing that unexpectedly turned out to be a huge plus with Windows 10 was installing Winaero Tweaker which has a lot of options to customize Windows 10.

So this is the first time I’ve used the Microsoft Edge browser and it seems nice.

One reason I wanted to install Windows 10 was to install Docker.

Just a reminder that the United States is not a democracy

This is just a reminder that the United States is not a democracy. It appears now that most people don’t care about this anymore. But I thought it was worth posting a reminder.

Page 2 of 10912345...102030...Last »