Skip to main content

Damian Wajer reshared this.

I learned something yesterday...

You know that friend you haven't talked to in a long while? They're thinking about you from time-to-time as well, and that it might be awkward to reach out.

So... One of you has to do it. Might as well be you! Send them a message. Do it right now.

Be friends again 💜

Damian Wajer reshared this.

(Also, consider this your semi-regular reminder that I think Lynn is one of the finest responsive designers working today; if you’re hiring, you should talk to her.
same. I think about her work all the time.

Damian Wajer reshared this.

Things you can say when the evidence proves you wrong:

1. Wow, I had no idea! Thank you for clarifying.
2. I was wrong.
3. I didn’t know that but now I do and I’m smarter for it.
4. This just proves that you can be really sure about something and still be wrong!

Damian Wajer reshared this.

With the new Navigation API, you can now show the native spinner + stop button for any asynchronous operation - all you need is a Promise.

How to get better at sleeping
View sunlight by going outside within 30-60 minutes of waking. Do that again in the late afternoon, prior to sunset.
​Wake up at the same time each day and go to sleep when you first start to feel sleepy
Avoid caffeine within 8-10 hours of bedtime.
Avoid viewing bright lights—especially bright overhead lights between 10 pm and 4 am
Limit daytime naps to less than 90 min, or don’t nap at all
Keep the room you sleep in cool and dark and layer on blankets that you can remove.
Drinking alcohol messes up your sleep. As do most sleep medications

#Sleep #Bookmark

Damian Wajer reshared this.

10 years ago I published a rant against carousels. It still holds up!

Damian Wajer reshared this.

I recommend adding a great resource for identifying when to use one.
I really think designers and developers took your advice about carousels to heart. Stakeholders still beg for them, but now there’s appropriate pushback.

You made a great case. Unfortunately they didn’t listen to every part of your argument…
They also require more scripts and introduce more moving parts, which means more QA and more potential to break.

Damian Wajer reshared this.

You're not stupid for using a framework, and nobody has pulled a fast one on you.
@slightlyoff Telling people they were misled even though the downsides are obvious is the same as calling them stupid.
did I say the downsides are obvious?

I've consistently pointed at the ways they are (un)consciously obscured by privilege, dogma, marketing, and management blinders. Never have I called people taken in "stupid".

It reads to me like you're keen to assign malice when, in fact, it's the teams on the wrong end of all this that I feel for – and their users.
now, a lot of teams have the reaction of *feeling* stupid when they finally instrument and start to understand the costs.

I've outlined here why that instinct is not helpful, and the spirit of "blameless postmortems" is a better way forward for managers and TLs alike:
@slightlyoff If you don't wish to cop to the tone of the piece being deeply condescending feel free, but as the replies to me indicate, the impression that you are talking down to developers is widely shared.
I'm fine with it being condescending towards the unrepentant complexity merchants. I do not agree it is condescending towards those who have been taken in, and therefore suggest you are misrepresenting me while not even understanding the piece.

The framing of a market failure, not a personal one, argues against the narrative you're spinning. Market failures are not individual actions. They exist because reasonable people *cannot* have better information (without market intervention).
If, for some reason, you need to white-knight for...

[ checks notes ]

...Facebook and Vercel....weird flex but OK?

But don't put words in my mouth.
@slightlyoff Being condescending to me directly does not persuade me that I was misinterpreting the tone of the piece.
It's unfortunate that you've misunderstood the point of the piece to the extent that you feel a need to mischaracterize me, even after being directly corrected.

Will just leave it there.
@slightlyoff Alex, i have deep respect for the goals you have, but the tone of your blog post is, to me, very condescending. You may not mean it, but it is the way it comes across.
@ben Thanks for letting me know.

I *am* upset. So many teams I work with have been left for dead in the ditch by the people that talked them into deeply inappropriate technologies. I'm upset about the pain they're experiencing. I'm upset there has been no correction. I'm upset about the way these experiences then exclude people from participating in digital society.

My tone is highly inflected with that disappointment, no doubt.
@slightlyoff if i can be so bold as to make a suggestion: you can express that disappointment and pain the way you did just now, without the condescension or the blaming of individuals. There are good economic reasons for what's happened, as Laurie pointed out, meaning it's not as simple as some people selling crap.

You could focus on criticizing the *outcomes* rather than the people, and get far more folks rallying around your very important points.
@slightlyoff do you really not understand what it sounds like when you claim to have “directly corrected” someone about the tone of your writing?

Surely, you realize intent is distinct from impact?
@slightlyoff taking the L would have been a good move instead of resorting to this tack
@slightlyoff “everyone who has a more nuanced take on React must be white-knighting Facebook” isn’t a winning argument, IMHO
@slightlyoff This is condescension! This toot right here!

Do you really not see how describing people who have made a technology choice as “taken in” is condescending? As if nobody could possibly be fully informed, weigh the pros and cons and still decide that React is the most appropriate thing to use?
The piece makes a different argument; it notes that fully informed organisations can weigh these costs effectively. But, per the 100+ collaborations I've been lucky to be a part of over the past 8 years, *almost nobody* is operating at that level. Which is to say, their accounting *tends* not to be well-informed. There are exceptions for sure, but even (multiple) top-5 retailers have been caught out.
This entry was edited (2 months ago)
@jakelazaroff You can see the rough hierarchy I've been able to extract through this tour of sites and teams of all sizes (often guiding repairs in their React/Angular/etc. stacks) in this piece from last year:
@slightlyoff I agree with your core premise that most teams are not measuring performance, but you’re using that to argue that developers aren’t able to evaluate the tradeoffs of technologies they use. It’s possible to make that argument and not be patronizing, but you’re deliberately taking an intensely confrontational tone in the post, and then accusing people of “white knighting” when they call you out on that. Are you really confused as to why people feel condescended to?
@jakelazaroff I'm not arguing anything from absolutes or first principles; I'm observing what *is*.

The only reason I've had to care *at all* about performance since 2015 is that, on the way to helping teams with API needs (see my bio), we have tripped on *disastrous* performance as the first hurdle to delivering PWAs as competitive with native.

So no, I'm no confused. Only saddened.
@slightlyoff Been thinking a lot about how to respond. Here’s my take:

1) “developers can’t evaluate technology tradeoffs” is an opinion, not a fact
2) convincing me of that requires me to accept myself uncomfortable about myself (that I can’t do something I believe I can)
3) attempting that through invectives aimed at the people allegedly conning me feels like an attack

#3 is where I feel condescension. And I can only speak definitively for myself, but my guess is that’s where others do too.
@jakelazaroff If it helps, I don't put product responsibilities on developers and mainly view the litany of bad outcomes as a failure of the PM class to actually manage their products by setting constraints that stand in for the user.
So I'd encourage you not to read into this things I didn't say. Products are team sports; it's not all on developers. Here's a longer post based on these experiences and collaborations that might help:
This entry was edited (2 months ago)
@slightlyoff I mean, you can tell me that, but Laurie had a reasonable and nuanced take and you accused him of white knighting for Facebook. So forgive me for thinking the civility of this exchange hinges on me not voicing a dissenting opinion. Communication takes two people; if a lot of people misinterpret something you said, you gotta consider that you said it poorly. IMO it undermines your message among people you’re ostensibly trying to help. Those are my two cents; take ‘em or leave ‘em.
@jakelazaroff well, I'm fully expecting a lot of people to bring their priors to this, and I don't expect them to all have a good time. We all have our uncomfortable and untenable intellectual commitments.

Damian Wajer reshared this.

This is great, descriptions of all the Web Rendering Patterns laid out clearly, been wanting this.

Damian Wajer reshared this.

I just finished this and for past 60 minutes I've been struggling with the decision whether to publish or not. I’m not trying to convince anyone to build their websites differently, I just want to share my view and my experiences as someone who has been building websites for over 20 years, and I try to summarize reasons why some developers, including me, are wary of building SPAs.

I hope that wasn't a bad idea…

2 people reshared this

The new docs are a bit more nuanced.
I'll update the post once they decide.

The :scope CSS pseudo-class represents elements that are a reference point for selectors to match against.
A situation where the :scope pseudo-class prove to be useful is when you need to get direct descendant of an already retrieved Element

element.querySelectorAll(":scope > .child");

#CSS #JavaScript #TIL

Damian Wajer reshared this.

OMG, I did it, day 100! 4 months and 16 days ago I published the first post and then I wrote another post every workday for 138 days straight without missing a single day. In this final post, I do a quick recap and give an outlook for what's coming next.

Thank you for reading and participating!


6 people reshared this

@fernandomateus thank you! I already did that yesterday! 🍻

and the overview page exists as well. :)
Damn 😳 how did I missed that?! (Bookmarking as we speak.)

Cheers 🍻

Damian Wajer reshared this.

Last weekend we launched Penpot at @fosdem for a reason.

Three years ago we presented our vision to the audience and we promised we would build a design & prototyping platform that was all about open standards (SVG, HTML, CSS) and open source, but also about collaboration between designers and developers at the design process level.

Guess what, we made it!

This is a sneak peek at @diacritica 's presentation

#opensource #design #developer #designers #developers

Damian Wajer reshared this.

“These Inclusive Design Principles are about putting people first. It's about designing for the needs of people with permanent, temporary, situational, or changing disabilities — all of us really.

They are intended to give anyone involved in the design and development of websites and applications - designers, user experience professionals, developers, product owners, idea makers, innovators, artists and thinkers - a broad approach to inclusive design.”
This entry was edited (2 months ago)

Damian Wajer reshared this.

Those principles formed the basis for my Exclusive Design research, and the Exclusive Design Principles:
Why doesn't this list of "inclusive" principles not mention "have the affected people actually involved in making the thing right there along with you"?

For that matter, why isn't that at the top of the list?

Why are we, as disabled people, subjected to this kind of paternalistic "trust us to do what's best for you" philosophy instead of just being put in charge of making design decisions to begin with?

Damian Wajer reshared this.

What an astonishing thing a book is. It's a flat object made from a tree with flexible parts on which are imprinted lots of funny dark squiggles. But one glance at it and you're inside the mind of another person, maybe somebody dead for thousands of years. Across the millennia, an author is speaking clearly and silently inside your head, directly to you. Writing is perhaps the greatest of human inventions, binding together people who never knew each other, citizens of distant epochs. Books break the shackles of time. A book is proof that humans are capable of working magic.

- Carl Sagan


Damian Wajer reshared this.

Damian Wajer reshared this.

Are there any good privacy focused simple analytics tools that are free?

I don't wanna use Google Analytics for many reasons, one being that I really don't need that much detail.

I know of some privacy focused analytics tools but they're all overkill for my use case and because of that they're too expensive!

🔁 Boosts appreciated


Damian Wajer reshared this.

If you happen to share a link, please also take a moment to say why you're sharing it. I see many posts that are either just links or are presented with a copy-pasted title.

Was it an interesting read or watch? Did it give you a new perspective? Is it just something you feel people should know more about? Did it spark joy? Outrage? Excitement? Is it simply good for a laugh?

You have (at least) 500 characters at your disposal. No need not to use them. :)
This entry was edited (2 months ago)

Damian Wajer reshared this.

If you need a cute little dark/light mode theme toggle with fun animations, here's a coupe you can reuse. I really like the within one.

Damian Wajer reshared this.

Damian Wajer reshared this.


Proof of concept of an opt-in global Mastodon search. Tootfinder indexes recent toots of all user that want to get indexed. If you are not interested, just do not join the index.The feeds are indexed in a SQLite database and deleted after 7 days.
Screenshot of the start screen of the search engine

Damian Wajer reshared this.

Are you trying to find your contacts from Twitter on Mastodon?

There are online tools which can help with this, however Twitter is apparently going to shut them down by Thursday 9th February.

If you want to use these, now would seem to be your last chance:

🐦 Debirdify

🔍 Fedifinder

A third tool, Movetodon, has already been shut down by Twitter.

#Twitter #Mastodon

2 people reshared this

@[email protected]
@[email protected]

what happened with #twitterAPI suddenly bring expensive?

#debirdify seems to be still working, even using it through an account that's definitely not got paid api access?
@[email protected] @[email protected]

#debirdify seems to still be working

i suspect that paid #api access on #twiter is a lot more complicated to implement than #Elon expected…

Damian Wajer reshared this.

1/ Many potential users complain about Mastodon's sign-up process.

So I'm going to put this under the microscope right now.

To be sure, I'm not going to say it is "bad" or that there shouldn't be a barrier to entry.

Just pointing out ways the sign-up process can be easier. 🧵

Damian Wajer reshared this.