Planet Iron Blogger SF

August 18, 2022

Fuzhou Food

Steamed Mussels, 清蒸蚌

When we started this blog, the goal was just to capture the daily foods we ate as a kid, so that we can share them with our own families. Growing up in a coastal city, our parents ate a lot of seafood, including simple steamed dishes like this one.

Ingredients

  • mussels

  • garlic

  • scallions

  • ginger

  • salt

Begin by washing the mussels. Since we eat them from the shell, we want to get rid of the dirt and grime off the shells.

It helps to soak them in saltwater (1 tsp salt) overnight at room temperature (~60 deg F). Aunt Kim says that this tricks the mussels into puking up their sand from their internal valves. If you don’t do this, there’s a risk of chewing sand when you eat them.

Inspect each mussel and rip off the byssus (the thin black strands). This is done as a courtesy to your guests, since you can’t eat them anyway.

Heat up a wok with oil, salt, and whole crushed garlic cloves. Make sure to crush the garlic beforehand to release the flavors, but take care not to burn the garlic. Then add sliced ginger and scallions.

Stir fry the mussels for 60 seconds. Afterwards add a small bowl of water, just enough to steam the mussels, but not boil them. Cover the wok and let the mussels steam until they open up.

You can try a mussel to test if it’s done. Depending on preference, you may like them more raw or well done. I tend to like it more on the raw side, especially if you do this recipe with clams.

Fuzhou Food is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.

by Fuzhou Food at August 18, 2022 05:00 PM

August 17, 2022

Doctor Popular

Yo-Yo Magic Tricks

When I used to work at a yo-yo kiosk, I used to prank my co-workers with these yo-yo magic tricks. I had been meaning to film them for years, but it wasn’t until I heard this funny episode of the 2.0 podcast that I finally got around to filming it. I used a short audio clip from that podcast in part one of my yo-yo magic trick videos.

See if you can figure out how I did them:

Hints: There is no editing or post production used in these tricks. They can be done in person. The tricks don’t involve the string around my wrist either. That’s just something I wear all the time.

The post Yo-Yo Magic Tricks appeared first on Doc Pop's Weblog.

by doc at August 17, 2022 04:56 PM

August 15, 2022

Certainly Strange

Pursuing a Mystery

My embroidered patch I made was largely inspired by the 2013 teaser/promo art, somewhat related to this one https://www.deviantart.com/cristi-b/art/Star-Trek-Online-373319906 But different. It was just Hakeev’s head and the planet, no Jarok, etc. And it was a different angle for the head. It might have been a different draft of the same piece, I don’t know. … Continue reading "Pursuing a Mystery"

by Steen at August 15, 2022 07:10 AM

Claire Kao

Vivek Sri

I have never seen this photo

This envelope reminds me of the day (in August 2017, I believe) that I took an instant camera, pointed it at myself, and snapped an instant photo—which I then quickly stuffed into a waiting envelope addressed to:

I HAVE NEVER SEEN THIS PHOTO
545 45TH STREET
OAKLAND, CA 94609
U.S.A.

The day after I took the photo, I put it in a mailbox. Two days after that it showed up in mine.

Five years and one week later, I’ve opened it:


If you couldn’t tell, I am an INTJ
More from my personal inventory

by I have never seen this photo at August 15, 2022 02:40 AM

August 10, 2022

I Like Turtles

Shutterbugs

/2022/08/10/shutterbugs.html

August 10, 2022 07:00 AM

August 09, 2022

Raymond Cheng

How to choose a localization approach for your React application

Choosing how to add localization to your application can be a complicated decision, because there are so many options out there. From code-based frameworks to third-party services that automatically rewrite your HTML, there is no silver bullet for localization. At Plasmic, we have been exploring the many options to better inform how we can support localization for our own application. Many tutorials assume you want to already want to use a code framework, like react-i18next, but that has implications for your team’s workflow. In this blog post we will survey different localization techniques you may be considering for your React application and discuss some of the trade-offs.

Why localize?

There are a number of considerations as you look to deploy your application to a global audience. First and foremost, translating the text on your app is critical to support the many non-English speaking users around the world, opening up new markets. Furthermore, displaying prices, dates, times, keyboard shortcuts, and graphics can greatly improve the user experience.

Comparing approaches to localization in React

When choosing an approach, there are a number of factors that you may want to consider:

  • Who writes the text on your app? Do engineers drive the process of choosing what text gets displayed or is there significant marketing copy that is owned by non-developers?
  • How often does the copy change? Does most of the text consist of short strings that are reused throughout the application (e.g. button labels)? Or are there frequent changes to marketing copy?
  • Who does the translation? Do you plan on hiring an outside agency or vendor to translate the strings? Or do you want to coordinate a crowd-sourcing effort to translate your strings?
  • How much engineering capacity do you have? Is there ongoing engineering capacity in the future, or will there only be engineering support at setup time?
  • How important is website performance? Optimizing your website performance may incur additional implementation costs compared to automated solutions.
  • Are there other systems that you need to integrate with? Such as content management systems (CMS), databases, or web hosting platforms
  • Do you need to integrate localization below the hood? HTML attributes, component props, or dynamically generated strings may also need translation in customized configurations.

In the following sections, we’ll compare the high-level categories of approaches: code-based frameworks, headless content management systems (CMS), and automated services.

  Code-based Headless CMS Automated Services
Setup difficulty High High Low
Requires developers to deploy new translations Yes No No
Performance Good Good Varies
Customizability (e.g. for HTML attributes) High High Low

Code-based localization frameworks

The natural choice for a React code base is to reach for a i18n library, such as react-i18next, react-intl, or lingui. There also framework-specific libraries, such as gatsby-plugin-i18n for Gatsby, and next-intl for Next.js. At a high-level, the architecture for most of these operate similarly, so I’ll use react-i18next code samples to illustrate the main concepts.

Code: How it works

Translation files

At the core of your localization workflow are translation files. These can be served as static files, or imported directly into code. While each library has different specifications for this file, at a high level translation files simply consist of strings used in the application, keyed by some unique identifier.

For example in react-i18next, you might serve 1 file at public/locales/en/translation.json for English:

{
  "title": "Welcome to react using react-i18next",
  "description": {
    "part1": "To get started, edit <1>src/App.js</1> and save to reload.",
    "part2": "Switch language between english and german using buttons above."
  }
}

and another file at public/locales/de/translation.json for German:

{
  "title": "Willkommen zu react und react-i18next",
  "description": {
    "part1": "Um loszulegen, ändere <1>src/App(DE).js</1> und speichere um neuzuladen.",
    "part2": "Wechsle die Sprache zwischen deutsch und englisch mit Hilfe der beiden Schalter."
  }
}

Library API

Developers then initialize the library with your configuration. In the following example, we choose to load the translation files over HTTP and leverage a language detector that automatically sets the locale based on the Accept-Language HTTP header.

import i18n from 'i18next'
import { initReactI18next } from 'react-i18next'
import Backend from 'i18next-http-backend'

import LanguageDetector from 'i18next-browser-languagedetector'

i18n
  .use(Backend)
  .use(LanguageDetector)
  .use(initReactI18next)
  .init({
    fallbackLng: 'en',
    debug: true,
    interpolation: {
      escapeValue: false, // not needed for react as it escapes by default
    },
  })
export default i18n

In the codebase, developers can use a translation function to look up strings for the user’s locale.

import { useTranslation } from 'react-i18next'

function MyComponent() {
  const { t, i18n } = useTranslation()
  return <h1>{t('Welcome to React')}</h1>
}

Many libraries also include a React component that you can directly use in the JSX tree:

import { Trans } from 'react-i18next'

export default function MyComponent() {
  return (
    <Trans>
      Welcome to <strong>React</strong>
    </Trans>
  )
}

Build-time static analysis

For developer convenience, most libraries also include tools to perform static analysis of the source code to extract translation keys/values into translation files.

$ i18next 'app/**/*.{js,hbs}' 'lib/**/*.{js,hbs}' [-oc]

While this can automate the aggregation of translation keys, developers will still need to populate translation files for each language they want to support.

Sourcing translations

Some teams manage translation themselves on a platform like Crowdin. Many teams will outsource their translation to an outside service. Some services leverage automated machine translations, such as Google Cloud Translation API. Other services, like Locize, Lokalise or Localazy will help you work with translation agencies to manually translate your files. In any of these cases, a teammate simply sends their translation files to an outside service. The developer can then commit the translated files back into code for testing.

Some translation platforms provide more seamless integration into code, removing the need to manually send translation files. For example, Locize can be loaded as a “backend” plugin into i18next so that translation files are fetched directly from their CDN. This way, users can directly modify strings, source translations, and publish results all from a single web application.

import i18next from 'i18next';
import Backend from 'i18next-locize-backend';

i18next
  .use(Backend)
  .init({
    // ...other options
    backend: {
      projectId: '[PROJECT_ID]',
      apiKey: '[API_KEY]',
      referenceLng: '[LNG]'
    }
  });

Code: Pros

Implementing internationalization in code (i.e. via a library) has a number of benefits

  • Customizability: Developers have full control over how internationalization is implemented. At its core, i18n libraries simply provide a lookup table for strings, which developers can use anywhere in the codebase (e.g. HTML attributes, component props, dynamically-generated strings), anywhere in the application architecture (e.g. client-side or server-side), and at any time (e.g. at request time, at build-time, or on client load).
  • Optimized performance: Developers can tailor the i18n setup to the performance needs of their application. When paired with static site generation (SSG), developers can implement internationalization in a way that incurs virtually no performance impact to the user.

Code: Cons

  • Implementation cost: Developers are required to at least initially set up internationalization for their application, which includes a number of factors to consider, such as language detection, routing, performance, and instrumentation.
  • High friction: Because translation files are often checked into code, developers are also required to make any changes and test the results. When developers are not the primary authors of text copy, this can lead to higher friction to production.

Headless CMS-based approaches

Headless content management systems (CMS), such as Contentful or Sanity, often support writing content in multiple languages. By storing your translated content in a CMS, this simplifies content editing for non-developers and translators, who can manage content through a web application.

CMS: How it works

Headless CMS systems, like Contentful or Sanity, require a developer to integrate their system into an existing codebase. However once set up, non-developers can make new content or edit existing content entirely from the CMS web application.

For example, in Contentful, you can manage which languages and locales your application supports.

add-locale

After you specify which languages your site supports, the content editor allows you to add translations to your content.

edit-content

Developers then retrieve localized content via the REST API, by specifying a localeparameter:

curl -X GET "https://cdn.contentful.com/spaces/<SPACE_ID>/entries/<ENTRY_ID>?access_token=<CONTENT_DELIVERY_KEY>&locale=de-AT"

Structured CMS data can then be used to populate the page. For example in Gatsby it might look like this (source):

// src/pages/index.de.js

class IndexPage extends React.Component {
  render() {
    var deProductEdges = []
    if (this.props.data.german !== null) {
      deProductEdges = this.props.data.german.edges
    }
    return (
      <Layout data={this.props.data} location={this.props.location}>
        <div style={ marginBottom: rhythm(2) }>
          <h3>de</h3>
          {deProductEdges.map(({ node }, i) => (
            <Product node={node} key={node.id} />
          ))}
        </div>
      </Layout>
    )
  }
}

export const pageQuery = graphql`
  query PageDeQuery {
    site {
      siteMetadata {
        languages {
          defaultLangKey
          langs
        }
      }
    }
    german: allContentfulProduct(filter: { node_locale: { eq: "de" } }) {
      edges {
        node {
          id
          contentful_id
          node_locale
          productName {
            productName
          }
          image {
            resolutions(width: 75) {
              ...GatsbyContentfulResolutions
            }
          }
        }
      }
    }
  }
`

How are CMS and code-based approaches different?

CMS-based approaches and code-based approaches share a number of similarities. Both store translated content as structured data, which developers can retrieve by locale. There also exist easy-to-use web applications to manage translated data.

However they differ predominantly in the developer interface, leading to drastically different code architectures. For code-based approaches, developers operate at the granularity of strings. Every string needs to be wrapped with a call to a i18n lookup function to find the proper translation.

In contrast, CMS systems allow you to define content types that embody a group of data, such as a blog post or product entry. When you retrieve data from a CMS, you get the result as a translated object, which you can use directly. While these APIs are different today, I anticipate future libraries to take from the best of both worlds.

CMS: Pros

  • Customizability: Developers have full control over how internationalization is implemented and how localized content is displayed.
  • Optimized performance: Developers can optimize the i18n setup to suit the performance needs of their application, similar to code-based frameworks.
  • Easy editing: Because data is stored in the CMS, non-developers can easily make changes to content. When paired with webhooks, the CMS can also trigger builds and deployments, all without getting a developer involved.

Code: Cons

  • Initial setup costs: Developers are needed to integrate localized content into the application, which will vary depending on application.

Automated services

There are a number of services that take it another step further, automating the collection of all strings from a live website in production, as well as dynamically rewriting the page with translations, such as Weglot, Localize, and Gtranslate.

Automated: How it works

These automated services typically include a library that users can add to their website. For example, the Weglot integration involves adding the following script to your document <head>(Source).

<script type="text/javascript" src="https://cdn.weglot.com/weglot.min.js"></script>
<script>Weglot.initialize({ api_key: 'YOUR_API_KEY' }); </script>

On page load, this script will detect all of the visible strings in your web pages and load them into a dashboard. The service will facilitate translations (either by machine or humans), which can all be managed from the web app. Once strings have been translated, future loads of the web page will also detect the user’s locale and automatically rewrite strings in the DOM to reflect the translations.

weglot-translate

Some services provide a server-side option. Instead of rewriting strings via client-side scripts, you configure your DNS to point to a translation proxy. This proxy server will similarly detect strings, rewrite the page, and cache content, which may lead to better website performance.

weglot-dns

Note: Many of these services can also be used from a developer API without the integration script. In this case, you can treat the service similarly to a CMS like above.

Automated: Pros

  • Simple setup: Setup simply involves adding a script tag into your document header.
  • Easy to use: Because strings are automatically detected, users can manage translations without changing their existing workflow.

Automated: Cons

  • Performance: If using client-side scripts, pages are dynamically rewritten at runtime on the client, which may result in noticeable delays to the user.
  • Limited customization: Because the integration scripts embody hard-coded functionality, there is often less ability to adapt the library for customized functionality.

Leveraging Plasmic for localization

Plasmic is a visual builder for the web, which makes it easy for content editors and designers to build and iterate on pages in a WYSIWYG editor, rendered within your existing website. Similar to other headless CMS systems, Plasmic enables you to support multiple locales for each webpage by creating new variants. This way, non-developers can visually design and edit the entire webpage in a collaborative environment.

However, Plasmic’s support for localization goes much deeper. We can also import your translation function from your code-based localization framework directly into Plasmic as a prop.

import { useTranslation } from 'react-i18next';
...
const { t, i18n } = useTranslation();
const translator: PlasmicTranslator = (key, opts) => t(key, { defaultValue: opts.message });
...
return <PlasmicRootProvider translator={translator}>...</PlasmicRootProvider>

Once registered, you can leverage these localized strings from your Plasmic project! Plasmic opens up the ability to leverage the best of both worlds from code-based approaches to headless CMS’s. For more details, see our Plasmic localization guide.

Choosing an approach

No single solution will be best approach in all use cases. Often times, the decision relates to where you want a developer to sit in the workflow, if at all. Automated solutions provide the simplest user experience, but may not work well for all use cases. Code frameworks and headless CMS solutions provide more customizability, but require developers to at least perform the setup. Regardless of which approach you choose, localization is one of the best ways to quickly open up new markets to your application.

August 09, 2022 08:40 AM

August 08, 2022

Doctor Popular

“Andorsand Interrobang”

It’s been a year or two since I thought about the Andorsand, a silly glyph I concocted for “and/or”, but today I found a song called “Andorsand Interrobang” by Bob Bralove, Henry Kaiser and Chris Muir. It’s a spacey synthy driven instrumental that really slaps:

The andorsand has also made appearances in this 99% Invisible article and a recent episode of the Secretly Incredibly Fascinating podcast.

The post “Andorsand Interrobang” appeared first on Doc Pop's Weblog.

by doc at August 08, 2022 11:28 PM

Why does AI think that the yo-yo emoji looks so beautiful?

Emoji are not displaying correctly in this post. For a better experience, read this article on https://doctorpopular.com/why-does-midjourney-create-beautiful-art-when-i-use-the-yo-yo-emoji/

Y’all know me, right? So you know, when I got access to generative art tools like Dalle 2 and Midjourney, the first thing I tried using as a prompt was the word “yo-yo”. That’s a no-brainer, and you may have already seen my video about it.

Using AI to reimagine yo-yo tricks

While making that video, I had a strange realization that anytime I used the ? (yo-yo emoji), I’d get a beautiful fantasy landscape that was filled with gorgeous pink and blue colors. Like this:

Midjourney prompt: “? –aspect 16:9” Midjourney prompt: “?” Midjourney prompt: “?” Midjourney prompt: “? –aspect 16:9” (one yo-yo emoji)

You see what I mean, right? Every time I use the prompt “?” (yo-yo emoji), I get images that feel like these beautiful science fiction landscapes. I wanted to test this out a little more, so here’s what happens when you try adding an extra ? (yo-yo emoji) to the prompt:

Midjourney prompt: “?? –aspect 16:9” (two yo-yo emojis)

Can you see it this time? Very distinct colors, outdoors, clouds… To me, it has the vibes of dawn in an N.K. Jemisin novel. Did you notice that several of these images have a figure facing away from the viewer, wearing a robe and a red hat? There’s one like that in the first batch of photos too. Hmmm…

Alright, let’s try three yo-yos:

Midjourney prompt: “??? –aspect 16:9” (three yo-yo emojis)

I should mention that the ? (yo-yo emoji) is one of the few emojis that has landed on a single default color yet. Depending on what browser you are using, you may see green, purple, red, or many other colors. I talk about that in this video:

Let’s add one more ? (yo-yo emoji):

Midjourney prompt: “???? –aspect 16:9” (four yo-yo emojis) Midjourney prompt: “????–aspect 16:9” (four yo-yo emojis)

Let’s go crazy:

Midjourney prompt: “???????????? –aspect 16:9” (12 yo-yo emojis) Midjourney prompt: “???????????? –aspect 16:9” (12 yo-yo emojis)

Still seeing towers and clouds, though it looks like the colors get slightly oranger when I add more yo-yos. Let’s try something completely different:

Midjourney prompt: “? –aspect 16:9”

Okay, this is useful. I tried using ? (nerd face emoji) as a prompt, and I felt like what I got was similar to the yo-yo emoji generated. What happens when we try the ? (shrug emoji) emoji?

Midjourney prompt: “? –aspect 16:9” Midjourney prompt: “? –aspect 16:9”

That’s interesting. Maybe this style of art is what happens anytime you input a single emoji as a prompt on Midjourney? Let’s try a different emoji to be sure:

Midjourney prompt: “? –aspect 16:9” Midjourney prompt: “? –aspect 16:9” Midjourney prompt: “? –aspect 16:9” (pretzel emoji)

Okay, that’s REALLY interesting! When I use the ? (yo-yo emoji) or ? (nerd glasses emoji), I don’t see anything in the AI generated images that looks like it understands the emojis, but when I use a ? (pretzel emoji) I see a lot of pastries. There are still clouds and pastel colors, but there are also cookies, scones, danishes, eggs, whipped cream, and other delights. This is the first emoji that the AI seems to “understand”. Huge air-quotes on the word “understand”.

I thought this might be because the AI has seen more examples of the ? (pretzel emoji) in its training, so it has a better time pulling up relevant results. Considering the ? (yo-yo emoji) isn’t extremely widely used, that could explain why I’m not seeing images with yo-yos in them, but looking at the statistics on emoji usage I see that the ? (nerd glasses emoji) is used far more frequently than the ? (pretzel emoji), but I’m not seeing images of people wearing glasses when I use that one… so why is ? (pretzel emoji) the only emoji so far that’s giving me results similar to the emoji?

What happens when we use ?? (coffee cup emoji)?

Midjourney prompt: “?? –aspect 16:9”

Okay, those both give me coffee vibes. It is worth pointing out that ?? (coffee cup emoji) and ? (pretzel emoji) are used far less frequently than ? (nerd glasses emoji), but they might get used in ways that are more consistent for the AI to generate images from. Let’s change things up. Let’s try using letters:

Midjourney prompt: “M –aspect 16:9” Midjourney prompt: “C –aspect 16:9”

Oh wow, those “C” images look great! Did you notice the hooded figure again? They appear in the ? (yo-yo emoji) prompts and in letters. A figure facing away from the viewer, wearing a long robe in a fantasy landscape setting. It’s almost like a ghost in the algorithm. I’m going to name them Aileen.

And what happens when we double the letters?

Midjourney prompt: “C C –aspect 16:9” Midjourney prompt: “M M –aspect 16:9”

So what have we learned? Not much.

  • When we use a ? (yo-yo emoji) as the singular prompt in Midjourney, we get a beautiful pink and blue image with clouds and spires that have nothing to do with the prompt.
  • Using other emojis like ? (nerd glasses emoji) or ? (shrug emoji) yields similar results.
  • Some emoji, like ?? (coffee cup emoji) or ? (pretzel emoji) yield images that seem inspired by the emoji.
  • When we increase the number of emoji in the prompt, we tend to get fewer pink and blue colors. To me, the colors seem to have more orange. Adding multiple emoji seems to increase the number of humanoid characters in the AI generated image.
  • A common figure that appears in these images in a person in a robe facing away from the camera. This almost seems like a default character stuck in the AI. I call them Aileen.
  • When we use letters instead of numbers, we tend to see warmer images. There seems to be a fifty chance we’ll see that letter in the final image too. So if we type “Z”, we are likely to see a “Z” appear in the final image about half the time.

Here’s my best guess, Midjourney’s AI was trained on a lot of art that looks the same. When you give the bot very little info to work with, it’s going to default to something that looks a lot like a fantasy landscape image. If you give the bot more to work with (ie add more emojis or use words that it info that is has more data on), then it will give you a more diverse set of results with different color palettes, objects, and landscapes.

In other words, the ? (yo-yo emoji) emoji is the least relevant thing to feed to Midjourney, so it resorts to a default set of images that are already gorgeous to look at. That’s my guess.

Midjourney prompt: “Come on Aileen –aspect 16:9”

The post Why does AI think that the yo-yo emoji looks so beautiful? appeared first on Doc Pop's Weblog.

by doc at August 08, 2022 06:51 PM

Vivek Sri

Word of the Day: Poignant

I took a gamble when I let the word “poignant” fall out of my face in front of my cousin Apurv. He was raised in India, but he had also lived in Colorado for most of a decade. Would he ever have come across this ten-dollar word?

He didn’t know what it meant, so he asked me. Turns out I wasn’t quite sure either:

It’s like, the triangle that surrounds “beautiful,” “touching,” and “lightly melancholy.”

Apurv is too polite to tell me when I’m full of it. I know my definition is lacking, so I put my fancy word back into its velvet-lined case—until the next day when it appeared in my texts:

I do regret that exclamation pointI do regret that exclamation point

I know: a little too excited. My friend and I debated poignancy for a beat, when she hit me with this:

To me the distinction is about the intensity and quality of the emotion. How it hits me. Right in the esophagus.

Esophageal feels right. So what does the book say?

Pungent. Yeah. Poignant does have a smell. Not bad, like rotting garbage, but sharp and unmistakable, like the phosphorescent revelation that follows a blown-out candle. Poignant might sound soft, like a velvet-lined case for words, but it’s sharp. Like a diamond.

Do I know what poignant meansDo I know what poignant means


While Apurv is in town, I take him to his first karaoke. We plunk down at Alibi bar and let the intersection of Portland’s most talented/inebriated singers drown us in today’s hits and yesterday’s classics. We are there for hours. So long in fact, that the dress code changes.

Or so it seems. It’s near midnight and the bar is packed with suits and shoulder slung jackets, rumpled corsages, lipsticked smiles, and the unmistakable energy of the Just Married. Behind me a blonde in an up-do, enveloped in satin, beelines for the KJ booth.

The Karaoke Jockey slides missus up the queue and she takes the stage.

The opening glissando and dry rhythm guitar are unmistakable. Great choice. But when I take in the lyrics, stealing their meaning in midair, it’s like I’m hearing them for the first time.

When I had you to myself
I didn’t want you around
Those pretty faces always made you
Stand out in a crowd
But someone picked you from the bunch
One glance was all it took
Now it’s much too late for me
To take a second look

Oh, baby, give me one more chance
(Won’t you please let me)
Oh, darlin’, I was blind to let you go
(Let you go baby)
But now since I see you in his arms
I want you back

You wonder if she picked the song on the limo ride over, or in the days earlier, or a moment years ago. You realize of the many songs she will sing in the direction of her now husband, this is the first one. And you hear the words she’s collected to bouquet her beaming husband in serenade. She pulls him in for a kiss and the entire thing just jabs you right in the esophagus.

by Word of the Day: Poignant at August 08, 2022 05:25 AM

Claire Kao

the neverhood

For years, I've been trying to figure out where some strange imagery in my head originally came from: visions of a red-earthy, doughy, empty world undulating in front of a black backdrop.

And I'm delighted to say, it finally came to me! What I was beginning to think was a fever dream was actually from a 1996 videogame called the Neverhood that I used to watch my brothers play. I could never be bothered with the games they were playing, but this one had a delightfully silly main character, jaunty tunes, and a world I wished desperately I could live in.

I found some videos online of gameplay, here's a taste:

01 neverhood.jpg
screengrabs from this video
the game's first scene

second scene: I only ever made it this far as a player before I gave up and asked my brothers to play, so I could just enjoy the weird-pretty scenes and the weird-pretty music


A selection of sets/scenes 




The characters

Klaymen, the main character



Klogg, the game's antagonist


the cutest, silliest, sweetest, the one, the only: willie trombone


Here's a vid with the "best bits", and spoilers: https://youtu.be/bi4u4EvCblI
And, seriously, throw on this soundtrack and try to be in a bad mood: https://youtu.be/gSGk1bQ9rcU

by Claire (claire.kao@hey.com) at August 08, 2022 04:32 AM

Certainly Strange

Embroidered patches

embroidery burns me out faster than just about anything also it is hard to photograph well, I am learning

by Steen at August 08, 2022 03:55 AM

August 07, 2022

Doctor Popular

Reddit’s dumb new blockchain project: NFTs you don’t actually own and can’t sell for profit

Despite the low interest in NFTs and the massive crash in the cryptocurrency market, Reddit decided to launch a line of NFTs and an NFT marketplace. The fact that the term “NFT” didn’t appear anywhere on their announcement shows just how unpopular NFTs are at the moment, and Reddit knows it.

These “Collectible Avatars” were created by a few artists from various Reddit forums and have received massive backlash on the announcement thread. I hope these artists got paid up front. These NFTs can be bought through Reddit’s platform using any credit card and have been minted on Polygon’s blockchain. At least they didn’t use some terrible PoW chain like Ethereum.

Things really get interesting when you dig into the Terms Of Service of Reddit’s NFTs. Like section 1.5 of the TOS which states multiple times that you are not allowed to buy an NFT if you ever plan to sell it at a profit:

*You are acquiring the Verified Virtual Good solely for entertainment purposes and consumptive use in connection with the Services;
*You are not acquiring the Verified Virtual Good as an investment and will not portray the Verified Virtual Good to others as an investment opportunity;
*You have no expectation of economic benefit or profit as a holder of the Verified Virtual Good and will not portray the Verified Virtual Good to others as an opportunity to obtain an economic benefit or profit;

Reddit NFT’s Terms of Service

Or this line that states that Reddit can take away your NFT’s if you fail to follow Reddit’s Terms of Service:

You also have a limited right to transfer your Licensed Rights solely in connection with the disposition or sale of your Collectible Avatar in accordance with these Previews Terms. You will lose this transfer right if you breach these Previews Terms or your Licensed Rights are otherwise terminated in accordance with these Previews Terms.

Reddit NFT’s Terms of Service

So if you sell your NFT on one of the many marketplaces that doesn’t support Reddit’s smart contract, they could retract your ownership of the NFT. That isn’t ownership, it’s just a license.

I do have to give Reddit kudos for spelling out in their TOS that they aren’t promising your NFT will still be working after a few years. It’s likely that most NFTs will just be dead links in a few years, at least Reddit is up front about it.

Subject to limitations outside of Reddit’s control (such as changes to the blockchain or in law), for each Collectible Avatar, Reddit will host the Avatar Art associated with it on the InterPlanetary File System through a dedicated gateway or on an alternative service for two years from the date the Collectible Avatar was initially claimed or purchased from Reddit. This two-year period does not restart if the Collectible Avatar is subsequently transferred or purchased.

Reddit NFT’s Terms of Service

Given that you don’t actually own these assets and can’t treat them as speculative investments, many folks asked why these needed to be on the blockchain at all. u/venkman01, the Reddit employee who posted the NFT announcement, had this to say:

If we didn’t make these blockchain-based, creators wouldn’t be able to earn additional revenue if Collectible Avatars were resold, and we wanted to make it easier for creators to earn money on both initial sales and secondary sales of Collectible Avatars, which isn’t easy to achieve without using a public blockchain.

u/venkman01 on Reddit, July 6th 2022

This is, of course, not true. You don’t need the blockchain to do any of this. In fact, you could collect royalties much better if you just had your own market place where “Collectible Avatars” were sold and re-sold. NFTs can have smart contracts that can automatically send royalties to the original artist on secondary sales, but these smart contracts are not standardized. If a reseller wanted to pocket those royalties, they could use almost any different NFT marketplace. In fact if they wanted to make sure the artist got their cut, they’ll have to go out of their way to only use Reddit’s marketplace because it doesn’t appear these contracts are compatible with most of the marketplaces out there.

Let’s do a recap. Last week Reddit announced they are selling NFTs that:

  • their average user hates
  • might not be around in two years
  • have zero value (as described in the Terms of Service)
  • you do not actually own
  • only gives the artist royalties if it is sold on the right marketplace
  • are totally not called NFTs (but they are NFTs)

The overall idea of selling artist designed NFTs isn’t bad. If Reddit wanted to sell Collectible Avatars that support original artists, they absolutely could have built that without using a blockchain. In fact, given how useless smart contracts are and how terrible NFTs are for consumers, they arguably could have built a better marketplace WITHOUT the blockchain.

Given that Reddit never used the term “NFT” once in their entire announcement, they clearly know how unpopular this tech is. So if their users hate it and it could have been built better without the blockchain, you have to wonder which higher-up at Reddit forced this thing to happen. As Bruce Schneier said on a recent episode of the Rational Reminder podcast, “There is nothing an NFT does that a non-NFT can’t do, simpler and better.”

The post Reddit’s dumb new blockchain project: NFTs you don’t actually own and can’t sell for profit appeared first on Doc Pop's Weblog.

by doc at August 07, 2022 02:55 PM

Musical Handlebars

One of my “pandemic hobbies” has been learning to play music on an ordinary pair of bicycle handlebars. It’s something I saw Mark Growden do almost 20 years ago, and have wanted to learn ever since.

I’ve been taking musical handlebar lessons from Mr Growden for the past few years and here’s what it is sounding like now:

It’s a bit breathy, but I think I’ve come a long way. I can’t wait to see what it sounds like in another year of practicing.

Here’s footage I shot of Mark talking about this technique at an Obama campaign fundraiser we both performed at.

The post Musical Handlebars appeared first on Doc Pop's Weblog.

by doc at August 07, 2022 02:46 PM

I Like Turtles

Downtown Deadwood

/2022/08/07/downtown-deadwood.html

August 07, 2022 07:00 AM

August 06, 2022

I before E except Gleitzman

Teaching Machines to Beat the HeatMust everything get worse as it gets old? Is planned obsolescence...

Teaching Machines to Beat the Heat

Must everything get worse as it gets old? Is planned obsolescence the law of the land? As a hacker with a 5 year old laptop, it’s easy to look at those with fancy new models with more than a little envy. However, I enjoy my current computer. Sure the battery life isn’t the greatest, but the only time I truly get hot and bothered is when my machine also gets hot and bothered — and throttled — severely liming the CPU and making your machine crawl.

Thermal throttling is nothing new for the Intel Macbooks. Heck, even the latest system-on-a-chip models suffer when they get too hot. It doesn’t help that many of these new machines don’t even ship with an internal fan. That said, the Intel Macbook Pros are the prime offenders. The i7 and i9 chips are performant when nice and cool, but turn up the heat and you’re in for a frustrating experience. For me, this seems to happen during the all-too-common video calls of the modern era.

How can you tell if you’re being throttled? A quick pmset -g thermlog can tell a story:

2022-08-03 21:25:21 -0700 CPU Power notify
	CPU_Scheduler_Limit 	= 100
	CPU_Available_CPUs 	= 8
	CPU_Speed_Limit 	= 34 --- OUCH!

With the CPU running at 34% of its designed speed, no wonder the performance get choppy. At first I tried some basic fixes — opening up the back of the machine and cleaning out the years of dust and dirt from the two onboard fans with an old toothbrush seemed to provide some relief. I also discovered that due to a design flaw, you can also try only using the right USB-C ports when charging or using external devices. You can even go so far as to re-apply thermal paste on your CPU and GPU.

For me, even with all these clever solutions, my computer was still struggling, trapped in amber — another victim of Hot Girl Summer. I had almost lost hope and even started pricing out the cost of a new machine when I discovered a curious design flaw in Intel Macbooks related the Voltage Regulator Module. Intel provides a feature called Turbo Boost that “lets the CPU run at its base clock speed when handling light workloads, then jump to a higher clock speed for heavy workloads.” This jump in clock speed means a jump in power, and with that jump in power through the VRM comes more heat. It seems that it’s not that the CPU or GPU are overheating, but that the VRM module gets too warm from Turbo Boost.

The solution? Well, you can begin by turning off Turbo Boost with an application. I saw much less throttling being reported by pmset, but this also means the machine is running below the speed of which it is capable. And after a few hours of video calls and running an external monitor, I was still finding that my computer was getting sluggish.

Luckily, smarter people than me had already pioneered a solution. In a nutshell, you place thermal pads on the VRM chips so that they make a direct connection with the metal case of the machine. The pads dissapate heat much faster than air — atmospheric air has a thermal conductivity of about 0.024W/mK at 25C, which is pretty bad compared to the thermal pads which can dissipate 6W/mK (250x!).

The VRM chips come in various sizes, so multiple layers are necessary

With the thermal pads in place it was an immediate night and day change from the sluggish system I had once known. I could use all of my USB-C ports without issue, and almost never experienced any throttling. The downside was that the machine was noticably hotter to the touch, because the heat of the VRM chips was being dissapated directly into the case.

I looked around for Macbook stands with fans, but was not too impressed with what I found. Most seemed extremely cheap, or so expensive as to be completely outrageous. Plus, the whole point of my explorations was to not buy anything new.

My satori moment arrived as a result of an exploration into DIY Data Sovereignty and a recent upgrade of the Iron Blogger server following a hard drive failure. I could pull the heatsink off an unused video card, file down the metal attachment heads with a Dremel tool I recently received from Selene’s father, and attach it to my existing stand for a system that would run as cool as a cucumber.

These metal attachment points needed to be removed to make direct contact with the Macbook case.
Safety third.
The last step was to solder a USB attachment to power the heatsink’s fans.

Success! It’s almost like having a brand new machine. Plus, I can still disable Turbo Boost if the machine seems like it is getting too hot on the go.

Re-use is a great concept but can be difficult to live in practice. We’re often too busy, or too stressed, or just too lazy to try and make do with what we already have. I’m looking forward to more opportunities for up-cycling and re-use rather than reaching for the Buy It Now button.

August 06, 2022 07:33 PM

August 05, 2022

Fuzhou Food

Deep-Fried Fish, 炸鱼

It is pretty easy to deep-fry almost anything. The one catch with fish is that you need to remember to use an egg to help bind the starch to the fish. It’s honestly not that different from English fish and chips, but we end up eating it with rice instead of fries.

Ingredients

  • Fish (e.g. smelt or haddock)

  • Cornstarch

  • Flour

  • Whole egg

  • Frying oil (vegetable oil)

Load up your fish of choice. In this edition, we'll use freshwater smelt.

Crack an egg into the fish and mix thoroughly.

Add cornstarch to fully coat the fish. Mix mix mix.

Then fry fry fry. Make sure you first heat up the frying oil between 350-375 degrees Fahrenheit. You can use any pot or wok (you don’t need any special equipment for deep frying).

When you first add the fish to the hot oil, it will sink. When the fish starts to float, you know it's done. Take it out of the oil, drain and serve.

Once you’ve set up the frying oil, mind as well fry some more stuff! For completeness, we'll also deep-fry some haddock fish fillets.

For this fish, add a dash of salt and mix it into the fish. Apply a layer of egg white on the fish, without the yolk. Then separately create a batter of 1 tsp cornstarch, 2 tsp flour, and a little water. The batter should be thick enough so that after you dip the fish in the batter, the batter doesn't drip off.

It all deep-fries the same. Heat the oil to 350-375 degrees F, before adding the fish.

It should be a nice golden brown. Again, you know it’s done with they start to float. Take the fillets out and drain. It is recommended to put them back in a second time and re-fry the filets to make the outside skin even crispier. During the second frying, the oil should be a little hotter, >375-400 degrees F.

Serve and enjoy! Eat eat eat!

Fuzhou Food is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.

by Fuzhou Food at August 05, 2022 02:17 AM

August 01, 2022

Certainly Strange

Claire Kao

🎡 Xmas in July 🎆

A summer annual tradition for Casa Coles:
! Coney Island Friday Night Fireworks

It is without question my favorite night of the year, and involves 8 essential steps: 

1. Getting rocked by a surprisingly wild rollercoaster, The Cyclone. *important* to do this first, before you’ve eaten anything, for Barfy reasons 

2. Indigestion via Nathan’s // Hot Dog + Chili Fries

3. Must stop and appreciate the wildlife 
4. The main event: Fireworks (aftermath pictured)

5. Watching/going on things that go round 

6. Henna

7. Dippin Dots (or mini-melts, in this case 😒)
8. Then cap it off with an ~experiential photobooth~

Undiluted summertime joy 🥲🥲🥲

by Claire (claire.kao@hey.com) at August 01, 2022 04:22 AM

I before E except Gleitzman

The m3u is dead. Long live the m3u!

It seems like everyone is a DJ nowadays.

As usual, I blame digitization. When you had to lug 30 lbs of vinyl up a creaky warehouse stairwell, there was a pretty good chance you were going to play some fire. Serato was alright, because at least you still had the turntablism. With the advent of CDJs and Rekordbox, it was all over.

Don’t get me wrong, democratization of the means of production of music is a Good Thing. Teach the masses to groove, and all that. What gets me down is the lack of interoperability between all these different DJ platforms. How do I get the playlists I create on Traktor into Spotify? How can I share my Rekordbox playlists with Subsonic? Rekord Buddy, a valiant attempt at playlist unification, was nice while it lasted, but is now an orphaned project that only lives on via the Wayback Machine. (You can, however, still download the OSX binaries)

My goal with this project was to be able to go from Traktor, my preferred DJ performance software, to Subsonic or Navidrome, which serves up all my music on the go, Spotify style. As the old adage goes, if you can’t find what you want, you can at least build it yourself. I was able to locate a few resources online that explained the rough logic of parsing Traktor libraries, and wrote a script to do the heavy lifting. It’s as simple as:

python playlist-export.py --upload

Now, ubiquitous access to playlists of all my live DJ sets is just a python script away. As a future expansion, it would be nice to add support for Rekordbox so I can easily prep my Traktor playlists for use on CDJs.

August 01, 2022 04:18 AM

July 31, 2022

Vivek Sri

It's not you, it's meta

To ‘see’ Facebook one must register for an account, and eventually be owned in some small way by the service. For every image posted, or comment made on Facebook, the service claims you for itself. This kind of surveillance can’t be negotiated in pieces; you’re either in completely, or you’re out.
-Bland God: Notes on Mark Zuckerberg

Hi Mark,

I’m writing with some feedback about Suggested Posts. They’re ruining Instagram and all of our minds and probably our relationships too.

Instagram used to enable conversations around a single, simple idea: it’s fun to share photographs with friends. Now it’s turning into cable TV. And like cable TV, most of it isn’t very good. Just mindless content for bingeing. You’re turning an app that used to be a party (sharing, chatter, connection, yay) into an opium den (suffering, silence, addiction, sad).

A brief history of bad

In 2012, Instagram let you see friends, family, and creators you chose to follow.

Ads showed up, eventually. But you know what, we were mostly cool with it. Some of them weren’t half bad.

But 10 years later, you’re showing me stuff I never chose to follow.

And from what I hear, you want to add more.

The future is bleakThe future is bleak

I would say, “I know you mean well…,” but I’m not so sure. Calling this trash “Suggested” is nervy, but ultimately a weasel move. It’s detritus that’s no different from unsolicited mail (“junk mail”) or unwanted emails (“spam”). Sure, your algorithms predict that I’ll respond to this content, but that doesn’t mean I want it. I never asked for it. I can’t control what I see (except in a reactive, whac-a-mole way), and worst of all: I can’t turn it off.

30 days30 days

Well, I can “snooze” the deluge, but only for 30 days. Why not, say, forever?

I can filter my emails, I can put tape over my mail slot, but you’re telling me I have to, have to, see videos of people dancing and pointing to words that aren’t there?

I don’t wanna. Delete our accounts. All of them.

-V


Post-script

Consider again that dot. That’s here. That’s home. That’s us. –Carl Sagan

Hey friends,

Don’t think Meta is going to answer my prayers and liberate our digital souls anytime soon.

And the rising pile of algorithmic pollution pushes us further apart.

So I need to move the party elsewhere. It’s not you, it’s meta. I still want to be friends. So here are two ways for us to stay connected.

Option 1: Passive yet digital

Follow me on Find My Friends. Call me crazy, but I think it’s the perfect social app. Hear me out. It’s a list of your favorite humans and where they are. No messages. No likes. No communication at all.

Now, I know a few folks don’t like it:

“Someone will use this app to steal your valuables when you’re not home.”

Millennials like me don’t own “valuables,” grandpa. We own stuff. Useless stuff we got on Amazon.

“It’s creepy!”

Creepier than being forced to be the producer, director, and star of your own online reality show? Creepier than an endless content gavage hosed down our throats by Bland God Zuckerberg?

“I don’t want people to know where I am!”

I do.

Embrace the blue dot

On Find My Friends you choose exactly who sees your location in the form of a blue dot.

For me, the blue dot is an elegant symbol of place. Linked to a GPS satellite, our blue dots pulse tremulously on an undetailed map.

Place is the context that defines us, for a moment. Sometimes it’s “what we’re doing” (work, gym) but also how we are (at rest, at play, out and about). A state of being. Place is what’s lost in the noise of a billion profiles.

So much of our current social media nightmare is about doing. Pose. Smize. Gyrate like you’re being trafficked at gunpoint. A dot lets you be.

And my favorite thing about the blue dots? Their utter lack of function. Not useful for wayfinding or navigation. It’s just two pieces of data: latitude and longitude.

So go ahead and track my location. If my dot is nearby, go ahead and surprise me with your hands over my eyes and a “guess who?” (Don’t actually do this.) Most of the time our dots will serve as geographic bookmarks. Marking a place (with our place) in our hearts, while we are apart.

Option 2: Reach out and touch faith

Or you know, hit me up like it’s 1998. I’ll try to keep this blog alive as long as I am. If you write me a letter—I’ll send you two back. If you randomly FaceTime me on a Wednesday at 3pm, I will take that call.

Knock on my door, I’ll leave you a voicemail. Venmo me a dollar, I’ll send you a telegram. Baby bird guava juice into my mouth, if you like, and I’ll light your cigarette.

I miss you. And I’m glad you’re here.


Post-post script

I don’t mean to exclude Android users. I love you too.

by It's not you, it's meta at July 31, 2022 11:20 PM

Fuzhou Food

Deep Fried Spare Ribs, 醉排骨

This dish is a regular occurrence for any holiday trip back home. It combines the delicious crunch of a deep-fried spare rib, with the zesty sweetness of a garlic sauce.

Ingredients:

  • spare ribs

  • salt

  • potatoes

  • corn starch

  • secret sauce:

    • 3.5 tsp soy sauce

    • 3 tsp vinegar

    • 3 tsp sugar

    • 1 tsp water

    • 3 green onions stalks (finely diced)

    • 6 garlic cloves (finely diced)

First start by making the secret sauce. You can mix all of the ingredients in a bowl and let it sit in the refrigerator for a couple of hours. Make sure the onions and garlic are very finely diced.

Chop the spare ribs into small bite-sized chunks and soak in water. Make sure you have a heavy meat cleaver or butcher knife. It can be challenging to cut spare ribs in a single swoop. I like to hit the bone of the spare rib with the back of the meat cleaver first. Then, utilize the sharp edge of the knife to finish the cut. Try to use force to get a clean cut. Otherwise, you may get little bone fragments in your food.

Soak the pork in salt water to extract the remaining blood and then drain. 

Add salt to the drained pork.

Cut the potatos into chunks and add it to the pork mixture.

Cover the pork with a thin layer of cornstarch and mix well

Prepare the oil bath: Heat up the oil to around 300 degrees. You can tell this is ready when all of the bubbles disappear and you can put your hand comfortably over the wok.

Put the pork into the oil to start frying.


When you first put in the pork, it will sink to the bottom. The pork is ready when it floats to the top of the oil. To further check, cut a piece in half and make sure the meat is white.

Drain the spare ribs

Mix the deep fried pork with the sauce mixture and mix well.


Yum!

Fuzhou Food is a reader-supported publication. To receive new posts and support our mission of preserving Fuzhou cuisine and culture, consider becoming a free or paid subscriber.

by Fuzhou Food at July 31, 2022 04:06 PM

I Like Turtles

Bribery

/2022/07/31/bribery.html

July 31, 2022 07:00 AM

July 25, 2022

Claire Kao

kwee's week in photos

PLEASE SEND TO REAL LIFE: Ray Johnson Photographs
I'm becoming a bit of a sudoku fiend, and also a whiz at the Apple photo editing tools
this taproot!! proud!!!
2 people I love are engaged ❣❣❣

"can't believe this website is free", as they say
I loved Nope. so, so much. a frickin spectacle, layered if you want it to be, straightforward if you want it to be. several scenes where I was extremely freaked out, while also helplessly laughing out loud from the sheer comedy. 

separately, the creepiest "Nope" thing is happening to me. On Wednesday or Thursday, I visited the companion website for Jupiter's Claim on my phone; I played all the games and navigated the pages. After exiting the webpage completely and shutting down the browser I opened it on, the Jupiter's Claim music is sporadically playing on my phone, randomly, several days later...


a quote I learned from Boo, a Scottish lass, that I can't seem to confirm on the internet but that I think is great nonetheless

Hormel's Chili, March 23, 2020.

On this deeply muggy, jungle-humid day in NYC, I miscalculated my heat tolerance and suffered a bout of heat exhaustion. Pre-heat exhaustion episode, I had started reading Herzog's first novel that came out last month, about a Japanese man who lived in a jungle alone for decades, fighting a war he wasn't aware had ended. 
"But when I say this, I say this all full of admiration for the jungle. It is not that I hate it; I love it, I love it very much. But I love it against my better judgment." — Werner Herzog during the making of Fitzcarraldo in the jungles of Peru


the ziglet

by Claire (claire.kao@hey.com) at July 25, 2022 03:39 AM

July 24, 2022

I before E except Gleitzman

A Taste of New Orleans (feat. Paul Prudhomme)

July 24, 2022 06:57 PM

Vivek Sri

Word of the Day: Cool

“How did you become so cool?”
A friend of a friend at a bar, to me, last night

OK fine, I’m cool. How could I not be? I’m obsessed with cool. I listen to cool music. I seek out and collect cool people. I do cool things. I like being cool and I like being perceived as cool which probably isn’t cool to say, but it’s true. In fewer than 100 words, I’ve already broken so many rules of cool. If saying “I’m cool” is uncool (which it is), writing a whole essay about it is definitely not cool.

So let’s talk about the opposite of cool. And that is earnest.

Earnest is as earnest does

Earnest is not caring what’s cool. It the radical act of being yourself without trying to be something else or seeking approval. It’s surprising that earnestness is so rare, because it seems way easier than being cool. You don’t have learn what’s cool, so that’s a time saver right there. And even if you do know; you needn’t act on that information. Earnestness is acting as if you don’t know what cool is. That’s what makes it the opposite of cool.

For some folks, earnest means maudlin. Schmaltzy. Sentimental. These darts miss the mark; the essence of earnest is sincerity. Ted Lasso is earnest. Earnest is wearing your heart on your sleeve, a metaphor that conveys leading with emotion. And so we reduce earnestness to sentimentality. Cool, meanwhile, is not sentimental. It’s intellectual.

Which means earnest isn’t always the “smart” choice. Even knowledge-armed citizens of the world make choices deemed not cool. Like the man who likes a certain fast food restaurant because it’s what his mom would get him and his sister after soccer practice when they were kids. The salt, fat, spices and heat spark memories of youth and of his mother (schmaltz alert), and he can’t help that. He also knows that that same fast food restaurant has donated money to organizations that oppose same-sex marriage, a cause he does not support. And yet he chooses the sandwich. Because he likes it and it makes him feel good. And that’s OK. Earnestness sometimes proceeds from deep truths that aren’t always rational, explainable, or Cosmically Just.

And that’s because earnestness comes not from the head. But from the heart. And while you can try to silence the former, you can’t stop the latter. Not without dying.

Earnestness is sometimes anti-social. Like the woman who admits she doesn’t care for a well-loved pop star and doesn’t see what the fuss is about. She doesn’t mean any harm, it’s just an unpopular opinion. But in the panopticon of cool, it’s easy to write off earnest beliefs as misguided, wrong, contrarian, iconoclasm, or simply, uncool. Ironically, coolness pretends to be about the individual, but it relies so much on what a group thinks.

I used to be earnest

I used to be earnest. I loved music you could sing and dance to. I would beg my parents for HK (a hug and kiss) every night. (I can’t even admit that without plopping in this Cool Sentence distancing me from it.) I used to wear bright colors. I used to see my dad drinking or yelling at my mom and I would say “stop that” and “you shouldn’t do that.” I used to know in my guts the difference between right and wrong. I told people I liked them and smiled at strangers. I showed up on stage. I was sincere.

Then I became cool. Not all at once. I started to see my parents as uncool, even though they were just being earnest. I had to hide my love of musicals and disco. I gave up on my dad, and with that, people in general. I scrawled “hell is other people” on my Trapper Keeper. I turned convictions into intellectual problems (see: my philosophy degree) to poke and prod at my traumas without engaging them. I moved from being a performer, to a gorger of TV and internet. I wore black.

I’m describing being goth aren’t I?

How to become so cool

It didn’t stop in high school. As you get older, you become increasingly self-conscious and judgmental of others. This aptitude is critical when pursuing a degree in cool.

You must also learn how to read others’ perceptions of you. “Do they like this me or that me?” You will take those perceptions and bend, like a bonsai tree, into the shape of cool.

You must also build yourself into an approval seeking machine. A heart seeking robot. Sound familiar? Social media is turning us all into heart seeking robots. Bleep bloop love me. An infinitely focus-grouped, endlessly ephemeral, two-dimensional version of you. Cool.

You must also forget what sincerely matters to you. That is the coolest move of all.

I wanted a cool job and a cool apartment in a cool city. I wanted to eat cool and buy cool and be cool and live cool. Fascinating that we associate “coolness” with youth, but I was never cool as a child. I was so earnestly my own self. Coolness is something I built with adult hands, adult money, and with the approval of other adults.

How to become uncool

And you know the wildest thing of all? In the reckless pursuit of cool, you’ll meet scores of people that love you, that support your ideas, that supply you with your much-craved approval and do so in earnest. The road to cool is paved with earnest allies who lead with their hearts and exist in the world without hesitation or reservation. They are the kind of people who deign to ask you, in a crowded bar, even though they’ve only met you twice, “How did you become so cool?”

In the moment I answered, “practice.” (So cool.)

This morning, at 3am, I realized to my horror how that answer was true.

I’m so grateful for earnest people. I love them. And they have repeatedly saved my life in this world. Earnest people have reached out to me when I needed someone. They write stories that keep me going. They persist and speak truth even in a world that increasingly punishes and mocks us for trying.

(If at this point you’re thinking, “maybe this is a language problem. We should extend the meaning of Cool to be more inclusive of Earnestness,” I fear you have missed the point. To challenge binaries we must acknowledge them. There is both A and there is not A. We investigate both to integrate both. The heart seeking robot redefines concepts for maximum approval. In other words, cool cares about saying what’s right; earnest is about doing what’s right.)

I love earnest people precisely because they are uncool. And in saying so, I am ready to join their ranks again.

by Word of the Day: Cool at July 24, 2022 12:06 PM

I Like Turtles

Let's go fishing!

/2022/07/24/lets-go-fishing.html

July 24, 2022 07:00 AM

July 20, 2022

Fuzhou Food

Soy Sauce Steamed Fish, 清蒸鱼

This is a classic dish in any nice Chinese household, enjoyed in many regions of China. It was something we’d have at least once a week growing up. You can use any type of white meat fish, including carp, flounder, sea bass, etc. In this recipe, we'll use 側魚.

Ingredients:

  • 1 whole fish, white meat (e.g. carp, flounder, sea bass, etc.)

  • soy sauce

  • rice wine

  • ginger

  • scallions

  • vegetable oil

  • boiling water

First, descale the fish and remove the guts. Most grocery stores will do this for you if you ask nicely.

If you have to do it yourself, the best way to descale a fish is to use a metal scrub (like the kind to wash a wok). To remove the guts, cut a slit along the bottom of the fish and remove anything that isn’t fish meat.

Once descaled and gutted, you can cut diagonal slits across the sides of the fish as seen in the following picture. This will help open up the fish to easier steaming later on.

In a sink, open the bottom of the fish and pour boiling water in to cleanse the inside of the fish.

Hang the fish to dry before preparing dish. Place the fish into pan that can be steamed. 

Place the fish dish into a steamer pot. You’ll want to add ample water to the bottom of the pot for steaming, but not so much to overflow into the dish containing the fish. Notice I’ve elevated the dish with a metal platform in the photo. Close the lid, turn the heat on high, and let the fish steam for 15-20 minutes depending on the size of the fish. Resist the temptation to open the lid! You’ll let out all of the steam. I’d just set a timer and trust 🙏.

While the fish is steaming, slice a couple of scallion stalks near the root. You only want the white parts. You can save the green part for other dishes.

Slice a couple of pieces of ginger into fine strips.

Now get your rice wine and soy sauce ready! Here are the brands that we use.

In a separate pan or wok, heat up some oil. You want the oil very hot and you will know it is done when you cannot even hold your hand 6 inches from the oil.

When the time is right, check your steamer. The fish will be ready when the meat easily falls off of the bone.

If absolutely necessary, you can check from the slits made previously, though take care not to ruin the form of the fish

Cover the fish with the sliced scallions and ginger.

Pour the hot oil over the garlic and ginger. The oil should be so hot that it makes a sizzling sound on contact. Otherwise, the oil is not hot enough and should be reheated. 

Pour rice wine and soy sauce over the fish for the desired taste. This is typically very light (not too much).

That’s it! Serve it with a side of rice and enjoy! I love taking the extra sauce and pouring it over my rice for added flavor.

Fuzhou Food is a reader-supported publication. To receive new posts and support our mission of preserving Fuzhou cuisine and culture, consider becoming a free or paid subscriber.

by Fuzhou Food at July 20, 2022 02:51 AM

July 19, 2022

Doctor Popular

Using AI to re-imagine classic yo-yo tricks

I’ve been spending a lot of time with Midjourney, a web-based tool that uses AI to generate art based on text prompts. I’ve been using it for silly things, like creating Lego Movie art in the style of Rob Sheridan, but last week I also tried using classic yo-yo trick names as prompts and the results were fantastic. I got so excited about the results that I made a whole video about it:

If you’d like to see all of the high-res AI images, including some that weren’t included in the video, check out this public post on my Patreon page. I’ll also share a few of my favorites below:

“Rock The Baby” “Buddha’s Revenge” “Double or Nothing” Midjourney prompt: “Brain Twister –aspect 16:9”

The post Using AI to re-imagine classic yo-yo tricks appeared first on Doc Pop's Weblog.

by doc at July 19, 2022 11:35 PM

July 18, 2022

Doctor Popular

Using AI to generate Lego movie posters in the style of Rob Sheridan

I’ve been playing around with Midjourney lately and really love it. If you haven’t heard of it, Midjourney allows you to enter a text prompt, then it uses Artificial Intelligence to convert that prompt into an image. One of the first things I tried was using Midjourney to create a series of Lego Movie posters that look like they were designed by Rob Sheridan, the former art director for Nine Inch Nails. Here are the results:

Lego Movie in the style of Rob Sheridan Lego Movie in the style of Rob Sheridan Lego Movie in the style of Rob Sheridan Lego Movie in the style of Rob Sheridan Lego Movie in the style of Rob Sheridan Lego Movie in the style of Rob Sheridan

The post Using AI to generate Lego movie posters in the style of Rob Sheridan appeared first on Doc Pop's Weblog.

by doc at July 18, 2022 04:32 PM

Certainly Strange

Claire Kao

🌊how to keep house while drowning🌊

I came across this Tweet a couple weeks ago:
image.png
https://twitter.com/Bibliogato/status/1542623256661876739

And it truly called to me! Living and working out of the same space has indeed left me feeling like I am drowning, tidying only to have to tidy even more, enjoying my space for one whole hour before it falls into disrepair again, rinse and repeat this cycle, day in and day out. 

So off I went:
https://www.simonandschuster.com/books/How-to-Keep-House-While-Drowning/KC-Davis/9781668002841

And it was glorious. I breezed through the book, and found it incredibly constructive, actionable, and shame-relieving. Just what the doctor ordered. Here's some of what I'm going to carry around with me as I learn to make my space serve me (rather than the other way around): 
🙃 tidying, decluttering, cleaning as a kindness to future me 
🧹 thinking of the work as "resetting the space", instead of cleaning
💃 enjoyment/process that makes sense is more important than quickness and efficiency
🧺 think of your space as functional, not aesthetic. see where things begin to lie naturally based off of how you actually use them, and then just put baskets/trays/organizers where things naturally go
⌛ make use of built-in wait times, like waiting for the water to boil, for the washer/dryer to finish, a delivery to come. Use these wait times as a way to timebox
📺 rest is not just sleep, nor is it care tasks (like groceries, showering, haircut). rest is meant to be fun and rejuvenating!
💛 if I fall behind, or don't do everything I'd like; conceive of this as rest and a kindness to myself, rather than a failure
🛍 designate a restock day! rather than constantly running around to restock on things whenever they are suddenly necessary
🎶 rhythm rather than routine
🏎 create momentum
🌃 decide on some closing duties that would be nice to get to each night for the best tomorrow: resetting my work desk and resetting the living room table

Though the book is specific to cleaning and organizing, it's relevant to all general life management skills, with a foundational shame-relieving element. I was subconsciously doing a lot of the tips in this book, but I didn't necessarily name them as intentionally as K.C. Davis has. And for that, I am proud of the way I have already been coping and managing the minutia of life, and looking forward to feeling even better in future 💪


by Claire (claire.kao@hey.com) at July 18, 2022 04:04 AM

I before E except Gleitzman

Cancer Season 🦀

July 18, 2022 03:21 AM

July 17, 2022

I Like Turtles

Circumnavigating SF

/2022/07/17/circumnavigating-sf.html

July 17, 2022 07:00 AM

July 12, 2022

Fuzhou Food

Pigs Calf and Radish Soup, 猪蹄罗卜湯

I've always wondered how my aunt makes her rich broths, which would fuel weeks of soup varieties. It blew my mind when I learned just how simple it is to make. This soup is a rich broth made from pig's calf. For our first post on the Substack, we’re going to bring back a crowd favorite and a staple in my household. My mom always had a quart stashed away in the freezer just in case. Hope you enjoy it!

Ingredients :

  • 2 lb of pig’s calf/foot (lamb or goat can be substituted for a more lean soup)

  • 1 whole Daikon radish

  • ginger

  • vegetable oil

  • salt

First, slice the pork into chunks

Slice the Daikon radish into comparable chunks

Bring a pot to a boil with a few big chunks of ginger. Bring a second pot of water to a boil with the same amount of water.

Once the water is boiling, add the pork to the first pot with ginger

Stir the pork in the water. Here, the goal is not to cook the pork, but simply to clean the pork, remove the initial oils, and add a slight ginger flavor/scent

After a short stir, when the oils have released from the meat, transfer the pork to the second pot of boiling water

Again, the goal is not to cook the pork. Just use the boiling water to rinse the pork clean. Then, drain the pork and set it aside.

Heat up the wok with oil and salt

Place strips of ginger in the wok and stir fry for 15 seconds.

Add the pork and stir fry for 30 seconds

The pork should be browned at this point

Add radish and stir fry for 1 minute.

Add enough cold water to cover the pork and radish mixture in the wok.

Cover and bring the pork and radish mixture to a boil

Once boiling, open the lid. You’ll find a thin layer of oils and fats. Carefully spoon off the top layer of oils and discard.


Lastly, transfer the entire mixture to a slow cooker and let it simmer on high until the preferred meat and radish tenderness is reached. 
(Substitute: If a slow cooker is not present, this mixture can also be simmered in the wok on the stove on the lowest stove setting.)

Typically the soup will be ready in about an hour. For softer pork, you can simmer for longer.

Once you’re done cooking, add salt to taste. Some people may argue they don’t like to salt their food. Don’t be self-defeating, add the salt. It makes a huge difference.

You might be surprised to learn that you can repeat this recipe for all sorts of meats: lamb, goat, pork bone, deer/venison, oxtail. It’s a pretty versatile way to make really rich soups for any occasion. Enjoy!

Fuzhou Food is a reader-supported publication. To receive new posts and support our mission of preserving Fuzhou cuisine and culture, consider becoming a free or paid subscriber.

by Fuzhou Food at July 12, 2022 01:24 AM

July 11, 2022

Claire Kao

ireland

Some highlights from a family trip that had been planned for 2020, but was delayed 3 times. We were finally able to go this past June!

castles

left to right: Blarney Castle; kissing the Blarney stone (was actually kind of scary, hanging over the edge of the stone with a little grate underneath); the Rock of Cashel (according to legend, a castle that was formed when Satan bit a chunk off a nearby mountain and spit it out as he flew over Cashel 😈)

greenery

so! much! green! it was raining on and off the entire time we were there, so the green made sense. Unexpected were the tropical plants planted everywhere, which is apparently due to Ireland's warm ocean currents and mild winters...

food

our favorite meals, from left to right: Ballymaloe House; the Spice Genie food truck; 
<fishshop>< (while we were able to sneak a meal in, fish and chips are potentially in trouble in Ireland at the moment, as fishers struggle with high fuel costs)
 

flowers

Do you know how to make a daisy chain? I had never actually tried, and I wasn't aware of the split stem method (bottom right pic)

covid

Alas, as potentially could have been expected, I ended up getting COVID on the trip (my first COVID infection). So a big chunk of the trip was spent recuperating. All things considered, it wasn't too bad being forced to lie in bed with a pile of books in a pastoral setting for several days. Of course, I wish I didn't get COVID and I wouldn't wish my high fever, deep cough, and whatever long-term effects I may be subjected to on anyone. But let's just say I got a bit of the Victorian sanatorium experience 😷🌳🛌

roe v. wade

The day that we left for the trip was on the day Roe v. Wade was overturned. 

Even with a couple months' head's up, the news about Roe v. Wade was a horrifying thing to take in. To be getting on an airplane out of the country on that day felt a bit like I was running away from the horror, but I felt there was something to also learn in Ireland.
In recent months, I had been curious to learn more about Ireland and its history as it relates to abortion and reproductive rights. A book that came out this year, We Don't Know Ourselves by Fintan O'Toole, has been lauded from every corner as a fantastic chronicle of how exactly Ireland went from a repressive, hyper-religious Christian country to a country with birth control, abortion, gay marriage, etc. You can imagine why this has been a popular book this year among American reviewers, as the US goes in the opposite direction.
While I was hoping to get more of a feel of Irish values directly from conversations with Irish people, I was able to give this book a good read while bedridden with COVID. Maybe there was something special to be gained in reading the book on its home turf? I've only just gotten to the beginning of where O'Toole discusses sexuality and the church, but I already feel he has fantastic observations about the previous attitudes in Ireland that are all too relevant to what's happening in the US right now: 

It's a dense book, but is a rich and informative read that I hope will deliver some reason for optimism amidst the US' rapid regression. And even if the historical lessons are inapplicable, the book is a fascinating chronicle of Ireland's history from 1950 onwards.

by Claire (claire.kao@hey.com) at July 11, 2022 01:25 PM

Certainly Strange

July 09, 2022

I before E except Gleitzman

If you’re thinkin’ you’re too cool to...



If you’re thinkin’ you’re too cool to boogie

Boy oh boy have I got news for you

July 09, 2022 08:17 PM

I Like Turtles

LEGOLAND Milpitas

/2022/07/09/legoland-milpitas.html

July 09, 2022 07:00 AM

July 02, 2022

I Like Turtles

Riding bikes

/2022/07/02/riding-bikes.html

July 02, 2022 07:00 AM