気付かないと著しく業務を滞らせる 特殊なメディアファイル形式たち
普通のWindows環境などで扱うと予期せぬ動作を引き起こすが、原因に気付きにくいメディアファイルの形式について列挙する。
闇すぎて深堀りが難しいもの、普通のもの、マイナー形式罠と色分けしてまとめる。
画像
通常&ウェブ上で扱うのはRGBで色を表現するが、CMYK(印刷用)でも出力することができる。
運用上、画像ビューアで開くと正しい色味で表示されるが、Webブラウザで開くなどアプリケーションによっては色の解釈に失敗し色味が変わってしまう。印刷用には適切なので世の中から排除はできないが、当然見た目では区別できない。
- インタレースのままの画像
インタレース動画を愚直にスクリーンショットで画像化することにより生成され、動きが激しい部分で捜査線(縦方向に1ピクセル)ずつズレた画像であり、表示するサイズによって様々なモアレが起きる。逆に起きない場合があるので気付かない場合もある。Photoshopなどでインタレース解除が必要。
※一般的にインタレース画像というと、捜査線を飛ばしつつ読み込みウェブサイトなどでの読み込みを高速化するための形式で、有用なもの。 - HEIF(.HEICファイル)
iPhoneなどで内部的に存在するが、画像の取り出し方を間違えたりするとPCでも扱う必要が出てくるが、多くのWebサービスなどでは対応が難しいので手元で都度変換してから扱う必要がある - WebP
同じく、Googleのアプリを経由して取得したファイルなどでWebP形式として取り込んでしまう場合がある。ただしWebPは一般的に使える画像形式になってきている。 - 拡張子が.jpgなのに中身はWebP などの拡張子が相違しているが、アプリケーション側のフォローでそのまま使えてしまう状態
システム上の処理などがバグるが、気付きにくい - 透過PNGの種類(ストレートアルファキーか、プリマルチプライキーか)
組み込み機材などでは特定の形式でないと対応できない - 環境によって解釈の違うSVG画像
動画
-
インターレースのMP4(H.264/AVC)
本来存在しないはずの形式であるが生成できてしまうし、対応して再生できる場合が多い。たとえばYouTubeにアップすると勝手にサーバー側でプログレッシブに変換してくれる。一方でHTML5のVideoタグなどで再生しようとするとiOSで再生できなかったりとか稀にバグを引き起こす。 - インタレース解除に失敗して画質が低下した動画
- H.265/HEVC 普通のWindows端末ではライセンス・コーデックがないと再生できない。拡張子(mp4やmov)では判断が付かないのが厄介である。"MOVファイルは再生できない"とか”mp4なのに再生できない"とかいう誤った認識に陥る
- HDR・カラースペースがズレている形式
- 片方しか音声が入っていない(ミス)
スピーカーで聴いているため気付かないが、YouTubeなどに掲載したときに死ぬほどダサい - 5.1chなどの通常ではない音声マッピング
様々な問題が起きるが、YouTubeなどの動画プラットフォームなどにアップすると、左成分右成分がそれぞれ加算されてしまうため、左右バランスが崩れる
5.1ch音声の場合、L R C LFE Ls Rsとなっており、センターの音声が3chなので、L(左)の音が大きくなる。(一般的に複数chの音声を持つものを2chのステレオに落とし込むならば奇数が左、偶数chが右の音の扱いになる)
テキストファイル
- 目的に対してエンコードは合っているが改行コードがおかしい場合
PSD・AI
- リンクファイルがない
リンク画像を埋め込んだPDFにするか、Zip化して丸ごと渡すか、などの配慮が必要だが、大人になっても忘れてしまう - テキストをアウトライン化していない
そのまま他人に渡しても同じフォントがない限り使い物にならないので再送信になる。これも大人になっても忘れる - アートボードの横幅縦幅が小数点の座標になっているため、画像書き出しすると1ピクセルずれる
他多数
素人
- ZipファイルをWindows Explorerの機能で展開せずに閲覧している状態
そのままウェブフォームなどにアップロードすると0byteのファイル扱いになる。 - CD・DVDに書き込みする際の書き込み準備ファイル
配置して焼き込んだと勘違い
以上
MS Excelの驚異の仕様 〜 本当の隠しセル 〜
みんな大好きセルの結合
MicrosoftのExcelでセルを整えるためなどに使われる「セルの結合」機能は、複数のセルを結合し水平方向に中央揃えされ、その際被結合セルに記述されている内容は、一番左上にあるセルの内容だけを維持してそれ以外は削除される(空セルになる)。
当然だが、結合済みのセル群のうち一番左上(下画像内のC3)の部分だけに値が入っており、それ以外のセルは空白セル(=ISBLANK()がTRUE)となり、存在しないはずのセルを参照して計算すると、普通に空白セルを参照した時と同じような結果になる。
昨今、セルの結合アンチの人が増えてきたが、エクセルは書式を美しく整えるためだと考えている人も多いとおもうので、セルの結合という文化は無くならないと考えている。
隠しセルが存在する状態
ここで今回発見したこととして、実はこのルールが通用しない場合がある。
自動生成されたExcelファイルなどで散見され、下画像のようにセルの結合がされた状態なのに、被結合セルの内容が残っている状態がありうる。この”見かけ上存在しないが内容のあるセル”をここでは隠しセルと呼ぶ。普通に起きることはほとんどないが、驚異の現象である。
この隠しセルはご覧の通り正しく番地を手入力で参照すれば中身が参照できるため、存在しない前提で関数を組んでいると想定外の挙動を引き起こす。(実際業務で出会って困った)
どのようにして隠しセルが生まれるのか
下記のブログくらいしか情報がなかったが、
【Excel】結合対象のセルの値を保持する方法 - 株式会社ティーディエス
当該セル群を直接「セルの結合」するのではなく、すでに結合済みのセルから”書式のコピー/貼り付け”をすることで実現できる。
確かにエクセルの書式のコピー/貼り付け 機能は複数のセルの書式をまとめて貼り付けることができるので、セルの結合をコピペすることはあるかもしれないが、ここで消えた(と思っている)セル C5:C8 のデータの存在を忘れたまま、大事なエクセルファイルに謎のデータを放置してしまうおそれがあると考えると、どこかで踏みそうなバグ(仕様)であり、知識として非常に重要なものである。
こんなエクセルファイルがあっても
実は次のようなデータが隠れているかもしれない
自分が遭遇した隠しセルまみれのエクセルファイルは、推測するに、セルの結合を自動ツールなどで実現する際に内部的には書式のコピーで実現しているのだろう。(スポーツ結果の入力ツールなど)
多くの人類が使用するMS Officeソフトの謎仕様を解明できるのは非常に興奮する。セルの結合周りは他にも色々研究の余地がありそう。夏休みの宿題などによさそう。
なお、今回の事象はGoogleスプレッドシートでは起きない(同じ方法を試しても空のセルになる)。
Googleのタイムラインが改悪されたので自分用ライフログ収集システム作った(iPhone ショートカット)
iPhoneのショートカット機能・オートメーション機能を使うことで、Googleマップタイムライン機能相当のライフログ機能+α を実現できることがわかったのでその方法についての記録をする。
- Googleにまた裏切られた
- iPhoneのショートカット機能でできること
- サーバーに情報を送ってみる
- 位置情報警告との戦い
- 常に実行できるのか?
- ライフログとってみた結果
- 位置情報以外に取得してみたもの
- レシピ全体(6/13現在)
- ショートカット作成上のバグなど
Googleにまた裏切られた
ご存知の通りGoogleマップのタイムライン(移動・滞在履歴記録の閲覧機能)が改悪されて、原則PCでは閲覧できなくなった。モバイル端末のアプリ内で保存・閲覧し、バックアップは一応クラウドにできる。
生きた証として・記憶の補助として、XのポストとGoogleに捧げた位置情報(その代償として賜るタイムライン機能)は将来的に残り続けてほしいものと考えているが、このように今後も改悪の可能性があるということで、非常に残念なことだが対応が必要である。
iPhoneのショートカット機能でできること
Apple公式で提供されているAPIを組み合わせてノーコードプログラミングができるというもので、普段から次のような”レシピ”を作って活用している。
「QRコードの内容を読み取って表示」「クリップボードの履歴を保存・読み出し」「テザリング電波発砲」「デュアルSIMの切り替え」「画像の縮小」など
連携可能なサードパーティアプリがあればさらに追加機能を組み合わせることができる。
サーバーに情報を送ってみる
「現在地を取得」で端末の位置情報を取得する。”位置情報型変数”という形式で取得できる。結構扱いづらい。「テキストを取得」というアクションでその住所を文字列化して扱ったり、「緯度」「経度」をそれぞれ文字列として抽出して利用する。
他の情報も含めて、変数に格納していく。
「URLの内容を取得」によって、サーバURLへのGETアクションを実行する。送りたい情報は簡易的にURLパラメタとして付与して送信する。URLベースを用意しておき置換する。
より正しい方法は、「SSH経由でスクリプトを実行」という機能を使うことかもしれない。
位置情報警告との戦い
位置情報を外部送信するショートカットを実行してみると、アプリとしての位置情報利用権限とは別にOSが位置情報利用に関する警告をしつこくしてくる。ショートカットを更新するたびに「常に許可」を何度か押下する必要がある。iOSのセキュリティが強すぎると情報送信ができなくなるし、その仕様はブラックボックスなので不安になる。この警告が起動していないタイミングに出てしまうとショートカットの実行が中止されてしまう。
何度も許可を繰り返していると静かになり、バックグラウンドでの実行も可能になっていく。
常に実行できるのか?
1分単位で実行してログをとることとした。具体的には毎正時にこのショートカットを実行し、実行後に1分待機+60回ループを行うことで、ほぼ毎分実行できることとしている。
はたしていつまでもバックグラウンドでこれを実行できるのか?最長実行時間の制限があるのでは?などの不安があった。
結論をいうと、「スリープしている時にはショートカットの実行が止まる」が、
音楽を再生していたり癖で電源ボタンを押したりしていると起動している扱いになるので、スマホを持って移動していたりする時間は問題なく動作するから、概ねライフログの機能は果たしてくれる。
ライフログとってみた結果
1分おきで概ね経路が把握できる、Googleより高精度のログを取得することができた。すばらしい!!!!!
サーバー側の機能
送信さえできていればあとはサーバー側の実装はなんとでもなる。今はとりあえず受信したものを適当にテキストファイルに保存しているが、溜まってしまうので別の形式にしたい。
とりいそぎPHPで表示サイトを作成、Leafletで地図化&テーブルで表示、どの日時範囲を表示するかのコントロールを設置した。
位置情報以外に取得してみたもの
技術的な興味を中心に、可能な限り端末からの情報を収集していく。
現在取得している情報
- 位置情報(緯度・経度・住所)
位置情報は設定時に精度を決めることができるが、最も正確なものにしてもセキュリティ的に変わらなかったのでそうしている。ただし実行時間が10秒程度かかるので、スピードを求める場合は精度を下げると良い。
グローバルIPアドレスの収集が趣味なので、これで収集活動を自動化したい。
- 接続中のネットワーク(Wi-Fiかモバイルのどれか)
モバイルはデュアルSIMなので2つ無理やり送信している。ここには表示していないが”今どちらのSIMがアクティブなのか”も取得できる。
- モバイルネットワークの詳細(キャリア名、電波何本か、無線技術(LTEか5Gか等))
どこが電波弱いか?とかもわかってくるのでとても良い。
上の画像のように、コンビニを通過したときに0001docomoをつかまされていることがわかる。
- 現在の端末側日時(秒まで)
検討中
- ミリ秒 取得できるならば
もしできれば”通信状況の安定性”も計測できると考えている。ちなみにショートカット実行時に通信が疎通しなかった場合はエラーが出るがループは継続する。
- より詳細な通信状況
iPhoneでいうと「フィールドテストモード」で取得できるような詳細な情報(CAの構成など)くらいまでは収集してみたいが、今の所方法がわからない。
- 端末の向き・ジャイロ(活用できそうならば)
活用できる気がしない
- 標高・気圧(活用できそうならば)
これも活用できる気がしない。気圧って各端末で測る必要あるのか
- 歩数(ヘルスケアアプリ周り)
歩数の履歴が一応あった方が良さそう。1日の合計にしか興味ないか?
- スクリーン輝度
もし取得できるなら、スマホの使い方が理解できそう?
よりGoogleのサービスを模倣するならば
- その時撮影した写真を位置情報と紐づけてクラウドサーバーにバックアップする
タイムライン機能に並ぶ便利サービスとして、故「Google フォト」がある。これはスマートフォン端末で撮影した写真を日時だけでなく位置情報に紐づけて蓄積して後から閲覧できるものだが、少し前に容量無制限の仕組みがなくなって使わなくなった。
実現の難しさもあるかもしれないが、基本的にサーバーのストレージの問題があるので、もしAmazon Photosが無制限サービスを辞めた時にはやるべきかもしれない
- その時の状況メモ(テキスト)を記録・バックアップする
LINEメッセージやGmailの送受信ログが取れると尚良い?
レシピ全体(6/13現在)
この画像だけでは再現できない(複数の変数が同じ名前だったりする)
ショートカット作成上のバグなど
この規模のショートカットを編集していると、非常に不安定になる。無理せずにどんどん拡大していくと、なんとか動くものが出来上がり、結構ちゃんと動く。
繰り返し回数を増やしたり、繰り返しの範囲を大きく広めようとするとバックグラウンドで検証みたいなのが走り出し、動作が重くなる。
Macでも編集できる。Macで編集するとiPhoneと同期してくれたり便利。競合したりもするが、どのショートカットを優先するか?のダイアログから解決できる。
結構困るバグは、IF文の終わりや繰り返しの設置や移動が失敗し、「繰り返しの終了」パーツだけが残ってしまうことが多い。
大きなアップデートがあればまた
Googleのサービスに納得いかないので自分で作って良いのかの葛藤を5年間くらい続けている
一般的にすでに十分大きくて開発コストのかかっている既存サービス(Googleほにゃらら)と同じようなシステムを開発することは、勝てっこないし無駄な労力で良くない、素直に迎合すべきこととされていると思う。この考えのせいで葛藤して判断が遅れているのが非常につらい。
例えば検索や地図やブラウザなどはGoogle、クラウド基盤はAWS、小さいツールでいうと動画変換はffmpegで画像変換はimage magick、形態素解析は~機械学習は~WEBフレームワークは~など定石ともいえるツールであふれていて、それをうまく組み合わせて使うのが賢いといわれている。
とはいっても、どうやっても既存サービスでは解決できない事があったり、不便・不都合が我慢ならない場合があるし仕事に支障が出ることは多い。そもそもなんで他人がつくったサービスを無理して使わないといけないのかと我に返るときがある。本当に簡単なものであればさっさと自分で作るのだけれども、それなりに手がかかるものの場合、「流石にGoogle様等の作った業界標準サービスを使わないのはダメだよなぁ」、となってしまう。しかし素朴なつくりであれば、案外作れるものがあると思う。実際作れるのだけれども、諦めてしまう。諦めるための理由を見つけようとしているだけなのかもしれない。
当然、大手しかサービスが無いわけではない。マイナーな良サービスはある。でもきっとそれにも欠点はある。どうせ自分で作れるレベルなのなら、自分が求めるものを自分で作ったほうがいい。
現場に出て5年間くらいずっと葛藤しているが、ほとんどのサービスについて「作るべき」だとようやく思い始めた。(手が動くかどうかは別)しかしここまでくるのに何年間もかかったのが残念すぎる。大学のころに色々手を付けておくべきだった。
やはり諸々自信が無い。自分の中で”十分に理解が深まった”と思えるような分野がほとんどない。でももう人生の時間は限りあるし、わからなくても手を動かさないと負け。実際は自分の思っているより”他人より”理解できている。
ここでは、流石にそろそろ自分で作るかと思っているサービス(すでにGoogleがやっている)を挙げていく。
自分でも作れんじゃね?サービス
1. Google Analytics(Webアクセスログ集約基盤)
いわゆるウェブサイトのアクセス数分析をするためのツールの定番で、これさえ入れておけばいい、という扱い。
既存のGoogle Analyticsの問題点
・構造が複雑すぎる。ユーザー・集客・行動・コンバージョンというカテゴリで多くの情報が取り扱えるということになっているが、デフォルトだとほとんどのデータが格納されていない。無数にある管理画面から正解(意味のあるデータが格納されている項目)を見つける高難易度ゲームとなっている。
・基本的にデータの反映が半日から1日程度かかる。今日の数字を知るのは明日の昼過ぎ、となる。アクセス数などを知りたいのは基本的にイベント中もしくはその直後なので、役に立たない。
・リアルタイムの値が直近30分のみの一部の値しか閲覧できない。フィルターを掛けて一部のみを見ることもできない。
・基本的だと思うイベントがデフォルトだと取得できない。ユーザーのクリックしたボタンやvideoタグの再生数など。Google Tag Managerなどで追加のイベントを発火させる必要がある。
・上記は有料のGoogle Analytics 360でも同じ
・2023年7月に旧来のバージョンであるUAを終了すると言っているのに、上記の問題はGA4(次のバージョン)でも改善する見込みがない、どころかGA4ではダッシュボードの閲覧がさらに難解になっており、直観的に基本的な値を見ることすらできなくなった。
どう対抗するか
・とにかく素朴につくる。
・超大量アクセスは想定しない。
・現場で必要なもののみを取得する。必要な情報を数秒おきに収集すれば良い。
デファクトスタンダードというGAのメリットを享受していない組織において、きっと同じ感想をGAに抱いているならば、絶対にメリットが多い。
懸念点
・プライバシーポリシー周り、既存サービスが戦ってきたものを考慮する必要がある。ただし彼らとは違って別のサービスと顧客情報をやり取りするためのサービスではなく、あくまで1stパーティデータを集めるだけなので難易度は低い。
・とはいっても大量アクセスに耐えないといけない。ブラウザの動作も軽くしないといけない。QUICなど新しいプロトコルを使いたいところだけれども、今スムーズに実装できる手段は限られるかもしれない。
2. Google AdManager・Google Admob(アドサーバ)
WEB広告サービスはどれも地獄。とにかく単純化が必要。ネットワーク広告を1から立ち上げるのは困難だが、自社の純広告くらいはちゃんと掲出したいということで、アドサーバを構築したい。例えば広告を設定したもののちゃんと表示されない、というときに正しく理由を表示できるアドサーバは存在しない。
さらに動画広告を正しく表示するためのVASTタグの構築などができるサービスはとても少なく困ることが多い。
アプリについても同じで、ネットワーク広告をネイティブアプリに表示するためのAdmobはマルチバイト文字に対応してないに等しいなど問題が多い。
昔ホリエモンが1人で広告サービスを作ったとかあるけれども、本来1人で作れるもの。Googleに頼るデメリットはとても多い。
3. Google検索(検索エンジン)
ご存じの通り、昨今の検索エンジン(笑)は、純粋なAND検索ができなくなった。特にマルチバイト文字圏の単語は勝手に1-gramで文字を分解して、すべての言葉がヒットしてしまう=Googleの表示したい項目が表示されるだけの、超恣意的サービスになっている。
この検索システムの劣化は、Google検索だけでなく、他の検索エンジン、Googleのサービス内(Gmailなど)、アメリカ発のサービス全般で見られる傾向となっている。
そこで、純粋にAND検索ができるような検索エンジンを作るだけで人気が出ると考えている。
ただ、Google・Bingがここまで必死に”まともに検索しないように”する理由もあるのだと思う、世の中にウェブサイトが多すぎて計算コストが非常にかかるのか?そもそも検索エンジンというのがどういう理屈で動いているのかを理解していない(インデックスを作っているから速く検索できるのだとは習った)が、ちゃんとした計算リソースと知識が組み合わされば、シンプルな検索エンジンはできると思っている。
ちなみにすでに手を出したツール
1. 動画配信サービス(限定公開のみのYouTube、Vimeoなどと同じ)
これは業務上必要だったので部分的に構築済み。
素朴な方法がHLSしかないので、配信遅延が大きい・配信安定性が低い。
分かりやすいサービス(JstreamやBrightcove、Vimeoなど)はクオリティ・カスタマイズ性が気になるし、何でもできるサービス(AWS Elemental MediaLive)は高価だし設定が煩雑すぎる。
2. CRM=顧客管理ツール (salesforceの一部機能)
顧客登録・ログイン・管理・メールマガジン などの機能
かなり組織によって使い方が違うツールなので、本当に既存商品を使うのが難しい。
3. Webメディア(の基盤)
そもそもローカルでWebメディアを作るってのは初めは抵抗が大きかった。実際は結構普通のことらしい。そしてネイティブアプリや様々なシステム連携を考えると1から作るほうが良かった。
とにかく
Googleなど既存サービスに頼っているとつらいことが多い。すぐに作るためにさっさとデキるエンジニアに投げたい。広島にはエンジニアが居ない。
映画「Winny」を見て、自分が通過した息絶え絶えの分散システムを思い出す
映画Winnyを見た。映画としての評価は80点くらい。
ノンフィクションということで、一連の訴訟を「惨事」として正義を日本国民に訴えるにしては映画ってのはコスパ悪いなと思う。ほかに良い主張方法も無いか。
自分の考えと当時の雰囲気
今考えるとこの映画の主張に賛同するのだけれども、当時無罪が決まった後も、世間だけじゃなくて敬意を持つ大学もファイル共有ソフトを使わせないために躍起になっていたし、誰もがファイル共有ソフトを悪としていたし、P2P=悪だった。自分も当時は仕組みをよく理解していないから、”?そうなのか~?”という感じだった。
まぁ裁判の争点になっていた通りすべての技術が善というわけではないし(これも基準が難しい。ブラクラ・個人情報抜き出すツール・ランサムウェア..)当時自分が判断できなかったのも仕方ないかなと思う。
ライツホルダー的立場に立つと、今やYouTubeとかTwitterとかInstagramとかでいくら著作権違反しても取り締まれない世界になっているわけで、YouTubeのほうが圧倒的に巨悪なサービス。(著作権違反報告は権利者しかできず、非常に煩雑な作業が求められるし、まともにサービス側が対応しない場合もある。オンラインサロンなどのコンテンツは確認しようがない。)
どちらかというと、昨今ライツホルダーがYouTubeに迎合しているのが許せない。(楽曲をYouTubeに上げちゃうレコード会社、ゲーム映像をYouTubeにだけ解禁するゲーム会社など。
研究・学問として
この”Winny叩き”から関連技術の発展が阻害されたといわれる。大学生のころ(2012-2016)自分は結構実感した方だと思う。というのも学部の研究室が「分散システム学」だった。見事にP2P技術を現実で活用することはあきらめて、数式やシミュレーション上でいじいじしているだけの学問になっていた。まるでP2Pは枯れた技術かのように扱われていた。(教授の本棚にはWinnyの本が並んでいる)
自分がWebRTCを使ってそれなりに実用的な方向性を示したのだけれども、結局それを利用した理論研究ばかり進んでいるらしい。まぁこれは学術界全体の問題だけれども、分散システムで面白い技術はまだまだ可能性があるはず。
ネットワーク学的に
世の中サーバークライアントしかないのではというくらい、学ぶ技術でP2P通信の知識が得にくい。まぁ普通のクライアント端末でも同じように通信できるんだということを忘れてしまうくらい、クライアント間の通信というのは効率が悪いぞというイメージを植え付けられた気がする。大学院にかけて、CDNなどクラウドサービスがいかに優れているかを語られることが非常に多い。どの回線でもダウンリンクのほうが優遇されているし、
P2P嫌いがマルチキャスト嫌いに発展している?
Winnyに直接関係はないが、世の中がサーバクライアント方式にこだわるがあまり、マルチキャスト・ブロードキャストの知名度・利用頻度が異常に低くなっているのではないかということを気にしている。
ARPやmDNSなどで生きてはいるけれども、本当はもっとマルチキャスト・ブロードキャストは活用されていても良いのではないかと思っている。基本的にマルチキャストはルータを通過しないのが難しいところ。ルーターで特殊な設定をしてスルーさせるなどしなければいけない。でもまとめて複数端末と通信できる(パケットを投げつけられる)ことに強い魅力を感じる。
妄想した技術
特に昨今の大量データ伝送が求められる時代、強いサーバーがさばくのではなく、分散システムで対応するべきではないのか。
マルチキャストでいうとフレッツキャスト( https://www.ntt-west.co.jp/smb/plan/flets_cast/ )のような技術が本当はもっと発展すべきだったし、遠い技術だけれどもWinny事件がなければ発展していたのでは?と思う。ケーブルテレビとかでは活用されているのかもしれないけれども、もっとカジュアルに開発できてほしい。
もちろんガッツリ分散システムを構築すれば、さらにローコストでコンテンツ配信が可能になるはずである。
業務で出会う特殊ネットワークプロトコル
かなり驚く技術として、NDIという映像伝送プロトコルがある。HD画質だと110MbpsでLAN内にブロードキャストでパケットをばら撒く。
受信したい映像をmDNSで特定して自分でつかみに行くというもの。非常にシンプルで良い。が、簡単に帯域が埋まってしまうのでむやみに使うとある種のテロ。もはや気持ちいい。
映像音声機材にもネットワーク通信が不可欠になっており、機材間の通信トラブルを理解するには結構な今まで教えてもらえなかった知識が必要になる。そして自分でP2Pを用いて開発したくなることが増えてくる。
進んでいるP2P技術はいろいろある(外国では)
AirPlayやオンラインFPSゲームなどのほか、ビデオ通話ツール各種は当然サーバ経由の通信は最終手段となっていて、基本はユーザー間でP2P通信する。プロトコルが良ければP2P通信のほうが良いに決まっている。
日本発でうまく活用している事例は少ないのではないかと思う。Splatoonとかは稀有な例という認識。
裁判ものとして
この映画は裁判モノとしてみるとかなりクオリティが高かったように思える。弁護士役の吹越満さんの演技が弁護士しぐさをうまく再現していたのがとてもよかった。裁判進行が非常に丁寧に描かれていた。
おわりに
映画を見て、分散システム・淘汰された技術について色々思い出した。
作品中にも描かれていたけど、本質的には分散システムを構成しつつも安全性や権利保護を実現するなどのほうが大事というか、それを実現すれば世の中に認められるという話だが、そこまでしなくても、GoogleなどITの悪はたくさんあるわけで、とにかく面白いことをしていいし、それを日本政府が邪魔するようなことは今後起きないでほしい。
多少、目に見えて著作権違反されるツールであったとしても、分散システムで世界のサーバリソースを削減したり電気代を減らしたほうがSDGsだと思う。
最終的なこの映画のテーマは、「世の中の不条理は多々あるがITも例外じゃない」、「ITにおいても正義は勝つというわけではない」というものだという理解をした。悲しい気持ちになるばかり。でもまぁ、色々思い出したし、良い映画だった。
知名度とセキュリティ
大学で口酸っぱく言われたコンピュータセキュリティ、実際に気にしなければいけないセキュリティってなんだったんだろうと思うことがよくある。
現実のセキュリティ
結局ユーザーレベルでは、フィッシング詐欺くらいしか現実的な脅威はない。本当に悪意を持って標的型攻撃されたら、社員個人が経験でなんとか対処するしかない。今まで学んだことは無力だし、何だったのだとがっかりする。(ツッコミは色々あると思うけれども)
いわゆるユーザーレベルのセキュリティ対策のビジネスにはすべて懐疑的である。
知名度無いのに脅威に怯えること
では、アプリケーション開発者やサーバ管理者レベルではどうかというのが今回のテーマで、結論から言うと、知名度次第で必要なセキュリティ対策レベルは変わる。「つまり知名度が無いてめぇらは厳密にセキュアなサービスを作る前に使い物になるモノを作れ」ということである。
大学の情シス系教員は頻繁に「大学は毎日何千件と、こんなにたくさんの攻撃を受けています!なのでサービスが不安定になることもあります!大変でしょ~!!」と言って学生を脅していた。この言葉を真に受けてサーバ管理や公開サービスの運営にナーバスになるのは本当に愚かで、国立大学レベルの知名度のあるドメインならそりゃ狙われるかもしれないけど、無名のドメインを持つサービス(個人が趣味で取得したものや、特に機密情報を持たない中小企業)が気にするものではないのである。というかもはや、基本的な対策さえしていれば多少のセキュリティホールを狙われない。そもそもあなたの無名サービスに誰も興味が無い。
逆にあなたの運営するサービスや商品を異国のハッカーに知ってもらうほど知名度を上げるにはどれだけの苦労が必要かと考えるとわかりやすい。もし簡単に異国まで届くほど知名度を上げられるならばどれだけビジネスが楽になるか。
肩の力を抜いたウェブサービス運営
考え方を変えて、そもそも知られていないという前提に立つと、次のような大胆な運用ができる
ウェブサーバの運用
公開ウェブサーバに機密ファイルを置いてもリンクが無ければ、勝手に流出することはないし、わざわざパスワードをかけたり厳密なアクセス権限に応じた表示をする必要はない。多少であればステージング環境をわざわざ使わなくても良い。当然公開サーバでエラーを起こしてもサーバが多少落ちても大して誰も困らない。(プライドの問題が大きい)
拠点間通信
いちいちVPNを張る必要はない。ましてやふつうのID+PW認証の仕組みがあればそれを突破・DDOSしようとするモチベーションのある人間はいない。AIもいない。
ウェブアプリケーションの運用
ハックすることでユーザーにメリットがある場合、チートをしようとする人なんていない。多少チートされても運用でカバーすればいいという前提で作ると、非常にシンプルになる。
変な使い方をしてサービスがダウンしてもそのユーザーが困るだけ。いたずらにマイナーサービスを落とすために頑張るような暇な人はめったにいない。
おわりに
本当にセキュアな環境が求められる仕事というのは、ほんの一握りの人だけだと思うので、多くのエンジニア・ウェブ制作者はもっと、適当にかつ、意味のある仕事をするべきだと思う。
本当に「これだけはやっておけ」というようなセキュリティ対策の具体的な取り組みがあるのならば教えてほしいが、しかしどうせこれも人によって判断がわかれる。
ウェブサービス運営者はセキュリティをできる限りガチガチに対策して、JPCERTの通知に日々びくびくして、パッチ対応で毎日を消費するという日々の過ごし方を選ぶのもありかもしれないけれども、皆さんの現実的なセキュリティ対策というのももっと共有できる世界になってほしい。
テレビ局のカメラの何がすごいのか
テレビ局のカメラの凄さについて、専門家ではないが、紹介したい。昨今民生用カメラも高品質なものが増えていたり、YouTuberなどが高価なカメラを導入することも増えているが、何が違うのか、何がすごいのか。
いわゆるスタジオや中継現場で利用する巨大なレンズをもつカメラ「システムカメラ」は、カメラ・レンズ併せて1台数千万円程度するのは普通である。報道現場などで使うショルダーカメラ、いわゆる「ENGカメラ(Electronic News Gathering) 」はオプション等含めて500万円くらいはすると思われる。一方で、YouTuberなども買い始めた高級ミラーレス一眼レフカメラや高級ハンディーカムは高くても50万円—80万円ほどであろう。
その差額は何なのか?保証のレベル?カモられてる?無駄にレンズデカい?
結論からいうと、プロ用として求める機能をきちんと実装しているので、
妥当な値段と言える。(必要かどうかは置いておいて)
以下、大きな違いを列挙する。
色々なメーカーはあるが、レンズはキヤノン、システムカメラ本体はikegami、ENGカメラはソニーのものを基準に述べる。
【レンズ】ズーム倍率
たとえば野球中継で必要な倍率をカバーするこのレンズ⇓
https://cweb.canon.jp/bctv/lineup/4k/4k-d/uj111/index.html
26.6kgもするが、8.3mmから1850mm までカバーする。最短撮影距離は3m。
センサーは2/3型なので、フルサイズカメラの35mm換算だと33mm-7400mm・・・は?
※一般的に普通の構図で撮るには50mm ズームレンズでは300mm程度あるのがふつう。
【レンズ】ブリージング ピント調整の再現
普通のズームレンズでは、ピント調整の操作を行うだけで画角が変わってしまう現象(ブリージング)がある。シネマカメラ用のレンズではブリージングが発生しないような工夫がされているが、システムカメラ用のレンズでも基本的には発生しない。
静止画撮影においてはブリージングは問題にならないが、動画撮影において発生すると若干気になる現象である。
また、ズームした状態でピントを合わせて何度かズームアウト・インの操作を行ってもピント面は変わらない。超遠くの観客席に急にズームインをしてもガチっとピントが合うというテクニックでの撮影も可能となる。
【レンズ】純粋なクオリティ(開放での画質)
昔はそうではなかったかもしれないが、4K撮影に耐えうるためというのもあり
レンズ自体の純粋のクオリティ、解像度の高さなども、民生用の機材とは一線を画す。(定量化が難しい)純粋に解像感=細部を見たときの画質の良さ が異なる。
取り回しの良さ
業務用三脚へのマウント対応や、ENGの場合本体を肩に乗せることができることなどによる安定性がある。用途を絞れば「ジンバル」や、小型アクションカメラのほうが勝る場面も多いが、ENGであればほとんどの場面に対応できる。
【システムカメラ】リモートでの画質調整が可能
リモートでアイリス(F値)や感度、ガンマ値などを変えることができる。そのような操作をする役割を一般的にVE(=Video Engineer)と呼び、カメラと対になる受信端末はCCUと呼ばれる。セットでの導入が必要である。
そしてリモートで画質の調整をすることで、現場ではカメラワークとズームの管理に集中することができ、高品質の映像制作が可能となる。
また、映像・管理以外の信号のほかにインカム音声・タリー・電源もまとめて1つのケーブルで伝送することができるなど、ワークフローに配慮した仕様がある。
⇓システムカメラの例
https://www.ikegami.co.jp/archives/menu1/uhk430
【ENGカメラ】何でも撮れる
内蔵NDフィルタ・内蔵エクステンダー があることで、どのような環境でも適切な撮影が可能。
レンズにもよるが、近くの物撮りから、少し遠くを撮る取材などにも対応可能。現場で何があるかがわからないような場面において非常に適している。
そのほか、業界用の記録媒体への対応(XDCAMレコード機能)や、
端子の充実(SDI・XLRなどに標準対応)による色々な映像・音声機材と連携が容易であることなどが挙げられる。
⇓ENGカメラの例
https://www.sony.jp/xdcam/products/PDW-850/index.html
▲放送用機材のデメリット
高いことなどを除くと、センサーサイズが小さいことによる”ボケが弱い”ことがある。デメリットと思う人は業界には少ないが、最近は安いシネマカメラが出ているのでそのようなカメラを使うこともできるし、静止画用のスチールカメラで動画撮影をすることで、ボケがよく出た演出が多用される。一方日本の放送用機材はセンサーサイズが小さく、ボケを求めない方針にあることが多い。(テレビ局の海外支局の映像はボケが激しいことが多い..)
あと、民生用機材でもできることが多いのに、大げさなカメラを使うことは必要なのかという議論もある。民生用機材もだが、昨今では"iPhoneでいいのでは"、という話にもなってくる。現状に即した機材選択が大事である。