Browse Source

More links

master
David Larlet 3 years ago
parent
commit
c313723a05

+ 8
- 5
cache.py View File

@@ -17,7 +17,7 @@ from minicli import cli, run, wrap
from readability.readability import Document

HERE = Path(".")
CACHE_PATH = HERE / "cache" / "2020"
CACHE_PATH = HERE / "cache" / "2021"
LOCAL_DOMAIN = "http://larlet.test:3579"


@@ -90,7 +90,7 @@ def create(hash_url):
if not os.path.exists(cache_target):
os.makedirs(cache_target)
open(cache_target / "index.html", "w").write(page)
print(f"Done: {LOCAL_DOMAIN}/david/cache/2020/{hash_url}/")
print(f"Done: {LOCAL_DOMAIN}/david/cache/2021/{hash_url}/")


@cli
@@ -106,7 +106,7 @@ def generate():
template = environment.get_template("cache_archives.html")
page = template.render(cache_list=cache_list)
open(CACHE_PATH / "index.html", "w").write(page)
print(f"Done: {LOCAL_DOMAIN}/david/cache/2020/")
print(f"Done: {LOCAL_DOMAIN}/david/cache/2021/")


@cli
@@ -116,12 +116,15 @@ def new(url):
:url: The URL of the page to put into cache.
"""
hash_url = hashlib.md5(url.encode("utf-8")).hexdigest()
url_cache = f"/david/cache/2020/{hash_url}/"
url_cache = f"/david/cache/2021/{hash_url}/"
link_line = f"]({url}) ([cache]({url_cache}))"
print(link_line)
try:
title, content = extract_page(url)
except (lxml.etree.XMLSyntaxError, httpx.exceptions.HTTPError,) as e:
except (
lxml.etree.XMLSyntaxError,
httpx.exceptions.HTTPError,
) as e:
print(f"WARNING: {e}")
title, content = "", ""
cache_path = os.path.join(CACHE_PATH, hash_url)

+ 436
- 0
cache/2021/3159c32fa194458a63b546ab789e8aed/index.html View File

@@ -0,0 +1,436 @@
<!doctype html><!-- This is a valid HTML5 document. -->
<!-- Screen readers, SEO, extensions and so on. -->
<html lang="fr">
<!-- Has to be within the first 1024 bytes, hence before the <title>
See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
<meta charset="utf-8">
<!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
<!-- The viewport meta is quite crowded and we are responsible for that.
See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
<meta name="viewport" content="width=device-width,initial-scale=1">
<!-- Required to make a valid HTML5 document. -->
<title>The world needs a tech diet; here is how designers can help (archive) — David Larlet</title>
<meta name="description" content="Publication mise en cache pour en conserver une trace.">
<!-- That good ol' feed, subscribe :). -->
<link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
<!-- Generated from https://realfavicongenerator.net/ such a mess. -->
<link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
<link rel="manifest" href="/static/david/icons2/site.webmanifest">
<link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
<link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
<meta name="msapplication-TileColor" content="#f0f0ea">
<meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
<meta name="theme-color" content="#f0f0ea">
<!-- Documented, feel free to shoot an email. -->
<link rel="stylesheet" href="/static/david/css/style_2020-06-19.css">
<!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<script>
function toggleTheme(themeName) {
document.documentElement.classList.toggle(
'forced-dark',
themeName === 'dark'
)
document.documentElement.classList.toggle(
'forced-light',
themeName === 'light'
)
}
const selectedTheme = localStorage.getItem('theme')
if (selectedTheme !== 'undefined') {
toggleTheme(selectedTheme)
}
</script>

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="https://essays.uxdesign.cc/tech-diet/">

<body class="remarkdown h1-underline h2-underline h3-underline hr-center ul-star pre-tick">

<article>
<header>
<h1>The world needs a tech diet; here is how designers can help</h1>
</header>
<nav>
<p class="center">
<a href="/david/" title="Aller à l’accueil">🏠</a> •
<a href="https://essays.uxdesign.cc/tech-diet/" title="Lien vers le contenu original">Source originale</a>
</p>
</nav>
<hr>
<p>If you use digital products on a daily basis, you’ve probably noticed the proliferation of dark design patterns that try to manipulate you to engage further, deeper, or longer on a website or app.</p>
<p>We are not in control of our tools anymore</p>
<p>It’s time we bridge the gap between feel-good Design &amp; Ethics panels and the work we do every day as digital product designers.</p>
<p>Image: David Teodorescu</p>
<p>UI copy that fabricates a sense of scarcity, urging you to book a hotel room before someone else does. Confirm-shame links that try to bully users into entering their email addresses. Streaming platforms that autoplay new episodes, encouraging binge-watching behavior. </p>
<p>Eager for clicks and views, tech platforms are always looking for new ways to use basic human instincts like shame, laziness and fear to their advantage. Digital junk foods, from social networking apps to video streaming platforms, promise users short-term highs but leave depressive existential lulls in their wake. </p>
<p>The result? Our relationship with technology is becoming increasingly characterized by dependency, regret, and loss of control.</p>
<p>But wait...</p>
<p>How did we get here?</p>
<p>While the products we build every day have evolved, our ways of thinking about user engagement have scarcely changed since the days of dial-up. We assume that the higher the metrics, the more successful the business and, thus, the smarter the product designer.</p>
<p>Clicks</p>
<p>Views</p>
<p>Session duration</p>
<p>Shares</p>
<p>Sign-ups</p>
<p>Response rate</p>
<p>Avg time on page</p>
<p>Pages per visit</p>
<p>Dormancy rate</p>
<p>Leads generated</p>
<p>Opens per week</p>
<p>Bounce rate</p>
<p>And we’ve become so good at engagement over the years, we have approached its pursuit as a science. We have deified products like Instagram or Tinder for their shamelessly addictive qualities. We have learned and taught each other how to design for addiction, always devising new ways to keep people coming back for more. </p>
<p>But in some cases, we are simply defining metrics out of apathy. We forget to question the real business value behind each of those KPIs. After all, more page views per visit to an e-commerce website do not necessarily mean more sales. Likewise, the number of opens per week for a mobile banking app tells us little about customer loyalty and satisfaction — when it comes to their financial life, aren’t people looking for peace of mind instead?</p>
<p>Over the past few decades, we have helped build a corporate culture that systematically prioritizes short-term gains over longer-term product health.</p>
<p>The introduction of digital products and services into our lives has substantially changed the way our relationship to time, effort, and initiative. We might not think about this all the time, but we are not as in control of those digital tools as we are of the physical ones around us.</p>
<p>A tool such as a chainsaw has to be manually initiated by its user...</p>
<p>...that’s not the case with digital tools like phones, which are often initiating interactions with us.</p>
<p>When you look (or think of) a mug, you know pretty accurately how much effort it will take to lift it up...</p>
<p>...that’s not the case when you click on a “Get Started” button on an insurance provider website.</p>
<p>When you look at a tube and compare it to the size of your saw, you can estimate how much time it will take you to complete the task...</p>
<p>...that’s not the case with the endless feeds we are exposed to in social media apps and blogs.</p>
<p>“</p>
<p>Although the digital revolution has pushed technology forward, it has also left people with no choice but to conform to the new rules and paradigms set by this technology.
— Marigo Heijboer</p>
<p>The new digital tools of our era don’t have natural affordances unless the designer consciously decides to design them in a transparent, honest way.</p>
<p>Turns out... </p>
<p>Times,
they are
a-changing</p>
<p>01</p>
<p>Discussions around our unhealthy relationship with technology are becoming mainstream.</p>
<p>Politicians starting to create laws against dark patterns</p>
<p>Tech companies drowned in scandals about privacy and user data</p>
<p>Mass media outlets started covering tech issues more frequently</p>
<p>02</p>
<p>Companies observing this trend are starting to act — but in timid ways.</p>
<p>Instagram lets users know when they finish scrolling through the feed</p>
<p>Youtube, iOS and other mobile OSs let people track and limit how much time they are spending in each app</p>
<p>Bumble gives users the option to disconnect, including taking a “digital detox” mode</p>
<p>03</p>
<p>A more minimalist mindset is emerging in our Zeitgeist and our Netflix watchlists.</p>
<p>Marie Kondo: the Netflix sensation who teaches American families to prioritize belongings that ‘spark joy’ while purging the stuff they don’t need</p>
<p>Tiny Homes: a show about people choosing to simplify their lives by downsizing their living spaces </p>
<p>Minimalism: a documentary about those who have rejectedthe American idea that more consumption brings greater happiness</p>
<p>Hey—</p>
<p>enough</p>
<p>talking</p>
<p>As designers, how do we actually break the cycle of designing for addictive engagement?</p>
<p>Keep scrolling, keep scrolling</p>
<p>Change has to start somewhere. Seeing a gap between our well-intended ideas and the work we do every day, we have decided to create a more practical guide to provoking change.</p>
<p>How can we break the business-as-usual cycle...</p>
<p>In our design</p>
<p>In our process</p>
<p>In our company</p>
<p>In our community</p>
<p>In our personal life</p>
<p>In our design</p>
<p>Set solid design principles</p>
<p>Crown Hall, Illinois Institute of Technology, Chicago (1956). Architectural Press Archive / RIBA Collections</p>
<p>Design principles that strive for reduction and simplification have been around for a while. The philosophy at the core of the 20th century Modernist aesthetic movement, for example, lay the idea that the world had to be fundamentally rethought and streamlined, promoting sleek, clean lines and eliminating decorative additions that were purely for the sake of embellishment. </p>
<p>Thirty years ago, Don Norman published The Design of Everyday Things, outlining principles product designers who wanted to create better experiences should follow. Today, in the age of intangible digital products, we need to decide —and stick to— larger principles that will guide our work. </p>
<p>Where to start:</p>
<p>Massimo Vignelli →</p>
<p>Vignelli has made a fundamental contribution to the world of design by keeping alive and promoting the evolution of the ethical principles developed by the Modern Movement in the early 20th century.</p>
<p>Dieter Rams →</p>
<p>Industrial designer at the helm of the creative direction of the German brand Braun. Rams led one of the most important movements of the industrial design world, known as functionalism.</p>
<p>More recently:</p>
<p>Ruined by Design →</p>
<p>Inspired by Victor Papanek’s understanding of the relationship between design and politics as well as the current state of the tech industry, this book by Mike Monteiro argues that designers have destroyed the world and offers practical advice on how we can fix it. </p>
<p>Calm Tech Principles →</p>
<p>Coined in 1995 by PARC Researchers Mark Weiser and John Seely Brown in reaction to the increasing complexities created by information technologies, the “Calm Technology” movement has been led by researcher and author Amber Case.</p>
<p>In our design</p>
<p>Choose respectful design patterns</p>
<p>“</p>
<p>Design reproduces dominant relationships unless there is a deliberate effort to change them.</p>
<p>—Dan Zollman</p>
<p>As designers, we can play a crucial role in the creation of healthier products and services. Ultimately, we are the ones choosing UI patterns, writing copy, and defining flows and interactions. So it’s on us to question whether we are doing our jobs responsibly. The same way tech addiction is created through design, design can also be used to promote a healthier relationship with technology.</p>
<p>Stop endless scroll</p>
<p>Instead of designing for infinite engagement, what if we prioritized more relevant content?</p>
<p>Reduce notifications</p>
<p>Not everything is important. What if we rethought our notification strategy to be more mindful of people’s attention and time?</p>
<p>Reveal info gradually</p>
<p>What if instead of giving users all information at once, we were more thoughtful about when and how each message is revealed?</p>
<p>Give them control</p>
<p>What if we design user experiences that are more transparent,giving people control over their level of engagement?</p>
<p>Further reading:</p>
<p>Humane by Design →</p>
<p>Humane by Design is a resource that provides guidance for designing ethically responsible digital products through patterns focused on user well-being.</p>
<p>Design for Behavior Change →</p>
<p>Stephen Wendel's book is a practical guide to designing for behavior change, highlighting the importance of mastering behavioral design in order to use them for good.</p>
<p>In our process</p>
<p>Run better research</p>
<p>Research helps us better understand our users. However, not all research is equally effective. </p>
<p>Know your tools and when to use them</p>
<p>If not well planned, research can be misleading: a usability test session may show users are able to act quickly on a task, but neglect to ask how this task impacts them and whether they even want to perform it in the first place. Foundational research (such as an ethnographic study), done early and often, can help bring the user perspective to your team and to the product strategy — before you jump into directional studies (like a usability testing).</p>
<p>→</p>
<p>Go wide in your research</p>
<p>Even when planning directional research, use the opportunity to understand broader user behaviors and orientations towards your product and towards tech more generally. Set up the interview as a conversation and try to learn more about the following: </p>
<p>• In what context do they use your product? </p>
<p>• How does the product influence their relationships with others around them? </p>
<p>• By using your product, what are they giving up? </p>
<p>• What else can you learn about them that you don't know yet?</p>
<p>→</p>
<p>Be mindful about how you frame questions </p>
<p>According to Erika Hall, "The big research question is what you want to know, not what you ask in an interview. In fact, asking your research question directly is often the worst way to learn anything.”</p>
<p>→</p>
<p>In our process</p>
<p>Challenge default metrics</p>
<p>“</p>
<p>Until we measure what we value, we will over-value what we measure.</p>
<p>—Kim Goodwin at IAC19</p>
<p>There are two common scenarios when it comes to metrics:</p>
<p>•</p>
<p>The business has a focus on growth metrics and the design work is limited to aggressively improving those numbers; or</p>
<p>•</p>
<p>The business has not established its own metrics and relies on canned metrics, meaning the design work is disconnected from its impact on users.</p>
<p>Both scenarios can be quite damaging and can lead to designers using dark patterns to hit their goals faster. </p>
<p>Designers need to be part of the metric discussion not only to bring in the user's perspective but to keep in check how a particular metric can influence or be influenced by the whole product ecosystem.</p>
<p>For each business metric, the product can have a user-centered metric as well as a counter-metric to keep the bigger picture in play. </p>
<p>Forget growth hacks</p>
<p>Counter-metrics can help you to avoid both the "get rich quick" scheme mentality of crazy growth metrics as well as the "end justifies the means" philosophy that justifies creating addictive and unhealthy behaviors in users.</p>
<p>→</p>
<p>Follow your heart</p>
<p>Google's HEART framework is a great way to start talking about metrics. Remember that your users don't just want to be "happy"; try to be specific about how each goal translates into their personal objectives.</p>
<p>→</p>
<p>Measure what you value</p>
<p>If improving people's relationships with tech is something you value, you should measure it — and make people accountable for it. Quoting Kim Goodwin at the IAC 2019: "until we measure what we value, we will over-value what we measure".</p>
<p>→</p>
<p>In our process</p>
<p>Anticipate unhealthy behaviors</p>
<p>Imagine this: A young woman joins the LGBTQ choir at her college. Her choir leader adds her to the group’s Facebook page, and Facebook automatically shares this action on the student’s Newsfeed. However, she had not come out to her family yet. When they see the news on Facebook, the extremely religious community from her hometown sends her hate mail. (Mike Monteiro)</p>
<p>As designers, we are used to thinking about happy paths, ideal flows, and all the great ways people will engage with our products. But what are some of the ways they can cause unintended harms?</p>
<p>Here are some questions you can use to brainstorm on your own or with your team:</p>
<p>Depression</p>
<p>Is your product stimulating depressive behaviors, or could your product experience aggravate symptoms of depression? How might a person with depression or someone experiencing suicidal thoughts use your product to hurt themselves?</p>
<p>Addiction</p>
<p>Does your product encourage addictive behaviors? What is the worst case scenario for users susceptible to addiction?</p>
<p>Exclusion</p>
<p>Is your product accessible to all user groups, regardless of disabilities, culture, education levels, and language? Is it possible that your product could be used to exclude certain groups? Or does your product unwittingly perpetuate cycles of exclusion?</p>
<p>Oversharing </p>
<p>Does your product encourage sharing personal information? What are some of the possible negative outcomes of that overexposure? What emotions can content trigger in other users and what kinds of effects might these emotions have?</p>
<p>Abusive relationships</p>
<p>Could someone take advantage of your product or platform to create a relationship of unhealthy dependence or domination with another user (e.g. blackmail, bribery)?</p>
<p>How to act:</p>
<p>Brainstorm unintended, unhealthy behaviors</p>
<p>Consider how people could misuse your features and what type of bad behaviors can happen currently and in the future.</p>
<p>→</p>
<p>Dive deeper in user research</p>
<p>How would these behaviors make people feel? Use research not only to test the desired flow but also when your product fails.</p>
<p>→</p>
<p>Quantify the current state</p>
<p>Include in your metrics and analysis the current state of bad behaviors as well as future risks that it can create.</p>
<p>→</p>
<p>Seek opportunity for positive impact</p>
<p>Think of ways your company can create a positive impact or educate users around the issue of healthier tech behaviors and then align these objectives with your product goals.</p>
<p>→</p>
<p>Generate awareness </p>
<p>Share your work on preventing unhealthy behaviors with your organization to increase awareness and buy-in.</p>
<p>→</p>
<p>In our organization</p>
<p>Convince your
C-levels</p>
<p>“</p>
<p>If your business depends on dark patterns to succeed, you’re just leaving yourself open to being disrupted.</p>
<p>—Harry Brignull</p>
<p>The threat of negative press is a powerful incentive for change in organizations — especially when it comes to those actions that depend on top-down decisions from high-up stakeholders. The mere possibility of having to deal with a PR crisis creates fear: no one wants to have their brand associated with crimes, catastrophes, or misuse of user data.</p>
<p>Sometimes mockups speak louder than strategy slides </p>
<p>As product designers, we shouldn’t be driving our decisions around negative PR headlines. But if we need to speak C-level language, mocking fake press releases are definitely an effective way to grab executive level attention.</p>
<p>Have a conversation about long-term health</p>
<p>Despite the fact that dark patterns bring short-term gains, experts agree that implementing them in your business is a bad idea. The initial boost in the number of new users rarely results in an increase of loyal customers, as deception tends to erode trust. Show the higher ups examples of companies who have been focusing too much on short-term goals and struggling to maintain their long-term platform health — as well as the initiatives they have started to take to fix that issue.</p>
<p>→</p>
<p>Create actionable fear</p>
<p>Write and mock up fake headlines that shows the bad behaviors that can happen in your platform. Include them in your presentations and pose the question, “What can we do to avoid these issues?” For each problem you bring to colleagues’ attention, make sure to follow up with tangible design principles (or Dos and Don’ts slides) that will help your team avoid worst-case scenarios. </p>
<p>→</p>
<p>Show positive results</p>
<p>Remind your team of past initiatives and design updates your company has made to control bad behavior, and the results you have seen. Building on top of previous efforts will feel less daunting than creating net new initiatives or features.</p>
<p>→</p>
<p>In our organization</p>
<p>Spread healthier habits at work</p>
<p>“</p>
<p>We can’t change a system unless we have a shared understanding and shared language.</p>
<p>—Tristan Harris</p>
<p>If you work in an environment where people don't respect each other’s use of tech, chances are you are not going to advocate being respectful of the tech habits of your own users.</p>
<p>How to act:</p>
<p>Respect people's calendars</p>
<p>Don’t schedule too many meetings in a row, after hours, or during lunchtime; Just because you found a magic spot on their calendar doesn't mean that the person is available.</p>
<p>→</p>
<p>Plan your meetings</p>
<p>A meeting shouldn't be a surprise. Make everyone comfortable by communicating your agenda in advance Share artifacts before the meeting and reserve the first few minutes for colleagues to read them in silence so that everyone is up-to-speed before the discussion starts.</p>
<p>→</p>
<p>Don't bring your computer to a meeting</p>
<p>If you don't need your computer in the meeting, leaving it at your desk can help you focus your attention and make the most of the time with your team. Likewise, avoid checking your phone (or don't even bring it).</p>
<p>→</p>
<p>Send shorter emails and don't Slack after hours</p>
<p>The easiest it is to send a message, bigger are the chances that people will misuse it. The message goal is not to get it out of your way, but to share it with someone else. Therefore, the receiver side is more important than yours as a sender.</p>
<p>→</p>
<p>Don't rush to reply or to follow up</p>
<p>If it is that urgent (it rarely is), talking in person might be more effective. Give people time.</p>
<p>→</p>
<p>Use whiteboards more often</p>
<p>Whiteboards, pen and paper, and the gold-old post-its can help to visualize what is being discussed, improving alignment, collaboration, and focus.</p>
<p>→</p>
<p>Discuss work policies</p>
<p>Discuss with your team which practices you could adjust or implement (e.g. remote work, meeting frequency, feedback channels) in your company to encourage a healthier work-life balance.</p>
<p>→</p>
<p>Run retrospectives</p>
<p>Retrospective meetings are a great way to check-in with people about how they are feeling regarding workloads and team dynamics. Use this opportunity to check on whether people are implementing healthier tech habits or if they need more guidance or encouragement.</p>
<p>→</p>
<p>Lead by example</p>
<p>Design directors and managers: lead by example. If you don’t pull out your phone during a meeting, chances are no one else in the room will either.</p>
<p>→</p>
<p>In our community</p>
<p>Engage beyond panels</p>
<p>If design is the rendering of intent, just having the intention is not enough: we need to execute it. How can we engage past our own bubble to make real impact in the world?</p>
<p>→</p>
<p>Reach out to other specialists</p>
<p>While designers hold much of the responsibility for the impact of technology on people's lives, professionals like sociologists, anthropologists, and other researchers who study our relationship with technology hold valuable insights into what we do.</p>
<p>Go beyond your own bubble</p>
<p>The best people to talk to about kids and tech? Parents. The best people to talk to about tech in schools? Students and teachers. Join conversations with people who have a shared interest in this topic, not just a shared background with you.</p>
<p>→</p>
<p>Be a team player</p>
<p>We don't hold the answers. Often our role is facilitating rather than solving it. Give support to the specialists and groups that are making a difference.</p>
<p>→</p>
<p>Volunteer your craft</p>
<p>Instead of just talking about it, make your craft available to help non profits (or build side projects) that are making a difference in creating a healthier relationship with technology.</p>
<p>→</p>
<p>In our personal life</p>
<p>Design your own tech diet</p>
<p>Look at the world around you: the spaces, objects, and interfaces you interact with on a daily basis. As a designer, you could be thinking about how to best design these things — and how creating the right digital guardrails can have a positive impact on your routine.</p>
<p>Understand your own use cases</p>
<p>Asking yourself questions like these will help you identify parts of your day where you could be spending less time or making less decisions:</p>
<p>• How many times through the course of a workday do you reach for a pen and a piece of paper to sketch something out?</p>
<p>• How do you dress on the weekdays (when you are in a hurry) vs. on the weekends (when you may have more time, and feel a little more adventurous)?</p>
<p>• What are the three things you need to bring with you every time you leave the house?</p>
<p>→</p>
<p>Defining your personal KPIs</p>
<p>The next step is to define what is important to you. What are you trying to achieve with a simpler or easier life, and why? What are the personal metrics you should design against?</p>
<p>• Less time spent: what are the tasks you repeat every day that can be optimized or automated to save you time? </p>
<p>• Less forgetting: how can you reduce the number of times you forget things? </p>
<p>• Less decision-making: how can you reduce the number of decisions you have to make throughout the day?</p>
<p>→</p>
<p>Implement and iterate</p>
<p>Finally, time to take action.</p>
<p>• Turn off badges and notifications on your phone</p>
<p>• Move apps away from your phone home screen and open less important apps by typing</p>
<p>• Charge your phone outside the bedroom</p>
<p>• Find time to go offline for a few hours a day</p>
<p>→</p>
<p>Designing your life begins with designing the environment around you. Most importantly: share these new behaviors with your family, friends, and people who do not work in tech. As early adopters of technology, we are responsible for influencing the less nerdy folks around us.</p>
<p>Futher reading:</p>
<p>The Informed Life →</p>
<p>The Informed Life is an interview-based podcast by Jorge Arango that explores how people from different fields manage their personal information ecosystems to be more effective. </p>
<p>In our personal life</p>
<p>Hold other companies accountable</p>
<p>“</p>
<p>It doesn’t matter if our field holds values like respect dear, if we’re not able to get businesses and institutions to adopt those values and apply them to their work.</p>
<p>—Cyd Harrell</p>
<p>In the past few years, there has been a bigger mobilization to make companies accountable for bad practices in their workplace and in their products. To mitigate a potential crisis, companies started to make announcements about privacy and well-being, but without actually changing their business practices. As designers, we can take a stand against addictive engagement — and actually do something about it.</p>
<p>Report as spam</p>
<p>Any time you receive an unsolicited email or phone call, or are added to a distribution list without permission, use the tools at your disposal to flag this content as inappropriate.</p>
<p>Leave honest reviews</p>
<p>Frustrated with an app that is creating anxiety or triggering unhealthy emotions? Leave a comment on the app store so other people can be better informed before deciding to download it.</p>
<p>Change your consumption habits</p>
<p>Choose companies whose values align with yours. Choose companies that respect your time and attention. Complaining about a social network but continuing to use it won’t make change happen.</p>
<p>Tweet about it</p>
<p>See a dark pattern? Take a screenshot, tweet it, and tag the company. Companies are always tracking mentions to anticipate PR nightmares. This is not about public-shaming other designers, but creating action within that company — while also increasing awareness among your friends and followers about the products they use.</p>
<p>Dear @Linkedin, why don’t you include the message in the email itself? Do we really need the red notification badge at the top?</p>
<p>It’s not a detox, it’s a re-education</p>
<p>Be wary of “digital detoxes”. Similar to our relationship with food, short-term fad diets don’t create long-lasting change but often instill a sense of failure and shame instead.</p>
<p>Digital nutrition is about developing and implementing cognitive skills and creating new habits to help us stay in control of our technology consumption.</p>
<p>We know that calls for change are easier said than done. The reality of the corporate world is harsh, and leaves very little room for anything that is not driving short-term business results. Designers are in a unique position to spark change, by influencing product decisions, C-level execs and users themselves. To be the change we want to see in the world, we need to start somewhere.</p>
</article>


<hr>

<footer>
<p>
<a href="/david/" title="Aller à l’accueil">🏠</a> •
<a href="/david/log/" title="Accès au flux RSS">🤖</a> •
<a href="http://larlet.com" title="Go to my English profile" data-instant>🇨🇦</a> •
<a href="mailto:david%40larlet.fr" title="Envoyer un courriel">📮</a> •
<abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">🧚</abbr>
</p>
<template id="theme-selector">
<form>
<fieldset>
<legend>Thème</legend>
<label>
<input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
</label>
<label>
<input type="radio" value="dark" name="chosen-color-scheme"> Foncé
</label>
<label>
<input type="radio" value="light" name="chosen-color-scheme"> Clair
</label>
</fieldset>
</form>
</template>
</footer>
<script>
function loadThemeForm(templateName) {
const themeSelectorTemplate = document.querySelector(templateName)
const form = themeSelectorTemplate.content.firstElementChild
themeSelectorTemplate.replaceWith(form)

form.addEventListener('change', (e) => {
const chosenColorScheme = e.target.value
localStorage.setItem('theme', chosenColorScheme)
toggleTheme(chosenColorScheme)
})

const selectedTheme = localStorage.getItem('theme')
if (selectedTheme && selectedTheme !== 'undefined') {
form.querySelector(`[value="${selectedTheme}"]`).checked = true
}
}

const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
window.addEventListener('load', () => {
let hasDarkRules = false
for (const styleSheet of Array.from(document.styleSheets)) {
let mediaRules = []
for (const cssRule of styleSheet.cssRules) {
if (cssRule.type !== CSSRule.MEDIA_RULE) {
continue
}
// WARNING: Safari does not have/supports `conditionText`.
if (cssRule.conditionText) {
if (cssRule.conditionText !== prefersColorSchemeDark) {
continue
}
} else {
if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
continue
}
}
mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
}

// WARNING: do not try to insert a Rule to a styleSheet you are
// currently iterating on, otherwise the browser will be stuck
// in a infinite loop…
for (const mediaRule of mediaRules) {
styleSheet.insertRule(mediaRule.cssText)
hasDarkRules = true
}
}
if (hasDarkRules) {
loadThemeForm('#theme-selector')
}
})
</script>
</body>
</html>

+ 1019
- 0
cache/2021/3159c32fa194458a63b546ab789e8aed/index.md
File diff suppressed because it is too large
View File


+ 181
- 0
cache/2021/837e11a57aa3ddcba084963c247f45a6/index.html View File

@@ -0,0 +1,181 @@
<!doctype html><!-- This is a valid HTML5 document. -->
<!-- Screen readers, SEO, extensions and so on. -->
<html lang="fr">
<!-- Has to be within the first 1024 bytes, hence before the <title>
See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
<meta charset="utf-8">
<!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
<!-- The viewport meta is quite crowded and we are responsible for that.
See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
<meta name="viewport" content="width=device-width,initial-scale=1">
<!-- Required to make a valid HTML5 document. -->
<title>What Is Going To Happen In 2021 (archive) — David Larlet</title>
<meta name="description" content="Publication mise en cache pour en conserver une trace.">
<!-- That good ol' feed, subscribe :). -->
<link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
<!-- Generated from https://realfavicongenerator.net/ such a mess. -->
<link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
<link rel="manifest" href="/static/david/icons2/site.webmanifest">
<link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
<link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
<meta name="msapplication-TileColor" content="#f0f0ea">
<meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
<meta name="theme-color" content="#f0f0ea">
<!-- Documented, feel free to shoot an email. -->
<link rel="stylesheet" href="/static/david/css/style_2020-06-19.css">
<!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<script>
function toggleTheme(themeName) {
document.documentElement.classList.toggle(
'forced-dark',
themeName === 'dark'
)
document.documentElement.classList.toggle(
'forced-light',
themeName === 'light'
)
}
const selectedTheme = localStorage.getItem('theme')
if (selectedTheme !== 'undefined') {
toggleTheme(selectedTheme)
}
</script>

<meta name="robots" content="noindex, nofollow">
<meta content="origin-when-cross-origin" name="referrer">
<!-- Canonical URL for SEO purposes -->
<link rel="canonical" href="https://avc.com/2021/01/what-is-going-to-happen-in-2021/">

<body class="remarkdown h1-underline h2-underline h3-underline hr-center ul-star pre-tick">

<article>
<header>
<h1>What Is Going To Happen In 2021</h1>
</header>
<nav>
<p class="center">
<a href="/david/" title="Aller à l’accueil">🏠</a> •
<a href="https://avc.com/2021/01/what-is-going-to-happen-in-2021/" title="Lien vers le contenu original">Source originale</a>
</p>
</nav>
<hr>
<p>Hi Everyone. Happy 2021.</p>

<p>Today, as is my custom on the first day of the new year, I am going to take a stab at what the year ahead will bring. I find it useful to think about what we are in for. It helps me invest and advise the companies we are invested in. Like our investing, I will get some of these right and some wrong. But having a point of view is very helpful when operating in a world that is full of uncertainty.</p>

<p>Let’s start with the elephant in the room. The Covid Pandemic will end in the developed world in 2021. I think we will see the end of the Covid Pandemic in the US sometime in the second quarter. I believe the US will work out the challenges we are having getting out of the gate and will be vaccinating at least 40mm people a month in the US in the first quarter. When you add that to <a href="https://www.cdc.gov/coronavirus/2019-ncov/cases-updates/burden.html">the 90mm people in the US that the CDC believes have already been infected</a>, we will have well over 200mm people in the US who have some protection from the virus by the end of March. By the end of the second quarter in the US, anyone who wants to be vaccinated will have been able to do so. All of this will be aided by at least two additional approved vaccines in the US in January and new and improved protocols, like emphasizing the first dose over the second one.</p>

<p>The second half of 2021 will be marked by two conflicting trends. First, we will see people returning in droves to offices, restaurants, bars, clubs, gyms, stadiums, concerts, parties, travel, theaters, and anywhere that they can be social with others, ideally many others. I personally cannot wait to do all of that when it is safe to do so.</p>

<p>But ironically, this mass socializing trend will not materially and/or permanently change many behaviors we adopted in the Covid Pandemic. I believe that we will continue to want to work from home, exercise from home, shop from home, watch first run movies from home, order in, livestream, and all of the other new behaviors we learned to enjoy and perfect in the last year.</p>

<p>Where all of this shakes out will be the big reveal of 2021 and will impact many tech companies and many tech stocks. As <a href="https://avc.com/2020/12/what-happened-in-2020/">I wrote yesterday</a>, I think the trends that were accelerated in 2020 will not reverse in 2021, although the slope of the adoption curves will likely flatten a fair bit.</p>

<p>While we are out mass socializing, we will also be picking up the pieces of our world that was shattered by the pandemic. In the US, we have racial equity issues that are longstanding, real and demanding to be addressed. We also have an economy that is in tatters. And we have sectors of our economy like retail, commercial real estate, carbon based energy, and more that will never be the same. The restructuring of our economy and government and corporate balance sheets and income statements that have been blown wide open will take a decade or more to work out.</p>

<p>Sitting above all of this is an atmosphere that is getting warmer by the day. As I wrote in <a href="https://avc.com/2020/01/what-will-happen-in-the-2020s/">last year’s looking forward post</a>:</p>

<blockquote class="wp-block-quote"><p>The looming climate crisis will be to this century what the two world wars were to the previous one. It will require countries and institutions to re-allocate capital from other endeavors to fight against a warming planet. </p><cite>https://avc.com/2020/01/what-will-happen-in-the-2020s/</cite></blockquote>

<p>At USV, we have begun that reallocation of capital and we will be investing heavily in companies and technologies that can help the world address this existential threat. I believe that many of our colleagues in the venture capital world will do the same because not only does the world need this investment, it will generate fantastic returns too. Climate will be to this decade what cloud was to the last one.</p>

<p>The twin terrors of the Covid Pandemic and the Climate Crisis will drive the great US migration of the 21st century and we are already experiencing it. We will see it accelerate in 2021. If, because of what we learned in the Covid Pandemic, a good job no longer requires someone to live in a low lying flood-prone city like Miami or NYC or a city that is burning like SF or LA, we will see many people in the US choose to leave those places and adopt new homes that are less impacted by the climate crisis. We call this “adapting to the climate crisis” at USV, and this will be a huge investable trend for many years to come.</p>

<p>I believe that governments will respond to all of these economic challenges by continuing to print fiat money without restraint and by taxing and regulating innovative new companies to protect old and dying companies. This will lead investors to continue to allocate capital to new forms of money (crypto) and new ways of creating and financing innovation (decentralized projects and organizations). We are already seeing that happen in the finance sector, with breakout projects in decentralized finance in 2020 like Compound, Yearn, and Uniswap (a USV funded project). We will see this approach accelerate in 2021 and expand into areas beyond the financial sector. The idea of financing and executing innovation inside of a global decentralized autonomous organization is such a powerful idea and one whose time has come.</p>

<p>As I go back and re-read this post, I am struck by how obvious and unprovocative all of these predictions are. Either that means that I am not getting far out enough on the curve to see things before everyone else does, or it means that the trends that will define 2021 have been building for years and are finally coming of age. Maybe it is a bit of both.</p>

<p>In any case, 2021 will be a year of returning to normal, but it will be a new normal and not like one we have experienced before. Adapting to change is my mantra for 2021. Happy New Year everyone.</p>
</article>


<hr>

<footer>
<p>
<a href="/david/" title="Aller à l’accueil">🏠</a> •
<a href="/david/log/" title="Accès au flux RSS">🤖</a> •
<a href="http://larlet.com" title="Go to my English profile" data-instant>🇨🇦</a> •
<a href="mailto:david%40larlet.fr" title="Envoyer un courriel">📮</a> •
<abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">🧚</abbr>
</p>
<template id="theme-selector">
<form>
<fieldset>
<legend>Thème</legend>
<label>
<input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
</label>
<label>
<input type="radio" value="dark" name="chosen-color-scheme"> Foncé
</label>
<label>
<input type="radio" value="light" name="chosen-color-scheme"> Clair
</label>
</fieldset>
</form>
</template>
</footer>
<script>
function loadThemeForm(templateName) {
const themeSelectorTemplate = document.querySelector(templateName)
const form = themeSelectorTemplate.content.firstElementChild
themeSelectorTemplate.replaceWith(form)

form.addEventListener('change', (e) => {
const chosenColorScheme = e.target.value
localStorage.setItem('theme', chosenColorScheme)
toggleTheme(chosenColorScheme)
})

const selectedTheme = localStorage.getItem('theme')
if (selectedTheme && selectedTheme !== 'undefined') {
form.querySelector(`[value="${selectedTheme}"]`).checked = true
}
}

const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
window.addEventListener('load', () => {
let hasDarkRules = false
for (const styleSheet of Array.from(document.styleSheets)) {
let mediaRules = []
for (const cssRule of styleSheet.cssRules) {
if (cssRule.type !== CSSRule.MEDIA_RULE) {
continue
}
// WARNING: Safari does not have/supports `conditionText`.
if (cssRule.conditionText) {
if (cssRule.conditionText !== prefersColorSchemeDark) {
continue
}
} else {
if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
continue
}
}
mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
}

// WARNING: do not try to insert a Rule to a styleSheet you are
// currently iterating on, otherwise the browser will be stuck
// in a infinite loop…
for (const mediaRule of mediaRules) {
styleSheet.insertRule(mediaRule.cssText)
hasDarkRules = true
}
}
if (hasDarkRules) {
loadThemeForm('#theme-selector')
}
})
</script>
</body>
</html>

+ 18
- 0
cache/2021/837e11a57aa3ddcba084963c247f45a6/index.md View File

@@ -0,0 +1,18 @@
title: What Is Going To Happen In 2021
url: https://avc.com/2021/01/what-is-going-to-happen-in-2021/
hash_url: 837e11a57aa3ddcba084963c247f45a6

<p>Hi Everyone. Happy 2021.</p>
<p>Today, as is my custom on the first day of the new year, I am going to take a stab at what the year ahead will bring. I find it useful to think about what we are in for. It helps me invest and advise the companies we are invested in. Like our investing, I will get some of these right and some wrong. But having a point of view is very helpful when operating in a world that is full of uncertainty.</p>
<p>Let’s start with the elephant in the room. The Covid Pandemic will end in the developed world in 2021. I think we will see the end of the Covid Pandemic in the US sometime in the second quarter. I believe the US will work out the challenges we are having getting out of the gate and will be vaccinating at least 40mm people a month in the US in the first quarter. When you add that to <a href="https://www.cdc.gov/coronavirus/2019-ncov/cases-updates/burden.html">the 90mm people in the US that the CDC believes have already been infected</a>, we will have well over 200mm people in the US who have some protection from the virus by the end of March. By the end of the second quarter in the US, anyone who wants to be vaccinated will have been able to do so. All of this will be aided by at least two additional approved vaccines in the US in January and new and improved protocols, like emphasizing the first dose over the second one.</p>
<p>The second half of 2021 will be marked by two conflicting trends. First, we will see people returning in droves to offices, restaurants, bars, clubs, gyms, stadiums, concerts, parties, travel, theaters, and anywhere that they can be social with others, ideally many others. I personally cannot wait to do all of that when it is safe to do so.</p>
<p>But ironically, this mass socializing trend will not materially and/or permanently change many behaviors we adopted in the Covid Pandemic. I believe that we will continue to want to work from home, exercise from home, shop from home, watch first run movies from home, order in, livestream, and all of the other new behaviors we learned to enjoy and perfect in the last year.</p>
<p>Where all of this shakes out will be the big reveal of 2021 and will impact many tech companies and many tech stocks. As <a href="https://avc.com/2020/12/what-happened-in-2020/">I wrote yesterday</a>, I think the trends that were accelerated in 2020 will not reverse in 2021, although the slope of the adoption curves will likely flatten a fair bit.</p>
<p>While we are out mass socializing, we will also be picking up the pieces of our world that was shattered by the pandemic. In the US, we have racial equity issues that are longstanding, real and demanding to be addressed. We also have an economy that is in tatters. And we have sectors of our economy like retail, commercial real estate, carbon based energy, and more that will never be the same. The restructuring of our economy and government and corporate balance sheets and income statements that have been blown wide open will take a decade or more to work out.</p>
<p>Sitting above all of this is an atmosphere that is getting warmer by the day. As I wrote in <a href="https://avc.com/2020/01/what-will-happen-in-the-2020s/">last year’s looking forward post</a>:</p>
<blockquote class="wp-block-quote"><p>The looming climate crisis will be to this century what the two world wars were to the previous one. It will require countries and institutions to re-allocate capital from other endeavors to fight against a warming planet. </p><cite>https://avc.com/2020/01/what-will-happen-in-the-2020s/</cite></blockquote>
<p>At USV, we have begun that reallocation of capital and we will be investing heavily in companies and technologies that can help the world address this existential threat. I believe that many of our colleagues in the venture capital world will do the same because not only does the world need this investment, it will generate fantastic returns too. Climate will be to this decade what cloud was to the last one.</p>
<p>The twin terrors of the Covid Pandemic and the Climate Crisis will drive the great US migration of the 21st century and we are already experiencing it. We will see it accelerate in 2021. If, because of what we learned in the Covid Pandemic, a good job no longer requires someone to live in a low lying flood-prone city like Miami or NYC or a city that is burning like SF or LA, we will see many people in the US choose to leave those places and adopt new homes that are less impacted by the climate crisis. We call this “adapting to the climate crisis” at USV, and this will be a huge investable trend for many years to come.</p>
<p>I believe that governments will respond to all of these economic challenges by continuing to print fiat money without restraint and by taxing and regulating innovative new companies to protect old and dying companies. This will lead investors to continue to allocate capital to new forms of money (crypto) and new ways of creating and financing innovation (decentralized projects and organizations). We are already seeing that happen in the finance sector, with breakout projects in decentralized finance in 2020 like Compound, Yearn, and Uniswap (a USV funded project). We will see this approach accelerate in 2021 and expand into areas beyond the financial sector. The idea of financing and executing innovation inside of a global decentralized autonomous organization is such a powerful idea and one whose time has come.</p>
<p>As I go back and re-read this post, I am struck by how obvious and unprovocative all of these predictions are. Either that means that I am not getting far out enough on the curve to see things before everyone else does, or it means that the trends that will define 2021 have been building for years and are finally coming of age. Maybe it is a bit of both.</p>
<p>In any case, 2021 will be a year of returning to normal, but it will be a new normal and not like one we have experienced before. Adapting to change is my mantra for 2021. Happy New Year everyone.</p>

+ 155
- 0
cache/2021/index.html View File

@@ -0,0 +1,155 @@
<!doctype html><!-- This is a valid HTML5 document. -->
<!-- Screen readers, SEO, extensions and so on. -->
<html lang="fr">
<!-- Has to be within the first 1024 bytes, hence before the <title>
See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
<meta charset="utf-8">
<!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
<!-- The viewport meta is quite crowded and we are responsible for that.
See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
<meta name="viewport" content="width=device-width,initial-scale=1">
<!-- Required to make a valid HTML5 document. -->
<title>Articles archivés — David Larlet</title>
<meta name="description" content="Lien vers les publications externes mises en cache.">
<!-- That good ol' feed, subscribe :). -->
<link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
<!-- Generated from https://realfavicongenerator.net/ such a mess. -->
<link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
<link rel="manifest" href="/static/david/icons2/site.webmanifest">
<link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
<link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
<meta name="msapplication-TileColor" content="#f0f0ea">
<meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
<meta name="theme-color" content="#f0f0ea">
<!-- Documented, feel free to shoot an email. -->
<link rel="stylesheet" href="/static/david/css/style_2020-06-19.css">
<!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<script>
function toggleTheme(themeName) {
document.documentElement.classList.toggle(
'forced-dark',
themeName === 'dark'
)
document.documentElement.classList.toggle(
'forced-light',
themeName === 'light'
)
}
const selectedTheme = localStorage.getItem('theme')
if (selectedTheme !== 'undefined') {
toggleTheme(selectedTheme)
}
</script>

<body class="remarkdown h1-underline h2-underline h3-underline hr-center ul-star pre-tick">

<header>
<h1>Articles archivés</h1>
</header>
<nav>
<p class="center">
<a href="/david/" title="Aller à l’accueil">🏠</a>
</p>
</nav>
<hr>
<main>
<ul>
<li><a href="/david/cache/2020/3159c32fa194458a63b546ab789e8aed/" title="Accès à l’article dans le cache local : The world needs a tech diet; here is how designers can help">The world needs a tech diet; here is how designers can help</a> (<a href="https://essays.uxdesign.cc/tech-diet/" title="Accès à l’article original distant : The world needs a tech diet; here is how designers can help">original</a>)</li>
<li><a href="/david/cache/2020/837e11a57aa3ddcba084963c247f45a6/" title="Accès à l’article dans le cache local : What Is Going To Happen In 2021">What Is Going To Happen In 2021</a> (<a href="https://avc.com/2021/01/what-is-going-to-happen-in-2021/" title="Accès à l’article original distant : What Is Going To Happen In 2021">original</a>)</li>
</ul>
</main>


<hr>

<footer>
<p>
<a href="/david/" title="Aller à l’accueil">🏠</a> •
<a href="/david/log/" title="Accès au flux RSS">🤖</a> •
<a href="http://larlet.com" title="Go to my English profile" data-instant>🇨🇦</a> •
<a href="mailto:david%40larlet.fr" title="Envoyer un courriel">📮</a> •
<abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">🧚</abbr>
</p>
<template id="theme-selector">
<form>
<fieldset>
<legend>Thème</legend>
<label>
<input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
</label>
<label>
<input type="radio" value="dark" name="chosen-color-scheme"> Foncé
</label>
<label>
<input type="radio" value="light" name="chosen-color-scheme"> Clair
</label>
</fieldset>
</form>
</template>
</footer>
<script>
function loadThemeForm(templateName) {
const themeSelectorTemplate = document.querySelector(templateName)
const form = themeSelectorTemplate.content.firstElementChild
themeSelectorTemplate.replaceWith(form)

form.addEventListener('change', (e) => {
const chosenColorScheme = e.target.value
localStorage.setItem('theme', chosenColorScheme)
toggleTheme(chosenColorScheme)
})

const selectedTheme = localStorage.getItem('theme')
if (selectedTheme && selectedTheme !== 'undefined') {
form.querySelector(`[value="${selectedTheme}"]`).checked = true
}
}

const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
window.addEventListener('load', () => {
let hasDarkRules = false
for (const styleSheet of Array.from(document.styleSheets)) {
let mediaRules = []
for (const cssRule of styleSheet.cssRules) {
if (cssRule.type !== CSSRule.MEDIA_RULE) {
continue
}
// WARNING: Safari does not have/supports `conditionText`.
if (cssRule.conditionText) {
if (cssRule.conditionText !== prefersColorSchemeDark) {
continue
}
} else {
if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
continue
}
}
mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
}

// WARNING: do not try to insert a Rule to a styleSheet you are
// currently iterating on, otherwise the browser will be stuck
// in a infinite loop…
for (const mediaRule of mediaRules) {
styleSheet.insertRule(mediaRule.cssText)
hasDarkRules = true
}
}
if (hasDarkRules) {
loadThemeForm('#theme-selector')
}
})
</script>
</body>
</html>

+ 2
- 2
templates/base_2020.html View File

@@ -32,7 +32,7 @@
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
<script type="text/javascript">
<script>
function toggleTheme(themeName) {
document.documentElement.classList.toggle(
'forced-dark',
@@ -79,7 +79,7 @@
</form>
</template>
</footer>
<script type="text/javascript">
<script>
function loadThemeForm(templateName) {
const themeSelectorTemplate = document.querySelector(templateName)
const form = themeSelectorTemplate.content.firstElementChild

+ 1
- 3
templates/cache_article.html View File

@@ -19,8 +19,6 @@
</p>
</nav>
<hr>
<main>
{{ cache.content }}
</main>
{{ cache.content }}
</article>
{% endblock content %}

Loading…
Cancel
Save