Javascript External Library

2026-02-11

ブログカードの更新

このブログはBloggerというGoogleのサービスを利用しています。このサービスはなにか特定の情報を狙ったサービスではないので私のようにテーマを持たずに記事を載せることには便利なのですが割と機能は乏しいです。欲しい機能がなければ便利なサービスに乗り換えるというのが一般的な考え方でしょうが、エンジニアなので欲しい機能がなければ自前で作るという方向で行きます。

記事内で自分の掲載した他の記事に対してリンクを作るとリンク先の記事が紹介されるそういう機能が欲しい。ないなら作るという精神でできたのがブログカード機能です。

旧ブログカード
このカードには1枚目の画像とタイトルと本文という3つの要素があります。
処理としては
  1. 自分の記事をクロールして自サイト内へのリンクを探す
  2. リンク先内の記事から画像とタイトルと本文を抽出
  3. カード風に描画する
この手順で処理されています。

Bloggerの設定
ブラウザで処理することから言語はJavascriptで記述されています。Bloggerは自前のスクリプトを実行できる枠を用意してくれています。問題は処理を記述したスクリプトの公開場所です。当然のことながらWebサーバが必要なのですが、GoogleのSiteサービスはここまで柔軟な提供はできない。

旧構成
そこでAzureの Azure Web App Service を利用してスクリプトを提供します。
問題点は費用を抑えるためにアプリケーションが普段はスタンバイ状態になっていることです。スクリプトはカードが必要ない記事でも読み込まれるのですが、Azure側がスタンバイ状態になっているとアプリケーションが起動するまでの時間が必要で読み込み開始までタイムラグが生じてしまう点です。

長らく気にしながらも放置していたのですが、ちょっと時間ができたこととAzureのサービスも増えたので構成を見直すことにしました。

新構成
要のスクリプト提供はAzure Static Web Appを利用します。これは最近のFEとBEが分離したWebアプリケーションの構成に合わせてあり、FE部分はAzure Front Doorを自動的に利用できます。これにより高速にスクリプトの取得が可能になります。
BE部分はAzure Functionが担当します。Azure Static Web AppはAzure Front DoorとAzure FunctionがセットになっていてAzure DevOpsやGitHubからの直接デプロイで構築します。これで要は満たすのですが、せっかくなので機能アップすることにします。
Azure Functionでサムネイル画像を生成してAzure Blob Storageに保存します。これによりブログカード用の小サイズ画像の読み込みが可能になります。
さらに記事をAzure AIで要約します。旧構成では本文を抽出して先頭部分だけを表示させていたのですが、これにより全文からの要約を表示することが可能になります。
これらの生成情報はAzure CosmosDBに保存しておき、2回目以降のアクセスはAzure CosmosDBから結果を受け取るだけにします。

新ブログカード
新構成になってできたブログカードがこちらになります。
画像はサムネイルように圧縮しているので比較すると粗さがわかりますが今までも小さく表示していたので粗さがわかるのは比較したときくらいかな。本文が要約されている点がとてもわかり易くなっていますね。
新構成は色々と駆動にお金がかかるのですが、要約部分だけは事前に金額が読みにくいです。いくつかの記事の要約をしてみたところGPT4.1モデルで3~4円かかっていました。Azure AIの課金は入出力のトークン数とモデルの種類で決まります。入出力のトークンはプロンプトに依存するのでGPT4.1を最新のGPT5.2モデルに変更しても1記事あたり3~4円というのは変わらなさそうです。後日問題がないことを確認してモデルの変更もやってみようかと思います。

2026-01-18

東北線を歩こう その6

1月の3連休の中日は日本海側は大雪で関東平野は晴天という冬らしい天気になりました。関東は天気がいいことだしお散歩に出かけることにします。

旅程

10:10 小山駅
今日の開始点は新幹線駅でもある小山駅です。いつも通りの時間に起きて電車を乗り継いで小山駅まで着たらもう10時でした。早起きするか新幹線を利用するかしないと9時台は難しい。

駅前上町交差点
駅前の栃木県道を263号線を進んで駅前上町交差点で北に進路を変えます。
今日もずっと北に向かっていきます。

栃木県道265号線
栃木県道265号線は旧国道4号線です。今の国道4号線は市街地を避けるバイパスですね。

第1奥州街道踏切
第1奥州街道踏切で両毛線を超えます。旧4号は平面交差ですが、現道は立体交差になっています。

喜沢分岐点交差点
しばらく北上すると現道に合流します。

国道4号線
合流してからはひたすら国道4号線を北上していきます。

小金井駅前交差点
駅前交差点で小金井駅方面に入ります。

11:56 小金井駅
栃木県道104号線を少し進んだ際に小金井駅がありました。小山駅からは2時間弱といったところです。
駅前にはC57機関車の動輪が飾られていました。小金井駅自体は特に大きくもない駅なのですが、すぐ北には小山車両センターがあります。そのため上野東京ラインの多くは小金井止まりになります。つまり、此処から先はさらに運行間隔が開くということですね。

国道4号線
小金井駅で10分ほど休憩して再び国道4号線を北上します。

小金井一里塚
だいたいが跡形もなくなっている一里塚ですが小金井のはまだ現存しているようです。

下野市市役所
下野市に入って市役所が沿線に現れました。

駅前の交差点
市役所の直ぐ側の交差点を右折します。

12:47 自治医大駅
40分程度で自治医大駅に到着しました。1983年に開業なのでまあまあ新し目の駅です。名前はすぐ近くの自治医科大学に基づきます。この大学は少し特殊で旧自治省が設置したものです。医師が不足しがちな地方医療を支える目的で設置されていて通常では多額の学費が貸与されます。その対価は地方に医師として赴任することです。ちなみに学費の貸与を求められたのに地方の赴任を拒否して学費の返還を求められたことに対して不服を申し立てた元学生が話題になっています。条件付きで金を借りておきながら踏み倒そうとするというこの行為が許されたら自治医大は崩壊ですけど裁判所が真っ当な判断をしてくれることを望みます。

国道4号線
15分ほど休憩してまた国道4号線を北上します。

下石橋北交差点
立体交差の交差点は国道352号線です。

石橋交差点
石橋駅前の石橋交差点を右折して石橋駅方面に向かいます。

14:06 石橋交差点
1時間ほどで石橋駅に到着しました。
次の雀宮駅は少し離れているのでここで終わるか迷いましたが、何となく今日はもう少し歩きたい気分だったので続行することにします。

石橋交差点
石橋交差点まで戻って国道4号線を北上します。

北関東自動車道
やけに高い高架の北関東自動道をくぐります。たぶん、新幹線の高架の影響でしょうね。

五叉路
ちょっと変わった五叉路は栃木県道193号との交差です。

雀宮駅前交差点
駅前の交差点を右に曲がって栃木県道112号線を進みます。

15:44 雀宮駅
1時間半ほどで雀宮駅まで到着しました。ここまで来ると宇都宮は目の前ですね。
満足するまで歩いたのでここまでにします。
なお、帰りの電車は強風の影響で大変に遅延していました・・・

  • 今回
    徒歩:22.92km
    区間:小山~雀宮 21.2km
  • 累積
    徒歩:122.36km
    区間:東京~雀宮 101.8km/535.3km 19.02%

エジプト旅行

はじめに

2024年の年末年始はカレンダーの関係からかなりの大型の休暇を確保することができたのでニュージーランドを堪能しました。2025年はというと12月29日が月曜日なのでちょっと悩みどころでした。しかし、頑張ってスケジュール調整を行うことで12月29日に有給休暇を取得することに成功したので12月27日~1月4日の9連休を確保できました。これなら遠方にいけますね。
年末年始の高い航空券とにらめっこして比較的安価に発券できるエジプトに行き先を決めました。初めてのアフリカ大陸で初めての砂漠気候になります。さてどんなところか。楽しみであり不安でもある旅程となります。

旅程

旅程(全体)

旅程(アジス・アベバ拡大)

旅程(エジプト拡大)

旅程(ルクソール拡大)

旅程(カイロ拡大)

1日目


2日目



お土産


お土産

費用

  • 交通費
    • エチオピア航空
      • 成田空港↔カイロ空港 209,080JPY
    • エジプト航空
      • ルクソール空港→カイロ空港 17,550JPY
    • エジプト鉄道
      • ギザ→ルクソール 217.64EUR(=38,781JPY)
      • チケット受取時のチップ 100EGP(=335JPY)
      • 車掌のチップ 100EGP(=335JPY)
    • アジス・アベバのタクシー
      • 3時間チャーター 6,067ETB(=6,136JPY)
      • チップ 600ETB(=606JPY)
    • Uber
      • カイロ空港→エジプト考古学博物館 20USD(=3,192JPY)
      • エジプト考古学博物館→カイロタワー 59.95EGP(=204JPY)
        • チップ 9EGP(=30JPY)
      • ナイル河岸→Bashtil駅 79.951EGP(=273JPY)
        • チップ 12EGP(=41JPY)
      • カイロ空港→Seven Pyramids View Inn 439.93EGP(=1,499JPY)
        • チップ 66EGP(=224JPY)
      • 移動なし 99.37EGP(=338JPY)
      • キャンセル手数料 25EGP(=85JPY)
      • Mashaal→大エジプト博物館 89.98EGP(=306JPY)
        • チップ 200EGP(=671JPY)
      • 大エジプト博物館→カイロ空港 519.98EGP(=1,773JPY)
        • チップ 5USD(=798JPY)
    • ルクソールのナイル川の渡船
      • ルクソール神殿→対岸 2USD(=319JPY)
    • ルクソール西岸ツアー 3,600(=12,269JPY)
      • チップ 100EGP(=335JPY)
    • カルナック神殿ツアー(空港送迎つき) 3,200EGP(=10,905JPY)
      • チップ 100EGP(=335JPY)
  • 宿泊費
    • 4日目  2,900EGP(=9,883JPY)
    • 5日目  67.40USD(=11,080JPY)
      • New Year’s Eve Celebration 2,472EGP(=8,431JPY)
      • 荷物預かり 100EGP(=335JPY)
  • 食費
    • 3日目朝 325EGP(=1,109JPY)
    • 3日目昼 1,500EGP(=5,126JPY)
    • 3日目夜 30EGP(=100JPY)
    • 4日目夜 700EGP(=2,347JPY)
    • その他 237EGP(=801JPY)
    • その他 2USD(=325JPY)
    • その他 1,000KRW(=113JPY)
  • その他
    • 旅行保険 6,740JPY
    • 国立国際医療研究センター
      • 黄熱ワクチン 16,300JPY
      • DPTワクチン 5,000JPY
      • A型肝炎ワクチン 11,000JPY
      • 相談料 2,910JPY
    • Airalo
      • エチオピアSIM 3日1GB 1,950JPY
      • 割引 ▲195JPY
      • エチオピアSIM 3日1GB 1,950JPY
    • エチオピア国立博物館
      • 入場料 50ETB(=51JPY)
    • エジプトVOA 50USD(=3,975JPY)
    • エジプト考古学博物館
      • 外国人入場料 550EGP(=1,874JPY)
    • カイロタワー
      • 外国人入場料+展望カフェ利用券 600EGP(=2,050JPY)
    • Bashtil駅
      • トイレ 50EGP(=167JPY)
    • ルクソール神殿
      • 外国人入場料 500EGP(=1,705JPY)
      • トイレ 20EGP(=67JPY)
    • 王家の谷
      • 外国人入場料 750EGP(=2,556JPY)
      • バス 20EGP(=67JPY)
    • ハトシェプスト女王葬祭殿
      • 外国人入場料 440EGP(=1,500JPY)
      • バス 20EGP(=67JPY)
    • カルナック神殿
      • 外国人入場料 600EGP(=2,046JPY)
      • トイレ 20EGP(=67JPY)
    • ピラミッド
      • 外国人エリア券+クフ王 2,200EGP(=7,517JPY)
    • 大エジプト博物館
      • 在外外国人入場料 1,450EGP(=4,945JPY)
      • 誤購入分 730EGP(=2,494JPY)
      • 誤購入分 730EGP(=2,490JPY)
    • お土産 870EGP(=2,972JPY)
    • お土産 110EGP(=375JPY)
    • お土産 24USD(=3,904JPY)

計 431,614JPY

新たに追加された訪問国

  • エチオピア連邦民主共和国
  • エジプト・アラブ共和国
26か国目

さいごに

年末年始の大旅行として初のアフリカ大陸に行ってきました。昨年のニュージーランド旅行と打って変わって移動続きの旅程となりました。
エジプトは歴史が他と段違いなのにかかわらずその後の欧州の中世と比べると優れた技術と文化に制度があってこれが進化していったら今はもっと技術レベルが進歩していたんじゃないかと思えるほどでした。優れた技術もその価値がわからない非技術者にとっては無駄でしかないということでとても悲しい。日本人も多く訪問していて未訪問の人にはぜひ訪れてほしいものです。ただ、個人手配はとてもおすすめできない。今回本当に苦労しました。次に行くことがあってもツアー利用ですね。
中継はエチオピアでした。年末年始の利用でも20万円で発券できました。エチオピア航空自体は座席を頻繁に変えてきて油断できないという問題はありますが、無料のトランジットホテルの手配はとてもありがたかったです。ただ、エチオピア自体はちょっと観光に向いていない。支那人の一路一帯で国家財政を荒らされている上に支那人の頒布した武漢ウィルスと水ワクチンで政府信用もガタガタです。首都のアジス・アベバはまあなんとかという程度で他地域の安全性はもっと酷いようです。当分は乗り継ぎ以外は難しそう。
次の年末年始はカレンダーの関係から長期の休みにはならないのでのんびり自宅かな。

エジプト旅行 8日目

ET672便

ボレ国際空港A7番ゲート
ボーディング時間になったのでゲート前まで来ました。次のフライトで一気に東アジアまで戻ります。ゲート前は日本人が沢山でした。皆さんはツアーのようですね。

ET-ASI
22:43
ほぼ定刻通りにN11番スポットを離れてRWY07Rから離陸しました。機材はいつものB787-8ですね。仁川経由で成田まで帰ります。
実はこの旅で一番大変になる想定のフライトです。通路側座席を指定していたのにチェックイン時に中央席へと変更されていました。このあたりエチオピア航空の待遇はイマイチで有料で座席を指定しないとステータス持ちでも容赦なく座席を変更してきます。幸いにも隣は日本人だったので少し会話してコミュニケーションをとっておきます。ジンバブエからの乗り継ぎで乗り継ぎ時間が1時間しかなくて走って乗り継いだらしい。よく間に合ったなあ。

機内食
出発して1時間で機内食が提供されました。チキンの煮込みとご飯です。お米は中粒種かな。サラダ代わりのキヌアは往路と同じ対して美味しくないけど、メインはまあまあの味ですね。時間的には深夜なので赤ワインを頼んでさっさと寝ます。エジプトでは一切のお酒がなかったので久しぶりのお酒で変なふうに酔っ払ったみたいで意識が飛びました。

機内食
最初の機内食から7時間後に2回目の機内食が提供されました。メニュー的には朝ごはんみたいです。エチオピア時間だと7時だからかな。パンケーキにベリーソースという感じです。食べたときにエジプトからエチオピアの便で同じものを食べたことを思い出しました。エジプトからの便も機内食の積み込みはエチオピアだったのかな。

16:05
20分遅れで仁川空港のRWY16Rに着陸して21番スポットに到着しました。仁川空港が混雑していて空港手前で少し待機が発生したみたいです。

仁川空港
乗り継ぎは1時間なのに間に合うのかな。降機すると成田への乗り継ぎの人は新しい航空券を受け取ってくれということで列に並びます。航空券が机に並べられていて一人ずつ仁川までのチケットを確認しながらの交換です。とにかく時間がかかります。エジプトで発券されたチケットだと仁川では読み取れないらしい。チケット受け取って乗り継ぎの保安検査に進むもここも長蛇の列ができていました。仁川は成田でテロリストが闊歩している間に東アジアのハブ空港の座を掠め取った空港です。流石に乗り継ぎ客が多い。
保安検査を通過した段階で出発時間の8分前でした。絶対アウトな時間ですが、地上係員はまだ案内していて放送でもファイナルコール中です。職員に声をかけてゲートに急ぎます。なんとか無事に乗ることができました。

17:25
焦って乗り継ぎをしたのですが、エチオピア航空としても仁川に多数の乗客をおいて出発すると面倒だったのか35分遅延で出発しました。お隣はアジス・アベバに続いて仁川でも走ることになったと言ってました。お疲れ様です。
飛行機はRWY15Rから離陸して成田に向かいます。

機内食
離陸して1時間で機内食が提供されました。
メインはチキンの唐辛子炒めで主菜もご飯も量が微妙に少なくてスカスカです。野菜は辛いだけのキムチで他に辛いだけのキムチがつきます。仁川のケータリング会社の手抜きっぷりがすごい。まあ、朝鮮人だしなあ。

Havesha Cold Gold
何もかも辛い機内食なので飲み物はビールを頼みました。往路と違ってこれはエチオピア産のビールのようです。これだけはエチオピア航空らしくて良かったですね。

ただいま!
19:36
16分遅れて成田空港のRWY34Rに着陸して第1ターミナルの47番スポットに到着しました。RWY34Rへの着陸でも遅れが短縮されているのでこの区間のダイヤはそれなりに余裕を持っているのかな。
無事に成田に到着して帰国できました。8日間のアフリカへの旅も無事に終わりですね。

エジプト旅行 7日目

ET453便

カイロ空港G8番ゲート
ゲートオープンの案内を確認してラウンジからゲートまで移動しました。指定のゲートはラウンジからも近いG8番です。ゲート前で搭乗券を1枚回収されました。ここの搭乗券の確認のために2枚必要だったようです。チケットの確認はゴールドトラックがあるのですが、保安検査はゴールドトラックがなく、なかなか並んでいました。

ET-ATQ
2:48
30分近く遅れてG8番を離れます。機材の方はA350です。そしてRWY23Cから離陸しました。エジプトさようなら
なのですが、搭乗直後に力尽きてドアクローズも離陸も全く記憶にない。

機内食
離陸後1時間半で機内食が提供されました。飛行時間は3時間半程度なのでだいたい半分くらいです。深夜便なので睡眠妨害とも言えます。流石にエチオピア航空もそう思っているのか真っ暗の中で機内食を配るというなかなかの荒業を繰り出してきます。
そして、しっかり機内食を受け取って食べているのですが、受け取った記憶も食べた記憶も割と曖昧です。半分以上眠りながら食べていた模様です。ちなみにアジス・アベバから仁川までの便の2回目の機内食とメニューは同じだったみたいです。食べたときに思い出したので・・・

ボレ国際空港
7:17
ボレ国際空港のRWY07Rに着陸してN14スポットに到着しました。今回はボーディングブリッジですね。
2回目なのでさっくりイミグレーションにならぶと、トランジットは別カウンターだということで並び直す。順番が来てエチオピア航空から送られたトランジットホテルのPDFを見せると紙に印刷してこいと言われる。
搭乗直前にメールされるのに印刷ですと?それで成田空港ではわざわざ印刷物をチケットともにくれたのか、もどってエチオピア航空に地上スタッフに聞くとチケットカウンターで印刷してくれるらしい。そういえば、往路でカウンターに長蛇の列で並んでいた欧米人がいたけど、印刷のためだったのか。仕方ないので印刷列に並んで印刷してもらって再度イミグレーションに並び直す。空港を出る頃には到着して1時間半が経過してました。

Presidential Hotel

スタンダードルーム
トランジットホテルで指定されたのはPresidential Hotelです。往路のときのSkylight Hotelからは2km程度離れています。Skylightと異なり送迎はトヨタのハイエースでした。ちなみにSkylight以外はどこもトヨタ・ハイエースです。Skylight以外はエチオピア航空としてもかき集めたという感じですね。
ホテルにチェックインして部屋のキーを受け取ります。ちなみにこのホテルの評価はかなり低いです。4つ星とは思えないという評価なのですが、部屋はかなり広々としています。WiFiも完備されています。部屋の照明は確かに弱いですが、これは設備の古さから影響してそうです。残念なのはエアコンがない点ですね。夏だと高所といえどエアコンがないと暑くなりそうです。シーリングファンくらいはあっても良さそう。

バスルーム
バスルームは普通ですが、妙に砂埃が酷い。お湯はきっちり出るんですけど上水道自体に砂が混じってる感じです。そうなるとホテルのインフラというより街のインフラの問題かもしれない。Skylightは自前で浄水設備を持ってるのかも。ドライヤーがあったのですがなぜか温風は出ない。壊れているのか乾燥しているエチオピアに温風は不要ということかはちょっと謎です。

朝食
部屋に上がるときに食堂から朝食を食べていけというお誘いがあったので軽くいただきました。バイキング方式で野菜を中心にいただきました。サラダの感じなのかマリネ風なのか美味しいけどちょっと不思議な感じです。

昼食
シャワーを浴びてくつろいでいると内線電話があって昼食の準備ができたということでした。昼食はインジェラもあったのですが、もう食べたくないのでカレーにしました。じゃがいもでカロリーを水増ししているのはエジプトと同じ感じです。
疲れてもいるし外出するのも面倒なので午後もホテルの部屋でくつろぎます。エチオピアはキリスト教なのでお酒がOKなのでビールくらいホテルに頼めばよかったと後日思ったのですが、ずっとエジプトでその考えに至らなかった。

夕食
夕食も同じように内線電話で連絡が来ました。
夕食もバイキング形式でパスタを中心に肉じゃがを頂きました。

Cape Verde St
食後はすっかり日が落ちました。ホテル前の通りはかなり交通量が多くずっと交通量は多めでした。
空港までの道中で渋滞が発生しているようなので食後は速やかにチェックアウトして空港に送ってもらいます。Skylightと違ってトランジット利用客は多くないようでチェックアウト時に電話で送迎を依頼している感じでした。

ボレ国際空港

ボレ国際空港
ボレ国際空港から飛行機を利用するのも2度目なので往路と同じ動線でさっくり出国しました。
エチオピアはコーヒーの産地だということを思い出したのでお土産屋さんでコーヒーを購入しました。試飲もできてホテルで飲んだものと同じ味のものをお土産に選びました。一路一体政策で支那人が多いようでお店の人もはじめは中国語で話しかけてきました。ボレ国際空港も改修でかなり中華資本が入ってるようで工事箇所は中華政府企業の建設業者がやってました。エチオピアも支那人に支配されていくのか。

エチオピア航空ラウンジ
お土産購入後はエチオピア航空のラウンジで出発まで待機です。晩御飯はしっかり食べているのでここでは特に食事は貰わずにコーラだけ飲んで過ごしました。