まだ個人的な気持ちでしかないんだけどメモ。
TypeScriptでResult型でのエラーハンドリングを通してモナドの世界を覗いてみる #関数型プログラミング - Qiita
より。
内容はとてもよいと思うんだけど、やはり
export const ok = (value: T): Ok => ({ ok: true, value });
#! /bin/bash | |
set -o pipefail | |
OUTPUT=$(plantuml "$@" 2>&1) | |
printf "%s" "$OUTPUT" | |
if printf "%s" "$OUTPUT" | grep -q 'java\.lang\.'; then | |
cat <<EOD >&2 |
export PLANTUML_JAR_PATH=`cat $(which plantuml) | awk '{ for (i = 1; i < NF; i++) { if ($i ~ /\.jar/) { printf("%s", $i) } } }'` |
<% unless errors.empty? %> | |
エラーあります | |
<ul> | |
<% errors.each do |error| %> | |
<% # ActiveModel::ErrorsとDry::Schema::Message的なエラーをいい具合に扱う %> | |
<li><%= error.try(:attribute) || error.try(:path) %> : <%= error.try(:type) || error.try(:text) %></li> | |
<% end %> | |
</ul> | |
<% end %> | |
<% unless data.empty? %> |
- name: prepare Node.js 16 for Heroku CLI v9 | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 16 | |
- name: prepare Heroku CLI v9 | |
run: | | |
npm i -g heroku@"~>9" | |
heroku -v | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8"> | |
<meta name="viewport" content="width=device-width"> | |
<title>Promiseの中のエラーを拾う</title> | |
</head> | |
<body> | |
<button id="error-propagated-by-event">DOM Eventで伝播</button> | |
<button id="error-propagated-by-callback">Errorハンドラで伝播</button> |
まだ個人的な気持ちでしかないんだけどメモ。
TypeScriptでResult型でのエラーハンドリングを通してモナドの世界を覗いてみる #関数型プログラミング - Qiita
より。
内容はとてもよいと思うんだけど、やはり
export const ok = (value: T): Ok => ({ ok: true, value });
#! /usr/bin/awk -f | |
# | |
# Usage: | |
# biome lint --colors off 2>&1 | awk | |
# | |
# | |
# filename | |
# |
html``
で十分では?https://mdn.github.io/dom-examples/web-speech-api/speak-easy-synthesis/ を試す。
一定以上の長さになると途中で speak が切れる現象が発生する。
完了 | OS | ブラウザ | Voice |
---|---|---|---|
failure | macOS 13.6 | Chrome 119 | Google 日本語 ( ja-JP ) |
success | macOS 13.6 | Chrome 119 | Kyoko ( ja-JP ) |
success | macOS 13.6 | Safari 17.0 | Kyoko ( ja-JP ) |
success | Android 10 | Chrome 119 | Google 日本語 ( ja-JP ) |