夢、死んだがそのまま起き上がり過ごす。脈がないことを自分で確認しつつ、なんとなく焦ったまま日が暮れる。自宅に帰ってからタピオカのストローくらいの管を手のひらから手首にかけて入れて何かを注射して蘇生される。
経験したうちでは中の上くらいの悪夢だけど、神経のすり減り度は高かった。木更津キャッツアイ(かなり昔見た、最近思い出して予告を見て懐かしんだ)やバイオハザード8(最近出てたやつ、やってるの見ただけでやってはいない)などの影響がありそう。
Twitter でバズっているツイートにはリンクがないことが多い、という感覚は、逆にリンクがあるときはリンクを開いて満足してしまうということかもね、という会話をした。気をひく文や画像でも、リンクがあったら開いてしまい、ある程度納得してしまうのではないか、リンクがないときはなんだこれと思ったまま (他の人にも聞いて回るような具合で) RT するのではないか、みたいな仮説が立った。
リンクがないことで、より RT に結びつく、というのは、今まで感じていた因果と順序が逆で面白かった。因果が逆そうだな〜みたいなときでも意外と逆のままにして (あるいはあえて逆にして) 考えるとわかる事柄もありそう。
ブログの背景を京都のいまの天気によって切り替えてみたくなって OpenWeather という天気 API を使って素朴に background-image を切り替えるようにした。アカウント作ったら API が使えて便利、ちょろっと js 書いて完成した。いま京都は曇りです。
写真は過去に取ってたやつを使っている、冬が好きなので夏だけど問答無用で雪の様子が出ます。
/* 京都の天気で背景変える */ const url = 'https://api.openweathermap.org/data/2.5/weather?lat=35&lon=135.7&units=Metric&appid=xxx'; fetch(url).then(res => res.json()).then(json => { const weather = json.weather; if (!weather || !weather[0]) { return; } const mainWeather = weather[0].main; const backgroundImageSrcs = { Clear: 'https://cdn-ak.f.st-hatena.com/images/fotolife/h/hogashi/20210715/20210715000656_original.jpg', Clouds: 'https://cdn-ak.f.st-hatena.com/images/fotolife/h/hogashi/20210714/20210714235934_original.jpg', Rain: 'https://cdn-ak.f.st-hatena.com/images/fotolife/h/hogashi/20210714/20210714233101_original.jpg', Snow: 'https://cdn-ak.f.st-hatena.com/images/fotolife/h/hogashi/20210714/20210714233101_original.jpg', }; const imageSrc = backgroundImageSrcs[mainWeather]; document.querySelector('html').style.backgroundImage = `url('${imageSrc}')`; });
html { background: top / contain repeat-y url(''); } body { /* 写真そのままだと見づらいこともあるのでちょっと白くする */ background-color: rgba(255, 255, 255, 0.4); }
天気の API 探したらこの記事を見つけたので見つつやってて、確かにアカウントつくった直後は API 使えなかったけどちょっと待ったら使えるようになるみたいな感じだった。
アウトプットなぜ良いのかは世間で無限に話されているけど、自分にとってはやはりこれが一番大きいと思う。
昨日書いた JavaScriptでは変数名に三点リーダが使えない/識別子におすすめUnicode文字セット - hogashi.* も、最初は JavaScript が変数名に使える文字の範囲を決めているんだろうな (それはそうか) くらいにしか思っていなかったし、どういう範囲なのか気になって見て Unicode にそういう文字セットがあるのかというのと三点リーダは入ってないんですねというのを確かめて満足しかけていた。
ただ、意外と Unicode にそういうのがあるというのはいかにも忘れそう && せっかくなので、という気持ちでブログ記事にまとめた。そうすると、「どこを見たのか」「何と書いてあるのか」というようなぼんやりとやっていたことを、文字に起こしてはっきりさせる必要が出てくる。個人のまとめなのでもし間違っていても仕方ないが、できれば間違えたくないし、根拠も納得できるものにしたい。なのでドキュメントをちゃんと見るし、英語も読む (不安なので機械翻訳にかけたりもする) し、実際に実行してどういうエラーが出るのかもちゃんと見る。
結果的には最初に比べて格段に細かい情報収集をするので、もし間違っていたらそれに気づけるし、より納得できる。あと少なからず推敲するので知識が記憶に定着して便利 (忘れることもあるけど記事見返したときの思い出し方が変わってきそう) 。
ちなみにこれはアウトプットということはなくて単なる日記です。日記をインターネットに書くことにどういう嬉しさがあるかは言語化むずい気がするけど、少なくとも文章をそれなりにちゃんと書く練習にはなっていそう。てにをはとか……。
ID_Start
と ID_Continue
の文字を使えることにしているJavaScript では、変数名に日本語を使ったりできる (使える言語は他にもあると思う) が、三点リーダは使えない (syntax error になる*1 )。
const いろは = 123; const い… = 123; // Uncaught SyntaxError: Missing initializer in const declaration let ろ… = 123; // Uncaught SyntaxError: Invalid or unexpected token const … = 123; // Uncaught SyntaxError: Invalid or unexpected token
MDN を見ると、ブログ記事に詳しいとのこと。
文法とデータ型 - JavaScript | MDN
å
やü
などの ISO 8859-1 や Unicode 文字 (詳しくはこのブログ記事を参照) も識別子に使用することができます。
ブログ記事を見ると、 ES2015*2での識別子はこう:
Valid JavaScript variable names in ES2015 · Mathias BynensAcceptable Unicode symbols
In ES2015, identifiers must start with
$
,_
, or any symbol with the Unicode derived core propertyID_Start
.The rest of the identifier can contain
$
,_
, U+200C zero width non-joiner, U+200D zero width joiner, or any symbol with the Unicode derived core propertyID_Continue
.
Unicode を見ると、 ID_Start
や ID_Continue
というのは Unicode が用意している識別子用の文字セット詰め合わせみたいなもので、プログラミング言語の変数名などはこれを使うのがおすすめというようなことが書かれている。
These guidelines follow the typical pattern of identifier syntax rules in common programming languages, by defining an ID_Start class and an ID_Continue class and using a simple BNF rule for identifiers based on those classes; however, the composition of those classes is more complex and contains additional types of characters, due to the universal scope of the Unicode Standard.
UAX #31: Unicode Identifier and Pattern Syntax
三点リーダが Unicode でどうなっているか見ると、確かに ID_Start
と ID_Continue
には入っていない。というわけで、 JavaScript では変数名に三点リーダは使えないのであった。
普段の暮らしで妙な変数名にすることはまずないので困らないけど、もし困ったら https://codepoints.net/ で見るとよい、ということがわかった (エラーで気付きそうではある)。
あと Unicode が識別子用におすすめ文字セットを用意してくれてるのは便利、 Unicode のドキュメントにも書いてあるけどハッシュタグみたいなことをするときにどういう範囲の文字を使うかさっと決められそう。
*1:const の例では書式がおかしいので? 初期化してないよというエラーになっている