hogashi.*

日記から何から

ポンペイ展よかった

kyotocity-kyocera.museum

そこにいた。

https://kyotocity-kyocera.museum/exhibition/20220421-20220703

 サムネイルが骸骨で怖い気もするけど、異常な世界を堪能とかではなくて、素朴に暮らしが行われていた様子が (火山の噴火によって) それなりに綺麗に残っていて面白い、という展示だった。サブタイトル(?)の「そこにいた。」というのもそういうことだと思う。
 展示の感じも、わざとらしさはあんまりなくて、こういうのが発見されたよ、こうだったと思うッス、というのが淡々と並んでいてよい。写真も個人利用に限って OK でおおらか。

pompeii2022.jp

 暮らしの内容も、確かにそういうこともあるかもね、こういう感じの前提のもと日々の暮らしが行われているな、のどか、みたいな気持ちになる。個人的に良いなと思ったのは犬のタイル画で*1、芸術家の芸術品なのかと思いきや、実は民家に貼ってある猛犬注意の表示というのが素朴〜って感じだった (つくった人は当時の芸術家とか職人とかそういう感じではあったと思う)。あと日時計は時刻を表す曲線がこうなるのかと思って単純に技術的に(?)面白かった。
 妙な親近感があるので、物販でよくあるデフォルメされた絵とかも納得感があって、こういう感じで過ごしてそうだよね、みたいな感じでかわいいパーカーを買った。この踊っている人は確か酒の神の陽気な従者です(踊っている銅像が残っている)、犬は猛犬注意の犬だと思う。

 こういう暮らしもあったのだね〜、紀元79年とか聞くとかなり昔だけど、意外と暮らせてしまいそうな文明だな〜納得〜、と思いに行くのがおすすめです。

 あと京都市京セラ美術館の建物がかなり特殊で面白いので、それも見てほしい。これは最高の樋です。

*1:多分このポンペイ展のポスターとかにもなってた気がする

MacでAlt押したまま色んなキーを押す

 Mac でミスって Alt キーを押したまま他のキーを押すと妙な文字が入力されて、毎回へ〜って思うので、ひと通り押してみた (US 配列を使っています)。

 (追記) Alt って書いてるけど Mac 的には Option っぽい

abcdefg
å∫ç∂´ƒ©

ABCDEFG
ÅıÇÎ´Ï˝

hijklmn
˙ˆ∆˚¬µ˜

HIJKLMN
ÓˆÔÒ˜

opqrstu
øπœ®ß†¨

OPQRSTU
Ø∏Œ‰Íˇ¨

vwxyz
√∑≈¥Ω

VWXYZ
◊„˛Á¸

1234567890
¡™£¢∞§¶•ªº

!@#$%^&*()
⁄€‹›fifl‡°·‚

`=-[]/,.;\'
`≠–“‘÷≤≥…«æ

~+_{}?<>:|"
`±—”’¿¯˘Ú»Æ

 なるほど〜

issueを立てたら尊いという意識を保つ

 仕事していく上で、意外とこれやってないねとか、新しいことがわかったのでやることが増えましたとかそういうときに、じゃあ新しく issue を立てましょうということになる。やることが増えるので、素朴には嬉しくないように感じる。が、よく考えると、やらないとならないことが発見されただけなので、結局はやるはずだったわけで、最終的にやることになる量は増えていなくて、ふむふむこれもやるのですねといってやっていくだけのはずで、何ならわかって嬉しいはず。なので issue を立てられたら尊いということにしましょうというようなことがチームのふりかえりで話されていて、頭に置きつつ仕事している。どんどん issue を立てていくとやることが爆増して途方もない感じになることもあるけど、これは尊いことのはず、と思ってやっていってみている。もちろん闇雲に issue を立てまくっていくと訳が分からなくなって破滅するので、必要な分に留める必要はありそう。

見えてる一番上の記事のタイトルのSHA-1でブログタイトルの文字色変える

 トップのタイトルはブログを投稿するごとに色が変わって、各記事を見てるときのタイトルは記事ごとに色が違うことになる。透明度も含めて変えているので、運が良ければブログタイトルがめっちゃ薄いときもありそう。編集画面のプレビューで確認できてしまうので、良い色を求めてタイトルを変えてしまうおそれがある状態。
 1秒ごととか日付ごとに変わるようにしてもよかったのだけど、何かに基づいて変わっている感はほしいので、いったん記事タイトルだけを使っている。

 TextEncoder とか ArrayBuffer とかあたりはひと手間感あるなと思っていたけど、使ってみるとちゃんと道具が揃っていて便利な気がする。

const entryTitleText = document.querySelector('.entry-title-link').textContent;
const encodedText = new TextEncoder().encode(entryTitleText);
crypto.subtle.digest('SHA-1', encodedText).then(digest => {
  const rgba = Array.from(new Uint8Array(digest)).slice(0, 4);
  const blogTitle = document.querySelector('#title a');
  blogTitle.style.color = `rgba(${rgba.join(', ')})`;
});

 (追記) その後やっぱりブログタイトルはやめてカラーバーみたいなことにした。せっかく桁がいっぱいあるので、 2色とってグラデーションにしたらちょっと綺麗でよい。グラデーションの角度はハッシュを数値にして合計している (360度を超えても、自然と何回転でもしてくれるので便利)。


const entryTitleText = document.querySelector('.entry-title-link').textContent;
const encodedText = new TextEncoder().encode(entryTitleText);
crypto.subtle.digest('SHA-1', encodedText).then(digest => {
  const digestArrray = Array.from(new Uint8Array(digest));
  const rgba1 = digestArrray.slice(0, 4);
  const rgba2 = digestArrray.slice(4, 8);
  const deg = digestArrray.reduce((cur, sum) => cur + sum);
  const target = document.querySelector('.entry-date');
  target.style.background = `linear-gradient(${deg}deg, rgba(${rgba1.join(', ')}), rgba(${rgba2.join(', ')}))`;
});

Text::XslateでTTerseでも%%で行コードが書けるの知らなかった

 Perl のテンプレートエンジン https://metacpan.org/pod/Text::Xslate にはシンタックスがいくつかある。 Kolon も TTerse も使っていて、 Perl コードを書くのに Kolon では <: ... :>: ... どっちもあるのは知っていたけど、 TTerse では [% ... %] しか知らなかった。

 が、 Text::Xslate::Syntax::TTerse のコードを眺めていたら、 %% ... で行コードを書けるようだった (https://metacpan.org/pod/Text::Xslate::Syntax::TTerse をよく見ると書いてあった)。

https://metacpan.org/pod/Text::Xslate#TEMPLATE-SYNTAX

Kolon

Kolon is the default syntax, using <: ... :> inline code and : ... line code, which is explained in Text::Xslate::Syntax::Kolon.

Metakolon

Metakolon is the same as Kolon except for using [% ... %] inline code and %% ... line code, instead of <: ... :> and : ....

TTerse

TTerse is a syntax that is a subset of Template-Toolkit 2 (and partially TT3), which is explained in Text::Xslate::Syntax::TTerse.

HTMLTemplate

There's HTML::Template compatible layers in CPAN.

Text::Xslate::Syntax::HTMLTemplate is a syntax for HTML::Template.

HTML::Template::Parser is a converter from HTML::Template to Text::Xslate.

https://metacpan.org/pod/Text::Xslate#TEMPLATE-SYNTAX

コードの様子

sub _build_line_start { '%%' }
https://github.com/xslate/p5-Text-Xslate/blob/a7908ee382ed01f3a407fe826f2741de76287d36/lib/Text/Xslate/Syntax/TTerse.pm#L13

https://metacpan.org/pod/Text::Xslate::Syntax::TTerse#DESCRIPTION

TTerse is a subset of the Template-Toolkit 2 (and partially 3) syntax, using [% ... %] tags and %% ... line code.

https://metacpan.org/pod/Text::Xslate::Syntax::TTerse#DESCRIPTION

Gitのおすすめエイリアス5選

motemen.hatenablog.com

 色々設定してるけど普段使ってるの何かな〜と思って見ました。

$ history | perl -pe 's|^ *[^ ]+ +||' | grep -E '^git ' | awk '{print $1 " " $2}' | sort | uniq -c | sort -nr | head -5
 470 git gr
 352 git df
 344 git sc
 294 git cam
 293 git push
  • alias.gr=grep -n
    • grep するほとんどの場合で行番号がほしい
    • alias.grn=grep -n --name-onlyワンライナーに便利
  • alias.df=diff
    • 左手だけでシュッと打てて便利
    • 空白の変更を無視する alias.dfi=diff --ignore-space-change とかもしててこれも便利
  • alias.sc=switch
    • 左手だけでシュッと打てて便利
    • checkout -b から sc -c に矯正するためにつくった思い出の alias
  • alias.cam=commit -am
    • トラックされてるファイルの差分を全部 add しつつ引数からコメントをつけて commit
    • やったことを 1行で説明しながら commit するのに手短
    • alias.c=commitalias.cm=commit -m と合わせて場面ごとに使っている
  • git push
    • alias ではない
    • push はミスるとかなり面倒なことがあるので、破壊的(?)な操作と見なして alias しないルールにしている
    • 似たものとして checkout も (補完はあるけど) alias はしてない
      • checkout . とかしてしまうと全部消えてしまう(んだったはず)ので悲しいので……
        • これが上で書いた sc -c に矯正したかった理由のひとつ

 なんでも alias にできるけど、自分の性格的にミスりやすいと思っているので、見境なく alias しないように気をつけています (個人の感想です)。