真面目なブログはこっち 👉 blog.s64.jp

2021年賀状を住所を知らないネットの友達に自作デザインで送る

昨年のこれに引き続き、2021年版です。

h.s64.jp

昨年は日本郵便のはがきデザインキットを使ったが、今年からWeb版が提供されず、またSNS等を経由した送付機能も無いため何かしら別のツールへ移行が必要。

2021年(2020年末の投函分)の場合、富士フイルムイメージングシステムズ株式会社の提供するウェブポ 年賀状2021を使えばいける。ハガキを用意しなくても、クレジットカードさえあれば印刷から投函までぜんぶやってくれるので便利。

1. ウェブポ会員としてログイン

なければ作る。Webサイト右上の「未ログイン」と表示されているところから「ログイン」へ進めばいける。

2. 全面写真レイアウトで作る

ログインしたらウェブポトップへ戻る。今回はオリジナルのデザインにしたいので、上部メニューの「年賀状デザイン」内から「全面写真」を選ぶ。もちろん特段こだわりがないだとか、気に入ったデザインがあるのなら他のレイアウトを選んでもよい。その場合、レイアウトによっては写真や文章を挿入できる。

Image from Gyazo


Image from Gyazo

3. 用紙を選ぶ

フチ無しの場合はフジカラー仕上げ、フチありの場合は印刷仕上げを選ぶ。
フジカラー仕上げは写真用紙に印刷され、郵便はがきに貼り合わされる為すこし厚みが出る。印刷仕上げは直接郵便はがきに印刷されるもの。

webpo.jp

Image from Gyazo

4. 入稿データを作る

入稿データと言うけど、ただの画像ファイルでOK。ウェブポのFAQ内に「自分で作成したデータを最適に印刷するためには、どのくらいの大きさ・dpiの写真を用意すればよいでしょうか?」としてかなり詳しく書いてあるのでそこを読むとよい。

webpo.jp

ポイントは、

  • jpg推奨であること
  • 300dpi程度推奨であること
  • フチありの場合は、1063x1630 が印刷可能領域ジャストサイズであること
  • フチなしの場合、1181x1748が推奨サイズであること。また塗り足し領域が82px程度であること

の4点あたり。

5. エディタにアップロードする

拡大縮小, 回転などができる。はがきデザインキットと違い、写真補正機能はない。
完了したら、右下のすすむを押下する。

6. あいさつ文等を追加する

テキストの挿入が可能。はがきデザインキットと違い、スタンプ等の機能はない。
なお、ここで挿入したテキストとは別に、宛先選択後に宛先個別のテキスト挿入が可能。後述。

完了したら、右下のすすむを押下する。

7. 差出人住所を設定する

「差出人住所を印刷しない」にチェックを入れると、自分の住所を晒さなくてもよくなる。

なお、宛先選択後に個別に差出人を差し替えることもできる。また、当該画面で「ウェブポ事務局」を差出人とすることも可能。

8. 保存する / 呼び出す

デザインを保存しておけば急にブラウザが停止してもなんとかなるので、一旦ここでは先に進まず保存しておくとよい。そのまま進んでもよい。なお、注文完了時に保存済デザインは破棄される為、同じデザインを呼び出すことはできない。

もしここで保存後中断した場合、Webサイト上部の「ログイン中」内にある「編集再開」からデザインを呼び出すことができる。

Image from Gyazo

複数デザインを保存しておく機能はないように見える。

9. 配送先を指定する

すすむを押下すると、「あて名を印刷する」「あて名を印刷しない」の選択肢が表示されるので、今回は前者で進む。

相手の住所がわかっていれば、ここで「住所を入力」をクリックし必要事項を入力すればいい。プリントから投函まで自動で行われる。
今回はネットの友達宛なのだが、ここで昨年同様2通りの方法がある。どちらの場合も自分には相手の氏名や住所が見えることはなく、相手側の個人情報が割れることはない。

  1. 住所を知らない相手に、どうして年賀状が届くのですか?

  2. ウェブポではメールアドレスやTwitter IDをあて先として年賀状を郵送することができます。お申し込みの方がご指定の年賀状の受取人様ご自身が、受取先の氏名・住所をウェブポの年賀状受け取り手続き画面に入力していただくことで、その氏名・住所が年賀状に印刷され、直接郵送されます。その過程で受取人様の氏名・住所が差出人様に知らされることはありません。

https://webpo.jp/faq/webpo.html

相手にTwitterのDMが送れる場合

「その他サービスから」「Twitter」をクリックし、自分のTwitterアカウントと連携する。相互フォロー中のアカウント一覧が表示される為、選択し決定する。
決定後に「あて先リスト」には表示されないが、正常に選択はされている模様。すすむを押下し差出人情報設定画面に進めば、期待どおりTwitterアカウントが並ぶ。

※ なお、差出人情報設定画面から「もどる」を押下すると、あて先リストの表示が正常になる。不具合らしい。

実際に送られるDMは下記のようなもの。

Image from Gyazo

実際に受け取る際は、URLをクリック後Twitterログインが求められる。そのためURLをシェアして誰かへ転送、のようなことはできない。

相手のメールアドレスがわかる場合

「メールアドレスから」「メールアドレスを入力」をクリックすると、メールアドレスを入力できる。
Google Contactsを活用しているなら「その他サービスから」「Gmail」よりGoogleアカウント連携をすると、Google Contacs内のメールアドレスが列挙される。

なお、既に住所録へメールアドレスを入力している場合は「住所録から選ぶ」をクリックし検索することができる。

メールでの送信が含まれる場合、差出人名義の入力が求められる為注意。この内容は受取確認メールの件名などで使用される。実際に送られるのは下記のようなもの。

Image from Gyazo

※ 住所もTwitterもメールアドレスもわからないけど個別連絡が取れる場合

昨年同様、今年も似たようなことは実現できる模様。LINEやFacebook Messengerで送るメニューは存在しないため、あくまでアンオフィシャルな使い方になるが、下記の手順で実現できる。

  1. 「メールアドレスで送る」へ進む
  2. 自分が受け取れる形式でメールアドレスを指定する
  3. 受け取ったメール(の専用URL)をコピーする
  4. 相手へ個別メッセージで送る
    • 発行されるURLが個人専用なので、不特定多数が踏める場所には絶対置いてはいけない

この受取手続中にメールアドレスの再認証等は無い為、この手順で受取まで進んでもらうことが可能。

10. 差出人情報を設定する

以前のステップで既に設定した差出人住所だが、ここで個別に設定することができる。一部だけ会社名義にしたり、ウェブポ事務局名義にしたり、印刷しないこともできる。

11. 個別あいさつ文の設定をする

希望する場合、以前のステップで挿入したテキストと別で宛先個別でテキストを挿入できる。しないこともできる。

12. 決済をする

メールアドレスないしTwitter経由での送付が含まれる場合、クレジットカード以外の決済手段は使えない。これはオーソリ後の受取意思確認をし、拒否や有効期限切れだった場合にキャンセル処理を行う都合。ネット宛先が含まれない場合、LINE Payやコンビニ払いが選択できる。

以上で手続は終了。

GV-NTX1Aがあれば、Chromecast with Google TVでもテレビが見れる。ただしちょっと制約あり。

2020年11月25日に、GoogleからChromecast with Google TVが発売された。
この製品は、Google製ハードウェアのブランドとして発売されたものとしては2014年11月3日に発売されたNexus Player以来、実に6年ぶりのGoogle TV (旧Android TV) 搭載STBとなる。

...というわけで、今回もmy new gear自慢 兼 ちょっとした検証記事です。

Chromecast with Google TVにはチューナ機能が無い

自分は当時からAndroid TV製品のユーザーで、久しぶりのリファレンス機登場には購入を見送る選択肢はなかった。
しかしここ最近自分が使っていたのはGoogle製ではないサードパーティの製品、具体的にはPIX-SMB400という製品で、これにはテレビチューナ機能がある。そしてChromecast with Google TVには無い。そのためChromecast with Google TVの導入により失われる地上波の視聴手段を確保する必要があった。

なお、現在PIXELAからはPIX-SMB400の後継機としてPIX-SMB100が販売されており、こちらに買い換える選択肢もあった。が、自分がAndroidアプリ開発を仕事としている都合上、どちらかといえばリファレンスに近い製品の方が入手優先順位が高かった。

連携できるチューナの購入

そこで、今回はIO-DATAの販売しているGV-NTX1Aを購入した。この製品は地上/BS/CS受信が可能だが、HDMI出力が無い。リアルタイム視聴 / 録画番組視聴はどう行うかというと、IO-DATAの提供するREC-ON Appを使用する。(もちろんiOS向けにもある)

そしてこのREC-ON AppはGoogle TV (Android TV) にも対応しており、STB上でのリアルタイム視聴を実現可能だ。

Chromecast with Google TVのアドバンテージ

恐らく、最大のメリットはGoogleによって最適化されたランチャーだろう。Googleサービスの利用履歴などを参考に、ユーザへのおすすめコンテンツが最適化され表示される。
今までのAndroid TV製品も、たしかにPlay Servicesを経由してこのような表示を可能にしていた。が、さながらFire TVのようなコンテンツを全面に押し出した表示は真新しさを感じた。

そしてアプリ開発者やGoogle製品のハードユーザであれば、最新のOSがリリースされたらできるだけ早く使いたいものだろう。過去のAndroid TV製品はどうしてもOSアップデートはハードウェアベンダの判断に依存するため、あまりスピーディに提供されているとは言い難かった。この製品はGoogleの判断によって提供されるので、スマートフォンのNexusシリーズやPixelシリーズの実績を考えても、最新のイメージは即座に提供されるだろうと期待できる。

もうひとつ。あまり多くの人は気付かないポイントとして、提供されるアプリの種類が豊富であることも挙げられる。実はAmazon Prime Video アプリは必ずしも全てのAndroid TV製品で利用できるものではなく、自分の使っていたPIX-SMB400ではインストールできなかった。
今回のChromecast with Google TVには、このPrime Videoがプリインストールされている。恐らくGoogleはGoogle TVの市場でのポジションを強化することをビジネス上で重視しており、独自のアライアンス締結を行っているのではと思われる。

ディスアドバンテージもある

1点不便な点として、今回導入したREC-ON AppのGoogle TV (Android TV) 版はあくまでも「レシーバ」であること。テレビ上でチャンネルの選択等はできず、スマートフォン側アプリでチャンネルを選択し、それを当該アプリが起動中のSTBで視聴する、という形になる。
自分の場合はテレビの視聴頻度が極端に低く、あくまでも「インターネット上でコンテンツを発信している人物が地上波にも出る」というような例外的な時のみ... 言ってしまえばGoogle TV (Android TV) 上で視聴可能なメディアをスーパーセットとし、地上波はサブセットのような関係でしかなかった。そのため今回はこれを許容できたが、必ずしも全ての家庭で許容できるものではないだろう。
今回は見送ったが、バッファローからの販売が予告されているnasneの新しいモデルが出た頃には(そして引き続きテレビ向けのAndroidアプリがメンテされるならば)そちらの購入も再度検討して良いだろう。torne mobileアプリはGoogle TV (Android TV) に対応しており、アプリ上でひととおりの操作が可能になっている。

また自分の場合は今まで使っていたSTBとの差異として、Chromecast with Google TVは4Kのサポートに少し不満がある。出力解像度設定としては選択可能なのだが、どうもフルHDの設定ほどスムーズに動作しない。STBとしてのマシンスペックが足りないのだろうか?あらゆる操作が目に見えてカクついていた。

Android 10 (API 29) 以降でシステムナビゲーション設定を切り替える

  1. 設定画面に入る
  2. System -> Gestures -> System navigation

Gesture navigation はエッジスワイプで切り替えるやつ
2-button navigation はback + homeでアプリ切替をするもの
3-button navigation は従来のソフトウェアボタン。

2020年10月6日時点での東京都の学校行事実施に関する発表をまとめる

新型コロナウイルス感染症による社会情勢の変化を受け、教育機関は行事等の教育活動について厳しい決断を迫られているように思う。
自分もまがいなりにも教育機関と仕事をしている人間なので、これらの活動がどのような制約に置かれているのかを把握していないのはあまり良くないと思い、ここ最近の発表などからかいつまんで状況を把握する。

免責事項

  • 可能な限り正確な情報から判断できるよう努力していますが、あくまでも私個人の見解です
    • 本記事はあくまで参考として、正確な情報については1次ソースを参照してください
  • 本記事の内容が必ずしも弊社ないし私個人の関わる教育機関や事業者の方針と一致するわけではありません
  • 特段記載が無い限り、本記事内の日付は全て2020年のものです
  • ツッコミお待ちしております

9月14日 東京都教育委員会: 現時点での最新ガイドライン

エ 学校行事
12 月までに実施予定の、児童・生徒等が学年(学部)を超えて一堂に集まって行う活動(文化祭、体育祭等)、宿泊を伴う行事や校外での活動は、延期又は中止する。
令和3年1月以降に実施を計画する場合は、次の対策を講じるなどして、児童・生徒等の安全を十分に確保する。
感染状況等により、児童・生徒等の安全が十分に確保できないと判断される場合は、延期又は中止する。

(ア) 児童・生徒等が学年(学部)を超えて一堂に集まって行う活動(合唱祭、演奏会、講演会等)
●「3密」と「大声」を徹底的に避けた計画とするとともに、30 分に1回を目安として定期的に休憩を挟み、その都度、会場内の換気を行うなどの工夫を行う。また、オンラインによる鑑賞も積極的に活用する。
●学校の体育館等の施設を使用する場合は、児童・生徒等同士の間隔をおおむね1~2m確保するとともに、2方向の窓やドアを開けるなど、十分な換気を行う。
●外部会場を使用する場合は、会場の使用規定等に基づくとともに、座席の配置は児童・生徒等同士の間隔を十分確保する。
●飛沫感染防止の観点から、講演会等において演台を使用する場合はアクリル板を設置する。また、歌唱や演奏等を行う者の舞台上の配置は前後 2m 以上、左右 1m 以上確保するとともに、舞台から観客席までの距離を5m程度確保するなどの工夫をする。

(イ) 宿泊を伴う行事について
●学校のある地域又は活動先における感染状況等により、児童・生徒の安全が十分に確保できないと判断される場合は、キャンセル料が発生する前に、延期又は中止と判断する。ただし、海外への旅行については、今年度の実施は中止する。
●感染者の発生に伴い、実施日が臨時休業となる場合は中止する。

(割愛)

●児童・生徒と保護者に対して、旅行のねらい、旅行中の感染症対策、経路、利用する交通機関、緊急時の連絡体制、医療体制、キャンセル料等について丁寧に説明し、特に次の点について必ず確認した上で、実施開始日のおおむね 1 か月前までに参加承諾書を得る。また、必要に応じて、オンライン等による保護者会を開催する。

https://www.kyoiku.metro.tokyo.lg.jp/press/press_release/2020/files/release20200914_3/guidelines_01.pdf

www.kyoiku.metro.tokyo.lg.jp

まとめると、

  • 年度内12月までの行事関係はすべて延期または中止
  • 海外旅行は年度内すべて中止
  • 年度内1月以降については、配慮の上実施可能とする
    • どの行事の場合も、安全が十分に確保できない場合は延期または中止
  • 旅行において、実施日が臨時休業となる場合は中止

9月16日 国土交通省・観光庁: GoToトラベルの東京解禁を発表

9月11日(金)の新型コロナウイルス感染症対策分科会において、感染症の専門家による政府への提言をいただき、東京都を目的とする旅行と東京都に在住している方の旅行について、10月1日(木)以降に開始する旅行より改めて本事業の支援対象とすることが決定いたしました。

goto.jata-net.or.jp

9月28日 文科省: GoToトラベル事業の活用について発表

①東京都が目的地となっている旅行について、東京都内の旅行も含めて、10月1日以降に開始する旅行から、本事業の対象とする。
②東京都内に所在する学校が実施する旅行についても、同様に、10月1日以降に開始する旅行から、本事業の対象とする。

なお、上記に該当する場合の本事業の取扱いについては、各旅行業者等と御相談いただくようお願いします。
仮に今後、感染状況の著しい拡大があるなどの動きが出てきた場合には、政府全体の方針に基づき、東京都の追加を延期するかどうか、あるいは、事業開始後に対象外とするかの判断を改めて行うことといたします。このような取扱いについては、今後は、東京都を含めた全ての都道府県についても同様としたいと考えています。

また、感染の状況等に応じて、対象地域の変更があり得るといった一定のリスクが伴うことについて、改めて御理解をいただきますようお願いします。

(割愛)

修学旅行等の実施については、それぞれの実情を踏まえて、各学校や教育委員会等の学校設置者において適切に判断いただいているところですが、計画・実施にあたっては、以下のホームページに、各交通機関や受入れ自治体の取り組み等が掲載されていますので、これらも参考にしてください。

https://www.mext.go.jp/content/20200928-mxt_kouhou01-000004520_1.pdf

www.mext.go.jp

まとめると、

  • GoToに東京が追加されたから、修学旅行等で活用してほしい
  • 実際に修学旅行等を行うかは、各教育委員会や学校で個別の判断をお願いする
  • また地域により交通機関や自治体の方針も違うので、それらも加味してほしい

10月2日 文科省: 修学旅行等実施向けた配慮のお願いを発表

修学旅行等の実施については、それぞれの実情等を踏まえて、各学校や学校設置者において適切に御判断いただいているところと思います。
今年度未実施の学校におかれては、かねてよりお願いしているとおり、修学旅行等の教育的意義や児童生徒の心情等を考慮し、当面の対応として修学旅行等の実施を取りやめる場合も、中止ではなく延期扱いとしたり、既に取り止めた場合においても、改めて実施することを検討したりするなどの配慮をお願いします。

延期扱いとする場合においては、年度末の3月末日までの実施を検討するよう最大限の配慮をお願いします。当初の計画どおりの実施が難しい場合であっても、感染の拡大防止策を適切に講じた上で、近距離での実施や旅行日程の短縮など実施方法の適切な変更等について御検討いただくなどの配慮をお願いします。

https://www.mext.go.jp/content/20201002-mxt_kouhou01-000004520_2.pdf

www.mext.go.jp

まとめると、

  • 各教育委員会や学校で個別の判断こそお願いしているが、(以前からお願いしているとおり)教育的価値等を考慮して「中止」ではなく「延期」としてほしい
  • 仮に延期だとしても、年度末(= 最高学年の卒業前)までに実施できるよう配慮してほしい

以上を踏まえ

本日時点で出ている内容を元に判断すると、下記のようになる:

  • 文科省として、各種行事の実施は各機関に判断を任せている。が、GoToキャンペーンを活用するなど修学旅行の実施を推奨している。
    • 仮に一旦中止判断をしていても、年度末までに実施する方向で検討してほしい。
  • 東京都教育委員会は、12月までの各種行事は一律中止とした。
    • 文化祭や修学旅行など各種行事は1月以降に実施可能とする。
    • やむを得ない事由においては中止の判断を求める。
    • 旅行については、1ヶ月前までを目安に同意書を取る。

なお、私学の場合の所管は都道府県知事になるので、必ずしも教育機関の定めるガイドラインを参考にするとは限らない。原則的には都道府県知事の要請に従う。

第十四条

大学及び高等専門学校以外の市町村の設置する学校については都道府県の教育委員会、大学及び高等専門学校以外の私立学校については都道府県知事は、当該学校が、設備、授業その他の事項について、法令の規定又は都道府県の教育委員会若しくは都道府県知事の定める規程に違反したときは、その変更を命ずることができる。

(割愛)

第百三十三条

第五条、第六条、第九条から第十二条まで、第十三条第一項、第十四条及び第四十二条から第四十四条までの規定は専修学校に、第百五条の規定は専門課程を置く専修学校に準用する。
この場合において、第十条中「大学及び高等専門学校にあつては文部科学大臣に、大学及び高等専門学校以外の学校にあつては都道府県知事に」とあるのは「都道府県知事に」と、同項中「第四条第一項各号に掲げる学校」とあるのは「市町村(市町村が単独で又は他の市町村と共同して設立する公立大学法人を含む。)の設置する専修学校又は私立の専修学校」と、「同項各号に定める者」とあるのは「都道府県の教育委員会又は都道府県知事」と、同項第二号中「その者」とあるのは「当該都道府県の教育委員会又は都道府県知事」と、第十四条中「大学及び高等専門学校以外の市町村の設置する学校については都道府県の教育委員会、大学及び高等専門学校以外の私立学校については都道府県知事」とあるのは「市町村(市町村が単独で又は他の市町村と共同して設立する公立大学法人を含む。)の設置する専修学校については都道府県の教育委員会、私立の専修学校については都道府県知事」と読み替えるものとする。

http://www.kyoto-u.ac.jp/uni_int/kitei/reiki_honbun/w002RG00000944.html

ExcelでUnicodeなcsvを綺麗に開く

ExcelはWindows文化を汲んでいるので、Shift-JISおよびそれ系文字コードではないcsv (tsv) を開こうとするといわゆる "文字化け" が起こる。
これを開く方法を調べると「一度テキストエディタで開いてBOM付きUnicode保存する」なんていうのばかり出てきて本当にゲンナリするので、Excelだけでやる方法をメモ。

1. Excel上で空のExcelブック (シート) を作る

ちょっとここは悲しいけど致し方ない。この時点では保存しなくて可

2. リボン上の「データ -> テキストファイル」をからcsvを開く

Chooserが出るので対象のファイルを見る

3. 「元のファイル」として「Unicode (UTF-8)」を選ぶ

データ形式として最初から「区切り記号付き」が選択されている。
エンコーディングは他エンコーディングならそれ。ダイアログ下部のプレビューが化けて無ければOK。

4. 区切り文字を選択

デフォルトでは区切り文字として「タブ」が選択されているかもなので、csvならカンマに変える。
そのほか気になる項目があれば変える。
正しく区切り文字が設定されれば、プレビューに罫線が入る。

5. 必要に応じて、各列のデータ形式を設定する

4でプレビューに罫線が入ったので、列ごとにクリックして設定する。

6. 既存のシートに挿入する

これはあくまでインポートツールなので、空のシートに挿入する扱いになる。

Visual Studio Codespacesで "Login failed due to an..." みたいにログイン失敗する場合

Visual Studio Codespacesを使おうとして、ログイン時に下記表示になり失敗することがある:

Login failed due to an unexpected error. Please log out and try again.

Log out

Image from Gyazo

エラーの詳細が無くハマったのだが、どうもこれは3rd party cookieのブロックによって発生している模様。
Chromeのプライベートブラウズ機能を使っている場合、新しいタブページの「サードパーティのCookieをブロックする」を無効化すれば、正常に進むことができるはず。

Image from Gyazo

生徒のみなさん、手間取らせてしまってすまねえ

Androidライブラリ開発でRuntimeInvisibleParameterAnnotationsとなりアプリがビルドできない時の対処法

明確な原因まではわからないものの、対処法までは見つかったのでとりあえず書く。ざっくり言うと、Jetifierのバグを踏んだらしい。

問題の再現手順

ライブラリプロジェクトとして、Android Support Libraryを用いたものを作成する。AndroidXではない。

api "com.android.support:support-annotations:28.0.0"

下記のようなEnumクラスを作成する。ポイントなのは、コンストラクタのパラメータにAnnotationが付けてあること。

public enum MyOriginalEnum {
  
  MyOriginalEnum(@Nullable Integer hoge) {
    // do something
  }
  
}

このクラスをライブラリとして参照するプロジェクトで、Jetifierを有効にする。gradle.propertiesにある。

android.useAndroidX=true
android.enableJetifier=true

このEnumをJavaコードから参照する。importだけでも再現する。Kotlinから参照する場合は関係ない。

Log.d("Hoge", MyOriginalEnum.values());

すると、下記のようなエラーになってコンパイルができない。

エラー: MyOriginalEnumにアクセスできません
クラス・ファイル/Users/****/.gradle/caches/transforms-2/files-2.1/****/jetified-****-api.jar(****/MyOriginalEnum.class)は不正です
RuntimeInvisibleParameterAnnotations属性が不正です: MyOriginalEnum(Integer)
削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。

対処方1

Enum側のパラメータに付与してあるAnnotationを外す。今回の場合は @Nullable を外すので、IDE補助がなくなる。

対処法2

Jetifierを使わない。どうもこの問題はJetifierによるバイトコードの変換で発生しているらしい。

対処法3

Kotlinコードからしか参照しない。試したところ、Kotlinからしか参照しない分には問題は発生しなかった。