Harry Browne’s Permanent Portfolio with fee-free ETFs

In reviewing the timing suggested for Harry Browne’s Permanent Portfolio re-balancing, I came across an article that back-tested monthly re-balancing. Harry’s original plan was to re-balance once a year. Monthly re-balancing results in a compounded growth rate of 9.6%, much better than the 6.2% achieved when re-balancing once a year.

The problem is that trading once a month costs money. For instance, a normal trading transaction may cost $6.95 per trade. Balancing once a month times four funds, times a buy and sell for each add up. That can cost $55.85 per month. However, some brokers offer quite a few commission-free funds for trade, so below are the alternatives I’ve picked.

Asset ClassHB ETFFee-free ETF
Stock MarketSPYSPTM
GoldGLD / PHYSGLDM
BondsTLTSPTL
CashSHYBIL

Of course some people are uncomfortable with most gold ETFs because they generally only represent gold futures, and the futures market is akin to a ponzi scheme with less physical gold than there are futures contracts. Therefore, a gold trust like PHYS might be your preference, even though trading in the fund incurs fees.

Logical Invest has a monthly Permanent Portfolio re-balancing algorithm that uses the back-test monthly method from the article above to suggest a re-balancing strategy.

As an aside, I had the pleasure of meeting Harry Browne in 2000. He was a towering man (intellectually and physically) and I miss his contributions to the libertarian movement.

Monthly transit ridership gainers and losers added

I added monthly statistics to the National Transit Database web site which show the monthly year-over-year gainers and losers in ridership for each month. Some transit systems are rather small, so big swings will be seen for some of those smaller systems.

However, there are some larger systems that are seeing large gains and losses. For instance, Albuquerque, NM saw a 54% ridership increase in its bus service. Meanwhile, Tallahassee, FL saw a 33% drop in bus ridership in April.

Feel free to explore the site and email with suggested additions.

List of Abbreviations used on Twitter

These are the abbreviations used on my Jeff Steinport twitter.

AbbreviationMeaningAbbreviationMeaning
Amer. American.   Luc. Lucan.
Apul. Apuleius.   Lucr., Lucret. Lucretius.
Arist. Aristotle.   M. Motto.
Aul. Cell. Aulus Gellius.   Macrob. Macrobius.
Bret. Breton.   Mart. Martial.
Cæs. Cæsar.   Mol. Molière.
Catull. Catullus.   Per. Persius.
Cic. Cicero.   Petron. Petronius.
Claud. Claudius, Claudian.   Phæd., Phædr. Phædrus.
Corn. Corneille.   Plaut. Plautus.
Curt. Curtius.   Port. Portuguese.
Dan. Danish.   Pr. Proverb.
Dut. Dutch.   Pub. Syr. Publius Syrus.
Ecclus. Ecclesiasticus.   Quinct. Quinclilian.
Eurip. Euripides.   Russ. Russian.
Fr. French.   Sall. Sallust.
Fris. Frisian.   Sc. Scotch.
Gael. Gaelic.   Schill. Schiller.
Ger. German.   Sen. Seneca.
Gr. Greek.   Sh. Shakespeare.
Heb. Hebrew.   Soph. Sophocles.
Hom. Homer.   Sp. Spanish.
Hor. Horace.   Stat. Statius.
It. Italian.   St. Aug. St. Augustine.
Jul. Julius.   Sueton. Suetonius.
Just. Justinian.   Swed. Swedish.
Juv. Juvenal.   Tac. Tacitus.
L. Law.   Ter. Terence.
Laber. Labertius.   Tert. Tertullian.
La Font. La Fontaine.   Tibull. Tibullus.
La Roche. La Rochefoucauld.   Turk. Turkish.
Lat. Latin.   Virg. Virgil.
Liv. Livy.    

Quick and simple HTML5 page skeleton template

<!doctype html>
<html lang="en">
<head>
 <meta charset="utf-8">
 <title>Site Title</title>
 <meta name="description" content="Site Description">
 <meta name="author" content="Jeff Steinport">
 <link rel="stylesheet" href="css/styles.css?v=1.0">
</head>
<body>
 <script src="js/scripts.js"></script>
</body>
</html> 

Limit WordPress admin access by IP address in nginx

As soon as any server is set up on the net, it will immediately see attempts at loading the /wp-login.php page. If you actually have a WordPress site set up, you’ll quickly start receiving lots and lots of login attempts. You can stop this completely by limiting access to /wp-login.php and /wp-admin by IP address in nginx (and Debian/Ubuntu). It’s pretty simple. Here’s how:

In your site’s nginx server block, add an include for the wordpress IP address configuration (this separate config file is handy for multiple WordPress sites, if you have more than one WordPress site on your server).

server {
...
include /etc/nginx/snippets/wordpress.conf;
...
}

Create a file at /etc/nginx/snippets/wordpress.conf:

location = /wp-login.php {
include snippets/blockips.conf;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
location = /wp-admin/ {
include snippets/blockips.conf;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}

Then create a file that will list the IP addresses that will be permitted to access your WordPress admin at /etc/nginx/snippets/blockips.conf:

allow 0.0.0.0; #description
allow 0.0.0.0; #description2
allow ffff:ffff:ffff; #description3
deny all;

This will allow the three IP addresses listed above (of course, replace with the IPs you’d like to allow) to access your WordPress admin page. Everything else will be denied. Add a little description to the end of each line in order to keep track of which IP addresses you’re adding.

Then restart nginx:

service nginx restart

And you’re good to go.

The first time you log in, WP might complain about cookies. Just try to log in again.