Front end developer working primarily in React. Currently at Red Hat working on Ansible Controller.
I live in the great Pacific Northwest. I care about people and believe in the open web.
-
I just stumbled across your site... I love the design! That is so much fun!
-
“Own your own website” is definitely a big part of it, but also the Indieweb includes a lot of emphasis on open interoperability standards, like webmentions, micropub, and ActivityPub.
For example, I wrote this post on my website, and you are getting a response via Mastodon thanks to some webmention magic I have wired up.
-
I definitely agree! Thanks for the nudge; I just edited the post to say that :)
-
Honestly, I’d totally forgotten about unpkg.
I suppose the one key difference would be the client-side decision (based on semver) whether to make a network request for the package or use one already in cache that matches e.g.
^1.3.4
.There’s probably no reason a lightweight browser extension couldn’t do that for unpkg today, though you’d have to drive adoption somehow.
-
DNS is dark magic. When it takes it's sweet time propagating and there's no way to know whether it's slow or you screwed something up… 😫
-
also, sometimes I reply to stuff via my website, which counts as a contribution.
This tweet just gave me a green box!
-
Not combative, no worries ;)
It’s typically the sort of problem you don't hit until you’re 20k lines into an app. Non-contrived examples are tough…
First thing that pops into mind is when you find you need to mix & match multiple directives at the same time. Not just a loop through array, but a loop with a filter and a two-dimensional sort. That kind of thing.
-
Component-based development is only one of React’s revolutionary changes in frontend dev.
Other significant ones to consider are the ability to declarative modify the DOM, application of functional programming ideas to the front end, uni-directional data-flow with a single source of truth, and now (with hooks) major improvements in code organization and re-use of common patterns.
Web Components are fantastic, but they are low-level. The do NOT provide these other significant benefits.
-
The state-based description makes sense to me. I’ve argued before that selectors are
if
statements: If this description is true of an element (it has this class name, it is a descendant of that, etc.), apply these styles.:hover
is not really any different than JS adding or removing a class. -
There are definitely some interesting ways Grid meets up with our current modular styling best practices. You can fix that stretched button with align-self/justify-self properties, but do you really want to make it aware of its grid context like that?
I posted this a while back on how the old Separate Structure from Skin OOCSS rule needs some attention again: https://keithjgrant.com/posts/2017/12/oocss-and-grid/
-
That’s amazing. Particularly considering it’s less than a week old. In my experience, there’s typically a “Buffer delay” between when a popular post gets published and when it really takes off—because everyone tends to throw the links into their Buffer, which is usually backed up a couple weeks.
So I have a feeling you’re going to see that number really take off 💪🏻
-
I’ve been meaning to do some write-ups of all this. It all uses W3C standards, so there’s a lot of interop :)
There are a lot of little pieces. No one of them is too difficult, but piecing it all together in a way that provides a decent workflow took a little doing.
-
The key is getting webmention support setup. Then there’s a service called https://brid.gy to bridge webmentions in and out of twitter/facebook.
-
Nice! Subscribed!
Looks like you’re missing the
<link rel="alternate">
for discoverability, though -
Yes! DO IT ✨
-
I use bullet journal loosely for tracking what I'm working on. Not as super religious about it as I was when I started, but I still find its annotation symbols useful
-
I love a good sour. Definitely not keto, but my favorite is with real maple syrup instead of simple syrup 😍
-
For extra credit, this reply is posted to my site, too 😁
-
I assume you already have mine?
https://keithjgrant.com/notes/index.xml
-
I haven't written anything up but feel free to hit me up with any questions as you go.
I did a very SMACSS-y folder organization. All modules in a src/modules directory & subdirs, src/base, directory, src/layouts, /src/mixins, etc.
In the src directory I have multiple top-level stylesheets (four for each brand, as I've chunked up the styles). I basically have my preprocessor crunch each of these and output each of them compiled in a build directory.
-
All right, I’m kidding myself. I’m not going to get to this today, at least not in full depth. But I do want to say this much: I hope you don’t take that subtweet of mine as criticism.
-
Is it just me, or is React getting more demanding about adding keys to everything?
It’s complaining to me now about a perfectly normal
<div><label /><input/><button/></div>
structure not having keys 🙄 -
It needs to be as thin as a credit card, Jonathan! 🙃
-
“building react into css” -> I assume you mean into JS?
React the library will be outdated eventually, but I think it has brought enormous shifts to how we build out component-based architectures that will last. JS can now be written in a more declarative way, and centralized state management plus uni-directional data flow makes code much simpler and less error prone.
I really hope those benefits can make their way into the web platform.
-
I wouldn’t want React or Vue on the platform, but I want the platform to be informed by them (specifically: declarative, uni-directional data flow)
If CSS just copied preprocessor variables, we wouldn’t have the amazing custom props. WC should strive to do the same thing.
-
Exactly, though it may need to be more carefully done in some circumstances.
Page.js does
this._onpopstate.bind(...)
, but it doesn’t define that function ifwindow.onpopstate
doesn’t exist, so the error pushed down a layer instead of fixed entirely. -
That’s better than I do. I tend to leave my lunch on the landing where I put on my shoes 😖
-
TIL if you put a wallet in a US mailbox, the post office will deliver it to the address on the ID card within, free of charge.
-
Thanks! I'm hoping to add support for full articles next 😀
-
Syndication test
-
I figured it out. This was caused because I had Cmd-V as a global shortcut for “Paste and Match Style”
-
Dooooo it! I’ll send you one when you’re set up :)
-
For instance, I should have written that reply on my site first. But I’m a lazy bum
-
test reply
-
Whoops. I did not intend to send my entire article as a reply WM. Please feel free to delete that!
-
There are standards emerging to do social networking on the open web, I write, using said standards.
-
Some very interesting possible ramifications of this, broken down by @adactio—including its effect on web advertising and Google analytics
https://adactio.com/journal/13364
-
Didn’t you just redesign your site a few months ago?
I love the typeface you’ve got. When I redid my site, I spent ages looking at fonts thinking, “it’s not as good as Ethan’s font”
-
Re “That’s not how the Force works”:
I think that’s a big point this film is trying to make: the Force is bigger than we’ve previously believed. It’s not just about moving rocks. It can connect two minds from light years apart. It can be used to project an image of yourself across the galaxy. A force ghost can summon lightning.
If it can do all that, I have no qualms accepting Leia can do what she did.
-
Though I suppose if I really meant it, I would reply to you using webmentions 😜
-
I hope we see a day where Readers and Micropub editors are baked into every browser.
-
I do have one nitpick: em-based sizing doesn’t mean everything must be sized in ems: particularly images and layout. False equivalence.
-
I’m a strong fan of normalizing. Resets tend to undo a lot of stuff I would rather have in place. And normalize.css has historically fixed a lot of odd browser quirks that resets may or may not address.
I’m also wary of over-reacting to this one change by Chrome. Yeah, it may result in some odd bugs, but I don’t want to become heavy-handed in defending against it in the future, as it’s an extremely rare circumstance.
-
Thanks!
So are you replying to this post to earn my book? I was more hoping to get somebody who is new to the IndieWeb 😝
-
I’ve got to learn to repeat the questions for the mic at the end of my talks. I always forget that part 😖
-
When I wrote this a couple years ago, I did not know the work already well underway on the IndieWeb. I’m glad to see the progress made since then, and I even gave a talk on it last week: https://keithjgrant.com/talks/decentralized-web/
-
It worked! Congratulations :)
-
Exactly what I was demo-ing ;)