I Am Finley

Dabbling

0 Comments

I’m opinionated. If you’ve worked with me or hung out with me for any period of time, you know this. I’ve been building for the web since 2001, before JavaScript libraries, before CSS, before Web Standards. That is a lot of years of experience and with it, one learns a few things. The Standards movement was a major thing just as I was getting started freelancing. jQuery was just coming about as I entered and assisted in teaching a JavaScript class in college. Responsive Web Design was coined and defined as I started my first role at an agency in Chicago.

One learns a few things.

Of the last few years, I have pushed hard against using jQuery. Simply put, most browsers have solid support for new technologies that emulate many of the great features of jQuery. Those native features do it faster, better, and require less code. Remove jQuery and you remove 30+kb of resource load.

I have pushed against Bootstrap. It is a large beast of a library when most sites that include it use it for a grid system and not much else. A grid system can be written in less than 100 lines of CSS that’ll achieve the needs of your site specifically, so why include 200+kb of resources?

I have pushed against WordPress. It’s not good for the developer and offers a not-great experience for the client. There are better CMSs.

So this Summer and Fall, I decided to dabble.

I hadn’t built a website on WordPress in many years. The last one I built was before ACF took off. So I built a client a site in WP and I didn’t hate it. Much of what I have said against WP remains true. Especially after launching a large site on Craft earlier this year. But, for what it does well, it does well. Build a couple of custom plugins was a breeze. ACF made storing complex data from two third-party sources easy and displaying it easier.

I have never used Bootstrap but always maintained that it is best suited for prototyping and administration panels. So as I started building an admin panel for a current project, I decided to try Bootstrap. And I didn’t hate it. There are parts that I won’t touch. The grid system is actually one of them. The spacing utility classes, while useful if you are not writing a lick of CSS, are another. But, the component structure isn’t far from something like Atomic CSS and is actually a welcome thing for the needs of the project. Unfortunately, it requires that the page resources weigh over 300kb, which means I will likely scrap Bootstrap in a few weeks and rewrite with my own CSS.

We must, as developers, not become set in our ways and get dogmatic about certain things. There are things that we should be more opinionated about than others. I wasn’t necessarily wrong with either WordPress or Bootstrap. But, now that I have worked more with each, I can see the lure of them when it comes to getting something done quick and dirty. Atop that, I now have a more solid argument against some points of them.

So if you haven’t dabbled with something in a while or at all, maybe try. You may learn a few things.

Permalink

Declining Complexity in CSS

0 Comments

But the core principles and mechanisms [of CSS] are no more complicated than they were a decade or even two decades ago. If anything, they’re easier to grasp now, because we don’t have to clutter our minds with float behaviors or inline layout just to try to lay out a page. Flexbox and Grid (chapters 12 and 13, by the way) make layout so much simpler than ever before, while simultaneously providing far more capability than ever before.

Eric Meyer

I built my first couple of layouts with Grid over the last weeks. Hot dog. Things that would have taken me forever with floats took me just a couple lines of code with Grid. I’ve been using Flexbox for a while, to the point of mostly knowing the syntax, but Grid is a brand new beast.

It is astonishing that we have, for almost 20 years of CSS, never had a native layout system. Now we do. Instead of complex (and large) libraries like Bootstrap, we can now do complex layout with simple syntax. Hell, we can do far more complex, asymmetric and two-dimensional layout with Grid that we would never consider doing before. A renaissance in web design is coming. But are front-end developers up to snuff?

Permalink

Progressive Enhancement

0 Comments

The subtle difference between progressive enhancement and graceful degradation is lost on too many. Many of those that support “mobile first” don’t support progressive enhancement, which is an oxymoron.

Mobile first is progressive enhancement. Start with the most important part of any site: content. Mark it up. Semantically. Why? Because some readers experience your site without CSS. It’s true. Some just want the content. Screenreaders and search engines are the largest of these.

Then style the content. That’s the CSS. Mobile first says start with the LCD, the Lowest Common Denominator: mobile. But make sure that your CSS works in the LCD. That might be IE 9. It might be IE 11. Look at your analytics if possible. Progressive enhancement means add features when available. Progressively enhancing. You see? So if you are using a feature that is only available to IE 11 and better (Chrome, Firefox, etc.) and you need to support IE 9, make sure that the feature is not necessary for the user experience.

Then JavaScript. Understand that some have JavaScript disabled. Whether it be over-cautious IT departments, search engines that cannot handle rendering and parsing JavaScript, users with bad network connectivity that fails to load it, or most importantly screenreaders that help those with handicaps consume the content of the web. JavaScript is an enhancement. So long as you have the last two components set, your page works fine when JS is turned off. So, as features are available, use them.

But see, too many developers these days have abandoned this methodology that fueled the Web Standards movement. Instead, sites require over 300 kilobytes of JavaScript libraries and don’t load anything if JavaScript is disabled. Instead of starting with content, they start with jQuery, Angular, React, or whatever the library de jour is. Everything is built in JavaScript. This is graceful degradation, start with the Greatest Common Denominator. Except many aren’t even testing for the LCD. They aren’t turning off JS to make sure that their site will work for those that disable JS. Often they even break the most basic components of the web browser: the URL and the back/forward buttons.

We need to get back to progressive enhancement as the standard. We need to get back to the promise that the web is accessible to all, no matter the device they use.

Permalink

Is there any value in people who cannot write JavaScript?

0 Comments

When every new website on the internet has perfect, semantic, accessible HTML and exceptionally executed, accessible CSS that works on every device and browser, then you can tell me that these languages are not valuable on their own. Until then we need to stop devaluing CSS and HTML.

Mandy Michael

Preach! It’s all I see these days in job descriptions. JAVASCRIPT! Ninja preferred. Rockstar acceptable. And then they produce crap frontend code. Their HTML and CSS is restricted to Bootstrap at best, custom crap with style attributes all over the place at worst. When I was their age, the emphasis of frontend was on the other side of the triangle: HTML and CSS. Without these, your JavaScript means nothing. Even if you are embedding your CSS and HTML in your JavaScript. Shudder.

Permalink

Faux Columns

0 Comments

Remember faux columns? I just did equal-height columns with flexbox yesterday. The old days sucked.

Now if we could just convince the kids to stop putting HTML and CSS inside the JavaScript…

Permalink

Words on Charlottesville

0 Comments

I have remained silent for the last week on the matters in Charlottesville. This was a choice, not a lack of concern, a lack of thoughts, or a mistake. I broke that silence last night. I have words. This is for the Christians. Not that this is not relevant for everyone, but this is for the Christians.

Church.

We need to condemn racist language, thoughts, and actions with the strongest words within our walls. Within the Blood, we cannot allow these ideologies. Not white power. Not black power. Not any race above any other. Let me make this clear. This is not welcome in the Church. It is heresy. Elders, this is your job. Come alongside those that speak or think these ideologies and correct them. Church discipline is needed here.

We are all of the bloodline of Adam. Every one of us. We are all of the bloodline of Noah. Every single one. Jesus died to cover the sins of the bloodline of Noah and Adam. That includes everyone. Racism has no place in the Gospel of Jesus Christ. None.

Brothers and Sisters.

The world is not covered in the Blood. Your enemy may not know Jesus. But you do. When you were yet a sinner, Jesus came and died for you. You were worse than a filthy rag. You were the worst of the worst. Jesus had no reasonable reason to love you, yet he did. That is what we are called to, brothers and sisters. Love. Love without rhyme or reason.

In the last week I have seen many of you advocating for violence against both sides. I get it. Antifa has done horrible, violent things. The alt-right has done the same. Vengeance is not yours, though. Let the law punish those that break it. No matter if you advocate for violence against those that commit violence or those that offend with words, you are wrong. You are. You are no better than the fascists and the communists last weekend.

Except you should know better.

Here is my advice. The only thing that can eradicate this present darkness is the Light. So let it come out into the light. This is an extreme minority. It serves no threat. So let them speak. Evil has a way of looking uglier when light is shined on it. But love the people. We are called to love the oppressed. Both of these groups feel oppressed. Whether they are right or wrong, show them love. Walk them to Jesus. You punch them, and you will not be serving Christ, but yourself.

Christian. The world is watching for your response. Don't respond like the world.

Permalink

Is iPad the Computer for You?

0 Comments

There’s no such thing as a laptop replacement, and if there were, the iPad isn’t meant to be one.

Matt Gemmell

Golly, I’ve been thinking the same thing since WWDC. As all the reviews of the new iPads and of iOS 11 have been hitting, the age-old— well, seven year old question has been iterated again and again. Is this the iPad that finally kills the laptop?

Seldom does the writer acknowledge that they mean “is this the iPad that finally kills my laptop?” It’s a very personal question. Apple sells many different computers.

For many, the iPhone is the only computer they need. They scroll through Facebook, reading articles and liking photos. They message their friends. They respond to the occasional email. They watch Hulu and Netflix. My wife is usually in this camp. Perfectly comfortable to never grab a bigger screen.

For others, very powerful, customizable computers are required. Video editing, graphic design, photo editing, and more. They can do everything and more on their MacBook or iMac.

And then there are those that are happy with their iPhone, but sometimes or even often need a larger display. They may use a word processor. They may communicate much more and desire a bigger software keyboard. They may even prefer a Bluetooth keyboard. They may build websites. Or design websites. Or edit photos and video.

Consumers pick the computers that suit their needs. You may find that you can do everything you need on an iPhone. You may want a bigger screen, but more portability than a laptop. Or you may need much more power for your day-to-day tasks.

For me, I haven’t touched my Mac in over a week. I haven’t needed to. I’ve found Web Tools, Coda, and a Droplet to be all I need to get my job done. Most of that time, it has been a 12.9" iPad Pro that has done the job, with an iPhone stepping in occasionally to handle an email or text message.

Is the iPad the computer for you? You won’t know unless you try.

Permalink

Viticci confirms my suspicions on the new 10.5" iPad Pro

0 Comments

Viticci confirms my suspicions on the new 10.5" iPad Pro. Great device, more portable than the 12.9", but not as versatile. The resolution means that 50/50 splitscreen renders two iPhone app sizes instead of two iPad app sizes.

Permalink

DirecTV Will Only Support Internet Explorer Come July

0 Comments

DirecTV has announced that they will only support Internet Explorer starting in July. Sorry, my bad. They will only support Chrome. Still, just as bad a move.

I remember when I got my first Mac back in 2004. Many sites still only supported Internet Explorer 6. And IE6 didn’t exist on Mac. Only IE5 did. Off the top of my head, the biggest two sites that I frequented that did this were my bank and Old Navy. Yes, Old Navy, an ecommerce site, in 2004 only supported IE6. No reason for it, as they didn’t use much DHTML— the hip term for JavaScript at the time— and certainly had no features that would require a specific browser, but that was the way things were done in the early 2000’s. You picked one or two browsers to support and that was it.

When jQuery first came out in 2006, it was built around browser-detection based forking. If IE, do things this way; if Firefox, do things this way. It wasn’t long before they abandoned that and went to feature-detection. If the browser supported this feature, do things this way; otherwise, do things this way.

When iPhones first hit, the popular thing was to look for a user-agent string that included iPhone. If present, deliver an iPhone experience. Then responsive web design hit in 2010 and we started targeting screen dimensions.

This was the push for the longest time. Get away from detecting browsers and specific devices. Look instead at what the browser and device are capable of, and progressively enhance the UX from there. Build for the lowest common denominator.

But now, so many sites are built to require JavaScript. React, Angular, Vue, and other JavaScript frameworks have taken over front-end development. We are including so much JavaScript on our sites that we need task management scripts and package managers to keep everything straight. Our engineering has gotten more complex than ever necessary.

And, to make matters worse, we are starting to see developers getting back to supporting specific browsers. When your front-end uses very specific, new technologies, that is the choice a developer has to make. Either a) don’t use it, as the support isn’t great yet; b) use progressive enhancement and provide a feature when available; c) find a polyfill to provide support to the greatest number of users. There should be no d) only support Chrome.

If you don’t learn your history, you are damned to repeat it.

Permalink

The iPad Just Grew Up a Little

0 Comments

When the iPad Pro was first announced, I knew that I needed one. Simply put, I wanted to shift my workflow to something simpler and more focused. That is the reason, by and large, that I have always chosen small laptops. The 12" PowerBook, 13" MacBook Air, and recently the 11" MacBook Air. I love small screens because they allow me to keep my screen more focused on my task at hand. My apps are always full-screened or split-screened for specific app pairs. And the iPad Pro, with split-screen and a large (for iPad) screen told me I could do the same with an OS that was built for focused use.

So I bought one. And built a web inspector for it. And started developing websites on it. Coda + Web Tools made for a great pair. Last year I got to refine my workflow a bit, but then I had to work with a C# project at work, so I went back to my MacBook and built there. Then, in February I got to start working on a new website built the way I wanted it. We chose Craft for the job and I set up an EC2 for remote development from my iPad. It was great. Aside from the few times that I absolutely needed a Mac— Sketch and such— and the few times that I used a Mac out of convenience, the iPad was used for around 80% of the development of the new Sensi website.

I love my iPad. It is my go-to device for nearly everything. But being so close to it every day, I too have had my list of requests. And today, Apple delivered. The iPad just grew up a little. A lot even.

Split screen is a 100% needed feature, and pure delight on the 13" display. However, switching apps has been largely a pain in the ass. Until today. The new Dock has made for a truly amazing experience. Easily drag an app into one of the two sides, paired apps are remembered, and more.

Atop that, drag and drop is one of those things that didn’t make sense until you had two apps sitting side-by-side and no way for assets to get between them. Last week, Readdle added drag and drop between all their apps and it was something truly magical. Today, Apple Sherlocked not only that functionality that Readdle spent no small amount of time on, but also the Documents app that was a lynchpin of that experience. Easily access you files throughout iOS, iCloud Drive, and even third-party document providers.

The iPad is feeling more and more like a “real” computer, whatever that means. For those of us that bought in early on, 18 months ago or even before Apple touched the “pro” space with iPads, this just solidifies our love for the platform.

Now we just need Sketch and Photoshop. A real Photoshop. With those, I could truly do my job without a Mac.

Permalink