「software」タグアーカイブ

新型コロナウイルス接触確認アプリ COCOA

みんなが使わないと意味がありません。
🚑

以前、AppleとGoogleがCOVID-19の濃厚接触の可能性を追跡するための技術で協力しているというニュースがあり、その後5月にExposure NotificationというAPIがiOSでは13.5に、Androidでは6.0で利用できるGoogle Play Servicesとしてリリースされました。

この状態ではそのままユーザーが利用できるわけではなく、このAPIを利用したアプリケーションが必要だったのですが、このAPI自体もやたらなアプリがアクセスすると害悪となるので、各国の政府機関に準ずる組織で開発したものでないと承認されないようになっていました。いくつかの国ではすでに公開されていたのですが、昨日日本の厚生労働省が公開したのが「新型コロナウイルス接触確認アプリ(COCOA)」というものです。

公開当初は厚労省のページからアプリへのリンクが掲載されておらず、AppStoreでの検索でもうまく見つけられないという問題があったのですが、夜になってGoogle PlayApp Storeへのリンクが追加されてインストールできるようになっています。私は厚生労働省が公開している他のアプリを探して、そこから同じ開発者のアプリを検索するという形でなんとかCOCOAを見つけ出してインストールしていましたが、これは確かに一般の方にはなかなか高いハードルではなかったかと思います。

アプリの設定自体は至って簡単で、利用規約への同意と、Bluetoothとログの記録・通知機能の利用確認があるだけです。しかし、ここでBluetoothなどの利用を拒否してしまうと二度と許可できない袋小路に入ってしまうという、仕様上の欠陥があるようなので要注意です。

一旦設定が終わってしまえばあとは自分が感染していないかを確認したい時に「陽性者との接触を確認する(14日間)」というボタンを押すだけです。感染者の情報は1日に1回更新され、その情報と自分の接触者とを照合して一致すれば通知が表示され、接触が確認されない場合にはその旨表示されるということです。ボタンは何度でも押せると思いますが、元のデータは1日1回しか更新されないようなのでその意味はないでしょう。

接触者追跡の仕様は公開されているので誰でも詳細を確認できるのですが、仕組みとしてはBluetoothの機能でスマートフォン同士でIDを交換し合い、概ね1m以内の距離で15分以上検出したIDを記録し、利用者の感染が確認された場合にその利用者のIDを共有し、そのIDが自分のスマートフォンに記録されていれば接触していたと見なされて通知されるというものです。この仕様のキモは個人のIDや位置情報をサーバーに記録するものではなく、またIDも毎日変更されるのでそのIDを使用した追跡もできないということで、Appleらしく個人情報保護に万全の配慮がなされたものになっています。

しかしテレビを見ていると「個人情報が不安だから利用しない」という通行人の声をそのまま放送してそれを否定することもなかったり、Bluetoothをオンにし続けるとバッテリーの減りが心配などとも言っていたりで、不安を煽ってせっかくのこのアプリを使わせないようにしているとしか思えません。このアプリのような断続的なBluetoothの使用でのバッテリー消費なんていうものも誤差にもならないようなものです。どうしてテレビというのはこう無責任なのでしょうか。

また、実際には感染していないのに感染したとして登録する人がいるのではないかと疑う人もいましたが、そんな事ができるとシステム全体が一発でゴミになってしまいますから、さすがに対策されているでしょう。具体的には検査機関側が登録した検査結果IDと一致しなければ登録できないようです。AppleとGoogleという世界トップクラスの頭脳集団が結集して作られているわけですから、そんな簡単な穴があるわけがないでしょう…というのはナイーブすぎるでしょうか。

ということで、1人でも多くの人が利用することが重要なアプリですので、自分の身を守るためにも積極的に広めていきましょう。まあ最初の1か月は「試行版(プレビュー版)」ということらしく、アプリ自体の動作に不安定なところなどはあるかもしれませんが、根幹となるIDの記録はOSレベルで行われているので、そのあたりは大目に見てあげてください。

Dark Reader

飽きるまでのことかもしれませんが。
🕶️

かつて古のPCの画面は黒地にグリーンやオレンジ、白の文字と決まっていたものですが、いつのころからか紙に印刷したもののイメージからか白地に黒が基本となってしまっていました。しかし最近はWindowsでもMac OSでも、PCでもスマートフォンでもダークモードが人気を博しているようです。通常はどちらかを選択できたり、時間帯によって昼間はノーマルで夜間はダークモードといった使い方ができると思いますが、一日中ダークモードで使っている人も少なくないのではないでしょうか。

AppleがWWDC 2019のキーノートスピーチで対応を発表したときにはその日一番の盛り上がりでしたし、世界的にも人気であることは間違いないでしょう。一つには自発光式の有機ELのディスプレイでは暗い色のほうが消費電力が小さいから、という理由もあるかもしれませんが、多くの人は見やすいから、かっこいいから、目新しいからといったことからではないでしょうか。私もそうした中の一人です。

ということで、OSがダークモードに対応してウェブブラウザ本体のメニューバーその他UIも暗色で表示されるようになりましたが、その中に表示されるウェブページの内容はそれぞれの運営側が対応させる必要があります。TwitterFacebookなどはUIの刷新とともにダークモードに対応させてきましたが、そういったところはまだまだ少なく、眩しいくらいに真っ白なページで表示されるところが多数派なのが現状です。

それならば表示させる側でダークにしてしまおうというのがブラウザの拡張として実装されているDark Readerというものです。ChromeFirefoxSafariEdgeというメジャーなブラウザに対応しているので、これなら誰でも試すことができるでしょう。

私がその存在を知ったのは「人気の拡張機能『Dark Reader』の悪意あるコピーが蔓延」というソフトアンテナブログ記事だったので、インストールする際には注意が必要です。Dark Readerのホームページにあるリンクからたどっていけば間違いないでしょうが、chromeウェブストアで見ると確かに紛らわしいものが複数ありますので、慎重に選択しましょう。

実は調べてみると1年半ほども前の2018年12月にはGigazineにも「Chrome・Firefox・Safariを簡単に『ダークモード』にできる拡張機能『Dark Reader』を使ってみた」という記事が掲載されているくらいなのでまったく新しいものではなかったので、自分の情報収集能力の衰えを感じてしまいましたが、この記事もRSSフィードリーダーで見ていたはずなのに素通りしてしまったようです。

実際に使ってみると無理やりダークモードにしている割にはかなり自然な感じで表示され、これで十分ではないかと思えるレベルです。本来のページのデザイナーの意図した通りのものではなくなるので、大々的に宣伝すると著作者人格権的な問題もあるかもしれませんが、個人で使用する範囲では問題ないでしょう。ただ、どうしても違和感が生じるところはやはりありますが、そういったところではドメインごとに個別にオン・オフするのも簡単です。

ということで、私は日常的に使っていきたいと思っていますが、いつの間にかダークモード対応していたとしても気づかないということになるかもしれません。また、これに慣れすぎてしまって、他の環境で本来の表示を見たときに戸惑う、なんていうことになってしまうかもしれませんね。

Visual Studio Code + Iosevka

飽きっぽい私が20年以上使い続けてきたものとは?
✍🏼

私はいわゆる付属の高校に通っていたのですが、夏休みの間に大学の学生がプログラミングを教えてくれる一週間くらいの講座があり、その名も確か「プログラミング教室」だったと思います。教えてくれる言語は様々で、CBASICはもちろん、Pascal, LISP, Prolog, Forthなどがあったと思いますが、FORTRANCOBOLがあったかどうかは定かでありません。私は3年間毎年受講していたと思うのですが、最初の年にPrologを教えてもらった以外、他の年のことはなぜか思い出せません。

この15歳の夏、Prologを教えてくれたのは大学院生のお姉さんで、他にPrologなんていうマイナーな言語を希望した人がいなかったので、一対一の贅沢な講座となりました。このとき使用していたマシンはHP 9000 Series 300というUNIXワークステーションで、その上で動いていてPrologの実行環境としても使ったのが、その後永きに渡って愛用することになるテキストエディタEmacsとの出会いでした。Emacsは単なるエディタではなく環境だ、などという人もかつていたくらい、Emacs Lispという言語で機能を拡張することができ、テキストの編集だけでなくメールの送受信やウェブブラウザなどとしても使うことができるので、やりたいことは大抵できてしまいます。しかし、GNU Emacsは現在でも開発が続いていて毎年新しいバージョンがリリースされてはいますが、最初のバージョンがリリースされたのが1985年ということでさすがに設計の古臭さは隠せず、あまり人に勧められるようなものではなくなってきました。

私もこれまでに何度も新しいエディタに乗り換えようと思っていたものの、なかなか決定版と思えるものがなく、体に染み付いたEmacsの使い勝手に勝るものが見つからずズルズルと使い続けて20年以上になってしまったのでした。しかしようやく、これならと思えるものが見つかったのですが、それがMicrosoftが開発しているVisual Studio Code (VS Code)です。Microsoftの製品ですが、Mac OS用やLinux用も開発されており、また”Visual Studio”という名前は付いていますがWindowsの開発環境であるVisual Studioとの直接の関係はありません。

VS Codeは「Node.jsを使ったBlinkで描画されるElectronフレームワークを使用」と、わからない人にはさっぱりだと思いますが、要するに最新のウェブ開発系の技術を使用した今どきのエディタであるということです。私自身は組み込み系のソフトウェアエンジニアなので疎い分野ですが、最新技術の恩恵は受けても良いでしょう。このVS Codeも最初はなかなかしっくり来なかったのですが、それが大きく変わったのはお気に入りのフォントを見つけて使い始めたことで、それがIosevkaというものです。

このフォントの魅力の一つはリガチャが使えるということです。普通はリガチャと言うと”fi”をくっつけて”i”の点を省略したり、”AE”をくっつけて一つの文字にしたりというようなもののことですが、このIosevkaはプログラミング用のフォントということで”->”を”→”に置き換えたり、”!=”を”≠”に置き換えたりすることができるのです。実用的な意味はほとんどなく、表示するアプリケーションが対応している必要もありますが、VS Codeではちゃんとリガチャを表示してくれ、これでなんとなく気分が変わります。

また、ThinからHeavyまで9種類のウェイトが用意されていたり、記号や0, a, iなどの文字のスタイルの組み合わせで12種類のバリアントが用意されていて、好みに合わせて使うことができます。私は0に斜線が入るのとアスタリスク(*)が上付きでない方が好きなのでSS04というバリアントを選んで使っていますが、他にもいろいろな文字で微妙な違いがあるので、こだわる人はGithubで公開されているソースから自分で生成した方がいいかもしれません。

なお、ASCII文字部分にIosevkaを使ってNoto Sansと組み合わせて一つのフォントセットにした更紗ゴシックというものも公開されているので、英字と日本語文字などで複数のフォントを個別に指定できないアプリケーションの場合にはこれを利用するとよいのではないでしょうか。VS Codeではウェブブラウザと同じように複数のフォントを指定することができるので、フォントの設定は非常に簡単です。フォント周りは昔からEmacsの鬼門と言えるところだったので、それが拍子抜けするくらい容易だというだけでVS Codeが素晴らしいものに見えてしまいます。

ということで、このVS CodeとIosevkaの組み合わせがとても気に入ってしまい、たとえ仕事でもコードを書くのがとても楽しくなりました。ここ10年くらいは自分でコードを書かないようにしてきたという面もあったのですが、今の新しい環境が楽しすぎて書かずにはいられませんでした。まあそんなことばかりも言っていられないのでほどほどにしておきたいと思います。しかしここまでVS Codeの何がそんなに良いのかということをほとんど書いていませんが、それは今さら私がここで語るまでもないと思うので、ただ「今どきだ」と言うに留めておきます。