目次
2025-08-12 盆まつり
2025-08-04 昔のプログラマ
2025-07-23 ここしばらくの出来事
2025-07-02 akamai の CDN
2025-06-29 uniqlo のシャツ
2025-06-24 wix velo
2025-06-18 続・町内会ホームページ
今月の日記
町内会の盆まつりが終わった。
いやー疲れた。町内会としては最大の行事。
僕は「当日の実働部隊」のうえ、力仕事ではなく放送とPCでの印刷担当。
(祭りは寄付金と模擬店の売り上げで行っており、寄付してくれた人の名前を張りだす「華掛け」が大切。その場で PC で名前を印刷して張りだすのだ)
事前準備もしてないし比較的楽な部類だと思うのだが、本当に皆様お疲れさまでした。
事前準備していないとは言いつつ、いくつか新しい試みをしたのでその準備はしている。
1. 盆踊り曲が増えた
以前はいろいろ音楽を流していたのだが、そもそも「盆踊り」を楽しんでいた世代が老人ホームに入ってしまっているのだ。踊れない。
コロナ禍のときに祭りを開催できずに数年のブランクが開き、久しぶりに開催したらそれまで踊りの中心になっていた人たちが皆いない、という…
その人たちは盆踊りの中心であり、女王のように君臨していた。
率先して踊ってくれ、周囲もそれに合わせることで楽しめていた、という良い面もあるが、その人たちの意見は絶対だったという悪い側面もあった。
その人たちがいなくなったのだ。翌年から大改革が始まった。
盆踊りなんて今の若い人にはわからん。子供向けのダンスを取り入れよう、というのでできたのが「キッズタイム」。
ある意味これは大成功だったのだが、キッズタイムに時間をとられ過ぎたために「盆踊りを楽しみたかった」という大人の意見も多くなった。
で、今年また大きく変えたのだ。踊る時間を3つに分ける。
1つはキッズタイム。子供向けの踊り中心だ。ただ、ここで「炭坑節」と「東京音頭」という2大盆踊りを教える時間も設ける。
もう1つは、定番盆踊りの時間。上に挙げた2曲に加え、「きよしのズンドコ節」を流す。ズンドコ節はちゃんと踊りもあるのだが、炭坑節の踊りであわせてもなんとなくいける。
そして、もう1つは「休憩時間」の BGM を全部盆踊り曲にした。去年は、子供に喜んでもらおうと子供に人気のある曲を流していたのだ。
「定番」でない盆踊り曲を踊りたい、という要求には、ここで答える。休憩時間でも踊りたい人は踊ればよい。
で、ここの「盆踊り曲」に、ダンシングヒーローとマツケンサンバIIを入れたのだ。
町内会長の発案によるが、「誰も踊れなくても構わないから、新定番を取り入れていこう」ということだった。
この二つ、全国的に最近の「新定番」。
ダンシングヒーローは 1985年の曲だし、名古屋ではその頃から踊られていたらしい。
でも、数年前にバブリーダンスと称して高校のダンス部がこの曲に合わせて踊ったものが大ヒット。
高校生向けのダンスコンテストでいくつも優勝した上に、テレビでも紹介されて大人気に。
で、「実は中京地区では盆踊りにされている」というのも一緒に有名になり、全国で踊られるようになったのだ。
マツケンサンバII は、普通に曲がヒットしたころから全国で踊られているらしい。
盆踊りの年齢層とマッチしたのだろうね。
どちらも、結局盆踊りというのは「誰かが踊りを作ればよい」だけなのだ。曲が何であれ、誰かが踊りを考案すれば盆踊りになる。
他の定番も含め、町内会の HP で踊り方ビデオをリンクして公開したのだが、なにぶん HP は今年4月に作り始めたばかりで、読んでいる人が少ない。
僕も踊るつもりでいたのだが、祭りの1週間前に腰を痛めてしまってね…。夏祭りまでには動けるようにはなったが、踊りの練習はできなかった。うろ覚えでもにぎやかしで踊ってみたのだが、途中でわからなくなり惨敗。
誰かひとりが踊れれば周囲はそれを見て踊れる。来年は覚えて踊れるようにしたい。
2. ラジオ放送を取り入れた
もう一つの新しい試みとして、ラジオ電波での放送を取り入れた。
FM波は、50m 離れたら聞こえないほど微弱な電波であれば、ある程度の決まりを守れば使用してかまわない。
(その地域で聞けるラジオ局の周波数の近くはダメだとか、緊急信号用の周波数の1/2 、1/3 周波数はダメだとか、いろいろ気を使う点はある)
そこで、機材を購入して、お祭りの際にスピーカーから流している音声を、ラジオでも放送するようにした。
というのも、町内会でもっているスピーカーの出力では、会場の端まで音が届かないのだ。
大体 5m くらいの範囲は聞こえる。人がいなければ 10m でもはっきり聞こえる。
でも、人がいて雑踏の喧噪になると、10mでは音が鳴っていることはわかるが、言葉などは聞き取れない。
そして、会場はお祭りの櫓を中心として、一番遠いところでは15m くらいあるのだ。
踊る人は櫓近くにいて、周辺は模擬店だ。でも、アナウンスなど模擬店を楽しんでいる最中でも聞こえないと困るものもある。
そこでラジオ放送だ。模擬店にラジオを置いてもらえば、スピーカー音声が聞こえないところでも、放送内容が聞こえるようになる。
ただ、この試みは半分成功、というところ。
ラジオが必要、と伝えたところ、町内会で手配すると言われていたのだが、当日受け取ったのは小さなポータブルラジオ3つだけだった。
ポータブルなのでスピーカーが小さく、音も出力が弱い。
雑踏の中ではラジオの前 1m 程度のところまでしか音が聞き取れない。
それでも、ラジオを置いたところの店にいるお客さんには聞こえていたようだけど。
櫓の上で太鼓をたたいている、囃子会の人は独自に「大音量が出るラジカセ」を準備してくれた。
毎年、櫓下にあるスピーカーからの音では、太鼓の音にかき消されて合わせずらかったのが解消したという。
このため、囃子会の人には今回の試み大好評。
(関係ないが、櫓と放送席の間にトランシーバーも導入した。毎年何か伝えることがあると「伝令」が走っていたのだが、すぐ話ができるというのも大好評だった)
僕の担当分野での「新しい試み」はこれくらいかな。
1日目は順調で大盛況。
大盛況すぎて、人が多いので事故が起きないか心配だった、というのは後から聞いた。
(放送席は会場脇の屋内にあり、全体がよく見えない)
子供は走り回ってるし、近所の老人ホームから車いすの老人も20人くらい来ていたのだ。
実際、子供用に用意していたお菓子があったのだが、十分用意したにも関わらず足りなかった。
(足りない分は2日目に用意していた分を出した)
2日目は朝から雨。結構激しく降っていた。
この雨は予想されていたので、昼ごろ方針を決めて連絡する、と聞いていた。
まぁ、この雨じゃ無理だろう…と思っていたら、昼頃に決行の連絡。
天気予報では徐々に弱まるとはなっていたが、「止む」とまではなっていない。夕方の開催時刻でもせいぜい「小雨」だ。
やると聞いたので会場に行ったが、関係者みんなが「本当にやるの?」 という感じだった。
これが、実際に開始時刻には雨が上がったのだ。そして、5分程度の小雨は2回降ったが、開催期間中はそれだけだった。
むしろ、前日の暑さが消え、踊りやすいくらい。
まぁ、運がよかっただけとも言える。
町内会長としては、多少雨でも楽しみにしていた子供は喜んで来るだろうし、前日のような大混雑にならないならその方が安全だろう、という読みだったらしい。だから、雨が降ったままでも構わなかったのだ。
さらに翌日の片づけは、雨の中での作業となり、作業していた人はずぶぬれだった。
僕は相変わらず PC や音響機器の片付けなど屋内作業中心で、その後もその流れのまま屋内でテントを拭いて畳む作業をしていた。
毎年のことだが、大きなイベントなのでうまく行かない点も多く、反省点も多い。
しかし去年の反省は確実に活かされているし、多くの人が喜んでくれたので成功だったと思う。
関係した皆様、準備した側だけでなく、遊びに来てくれた人々も含め、お疲れさまでした。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
かなりどうでもよい話です。
度々書いているが、町内会の仕事をやっている。
基本的には頼まれて仕方なく。
でも、任期を超えても積極的にやっているので、周囲から見れば「好きでやっている」部類だろう。
まぁ、それはいいんだ。
基本的には町内会の仕事は任期のある物で、頻繁に人が入れ替わる。
そして、今年一緒に仕事しているのは、80越えのおばあちゃんだ。
僕が「ご出生お祝い会」や「子育てサロン」の仕事をしているので、女性の方が適役だろう、という判断。
やっているのは福祉関連で、敬老の日にお祝いの品を配布するのも大切な仕事だ。
回覧板でアンケートを配布し、後期高齢者にあたる 75歳以上の人で申請があった場合はお祝の品を配布する。
この集計作業はほぼ僕が行っているのだが、人がやるのでミスもある。
ミスがあって配布漏れ、とかなるとお祝にケチが付くので、集計データをエクセルにいれたら、別の人の目も入れてダブルチェックを行う。
ここで、一緒に仕事をしている方に手伝ってもらった。
ここまでが前置き。
エクセルとか、最近のパソコンわからないわー、というおばあちゃん。
まぁ普通の反応なのだけど、「最近のパソコン」というのがミソ。
昔フォートランのプログラム作ってたらしいのだ。
キーパンチャーなどではなく、プログラマ。
以前パソコンでもプログラムしようと思って Visual Basic をやってみたのだけど、フォートランと違い過ぎて挫折したらしい。
エクセルはもっと簡単ですよー、なんて話をしながら、せっかくなので昔はなんのマシンを使っていたのか訊いてみた。
CDC 160A らしい。あまり知らない機械。
「もう、古い機械よ。最近は 6500 とか、そういうの使ってるんじゃないかしら」
と言われたのだが、6500 は 1960年代の中ごろに発売され、80年代までサポートされていた機械だ。
さすがにもう使われていないと思う。
6000シリーズなら、今年の春に調べていたので、少しわかる。
いや、話としてはこれだけで終わりです。
「自分の生まれる前の機械」として興味を持って資料を漁っていた 6500 を、その時代に実際使っていた人が身近に居た、というだけ。
(6500 を使ってたわけではないけど、160A はその頃の廉価機)
町内会のご老人方、話聞くと面白いんだよね。
国鉄時代に鉄道員やってて駅長まで務めた人とか、携帯電話黎明期にシステム設計して料金体系定めた人とかいる。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
ふと気づいたら、今月の日記 akamai の技術解説しか書いてないではないか。
これは僕の「日記」なのに、技術解説のみというのは良くない。
今月だってそれなりにいろいろあったのだ。
いろいろあったのだけど…ネタとしては弱くて、書くほどじゃないかな、って思って書かなかったのだ。
せっかくだから、まとめて書いておこう。
1つづつでは弱くても、まとめればそれなりの量になる。
6月末の話しから始まる。
長女の高校で文化祭があったので見に行った。
もう3年生だが、1・2年生の時はまだ「コロナ警戒」のため、家族から1名だけ、と指定されていたのだ。
それで妻が見に行っていた。僕は今年初めて。
「携帯電話、電波はいらないよ」と妻と長女から散々聞いていたが、校内本当に電波が入らない。笑いが出るレベル。
山の上にあって、「陸の孤島」みたいに言われてるんだよね…
この文化祭で、長女は部活卒業。演劇部だった。
しかし、この演劇部が困った人だらけで、振り回された3年間であった。
(我が強くて自分勝手な親子がいて、子供も親も他人の迷惑を顧みない行動をとり続けたのだ。
それを筆頭に困った人ばかりの部活で…嫌気がさして辞めた部員も多数。結果、困った人しか残ってなかったともいう。)
長女も出演した最後の公演、その困ったちゃんが何かに感化されたそうで、「自分がシナリオ書くからミュージカルをやる」と強行して、本人が音痴だという…
シナリオ書くのに難航して、曲を作る時間も十分になかったらしい。なので音が非常に薄く、スーパーの店内BGMのよう。
それでも、公演したものは「かなりマシになった」バージョンだそうで、文化祭のしばらく前に大会で出したものは本当にひどかったって。
(主演の「こまったちゃん」があまりに音痴なので、直前に他の部員が結託してクーデターを起こし、何曲か歌のシーンをカットさせたらしい。大会の際はそこどまりで、無理なカットが多いので話が繋がらなかった。
文化祭公演はカットした歌の代わりのシーンを作って、話がまともにつながるようにしたもの)
2週間後の7月頭、今度は次女の高校の文化祭があったので見に行った。
次女は写真部に入った。とはいえ、カメラ持ってない。
今年立ち上げたばかりの部活で、部長が「スマホのカメラでもいいよ」と言ってくれたので、スマホで写真撮ってる。
で、はじめての文化祭展示なのだが、今時なので現像するのではなく、プリントセンターで綺麗に印刷してもらったものを壁に並べてある。
スペースが狭いので、いろいろな写真をごちゃっと。なんとなく色別に分けてグラデーションを感じさせてあるのは悪くないアイディア。
でも、最初は印刷された紙をそのまま貼ろうとして、「そのまま壁に貼るのはなんか違う」と、段ボールに貼ってから壁につけたそうだ。
これが、段ボールの表面のうねりが出てしまい、なんとも貧相。段ボールの小口見えてるし。
時間がなかったので急ごしらえしてから、皆で反省して「来年はもう少し考える」らしい。
ところで、次女の高校は文化祭のしばらく前に「クラスTシャツ」を作ったのだが、こちらもひと悶着あった。
教員の指示が適切でないために、ありとあらゆる「違法案件」を踏み続けたのだ。
このページでも時々著作権がらみの話書いているのだけど、僕は「普通の人よりは」著作権に詳しいと自負している。
(弁護士ではないので、あくまでも普通の人よりは、どまりだ)
Tシャツデザイン案が上がってくるたびに、それは著作権違反だ、肖像権違反だ、商標法違反だ、と指摘していたのだが、そもそも教員に順法精神が欠如していた。全く根拠なく「大丈夫です」と言って、違法な道を突き進むのだ。
…結局、最初に依頼したTシャツ作成業者に「なぜか」そのデザインは受け付けられないと断られ、作ってくれるところを探して依頼したらしい。
断られた時点で、業者も法に違反している、と判断したのに、そこでデザインを変えるのではなく、請け負ってくれるところを探してでも作るという行動。
…で、クラスTシャツができてから、「クラスTシャツがらみのトラブルが続出している」と政府関連機関も注意喚起する事態になっていますね。
もう少し早く注意喚起してくれれば、学校での無駄なごたごたもなかっただろうに。
(いや、注意喚起が遅かったとかの問題ではなく、順法精神のない教員が問題なのだが)
ちなみに、次女の高校、昨年受験前に「視察で」文化祭に行った際、著作権違反が凄かった。
ポスターとか、有名キャラを真似て描いた絵だらけだったのだ。
ところが、今年の文化祭ではそうしたポスターはほぼ見られなかった。
どうも、クラスTシャツの件でいろいろ申し入れたので、教員側でも少し知財について学んだらしい。
Tシャツの時には間に合わなかったが、しばらく後の文化祭には活かされた、というわけ。
ちなみに、長女の学校は昔から知財に厳しい。
詳しい先生がいて、案の時点でその先生のチェックを通らないといけないのだそうだ。
さて、次女の文化祭の少し後の話。
2日ほど後に、僕が腹痛を起こした。気分が悪くなるほどの状態で、仕事を早退させてもらったほど。
でも、1日でだいたい治った。寝てるときに腹冷やしたかな…と思っていたら。
さらに2日後、長女も似た症状。その翌日には長男も。
あら、これ、そういうタイプの風邪だわ。
で、週末の土曜日に、夜になってから次女も同じ状態に。
…なのだが、8時過ぎに、すごい腹が痛いと苦しみ出した。涙が出るほど痛いらしい。
これはちょっと尋常ではないが、救急車を呼ぶほどの事かどうか…
でも、土曜日なので病院行くなら早くしないと、日曜日は休診の所が多い。
調べたら「救急車を呼ぶかどうか迷ったら電話」というサービスがあった。神奈川県のサービスだ。
そこに電話をかけて相談。症状を聞く限り、すぐ病院へ、と言われ、夜間診療している病院を紹介された。
その頃には本人が少し持ち直しており、自動車移動ならできるというので家の車で連れて行った。
病院に行ってから気分が悪くなり、戻してしまうこと2回。
血液検査や CT スキャンも行ったうえで、有意な異常は見られないので、家族もかかったということを考えて急性ウィルス性腸炎だろう、との診断。
この病気でそこまで腹痛になることはあまりないらしいが、全くないわけではないという。
1週間ほどたって、一昨日の話。
海の日の休日。
次女の高校では、1年の今のうちから志望大学決めとけ、と言われている。
少し前に次女もいろいろ調べて、自分の興味がある学問・偏差値レベルなどを勘案して1カ所志望校を決めていた。
で、それを決めたときに調べたら、海の日にオープンキャンパスをやるという。
その時点で「締め切りは昨日だった」のだが、確認したらキャンセルが出たようで申し込めた。
2名まで行けるそうなのだが、今年受験生の長女が、志望校ではないが見てみたいという。
娘二人で見に行った。
これは問題ないのだが、暑い日だった。
帰ってきてから、長女は「疲れた」と仮眠。
塾に行く時間になって起こしたのだが、様子がおかしい。目がうつろで受け答えが変。
熱中症だ、と判断して、氷嚢などで体を冷やす。経口補水液も作って飲ませる。
塾には休みの連絡を入れた。
しばらくして、顔には生気が戻ったが、高熱が出た。
本人寒いと言うが、毛布に入ってしまうと体の熱が逃げない。腹に薄いタオルケットをかけるくらいで、身体を冷やし続ける。
1時間くらいしたら、熱も引いてきた。とはいえ、37度を超えていたが。
熱中症は急に死ぬことがあるので、親の目の届くところで仮眠させて様子を見ていたが、夜中には大丈夫そうだと判断できる状態になった。
翌日(昨日)は学校の終業式で、休むとややこしいことになる状態だったが、熱も下がって問題なく行くことができた。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
先日、uniqlo のシャツの話題で「akamai」という企業を取り上げた。
話の腰が折れるので、この企業が提供しているサービスについては割愛した。
しかし、面白い技術なので知ってほしい、と思って説明しているページを探してみたものの、的確に書かれたものが見当たらない。
CDN という仕組みを提供している、ということと、その技術について非常に「ふわっと」書かれたページは多い。
ふわっと、というのは書いている人も理解していない、ということだ。
こんなに面白い技術、是非知ってほしいのだけど、書かれたページがないのか…
となれば、自分で書くしかあるまい。
最初に断っておくが、僕自身は akamai の中の人でも何でもないし、ページ提供者側として利用したこともない。
以前にどこかで聞いて技術概要は知っているが、細かな部分は間違っているかもしれない。
また、以前の Akamai は「CDNの企業」だったのだが、現在はセキュリティなども含めたサーバ運用全般を扱っているようだ。
それに伴い、CDN もどんどん新技術が導入されているようだが、僕はそうした細かなことは知らない。
これから書く話は「基本的な」ものに過ぎない。
現状を正しく表しているものではない、という反面、まだ単純だからわかりやすくもあると思う。
まず、CDN について。Content Delivery Network の略で、コンテンツを届けるネットワーク、という意味になる。
コンテンツという概念はまた微妙なものなのだが、この文脈の中では「WEB ページで提供されるデータ」だと思ってもらってよい。
通常は通信して取得するもので、わざわざ「届けて」もらう必要はないものだ。
ところで、インターネットは世界中と通信できる。
たとえば、海外旅行に行きたくてアフリカの観光サイトを見たとしよう。
もちろん通信できる。でも、ページが表示されるまでに時間がかかる。遅い。
理由は、遠いからだ。世界中と通信できると言っても、遠ければ時間はかかる。
通信は電気で行われていて、光の速さ…とよくいわれるが、途中で何度も中継が入る。
中継点ではコンピューターが処理していて、処理速度は光の速度よりずっと遅い。
距離に応じて中継点も増えるので、遠くへの通信は遅くなるのだ。
CDN は、こうした状況を改善する手段だ。
遠くへ通信するから遅いのだ。
ならば、世界中にサーバーを用意し、キャッシュ(データのコピー)を置いておけばよい。
アフリカのサイトを見ようと思った時に、実際にアフリカに接続するのではなく、日本国内から同じデータを取り寄せられる。
つまり、データが世界中にあらかじめ届けられているわけだ。これが CDN 。
…と、akamai や CDN で検索すると、ここまでの話を書いてあるだけのページが非常に多い。
ただ、そのアイディアが簡単に実現できるほど世の中は甘くない。
キャッシュを行おうとすれば、世界中にそのためのサーバが必要だ。誰がそのサーバの設置・維持料金を払うんだ?
すぐにページが取得できる、というのは、ネット利用者にとってはありがたいけど、それだけでは足りないのだ。
ここで、コンテンツ提供側の立場で考えてみよう。
コンテンツ提供者は、サーバを世界に向けて公開する。
公開する意図があってそうしているのだから、できるだけ多くの人に見てもらいたい。
しかし、ここにいくつかの問題がある。
まず、本当に世界中の人からアクセスが来ると、サーバの処理能力が問題となるのだ。
サーバを、強力な処理能力を持つものに交換しなくてはならない。
実際にはそんなに強力なサーバはないので、「負荷分散」という技術を使って、複数台のサーバで処理することになる。
通信速度の問題も付きまとう。
先にアフリカと通信する例を挙げたが、世界中に配信したとしても、遠くから見てもらうのは遅いのだ。
多くの人に見てもらいたいが、大抵の人はページを開いて、3秒待っても表示されなければ見るのを諦めてしまう。
サーバの処理能力をいくら上げたとしても、距離の問題はいかんともしがたい。
もう一つ、通信料金の問題がある。
個人でネットプロバイダと契約していると、定額制ということが多いのだが、インターネットというのは通信の量によってコストが決まるのだ。(従量制)
つまり、コンテンツ提供側には以下の問題がある
・サーバ増強コストの問題
・「距離」による通信速度の問題
・通信量に応じたコストの問題
このうち、特に距離の問題なんて解決するのが難しくて、世界中にホストを設置しなくてはならない。
これは同時に回線契約の数も増やさないといけないわけで、かかるコストは簡単には見通せない。青天井と言ってよいだろう。
CDN はこれを解決できる。
先に書いたが、世界の各所にキャッシュサーバを置いて、誰かがデータを必要とした際に、近いところからデータを得ようというものだからだ。
自分で設置しようと思えばコストは青天井でも、誰かの設置したものを借りるのであれば、現実的な金額に収まる。
つまり、少なくともコンテンツ提供側は、 akamai と契約してお金を払うだけの価値があるのだ。
ネットには、コンテンツ提供者がいて、それを見たい閲覧者がいる。
しかし、akamai を理解するには、もう一人の登場人物が必要だ。一番重要な役割を担っている。
それが、接続事業者、ネットプロバイダだ。
我々は、ネットに接続するときにネットプロバイダのサービスを使う。
勘違いされやすいのだけど、「回線業者」とは違う。回線業者は NTT など物理的な回線を提供する会社だ。
ネットプロバイダは、この回線を利用して、インターネットに接続するサービスを提供する。
ケーブルテレビのインターネットサービスなど、回線とプロバイダ事業を一体化して提供している場合もある。
携帯電話なども、docomo は回線業者であり、ネットプロバイダでもある。
でも、docomo 回線を借りてネットプロバイダ事業を行う、MVNO 業者のようなところもある。
ともかく、ネットプロバイダはインターネットへの接続サービスを行うのだが、ここで「ネットプロバイダ内」にもネットワークがある。
同じネットプロバイダを利用する顧客は、まずネットプロバイダの小さなネットワークに入り、そこからインターネットに接続しているのだ。
こうした、小さなネットワークが相互接続したもの、というのが「インターネット」のそもそもの語源だ。
さて、ネットプロバイダは通常月額料金を徴収して顧客にネット接続を提供している。
しかし、プロバイダのネットワークの外側にある「インターネット」への接続は、月額固定などではない。
データ通信量に応じて決まる、従量制だ。
つまり、ネットプロバイダにとっては、「社内の」ネットワークへのアクセスで完結してくれればありがたい。
インターネットへの接続コストが減るからだ。
でも、顧客はインターネットに接続したいからこそ、ネットプロバイダと契約している。
ここで akamai の登場だ。
akamai は、ネットプロバイダの「社内ネットワークに」キャッシュサーバを設置する。
すると、世界のどこかにあるはずのコンテンツが、社内にあることになるのだ。
外部へのアクセスが生じないので、ネットプロバイダのコストは減る。
これには副次的な効果もある。
ネットワークは、通信するデータ量が増えれば、より「太い」線が必要になる。
そして、太い線は月額の「基本料」が高い。先ほど従量課金と書いたが、基本料はそれとは別に必ず発生するものだ。
顧客が増え、通信量が増えれば、より太い線が必要になる。
しかし、キャッシュサーバの設置で外部への通信が行われないなら、太い線の契約をしないでも済む。
最初に、akamai のサーバの設置・維持費用は誰が出すのか? と問いかけた。
この答えがここにある。
ネットプロバイダは、社内にサーバを設置することに意味があるので、設置場所を提供し、お金を払ってでも設置を依頼する。
先に書いたように、お金はコンテンツ提供側からももらっているので、設置費用は「設置しない場合の回線利用コスト」よりも安い程度に設定できる。
利用者、コンテンツ提供者、ネットプロバイダ。
ここで、3者の思惑が一致し、キャッシュサーバーを設置すればだれもが幸せになれる状態が出来上がる。
しかし、まだ問題はあるのだ。これを「どうやって」技術的に実現するのだろう?
いちばん簡単な方法は、「すべての」 URL に対するアクセスを受け取るサーバーを作ることだ。
ネットプロバイダ内部からのアクセスを、すべて一旦キャッシュサーバーが受け取る。
キャッシュがあればそれを返し、なければ実際のコンテンツを取りに行く。取得した内容はキャッシュする。
じつは、これは「キャッシュプロクシ」と呼ばれる手法で、akamai 以前から実際に存在した。
そして、特定の目的では非常に有用だったが、一般的に使うには問題の多い方法でもあった。
まず、「プロクシ」について説明しよう。
キャッシュプロクシは、プロクシにキャッシュの機能を後付けしたものだからだ。
そもそもは proxy とは「代理人」の意味だ。
会社など、セキュリティを守る目的で外部のネットワークに直接接続したくない場合に、基本的には全員インターネットへのアクセスを禁止する。
そのうえで、「特定のサーバ」にだけアクセス可能な権限を与え、外部にアクセスしたい場合はそのサーバを経由するようにする。
つまり、外部へのアクセスは、すべて「代理人」に依頼するわけだ。
この特定サーバの事を、「プロクシサーバ」と呼ぶ。
これはもともとアクセスを制限するためのものだ。
全ての通信はプロクシを経由する。だから、ここにキャッシュを入れたり、様々な便利機能を入れることもできる。
その反面、プロクシを使用するといろいろと制限がある。
たとえば、動画を見ることはできないかもしれない。ネットゲームは遊べないかもしれない。
というより、もともとプロクシは前提として「ネット利用禁止」の時に使うのだ。それでも使いたい機能だけを提供する。
会社ならそうした制限はむしろ有用かもしれないが、ネットアクセスを提供することが仕事の「ネットプロバイダ」としては、この手段を使うわけには行かない。
ところで、ネットではプロクシの事を「串」という隠語で呼ぶことがある。
隠語を使う、というのは、悪いことに使う人も多いためだ。
プロクシは「代理人」なので、相手に自分の正体を明かさないでアクセスすることができる…場合がある。プロクシの設定にもよるけど。
何かの理由があって、存在を隠したい人にはとても良い仕組みだ。だから隠語になってしまうのだが。
そういう、何らかの事情がある人には、あえて制限は受け入れたうえで、メリットを得る必要があるのだ。
つまりはメリットとデメリットを秤にかけて、利用者が使うかどうかを選ばないといけない。
決して「自動で使われる」ものであってはならない。
一応、Windows の Chrome や Edge 等でもプロクシの利用は可能だ。
でも、いったいどれだけの人が設定方法を知っているだろう? 普通は使わないで良いものなのだ。
キャッシュサーバーを使うと便利だ、という環境を作りだせたとして、じゃぁ利用するのにはプロクシの設定をお願いね、というのではダメなのだ。
そんな状況では誰も利用しない。
そこで、akamai は巧妙な方法を編み出した。DNS を利用するのだ。
インターネット上のサーバには、IP アドレスが割り振られている。インターネット上の住所、と言われることが多い。
通信を行うときは、「必ず」相手の IP アドレスが必要となる。
でも、URL には IP アドレスは含まれていない。
どうなっているのかというと、「ドメイン名」を元に IP アドレスを調べる方法があるのだ。
その仕組みが DNS だ。
たとえば当ページは www.wizforest.com というドメイン名を使用している。
今ここをアクセスしている人は、DNS を使用してこのドメイン名を IP アドレスに変換し、アクセスしているのだ。
ところで、この DNS というデータベースが、データの登録方法に面白いやりかたを取っている。
話をするうえで必要なので、長くなるが説明しよう。
データベースというのは、普通はデータを1カ所に集約したものだ。
このページの例でいえば、www.wizforest.com 、というドメインに対しての IP アドレスを、どこかに登録しておけばよい。
そうすれば、すぐにドメインから IP アドレスを知ることができる。
実際、ドメインから IP アドレスへの変換は、初期のころは1つのデータベースで行われていたのだ。
たった1つのファイルにすべてのデータを入れ、ネットワークに接続するコンピューターは、そのファイルを取得して使用していた。
(この頃の話は過去に書いている)
しかし、ネット上のホストが増えるに従い、この方法は破綻した。
ホストが増えたり減ったりするたびにデータを変更しなくてはならないし、何よりも「世界中の」コンピューターに、最新情報を即座に届けないといけない。
それはもう無理だった。その状況を打開するために考えられたのが、DNS という「分散データベース」だ。
まず、データベースは組織ごとに準備する。
このページでいえば wizforest.com が「組織」であり、そこに www というコンピューターが公開されている、という形式になる。
他にも、メールサーバとか、DNS サーバとか、いろいろなコンピューターが組織内にある。
今、組織内のコンピューターとして「DNS サーバ」と書いた。
僕は自分の DNS サーバに、これら「組織内のサーバ」のデータを記入する。
そして、さらに上の組織… .com の DNS サーバに対して、wizfores.com の DNS サーバアドレスを通達しておく。
これで準備は完了。
誰かが www.wizforest.com にアクセスしたいと思ったら、まず、「その人の端末」に登録された DNS サーバに問い合わせを行う。
これは、その端末から一番近くにある DNS サーバのはずだ。
しかし、すぐ近くの DNS サーバが、世界中のコンピューター全てを知っていることなどまずないだろう。
でも、有名な .com の DNS サーバなら知っている。
そこに問い合わせると、www.wizforest.com は知らなくても、wizforest.com の DNS サーバなら知っている、と返答がある。
そして、wizforest.com の DNS サーバに問い合わせると、www.wizforest.com の IP アドレスが得られる。
DNS サーバはこうした分散管理により、非常に巨大なデータベースを作り上げている。
ところで、最初に問い合わせたサーバが「偶然知っている」こともあり得る。
僕のサイトなんかはともかく、google.com とか youtube.com の場合、問い合わせる人が非常に多い。
そうした問い合わせのたびにいちいち上のような長い手順は踏んでいられない。
DNS サーバは、一度問い合わせた内容はしばらく覚えておいて、次の問い合わせにはすぐ答えられる、という機能も持っている。
ところで、分散管理している、ということは、全体の整合性は誰も管理していない、ということでもある。
これは DNS の重大なセキュリティ―ホールだ。
上に、www.wizforest.com を問い合わせる際の、問い合わせのリレーを書いた。
最終的には、wizforest.com まで問い合わせが来て、正しい IP アドレスを得られる。
じゃぁ、最初に尋ねるネットプロバイダ内の DNS サーバが、聞かれたとたんに嘘の IP アドレスを教えたらどうなるだろう?
「問い合わせた内容は覚えておく」という機能があるので、すぐに IP アドレスを教えてもらえることはある。
だから、それが嘘かどうかなんて気にもせず、本当のアドレスだと信じてしまう。
これは「DNS ポイズニング」と呼ばれる、 DNS の仕組み自体が持つセキュリティホールだ。
(プログラムのバグなどによるセキュリティホールではなく、基本的な仕様自体に欠陥がある)
DNS サーバは「多数のサーバに問い合わせて」IP アドレスを調べるので、その経路のどこか1カ所でもハックされ、嘘を教えるようになっていたら、その問い合わせに関連したすべてのサーバは嘘を信じてしまうのだ。
誰かがどこかの DNS サーバをハッキングして、偽サイトにユーザーを誘導してクレジットカード番号を盗む…なんて犯罪が実際にある。
でも、この仕組みを使って、本物のサイトではなく「キャッシュサーバー」にアクセスさせてしまえば?
ここで、DNS ポイズニングのターゲットは、ネットプロバイダの利用者限定だ。
利用者が外部のサイトを見ようとしたときに、DNS がネットプロバイダ内に設置されたキャッシュサーバの IP アドレスを教える。
「偽のサイト」を教えているのだから DNS ポイズニングなのだが、そのサイトはキャッシュされたもので、寸分たがわず元のサイトと同じだ。
何の被害もないし、むしろメリットだらけなのだ。
セキュリティホールを使うのは褒められたことではないのだが、これは「良い使い方」だ。
akamai のシステム概要としては、以上のようなものだ。
まとめると、キャッシュにより、
・利用者は通信速度が上がる
・コンテンツ提供者は、サーバの負荷が下がる
・ネットプロバイダは回線利用料が下がる
特に、ネットプロバイダが回線利用料を下げるためには「自社にキャッシュサーバを置く」必要があるので、設置場所を提供してくれる。
また、この仕組みを維持するために、DNS という既存の仕組みを巧妙に利用している。
新しい技術ではないので、すぐに使い始めることができる。
誰もが得をする技術で、そのために誰もが喜んでお金を払う。
技術的にも経済的にもよくできている。
こんなシステムを設計したことが、すごいと思う。
おまけ
いい加減話が長いので終わりたいのだが、途中で DNS ポイズニングの話を書いたので、おまけ。
不安にさせたままじゃ申し訳ないからね。
フィッシング詐欺に注意、という呼びかけを見たことはあるだろうか?
メールなどのリンクで偽サイトに誘導されるので、そういうリンクを使わないことが対策とされる。
必要であれば、自分でサイトの URL をブックマークして置いたり、検索したりして入れば大丈夫、と…
でも、DNS ポイズニングは「正しい URL に対して」偽の IP アドレスを教える手法なので、上に書いた方法では対策できない。
DNS ポイズニングの対策はちゃんと用意されていて、誰でも簡単に利用できる。
DNS は普通自動設定されるが、手動で 8.8.8.8 と 8.8.4.4 という二つのアドレスを設定すると良い。
これは google が行っているサービスで、ややこしいので技術説明はしないが、DNS ポイズニングを防いでくれる。
google DNS が公開されて初期のころは、DNS ポイズニングを防いでしまうため、akamai の CDN が使えなくなる、という問題があった。
しかし、現在は akamai と google で協力しており、google DNS でも問題なく CDN が使用できるようになっている。
同じテーマの日記(最近の一覧)
関連ページ
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
家族の買い物に付き合って Uniqlo に行ったら、イカレたデザインのシャツを売っていたので買ってきた。
Peace for All というキャンペーンで、このテーマでいろいろな人・企業にデザインしてもらったシャツを売っているようだ。
僕が買ってきたのは、Akamai という会社のコラボシャツ。店内ポスターではあいうえお順にデザインが並んでいたので、「アカマイ」は先頭だった。こんなイカレたデザインが先頭に描かれているとは。
Uniqlo も良く Akamai にコラボ依頼したな…と思ったら、後で調べたところこれは第2弾だそうだ。
しかし、第1弾は自分としては惹かれるデザインではなかったようなので、こちらでよい。
さて、この Akamai という会社、多くの人は知らないだろう。
そして、僕のようにネット関連の技術者であれば、知らなくてはならない会社だ。
Akamai は、ネットを裏で支える技術企業だ。
消費者にネット接続を提供するプロバイダも、コンテンツを提供する企業側も、そしてコンテンツを閲覧する利用者側も、全員が儲かって幸せになる仕組みを作り上げている。そしてもちろん、そのシステムを提供する Akamai も大儲けしている大企業だ。
これを、25年前の時点で、誰もがすぐに利用できる既存の仕組みの巧妙な組み合わせで作り上げた、ということが素晴らしい。
この仕組みが非常に面白いのだが…巧妙なので、説明すると非常に長くなる。一度書いてみたのだが、話の腰が折れすぎるので、今回は割愛することにした。
(いい説明があればリンクを…と思ったが、これまた技術的で巧妙なので、ちゃんと説明しているページを見つけられなかった。この話、面白いから機会があれば説明したい。)
後日追記
書きました。
さて、そんな技術会社の作ったシャツは、技術オタクが泣いて喜ぶようなデザインになっている。
写真を拡大すればわかるが、暗号のような訳の分からない文字列だ。
すでに解読した blog 等もたくさんあるが、暗号部分の解読どまりで、全体の構造を解説しているページは見つけられなかった。
ちょっと解説しておこう。
書かれている内容は以下のようになる。
(改行位置などは T シャツデザインと違うが「正しい」位置にいれてある。そのため、このままコピペすれば実行可能ファイルになる)
#!/bin/bash
eval "$(base64 -d <<< 'IyEvYmluL2Jhc2gKCiMgQ29uZ3JhdHVsYXRpb25zISBZb3UgZm91bmQgdGhlIGVhc3RlciBlZ2chIOKdpO+4jwojIOOBiuOCgeOBp+OBqOOBhuOBlOOBluOBhOOBvuOBme+8gemaoOOBleOCjOOBn+OCteODl+ODqeOCpOOCuuOCkuimi+OBpOOBkeOBvuOBl+OBn++8geKdpO+4jwoKIyBEZWZpbmUgdGhlIHRleHQgdG8gYW5pbWF0ZQp0ZXh0PSLimaVQRUFDReKZpUZPUuKZpUFMTOKZpVBFQUNF4pmlRk9S4pmlQUxM4pmlUEVBQ0XimaVGT1LimaVBTEzimaVQRUFDReKZpUZPUuKZpUFMTOKZpVBFQUNF4pmlRk9S4pmlQUxM4pmlIgoKIyBHZXQgdGVybWluYWwgZGltZW5zaW9ucwpjb2xzPSQodHB1dCBjb2xzKQpsaW5lcz0kKHRwdXQgbGluZXMpCgojIENhbGN1bGF0ZSB0aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0CnRleHRfbGVuZ3RoPSR7I3RleHR9CgojIEhpZGUgdGhlIGN1cnNvcgp0cHV0IGNpdmlzCgojIFRyYXAgQ1RSTCtDIHRvIHNob3cgdGhlIGN1cnNvciBiZWZvcmUgZXhpdGluZwp0cmFwICJ0cHV0IGNub3JtOyBleGl0IiBTSUdJTlQKCiMgU2V0IGZyZXF1ZW5jeSBzY2FsaW5nIGZhY3RvcgpmcmVxPTAuMgoKIyBJbmZpbml0ZSBsb29wIGZvciBjb250aW51b3VzIGFuaW1hdGlvbgpmb3IgKCggdD0wOyA7IHQrPTEgKSk7IGRvCiAgICAjIEV4dHJhY3Qgb25lIGNoYXJhY3RlciBhdCBhIHRpbWUKICAgIGNoYXI9IiR7dGV4dDp0ICUgdGV4dF9sZW5ndGg6MX0iCiAgICAKICAgICMgQ2FsY3VsYXRlIHRoZSBhbmdsZSBpbiByYWRpYW5zCiAgICBhbmdsZT0kKGVjaG8gIigkdCkgKiAkZnJlcSIgfCBiYyAtbCkKCiAgICAjIENhbGN1bGF0ZSB0aGUgc2luZSBvZiB0aGUgYW5nbGUKICAgIHNpbmVfdmFsdWU9JChlY2hvICJzKCRhbmdsZSkiIHwgYmMgLWwpCgogICAgIyBDYWxjdWxhdGUgeCBwb3NpdGlvbiB1c2luZyB0aGUgc2luZSB2YWx1ZQogICAgeD0kKGVjaG8gIigkY29scyAvIDIpICsgKCRjb2xzIC8gNCkgKiAkc2luZV92YWx1ZSIgfCBiYyAtbCkKICAgIHg9JChwcmludGYgIiUuMGYiICIkeCIpCgogICAgIyBFbnN1cmUgeCBpcyB3aXRoaW4gdGVybWluYWwgYm91bmRzCiAgICBpZiAoKCB4IDwgMCApKTsgdGhlbiB4PTA7IGZpCiAgICBpZiAoKCB4ID49IGNvbHMgKSk7IHRoZW4geD0kKChjb2xzIC0gMSkpOyBmaQoKICAgICMgQ2FsY3VsYXRlIGNvbG9yIGdyYWRpZW50IGJldHdlZW4gMTIgKGN5YW4pIGFuZCAyMDggKG9yYW5nZSkKICAgIGNvbG9yX3N0YXJ0PTEyCiAgICBjb2xvcl9lbmQ9MjA4CiAgICBjb2xvcl9yYW5nZT0kKChjb2xvcl9lbmQgLSBjb2xvcl9zdGFydCkpCiAgICBjb2xvcj0kKChjb2xvcl9zdGFydCArIChjb2xvcl9yYW5nZSAqIHQgLyBsaW5lcykgJSBjb2xvcl9yYW5nZSkpCgogICAgIyBQcmludCB0aGUgY2hhcmFjdGVyIHdpdGggMjU2LWNvbG9yIHN1cHBvcnQKICAgIGVjaG8gLW5lICJcMDMzWzM4OzU7JHtjb2xvcn1tIiQodHB1dCBjdXAgJHQgJHgpIiRjaGFyXDAzM1swbSIKCiAgICAjIExpbmUgZmVlZCB0byBtb3ZlIGRvd253YXJkCiAgICBlY2hvICIiCgpkb25lCgo= ')"
PEACE FOR ALL
これは UNIX のシェルスクリプトだ。
ファイルに chmod +x で実行属性を与えれば実行できる。
先頭行は、bash を使用して実行できる、という、OS に対する指示だ。
2行目が長いのだが、eval している。これは、bash でその次の文字列を評価せよ、という命令だ。
eval の対象となる部分は、 " " で括っている。
さて、「その次」だが、謎の文字列に見える。でも、評価するのはこの文字列ではない。
$( で始まっているが、これは「外部コマンドを実行して、その結果を返せ」という指示だ。
(2行目の最後付近に、対応する閉じ括弧がある)
評価対象は、この外部コマンドが返した結果である。
そして、外部コマンドが base64 -d だ。これは、base64 形式でエンコードされた文字列を、デコードせよ、という指示。
謎の文字列は、base64 エンコードされたもので、後で詳細を書く。
3行目の PEACE FOR ALL は、命令ではない。キャンペーンに合わせて書かれているメッセージ。
しかし、ここに命令ではないものが入っていても大丈夫なようになっている。こちらも詳細は後で。
さて、base64 部分をデコードしたもの。
#!/bin/bash
# Congratulations! You found the easter egg! ❤️
# おめでとうございます!隠されたサプライズを見つけました!❤️
# Define the text to animate
text="♥PEACE♥FOR♥ALL♥PEACE♥FOR♥ALL♥PEACE♥FOR♥ALL♥PEACE♥FOR♥ALL♥PEACE♥FOR♥ALL♥"
# Get terminal dimensions
cols=$(tput cols)
lines=$(tput lines)
# Calculate the length of the text
text_length=${#text}
# Hide the cursor
tput civis
# Trap CTRL+C to show the cursor before exiting
trap "tput cnorm; exit" SIGINT
# Set frequency scaling factor
freq=0.2
# Infinite loop for continuous animation
for (( t=0; ; t+=1 )); do
# Extract one character at a time
char="${text:t % text_length:1}"
# Calculate the angle in radians
angle=$(echo "($t) * $freq" | bc -l)
# Calculate the sine of the angle
sine_value=$(echo "s($angle)" | bc -l)
# Calculate x position using the sine value
x=$(echo "($cols / 2) + ($cols / 4) * $sine_value" | bc -l)
x=$(printf "%.0f" "$x")
# Ensure x is within terminal bounds
if (( x < 0 )); then x=0; fi
if (( x >= cols )); then x=$((cols - 1)); fi
# Calculate color gradient between 12 (cyan) and 208 (orange)
color_start=12
color_end=208
color_range=$((color_end - color_start))
color=$((color_start + (color_range * t / lines) % color_range))
# Print the character with 256-color support
echo -ne "\033[38;5;${color}m"$(tput cup $t $x)"$char\033[0m"
# Line feed to move downward
echo ""
done
また bash のシェルスクリプトだ。
つまりは、シェルスクリプトを、そうと判らなように巧妙に base64 で隠しているだけで、シャツに書かれた元のシェルスクリプトは、上記のスクリプトを動かすためのランチャーに過ぎない。
で、ここまで解読できてしまえば…あとは実行して、としか言いようがない。
このプログラム自体は、それほど面白い動作をするわけではなく、ただカラフルで面白おかしい形に PEACE FOR ALL の文字を書き続けるだけだ。
2行目で起動する上のプログラムは、for 文で「終了条件のない」ループを行っている。
終了条件がないので、終わることはない。CTRL + C で停止するまで止まらない。
そして、CTRL + C した時には、元の(base64 が書かれた)プログラムも停止してしまう。
つまり、元のプログラムの最後の行(3行目)は絶対に実行されない。
元プログラムの3行目には PEACE FOR ALL と書いてあり、これは命令ではないと先に書いた。
しかし、この仕組みにより、命令でないものが書かれていても、特にエラーにはならない。
同じテーマの日記(最近の一覧)
関連ページ
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
先日来書いている町内会ホームページの話の続きだ。
wix.com というサービスで町内会のホームページを作っているのだが、これを選定したのは前任者。
この前任者も、隣の町内会が使っている、というお勧めで選んでいる。
隣の町内会の人も、会社で使っていたから選んだそうだ。
このサービス、基本的には「数ページの WEB サイトを、ワープロ感覚で作れる」といった感じのものだ。
PC とスマホを自動認識してコンテンツの出しわけもやってくれる。
コンテンツ内容は同じだが、2つのテンプレートを使い分けられる、という感じだな。
テンプレートも、PC 用を作ったらある程度自動変換してくれて、スマホ用に微調整すればよい。
あくまでも「テンプレート」が違うもので、CSS で見た目を変えるレスポンシブデザインではない。
ちょっと古いやり方なのだが、初心者にレスポンシブデザインの概念はわかりにくいので、これでよいのかもしれない。
前任者はここら辺まで作ってくれていたのだが、もともと「数ページのサイトを」作るようなもので、日々の更新がしにくい。
wix.com にはブログの作成機能があるので、僕がブログを追加した。
ブログ部分は、サイトデザインとは別の UI で文面だけを作ると、自動的にページが作られるような形だ。
つぎはぎしたような感じで少しわかりにくく、前任者はブログを使う発想にはなっていなかった。
しかし、記事の更新を考えるとブログ形式の方がやりやすい。
実は、町内会には非常に古いサイトがあり、ずっと昔の担当者が作ったものだった。
これが止まったままになっているのだが、perl CGI で作られた「会館予定予約表」の公開ページがあり、この機能が重要。
町内会長から、今のページに作れるかと聞かれていたのだが、wix.com では perl CGI は動かせない。
しかし、今の時代 Javascript がある。wix にも、ページ周囲に影響を与えないよう iFrame のサンドボックス内で Javascript を動かす機能があるので、これで何とか…と思っていた。
でも、wix には velo という仕組みがあり、もっと深い部分で Javascript を使えた…というのが前回まで書いた内容。
さて、velo を知ったのは、こちらのページで。
WixStudio となっているが、これはホームページデザイン会社がお客さんの為に使用する wix の亜種。
中核部分は変えず、デザインのための UI を「多少馴れが必要だが、効率の良い」別の形式に変えたもののようだ。
wix でも同様に velo を使える。
velo では、wix の中にある DB 等も使用して、プログラムでページを自動生成できる。
この場合、wix で生成したページはテンプレートとして使われることになる。
テンプレートに対して velo で DB 内のコンテンツ内を抽出して流し込む、という感じだ。
velo は全体の仕組みに対して作られた名前で、言語としては Javascript だ。
ライブラリが整えられていて、jQuery に類似した方法でテンプレート内の埋め込み位置を特定したりする。
先にあげたページは、blog で書かれているが何回にも分かれている連載形式。
ある程度読み進むと、「今日は何の日、を表示する」というような内容があった。
僕のやりたいことは、日付ごとに会館の予約状況を表示したい。結構違うが、類似性があると言えばある。
町内会には様々な行事予定もあるし、「今後の行事予定」を表示する機能を作って実験してみよう。
…と思ったあたりで前回の日記を書いた。
「今日は何の日」の改造として表示をするのは、比較的すぐできた。
そこから、関連するページにリンクを張れるようにしたり、詳細を表示できるようにしたり改造して、町内会ページの一番最初、目につきやすいところに「今後の行事」を表示できるようにした。
今後、と言っても全部は書かない。今後3回分の予定だけ。
そして、開始時刻や場所など簡単な概略も、あれば表示する。
さらに細かな情報が書かれたページがあれば、データとして URL を入れておくと、自動的にリンクする。
町内会の行事、回覧板で回しても、1か月以上先の予定だから忘れちゃう人多いんだよね。
(回覧板が回るのに1か月近くかかる組もあり、さらに回覧板を回せるタイミングが月に1回なので、「来月の行事」を回覧するのが通常)
それほど複雑ではないプログラムだったが、これは「Hello, world」みたいなものだ。
DB を扱う仕組み、画面表示を作る仕組みは十分理解できた。
velo で使用できる関数ライブラリ(API)は、こちらのページ でマニュアルが読める。英語だけど。
しかし、言語の入出力作法が理解できて、関数マニュアルがあれば、十分な情報だろう。
もう、何でも作れそうな気がする。(言い過ぎ)
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
以前町内会のホームページ作ってるという話を書いた。
ひとまずは、機能が揃っていないが公開していた。
だって、全部できてから、なんて言っていたらいつ公開できるかわからないもの。
ネットの世界はβ版で公開して、走りながら修正すればいいのだ。そういうものだ。
前回の記事の最後に書いたが、できていない機能というのは「町内会館の予約閲覧」だった。
いつの日に空きがあるか、月別のカレンダーで調べられる。
予約は電話してしないといけないのだけど、いつ空いているか調べられるだけでもありがたいのだ。
これ、以前のページでは CGI (サーバ側でプログラムを動かす仕組み)で動いていた。
でも、今時 CGI 設定できるサーバーなんて特殊だからね。特に、今回借りている wix.com は商用 CMS (コンテンツ・マネジメント・システム。HTML を知らないでも、ファイル単位で管理しなくても、 WEB ページが作れたりするプログラムの総称)だから、CGI なんて動かせない。
wix.com には、HTML 内に iFrame でサンドボックス化して Javascript コードを埋め込む機能がある。
これ使って同等機能をプログラムするしかないかな、と思っていた。
その場合、データを置く場所が問題になる。
Google spread sheetには、API でデータの読み書きをする機能があるので、それでデータ置き場の代用をするか…などと考えていた。
会長から「町内会館の予約閲覧は新ページに入れられないの?」と聞かれて、あれは機能的に無理なんですよ…と説明する。
そのまま持ってくることは無理だけど、何とかしたいとは思ってます。でも時間がかかります、と。
このやり取りをしてから、重い腰を上げて取り掛かろうとした。
この調査段階で、別の事に気づく。
wix.com に Javascript を仕込むのは、iFrame を使ったコード埋め込み以外に「velo」という別の仕組みがある、というのだ。
Javascript のプログラムを仕込む、なんていうのは、わからない人に見せれば混乱するだけ。
だから、この機能は丁重に隠されていた。知っている人しか使えない。
そして、この機能を使う場合には、wix.com 内で用意してある DB も使えるのだ。簡易的な機能に限定されるけど。
使ってみて分かった。
この仕組み、wix.com のベース部分の機能を、安全なようにオブラートに包んで公開したもののようだ。
理解するほど、wix.com 内の各種機能… blog やコメント機能、商品販売などが、じつは用意された DB と Javascript の組み合わせで作られているのだ、と分かる。
ざっくりと言えば、仕組みはこうだ。
DB は内部的に SQL DB を使用しているようだが、ユーザーにはそこまで見せない。文字列をプライマリーキーとして、key value store のように動作する。
ただし、特定カラムで検索することもできるし、ソートして出力もできる。ここら辺は key value store ではなく SQL 的。
そして、画面を書き換えるのは jQuery 的に行う。
jQuery がもう WEB ページ作成としては古臭いフレームワークだが、jQuery そのものではなく、wix で「類似品」を作ったもののようだ。
ともあれ、そうした環境は使える。これは、wix.com の通常機能で作成したページの中で、必要箇所にデータを埋め込んだりするのに使用するものだ。
DB 操作と HTML 操作には、用意された API を使用する。他にもいろいろな API があったが、詳細にあまり目を通していない。
あとは、普通の Javascript だ。
永続データの読み書きと、画面が自動で作成される CMS 内での、画面への割り込み方が示されたのだ。
あとは普通の Javascipt 、というのは、つまりは「なんでもできる」ということ。これほど心強いことがあるだろうか。
ひとまず、まだ練習がてらに「直近の町内イベント」を表示する機能を作ってみている。
これで、DB から絞り込んだデータを読み出して、画面に表示することはできるのだ。
これがうまく行けば、月ごとの利用予約表の読み書きだって、大して変わらない。
惜しむらくは、他に類似の悩みを持っている人がいても、プログラムをパッケージ化して渡せないことかな…
CMS が生成する画面に出力する手段として、CMS が定めた HTML エレメントの ID をプログラム内に使用する必要があるのだ。
画面構成が違う環境では、この ID も変わってしまう。プログラムだけ人に渡しても役立たない。
あとは… wix.com は、初心者向けによくできてはいるのだが、動作が遅いんだよね。
なんかもっさりしている。
あと、スマホか PC かを見極めて出力を変えているようだ。
同じ出力のまま、 CSS でレイアウトを調整するような、レスポンシブでない。
ここら辺が古臭い。
このやり方だと、キャッシュサーバー使えないんだよね。
古臭い、というのは「歴史がある」ことの裏返しでもあるのだけど、ひとまずはこの環境で続けることが大切なので、折り合い付けていきます。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |