「情報技術」カテゴリーアーカイブ

“2025年万博コーナー”用バス路線DBのテーブル構成

“2025年万博コーナー”(当時は”万博コーナー”)にて、2025年08月下旬から2025年10月中旬まで公開した”万博会場直通バス検索”について、そのDBのテーブル構成をここに記録します。このDBは、バス路線がどの県のどの場所から出発しているか、そしてそのバス路線がどの会社によって運行されているかを定義するものです。

ER図

stopテーブルが中間テーブルです。以降、ER図左のテーブルから順に各カラムを説明します。

prefテーブル

名前データ型制約備考
idint主キー
namevarchar(4)都道府県名

バス停が位置する都道府県を扱います。idの値は、JISの都道府県コードに準じたものを採用しました。(JISは01、02、03…と2桁文字列だが、ここでは1、2、3…のintとする)

areaテーブル

名前データ型制約備考
idvarchar(20)主キー
pref_idint外部キー(pref.id)
namevarchar(20)地域名

バスの発着地域で、ここではバス停を指します。例えば「’akihabara’, 13, ‘秋葉原駅’」という具合です。

stopテーブル

名前データ型制約備考
idint主キー
area_idvarchar(20)外部キー(area.id)
route_idchar(6)外部キー(route.id)

バスの発着地域とバス路線を紐づけ、「バス路線がどこから出発しているか」を定義します。

routeテーブル

名前データ型制約備考
id 主char(6)主キー
company_idchar(2)外部キー(company.id)
namevarchar(50)路線名または便名
urlvarchar(120)
運行会社の路線ページURL
is_nighttinyint(1)1=夜行
ope_daytinyint(1)1=平日、2=土休日を加算
started_ondate運行開始日
done_ondate最終運行日
updated_ondateレコードの更新日

バス路線そのものを扱います。idの値は「company_id + 路線名または便名を表す英字」を採用しました。

運行開始日・運行最終日は、「検索した日にバスが走るかどうか」を判別するためのものです。なお、どの日が土休日かはこのDBでは定義せず、利用側で指定することとしました。

companyテーブル

名前データ型制約備考
idchar(2)主キー
namevarchar(20)運行会社名
urlvarchar(50)運行会社のサイトURL

運行会社です。idの値は、運行会社名の英語表記から採用しました。

課題

このテーブル構成で生じた課題もまとめておきます。

日付が変わってから停車するバス停の扱い

始発地を出発した当日に目的地(=万博会場)に着くのであれば何の問題もありませんが、例えば始発地を23:30に発車したあと、0時を回ってからもバス停に停車する路線は少なくありません。今回の公開では運行日の基準を始発地としましたが、どの日を基準とするか・テーブルに追加情報をもたせるかは検討の余地がありそうです。

共同運行路線の扱い

特に高速バスにおいて、1つのバス路線を2つ以上の会社が共同で運行することがあります。今回の公開では、companyテーブルのnameに(共同で運行する)複数の運行会社を入れてしのいだものの、companyテーブルとrouteテーブルの間に中間テーブルを作るのが理想かもしれません。

“2025年万博コーナー”のバス検索数を集計しました

“2025年万博コーナー”(当時は”万博コーナー”)にて、2025年08月下旬から2025年10月中旬まで公開した”万博会場直通バス検索”の検索数を集計しました。なお、記念すべき第1回目の検索は、「操作日2025/08/23、出発日2025/08/23、出発地海浜幕張駅」でした。
(本記事では、”訪問者が検索ページで検索操作を行った日”を”操作日”と表記します)

この検索ページを使うにあたっては、”どんな感じで動くんだろう?”と確認するための”お試し利用”もあったと考えており、”バスで万博に行くか検討中の方”だけのデータではない点にご留意ください。

検索総数

検索総数は61件で、操作日の期間は2025/08/23~2025/09/24です。
検索ページは10月中旬まで公開していましたが、検索操作があったのは09月24日が最後でした。

出発地別検索数トップ3

順位出発地検索数
1新宿駅5
2仙台駅4
2東福山駅4
2広島駅4
3名古屋駅3
3海浜幕張駅3
3高松中央インター3

東京の新宿駅が検索数1位となりました。新宿からは夜行バスがいくつか設定されており、ほかのバスや新幹線と比較した方もいらっしゃったのではないかと思います。以降、万博会場に直通するバスの発着地で一番北に位置する仙台や、同じく西に位置する広島など、大阪から遠方の地域がランクインしています。

出発日別検索数トップ3

順位出発日出発日の曜日検索数
12025/09/1127
22025/09/0510
32025/09/198

2025/09/11を出発日とする操作が27件ありましたが、検索総数のおよそ半数を占めており、この検索ページの”お試し利用”も多く含まれているのではないかと推測されます。2位と3位はどちらも金曜日で、夜行バスであれば土曜日の朝に夢洲へ到着することから、1日を有効に活用するべくバスを検討した方もいらっしゃったと考えられます。

操作日別検索数トップ3

順位操作日操作日の曜日検索数
12025/08/2439
22025/09/0511
32025/08/235

この検索ページを公開した翌日、2025/08/24に実行された検索操作が検索総数の半分を超えています。閉幕まで残り2ヶ月を切るなか、週末の時間で万博へ行く予定を立てようと検索された方がいらっしゃったのかもしれません。

日別検索数

最後に、日別の検索数を示します。ご利用いただいた皆さま、ありがとうございました!

操作日操作日の曜日検索数
2025/08/235
2025/08/2439
2025/08/291
2025/09/021
2025/09/0511
2025/09/221
2025/09/243

【さくらサーバ】WordPressから送信されるメールに認証設定する

WordPressからたまに送信されてくる、”プラグイン自動更新したぞ”なメールが認証に失敗するので、これを解決します。(今までは迷惑メールフォルダを開くたびに受信箱へ戻していましたが、さすがに面倒になってきました()

前提条件

解決策

  • WordPressのプラグイン”WP Mail SMTP”を利用します。

手順

  1. WordPressの”プラグインを追加”から、”WP Mail SMTP”をインストールします。
  2. “有効化”を選択すると、セットアップウィザードが立ち上がります。
  3. SMTP メーラー
    “その他の SMTP”を選択
  1. メーラー設定の調整
SMTP ホスト
***.sakura.ne.jp (初期ドメインを入力)
暗号化
TLS (そのままでOK)
SMTP ポート
587 (そのままでOK)
認証
ON (認証を有効化)
SMTP ユーザー名
postmaster@***.sakura.ne.jpなど (登録済のメールアドレスを入力)
SMTP パスワード
(パスワードを入力)
送信者名
(任意の名前を入力)
送信元メールアドレス
(WordPressから送付するメールのFromを入力)

※”送信者名を強制使用”・”送信元メールアドレスを強制使用”は、必要に応じてON/OFFを切り替えてください

  1. 有効にするメール機能の選択
    メール機能の一覧から、必要なものを選択
  2. 改善の協力可否や、ライセンスキーを必要に応じて入力
  3. 設定が正しいかどうかのチェックが自動的に行われます。もしもエラーが発生した場合は、案内に従って修正してください。
  4. WordPressメニューの”ツール”にある”メールテスト”タブで、WordPressからメールが問題なく送信できるかを確認できます。
  1. 送信先に指定したメールアドレスで受信できていれば完了です。お疲れ様でした!

Groove ミュージックに表示されるmp3のアルバムアートを削除する

“Microsoft Groove ミュージック”はWindows 10で登場した音楽再生ソフトです。CDで音楽を取り込むと、初期設定ではジャケットの画像(アルバムアートと呼ぶらしい)やアルバム・アーティスト・楽曲それぞれの名前が自動でデータベース上から取得され、更新するようになっています。これが正しい情報であれば役に立ちますが、誤った情報を読み込んでしまうこともあります。今回はアルバムアートを削除するお話です。

間違ったアルバムアートが設定されたアルバム

画像のアルバムは”A列車で行こう The 21st Century”という鉄道シミュレーションゲームのCDから取り込んだものですが、”Take the ‘A’ Train”(ジャズ)のほうのジャケットが設定されています。”情報の編集”を押すとアルバムアートの変更は出来ますが、削除(何もない状態に戻す)のボタンがないため、どうにもなりません。ではどうすればいいか…?

Mp3tag – The universal tag editor.

https://www.mp3tag.de/en/index.html

このソフトを使います。サイトは英語かドイツ語だけですが、ソフトそのものは日本語に対応しており分かりやすいです。

“DOWNLOAD”ページからソフトをインストールして開いたら、”ファイル名”・”パス”…と書かれた白いエリアに書き換えたいmp3ファイルをドラッグ&ドロップします。(複数ファイル可)

Mp3tagでmp3ファイルを開いた状態

ファイルを1つ選ぶと、画面の左下にカバー画像(ジャケット=アルバムアート)が表示されます。画像上で右クリックし、”カバーを削除”を押して保存すれば完了です。

アルバムアートが初期化された

これで元に戻りました~!やったね!

Androidの画面下にある3つのボタンを表示させるには

スマホを買い換えて気付いたんですが、Androidの画面下にある”戻る”・”ホーム”・”アプリ切替”の3つのボタン(“◁ ◯ ▢”←こんな感じ)がなくなっていました。かなり多用していたので元に戻す(ボタンを表示させて使えるようにする)方法がないかと設定を探しまくったところ、見つけましたのでここに書いておきます。

  1. ホーム画面->”設定”(歯車のマーク)
  2. 下の方の”AQUOS便利機能”
  3. “便利な操作設定”
    AQUOS便利機能
  4. “ナビゲーションキー”の”システム ナビゲーション”
    便利な操作設定
  5. “3ボタン ナビゲーション”に切り替える
    システム ナビゲーション

これでボタンが使えるようになります!というかこのボタン、おでんみたいだな…?

“examination_v2.js”を公開しました

“examination.js”(初版)の改良版である”examination_v2.js”の公開を開始しました!
配布ファイル一覧“より”テストキットv2″を選択してください。

“テストキット2″から”テストキットv2″に変更します(2020/12/06)

このjsファイルはWordPress用ではありません。

“examination_v2.js”の特徴は以下の通りです。

  • 一問一答が可能に(従来の全問表示形式との切替可)
  • 一問一答ではリストマーカー(リスト文頭の記号)の変更、誤答終了(誤答した時点で不合格)も利用可
  • 解答欄○×表示(文頭)
  • 正答が解答欄とは別表示に
  • 採点結果がアラートから問題文の下に

ページ下にある見本を試していただくと分かるのですが、一問一答はただ小問を次々と送っていくだけではなく、大問の表示切替にも対応しています。今回のセールス?ポイントはそこにあると思っていて、実装に時間がかかったのもその部分でした。

このように機能が増えた一方、jsファイルを埋め込むhtmlファイルは処理の関係から”HTML5であること”が必須となりました(初版はHTML 4.01以降であれば動作します)。またそれに加えて以下の条件が追加されています。満たさない項目が1つでもあると動作しない可能性がありますのでご注意ください。(配布ファイル内の”カスタマイズの手引.txt”にも同じ内容を記載しています)

  • 1つの解答欄(テキストボックスまたはセレクトボックス)を子要素に持つli要素1つ(以下、”解答欄を持つli要素”)を1問とすること
  • 解答欄を持つli要素はform要素の孫要素(form > olまたはul > li)とすること
  • 解答欄を持つli要素と解答欄がないli要素(問題文として表示)は別のolまたはul要素とすること(1つの要素内に混在してはならない)
  • 変数dispIdと同じ値(初期値は”examination”)をid属性の値とした要素はform要素の最後の子要素とすること

なお、初版の配布ファイル内の”sample.html”はこれらの条件をすべて満たしているので、要素の子孫関係が変わらない限りはjsファイルを入れ替えるだけで使用可能です。

最後に、”テストキット2″に同梱の”sample.html”の内容を見本として掲載します。”採点”ボタンを押すと次の問題が表示され、最終問題を採点すると結果が出ます。

数字や英字、記号はすべて半角小文字で、それ以外は全角文字で記入してください。(1問10点、合格は100点満点中80点以上)

1 : 入力方式

次の問いに答えなさい。

  1. 1+1=
  2. (98+76)/(543-21)x0=
  3. この問題の点数は1問
  4. 円周率π=15926535…
  5. “日本”は英語(5文字)で

2 : 選択方式

次の問いをよく読み、選択肢の中から正しい答えを選びなさい。

  1. アルファベットの最初の文字はである。
  2. 1000グラムは1である。
  3. 光の速さは音の速さ
  4. CO2とはの化学式である。
  5. 地球は系にある惑星の1つである。

Publisherで年賀状を作ってコンビニで印刷する

年賀状のソフトが入ったPCがおかしくなり、初期状態へリセットしたため使えなくなってしまいました。「でも待てよ?別のPCには”Microsoft Office”のPublisherがあるじゃないか…!」と思い立ちどうにかなりそうだと安堵。しかしプリンターも壊れているため、ウェブの印刷サービスで注文しようかと考えていましたが、調べてみるとセブンイレブンのマルチコピー機ですぐに印刷できることが分かりこれに決定。どちらも初の試みなので記事にしました。

Publisherで裏面をデザインする

ちなみに表面は宛名を書くところです。私が出す年賀状はごく少ないので表面は手書きにしました。何百枚もあるのであればこちらもデザインして印刷することになりますが、1家族あたり1つのファイルとなるためその数は膨大となります。後で気づきましたが、自分の住所・名前も裏面に書いておけば表面で手書きする内容を減らせますね。

Publisherのページ設定画面

そもそもPublisherがPCに入っているところは少ないでしょうか。今使っている2013では”Personal” / “Home & Business” / “Professional”のうち”Professional”にしかPublisherは含まれていません。WordでもPDFの作成は可能ですが、Publisherは図形を扱いやすくなっており調整が楽なことと、JPEGやPNGなどの画像としても出力できるため便利です。

本題に戻ります。完成したファイルはセブンイレブンで印刷することになりますが、どうやらフチなし印刷は不可能で、四辺に5mmの余白が必ず生じるとの情報がありました。それを踏まえてページ設定では年賀状の”14.8×10.0cm”ではなく”13.8×9.0cm”と指定しておきます。これで縮小されずに印刷できる…はず

完成したPDF

デザインしたものがこちらになります。なかなか特殊なデザインですね?

セブンイレブンで印刷する

Adobeで開いているように、これはPDFのファイルです。セブンイレブンで利用可能なファイル形式はhttps://www.sej.co.jp/services/print.html#postcardをご覧ください。セブンイレブン以外のコンビニでもマルチコピー機はあるものの、はがき印刷ができないようです。SD / microSD / CDなどのメディアで読み込ませることになりますが、今回はUSBメモリーにこのPDFをコピーしてセブンイレブンへ持っていきました。スマホにアプリを入れれば、スマホに保存したデータを印刷することが可能となるようです。

ここで1つ注意です。それは

マルチコピー機でインクジェット用・写真用のはがきは印刷できない

という点です。もし使ってしまうと大変なことになるらしいので、誰が何と言おうと普通紙を使ってください。家からはがきを持っていくことも、コンビニで買ったはがきを使うこともできます。(私が行ったコンビニでは無地の年賀状はなく、別の店まで買いに行きましたが…)
なお、マルチコピー機には普通のはがきがセットされていますので、別のはがきを使うときははがきの移動(同じトレー内の横に置く)を自分で行うことになります。

印刷した年賀状の裏面

セブンイレブンでは手順どおりに印刷します。はがきの移動やセットも含めて分かりやすく案内してくれるので迷うことはないと思います。おつりだけは返却レバーを操作しないと出てきませんでしたが…

余談ですが、このデザインではモリサワという会社が製作した”新ゴ”というフォントを使っています。(3ウェイト選べるセットでAmazonでは4万円以上の買い物でした)
見えている文字はすべて新ゴですが、注意書きとして

マルチコピー機が対応していないフォントを使用している場合は、レイアウトが変わることや、プリントできないことがあります。

https://www.fujixerox.co.jp/solution/multicopy/print/hagaki.html

と書かれておりちょっとした懸案事項でしたが、印刷してみると何の問題もなくホッとしました。少なくとも新ゴには対応しているようです。

年賀状は現在、1枚62円で売っています2019/10/01から1枚63円です(2020/01/14)。近所のローソンでは1枚単位で売ってくれ、セブンイレブンでの印刷はカラーで1枚60円(白黒は1枚20円)だったので1枚当たり122円123円。年賀状をそんなに多く出さないのであれば、手段の1つとするのも悪くないと思います。

WordPressで、カスタムフィールドのみを使って記事を投稿する(おまけ)

シリーズのおまけです。本編から3年くらい経ってますが…

実は、カスタムフィールドのみを使って記事を投稿することによって、利用できなくなる機能があります。それは、検索機能です。

search_keyword

上の画像はブログ”第一駅撮区”の検索結果を撮ったものですが、WordPressに標準で付属する検索機能はカスタムフィールドを対象としないため、カスタムフィールドのみを使用して記事を投稿した場合は、検索しても何もヒットせず使い物になりません。今回はこれを改善しようというものです。

何か良い策はないものかと調べてみると、

カスタムフィールドを検索対象に含める | WordPressカスタマイズ事典

に2つの方法が記載されていました。1つ目はfunctions.phpを書き換える方法、2つ目はプラグインを利用する方法です。今回は1つ目の方法でプログラムをそのまま書き換えてみました。そして、もう一度同じ文字列で検索してみると…

search_keyword2

おおお、ヒットしています。これはありがたい!

が、カスタムフィールドのすべてを検索対象としたときに、例えば”2015年の抱負”というページのカスタムフィールドの内容に、たまたま”20189.jpeg”というファイル名が入っていた場合、2018年に投稿した記事を探そうとした人が”2018″と検索すると、”2015年の抱負”が結果に表示されてしまいます。
写真などのファイル名で訪問者が検索を行うというのは考えにくいので、ファイル名を内容とするカスタムフィールドは、検索対象から除外したほうが良さそうです。私は検索文字列に関係のない投稿が結果に表示されて”ん?なぜだ??”となったまま悩み続けてしまいました…

それにしても検索できるって素晴らしい!

エラーコード13431が出てメールが送れなくなった話

ある日、自分が持っているAndroidのメールアドレスを変更したので、BCCを使って変更の旨を一斉送信しようとしていました。

文面と宛先を何度も確認し、送信!
…あれ?

送信に失敗しています。おかしいなあ?と思いつつも、宛先に全角文字や空白が混じっていないか電話帳を確認。結局変な文字は見当たらず、メールアドレスに問題はなさそうだと判断。”宛先が電話番号の場合は~”とも書かれていますが、指定した宛先に電話番号はなく関係なし。せめてどの宛先がだめなのか示してくれれば良いのですが、そこまでの親切さはないようで…

もし存在しないメールアドレスに送信すると、メールの送信後にエラーメッセージが返ってくるはずなので、1回もメールが送れないのは本体のシステムが悪いのか?ということでシステムを更新。
しかし、再送信するもメールは送れず。

使っているAndroidの設定を見ていると、”セルフチェック”という機能を発見。これを使うしかない!ということでセーフモードにして診断を実行。すると”モバイルネットワーク設定が正しくない可能性があります”という画面が。

“パケット通信”をタップするといくつか対処法が表示されますが、どうも改善しなさそうなものばかりだったので何もせず終了。

これ以上はどうしようもないので、とりあえず原点に戻り、宛先を減らして送信を試みることにしました。すると、何のこともなく送信できてしまいました。
これで原因が判明。減らした宛先の中に使えないメールアドレスがあったのです。そのメールアドレスの持ち主に聞いてみると、”もう使っていない”とのことでした。

“存在しないメールアドレスに送信すると、メールの送信後にエラーメッセージが返ってくる”というのは、幻想に過ぎなかったのかもしれません。

“Social IMEと通信ができませんでした”を表示させないようにする方法

Androidで文字を打った後に変換する際、思い通りの表記が出ないことがしばしばあります。そんなときは、ページの一番下にある”外部変換”をタップすると、欲しい結果が出たり出なかったりします。大概出るんですけどね。

ところが、いつも通り”外部変換”を利用したとき、このような表示が出ました。

“Social IMEと通信ができませんでした”と書いてあります。検索してみると、”Social IME”のサービスは2016/09/01に終了し、利用できなくなっています。道理で通信が出来ないわけです。

このまま外部変換を使っても通信が出来ないだけで問題はありませんが、絶対に使えないものを残していても無駄なので、どうにかして”Social IME”を利用しないようにする方法はないか調べました。すると、以下の方法で利用を停止できることが分かりました。

手順

  1. まず”メモ帳”を開き、”新規作成”などで文字を入力できる状態にします。
  2. 画面右側にあるスパナマーク(改行と右矢印の間にあります)をタップ!
  3. “各種設定”
  4. “外部変換エンジン”
  5. “Social IME”のチェックを外す

これで、外部変換を使っても”Social IMEと通信ができませんでした”とは出なくなります。めでたしめでたし。