技術一覧

Materialize CSS でマテリアルデザイン入門

マテリアルデザインとは

マテリアルデザインとは、2014年に Google社によって発案されたデザインコンセプトです。
主に Android のUI のために考案され、仮想的である画面のタッチ操作や見え方(ユーザインタフェース)を現実の紙のように近付けて自然な操作を実現しようというものです。

マテリアルデザイン・コンセプト公式サイト(英文)

Materializeとは

では次に Materialize (マテリアライズ)とはですが、先程のマテリアルデザインのページを実際に作成するためのCSSフレームワークが Materialize です。

マテリアルデザイン・フレームワーク Materialize 公式ページ(英文)

実際に Materialize を使う

それでは百聞は一見に如かず。入門編なので一番簡単なサンプルページを作ってみましょう。
下記のコードをそのままテキストエディタなどにコピペするだけで動作します。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>マテリアルデザイン</title>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<style>
* {
box-sizing: border-box;
}
</style>
</head>
<body>
<!-- プッシュボタン -->
<a class="waves-effect waves-light btn-small">送信ボタン</a>
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<script> $(function () { }); </script>
</body>
</html>

このソースで上図のようなプッシュボタンだけのページが表示されたはずです。
ちなみにソースには、このままテンプレートとして使えるよう空のjQueryも埋め込んであります。

これだけで、エフェクトで飾られたプッシュボタンが作成できました。

何もインストールせずにmaterializeが動作しているのは CDN (Content Delivery Network) を使っているからです。CDNとはネットワークで利用できるコンテンツです。CDNを使うことで自分のサーバへコンテンツ(今回の場合 materialize ライブラリ)をインストールすることなく利用する事が可能となります。

以下にmaterializeライブラリのCDNを示します。これらをコードに含めれば materialize が機能します。

materializeのスタイルシートのCDN

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">

materializeのJavaScriptのCDN

<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>

Materializeのレスポンシブ・グリッドレイアウト

Materializeでは、Bootstrap同様に横幅をトータル12分割したレスポンシブデザイン対応のグリッドレイアウトが採用されています。

基本のグリッド

下記にサンプルコードを示します。

<div class="row">
  <div class="col m1 amber center">1</div>
  <div class="col m1 yellow center">2</div>
  <div class="col m1 amber center">3</div>
  <div class="col m1 yellow center">4</div>
  <div class="col m1 amber center">5</div>
  <div class="col m1 yellow center">6</div>
  <div class="col m1 amber center">7</div>
  <div class="col m1 yellow center">8</div>
  <div class="col m1 amber center">9</div>
  <div class="col m1 yellow center">10</div>
  <div class="col m1 amber center">11</div>
  <div class="col m1 yellow center">12</div>
</div>

<div class="row">
  <div class="col m4 l3 yellow">
    <p>このカラムは小画面12列(無指定)、中画面4列(m4)、大画面3列(l3)で幅指定</p>
  </div>
 
  <div class="col s6 m8 l9 amber">
    <p>このカラムは小画面6列(s6)、中画面8列(m8)、大画面9列(l9)で幅指定</p>
  </div>
</div>

上図がサンプルHTMLを実際に表示したものです。
それぞれのdivタグにあるclassに注目すると、row や col がありますが、これらの意味は

row: 行(ロー)
col: 列(カラム)

です。横一行となるのが row、縦の列が col です。

次に、再び class に注目すると m4 や l3 などで書かれているものがあると思います。これらは幾つの列幅を使うかの指定です。英字+数字の組み合わせの最初の英字の m や l (これらをスクリーン・クラス・プレフィックスといいます)は閲覧者のメディアの画面サイズです。
ざっくり書くと

s: スマートフォン
m: タブレット(パッド)
l: パソコン

という捉え方で構いません。

もし「m4」と指定した場合、タブレット閲覧時には4列の幅で表示するという意味になり、「l3」と指定した場合はパソコン閲覧時には3列の幅で表示するという意味になります。省略時(未記載時)は暗黙で12列幅を使うという事になります。

プッシュとプル

次にカラムを入れ替えるプッシュとプルです。サンプルソースを下に示します。

<div class="row">
 <div class="col m3 green">第一カラム</div>
 <div class="col m9 amber">第二カラム</div>
</div>

<div class="row">
 <div class="col m3 push-m9 green">第一カラム</div>
 <div class="col m9 pull-m3 amber">第二カラム</div>
</div>

上の行はノーマル状態、下の行にはプッシュとプルを設定しました。
すると下の行では第二カラムが左側に来たことが分かると思います。プッシュとプルでカラムの順番を入れ替えることができます。

オフセット

オフセットのサンプルソースを下に示します。

<div class="row">
 <div class="col m6 amber"><span class="flow-text">オフセットなし</span></div>
 <div class="col m6 offset-m4 green"><span class="flow-text">オフセット指定</span></div>
</div>

オフセット指定のしかたは、クラスに offset-m4 などのように offset- を頭に付けて指定します

サンプルは上下両行とも6カラム幅のサイズです。上の行はノーマル、下の行は m4 のオフセット指定をしました。

m4 なので4カラム分の空白が左側にセットされているのがわかります。

セクションと区切り線

セクションはコンテンツをまとめブロック単位にしたものです。
区切り線はコンテンツを分けるために用います。
以下にサンプルソースを示します。

<div class="divider"></div>
<div class="section">
 <h5>セクション</h5>
 <p>内容</p>
</div>
<div class="divider"></div>

サンプルではセクションの上下に区切り線を設置したものです。
区切り線は1ピクセルの線として表示されています。セクションは、1コンテンツ=1セクションという形で用います。

セクションの応用

それでは、セクションについてもう一歩理解を深めてみましょう。
以下サンプルを示します。

<div class="divider"></div>
<div class="row">
 <div class="col s4">セクションA</div>
 <div class="col s4 light-blue">セクションB</div>
 <div class="col s4">セクションC</div>
</div>
<div class="divider"></div>

1行に3つのセクションを横並びさせてみました。12分割を3で割り、それぞれのセクション幅は4カラムで均等にしています。
先程のサンプルと同様に上下に区切り線を入れています。
中央のセクションBには青の背景色を指定しました。

このようにセクションを横並びさせることもできます。
なお、このサンプルでは、それぞれのセクションの幅を均等にしましたが、勿論、s2/s8/s2 とすれば中央セクションのみを広い幅にする事もできます。

レスポンシブレイアウト

次にレスポンシブの動きの理解に進みましょう。

Materializeでは、自動的にレスポンシブデザインに対応しています。私たちが覚えておくべきはスクリーン・クラス・プレフィックス(s2やm4 などの s,m,l,xl)です。どの画面サイズの場合にどのようなレイアウトになるかを知っておく必要があります。

以下にレイアウト表を示します。

想定デバイススマートフォンタブレットノート
パソコン
デスクトップ
パソコン
プレフィックスsmlxl
画面幅
(ピクセル)
600px 以下601〜992px993〜1,200px1,200px 超
コンテナ幅90%85%70%70%

例えばプレフィックスが s の場合は 600px のデバイスで表示する際に有効となります。
これらグリッドシステムを活用して、デバイス毎に最適なレイアウトを組むことが可能となります。

それでは上記レスポンシブレイアウトを応用したサンプルを示します。

<div class="row">
 <div class="col s12 green"><p>s12</p></div>
 <div class="col s12 m4 l2 light-blue"><p>s12 m4</p></div>
 <div class="col s12 m4 l8 cyan"><p>s12 m4</p></div>
 <div class="col s12 m4 l2 teal"><p>s12 m4</p></div>
</div>
<div class="row">
 <div class="col s12 m6 l3 lime"><p>s12 m6 l3</p></div>
 <div class="col s12 m6 l3 light-green"><p>s12 m6 l3</p></div>
 <div class="col s12 m6 l3 orange"><p>s12 m6 l3</p></div>
 <div class="col s12 m6 l3 yellow"><p>s12 m6 l3</p></div>
</div>

このソースを組んだ場合、幅993px以上のデバイス(ノートPCなど=l)で表示すると下図のように表示されます。
下段の l3 が効いていることが分かります。二段目は l2/l8/l2 の指定です。

そしてタブレットなどの場合(幅601px以上=プレフィックス m)は下図のように表示されます。二段目の m4、三段四段目の m6 が効いています。幅はあくまで合計12カラムを超えないので m6+m6 までとなり、それを超えたオレンジ色と黄色の m6+m6 は四段目に配置されました。

次にスマートフォンなどの場合(幅600px以下=s)は下図のように表示されます。s12 が効いています。どの段も s12 に指定したので縦並びになりました。
横幅の狭いスマートフォンには最適な表示になります。

このようにMaterializeを使うことで、マテリアルデザインかつレスポンシブデザインを簡単に実装することが出来ました。

色指定のしかた(背景色)

背景色や文字色を指定する方法ですが、これも簡単でクラスを指定することで実現できます。以下サンプルを示します。

<div class="card-panel cyan accent-2">カードパネル</div>

サンプルコードの実行結果

このサンプルコードではカードパネルの背景色として「cyan accent-2」(シアン色の一種)という色を指定したものです。

materializeで指定可能な色の名称は下の通りです。ちょっと文字が小さいですがこういう感じということだけ覚えて戴ければ良いと思います。

色指定のしかた(文字色)

次にmaterializeで文字の色を指定する方法は、下記のサンプルコードのようにクラスに色の名称を記載することで可能です。

<span class="deep-orange-text text-darken-1">テキストの色を指定してみた</span>

サンプルコードの実行結果

このサンプルでは「deep-orange darken-1」(オレンジ色の一種)の色を指定していますが、背景色指定よりも、もうひと工夫必要で、”-text” や”text-“を付加しなくてはなりません。

「deep-orange darken-1」を文字色にしたい場合「deep-orange-text text-darken-1」という感じでハイフン+textの文字が必要です。ここらへん、ちょっと面倒ですね。

以上、materializeでの色指定のやりかたでした。マテリアルデザイン、意外とかんたんに導入できるんだなと思って戴ければ幸いです。
入門者向けの解説、まだまだ続きます。


Googleの2段階認証でドコモ・au・ソフトバンク等のキャリアメールが規制対象に

2019年12月1日より、Googleの2段階認証でドコモ・au・ソフトバンク 等の国内キャリアメールが使用不可になります。

これら国内キャリアのメールサーバは、いまだTSL等に対応しておらず平文で通信していることからセキュリティリスクが存在するので、グーグル社として2段階認証のセキュリティ確保のための措置と考えられます。

そもそも2段階認証はセキュリティ向上の為の仕組みなので、それに用いられるメールシステムが平文で通信するようでは意味がないわけです。

勿論、これら国内キャリアメール以外にもTSL通信非対応のメールサーバはネット上に存在しますが、流通メール数が格段に多いキャリアメールをBANすることで、よりよいセキュリティ確保が出来るという判断でしょう。

規制対象ドメイン

@ezweb.ne.jp
@docomo.ne.jp
@softbank.ne.jp

メディアの報道

Google公式発表


PostgreSQL でデータファイル格納ディレクトリまるごとバックアップ(上級者用)

PostgreSQL でバックアップする場合、通常は pg_dump コマンドを使います。今回は敢えて強引(?)にデータファイルごと根こそぎバックアップする方法をやってみます。

そもそもデータベースはデータファイルにのみ全情報があるのですから、Oracle だろうが SQL Server だろうが、データファイルさえ残っていれば何とかなるわけですから。

この記事の対象は、データベースの構造を良く知っている上級者向けと思ってください。初中級者の方にはあくまでも、それぞれ用意されているバックアップコマンドを使うことを推奨します。

さて本題の手順です

1.データベースファイルを格納するディレクトリを確認

psql に管理者権限でログインして SHOW data_directory を実行します。

$ psql -U postgres

postgres=# SHOW data_directory;
data_directory
——————————
/var/lib/pgsql/9.6/data
(1 row)

postgres=#

こんな感じで表示されます。上記の例では

/var/lib/pgsql/9.6/data

がデータフォルダです。勿論、環境によってディレクトリは異なります。

2.データベースを停止する

ディレクトリごとコピーする場合、必ずデータベース(RDBMS)を停止する必要があります。データベースを動かしながらコピーしたらぶっ壊れます

$ sudo systemctl stop postgresql

3.ディレクトリごとコピー(バックアップ)する

普通にコピーコマンドでディレクトリごとバックアップします。

$ sudo cp -R /var/lib/pgsql/9.6/data ~/backup_db

4.データベースを再起動する

バックアップ(コピー)を終えたらデータベースを再起動します。これですべて完了。

$ sudo systemctl start postgresql

このように至ってシンプル。なのに完璧なバックアップ。
但しRDBMSのバージョンが異なると動作しない場合があります。データベース構造まで熟知している上級者のあなたには理由はわかりますよね。

リストアする場合

逆にこのバックアップのリストア方法ですが、コピーしたディレクトリごと上書きすれば良いです。コピー作業前にデータベースを停止するのは当然ですね。

ちなみにバックアップ(コピー)先ディレクトリでそのまま動作させる事も可能です。

postgresql.conf の data_directory でデータディレクトリを指定してください。

$ sudo vi /var/lib/pgsql/9.6/data/postgresql.conf

data_directory = ‘/home/backup_db/data’ ←お好みのディレクトリ

この方法、実は PostgreSQL だけでなく、ほぼどんな RDBMS でもこんな感じで出来ちゃうので、一応知識として持っていると便利だったりします。


macOS版 IntelliJ IDEA 2019.2 の日本語入力不具合の対処法

 IntelliJ IDEA を 2019.2 にしてから、日本語入力でトラブルが頻発するようになりました。具体的には「ど」と入力しようとすると、ローマ字入力では do とタイプしないといけないのですが、d をタイプした瞬間に変換が勝手に確定されてしまい do と打つまで待ってくれないので漢字変換できない状態になるものです。

 一旦、テキストエディタに日本語で書いてからコピペすることで仮対応していましたが、コードを書く際にいちいち InteliJ IDEA とテキストエディタを往復するのはとてもストレスです。

 これでは堪りません、さすがにリサーチしてみるかと原因究明や対策を探してみたところ、JetBrains日本語公式ブログに対処法がアップされていました。こういうところ、JetBrains社 は頼もしいです。

 細かい手順は下にリンクを貼っておきますので、公式サイトを読んでいただくとして、この公式サイトでは2つの回避策が示されています。私がこの手順でやってみたところ、簡単な回避法の回避策1では何故か起動できませんでした。私の環境なのか原因不明ですが、とにかく起動さえしなくなったので、これではいけません。回避策2の方でやってみたところ、無事起動できるようになりました。

 そもそもこの日本語入力の不具合は毎回必ず発生するものではなく、何かのタイミングで発生していたので、これで解決できているのかは暫く使ってみるしかありません。不具合が発生しない事を祈るばかりです。

日本語公式サイトでの説明
https://blog.jetbrains.com/jp/2019/07/30/2025


ChromeのアドレスバーにフルURLを表示する方法

 最近のブラウザは、アドレスバーにURLをフル表示しないのがトレンドのようですが、正直面倒なことがあったりします。
そこで、フルURLを表示する方法をご紹介します。

至って簡単ですが、

1.アドレスバーに下記をコピペします
chrome://flags/#omnibox-ui-hide-steady-state-url-trivial-subdomains

2.下のように黄色でマークされた部分の右にあるプルダウンメニューで「Disabled」にします。以上!

これでフルURLが表示されている筈です。Enjoy!


yum で競合エラーが発生した際の解決手順

yum の install とか update で競合エラーが発生してしまう場合の解決方法です。
以下のように yum を実行したら競合エラーが発生する場合があります。大事な部分を下記にマークしました。

$ sudo yum install nginx-module-geoip
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ nginx-module-geoip.x86_64 1:1.17.3-1.el7.ngx を インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================================================================
 Package                             アーキテクチャー        バージョン                            リポジトリー            容量
================================================================================================================================
インストール中:
 nginx-module-geoip                  x86_64                  1:1.17.3-1.el7.ngx                    nginx                   18 k

トランザクションの要約
================================================================================================================================
インストール  1 パッケージ

総ダウンロード容量: 18 k
インストール容量: 76 k
Is this ok [y/d/N]: y
Downloading packages:
nginx-module-geoip-1.17.3-1.el7.ngx.x86_64.rpm                                                           |  18 kB  00:00:00
Running transaction check
Running transaction test


Transaction check error:
  ファイル /usr/lib64/nginx/modules/ngx_http_geoip_module.so (パッケージ nginx-module-geoip-1:1.17.3-1.el7.ngx.x86_64 から) は、パッケージ nginx-mod-http-geoip-1:1.12.2-3.el7.x86_64 からのファイルと競合しています。

エラーの要約
-------------

このマーカ部分のモジュールが邪魔をしているので、アンインストールします。

$ sudo yum remove nginx-mod-http-geoip-1:1.12.2-3.el7.x86_64
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ nginx-mod-http-geoip.x86_64 1:1.12.2-3.el7 を 削除
--> 依存性の処理をしています: nginx-mod-http-geoip = 1:1.12.2-3.el7 のパッケージ: 1:nginx-all-modules-1.12.2-3.el7.noarch
--> トランザクションの確認を実行しています。
---> パッケージ nginx-all-modules.noarch 1:1.12.2-3.el7 を 削除
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================================================================
 Package                                アーキテクチャー         バージョン                       リポジトリー             容量
================================================================================================================================
削除中:
 nginx-mod-http-geoip                   x86_64                   1:1.12.2-3.el7                   @epel                    21 k
依存性関連での削除をします:
 nginx-all-modules                      noarch                   1:1.12.2-3.el7                   @epel                   0.0

トランザクションの要約
================================================================================================================================
削除  1 パッケージ (+1 個の依存関係のパッケージ)

インストール容量: 21 k
上記の処理を行います。よろしいでしょうか? [y/N]y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  削除中                  : 1:nginx-all-modules-1.12.2-3.el7.noarch                                                         1/2
  削除中                  : 1:nginx-mod-http-geoip-1.12.2-3.el7.x86_64                                                      2/2
警告: ファイル /usr/share/nginx/modules/mod-http-geoip.conf: 削除に失敗しました: そのようなファイルやディレクトリはありません
  検証中                  : 1:nginx-all-modules-1.12.2-3.el7.noarch                                                         1/2
  検証中                  : 1:nginx-mod-http-geoip-1.12.2-3.el7.x86_64                                                      2/2

削除しました:
  nginx-mod-http-geoip.x86_64 1:1.12.2-3.el7

依存性の削除をしました:
  nginx-all-modules.noarch 1:1.12.2-3.el7

完了しました!

Macで最強のテキストエディタ

日本語に最適化されているテキストエディタ。Windowsならば秀丸エディタの一択でしょう。秀丸エディタは最高の作品です。

ところが macOS で使えるテキストエディタは?となると、テキストエディタは数あれど、どれも帯に短し襷に長し、しっくり来るものが今ひとつありません。

テキストエディタ流民となっている人々(もちろん自分を含め)へテキストエディタ比較をまとめてみます。

ちなみに私が最強とするテキストエディタの条件ですが

  • 起動が早い
  • 検索が日本語に最適化されている
  • 上下カーソル移動が1行ずつ

という感じです。

mi テキストエディタ

まずは mi テキストエディタ。
総じて満足度は高かったのですが、不満点は以下の通りです。

1.起動がもっさりしている。Mac Pro (Late 2013) 3.7 GHz Quad-Core Intel Xeon E5、メモリ32GB という悪くはないハードウェア環境で、2回目起動が 約2.8秒。クリックして一息ついてようやく起動という感覚。ちょっとイラっとする時間です。Sublime Text と比較してみてください。Sublime Text の高速起動には感心させられます。恐らく Sublime Text はネイティブコードで書かれているのだと思います。

2.次に上下カーソル移動が5行単位に画面がジャンプして視点のフォーカスが一瞬迷子になります。1行移動したら1行遷移する方が視点が迷子にならず快適になるのに残念です。

3.これもカーソルがらみですが、ページアップ・ダウンで画面遷移したのに、カーソル行がついてこないので、上下左右キーを押すと元の行にまた戻ってしまいます。UIとしてそれを望んでいるユーザは居ない気がします。

4.検索ボックスでhome/endキーが文字化けします。homeキーで行頭・endキーで行末に慣れているエンジニアにはちょっとしたストレスです。これは仕様ではなくバグのはずなので、早期の修正が望まれるところです。

5.また検索ウィンドウ関連ですが、1回目の検索で空振り(一致キーワードが無かった)の時、ウィンドウが勝手に閉じられてしまって、わざわざ開き直さなければなりません。バグなのか仕様なのか分かりませんが。。。

エンジニアにとってテキストエディタは極力ストレスフリーで、コードを書く以外に無駄なキー操作は極力避けたいものです。それが達成されているなら機能なんて最小限でも構わないくらいです。

近年、テキストエディタが統合開発環境(IDE)化している傾向にありますが、IDEはIDE、テキストエディタはテキストエディタのメリットがあるのですから、それぞれ棲み分けしているのが最善だと思います。

IDEは多機能高機能なので、多少のもっさりは許容できますが、テキストエディタは軽量快速が最上ではないでしょうか?

以上、不満点を挙げましたが、無料でテキストエディタを配布していただいていることへの敬意を忘れてはいけません。作者さんには感謝しています。

そもそも私の Macテキストエディタ探しの旅は Sublime Text, Atom, Cot Editor, Brackets, BBEdit, TextWrangler などを試した後に mi テキストエディタへ辿り着いたのですが、やはり上記不満点で離脱しようと思います。

離脱先は、Visual Studio Code にしました。マイクロソフト謹製でまたもやIDE系なので、もっさりしていそうだという先入観で今まで避けていたのですが、試しに使ってみて意外と軽快さにビックリ‼️
以下、テキストエディタに Visual Studio Code を採用した理由を列挙します。

1.起動が比較的軽快、前述したマシン環境と同じ条件で計測したところ 2.1秒でした。mi テキストエディタより 0.7秒速いだけなのですが、率で表現すれば0.75倍=25%速度向上です。

2.上下カーソルはちゃんと1行ずつスクロールして視点が迷子になりません。

3.ページアップ・ダウンで移動してもカーソル行が付いて来ます。ページダウンで100行まで移動し、そこから下カーソルを押しても101行を指します。

4.検索窓でキーワードを入力すると、リアルタイムでジャンプしてくれるので、エンターキーを押す必要がありません。無駄なキーストローク1回分を省略できるのは助かります。

など、mi テキストエディタの不満部分がとりあえず、すべて解消されているので、暫くは Visual Studio Code を使ってみます。また不満点などあれば記事にします。

あとは Sublime Text くらいの高速起動ができれば百点満点なのですが、総合点では今の所、最善な選択かと思います。


メールアドレスの漏洩状態を確認する方法

Adobe や Dropbox をはじめ、過去に幾つもの有名サイトから情報漏えいが繰り返されてきました。

メールアドレスが漏れればスパムメールが送られてきます。スパムメールは、違法ドラッグの販売や詐欺メール、ウイルスを仕込んで来るなど、悪質なメールも少なくありません。

さらにパスワードが漏洩すれば、同じパスワードを使っている他の漏洩していないサイトにまで侵入されることも発生します。これがネットバンクだったり、ショッピングサイトだったら、実際に資産の危険にまでなるのです。

パスワード設定の原則は、サイト毎に個別のパスワードで設定することですが、中々そうもいかないと思います。最近は二段階認証を導入するサイトも増えているので、もし利用中のサイトに二段階認証機能があるなら積極的に利用しましょう。

さて、自分のメールアドレスやパスワードが漏洩しているかのチェック方法ですが、下記サイトで確認することができます。

ブラウザを開発している Firefox が提供しているものなので、安心して使えます。調査したいメールアドレスを入力するだけでOK。そうすると、もし漏洩に該当していれば、下記のように表示されます。

Adobe からの情報漏洩

これは Adobe 社に登録した情報が漏洩しているということです。Adobe は 2013年10月に1億5244万もの大規模漏洩していますが、残念ながら私のメールアドレスは、この事件の被害者になっていました。

そして、漏洩した情報は、

・メールアドレス
・パスワードヒント(親の名前は?など)
・パスワード
・ユーザ名

ということです。もう一切合切ですね。これを使えば、他のどのサイトでもログインできてしまいます。大変危険な状況です。

もし、残念ながら漏洩している結果となった場合は、あなたが登録した他サイトのパスワードをすべて変更すべきです。

どれだけ複雑なパスワード、例えば「ji7Th_4a90sKl*67%」など設定していようが、漏洩したら何の防御力もありません。そして、どんなサイトでも漏洩するだろうというつもりで登録するしかありませんが、自己防御として、

・登録サイト別にパスワードを決め、同じパスワードを使いまわししない
・二段階認証が備わっているサイトなら必ず二段階認証を使う

これが大事です。


LG 27UK850 と Dell U2718Q の比較

27インチ 4Kディスプレイモニタ。LG 27UK850 と Dell U2718Q の比較です。

LG 27UK850-W Dell U2718Q
国内発売日 2018.2.14 2017.7.14
実売価格(2018.06.21現在/Amazon/税込み) 74,331円 62,982円 (-11,349)
解像度 3,840 x 2,160 (4K) 3,840 x 2,160 (4K)
筐体寸法(スタンド除く) 612 x 375 x 45 mm 611 x 356 x 49 mm
重量(スタンド除く) 4.8 kg 3.7kg
パネル製造元 LG Display 社 LG Display 社
パネル方式 AH-IPS IPS
パネル表面加工 ノングレア(反射防止) ノングレア(反射防止)
コネクタ USB Type-C x1
DisplayPort x1
HDMI x2
USB 3.0 x2
3.5mmステレオ出力 x1
MiniDisplayPort x1
DisplayPort x1
HDMI x1
USB 3.0 x 2
USB 3.0 (2.0A) x 2
USB (UP) x1
3.5mmステレオ出力 x1
コネクタ位置 背面 下面、側面にUSBx2
内蔵スピーカ 5w x 2 N/A
消費電力 32W (最大 50W) 30W (最大 99W)
メーカ保証期間 3年間 3年間
HDR HDR10 HDR10
バックライト WLED WLED

まだ LINE を使っているの?これからは Signal でしょ?

いまだに日本で多くの人々が使っているチャットアプリ「LINE」。
実はこれ、ネットセキュリティ専門家からすれば、まったく推奨できません。理由はこうです。

LINEがセキュリティ面で非推奨の理由

  1. ネットワークの秘匿性、漏洩防止にはエンドツーエンドで暗号化すべきですが、LINEはそれがされていません(2018.5 現在)
  2. LINE のサーバは韓国のソウル市などにあり、メッセージデータは最終的にすべて韓国内のサーバに保管されています。日本国内にあれば安心で韓国内なら心配というわけではありませんが、定義上、戦時中(休戦中)の国にデータを置くのはカントリーリスクとなります。特に公務員(特別職を含む)は使うべきではないでしょう。
  3. LINE は公的機関へのデータ供与ポリシーが明確ではありません。基本は裁判所命令(令状など)があってはじめて供与すべきですが、あまりにも簡単にユーザの通信内容を公的機関としても渡すべきではないのは、通信の秘密の権利が明治憲法(大日本帝国憲法)時代から存在していた事を考えれば当然のことです。韓国警察、韓国政府にも簡単に渡して欲しくないというのが、ユーザの本音でしょう。

ならばどのアプリでチャット&無料通話すれば良いか?

LINE がダメなら、何を使えば良いというのか?
セキュリティ面で推奨できるチャットツールは、下記3つが挙げられます。

  • WhatsApp (米国)
  • Telegram (ロシア)
  • Signal (米国)

これらはどれも一定の安全性が担保されています。いずれを使っても LINE よりは高セキュリティです。

これら3アプリは、そもそもサーバにメッセージ内容を保管していないので、運営主体から外部へメッセージ内容を提供することができません。

ネットワーク経路上では暗号化して通信しているため、第三者が傍受し、解読・盗聴する事はほぼ不可能です。

ハイセキュリティ・チャット御三家の中で一番良いのはどれか?

結論から述べると一番安全なのは Signal です。

WhatsApp, Telegram より、さらに高いネットワークセキュリティがなされていて、Signal はエンドツーエンドの暗号化が完璧です。最上位のセキュリティです。

Telegram は、ロシア政府より暗号鍵を激しく要求されていて、もし暗号鍵がロシア政府に渡されれば解読可能になります。逆に言えば、今のところロシアの政府・諜報機関でも暗号鍵が無ければ解読不可能ということです。しかし、シークレットチャットを使用していない場合は、セキュリティが低くなるという落とし穴があります。そもそも暗号化に独自方式の MTProto を使っていますが、一部のセキュリティ研究者が MTProto の理論的な弱点を論文発表していて、議論の分かれるところとなっています。

WhatsApp は、Facebook社が所有者です。先日のデータを第三者へ提供していた問題などもあり懸念はゼロではありません。メッセージ内容は暗号化で秘匿されているものの、メタデータを収集していることは明らかにしています。メタデータとは、何時何分に誰と誰が通信していたという使用状況やログ情報(使用OS、ブラウザ、IPアドレスなどを含む)を指します。

Signal は、オープンソース・プロジェクトで開発しており、通信基盤となっている Signal Protocol が信頼性が高いと国際なセキュリティ研究チームから評価されています。(参考記事。英語

英オックスフォード大、豪クイーンズランド工科大など、セキュリティ専門チームは、Signal Protocol を検証した結果、大きな欠陥は見られなかったと表明しました。

Signal は、非営利団体が運営していて、基本的に寄付や助成金で成り立っており、LINE、Facebookメッセンジャー、Google Allo などと違って広告は一切表示されません。

さらに Signal は、ユーザーの交信データをサーバに保存しません。先日、FBIが裁判所からの令状を示し、Signal サーバの情報開示を指示しましたが、FBIが得た情報は、ユーザのアカウント作成日と、最終接続日時だけでした。(参考記事。英語

Signal は、裁判所が発行した令状が無ければ捜査機関への情報開示もしないし、開示したところで、ほぼ何の情報も持っていない事がわかります。

もしあなたが Signal の運営団体に寄付をしたい場合は、下記サイトからできます。

報道の自由財団
https://freedom.press/crowdfunding/

まとめ

中高生や大学生が個人として「今日どこへ遊びに行く?」とか「今、ラーメン食べてる!」など他愛のない会話なら LINE でも問題ないでしょう。仮にデータが漏洩したところで実質的な損害は無い筈です。

しかし、会社やPTAなどの連絡網で LINE を使っているのであれば、あまりにも無防備です。もう少しネットセキュリティを意識しましょう。企業の宣伝広告活動として LINE で発信するのは良いですが、社内の連絡に LINE はセキュリティ的に不適切です。

Signal であれば、業務連絡など大事な情報のやりとりでも安全にメッセージを送受信する事ができます。

もし企業、団体、官公庁で LINE を使っているのであれば、直ぐに Signal へ移行してリスク回避することをお薦めします。

Signal のダウンロード

ダウンロードサイトは下記となっています。iPhone、Android スマホはもちろん、Mac、Windows 用のデスクトップアプリもあります。

Signal は写真や動画の添付、Signal 同士の無料通話も可能です。

Signal >> Download Signal

App Store Preview
Signal