お知らせ

現在サイトのリニューアル作業中のため、全体的にページの表示が乱れています。

突然ですが皆さんは駄文同盟.comというサイトを御存知でしょうか?ご存じの方であれば、懐かしいサイトだと思います。この記事では駄文同盟.comを軸に、かつてのWebサイトが今どうなっているのかを探り、その上でこれからの個人サイトがどうあってほしいかや、うちのサイトがどうしていきたいかなどの雑多な内容をつらつら書いていきます。

駄文同盟.comトップページ

駄文同名は2002-06-151に同盟として生まれたサイトで、当時はいわばWebリング的存在でしたが、2004-10-20に現在の登録型検索エンジンとして生まれ変わりました。2

2002-07-03から存在する当サイトも登録しています。1桁IDは取れなかったものの、なんとか2桁IDに収まっているのは一瞬の誇りに近いものがあります。

ネット黎明期、いや最盛期とも言える時期から存在するサイトですが、ふとID上位100内のサイトがどれほど生き残っているのか気になったので調べてみたので、今回はその結果を出してみました。

確認した観点

主に次の4つの観点で見ています

  • 駄文同盟IDが存在するか?
  • バナーファイルが存在するか?
  • サイトが存在するか?
  • サイトが半年以内に更新されているか?
駄文同盟IDが存在するか?

これは駄文同盟.comにそのIDがあるかどうかを見ています。何かしらの事情で抹消されたIDは存在しないため、本記事ではサイトが消滅したものとして扱います。駄文同盟.comの登録が煩わしくなって解除したなどは考慮しません。

これは基本的に閉鎖以外で消すことは見に来てくれる人が減ってしまうので、あまりないと考えているためです。勿論、駄文同盟.com経由で来るユーザーが自分のサイトにマッチしないなどの理由で削除すること自体はあると思います。

内訳として存在するサイトは100サイト中34しかなく、66サイトはIDそのものが消滅していました。悲しいですね…。

駄文同盟IDが存在するサイトの内訳チャート

以降はこの66サイトを除外して考えます。

バナーファイルが存在するか?

基本的にサイトが無くなっていればバナーもなくなっていると思うのですが、単にバナーファイルのURLが移動したとかでもバナーファイルが不存在になることはあるため、指標としてはあまり役に立ちませんが、一応ピックアップしています。

実際にはサイトがないのにバナーが生きているというサイトが3サイトありました。これはバナーファイルがサイトとは別の場所にあるケースで見かけました。昔はバナーの直リンク禁止と言う文化もあったので、その関係なのかもしれません。画像の直リンクができないホスティング事業者もありますが、該当サイトはすべて対象外だったので、ここは関係なかったです。

しかし、いずれのサイトも消滅から時間が相当経過していると思うのですがバナーだけ残っているというのはすごいなと思いました。

駄文同盟.comのIDがあるサイトの内訳としてバナーがあるサイトは16、消滅しているサイトは15、ノーバナーのサイトは3ありました。

バナーファイルが存在するサイトの内訳チャート

サイトが存在するか?

文字通りWebサイトが存在するかどうかです。ホスティングサーバーのエラーなどが返ってくるサイトはサイトが存在しないものとして扱っています。逆に言うとエラーさえ返って来なければ存在するものとして扱っているので「当サイトは閉鎖しました」などと書かれていても存在する扱いにしています。

駄文同盟.comのIDがあるサイトの内訳として存在するサイトは18、消滅したサイトは16ありました。
閉鎖扱いのサイトは備考欄に「閉鎖サイト」と記載していますが、2サイトあります。
つまり有効に機能しているサイトはこの時点で16サイトに絞れます。

サイトが存在するサイトの内訳チャート

サイトが半年以内に更新されているか?

Webサイトそのものが現存していたとしていても更新されていなければ生き残っているとは言い難いと思うので、サイトにアクセスし、更新履歴などから半年以内に更新があるサイトを確認しました。

半年以内というのはややシビアかもしれませんが、半年も更新されてない個人サイトなんて墓場かなんかじゃないですか?少なくとも私はそう思います。なお当サイトは過去に最大で一年半くらい更新していない期間があった気がしますが、その時は確実に墓場でした。但しまともに運営していた時は最低でも月一では更新していたと思いますし、最盛期は一日に数回更新していたときもあったと記憶しています。

この内訳としては消滅したサイトを除くと半年以内に更新されているサイトが2、更新されていないサイトが16でした。

サイトが半年以内に更新されているかの内訳チャート

つまり、駄文同盟.comに登録されているID上位100位のサイトで現在でも機能しているサイトはたった2サイトしかないことが解ります。正直そんなサイトうちのサイトだけではないのか?と思っていたので、もう1サイトあるというのはちょっと驚きました。

総括とかいろいろ

全チャート

総括すると駄文同盟.comに登録されているID上位100位のサイトのうち、現在でも運営されているのはたった2サイトであることが解ります。駄文同盟ができて約19年の時の中で、多くのサイトが消滅したという事を考えると、なんというか時の流れは残酷というか、個人サイトの運営というのは相当奇特な行為なのかもしれないなと思いました。

因みに私がサイトを立ち上げた当初は20人ほど個人サイトを運営しているネッ友がいたのですが、Webサイトとして現存しているのは1サイトで、それも2011-07-14を境に更新が止まっていました。きっともう彼は私のことを覚えていないでしょうが、人生で一番最初にオフ会をした相手でした。

その後も10名ほどの個人サイト管理者やブロガーと出会うことがありましたが、確認できた限り2サイト残っており、それぞれ2010年と2021年で更新が途絶えていました。最近はめっきりそういう人と出逢えてないですが、大体SNSに籠もってたせいですね。概ね Twitter昔はTumblrもやってましたが今は全く触ってないので廃墟になってます。思い返せばはてなブックマークとか色々やっていた気がします。はてなアカウントはもう残ってないですが…w

なんというか最近はSNSに固執するのも疲れるなぁと言うので、個人サイト運営に回帰しようかなと思っているところです。SNS、特にTwitterのようなものだとリアルタイムにコミュニケーションをしたくなって結果的に画面に張り付く事になり、なんかしんどいなという。他のことができないのもそうですし、性格的にレスバしてしまうので自家中毒ではあるものの精神的にしんどいですし、他にも発言に注意しないとどこから何が飛んでくるかわからない世界なので、それも疲れるというのがあります。

のんびりマイペースに自分のサイトを運営していればそういったことは減りますし、体験記とかも記事としてまとめればTwitterよりも振り返りやすく、自分のためにもいいし、割と何気なく書いた情報が誰かの役に立つといったシーンはあると思っているので、そういうことがTwitterよりやりやすいのもまたメリットですね。他にも情報がフローというよりはストックなので、自分の人となりを誰かに伝えるときにも、こんなサイトをやっていますというとTwitter寄りはポートフォリオになるので、伝えやすいといった側面もあるかなと思っています。

私はもし出来ることなら、年老いて何も書けなくなるその瞬間までこのサイトを更新し続け、可能であれば死後もこのサイトを残せたらいいなと思っています。まぁ理想論ですし、ネット上のノイズを増やすだけの迷惑行為でしかないわけですがw。でも個人サイトってそんなもんじゃない?って私は思ってます。最近はいかがでしたブログや、胡散臭い情報商材サイト、サロン・スクール系の様なサイトが増えて残念ですが、個人的には今起きているTwitterやpixivなどのプラットフォームの混乱により、昔のようにまた個人サイトが増えてくれたらいいなと思っています。リンクとか一種のフォローみたいでいいと思うんですよね。

ただまぁ、インターネットに来る人が昔より圧倒的に増え、スパムなども桁違いに増えていますし、ポリコレのこともあるので、昔のような放牧的インターネットはもう難しいのかなとも思っています。これはちょっと残念なところですね…。

私は今後、個人サイトの運営を主軸にしつつ、ちょいちょい兵庫丼みすてむ、Discordにも出没して、人の繋がりを薄く分散的に維持しつつ。Twitterはたまに見るくらいにしようかなと思っています。Twitterは仕事関係の繋がりもあるので、消しはしないと思います。

またなんか昔のようなネッ友的関係が築けると良いのですが、インターネットがリアルタイムでリッチになりすぎてしまっているので、あの時のような距離感はもう難しいのかなと思っています。昔はBBSに書き込んでもレスが来るのは数時間後、半日後、翌日とかだったので成り立っていたと思います。今の時代にもうそれはないので、時代の流れとして、過去の良き思い出として受け止める必要があるかなと思っています。

このサイトにはBBSこそないものの、一応コメント欄はありますしね。ここで交流を図ろうとする人がいるかどうかは果たして未知数ですが、まぁいないでしょう。一時期は記事に対して建設的なコメントが来てたこともあったのですが、そのうち「自作PCの作り方を教えて」みたいなコメントが来るようになって、頭を抱えていた時期もありました。(それで確か自作PC系はコメント閉じたと思います)

また最後になりますが、この記事はコロンビアさんのTwitterから距離を置くオタクという記事に触発されて書きました。(失礼ですが余りに共感できる記事だったので、勝手に紹介させて頂きました)個人サイトに対する思いに非常に共感でき、またTwitterの付き合い方についても深く同意できる内容でした。多分個人サイト運営者の中にはそういった人も少なくはないのかもしれません。因みに私はTwitterをアカウント通算で行くと2010年からやっているので、もう13年目ですね。過去のアカウントは残ってませんが確か今のは5代目くらいのアカウントだったかと思います。

私の場合はコロンビアさんの様にTwitter人生を通しての知り合いはおらず、アカウントを作り直すたびにリセットされてる感じではあります。ただ今のアカウントはおそらく一番長生きしてるやつだと思うので、そういう意味では長い人は長いですね。そもそもまともに交流してないので仲のいいフォロワーみたいなのはいないのですが…。(むしろ仲違いして分かれることのほうが多い)フォローの底の方は疎遠な人しかいない有様。

まぁそんなこんなで話が発散してしまいましたが、今後は乱筆ながらもこのサイトをぼちぼち更新していければなと思います。最早常連の方などいないと思うので誰に向かって話しているのか謎ですが、当サイトを今後とも宜しくお願いします。

集計データ

Google Spreadsheetにまとめていますが、ブログ記事にもデータテーブルを掲載しておきます。

ID 駄文同盟 ID 存在 バナーファイル存在 サイト存在 サイト更新有 最終更新日 サイト名 サイト URL 駄文同盟ページ 備考
1 サイト消滅 駄文同盟 http://l-f-t.hp.infoseek.co.jp/ http://www.dabun-doumei.com/data/1.html
2 サイト消滅 FixedStar http://homepage3.nifty.com/fixed-star/ http://www.dabun-doumei.com/data/2.html
3 IDなし IDなし IDなし http://www.dabun-doumei.com/data/3.html
4 サイト消滅 Bullshit! http://bullshit.livedoor.biz/ http://www.dabun-doumei.com/data/4.html
5 IDなし IDなし IDなし http://www.dabun-doumei.com/data/5.html
6 IDなし IDなし IDなし http://www.dabun-doumei.com/data/6.html
7 2017-06-09 Moonlight night crow http://mindplus2.x0.com/ http://www.dabun-doumei.com/data/7.html
8 IDなし IDなし IDなし http://www.dabun-doumei.com/data/8.html
9 2017-09-30 Future flower http://miraibana.web.fc2.com/ http://www.dabun-doumei.com/data/9.html
10 サイト消滅 ロレンシアサーガ https://sites.google.com/site/rorenshiasaga/ http://www.dabun-doumei.com/data/10.html
11 IDなし IDなし IDなし http://www.dabun-doumei.com/data/11.html
12 IDなし IDなし IDなし http://www.dabun-doumei.com/data/12.html
13 サイト消滅 a glance http://www.cakunte.org/ http://www.dabun-doumei.com/data/13.html
14 IDなし IDなし IDなし http://www.dabun-doumei.com/data/14.html
15 IDなし IDなし IDなし http://www.dabun-doumei.com/data/15.html
16 IDなし IDなし IDなし http://www.dabun-doumei.com/data/16.html
17 IDなし IDなし IDなし http://www.dabun-doumei.com/data/17.html
18 サイト消滅 Out Of Wind http://real-fusion.net/ http://www.dabun-doumei.com/data/18.html
19 IDなし IDなし IDなし http://www.dabun-doumei.com/data/19.html
20 IDなし IDなし IDなし http://www.dabun-doumei.com/data/20.html
21 IDなし IDなし IDなし http://www.dabun-doumei.com/data/21.html
22 IDなし IDなし IDなし http://www.dabun-doumei.com/data/22.html
23 サイト消滅 僕らの秘密基地で・・。 http://bokuranohimitukiti.hp.infoseek.co.jp/ http://www.dabun-doumei.com/data/23.html
24 IDなし IDなし IDなし http://www.dabun-doumei.com/data/24.html
25 サイト消滅 Cafelife ★ かふぇらいふ ★ https://homepage.biglobe.ne.jp/errorpage/404.html http://www.dabun-doumei.com/data/25.html
26 サイト消滅 そらの涙 http://soranonamida.sakura.ne.jp/ http://www.dabun-doumei.com/data/26.html
27 IDなし IDなし IDなし http://www.dabun-doumei.com/data/27.html
28 IDなし IDなし IDなし http://www.dabun-doumei.com/data/28.html
29 はのろぐ。 http://nosfoni.cocolog-nifty.com/ http://www.dabun-doumei.com/data/29.html
30 IDなし IDなし IDなし http://www.dabun-doumei.com/data/30.html
31 IDなし IDなし IDなし http://www.dabun-doumei.com/data/31.html
32 IDなし IDなし IDなし http://www.dabun-doumei.com/data/32.html
33 IDなし IDなし IDなし http://www.dabun-doumei.com/data/33.html
34 IDなし IDなし IDなし http://www.dabun-doumei.com/data/34.html
35 IDなし IDなし IDなし http://www.dabun-doumei.com/data/35.html
36 IDなし IDなし IDなし http://www.dabun-doumei.com/data/36.html
37 IDなし IDなし IDなし http://www.dabun-doumei.com/data/37.html
38 IDなし IDなし IDなし http://www.dabun-doumei.com/data/38.html
39 IDなし IDなし IDなし http://www.dabun-doumei.com/data/39.html
40 2010-10-31 藍咲旅館 http://everyfortune.web.fc2.com/ http://www.dabun-doumei.com/data/40.html
41 2021-02-24 きまぐれカメレオン(跡地) http://koggelmander.web.fc2.com/ http://www.dabun-doumei.com/data/41.html 閉鎖サイト
42 IDなし IDなし IDなし http://www.dabun-doumei.com/data/42.html
43 IDなし IDなし IDなし http://www.dabun-doumei.com/data/43.html
44 IDなし IDなし IDなし http://www.dabun-doumei.com/data/44.html
45 2019-02-15 月胡蝶 http://tukikotyou.sakura.ne.jp/ http://www.dabun-doumei.com/data/45.html
46 IDなし IDなし IDなし http://www.dabun-doumei.com/data/46.html
47 サイト消滅 私の研究所 http://zodiark.jp/ http://www.dabun-doumei.com/data/47.html
48 2010-12-17 Tokimeki Laboratory http://tokilabo.yuuri063.client.jp/ http://www.dabun-doumei.com/data/48.html
49 IDなし IDなし IDなし http://www.dabun-doumei.com/data/49.html
50 IDなし IDなし IDなし http://www.dabun-doumei.com/data/50.html
51 IDなし IDなし IDなし http://www.dabun-doumei.com/data/51.html
52 IDなし IDなし IDなし http://www.dabun-doumei.com/data/52.html
53 IDなし IDなし IDなし http://www.dabun-doumei.com/data/53.html
54 IDなし IDなし IDなし http://www.dabun-doumei.com/data/54.html
55 IDなし IDなし IDなし http://www.dabun-doumei.com/data/55.html
56 IDなし IDなし IDなし http://www.dabun-doumei.com/data/56.html
57 IDなし IDなし IDなし http://www.dabun-doumei.com/data/57.html
58 IDなし IDなし IDなし http://www.dabun-doumei.com/data/58.html
59 IDなし IDなし IDなし http://www.dabun-doumei.com/data/59.html
60 2010-06-06 Fanciful Atheneum http://atheneum.yukihotaru.com/ http://www.dabun-doumei.com/data/60.html
61 2008-09-14 春はタケノコ http://www11.plala.or.jp/harutake/ http://www.dabun-doumei.com/data/61.html
62 IDなし IDなし IDなし http://www.dabun-doumei.com/data/62.html
63 Ele-de-Seadia http://seadia.halfmoon.jp/ http://www.dabun-doumei.com/data/63.html
64 IDなし IDなし IDなし http://www.dabun-doumei.com/data/64.html
65 IDなし IDなし IDなし http://www.dabun-doumei.com/data/65.html
66 サイト消滅 空水の蒼 http://www.geocities.jp/kuusiu_ao/ http://www.dabun-doumei.com/data/66.html
67 IDなし IDなし IDなし http://www.dabun-doumei.com/data/67.html
68 2011-05-22 +es-se http://esses.fc2web.com/ http://www.dabun-doumei.com/data/68.html
69 IDなし IDなし IDなし http://www.dabun-doumei.com/data/69.html
70 IDなし IDなし IDなし http://www.dabun-doumei.com/data/70.html
71 IDなし IDなし IDなし http://www.dabun-doumei.com/data/71.html
72 2021-05-24 Feathery Instrument http://blankrune.sakura.ne.jp/ http://www.dabun-doumei.com/data/72.html
73 IDなし IDなし IDなし http://www.dabun-doumei.com/data/73.html
74 IDなし IDなし IDなし http://www.dabun-doumei.com/data/74.html
75 ノーバナー 2007-04-14 Daredevils' Anthem http://id5.fm-p.jp/88/sunofadoll/ http://www.dabun-doumei.com/data/75.html
76 IDなし IDなし IDなし http://www.dabun-doumei.com/data/76.html
77 2006-04-30 CRESCENT MOON http://myaco.s41.xrea.com/ http://www.dabun-doumei.com/data/77.html 閉鎖サイト
78 IDなし IDなし IDなし http://www.dabun-doumei.com/data/78.html
79 IDなし IDなし IDなし http://www.dabun-doumei.com/data/79.html
80 2017-05-22 あるロリコンの小部屋 http://tiss.gozaru.jp/ http://www.dabun-doumei.com/data/80.html
81 IDなし IDなし IDなし http://www.dabun-doumei.com/data/81.html
82 サイト消滅 Valkyrie's Garden http://valkyrie.xdap.jp/ http://www.dabun-doumei.com/data/82.html
83 サイト消滅 想人の記憶(イマジンズメモリー) https://www.freett.com/imagineM/index.htm http://www.dabun-doumei.com/data/83.html
84 2023-02-20 鷹嶺創書院・東院 http://innnostalgia.web.fc2.com/index.html http://www.dabun-doumei.com/data/84.html
85 IDなし IDなし IDなし http://www.dabun-doumei.com/data/85.html
86 IDなし IDなし IDなし http://www.dabun-doumei.com/data/86.html
87 IDなし IDなし IDなし http://www.dabun-doumei.com/data/87.html
88 ノーバナー 2023-03-31 Lycolia https://blog.lycolia.info/ http://www.dabun-doumei.com/data/88.html 当サイト
89 IDなし IDなし IDなし http://www.dabun-doumei.com/data/89.html
90 IDなし IDなし IDなし http://www.dabun-doumei.com/data/90.html
91 IDなし IDなし IDなし http://www.dabun-doumei.com/data/91.html
92 IDなし IDなし IDなし http://www.dabun-doumei.com/data/92.html
93 IDなし IDなし IDなし http://www.dabun-doumei.com/data/93.html
94 サイト消滅 淡雪堂 http://awayuki.fem.jp/ http://www.dabun-doumei.com/data/94.html
95 IDなし IDなし IDなし http://www.dabun-doumei.com/data/95.html
96 2009-04-25 なんでも屋 http://md01.fc2web.com/ http://www.dabun-doumei.com/data/96.html
97 サイト消滅 言葉の欠片~ことのはのかけら~ http://bcbweb.bai.ne.jp/~aoc38101/ http://www.dabun-doumei.com/data/97.html
98 IDなし IDなし IDなし http://www.dabun-doumei.com/data/98.html
99 ノーバナー サイト消滅 Blue Fun Flower http://www.geocities.jp/bluefunflower/ http://www.dabun-doumei.com/data/99.html
100 IDなし IDなし IDなし http://www.dabun-doumei.com/data/100.html

Microsoft製のNotionクローンと噂のLoopを軽く触ってみたのでその感想です。
あくまで軽く触ってみただけで間違っている部分もあるかと思うので、その際はご指摘いただけると助かります。

雑感

軽く触ってみたところ、現段階ではNotionには遠く及ばない感じがしました。

天下のMS製なので頑張ってほしいところですが、なんとなくNotionとは想定しているユーザー層が違うような気がしたので、ユースケースも違うのかもしれません。

テキストマークアップ機能について

通用しないMarkdownが多く、WYSIWYGに頼らないと記述は難しそうでした。一応キーボード操作で標準的なマークアップ自体はできるのですがMarkdownを手入力しているエンジニアにとってはやや煩雑だと感じます。更にCodefenceが存在しないためソースコードを書き込むのにも不便です。

文字色の設定はNotion同様に背景色か前景色が設定できるので悪くないと思います。

マークアップレンダリングの参考
image-1679674032699.png

Database 機能について

Notionでは情報整理に重宝するDatabase機能ですが、Loopには存在しません。一番近いのはテーブルだと思うのですが、フィルタ機能がなく、Notionのマルチセレクトやリレーションのようなものも見当たらないので余り使えない気がします。その代わり投票機能があったりします。一応タスクリストや進行状況トラッカーというものもあるのですが、中身は単なるテーブルのテンプレート(Loopではコンポーネントと呼ばれている)のように見えました。

テーブルの参考
テーブルの参考

ワークスペースについて

これに関してはLoopに分があり、1アカウントで複数のワークスペースを作ることが出来ます。Notionの場合は複数アカウント必要で切り替えも手間がかかるので、これは便利だなと思いました。

ワークスペース画面
ワークスペース画面

また、共同編集者も50人まで追加できるようなので、この機能が今後も無料で続くならNotionより使い勝手がいいかもしれません。Notionみたいにリアルタイムに同時更新できてカーソルとかまで出てくるのかまではわかりませんが…。

共同編集者の設定
共同編集者の設定

レイアウト機能とか

Notionはカラムを作ったり比較的自由に配置できますが、Loopの場合は特に何も出来ないようでがっかりしました。

あとページに画像を添付することが出来るのですが、Notionの場合画像を貼り付けた後に縮小しても画像をクリックすれば元画像が見れますが、Loopではクリックしても何も起きません。OneNoteと同じです。正直何を考えているのかわからない

UIとか

UIもなんか微妙な感じで、Notionと比べるとメニューのネストが深かったり、何が何処にあるのかイマイチわかりづらかったりして非直感的だと感じました。

ただメニューに切り取りとかコピーがある所から考えると、Notionよりライトなユーザーを想定しているのかもしれません。そういうユーザーには非合理的なUIのほうが受けが良い気もするので、なんとなく指針にうなずける気もします。

文字装飾 文字装飾続き Notion の/相当 Notion の/相当続き
文字装飾
文字装飾続き
Notion の/相当
Notion の/相当続き

アプリについて

どうもLoopのAndroidアプリは現状個人では使えないようで、何かしらの組織で管理されたOffice 365に入ってないと使えないようでした。

個人的にはオフラインでも使えるNotionを期待していたのですが、現状を見るにNotionとは方向性が違うようなので仮に個人でアプリが使えるようになってもLoopを使うことが出てくるのかどうかは怪しい気がしました。

あとNotionのAndroidアプリって重かったり操作性が悪かったりして微妙なんですよね…。(この辺りはOneNoteが個人的に好みですが、OneNoteはNotionと比べた時に画像添付やページ管理が非力なのが微妙な感じ)

ざっくりとした大まかな機能比較

機能 Notion Loop 備考
Markdown ⚠️ Loopでは見出しとリストくらいしか使えませんでした
Database Loopだとチケット管理や看板はできそうにないです
一応TODOリストレベルのものはあります
マルチワークスペース Loopは1アカウントで複数のワークスペースを持てますが、Notionは別アカウントが必要です。
レイアウト機能 Loopは左右のレイアウト分割みたいなことは出来ないようです
画像プレビュー Loopでも添付画像の縮小はできますが、縮小した画像をクリックして元サイズを見ることは出来ません

この記事ではGitHub ActionsのCustom actionをJavaScriptで実装するJavaScript actionをTypeScriptとSWCを使って実装した方法を書いてます。

モチベーション

  • GitHub ActionsのWorkflowsを共通化したい
  • TypeScriptでロジックを書きたい
  • SWCを使いたい(nccはtscを使うので避けたい
  • github-scriptは一定以上のボリュームがあるものには向かない
    • これを使いつつUTを書いたりするとなると結構面倒になると思う

今回作るもの

Custom actionのうちJavaScript actionを作成します。
実装コードはTypeScript、トランスパイラはSWC、バンドラはwebpackを利用します。
バンドラを利用するのは、node_modules/をGitで管理したくないためです。
ビルド成果物であるdist/は実行時に必要なため、Gitで管理します。
(CI上でビルドしてキャッシュさせておくことも出来ると思いますが、今回は扱いません)

確認環境

Env Ver
@actions/core 1.10.0
@actions/github 5.1.1
@swc/cli 0.1.57
@swc/core 1.3.26
swc-loader 0.2.3
typescript 4.9.5
webpack 5.75.0
webpack-cli 5.0.1

サンプルコード

Custom Actions本体

Custom action本体のサンプルコードです。以下に一式があります。
https://github.com/Lycolia/typescript-code-examples/tree/main/swc-ts-custom-actions

ディレクトリ構成

dist/配下を叩くため、ここはGit管理に含めます。バンドルするのでnode_modules/はGit管理から外して問題ありません。

├─dist/
│ └─index.js        # Custom Actionsとして実行するファイル本体
├─node_modules/
├─src/
│ └─index.ts        # TypeScript実装
├─action.yaml       # Custom Actionsの定義
├─package-lock.json
├─package.json
├─swcrc-base.js     # SWCの設定
├─tsconfig.json     # tscの設定
└─webpack.config.js # webpackの設定
swcrc-base.js

SWCの設定例。特にJavaScript actionのための設定はなく、CLI向けのトランスパイルが出来る設定ならおk。
ファイル名は何でも大丈夫ですが、この場では.swcrcにしないことで、直接SWCで利用しないことを判りやすくするために違う名前にしています。

module.exports = {
    module: {
        type: 'commonjs',
    },
    jsc: {
        target: 'es2020',
        parser: {
            syntax: 'typescript',
            tsx: false,
            decorators: false,
            dynamicImport: false,
        },
        baseUrl: '.',
        paths: {
            'src/*': ['src/*'],
        },
    },
};
webpack.config.js

SWCを使って.tsファイルをバンドルするための設定。これがないとimportの解決ができずにコケます。
node_modules/配下をGit管理に含める場合は不要かもしれませんが、それをするのは微妙だと思います。

const path = require('path');
const swcrcBase = require(path.resolve(__dirname, 'swcrc-base'));

module.exports = {
    // エントリポイント
    entry: path.resolve(__dirname, 'src/index.ts'),
    // 出力設定
    output: {
        // クリーンアップ後に出力
        clean: true,
        // 出力ファイル名
        filename: 'index.js',
        // 出力パス
        path: path.resolve(__dirname, 'dist'),
    },
    // 設定必須なので何か指定しておく
    mode: 'production',
    // 指定してないとNode.jsのネイティブAPIが呼べない
    target: ['node'],
    module: {
        // swc-loaderの設定
        rules: [
            {
                test: /\.ts$/,
                exclude: /(node_modules)/,
                use: {
                    loader: 'swc-loader',
                    // swcrcの設定
                    options: {
                        ...swcrcBase,
                    },
                },
            },
        ],
    },
    resolve: {
        // import時のファイル拡張子を省略してる場合にパスを解決するための設定
        extensions: ['', '.ts', '.js'],
    },
};
src/index.ts

最低限これだけ確認できれば応用して実装できるだろうという程度のサンプルコード。

@actions/*系の使い方は以下のリンクから確認できます。
actions/toolkit: The GitHub ToolKit for developing GitHub Actions.

import * as core from '@actions/core';
import * as github from '@actions/github';

const githubToken = core.getInput('GITHUB_TOKEN', { required: true });
const octokit = github.getOctokit(githubToken);

console.log('octokit', octokit);
console.log('context', github.context);
core.setOutput('RESULT_MESSAGE', 'test result message');
action.yaml

実装の参考例として引数と出力を定義してます。特に不要な場合は書かなくてもいいです。
Node.jsのバージョンを詳細に指定したい場合は、composite action にすれば可能だとは思いますが、試してない。
composite actionにしてnvmか何かでインストールしてやれば恐らく可能。

構文は以下のページで確認できます。
GitHub Actions のメタデータ構文 - GitHub Docs

name: example
description: custom actions example
inputs:
  GITHUB_TOKEN:
    description: 'Repogitory GITHUB_TOKEN'
    required: true
outputs:
  RESULT_MESSAGE:
    description: 'Result message'
on:
  workflow_call:
runs:
  using: node16
  main: dist/index.js

Custom actionを使う側

Custom actionを使うWorkflowのサンプルコードです。以下にソースがあります。
https://github.com/Lycolia/custom-actions-usage-example

.github/workflows/example.yaml

usesのところにはリポジトリの組織名と、リポジトリ名、action.yamlが配置されているディレクトリまでのパスを書きます。ルートディレクトリにある場合はパスを書かなくてOK
最後に@sha-hashでコミットハッシュかタグを付けてやれば呼べるようになります。
動作確認中はハッシュが頻繁に変わるので、最新のハッシュを取得してきて設定されるようにしておくと便利かもしれません。

name: run example
on:
  workflow_dispatch:
jobs:
  example:
    runs-on: ubuntu-latest
    steps:
      - name: run custom actions
        id: test
        uses: org-name/repo-name/path/to/file@sha-hash
        with:
          # Custom action側で定義されている引数(input)の設定
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - name: show custom actions output
        # Custom action側で定義されている出力(output)の取得
        run: echo ${{ steps.test.outputs.RESULT_MESSAGE }}

参考資料

投稿日:
Webサービス::Slackその他::便利ツール

公式のリファレンスが情報少なすぎるのでメモ
特にこれというフォーマットはなく、ある程度幅広い書式があるようで、公式のドキュメントを見る限り、多少のブレはよしなに解釈してくれるっぽい?
この記事ではoperatorなどの用語が登場しますが、これは私が勝手に名付けたものなので、特に公式の用語ではありません

手組するの面倒なので雑にコマンド生成ツールを作りました。

https://tool.lycolia.info/slack-remider-creator

登録

基本

  • フォーマット
    • /remind [宛先] [メッセージ] [実行日時]
    • /remind #random "hoge piyo fuga" at 10:00 every monday, sunday

書式

宛先
宛先 意味
me 自分
@someone メンション
#channel チャンネル
メッセージ

"hoge piyo fuga"のように書けるが、hoge piyo fugaでも一応通じる
ダブルクォートで囲む場合、改行も利用可能

実行日時
  • <oparator> <repeat-operator>
    • <oparator>で実行日時を設定
    • <repeat-operator>で繰り返しを設定
    • at 10:00 every monday, sunday
oparator
オペレーター 意味
in <value> (seconds \ minutes \ hours)
at <HH:mm> at 1700 指定時刻に実行
on <yyyy-MM-dd HH:mm> on 2023-10-10 09:15 指定日時に実行
repeat-operator
  • every <operator>
    • every monday, sunday
operator
day
weekday
sunday, monday, tuesday, wednesday, thursday, friday, saturday

削除

  • /remind listでリスト表示して消す

一覧

  • /remind list
投稿日:
ジャンル::法務Webサービス::その他

確定申告後に国税納付する方法の備忘録

前提条件

  • やよいの○色申告でe-Taxへの送信まで行っている
    • 白でも青でもどっちでもOK
  • e-Taxの利用者登録をしている

手順

  1. e-Tax のログインページを開く
  2. e-Taxソフト(WEB版)へログインする
  3. 「送信結果・お知らせ」から「納付情報登録依頼」を開く
    1. 「送信結果・お知らせ」から「納付情報登録依頼」を開く
  4. 納付方法が列挙されたページが開くので好きな納付方法を選ぶ
    1. コンビニ納付が一番楽
    2. この場合QRコードはPDFに出してスマホで出せるようにすると良い(スクショは読み取れないことがある