Negative Tax Rate

I’ve just about got our taxes completed for the year – we expect a huge refund because we have a tax credit that is 30% of the geothermal installation cost (the credit that made our geothermal system cost almost exactly as much as a far less efficient air exchange heat pump). What I didn’t expect was to receive a federal tax refund that exceeds our federal tax payments.

But the child tax credit is refundable – so we have a carry over for next year from the geothermal system and get a thousand bucks for having a kid. At which point, it occurred to me what Trump may be hiding in his tax returns. Not that he pays 0$ in federal taxes (yeah, I paid a whole heap of money to the state, medicare, social security, sales tax, and property tax too … doesn’t change the fact the federal government is literally giving me more money that I paid them this year) but that he finagles his adjusted income to be sufficiently low to qualify for refundable tax credits.

People get outraged when wealthy people pay a lower tax rate than the poor. Even more so when wealthy people literally pay less in taxes. But to have the federal government giving a fairly affluent individual a couple of grand extra … that would be shockingly egregious.

Personally … I didn’t try to get the money beyond including the energy efficiency tax credit in my pricing of geothermal and solar systems. I put all of my info into a tax preparation application and got an answer back. It took me a day to realize that that answer actually exceeded my payments (and that the changes I was trying to model for additional HSA contributions didn’t seem to change our refund any because our refund was maxed out and what was changing was the carry forward on form 5695. I’m also not turning it down. We have paid tens of thousands of dollars in federal taxes each year for decades – I’ll consider it getting an extra grand back from last year.

Military Decision Making and The GBU-43

Some time ago, Trump announced that he would be giving more latitude to field commanders in military operations – when and what to target. At the end of last week, a Green Beret was killed in Nangarhar Province … and now a few days later we’ve dropped the largest bomb we’ve got in the same province. When asked if the president had authorized the strike, Spicer deferred to the military agencies. Trump just muttered some nonsense about how we all know what happened. If he’d authorized the strike, he would have been crowing about it.

 

History of South East Asia

Alternative Fact: “I felt pretty strongly that they (China) had a tremendous power over North Korea. But it’s not what you would think.” (Donald Trump in the Wall Street Journal)

Real Fact: No, it is exactly what I thought. I had a dual major in University: history and theoretical physics. So, yeah, I may have more knowledge of South East Asian history than the average American. I’ve specifically studied the history of the region as it relates to the war in Vietnam. I don’t believe Korea had quite the animosity toward China that fomented over hundreds of years in Việt Nam — a country whose name means Southern Bách Việt (an area of Southern China) … but that’s not saying much. There’s economic dependency, but coupling economic dependency with pre-existing resentment is not a recipe for harmonious relations.

My concern is not that a firm grasp of international history is not the norm world-wide (that sucks too, but probably been the way of things since language was developed). My concern is not that Trump has changed is opinion as new facts come to light — shocked, but quite heartened that the man eventually figured out that China was propping up its currency for a couple of years now. What concerns me is that the leader of China has to convey this history lesson to the US President. Because the dude refuses to let anyone else clue him into reality. None of his campaign advisers (both the currency manipulation & they can sort North Korea claims were made prior to him becoming president), none of the guys from State, no military adviser (including those who report directly to Trump) could bring real facts into this administration. In *this* instance, the leader of another country managed to hold Trump’s attention long enough to convey his version of reality (dangerous since our president is now operating under a view that doesn’t skew our country’s way … do we support Chinese expansion into the South China Sea now? I’m sure the Chinese president has a decent rational for that move as well).

But what happens when a situation arrives where the other country’s highest ranking individuals are not on hand to brief the US president??

Peppermint Swirl Dress

I came across a new pattern this weekend – the Peppermint Swirl Dress from Candy Castle Patterns – that I absolutely love. I can think of a lot of combinations that are holiday specific — red, white, and blue Independence Day dress, or a red and green Christmas dress. But didn’t want a wear-once dress.

It would also be great for a single color with gradients — take eight shades and arrange them 1 – 2 – 3 – 4 – 5 – 6 – 7 – 8 – 7 – 6 – 5 – 4 – 3 – 2 (loop back to #1 at the beginning). *But* this dress takes a lot of fabric. Like five yards for a 5 year old kid. At ten dollars a yard, it’s a fairly expensive dress using two or three fabrics. Even if I could get half yards for the skirt segments and use Kona cotton solids at 6$ a yard … that’s around 50$ for the skirt. Which, unfortunately, makes it a special occasion type of outfit.

Maybe as I get more fabric scraps, it would be a neat use-the-scraps project. But, for now, I wanted to get two colours that could be worn pretty much whenever. And I’d rather not spend 10$ a yard 🙂 So I began searching for closeout fabrics. There are a TON of cool closeouts in the 4$-5$ a yard range, but finding two that coordinated well … not so much. I thought about getting a print and then picking up a coordinating Kona locally. But then I came across a sale on marbled fabrics. I should have a blue and cream marbles in a week or so. I plan to use the blue as the dress top, make some piping with the cream fabric to go along the neckline, and use the cream fabric for the sash.

You heard it here first

Looking at news historically, like pre-telegraph historically, where people would hop on a horse and ride out to relay some news … “first” might be measured in days or weeks, I can certainly see the advertising advantage of being first by such a large margin. But as communication technology advanced, being “first” gives us “DEWEY DEFEATS TRUMAN”: something that is just outright wrong because accuracy was sacrificed for speed (well, and proof that bias in reporting is not a new phenomenon … the Chicago Tribute was hardly complimentary of Truman throughout the election run-up).

Now that ‘first’ is by a few minutes (there are people at each news org monitoring other news outlets, and a few minutes later a story will be up on NYT saying “WaPo reports …”), yeah I don’t much care who was first. I’d rather hear the real story once than waste time hearing twelve iterations of an emerging story.

There’s some egotism to “needing” to hear news first. Israel decides to launch missiles at Gaza … I feel bad for the people getting bombed, but it isn’t like I can ring up Rivlin and tell him to stop. I’m not a doctor who can go out and start treating the injured. Apartment building burns down in London. Still not a doctor, don’t have a whole lot of fire fighting experience, and I’m a thirteen hour flight from handing out water and blankets to the displaced. Sure, there are actions I can take — donate money, contact my elected representatives, volunteer talents I do have that provide value remotely … but I can do any of those things three hours later too.

Uninformed Upgrades (PHP 5 => 7)

TL;DR: Check the list of what is being updated before you let an OS automatically update its programs.

We have a home automation / MythTV / ZoneMinder server with automatic updates disabled. In the process of updating OpenHAB to OpenHAB2, Scott suggested we update everything else while we’re at it. No big, did a quick “dnf update” … got a gig of packages downloaded, waiting for >1400 packages to install, and rebooted.

PHP could not talk to MySQL. At all. ZoneMinder just threw an error saying we didn’t have the PHP MySQL module installed (it worked half an hour ago, so it is INSTALLED). MythWeb completely failed to load – just a white screen. The quick web view of OpenHAB persistence history threw a class not found error.

I checked to see if the extensions were loaded (use the command “print_r(get_loaded_extensions());” in a PHP page) – huh, a LOT of my modules were missing. But there weren’t any useful errors anywhere indicating why.

I modified the php.ini file to show startup errors.

[root@fedora01 conf.modules.d]# grep display_startup_errors /etc/php.ini
; display_startup_errors
display_startup_errors = On

Oooooh, now there are errors! A lot of them. Not particularly useful, but at least a good clue that this isn’t going to go so well for me:

PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/pdo.so’ – /usr/lib64/php/modules/pdo.so: undefined symbol: zend_ce_exception in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/mysqlnd.so’ – /usr/lib64/php/modules/mysqlnd.so: undefined symbol: zend_hash_str_del in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/bcmath.so’ – /usr/lib64/php/modules/bcmath.so: undefined symbol: _emalloc_16 in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/bz2.so’ – /usr/lib64/php/modules/bz2.so: undefined symbol: zend_fetch_resource2_ex in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/calendar.so’ – /usr/lib64/php/modules/calendar.so: undefined symbol: _emalloc_32 in Unknown on line 0
PHP Warning: PHP Startup: ctype: Unable to initialize module\nModule compiled with module API=20151012\nPHP compiled with module API=20131226\nThese options need to match\n in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/curl.so’ – /usr/lib64/php/modules/curl.so: undefined symbol: zend_list_close in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/dom.so’ – /usr/lib64/php/modules/dom.so: undefined symbol: zend_ce_exception in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/exif.so’ – /usr/lib64/php/modules/exif.so: undefined symbol: zend_hash_str_exists in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/fileinfo.so’ – /usr/lib64/php/modules/fileinfo.so: undefined symbol: zend_list_close in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/ftp.so’ – /usr/lib64/php/modules/ftp.so: undefined symbol: zend_fetch_resource2 in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/gd.so’ – /usr/lib64/php/modules/gd.so: undefined symbol: zend_list_close in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/gettext.so’ – /usr/lib64/php/modules/gettext.so: undefined symbol: zend_parse_arg_str_slow in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/iconv.so’ – /usr/lib64/php/modules/iconv.so: undefined symbol: _zval_get_string_func in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/json.so’ – /usr/lib64/php/modules/json.so: undefined symbol: _emalloc_56 in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/mbstring.so’ – /usr/lib64/php/modules/mbstring.so: undefined symbol: zend_hash_str_del in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/mysqlnd.so’ – /usr/lib64/php/modules/mysqlnd.so: undefined symbol: zend_hash_str_del in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/phar.so’ – /usr/lib64/php/modules/phar.so: undefined symbol: zend_sort in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/posix.so’ – /usr/lib64/php/modules/posix.so: undefined symbol: _zend_hash_str_update in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/shmop.so’ – /usr/lib64/php/modules/shmop.so: undefined symbol: zend_list_close in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/simplexml.so’ – /usr/lib64/php/modules/simplexml.so: undefined symbol: zend_ce_exception in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/sockets.so’ – /usr/lib64/php/modules/sockets.so: undefined symbol: zend_hash_str_del in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/sqlite3.so’ – /usr/lib64/php/modules/sqlite3.so: undefined symbol: zend_ce_exception in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/sysvmsg.so’ – /usr/lib64/php/modules/sysvmsg.so: undefined symbol: _emalloc_64 in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/sysvsem.so’ – /usr/lib64/php/modules/sysvsem.so: undefined symbol: _emalloc_24 in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/sysvshm.so’ – /usr/lib64/php/modules/sysvshm.so: undefined symbol: zend_list_close in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/tidy.so’ – /usr/lib64/php/modules/tidy.so: undefined symbol: _zend_hash_str_update in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/tokenizer.so’ – /usr/lib64/php/modules/tokenizer.so: undefined symbol: _emalloc_large in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/xml.so’ – /usr/lib64/php/modules/xml.so: undefined symbol: _zend_hash_str_add in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/xmlwriter.so’ – /usr/lib64/php/modules/xmlwriter.so: undefined symbol: _emalloc_16 in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/xsl.so’ – /usr/lib64/php/modules/xsl.so: undefined symbol: dom_node_class_entry in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/mysql.so’ – /usr/lib64/php/modules/mysql.so: undefined symbol: mysqlnd_connect in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/mysqli.so’ – /usr/lib64/php/modules/mysqli.so: undefined symbol: zend_ce_exception in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/pdo_mysql.so’ – /usr/lib64/php/modules/pdo_mysql.so: undefined symbol: mysqlnd_allocator in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/pdo_sqlite.so’ – /usr/lib64/php/modules/pdo_sqlite.so: undefined symbol: php_pdo_unregister_driver in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/wddx.so’ – /usr/lib64/php/modules/wddx.so: undefined symbol: zend_list_close in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/xmlreader.so’ – /usr/lib64/php/modules/xmlreader.so: undefined symbol: dom_node_class_entry in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/json.so’ – /usr/lib64/php/modules/json.so: undefined symbol: _emalloc_56 in Unknown on line 0

Turns out DNF installed PHP 7, but didn’t do anything to remove the PHP 5 modules from my Apache configuration:

[root@fedora01 tmp]# cd /etc/httpd/modules
[root@fedora01 modules]# grep php *
Binary file libphp5.so matches
Binary file libphp5-zts.so matches
Binary file libphp7.so matches
Binary file libphp7-zts.so matches

[root@fedora01 modules]# mkdir /tmp/oldphp
[root@fedora01 modules]# mv libphp5* /tmp/oldphp

And remove them from the conf.modules.d too (if you just remove the module files but try to load them in the conf.modules.d … Apache will just fail to load. You could remove them from conf.modules.d … but I don’t want a lot of no-longer-used files sitting there to confuse me in a year or two!)

[root@fedora01 modules]# cd /etc/httpd/conf.modules.d/
[root@fedora01 conf.modules.d]# grep php *
10-php.conf: LoadModule php5_module modules/libphp5.so
10-php.conf: LoadModule php5_module modules/libphp5-zts.so
15-php.conf:# Cannot load both php5 and php7 modules
15-php.conf:<IfModule !mod_php5.c>
15-php.conf: LoadModule php7_module modules/libphp7.so
15-php.conf:<IfModule !mod_php5.c>
15-php.conf: LoadModule php7_module modules/libphp7-zts.so

[root@fedora01 conf.modules.d]# mv 10-php.conf /tmp/oldphp/

Then restart Apache without PHP 5:

root@fedora01 conf.modules.d]# service httpd start
Redirecting to /bin/systemctl start httpd.service

Voila, perfectly functioning web sites. And, yeah, I should probably check the list of “what will be updated” when I update a server. Would save HOURS of reading through strace output to find out old versions were still hanging about.

 

Smart Home (In)Security

I’ve seen a lot of articles recently about hacked IoT devices (and now one about a malicious company disrupting the customer’s service in retaliation for poor reviews (and possibly abusive calls to technical support). I certainly don’t think *everything* needs to be connected to the Internet. If you want to write messages on toast remotely, whatever … but beyond gimmicks, there are certainly products where the Internet offers no real advantage. But a lot of articles disparage the idea of a smart home based on goofy products.

There are devices that are more convenient than their ‘dumb’ counterparts. Locks that unlock when you are nearby. Garage lights that come on when the door is unlocked or opened. And if that was the extent of home automation, I guess you could still call it a silly fad.

But there are a LOT of connected devices that save resources: Exterior lighting that illuminates as you near your house. With motion detectors controlling light switches and bulbs, you (or the kids) cannot forget to turn out the lights. An outlet that turn OFF to eliminate draw when appliances are in ‘standby’ mode saved us about 50$/year just on the television/receiver. Use moisture sensors to control a sprinkler system so the grass is only watered when there is actual need. Water flow sensors that can alert you to unusual usage (e.g. when the water filter system gasket goes and it starts dumping water through the thing 24×7).

And some that prevent real damages to your home or person. If your house uses combustion for heat, configure the carbon monoxide sensor to shut off the HVAC system when CO levels are too high. Leak sensors shut off the water mains when a leak is detected (and turn off appliances in the wet area if there’s potential for shorting).

The major security problem with any IoT device, smart home systems included, is that you’ve connect private resources to the Internet. With all the hackers, punks, and downright malicious people out there. And from a privacy standpoint, you are providing information that can be mined to enhance marketing profiles — very carefully read the privacy policies of any company whose platform you will be using. Maybe a ‘smart’ coffee machine sounds good to you — but are they collecting (and potentially selling to third parties) information about how many cups of coffee you brew and the times of day you brew them? If you care is a personal decision, but it’s something that should be considered just the same.

When each individual device has its own platform, the privacy and security risks grow. A great number of these devices don’t need to be connected to the INTERNET directly but rather a relay point (hub). From a business perspective, this is a boon … since you have a Trane furnace (big money, not apt to be replaced yearly), you should also buy these other products that we sell and pay the monthly recurring to use our Nexia platform for all of your other smart devices. Or since you have a Samsung TV with a built-in hub … you should not only buy these other Samsung products, but hook all of your other smart ‘things’ up to SmartThings. And in a year or two when you’re shopping for a new TV … wait, you need one with a SmartThings hub or you’re going to have to port your existing configuration to a new vendor. Instant customer loyalty.

For an individual, the single relay point reduce risk (it’s not one of a dozen companies that need to be compromised to affect me, just this one) and confusion (I only have to keep track of one company’s privacy policy). *But* it also gives one company a lot more information. The device type is often indicative, but most people name the devices according to location (i.e. bedroom light, garage light, front door). Using SmartThings, Samsung knew when we went to bed and woke up, that we ate breakfast before brushing teeth (motion in hallway, motion in kitchen, water usage, power draw on appliances, motion in hallway, motion in bathroom, water usage) or showering (power draw on hot water tank, increased water usage). Which rooms we frequented (motion), when we watched TV (not what we watched, but when), when we left the house (no motion, presence change). How often we wash laundry (power draw on washer, water usage) and dishes (power draw in dishwasher, water usage). Temperature in the house (as reported from multi-sensor devices or from a smart thermostat), if we change settings for day/night. How often we drive a car (garage door open/closed with presence change, or speed of location change on presence), how much time we spend away from home. How often we have overnight guests (motion in guest bedroom at night).

And, yeah, the profile they glean is a guess. I might open the garage door when mowing grass. Or I might have rooms with no motion sensors for which they cannot account. But they have a LOT of data on which to base their guesses and no one selling targeted advertising profiles claims to be 100% accurate. Facebook’s algorithm, for quite some time, had me listed as a right-leaning Trump supporter. I finally tired of seeing campaign ads on their site and manually updated my advertising profile. Point is, one company has a lot of data from which they build fairly good targeted profiles. How much of our house is actually used (a lot of bedrooms that rarely get motion, get a ‘downsizing specialist’ real estate flyer. All rooms constantly with motion, get a flyer specific to finding a larger home to give you all some space). If the HVAC system is connected, they could create a target group “people who could use additional insulation or sealing in their house” (outdoor temp for location v/s indoor temp for location v/s energy draw).

In some ways, it’s cool that a company might be able to look at my life and determine a need of which I am not even aware. Didn’t realize how much of our energy bill was HVAC – wow, tightening the house and insulation will save how much?! But it’s also potentially offensive: yeah, we could use a bigger house for all of these people. We could also use a bigger pay cheque, what of it? Yeah, the kids moved out … but this is our house and why would you tell me I should be leaving? And generally invasive — information that doesn’t really cause harm but they’ve got no reason to know either.

What articles highlighting the insecurity of IoT devices seem to miss is that the relay point can reside on your local network with no Internet access. We personally use OpenHAB – which enables our home automation to function completely inside our local network. You trust the developers (or don’t, ours is open source … you can read the whole thing if you don’t want to trust developers), but you own the data and what is done with it.

You don’t need an expensive dedicated server to host your own home automation controller – a Raspberry PI will do. What you do need is technical knowledge and a good bit of time (or hire someone to do it for you, in which case you need money and someone else’s time). But the end result is the same — physical presence is required to compromise the system. Since physical presence will also let you bump locks, smash windows, cut power, flick light switches, open doors … you’re not worse off than before.

Energy Usage

We’ve now been using our WaterFurnace geothermal system for a few months. This winter has been an odd combination of fifteen degree highs and seventy degree highs (yes, we went to the beach and played in the sand in February), but we’re starting to see significant energy savings v/s the Trane XV20i air exchange heat pump. Not only are we seeing lower electrical usage, but we keep the house at 72 degrees this year — almost too warm on occasion. With the air exchange heat pump, we were layering up, keeping the house at 68, and still feeling cold.

Energy use by the heat strips was my biggest concern with the system — that we’d still see the heat strips engaged in the middle of winter. Glad to report auxiliary heating system was not engaged since the earth loop was installed (December 2016, before the earth loop was hooked up, we used emergency mode to provide some heat from the coils – supplementing wood burned in our fireplace).

Our HVAC-related energy costs for the first three months of usage:

Jan 2017     131$ total, 75$ stage 1, 55$ stage 2
Feb 2017      93$ total, 55$ stage 1, 38$ stage 2
Mar 2017      81$ total, 43$ stage 1, 38$ stage 2

Comparing our kWh used year-to-year, our total consumption is significantly reduced during colder weather.

Our septic aerator used slightly less electricity than our HVAC did in March! As the temperatures warm up, I’m sure we’ll reach a point where the aerator is our high draw item (i.e. the thing that gets replaced next). We’re going to use our AeonLabs HEMs and some smart outlets that report energy usage to isolate other high-draw items and see what can be eliminated or upgraded … but we’ve certainly made progress in purchasing the geothermal system.

Internet Privacy (Or Lack Thereof)

Well, the House passed Senate Joint Resolution 34 — which essentially tells the FCC that it cannot have the policy it enacted last year that prohibits ISPs from selling an account’s browsing history. What exactly does that mean? Well, they won’t literally sell your browsing history — anyone bored enough to peruse mine … I’d happily sell my browser history for the right price. But that’s not what is going to happen. For one thing, they’re asking for lawsuits — you visit a specific drug’s web site, or a few cancer treatment centres and your usage is indicative of specific medical conditions. An insurance company or employer buys your history and uses it to fire you or increase rates, and your ISP has created actual damages.

What will likely happen is the ISPs become more effective sellers of online advertising. They offer a slightly different service than current advertising brokers. The current brokers use cookies embedded on customer’s sites to track your browsing activity. If you clear your cookies, some of their tracking history is lost as well. If you use multiple computers (or even multiple browsers on one computer), they do not have a complete picture of your browsing because cookies are not shared between browsers or computers. If you browse in private mode (or block cookies, or use a third-party product to reduce personalized advertising), these advertisers may not be able to glean much about you at all. The ISP does not have any of these problems — no matter what computer or browser I use at home, the ISP will see the traffic. Since their traffic history is maintained on their side … nothing I can do to clear the history. Browse in private mode or block cookies and you’re still making a request that transits the ISP’s network.

The ISPs have disadvantages, though, as well. When you are using encrypted protocols (HTTPS, SSH, etc) … the ISP can see the destination IP and a bunch of encrypted gibberish. Now *something* about you can be determined by the destination IP (hit 151.101.129.164 a lot and I know you read the NYTimes online). Analysis of the encrypted content can be used to guess the content — that’s a bit of research that I don’t believe is currently being used for advertising, but there are researchers who catalog patterns of bitrate negotiation on YouTube videos and use it as a fingerprint to guess what video is being watched using only the encrypted traffic. Apart from some guessing, though, the ISP does not know exactly what is being done over encrypted communication channels (even the URL being requested – so while they may know I read the NYTimes, they don’t know if I read the political headlines, recipes, or concert listings out on LI). Cookie-based advertisers can, however, track traffic to encrypted (HTTPS) web sites. This is because site operators embed the cookie in their site … so where an ISP cannot read the data you transmit with an HTTPS site, the server in question *can* (otherwise it wouldn’t know what site you requested).

So while an ISP won’t sell someone a database of the URLs you’ve accessed last week, they will use that information to form advertising buckets and sell a specific number of ads being served to “people who browse yarn stores” or “people who read Hollywood gossip” or “right-leaning political activists”. Because they have limitations as well, ISP ad brokerages are unlikely to replace the cookie based individualized advertising. I suspect current advertising customers will spread their advertising dollars out between the two — get someone who can target you based on browsing over HTTPS and someone who can target you even if you block cookies.

What about using VPN or TOR to anonymize your traffic? Well, that helps — in either case, your ISP no longer can determine the specific web sites you view. *But* they can still categorize you as a technically saavy and security conscious individual and throw you into the “tech stuff” and “computer security stuff” advertising buckets.

You can opt out of the cookie-based individualized advertising — Network Advertising Initiative or Digital Advertising Alliance — an industry move that I assume was meant to quell customer anger and avoid government regulations (i.e. enough people get angry enough and are not provided some type of redress, they’ll lobby their state/federal government to DO SOMETHING about it). The ISPs will likely create a similar set of policies and a process to opt-out. Which means the being passed to the president for signature essentially changed the ISP’s ability to use my individual browsing history from an opt-in (maybe as a condition of a lower price rate) to an opt-out (where I have to know to do it, go through the trouble of finding how to do it, and possibly even keep renewing my opt-out). Not as bad as a lot of reporting sounds, but also not a terribly constituant-friendly move.

A couple of links to the current targeted marketing opt-outs for companies which whom I do business so bothered to waste a few hours trying to determine how to opt-out:

https://pc2.mypreferences.com/Charter/TargetedDigitalMarketingAds

https://www.t-mobile.com/company/privacy-resources/your-privacy-choices/ad-options.html

 

Government as a Business

We’re getting another attempt to remodel the government as a business. If I had to run the federal government like a business, I sure as hell wouldn’t want to run it like one of Trump’s businesses! But lets ignore whose business.

The problem with the swat team Trump’s announced is that it seems to presuppose that the problem with government is a top-level management issue that could be sorted by sound business practices. What corporation has their top level leadership appointed by its customers? Or even its owners – sure, corporate boards are voted by shareholders … but not the C-level positions. Additionally, what business would almost guarantee multi-year positions to their high level leadership team? Regardless of performance?!

There is something to be said for bringing private sector innovation into government operations — especially at a lower level. Match up individual functions of government agencies with private sector businesses or even non-profits that have similar functionalities. Several government agencies have large logistical operations (FEMA, military) that a logistics company could help. Maybe Habitat for Humanity has ideas that would farther HUD’s goals. University teams may have interesting input too. And marketing — corporate experience would certainly be beneficial in selling legislation and initiatives.

But the fundamental problem I have with the principal that government should run like a business is that few businesses are monopolies. If you don’t like how a business operates, what values they support, the product they create … you shop around and select another one.

There was a whole thing a year or two ago with a baker who didn’t want to make a cake for a homosexual couple’s wedding. But as a customer, I can chose not to contract with a bigoted pastry chef for my events either. It is possible enough people don’t care and she remains in business. Or her choices mean her business goes under. Either way, you are not forced to support her beliefs because there are other bakeries.

Government provides services that cannot be privatized – for reasons of efficiency, non-profitability, or sensibility (privatizing the military security and prisons are a good counter-example of why government should provide these services). As such, I cannot just pick another military if I think the federal one is engaged in too many offensive operations. I cannot select a new environmental protection agency if I think the federal one fails to actually protect the environment.

If we’re going to operate the government like a monopoly (see: industries generally subject to a LOT of regulation), we are not just the customers! The government is a customer owned co-op. One that operates in hundreds of different verticals.