Skip to content
Author Micah Cambre

web components

Quoted Web Components will replace your frontend framework by Danny Moerkerke

The benefits of native web components are clear:

  • native, no framework needed
  • easy integration, no transpilation needed
  • truly scoped CSS
  • standard, just HTML, CSS and JavaScript

Whoa, native support for Web Components is here? Going through the process of learning advanced Javascript, React.js and broader programming, the prospect of Web Components being a system I can use that browsers already support is so appealing.

The biggest concern I want to learn about is accessibility and the fact that Web Components basically use an extension of javascript to work. I browse the web with plugins that disable Javascript by default for most sites and I enable what I want to run, for security, privacy and performance reasons (maybe a topic for another post).

There are so many quotable lines in his post that I wish I could highlight everything here but just go read it for yourself.

EDIT June 30: As much as I want to believe in the hype, I’m going to continue my front-end code without web components.

I have subscribed so many new-to-me RSS feeds in the last few months that it feels like an Indieweb renaissance for independent publishing

programming journey

2019 opened with a lot of chatter to the state of web design and development.

I’m a front-end developer. This is the label I’ve allowed myself to be since the mid-2010s but it was a struggle to get that far. I previously referred to myself as a front-end coder, front-end designer, web designer, and webmaster. I still consider myself a web designer in the sense that I design code that produces websites. But this label doesn’t apply to me in 2019.

I’ve always struggled with wanting to be a good web designer, essentially a graphic designer for the web. I never solely followed that path, with countless attempts producing designs that were amateurish. It’s always been easier for me to iterate off other people’s work rather than come up with my own ideas, even as a musician or audio engineer. Remixing and updating someone else’s code, music, or recording feels more natural for me because it’s the creative realm with immediate feedback. But my beginnings into a web career started more technically.

In my freshman year of college, I enrolled in and quickly dropped Computer Science 101. It was not interesting to me. I struggled to enjoy it, found the homework to be tedious, and couldn’t care less to give it much effort. Computer science was too technical and not visual enough. The internet’s maturity, however, has brought me back full circle to the necessity for the basics of computer science via Javascript.

Web development has gone through a paradigm shift. In the 2010s, Node.js introduced Javascript to the server and it replaced aged languages like Perl, Java, and PHP. Javascript is now more than just basic interaction of DOM manipulation or API calls.

What is front-end developement today?

As long as JS continues being a fundamental role for web development, I believe an understanding of Computer Science basics is mandatory. Staying stuck in the middle between the creative and the technical limits me in job prospects, so much so that I don’t qualify for many available, and many of which are senior level, front-end developer jobs. And all of this has left me drifting professionally, in between a noticeable distance from my creative desire to my technical knowledge.

Code is a commodity

jQuery is the most important library to boost Javascript’s role in the history of the internet. Using jQuery, I cheated; it was a way for me to ignore the inevitable reality of a web development career focused around JS. The abundance of jQuery everywhere let me ignore thinking about JS outside of basic DOM manipulation. Most of the time, I outsourced coding problems to jQuery plugins, tutorials and tips I browsed to find.

Just as jQuery plugins delayed my need to level up, WordPress plugins furthered my procrastination. WordPress’ theme architecture, at a basic level, mirrors static HTML, sprinkled with PHP in minimal template files. The real work in a WordPress theme is scaffolding a layout with HTML and styling it using CSS, using pre-built WordPress plugins (mostly mixed with jQuery) for most interactivity. Along with a mature WordPress community came a rich ecosystem of turnkey themes and opinionated plugins; I only had to moderately create or modify the front-end or PHP.

For too many businesses, CSS is Bootstrap. Bootstrap, like jQuery, takes work out of truly learning basics of CSS. I’ve worked for many companies that quickly needed to iterate and develop what’s known as an minimal viable product (MVP) and they forced these types of frameworks into the product or cycle. To a degree, Bootstrap, and to a larger degree an increasing amount of other front-end libraries and frameworks can be considered to have immutable CSS, where most CSS is abstracted into individual classes for iterations of most rules and values. Among other things, this relieves the developer from having to think about a global namespace issue that CSS provides by default. CSS becomes like most other languages where you treat given CSS classes as methods to extend the markup without much thought into the cascade. I think this is a mistake.

At the same time at the growth of WordPress, jQuery, and Bootstrap (among many others like them), Node Package Manager (NPM), a package manager for Node.js, also grew exponentially. In 2013, NPM was used by over a million developers. In 2019, NPM was used by over 11 million users. Why is this significant? NPM gives developers a way to efficiently import JS libraries and frameworks into projects more easily than going to a bunch of project sites to download each package individually. This process makes efficient the ability to add plugins and packages to projects and it’s all circled around a project’s ability to use Javascript.

My front-end knowledge for putting together puzzles out of HTML, CSS and JS pieces was commoditized to these various systems, libraries and frameworks. This was problematic for me at a slow but increasing pace. That said, my affection for web design on a creative level trumped the need to become more proficient with learning programming fundamentals. But this shifting paradigm quickly moved me out of contention for more jobs as time went on.

The moving paradigm

The early 2010s showed glimpses into a JS-everything future. Job ads needed significant jQuery programming from scratch, even moderate Javascript skills. Along with that saw the rise of the frameworks like Backbone.js and Angular.js. For most of 2013, I was on a temp job for a large enterprise company that chose a Javascript framework called Angular.js, which at the time seemed intriguing. But I also had no idea how this framework abandoned the tradition of a light client-side scripting on top of server-side scripting as well as progressive enhancement.

It really started hitting me in 2014 when job ads increasingly wanted devs familiar with principles from the MVC world for more rich web apps. It was baffling and stressful to watch the “I’m qualified” pool of jobs decrease. Despite that, I was still determined not to learn back-end programming. My mind circles around HTML and CSS plus some JS, visual layouts and User Interfaces, small animations and transitions that are now the role of CSS. Reliance on JS for everything was growing out of control.

The next few years, I accepted roles allowing some static templating or moderate scripting, each new role requiring more JS than the previous but still within my capability. And that leads me to today.

JS is the future

2019 web development starts with a framework or a library, primarily React.js. The modern web ecosystem is Javascript built on top of Javascript, or in other words, full-stack Javascript. We’re surrounded by opinionated frameworks and libraries that promise the world. This ecosystem requires knowledge of both Object Oriented Programming and Functional Programming, two philosophies to which I’ve only had minimal exposure. For me, this goes beyond learning just the language and syntax of JS.

Back-end development of the 2000s is now front-end development within the modern JS stacks. Yesterday’s back-end developer using Perl, PHP and Java are today’s front-end developer using JS across the full-stack. Today’s younger front-end developer increasingly comes from a JS bootcamp or transitioning from a back-end heavy education into the front-end. Staying in the web industry also means moving into new spaces like Machine Learning, AI, and big data. For those of us comfortable primarily with HTML and CSS, these jobs, if these jobs aren’t outsourced by CSS frameworks they are going to agencies or designer roles. Front-end jobs are often centered around back-end Javascript on the front-end.

Perl and Java slowly phased out starting over a decade ago. WordPress’ PHP back-end likely faces a similar fate. WordPress is slowly replacing chunks of its system with modern JS like React. WordPress is a slow moving ship but there will be noticeable pain in the forced transition continuing this year into the next decade considering that WordPress drives about one third of all websites. I wouldn’t be surprised to see other similar software environments like Drupal have to pivot to more JS everywhere.

And I’m playing catch up to get into this reality, struggling to learn what I avoided for so long. I move further from creativity and more into technical everything. This is where the front-end developer jobs are, this is how to stay employed as a developer. If I want to re-enter a freelance career where I can build and support my own product, I have to embrace a full-stack skill set based around JS. Or partner up with someone who already has this. This is a slow moving process that I’m not sure where I’ll end up.

The rest of this year will be spent with services like scrimba.com, FreeCodeCamp, Wes Bos courses, and other resources to consume and practice.

javascript frustration

I’ve been taking a deep dive into Javascript and React. Progress is slow, frustration is high. I’m still wondering where this will all end up. Didn’t I major in music? Hmm…

15 years and counting

March 1st marked an important milestone, my 15th year living in Los Angeles. This is the longest I’ve settled in one place in my life. However, in the years I’ve been here, I moved six times. I almost evenly split my childhood/adolescence/young adult and adulthood between Texas and California respectively.

Funny thing is, I don’t really consider much of my time in LA as settled down. So much felt transitional in my mind, despite having lived in one place for more than eight years. I still think of Texas as home when I return, but California is just as much a part of my life in this way.

Maybe it’s time I shake things up again soon, as I enter a new decade in my life very soon…

Some days, I just don’t want to go to the gym. I don’t have to lift weights or use a treadmill to get my heart rate up, and these exercises were a challenge!

https://www.nytimes.com/interactive/projects/well/workouts/

react progress bar

Why do I find React.js progress bar examples that never involve the HTML progress element? It’s always nested <div>s. Progress elements have broad support for almost five years now.

friends list

friends list

As I transition back onto my personal website, I want to find a way to have a personal friends list to connect with here: a list of trusted connections that will receive exclusive blog posts. It’s a challenge I haven’t yet solved but I have some ideas. But let’s step back for a moment so I can explain better.

Many years ago, in the age of Friendster becoming a social network, I installed a web forum called phpBB here for a couple of reasons:

  1. Give people a central place to socialize
  2. Keep track of birthdays

I thought it would be neat to give people I know a central place to have conversations and talk about things. I can’t find the number now but I believe I had close to 50 people sign up and that was helpful for me. It was effectively a contact list. Some people left their birth dates, others left more information. I could use this to keep track and personalize my greetings to people, mainly for #2 above.

I actually like the idea of a friends list and I think we see various forms of them online. Most apps or sites describe this as your social media connections, using terms like Followers, Following, or Friends. But why am I highlighting this?

Privacy

When I know my writing goes into a tunnel, such as private messaging, direct messaging or custom publishing to the various friends lists or followers, I can let my guard down a little and be more personal.

Facebook message composer

See this image above? Look at the bottom right side where it says “Friends”.

Facebook profiles can be closed from the broader ecosystem as well as the internet. The form above provides some form of nuanced privacy control when broadcasting your writings. Outside of Facebook collecting and selling everyone’s data, this is a form of encapsulation that allowed me to be more vulnerable than I am on the broader internet. It’s a convenient but effective mirage.

Social participation

If we’re connected online, it’s possible you’ve noticed my participation in social media dwindled starting in 2017. I’ve had a complicated relationship with these various sites since the late 2000s and had my ups and downs. I grew envious when I saw more people I know sign up and almost exclusively use these services.

I blogged a lot in early to mid-2000s with all kinds of random posts. My writings began at the end of college and this was the outlet to all those who weren’t in the same place as I was. I moved from Colorado to Texas to California and traveled at least a couple times a year, or more, in most of that decade. So keeping up with people was not easy and this was a place I could send people.

But that envy of MySpace and later Facebook took its toll. It effectively silenced me in the early 2010s. I lost the motivation to write here into the void. But I’m now apart of what’s being labeled as the old guard of the web, looking back at a time in the first millennial decade where the web was a playground for anyone who cared. And I believe more than ever that this type of connection should not be solely enclosed by walled gardens of social media sites who prey on me.

Connection

So what’s this leading to? More blog posts here. Right now they’ll be public, open to the whole world, syndicated to social sites at times, and available for you to leave comments and participate if you want. Maybe you’ll just read or skim, that’s fine too.

Ultimately, I would like to recreate a friends list here. I want to create a tunnel for people who care and want more than sometimes-bland, often-technical public blog posts. When you “add” me, when you “follow” me, when we make a trusted connection that shares a common secret between each other, I can make more personal statements and know these words are going to people who I want them to see.

But I haven’t figured this part out yet. Maybe it’s making encrypted posts that my trusted connections can view. Maybe it’s something else that I haven’t thought of. I want it to be something you can sign up for, you can click, you can follow, and I can approve, similar to what we’re already used to.

Privacy might be increasingly difficult, maybe it’s mostly dead online, but that doesn’t mean I can’t try to take it back in small ways. Ways that’ll benefit both of us.

Let’s see how long it takes for me to come up with a way to have a personal friends list for asuh.com. Once this happens, you can have your own site/profile/blog and do the same.

Photo by rawpixel on Unsplash

blockquote pizzazz

Trying to be more creative and updated my blockquotes to heavily stand out. It’s my freakin’ blog, I might as well try new crazy styles!

the new web development

Quoted The New Web Development | Matt Wilcox, Web Developer & Tinkerer by Matt Wilcox (Matt Wilcox, Web Developer & Tinkerer)

The modern web developer is more a software engineer than what I would call a web developer. The app-ification of the web isn’t a case of writing some HTML, authoring a CSS file, and using a new jQuery-like library to get that sweet interaction.

You are going to need to know how to program; like a real programmer. You are going to need to know some very different approaches to how you build, deploy, and maintain things. You’re going to need to question the value of some of your strongest held best practices.

And you’re going to need to get to grips with tooling. So much tooling. Because the new web development has matured enough to be dangerous to ignore, but not enough to be simple and entirely stable.

Matt’s summary of his transition closely aligns what I’ve been going through. Even though I saw the writing on the wall with Javascript, I couldn’t motivate myself to travel down this path because it was a repeat of what I left behind in Computer Science 101 in college. I just wasn’t interested at the time and this felt like more of the same.

It’s clear now that a programmer path for the web requires skills that I don’t have and must continue to learn. I have to cross the line to the left brain from the safety of the right brain.

I think I’ll write a post about my journey and struggles.