I Am Finley

Truth matters. Words matter.


Truth matters. Words matter. Without meaning, words are pointless.

When you hear “school shooting”, yesterday is what comes to mind. And yesterday was terrible. Seventeen dead. And it took just minutes for the media to start talking about ways to prevent this, both sides having their piece, their take. Before the bodies are even buried, before most parents even knew their kid was one of the dead ones, we are calling half the country evil for supporting gun rights.

The statistic being quoted by many last night and this morning is that in 2018, a year that we are only some forty days into, has seen eighteen school shootings, referring to the reporting from a group called Everytown for Gun Safety. That is truly an appalling number. 18 school shootings. When you hear “school shooting”, yesterday is what comes to mind. And yesterday was terrible. Seventeen dead. But yesterday is not what Everytown is calling a school shooting. They are counting all shootings at schools or involving schools. Truth matters. Words matter. Without meaning, words are pointless.

So what does this reporting from Everytown mean? Eight of those eighteen resulted in no injuries or fatalities. Two were suicides, one in the parking lot and one in the bathroom at a school. One was a gun fired unintentionally, no one hurt. Of these eighteen incidents, three people were killed— not including the two suicides— and roughly 30-35 were injured, according to The Daily Wire.

We all wish that yesterday was one bad day out of a million good days. We all wish we had a billboard that counted the days from the last school shooting and it had been at 30 years. But when “we include suicides, accidental discharges, purposeful shootings without injuries, and purposeful shootings without only ‘superficial’ wounds” as school shootings on par with what happened yesterday our words lose meaning. We become numb. Yesterday was just another school shooting. That was the new normal. But it isn’t. It isn’t the new normal.

Truth matters. Words matter. I hope that you agree.


In the Shithouse


As Republicans defend President Trump's language once more, I stand over here as a conservative without a party. These fake, ambulance-chasing Republicans are trying to defend a sitting president using language we wouldn't want our children repeating. I said after the election that I couldn't vote for President Trump because "I couldn't explain that to my daughter". I can't agree with them. This language is inappropriate for a world leader to be using to describe our allies.

But the Left wants this— too— to be about racism. It has to be about one of their -isms or -phobias. It always has to be. Why? Is it because victim identity is the new sacred? Had he called Norway, a predominantly white nation, a shithole, would so many Leftists be offended? Would they think he's talking about race?

I don't agree that this is about race. No, I think this is a case of a man that lacks control of his tongue. He described a poor, third-world nation as a shithole. He described a nation, not the people. Yes, there are, to quote a tweet, brown-skinned people living there. But it's a nation that you see no one aside from missionaries choosing to spend their vacation days on.

So you might read the above and think I agree with the term as an adequate word to describe these nations, if one is not the President of the United States. And you might be right. But my church sends a lot of money to these nations, bringing food, water, and the Gospel of the Living God to these people. My God redeems prostitutes, dines with tax collectors, and makes the poor rich. The shitholes are just as much His as are the bastions of freedom and wealth.

In my opinion, is not our government's job to raise these people out of poverty, clothe them, feed them, and give them water. But, Christian, it is yours.


Paid the Price


A young man was talking to me at church on Sunday about sports. He was bewildered that people pay to watch football when all the outcomes are planned ahead of time.

This got me thinking. Our Lord knows the outcome of every play in our life. Every misstep, every mistake, every error, every foul. Every success, every friendship made, every life saved, and every victory until time ends.

Yet, He paid the price so that we can play.


Tribalism and Roy Moore


Roy Moore lost, not because Alabamans are stupid. Roy Moore lost because Roy Moore was a terrible candidate with child molestation allegations hanging round his neck. Moore should’ve been better vetted, one. But also abandoned when credible allegations came forth. Because it turns out some Republicans couldn’t stomach voting for a man accused of getting handsy with an underage girl. Yet this is somehow surprising to red-eyed morons convinced just being against the Democrats is a winning strategy. Roy Moore lost because too many egotistical Republicans in high places overestimated the power of tribalism: “Moore has an (R) after his name, ergo #MAGA and screw the libtards!”

Just “being against the other tribe” didn’t work in Alabama. It won’t work nationwide in 2018 either. Or 2020.

Courtney Kirchoff

Conservatives, you had better hear this. I know many that voted for Roy Moore did so because of the two-party system, because of the “lesser of two evils”. But many more did so because he was a Republican. But running as a Republican shouldn’t be enough.

We are a party of ideas. We are a party of ideals. This man had heavy allegations hanging from his neck. Same with Trump. It’s why Trump was close to not winning. Literally anyone could have beat Hillary. But we picked the most polarizing, most offensive, worst candidate in recent history.

We need to learn to vet our candidates better and when shit comes out, we need to push them aside. Trump’s famous recording should have been that moment for him. These allegations, once credible, should have been the moment we pushed Roy aside.

We will lose in 2018 and 2020 if we do not get away from tribalism.


Fascism: Is it Right or Left?


What Are You Doing to Stay Away from Echo Chambers?


If you’re a conservative in tech, it is next to impossible to live in an echo chamber.

Over the last week, my Twitter timeline exploded with rage over the two big GOP topics of the week: net neutrality and the big tax bill. If I was to believe my timeline, these two items were doomsday-grade events. There was no way that a human could stand by this massive tax bill or against net neutrality. Not a single dissenting voice.

Sometimes this is a real sign that something is truly important and should be stood for or against. Sometimes this is a sign of a lack of diversity in thought or ideology in your news feed.

Seeing all these voices — voices that I greatly respect — freaking out over the tax bill, I started to wonder if the GOP had truly jumped the shark. So I went to a few major news sources and a few minor ones. I sought answers and tried to understand the facts from my worldview. And found myself agreeing with the majority of the included items, while also understanding how others would see these as bad.

Echo chambers exist when we surround ourselves with a homogeneous group of voices. As a conservative, it is next to impossible to live in an echo chamber. If you want to follow anyone in tech that matters, you’re going to hear opposing views on political matters.

What are you doing to stay away from echo chambers?


The Web, at Its Best, Should Be Resilient


The web, at its best, should be resilient. Nothing warms my heart more than a 20 year old page that’s still kicking, a 10 year old link that redirects properly onto a completely new domain or platform or a modern site that can serve something useful to a 15 year old browser. To me, that’s the web at its best.

HTML + CSS + Javascript

Someone replied to my big #bbd17 post yesterday about my advocating for sites that work in IE 6. To note, it’s the quote above that this is in reference to.

As a front-end web developer, I do not test regularly in IE 6. I haven’t tested in IE 6 in a very long time. However, I write structured HTML that can be displayed without CSS. I write JS that isn’t necessary for the display and functionality of the page. So these things gracefully degrade.

No, my pages are not pixel-perfect in 15 year old browsers. But the content is accessible.


Best Viewed in Chrome: Web Standards in 2017 #bbd17


This year we saw Groupon, Spotify, and DirecTV decide to only support Google Chrome. For the web standards crowd, that should enough of a rallying cry for the cause. But how did we get here? Does anyone give a shit anymore?

Last year, Jeffery Zeldman wrote:

Many web developers have “moved on” from a progressive-enhancement-focused practice that designs web content and web experiences in such a way as to ensure that they are available to all people, regardless of personal ability or the browser or device they use.

And this is the foundation for what has happened. Many web developers have moved on from Progressive Enhancement. Supporting multiple browsers is much easier with Progressive Enhancement. You rely on the error recovery that HTML and CSS provides. You build on that. Layout your page for your Lowest Common Denominator. Mobile. Then, if CSS Grid is available, enhance the layout. Provide a zip-code-based location lookup tool. Then, if the Geolocation API is available, add a button to use your location.

This was one of many big pushes of the Web Standards movement. Before the Web Standards movement, "Best viewed in Internet Explorer" was a common badge. Developers would choose to only support and test for one browser and, often, block anyone coming from different browsers. As I wrote in June, I remember when I first got my Mac in 2004, many sites blocked me altogether. IE 6 didn't exist for Mac and many sites required it.

So what? “What’s so bad about only supporting Chrome?”, you may ask. It represents over 75% of web traffic, right? So did Internet Explorer back in the day. That would be the same argument many used at that time. Back in that day, there were major feature differences between IE and Firefox/Netscape. Because standards didn’t exist, Internet Explorer and its competitors invented new features. Lots of new features. The features that were the same were often implemented differently. So supporting multiple browsers required lots of effort depending on what you needed. IT departments would prevent employees from installing other browsers and then build internal applications to run on IE only. But IE wasn’t available everywhere. My Mac couldn’t access my bank’s website in 2004 unless I set it to spoof the IE user agent. So the features that the bank needed were supported in Safari, but they had a block for browsers other than IE. If I didn’t know how to change my user agent, I’d have been blocked by something as important as accessing my bank.

Today, Edge, Firefox, Chrome, and Safari are relatively the same. Build something for Safari and it will mostly just work in Firefox. I built a project this Fall that took two months worth of work to build and only a couple hours to fix a few minor things in Firefox and IE/Edge. No big deal. But if I want to access the desktop site for Spotify on my 13" iPad Pro, they block it. I cannot install Chrome. Or Firefox. On iOS, my only option is Safari.

Support any user, no matter what browser they have. That is the job of a web developer. A user running IE 6 should be able to still view your website built in 2017. It may not have all the bells and whistles, but it should work. Because the web browser has great error recovery. A user that has JavaScript turned off and a screen reader reading the content of your site to them should be able to access your site. Unless you can make an argument that a feature is an absolute must, you should be progressively adding it.

So we are coming full circle. Overuse of JavaScript. Using JavaScript to build static, undynamic, barely-interactive websites. Supporting only certain browsers for no technical reason. Best viewed in Chrome.

We— those that believe in Web Standards, those that fought in the first battles and pushed our fellow developers to learn more and produce more inclusive, accessible, cross-platform websites— we need to stand once again for Web Standards. We need to make it clear what the best practices are and fight against the bad practices where we work. There are no excuses in 2017. Web development has gotten easier. Forking code for multiple browsers is significantly less necessary today. Changes are, usually at best, a few hours of work for big projects. No excuses.


Experiments in CSS Grid #bbd17


Two years ago when Web Tools was released, CSS Grid was not supported in its current form by any browser. Now it is supported by all of them. But, in my opinion, unlike most features of CSS that have come before, Grid needs some good tooling around it to help ease work with it in development. So I have started to work on some tools to help with Grid and along the way, I have been dabbling a lot with Grid.

Below is a basic experiment: reproduce the layout of the new App Store on iOS. Along the way, I also found good use for CSS Custom Properties — Variables. I hate that they aren’t called variables. — in setting the background of articles, the background and text color of the text block on each, and more.

CSS is getting more and more powerful. But, along the way, it is getting more and more simple. Where old layout techniques (tables, floats, flex box) were truly ill-suited for layout, CSS Grid is 100% made for layout. So go, dabble with Grid. Grab a comic book and reproduce the layout. Or a poster from the 70’s. Learn the ins-and-outs of it because this is the future of where front-end web development and web design is.


What the hell are we doing here?


I don’t want to be the neophobe in the room but I sometimes wonder if we’re living in a collective delusion that the current toolchain is great when it’s really just morbidly complex. More JavaScript to fix JavaScript concerns the hell out of me.

Dave Rupert

I've been feeling this hard lately. When we are talking something like WordPress, we care about a few metrics. Page load speed and size being the primary. Memory usage and performance on server matter, but often — sadly – much less.

However, when we are talking the client, the browser, much more should matter.

I am responsible for the code that goes into the machine, I do not want to shirk the responsibility of what comes out. Blind faith in tools to fix our problems is a risky choice. Maybe “risky” is the wrong word, but it certainly seems that we move the cost of our compromises to the client and we, speaking from personal experience, rarely inspect the results.

Yeah, we also rarely analyze the browser memory usage or repaint counts of our pages. I had my laptop fan turn in this morning as I quickly opened a half a dozen tabs from ComicBook.com and they all auto-loaded dozens of trackers and started playing video. Each tab. Safari instantly ran up gigs of memory and my CPU hated me.

But this is modern web development. Who gives a shit anymore?