Your Own Gravity Your Own Gravity     Categories     About     Feed    

Corruption, Defined

Why Republicans are rushing to pass an unpopular tax plan:

Rep. Chris Collins, a New York Republican, on Tuesday cited pressure from donors as an imperative for the GOP to pass its tax bill. “My donors are basically saying, ‘Get it done or don’t ever call me again,’” Collins told reporters.

Senator Lindsay Graham:

Lindsey Graham says “the financial contributions will stop” if tax reform fails.

The same motivation was behind the push to repeal the Affordable Care Act (ACA), aka “Obamacare” (they are still trying, by the way):

[Senator Corey] Gardner is in charge of his party’s midterm re-election push, and he warned that donors of all stripes were refusing to contribute another penny until the struggling majority produced some concrete results… The backlash from big donors as well as the grass roots panicked Senate Republicans and was part of the motivation behind the sudden zeal to take one last crack at repealing the health care law before the end of the month.

Republicans continue to propose legislation that the public is overwhelmingly against in order to keep getting money from their biggest donors. It’s not the first time and they are certainly not the only party to do that. But unless we’ve all forgotten — it is wrong. The definition of corruption:

[D]ishonest or illegal behavior especially by powerful people (such as government officials or police officers)… inducement to wrong by improper or unlawful means (such as bribery) the corruption of government officials.

Tufte Sparklines - Micro Visualizations with AtF Spark

Update: Some content blockers prevent web fonts from loading. If you’re seeing things on the page that look like this instead of a bar or dot chart - 123{10,20,30,40,50,60,70,80,90,100}789 - then the fonts are not loading.

After the Flood (AtF) Spark is a collection of web fonts you can use to implement sparklines, an Edward Tufte visualization concept:

Data can be hard to grasp – visualising it can make comprehension faster. Sparklines (tiny charts in text, like this: 123{10,20,30,40,50,60,70,80,90,100}789) are a useful tool but creating them for the web has always required code. Removing the need for code makes it more accessible. If you can use type, you can use Spark.

This is very cool.

Examples of the types of charts supported (just to illustrate what AtF Spark can do – these are not necessarily the most appropriate ways to represent the information selected):

Apple's stock price has fluctuated 65.07{42,47,76,63,79}153.14 over the past five years.
But it has grown strongly 19.34{8,12,8,18,31,42,47,76,63,79}153.14 over the last ten.
Going back just a few more years 2004{1,3,7,8,12,8,18,31,42,47,76,63,79}2017 it's even more dramatic.
Atmospheric CO2 (ppm) over the past ten years 383{94,95,95,96,96,97,98,98,99,100}404 has recently topped 400.
Since 1959 316{78,78,79,79,79,80,80,81,81,81,82,83,85,87,89,91,93,94,95,95,96,96,97,98,98,99,100}404 it has risen over 27%.
Over the last 10,000 years 265{2,2,1,2,3,4,4,4,4,9}404 it has increased by more than half.

To use AtF Spark on your website:

  • Download the fonts from here.
  • Copy them to a folder that your web server can access.
  • Set up your CSS as follows, with the correct path to the font file in the @font-face src attribute:
/* spark-medium-bar */
@font-face {
  font-family: spark-bar-medium;
  src: url('css/spark-bar-medium.woff');
  font-variant-ligatures: contextual;
  -moz-font-feature-settings: "calt";
  -webkit-font-feature-settings: "calt";
  font-feature-settings: "calt";

span.barchart {
  font-family: spark-bar-medium;

/* Add the rest of the chart types you'll need here... */
  • Embed a chart on your website like this:
<span class="barchart orange-red-text">

Not sure I could have gotten this working without help from Paul Bradshaw. See his sample code for more details.

iOS 11 Control Panel Does Not Always Do What You Think

From Vice, “Turning Off Wi-Fi and Bluetooth in iOS 11’s Control Center Doesn’t Actually Turn Off Wi-Fi or Bluetooth”:

Motherboard tested this behavior on an iPhone with iOS 11 installed and verified that Bluetooth and Wi-Fi remain on in the settings after turning them off in the Control Center, as some users have started to notice.

I had thought the toggle buttons in control center did what they appear to do and what they had done in previous versions of iOS. This is a non-obvious and misleading change in functionality.

Turning off these radios have legitimate purposes. For example, where I live, my Internet speed can fluctuate wildly. When it’s bad, I use Control Center to turn Wi-Fi off so that my iPhone will automatically switch to LTE for data. This is a pretty common use-case. Now read this:

It’s worth mentioning that both Bluetooth and Wi-Fi will become active again when you toggle them off in the Control Center at 5 AM local time, according to Apple’s documentation.

So if my Internet service is flaky and I turn Wi-Fi off to use the phone’s cellular connection for Internet access in the middle of the night to finish a download or have my email updated (things I sometimes do), this may no longer work. iOS will flip these settings back and it may be before all that data is received.

Having Control Center behave differently than expected is frustrating, and it’s worse that the settings are also temporary. To turn Wi-Fi and Bluetooth off completely, you now can only do this in the Settings app. Apple must think keeping these radios on when possible is valuable, but I think they should not have changed this. Users should determine when they want these components operating or shut off and be able to do it as easily as before.

John Gruber and Dave Mark have more details about this change and are worth reading.

Advertising Groups Complain About Safari Browser Update

From Adweek, the advertising industry is in a tizzy about Safari’s new Intelligent Tracking Prevention feature:

“Apple’s unilateral and heavy-handed approach is bad for consumer choice and bad for the ad-supported online content and services consumers love,” according to a copy of the letter obtained by Adweek this morning. “Blocking cookies in this manner will drive a wedge between brands and their customers, and it will make advertising more generic and less timely and useful. Put simply, machine-driven cookie choices do not represent user choice; they represent browser-manufacturer choice.”

Advertising companies serve ads that are garish, pop up over content, are hard to navigate around, sometimes impossible to dismiss, are security threats, and yes, drop scripts and cookies on our devices surreptitiously to track everything we do on the web. To see them complain about being treated unfairly is incredible.

Advertisers have been abusing all of us for years. Fuck these people.

In case you didn’t know (this is not news):

“Ad tracking technology has become so pervasive that it is possible for ad tracking companies to recreate the majority of a person’s web browsing history,” according to an Apple spokesperson. “This information is collected without permission and is used for ad re-targeting, which is how ads follow people around the Internet.”

When Apple opened iOS 9 to allow content blockers, advertisers bitched pretty loudly then as well. I think any time these companies complain, it means something good is happening.

More Words of a Coward

Yesterday, a day after I wrote Words of a Coward, Trump did a nearly complete reversal of his forced and delayed statement on Monday in which he explicitly called out white supremacists for what happened in Charlottesville on Saturday. He undid whatever small bit of good he might have managed on Monday, doubled down on his moral equivalence of both groups of protestors, and re-emphasized his ignorance.

Just read how the following people, all of whom are aligned with Trump politically, responded. The white supremacists are on his side, and the politicians in his own party are not. There is no better illustration of how wrong Trump is right now.

Statements by Those Who Are or Appear to Sympathize With White Supremacists

David Duke, leader of the Ku Klux Klan:

Thank you President Trump for your honesty & courage to tell the truth about #Charlottesville & condemn the leftist terrorists in BLM/Antifa

Richard Spencer, president of the National Policy Institute, a white nationalist think tank:

I’m proud of him for speaking the truth.

Tim Gionet, aka Baked Alaska, alt-right Internet troll:

Thank you President Trump for condemning the alt-left antifa thugs who attacked us in Charlottesville.

Ann Coulter:

We were Gideon’s army without Gideon. Today, we got our leader back! @realDonaldTrump press conference:

And recall that on Monday the neo-Nazi site Daily Stormer wrote:

Trump comments were good. He didn’t attack us. He just said the nation should come together. Nothing specific against us… No condemnation at all. When asked to condemn, [Trump] just walked out of the room. Really, really good. God bless him.

Statements by Republican Politicians and Commentators

Senator Marco Rubio:

Mr. President,you can’t allow #WhiteSupremacists to share only part of blame. They support idea which cost nation & world so much pain 5/6

Senator John McCain:

There’s no moral equivalency between racists & Americans standing up to defy hate & bigotry. The President of the United States should say so.

Senator Jerry Moran:

White supremacy, bigotry & racism have absolutely no place in our society & no one - especially POTUS - should ever tolerate it.

Senator James Lankford:

Our words must not create confusion. The supremacy of any race is abhorrent, unAmerican & should be condemned by everyone. Full stop.

Senator Thom Tillis:

When it comes to white supremacists & neo-nazis, there can be no equivocating: they’re propagators of hate and bigotry. Period.

Representative Paul Ryan, Speaker of the House:

We must be clear. White supremacy is repulsive. This bigotry is counter to all this country stands for. There can be no moral ambiguity.

Representative Steve Scalise, House Majority Whip:

I was clear about this bigotry & violence over the weekend and I’ll repeat it today: We must defeat white supremacy and all forms of hatred.

Representative Steve Stiers, chair of the National Republican Congressional Committee:

I don’t understand what’s so hard about this. White supremacists and Neo-Nazis are evil and shouldn’t be defended.

Representative Ileana Ros-Lehtinen:

Blaming “both sides” for #Charlottesville?! No. Back to relativism when dealing with KKK, Nazi sympathizers, white supremacists? Just no.

Representative Justin Amash:

“Very fine people” do not participate in rallies with groups chanting racist and anti-Semitic slogans and displaying vile symbols of hate.

Eric Cantor, former Virginia congressman:

“It really did demand a statement at the very beginning,” said Mr. Cantor, who is Jewish. He added that efforts by the president to equate the actions of the counter-protesters, however violent they may have been, with the neo-Nazis and the driver of the car that murdered a protester were “unacceptable.”

Charles Krauthammer:

What Trump did today was a moral disgrace.

Are things ever much clearer than all this?

About the Violence “On Many Sides”

If you agree with Trump in thinking there was equal blame on both sides for the violence in Charlottesville on Saturday, maybe you’re overlooking the larger issue:

On one side, you see, you have white nationalists and neo-Nazis carrying assault weapons and advocating for a white, Christian, fascist ethno-state in America. On the other side, you have people who would prefer not to be systematically exterminated. Both are equally bad!

People from both sides assaulted each other, and there is blame to go around for these skirmishes. But the much larger issue, which Trump seems to want to bury, is that our president and the “alt-right” (or whatever you want to call them) have provided cover for this disgusting reaffirmation and public display of bigotry and hate rooted in a long history of white supremacist terrorism in our country.

Watch this Vice documentary, “Charlottesville: Race and Terror” to see what these white supremacist scumbags really think about violence, their objectives in inciting it, and their twisted, historical justifications. Amazingly, if you’re Donald Trump, you are apparently still willing to defend these people even after seeing things like this:

Chris Cantwell, a white supremacist leader, told Vice News that he wanted a president who “does not give his daughter to a Jew.”

Lost in all of this, lest we forget, is that it was a white supremacist who drove a car into the crowd of counter-protesters in Charlottesville, killing a woman, Heather Heyer, and injuring twenty other people. That is terrorism. Had a Muslim done the same thing in the name of ISIS (or anything else), Trump would have tweeted about it and his supporters would have jumped on it, all within a couple of hours. To watch Trump claim yesterday that he was being prudent by waiting for all the facts is laughable. Does he typically hold his fire after a terrorist event? Actually, he does – when a white man is the perpetrator. Remember the white supremacist who stabbed and killed two people in Portland last May? Or the white supremacist who murdered nine people in a Charleston, SC church? Or the white man who shot two Indian men in a Kansas bar in February, believing they were Muslim? In each case, Trump was silent for hours or days before tweeting a tepid response.


Take all the feedback from across the political spectrum, along with Trump’s other actions, the people he’s put in his administration, the policies he is pursuing, what he says, what he ignores, and what actually happened in Charlottesville, and you can only come up with one explanation: Trump is, at a minimum, sympathetic to these white supremacist groups. You don’t have to wonder about it because he is not hiding it.

What will our Republican leaders do now? If making statements this week is all they accomplish, we’ll be talking about all of this again, in response to probably a more violent incident in another city (though I truly hope not), in the very near future. That might be the best-case scenario.

Dreamhost Fighting DOJ Warrant for Info on Anti-Trump Protesters

I want to get back to writing more about technology issues, I really do. But our current political climate is compelling me to respond, and I’m on a roll. Plus, the following is also related to technology…

Dreamhost is fighting a Department of Justice request for user IP addresses:

The request from the DOJ demands that DreamHost hand over 1.3 million visitor IP addresses — in addition to contact information, email content, and photos of thousands of people — in an effort to determine who simply visited the website… That information could be used to identify any individuals who used this site to exercise and express political speech protected under the Constitution’s First Amendment. That should be enough to set alarm bells off in anyone’s mind.
This is, in our opinion, a strong example of investigatory overreach and a clear abuse of government authority.

Dreamhost hosts the targeted website,, which was used to organize protests at Trump’s inauguration.

We don’t know exactly what is in the affidavit filed with the Superior Court of the District of Columbia or what the DOJ’s objectives are. More information will no doubt come out about this in the coming days.

The preliminary look at this makes one wonder what the DOJ is up to. The Electronic Frontier Foundation:

No plausible explanation exists for a search warrant of this breadth, other than to cast a digital dragnet as broadly as possible. But the Fourth Amendment was designed to prohibit fishing expeditions like this. Those concerns are especially relevant here, where DOJ is investigating a website that served as a hub for the planning and exercise of First Amendment-protected activities.

How to Roll Back Fanaticism (@nytdavidbrooks)

David Brooks:

Donald Trump is the perfect snake oil salesman for this moment…. He took a nation beset by uncertainty and he gave it a series of “explanations” that were simple, crude, affirming and wrong… Everything could be blamed on foreigners, the idiotic elites… The true link between the Trump administration and those pathetic loons in Charlottesville is not just bigotry, but also conspiracy mongering.


I’m beginning to think the whole depressing spectacle of this moment — the Trump presidency and beyond — is caused by a breakdown of intellectual virtue, a breakdown in America’s ability to face evidence objectively, to pay due respect to reality, to deal with complex and unpleasant truths. The intellectual virtues may seem elitist, but once a country tolerates dishonesty, incuriosity and intellectual laziness, then everything else falls apart.

Dishonesty, incuriosity and intellectual laziness. It is epidemic.

We are blasted by information on social media, good/bad, true/false, real/fake, witty memes… Birthers, Pizzagate, Sandy Hook a false flag operation, record turnout for the inauguration, and on and on. There are those on both sides who propagate incendiary information with others, but the political right has simply gone nuts pushing pure mythology over the past decade.

“Fake news,” information created to look like a real story with the intent to deceive, is a term Trump and others, especially (though not exclusively) on the right, have co-opted to mean something they just don’t like. Yet they, and Trump especially, promote ideas that have been thoroughly debunked all the time. They weaponize bullshit for their political aims.

If some politician or point of view that one disagrees with is so bad, there is usually plenty to criticize that is actually true. Unless you’re dishonest, why not stick with that?

Very few people take the time to vet information before sharing or believing it. Yet a lot of stories are easy to verify. If we each took the couple minutes necessary to debunk some of the outrageous things that pop up on our screens every week, we would not be susceptible to being fooled. I was amazed recently when someone I know well told me about a news item she had just read on Facebook. I asked her how she knew that it was true. Blank stare, followed by, “Huh?” She didn’t search for corroborating reports or any confirmation, just took what she read as being valid.

It’s especially despicable when the people promoting fake stories put themselves on the moral high ground. If you claim to have some belief in morality, especially if it’s through your faith, then why would you share stories that might be or that you know are lies? How can you convince yourself that you’re of sound character? Don’t answer. Just look in the mirror. Don’t be another person who deals in falsehoods, intentionally or otherwise. Make the buck stop at your own keyboard. Make an effort at honesty.

The Words of A Coward

Words matter. What is not said matters as well. Trump found some words this weekend for the violence in Charlottesville:

We condemn in the strongest possible terms this egregious display of hatred, bigotry and violence, on many sides. On many sides. It’s been going on for a long time in our country. Not Donald Trump, not Barack Obama. This has been going on for a long, long time.

“On many sides… for a long, long time.” A cop-out. And the words left out: any mention of the perpetrators, the issue, even the name of the city.

Then, our president found more words. Given the context, these strayed into the bizarre:

Our country is doing very well in so many ways. We have record – just absolute record employment. We have unemployment, the lowest it’s been in almost 17 years. We have companies pouring into our country. Foxconn and car companies, and so many others…

A failure to clearly condemn the antagonists, wrapped up with ego-stroking talking points about his presidency.

Maybe we who expected more are the fools.

More significant, Trump failed to acknowledge the terrorist attack several hours later in which a man drove a car into the crowd of counter-demonstrators, killing one woman and injuring nineteen others. Contrast the lack of any response by the president with his hair-trigger tweeting about past terrorist attacks carried out by Islamic extremists or even suspected extremists, whose tactics this killer in Charlottesville copied.

Among our Republican leaders, the immediate response to Charlottesville was tepid or non-existent, though there were some exceptions, some directed right at Trump.

Senator Corey Gardner of Colorado:

Mr. President - we must call evil by its name. These were white supremacists and this was domestic terrorism.

Senator Marco Rubio of Florida:

Very important for the nation to hear @potus describe events in #Charlottesville for what they are, a terror attack by #whitesupremacists.

Senator Ted Cruz of Texas:

I urge the Department of Justice to immediately investigate and prosecute today’s grotesque act of domestic terrorism.

Even Anthony Scaramucci (remember him?) laid into Trump:

I think [Trump] needed to be much harsher as it related to the white supremacists and the nature of that… I applaud General McMaster for calling it out for what it is. It’s actually terrorism. Whether it’s domestic or international terrorism, with the moral authority of the presidency, you have to call that stuff out.

Courage, we know, means doing what should be done – what is right – despite the repercussions. Trump and many Republicans are simply cowards. Keeping their political support is more important than speaking out for what is right. The best case you can make if you don’t believe they agree with these hate groups is that Trump was treading very gingerly by his silence in order to avoid alienating the vile constituency in his base which includes the “alt-right,” the bigots, the KKK, the neo-Nazis.

Like many politicians, Trump is a candidate for the canonical example of someone we, in the days of our misguided youth, would call a pussy.

White supremacists noticed all of this. They took comfort in Trump’s equivocation. The neo-Nazi Daily Stormer website wrote:

Trump comments were good. He didn’t attack us. He just said the nation should come together. Nothing specific against us… No condemnation at all. When asked to condemn, [Trump] just walked out of the room. Really, really good. God bless him.

At least they got it. Many right-wing apologists would not. Mike Huckabee, for example, said with a straight face:

Donald Trump, I thought, was very explicitly clear in condemning what happened.

But Trump wasn’t explicit, clear, or “very explicitly clear.” Huckabee, Vice President Pence, Attorney General Jeff Sessions, and others all cited a follow-up statement attributed to an unidentified “White House spokesperson” to prove the intent of Trump’s previous remarks. Trump, however, actually remained silent about it.

John Kasich almost nailed it, but let us down by referring to “a lot of people” which, presumably, included the president:

There are a lot of people who are just not comfortable with the issue; perhaps they are afraid it would aggravate their base.

David Duke, however, the leader of the KKK, was not about to miss:

I would recommend you take a good look in the mirror & remember it was White Americans who put you in the presidency, not radical leftists.

The KKK… good company, eh?

This afternoon, after blowback from all sides of the political world, Trump read a prepared statement from the teleprompter. Had he the stones on Saturday to stand up tall and deliver what should have been the easiest speech anyone on his team could have conceived, for a situation for which it was so appropriate, despite the certain disappointment from the minority of his supporters who hide in the shadows and stoke fear and bigotry among themselves and lesser humans, he could have risen above this and begun to unite the decent among us. But being two days late to respond, his words were wasted. His words rang hollow, like a reluctant apology from an impetuous kindergartener who was caught pulling another kid’s hair and realizing there would be no snack time:

Racism is evil, and those who cause violence in its name are criminals and thugs, including the KKK, neo-Nazis, white supremacists and other hate groups that are repugnant to everything we hold dear as Americans. We are a nation founded on the truth that all of us are created equal. We are equal in the eyes of our creator, we are equal under the law and we are equal under our constitution. Those who spread violence in the name of bigotry, strike at the very core of America.

Lest anyone think that was Trump finally metamorphosing into an adult, he soon followed it up on Twitter with this:

Made additional remarks on Charlottesville and realize once again that the #Fake News Media will never be satisfied…truly bad people!

Yes, the media jumped all over him, as did politicians in his own damn party, and continued piling on. And Trump, this hollow man, this shell of a leader, yet the most powerful man in the world, got on Twitter and whined, as he typically does. An imbecile. He cannot rise above the fray and lead us to a better place. His best moves are to hunker down, sulk, and hurl insults. Any time he is presented with the opportunity to rise up, he goes low.

The right words, and all of them. They were there on Saturday. Trump could have used them then, the obvious words that everyone saw. But he chose to ignore them. Two days later, those same words fell like duds.

The words of a coward. They always end with shame.