あなたのメール署名は大丈夫ですか?

カテゴリー:  Tech  タグ:  mail

最近メールサービスとメールアプリの乗り換えたので、署名の設定をしたりする機会が ありました。これを機に、みんなどんな署名を設定しているのだろうといろんな人のメール を見てみました。

みんな大丈夫か?

仕事でもSlackってこともあるので、メールの位置づけは下がりつつある とは言え今でも仕事ではメールが中心です。大体以下のような署名が多いですね。

┏ ───────────────────────── ┓
 株式会社 ほげほげ 管理部 主任
 署名 禿毛 ひかる / Hikaru Hage
 〒000-0000 東京都中央区XXX橋 XXビル XF
 TEL: 00-0000-0000 FAX: 00-0000-0000
 Email: hikaru@hogehoge.com
 URL: http://hogehoge.com/
┗ ───────────────────────── ┛

ちょっと凝っていると、ラインを工夫してみたりですかね。

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
 株式会社 ほげほげ 管理部 主任
 署名 禿毛 ひかる / Hikaru Hage
 〒000-0000 東京都中央区XXX橋 XXビル XF
 TEL: 00-0000-0000 FAX: 00-0000-0000
 Email: hikaru@hogehoge.com
 URL: http://hogehoge.com/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

よくよく見てみると、行数が意外に多いのと、ラインを凝ってデザインっぽい 署名が結構多いのに気がつきます。

中には女性ですが、こういうのもありました。ちょっとした殺意が芽生えますね。

。。。。。。。。。〆(∀`*)。。。。。。。。。〆(∀`*)。。。。。。。。。〆(∀`*)
株式会社 ほげほげ 管理部 主任
署名 禿毛 ひかる / Hikaru Hage
TEL: 00-0000-0000 FAX: 00-0000-0000
Email: hikaru@hogehoge.com
。。。。。。。。。〆(∀`*)。。。。。。。。。〆(∀`*)。。。。。。。。。〆(∀`*)

エンジニアたるもの……

さて、エンジニアたるもの、デザインより 標準 です!

署名については、 メールの Text/Plain フォーマットについて定義した RFC3676 に規定があります。 引用すると、以下のようなものです。

4.3. Usenet Signature Convention

There is a long-standing convention in Usenet news which also commonly appears in Internet mail of using "-- " as the separator line between the body and the signature of a message. When generating a Format=Flowed message containing a Usenet-style separator before the signature, the separator line is sent as-is. This is a special case; an (optionally quoted or quoted and stuffed) line consisting of DASH DASH SP is neither fixed nor flowed.

つまり、"-- "(ダッシュを2文字にスペース) で本文と署名を区切るのが、Usenet 時代からの慣習で、これをベースに本文と署名を識別するエージェント(メールアプリ) も多いのでこれに準じているほうが無難でしょう。

で、プライベートではこんな感じにしました。(サンプルなので、本名じゃありませんよ)

--
Richard Xhau
mailto:whoami@hogehoge.jp

シンプル!

仕事用だと電話番号とか会社名とかは必要ですが、これくらいシンプルにしたいですね。

スマホを車載する

カテゴリー:  Automotive  タグ:  android car

運転時にスマートフォンをどこに置くか

以前、 QLYX と言うスマートフォンを車載する ガジェットを購入したのですが、これはスマートフォンに金属のシートを貼り付ける 必要があります。

買ったばかり、しかもケースを着けずに使っている Essential Phoneにそんなものを貼り付ける 気にはなりません。

しばらくは、運転時は鞄に入れっぱなしにしていたのですが、 WAZEなどのアプリを運転中使いたい時も多く、見える位置にスマートフォンを 置いておきたいと思いました。

かといって、通風口に差し込むタイプは通風口を痛めそうですし、 ダッシュボードに貼り付けるタイプもダッシュボードを痛めそうで嫌です。

Nikattoの車載ホルダー

そんな時に見つけたのが、Nikattoの車載ホルダーです。

まるでクレーンのアームのような形をしています。アームは関節が3つ着いており、 角度を自在に変更できるので取り付け位置とスマートフォンの位置をかなり柔軟に調整できます。

Nikattoの車載ホルダー

Nikattoの車載ホルダーの取り付け例

各アームは関節部分のボタンを押さないと稼働しないので、スマートフォンの重量で勝手に 動いてしまったりすることもありません。

取り付けは、下部に吸盤がありロックアームを引き下げると吸着するタイプです。 吸盤自体がかなり粘着性のある素材で出来ており、吸着力+接着力で保持されているようです。 と言っても、接着剤という訳ではないのでロックを外すと、ちゃんと痕も残らず外すことができます。

ウチの車の場合、センターディスプレイの部分がシボもなく平面なので吸盤で設置するには 最適だったのですが、バイザーが突き出ているのでホルダーの下部が干渉してうまく設置できませんでした。前後を逆にするとバイザーからの干渉なく取り付けで切るのですが、ホルダー部分が上下逆になってしまいます。しかし、ホルダー部分のみ取り外して上下逆にできるので、丁度よい具合に設置できました。

ホルダー部分は上部がスライドするようになっており、バネか何かで戻るようになっています。 スマートフォンを設置する際は、上部スライドを 一旦押し上げてスマートフォンを置いてスライドを戻せばしっかり挟み込んでくれます。 挟み込む部分は柔らかいゴムのような素材なので、スマートフォンを傷つける心配もありません。

ホルダーの下部は、丁度真ん中部分に大きな枠が開けてあります。この部分には多くの スマートフォンでUSBのコネクターがあると思います。この枠のおかげで設置したまま、 USBケーブルで充電など接続を行うことも可能です。

結論

このNikattoの車載ホルダーは、 車にもスマートフォンにも痕を残すような加工が不要で、それでいて非常に強力な 吸盤で落下する心配がありません。

三関節のアームのおかげで設置の自由度が他に類を見ないほど高く、どんな車載ホルダー よりも運転時に見やすい位置にスマートフォンを固定できました。

これでWAZEを起動していれば、カーナビ要らずです。

Java7がダウンロードできなくて困った話

カテゴリー:  Tech  タグ:  java

久しぶりにJavaをやったら、色々困ったので覚書です。

Java7がない!

仕事でちょっとJavaを書かなければならなくて、普通に書いて現行バージョンの JDKでコンパイルして渡したときに「本番はまだJava7なんです」と言われました。

まぁ、ちょっと驚愕ですが、Java7でコンパイルするかと Oracleのサイトを 確認したところ……

ありません。Java7がないんです。

ちょっと調べたところ、随分と前にサポート切れて公開していないようです。

Java 7ダウンロードはどこから入手できますか。 2015年7月: Java 7のアップデートは一般に提供されなくなりました。 オラクル社では、Javaサポートを購入したユーザー、またはJava 7が必要なOracle製品を所有するユーザーのみにJava 7のアップデートを提供しています。

" Java SE 7のパブリック・アップデートの終了通知 "

参りました。

仕方がないので、OpenJDKのZuluで代替することにします。 Homebrewでインストール できました。

$ brew cask install caskroom/versions/zulu7

Javaの環境を切り替える

Java7が入手できたのはよいのですが、こんな旧いJDKがインストールされている のも気持ち悪いので確実に、かつお手軽に環境を切り替えるために jenv を インストールします。 Rubyの rbenv に当たるものですね。

$ brew install jenv

また、 .bash_profile.bashrc に以下を追加します。

#jEnv
export JENV_ROOT="$HOME/.jenv"
if [ -d "${JENV_ROOT}" ]; then
    export PATH="$JENV_ROOT/bin:$PATH"
    eval "$(jenv init -)"
fi

次に、jenvの設定を行います。まず、Javaのバージョンを収めるフォルダを作成します。

$ mkdir ~/.jenv
$ mkdir ~/.jenv/versions

そして、jenvに登録するためにインストールされているJavaのバージョンを確認します。 確認したら、地道に jevn に登録していきます。

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (7):
    1.8.0_151, x86_64:      "Java SE 8"     /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
    1.8.0_144, x86_64:      "Java SE 8"     /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
    1.8.0_131, x86_64:      "Java SE 8"     /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
    1.8.0_121, x86_64:      "Java SE 8"     /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
    1.8.0_112, x86_64:      "Java SE 8"     /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home
    1.7.0_181-zulu-7.23.0.1, x86_64:        "Zulu 7"        /Library/Java/JavaVirtualMachines/zulu-7.jdk/Contents/Home
    1.7.0_181-zulu-7.23.0.1, x86_64:        "Zulu 7"        /Library/Java/JavaVirtualMachines/zulu1.7.0_181.jdk/Contents/Home

$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk.Contents/Home
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
(以下、省略)

すると、 jenv に登録されます。

$ jenv versions
* system (set by /Users/hogehoge/.jenv/version)
  1.7
  1.7.0.181
  1.8
  1.8.9.151
  openjdk64-1.7.0.181
  oracle64-1.8.0.151

これで準備が完了です。

Java7の検証をしたいプロジェクトのためにフォルダを掘って、そのフォルダ内だけ Java7の環境となるように設定します。

$ mkdir java7-test && cd java7-test
$ jenv local oracle64-1.7.0.181
$ jenv versions
  system
  1.7
  1.7.0.181
  1.8
  1.8.9.151
  openjdk64-1.7.0.181 (set by /Users/hogehoge/java7-test/.java-version)
  oracle64-1.8.0.151

上記でプロジェクトフォルダの環境が切り替わるので、あとソースをコンパイルして テストしていきます。ここで、ちゃんと指定したバージョンが使用されているか 不安なので、コンパイルしたクラスコードを確認します。

以下のコマンドでクラスコードが一体どのJavaのバージョンでコンパイルされたか 確認できます。

$ javap -v TestClass
Classfile /Users/hogehoge/java7-test/class/TestClass.class
   Last modified Aug 20, 2018; size 2181 bytes
   MD5 checksum 9dd5bbe9909efe0a00b04918234a
   Compiled from "TestClass.java"
public class TestClass
   SourceFile "TestClas.java"
   minor version: 0
   major version: 51
   flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
(以下、省略)

上記のmajor versionを確認します。Javaとmajor versionの対比は以下の通りです。

Javaクラスの形式バージョン

Javaのバージョン

major version

1.4

48

1.5

49

1.6

50

1.7

51

1.8

52

9

53

10

54

今回確認できたmajor versionは 51でしたから、しっかりとJava7でコンパイルされて いることを確認できました。

Javaのバージョンをめぐるゴニョゴニョ

ここ数年でJavaから遠ざかっていましたが、昨年くらいからJavaの移行プロジェクト でレビューを依頼されたりすることが多くなりました。どこでも移行は大変なのだな と思っていたのです

今回は別にJavaの移行を依頼されている訳ではないのですが、 「大体このプロジェクトなんで今時Java 7使ってんだ」とか色々気になったので Javaを取り巻く状況をまとめておきます。

  • Oracle Java 7が2015年4月に無償サポートが終了しました。

  • Oracle Java 8は2019年1月に無償サポートが終了します。

  • Oracle Java 9は既に2018年3月をもってサポートが無くなっています。

  • Oracle Java 10は2018年3月にリリースされたばかりですが、2018年9月にサポート切れます。

  • Oracle Java 11については、無償版はリリースさえされません。 その代わりにこのバージョンから有償のLTS(長期サポート)が提供され、3年間はサポートが保証されます。

つまり、金を出さないとJavaという言語でサポートのあるシステムは組めないということです。

Oracleの考えていることもわかります。

Javaという言語は、少なくとも日本ではメインフレームと呼ばれる大型機の後を受けて ミッションクリティカルなWebシステムの基盤として採用されてきました。特に金融機関では そうだと思います。企業からの要求も高く、言語自体やその周辺のライブラリをどんどん肥大化し しています。

その機能を維持するのは大変だと思います。オープンソースではありますが、Oracleは それなりのリソースをつぎ込んでいるはず。ここで、「もうやってられるか!」と マネタイズに取り組み始めたのかもしれません。

これはよく考えると、大きな転換点かもしれません。

日本ではSIerと呼ばれる企業のプロジェクトではJavaはまだまだ中心的なプラットフォーム です。多くはアプリケーションサーバーとしてJavaでシステムが記述されています。 この言語の部分が有償となるのです。

これは、業界に2つの影響を及ぼしそうです。

  1. 大企業はともかく中小でJavaを採用していた企業からは着いてこれない企業が出てくるでしょう。

  2. OpenJDKはあるものの、安定して無償でJDKが提供されないならばJavaを習得しようというエンジニアが減っていくでしょう

さらに現在は LAMPと呼ばれるPythonやPHPで組んだWebシステムがSIer以外のITの世界では 一般的になりつつあります。クラウドやIoT、AIなど最新のIT環境になじんだエンジニアは こういったものを使う傾向にありますし、さらに上記の2点はエンジニアのその傾向を強め そこにビジネスを更に生む可能性があります。

何年かしたら、Javaは一昔前のCOBOLのような扱いになっていくのでしょうか?

確かに今更Javaでシステムを書く気持ちにはなれませんね。

Ghost 2.0が発表されました。

カテゴリー:  Tech  タグ:  blogging ghost

Ghost 2.0が発表!

Ghost(Pro)も含めて一年程使っていたBlog システムのGhost が2.0にバージョン アップしていました。私が使っていた頃は0.8とか0.9でやっと1.0がリリースされ たかというタイミングでしたから、順調に成長したようです。

新しくなった機能を見ていくと、以下のようなものが新たに実装されたようです。

  1. BlogエディタがMediumライクに強化された

  2. 「カード」と呼ばれるリッチメディアのコンポーネント(TwitterのツイートやInstagram のポストなど)を埋め込めるようになった

  3. 多言語サイトが作成できるようになった

  4. サイトの構造(年ごとに記事をまとめるとか、作者ごとのポスト一覧をつくるとか)は テーマの定義で固定だったが、動的に変更できるようになった。

  5. MovableTypeのサイトのように、1サイトに異なるタイプのコンテンツを共存させられる

  6. 記事の順序を制御できる。日付ごとだけでなく、チュートリアルや学習ページのような ものも作成できる。

これらの機能は、 Ghost の開発サイト で既にダウンロードできます(2018-08-22時点でv2.0.2です)。また、Ghost(Pro)も順次 ユーザーを移行していくようです。

Ghost! お前もか

現在はもう使っていないので色々言うのもなんですが、3つの点から残念に 思います。

  1. リアルタイムでレンダリングされる洗練されたMarkdownエディタがGhostの 美徳だったのに、他のCMSと同じようにリッチなエディタを目指すんですね。

  2. シンプルなBlogシステムだったのに、これはもうMovableTypeのように CMSを目指しちゃう訳?

  3. ホスティングサービスがまた価格が上がったな

最終的に自分のサイトでHTMLに落ちるのであれば、どういうHTMLが吐かれる 想定できるエディタでないと個人的には気持ち悪いです。Medium のような エディタが使いたければ、Medium使いますしね。

サイト構造やら多国語対応やら便利なんですが、そんなことやりたいならば WordPressとかでやったほうが世の中にはよほどノウハウを持った人がいますから Ghostを使う意味がなかなか見いだせないように思います。

そして、価格が年払いでも $29 /月は個人ではブログに対して中々出せない金額です。 ターゲットを企業に絞っているようですが、それならWordPressでなくあえてGhostを 選択する理由がよくわかりません。少なくとも日本で企業のサイト作っている会社や フリーランスの方たちはGhostを選択することはないでしょう。

AndroidにおけるMessaging Apps

カテゴリー:  Tech  タグ:  android essential phone messaging mobile

Androidのメッセージアプリで悩む

iPhoneには、 Messageアプリ が標準で入っています。

iPhoneの MessageアプリSMSと統合 されていて、相手の電話番号宛にメッセージを送信すると、 iCloudユーザーであればMessageで送信し、そうでなければSMSでメッセージを送信して くれます。日本ではiPhoneユーザーが多いので、Messageアプリで送っておけばiCloud経由で 送信される確率は高いですし、最悪SMSで送信されます。とても便利です。

ところが、Androidでは現時点でSMSと統合されたメッセージアプリはないため、 まず送信する場合にはどのアプリで送信するかを 考えなくてはなりません。(正確には後述する「+メッセージ」があります)

こんな状態になっている原因はGoogleのこの分野における迷走が原因であることは 明らかです。 Google Talk, Hanghout, Allo, Duo、Android Message といくつもこの分野のアプリを量産してしまい、ユーザーを混乱させたためです。

多分、Google Talkから始まりボイス機能をつけた Hangoutが発表されたのは早かったので本当はもっとうまくユーザーに浸透させる こともできたはずです。ところが、これらのサービスはGoogle アカウントと結び ついているため、プライバシーの問題から個人利用は不向きで企業向けにシフト しようとしているようです。

穴をうめるように、個人向けにメッセージのAlloと音声/ビデオのDuoに分けたのでしょう。

では、Alloがよいかというと、今年4月には Alloへの投資を中断し 「Rich Communication Service:RCS」標準に準拠したメッセージアプリにリソースを集中すると発表 しました。つまり、 Alloにはお先がない わけです。

では、RCS準拠のアプリがおすすめか

「Rich Communication Service : RCS」とは、携帯電話事業者の業界団体である GSMA(GSM Association)の「RCSグループ」が進めている標準化です。 スマホでお互いにマルチメディアメッセージやチャットなどが可能となる仕様です。 対応してればどの事業者でも相互接続が保証されるので、事業者間の調整なしにメッセージの やりとりが可能になります。

では、このRCS準拠のメッセージアプリはいつ出てくるのでしょうか?

実はもう発表されています。

Androidに標準で入っている Android メッセージ に実装されています。 素晴らしいですね。これでiPhoneのMessageのように、SMS、MMSとRCSを一つの アプリで対応できるようになります。

と、めでたしめでたしとしたいところですが、先ほど書いた前提があります。「対応していれば、 どの事業者間でも相互接続ができる」です。つまり、 キャリアが対応していなければ RCSを利用することが出来ません

わたしは mineoを利用していますが、いまのところ対応していないので現時点では利用 できません。

一方で大手のドコモ、AU、ソフトバンクは、RCS対応を始めました。 しかし、「 +メッセージ 」とよくわからないブランディングをしたと思ったら、それぞれ 専用アプリが必要な模様で、しかもそれぞれが一つのアプリでなく入手先も形態もキャリア ごとにバラバラというお粗末ぶりです。( Android メッセージで対応できるのか 契約がないため、私は未確認です)

その上「LINEの対抗馬」的なメッセージを出すものだから、多分ユーザー「はぁ?」と なっていると思います。完全に最初でつまずいた感じですね。

そのうちMVNO業者でも利用できるようになると思いますが時間がかかりそうです。

LINEはダメです

やり取りするだけなら、日本では LINE が一番早いんだと思います。

しかし、使いたくない。

使いたくない理由を挙げると切りがありません。

  1. あの企業は信用できない。

  2. 世界的にはマイナー

  3. メッセージングを「プラットフォーム」だと勘違いするものだから、不要な機能ばかり 増えて肝心のメッセージが使いずらい。

最近はLINEもいろいろと個人情報についてのポリシーを掲示するようになりましたが、 Amnestyの MESSAGE PRIVACY RANKING でも他の有名どころのサービスと比較するといろいろ不安になる レーティングになっています。

日本ではものすごい普及率ですが、世界では無視できるくらいのサービスです。以下は、 STATISAの Most popular global mobile messanger apps as of July 2018 から引用したものです。

世界のMessaging Appの利用者数

世界のメッセージアプリの利用者数

そして、最近のLINEを見ればわかりますが、タブで機能を増やすとかもっとも愚かな方法です。 タイムラインなどいろいろ機能を増やしたりしてどんどんユーザーに使われない機能 が画面を占めて、どんどんユーザー体験を下げています。そもそも、もっともユーザーが アクセスしやすい位置のボタンがチャットでなく連絡先というのがダメな証拠です。

関連アプリもたくさんでていますが、プロファイルが使い回されてるかと思うと気持ち悪い 限りです。

なんで、LINEは使いません。

結局。。。

結局、家族とは Threema というアプリを使用しており、ボッチなので そもそもそんなに他人と連絡を取ったりしないので、特に困らないか。

2018-08-20追記

Threemaが時々通知が遅れるようなので、結局 WhatsApp を併用しています。

Google Play で手に入れよう

完全食 COMPを食す

カテゴリー:   タグ:  foods

前回完全食 BASE PASTAを試したので、同じく日本発の完全食COMPを試してみました。

完全食 COMPとは

元々は、クラウドファンディングによって誕生した「完全栄養飲料」です。

「完全な栄養を、完全な手軽さで」がキャッチコピーらしいので、BASE PASTAより お手軽そうです。

このあたりは栄養素が完全なので大前提として、時間と手軽さをテーマにしている ので、手軽な栄養飲料という形態を取っています。

当初は水に混ぜて使うパウダーのみだっったようですが、現在はグミと最初から ドリング状態になっているものも販売されています。

今回はグミとパウダーがセットになったトライアルセットを購入してみました。

COMPレビュー

まず、パウダーのほうはシェイカーで水またはミルクにとかしていただきました。 水をどれくらい入れればよいのかインストラクションがないので戸惑いましたが、 適当に入れて飲んでみました。

むーん、味は不味くはないですが、美味しくもないです。 ちょっと甘味がある豆乳みたいな印象です。味に癖がないので、コーヒーやココアに 混ぜるなどアレンジが奨励されているようです。

1袋で400KCalです。3食置き換えると 1,200KCalなので、女性ならもう一袋というところでしょうか? 朝ご飯代わりに飲んでみました が、意外に腹持ちがよくお昼になっても余裕です。

グミのほうは結構量があるような気がしますが、こちらも400Kcalです。 甘味があり歯ごたえもあるので、食べた瞬間の満足度はこちらのほうが高いでしょう。 甘味が効いており歯ごたえもよいのでわたしはこちらのほうが好きです。

これならお昼ご飯代わりでもよいかなと思いました。

結論

パウダーは美味しくないがグミはそこそこ美味しいです。

味覚的な満足度を無視すれば、これだけで完結できます。

また、パウダーのほうアレンジとか言っていますが、まぁそんなことする 余裕があるならこんなものたべないので、割り切れば時間も手間も節約できます。

腹持ちもよいので、問題は味の単調さを克服できるかどうか。

次回グミだけ注文して様子を見てみようと思いました。

G-SHOCK GW-5000-1JFを購入しました

カテゴリー:  Gadget  タグ:  g-shock watch

(2021-01-03更新) 新モデルが発売となっていました

G-SHOCKを購入

GW-5000-1JFというモデルのG-SHOCKを購入しました。

G-SHOCK

G-SHOCKを購入

以前書いたよう 長年使ったスピードマスターを売却した のですが、その後手持ちの安物の時計をしていました。

4月にベーシックなスクエア型で、かつメタルのG-SHOCK GMW-B5000 が発売となったので、これだったら仕事で着用してもいいかと 別にG-SHOCKに思い入れがあるわけでもないのですが注文していました。

が、初回入荷以来全く入荷がないらしく、全然商品が届かない状態が続いています。

そんな中、同じ形状でオリジナルに近いウレタン製ベルトの GW-5000-1JFがもう生産中止だと言う ではありませんか。日本のカシオが2009年にその生産技術の粋を凝らした発表した モデルで、価格も3倍ほど高価でマニアな人に人気のモデルです。

「じゃ、これでいいか」と いつまで待っても届かない GWM-B5000 をキャンセルして、GW-5000-1JFの方を購入してしまいました。


続きを読む 

サマータイム導入に関するシステムへの影響

カテゴリー:  Trivialities  タグ:  current affairs dst olympic summer time

驚愕の自民党議員

通勤時にある記事を読んでいて、驚愕しました。

その際はこれまで指摘されてきたいくつかのデメリットを、一つひとつ丁寧に解決し ていかなければならない。長時間労働に対しては、既に動き始めた働き方改革により、 かなりの歯止めが期待される。 コンピュータなどの時間設定の変更は、律儀で真 面目な国民ならば十分乗り切れるはずだ。 余暇時間の過ごし方が、エネルギー消費の 削減につながるような工夫も必要だ。一方、睡眠不足などによる健康障害問題は、むしろ 個人の心構えにより、多くは解消されるはずだ。

自民党 船田はじめ 議員 "はじめのマイオピニオン - my opinion -"

マータイム制度の導入について 」 より引用 [1]

最初の印象は、「何、言ってんだ、こいつ?」 国会議員としては、あまりに無責任過ぎると思います。

サマータイムについては個人的にはニュートラルで どちらもでよいです。ただ、制度実施に必要なコストとか度外視して精神論で 「なんとかなるさ」というアホな政治家もいるのであれば心配になってきました。

前回 は感情的に書いてしまったので コンピューターシステムにどんな課題があるかまとめておこうと思います。 ここではサマータイムの是非については一旦棚上げします。

ITの世界では米国の言葉の方が一般的なので、ここではサーマータイムを 「デイライト・セイビング・タイム(以降、DSTと略記)」と呼びます。

多くのコンピューター自体の対応は大きな問題ではない

実は多くのコンピューターでは、WindowsであれLinuxであれ、Androidであれ 仕組みとしては対応済みなのです。

今日のコンピューターは世界中の至る所で使用され、なおかつネットを通じて世界 と繋がっています。こんな状況でそれぞれのコンピューターがそれぞれ現地時間で 稼働していてはいろんな不具合が出ます。

そのため、多くのコンピューターは内部的には 協定世界時 (以降、 UTC と略記) で時間を管理しています。しかし、それでは人間には分かりにくいので、「地域」の設定 従ってUTCを現地時間(以降、Local Timeと略記 )に変換して表示する仕組みを持っています。このような仕組みを 「国際化対応 (Internationalization, I18N)」と言います。具体的には「タイムゾーン」 と呼ばれる同じ時間帯を使っている地域情報と UTCからの時差で管理されています。

この「タイムゾーン」という仕組みは世界中で使われているので、DSTも当然考慮 されています。「日本はいつからいつまでがDSTである」という定義がなされれば システムとしてはそのまま対応できます。

このような各地域のタイムゾーンに関する情報は、 Internet Assigned Numbers Authority(IANA) で収集されデータベース化されています。このデータベースは tzdata と呼ばれ Unix系のシステムであればシステムの一部として収められています。

コンピュータ自体の対応は、このtzdataを更新することで対応可能です。

ただ、これはコンピューター自体が DSTに移行した日本時間を扱えるというだけです。 ここで言う「コンピューター」とは WindowsやAndroidなどの オペレーティング・システム(以降、OSと略記) やデータベースシステムなどです。

企業のコンピューターは、これらOSの上にビジネスを支えている 業務システム(アプリケーション・システム、以降アプリケーションと略記)が稼働しています。 「システムがDSTで問題があるか」という問題は、OSレベルだけでなく アプリケーションまでが正常に稼働して、はじめて「問題ない」と言えるのです。

従って、OSでの対応が上記のように可能であるとしても以下の2点の対応が必要です。

  1. OSなどの変更により、アプリケーションに影響がないかというテストが必要

  2. 仕組みとしてDST対応しているOSと違い、DSTを考慮していないアプリケーション自体がDST対応する必要がある。

アプリケーション・システムに関するサマータイムの問題

アプリケーションでも当然「時間」や「時刻」を扱います。 例えば、「毎朝4時にバッチを実行する」とか「出退時間から勤務時間を計算する」などです。

では、DSTを考慮しない日本のアプリケーションでは、 DSTによりどういう問題が引き起こされるでしょうか?

こんな例を考えてみましょう。

時間Aに24時間を足して時間Bを算出している処理があったとしましょう。 この処理の意味は二通り考えられます。

  1. 24時間後の時間を算出したい

  2. 翌日の同一時刻を算出したい

1.を意図する処理であればDSTであっても何の問題もありません。むしろ変更してはいけません。

2.を意図して処理されているのであれば、DSTを挟んだ日では時間がずれてしまい想定と 違う時間を指すことになりますから不具合が発生します。当然修正が必要です。

これらは非常に単純な例ですが、DST適用で起こる問題とはこのようなものです。

日本のエンジニアは長らくDSTが日本に適用される想定などなしに一日は24時間である 想定でプログラムを設計してきました。DSTが適用されてきた国では上記のような処理 は1.と2.の処理は必ず違うロジックでコーディングされます。 日本ではDSTを意識していないので、問題のあるコードが書かれている可能性があります。

上記の処理の意図はプログラムだけを見ても分かりません。 その意図を確認するには、プログラムの設計書や要件定義書まで遡って処理内容を 確認する必要があります。DSTの影響がありそうな箇所を洗い出して、それぞれの設 計意図をドキュメントをひっくり返して「見極め」を行って、はじめて影響の有無が特定でき修正を開 始できるのです。

DST対応は他の国でも出来ておりOSも対応していますから実は大変ではないのです。この 影響箇所の「見極め」とその「見極め」が正しいことを検証するテストが大変なのです。

"may"と"must"の区別が付いていない中学生が書いた英語の小説を日本語のプロットを もとに校正する困難さとでも言えば、近いでしょうか?

IT関連のエンジニアが「とんでもない! 間に合わない」という声を上げているのは上記 のような事情です。

アメリカの事例ですが、2007年にDSTの期間の変更が行われました。 "Energy Policy Act of 2005" というエネルギー政策の一環だったようで、適用まで 2年の猶予が与えられました。 大きな障害は聞こえてきませんでしたが、それでも上場企業だけで3.5億ドル (約400億円)の費用を投入され、「Mini Y2K」と呼ばれるほどIT業界は大変な騒 ぎだったようです。

以前からDSTを運用してきたアメリカで適用期間変更のみの対応で、しかも2年の猶予が あってすら混乱したのです

DSTを適用していない日本で、アメリカでのDST変更を上回る規模の対応を 律義さと真面目さで乗り切れると考えることができる脳みそは一体どんな構造をして いるのでしょうか?

まぁ、そもそも「IT革命」を「イットかくめい」と呼び、あのマイケル・ジャクソンに影響し 「This Is It」を作らせてしまった本物のアホが言い出しっぺなのだから、 それに乗っかってる政治家のレベルも押して知るべしでしゅうか。

(おまけ)コンピューターはどうやって時間を把握しているか?

ついでに、コンピューターがどのように時間を把握するかを確認しましょう。

コンピューターのOSの管理する時間を 「システムクロック」と言いますが、システムクロックは電源を落とすと 一旦時間が失われます。

しかし、それでは困るのでシステムの電源から独立したバッテリーなどで稼働し つづけるリアルタイムクロック(以降、RTCと略記)という機構を持っています。 「ハードウェア・クロック」と呼ばれることもあります。

OSは起動時にRTCから時刻を読み取り、システムクロックとして初期化し、 以降は自身で電源がオフになるまで時間を刻んでいきます。 現代では、NTPサーバーなどネット経由でより正確な時間が提供される環境があり、 定期的にこれらのサーバーに時間を問い合せ時刻修正する仕組みを多くのOSが もっており必要性は低くなっていますが。

「タイムゾーン」について書きましたが、RTCはタイムゾーンなど持っていません。 従って、OSは起動の際に読み取ったRTCの時間がUTCなのかLocal Timeなのかを 知らなければ正しいシステムクロックを設定できません。そのため、Unix系のOS ではRTCのタイムゾーンとシステムのタイムゾーンを両方管理しています。RTCの タイムゾーンでは、RTCのタイムゾーンを見ればRTCに時間がUTCかLocal Timeかわかる と言うわけです。

起動時はRTCのタイムゾーンを考慮しRTCからUTC時刻をシステムクロックにセットします。 OSは適時タイムゾーンを考慮してRTCの時間を書き換えます。 これはNTPなどより正確な時刻サービスがあるためですね。そうしてコンピューターは 全体としていつも正しい時間を維持できる仕組みになっています。

これは行儀のよいOSの例で、WindowsなどはRTCの時間はLocal Timeであると決め打ちして いるようです。

さて、 ここでもDST問題が見えてきましたね。

日本で稼働している多くのパソコンがWindows機でしょう。これらのマシンのRTCには Local Timeがセットされているのは当然です。RTCには「タイムゾーン」という概念があ りませんから、当然 DSTも考慮されていません。

つまり、 DST切り替えの際には時間が一斉に2時間狂います

とはいえ、Windowsの場合NTPとの時間同期は週に一回程度の間隔で行うようになっています。 1週間経てば補正されます。が、最長1週間パソコンの時間はずれたままです。

アプリケーションの問題ほど大きくありませんが。

結論

DST自体の対応は可能です。 ただし、数百億のコストと2年以上の時間が必要です。

銀行のシステムのように社会基盤となっているシステムもありますから 十分な影響調査とテストが必要ですが、その困難さは上記で上げた通りです。 そのためのコストと時間が必要で、2019年からの適用など不可能でしょう。

一般的なシステムについて述べましたが、同じような問題は電波時計や カーナビ、エアコン、炊飯器など時計を持っている多くの機器でも同様の問題は起こる 可能性はあります。そして、これらの売り切りのハードウェアはシステム変更が事実上 できないものもたくさんあります。

サマータイムのメリットはあるのだと思いますが、ここまでの労力を払って得られるものと バランスできるものなのか非常に疑問です。

まして、2年間の時限対応とかアホとしか。。。。

脚注

Instapaper Premium、再び

カテゴリー:  Tech  タグ:  instapaper

InstapaperのPremium が再開していたので申し込みました

Instapaper Premium

Instapaper Premium

以前、 Instapaperの独立 をお伝えしましたが、 早速 Instapaper Blogの 8/07の記事 でPremium Planの再開がアナウンスされました。

To ensure Instapaper can continue for the foreseeable future, it’s essential that the product generates enough revenue to cover its costs. In order to do so, we’re relaunching Instapaper Premium today.

早速、申し込みました。

Instapaper Premiumの機能

Premiumは、主に以下のような機能が追加になります。

  • 保管した記事を全文検索できる Full-Text Search

  • 記事について書いたコメントについて5つまでという制限を外せる Unlimited Notes

  • テキストを読み上げてくれる Text-to-Speech Playlist

  • 速読?風にテキストを読ませてくれる Speed Reading

  • 記事を Kindleに送信できる Send to Kindle 機能

Full-Text SearchUnlimited Notes 以外はあまり使っておらず、はっきり言うと どうでもいい機能です。 Send to Kindle はお風呂でKindleを読むことが多いので 、かろうじて時々使っていますね。

Pinterest傘下だった一時期は無料で使えていた機能で目新しいものはありませんし、 微妙な気持ちになる方も多いでしょう。

それでも個人的にはずっと以前から有償プランを利用していましたし、Instapaper が無くなるのは困るのでお布施と思って申し込みました。

Essential Phone を Android Pieにアップデート

カテゴリー:  Tech  タグ:  android essential phone mobile

先週Essential Phone版のAndroid 9 (Pie)はリリースされました。

Android Pie

Pie

同時リリース

GoogleはAndorid 8(Oreo)からGoogleと各ベンダーのコード部分を分離するよう 試みていたようです。そのため、今回の Android 9(Pie)のリリースは各メーカー とも早いと言われていました。

その中でも Essentialは Essential Phone向けのAndroid 9(Pie)へのアップデート をGoogle はAndroid 9を正式リリースした日に、GoogleのPixel向けと同時に Essential Phone向けのアップデートをリリースしました。大したものです。

Android 9(Pie)新機能

目立った変化としては、デスクトップ下部に3つ並んでいたボタンが2つになりました。 「最近使ったアプリ」ボタンが廃されて、ホームボタンと戻るボタンのみとなりました (「戻る」ボタンについてはデフォルトでは廃止されているようです。Essentialの カスタマイズなのでかな)。最近使ったアプリを表示するには、ホームボタンを上に スワイプすることで同じことが可能です。

その他、バッテリーの自動管理や明るさの自動管理などが追加になっています。

現時点では、いくつかの機能は完全にリリースされておらず秋に向けて追加されて いくようで楽しみです。

(参考リンク)