How the enneagram made me a better product manager

Continue reading on UX Collective »

Responsible, Conditional Loading

Over on the Polypane blog (there’s no byline but presumably it’s Kilian Valkhof (it is)), there is a great article, Creating websites with prefers-reduced-data, about the prefers-reduced-data media query. No browser support yet, but eventually you can use it in CSS to make choices that reduce data u..

How volunteering for a crisis hotline makes me a better designer

I’m going to tell you something about myself that will make me sound extraordinarily privileged: hearing stories from those contacting our… Continue reading on UX Collective »

Do we do enough problem-finding before problem-solving?

Paying attention vs. Getting attention Continue reading on UX Collective »

How to create powerful technologies that are reliably at our service

The not-so-futurist issue of “super-intelligent IA” Continue reading on UX Collective »

9 Easy Ways to Deal With Difficult Clients

Naturally, there are bad clients out there, but 90% of the time, it’s not really the client who is at fault. Poor communication, a lack of setting expectations, and a failure to qualify clients beforehand is usually the problem. If you’re dealing with a problematic client, there’s usually not a lot..

Integrating TypeScript with Svelte

Svelte is one of the newer JavaScript frameworks and it’s rapidly rising in popularity. It’s a template-based framework, but one which allows for arbitrary JavaScript inside the template bindings; it has a superb reactivity story that’s simple, flexible and effective; and as an ahead-of-time (AOT) c..

Custom Styles in GitHub Readme Files

Even though GitHub Readme files (typically ./readme.md) are Markdown, and although Markdown supports HTML, you can’t put '); var formated_str = arr_splits[i].replace(/\surl\(\'(?!data\:)/gi, function regex_function(str) { return ' url(\'' + dir_path + '/' + str.replace(/url\(\'/gi, '').replace(/^\s+|\s+$/gm,''); }); splited_css += ""; } var td_theme_css = jQuery('link#td-theme-css'); if (td_theme_css.length) { td_theme_css.after(splited_css); } } }); } })();