月別アーカイブ 7月 2018

takahashi 著者:takahashi

恐ろしすぎる”SIMハイジャック”の恐怖

ネットニュースの記事で、こんなニュースが流れてきました。

電話番号が奪われてしまうSIMハイジャックの脅威とは? – Gigazine

によると、アメリカではある日突然、SIMカードが”乗っ取られて”しまう”SIMハイジャック”なるサイバー攻撃が増加しているようです。

上記の記事によると、アメリカのMNOであるT-Mobile社を利用するユーザーの端末のもとに、ある日突然SIMカードが更新されたというメッセージが届き、それ以降その端末がモバイルネットワークへ接続不可能となってしまったとのこと。
ユーザーの家族がユーザーの番号へ電話をかけたところ、全く知らない人物が電話に出て、SIMをハイジャックしたことを暴露した…という流れ。

被害にあったユーザーは電話番号で認証情報を連携していたSNSや各Webサービスのアカウントをごっそり乗っ取られてしまったそうです。

そしてこの原因が驚くことにキャリアの本人確認不足。
その気になればだれでも手に入ってしまう情報のみで本人を断定し、まったくの第三者に対して、SIMを再発行して渡してしまったようです。

こちらの記事も、同様の被害にあい、仮想通貨を奪われてしまったユーザーのケースです。

ハッキングで仮想通貨を盗まれた海外の投資家がTモバイルを告訴!なぜ仮想通貨取引所ではなく携帯電話会社を訴えたのか、詳細まとめ! – やさしいビットコイン入門講座

こちらの記事では何故か訴訟した側を叩くような流れになっていますが、本人確認を怠った時点で明らかにT-Mobile側の落ち度であり、多数の被害者がいるにも関わらず今のところ対策が注意喚起のみという、通信事業者としてあり得ない事態となっています。

最近のサイバー攻撃は、システムからそれを管理する”人”を対象としたものにシフトしています。システムの技術的な”あら”を探すより、それを管理する管理者を騙した方がはるかに簡単だからです。
管理者が”クラッキング”されている現状が続く以上、どんなに堅牢なシステムを築いたところで全くの無意味となってしまうでしょう。

ちなみに、日本国内では法律で厳密な本人確認が義務付けられており、手続きを行う際は必ず身分証の原本が求められるようになっているなど、しっかりとした個人認証が行われています。

携帯電話の犯罪利用の防止 – 総務省

失敗を犯した存在に後ろ指を指すのは簡単です。
モバイルネットワーク事業者に限らず、何らかのサービスを提供している立場に自分自身がいる場合は、本人確認は厳密に行うように心がけていきたいですね。

  • この記事いいね! (0)
takahashi 著者:takahashi

PostgreSQL “対向(peer)認証に失敗しました” エラーが出るときの対処法

PostgreSQLでちゃんとユーザーにログイン権限とパスワードを設定しているのに、

psql: FATAL:  ユーザ "postgres" で対向(peer)認証に失敗しました

のようなエラーが出てしまった場合の対処法です。

そもそもPeer認証とは

CentOS6でPostgreSQLインストール – My Octopress Blog

Peer認証とは、カーネルからクライアント上のシステムユーザ名を取得し、PostgreSQLデータベースユーザと同一である場合のみ接続が許可される仕組みです。

つまり、Postgresql内のユーザーとUNIXユーザで、ユーザー名が一致してさえいれば認証情報なしでログイン出来てしまう仕組みです。

パスワードを打たなくてもいいのは楽ですが、例えばユーザーごとに権限を変えて置いて、場合によって使い分けたいときや一時的に別のpsqlユーザーとしてログインしたいときなどはかなりやりづらいですし、psql側でユーザーを作る際に、同名のUNIXユーザーも追加する必要が出てくるのでとてもめんどくさいです。

この挙動を変更するには、pg_hba.conf (だいたいpsqlのデータフォルダか/etcにあるはずです。)を編集します。
ファイルを開くと

#ローカルで動いているpsqlへアクセスする場合
local   all             all                                     peer
#他のクライアントからpsqlへアクセス可能にする場合(例)
host    all             all             127.0.0.1/32            peer

などとなっているか、あるいはコメントアウトされているかと思いますので、これを書き換えます。

#ローカルで動いているpsqlへアクセスする場合
local   all             all                                     md5
#他のクライアントからpsqlへアクセス可能にする場合(例)
host    all             all             127.0.0.1/32            md5

パスワード認証させたい場合は”peer”の部分を”md5″に変更して保存し、psqlのデーモンを再起動させます。

これで再度ログインを行えば、今度はパスワードを求められ、正しい情報を入力すればどのユーザーでもログインできるようになるかと思います。

  • この記事いいね! (0)
村上 著者:村上

【Excel】関数のエラー一覧

今回は、エクセルで関数を使用しているときに発生するエラーについて。
いくつか種類があるのですが、どれがどんなエラーを表しているのか少しわかりずらいのでまとめてみました。

よく見るエラーはこのあたりだと思います。

  • #DIV/0
  • #VALUE!
  • #N/A

今回参考にさせていただいたサイトはこちらから。

【Excel】セルに「#DIV/0!」や「#VALUE!」と表示された!エクセルで数式は正しいはずなのにエラーが出る理由と対処法
https://forest.watch.impress.co.jp/docs/serial/exceltips/1118749.html

「Excelの便利機能活用術」
IFERROR関数で「#N/A」や「#DIV/0」などのエラーを非表示にする

http://www.nec-nexs.com/bizsupli/useful/excel/19.html

 

さて、これらによると、エクセルの関数のエラーにはそれぞれ下記のような意味があります。

エラー エラー内容
#DIV/0! 数値ゼロ (0) で除算
#VALUE! 数式に文字列が含まれている
#N/A セル参照が正しく行われていない

こうしてみると、#DIV/0! は除算記号の「/」と数字の0があるので、なんとなくの意味はつかめますね。
が、#VALUE!#N/A に関しては、これだけだと意味がわかりにくいです。
ちなみに、#N/A は私はよく VLOOKUP 関数を使うときに発生させていました。

 

ということで、エクセルの関数使用時にエラーが発生した時は、まずエラーを検索することをおすすめします。
ただやみくもに、入力値を1から見直すよりも、手掛かりが得られて、早期解決につながるかと思います。
まあ、どうしてもわからない場合、最初から入力し直した方が早い場合もありますが…それは最終手段として取っておいてください。

  • この記事いいね! (0)
著者:杉浦

RTKLIBライブラリのSTRSVRでGNSS受信機の信号データを保存する

 RTKLIBはRealTimeKinematic測位を行うことを主な目的としたライブラリです。このライブラリの中には任意の通信方式の信号を任意の通信方式の信号として転送するSTRSVRというアプリケーションが含まれています。この記事ではrtklib_2.4.2_bin.zipに入っているSTRSVRを用います。STRSVR.exeはbinフォルダ直下に入っています。これを起動すると次の様な画面が出ます。初期状態Outputがどれも暗いですが、Typeを指定することで明るくなります。

 例としてhamamatsu-gnssから配信されるテスト用移動局データをファイルに保存してみます。
 StreamのInputにテスト用移動局データを、Outputにファイルを指定していきます。TypeはInput側をNTRIP Client、Output側をFileにします。Ntrip Casterで配信されているデータはType NTRIP Clientで受け取ります。

 Input側のOptをクリックして、詳細設定をします。

 hamamatsu-gnssの下の方に記述されている通りにデータを入力します。hamamatsu-gnss.org:2101は:より前がNTRIP Caster Hostの欄に、:より後がPortの欄に入ります。

 File側のOptをクリックして、詳細設定をします。

 ファイルの保存場所を設定するのみです。…ボタンでエクスプローラを開いて指定できます。
 Startボタンで保存を開始します。Stopボタンで信号の受け取りを打ち切ります。これで保存されます。
 
 u-blox Log FileはRTK測位やu-centerをはじめとした様々なソフトウェアに用いることが可能なファイル形式です。

  • この記事いいね! (0)
村上 著者:村上

【PHP】「Parse error: syntax error」の対処法

学生さんが書いたプログラムを修正する機会があり、その時に遭遇したエラーです。
分かってみればとても初歩的なミスだったのですが、その時は気が付くのに時間がかかってしまいました。

参考にさせていただいたサイトはこちらから。

「Parse error: syntax error」とは? \ PHPプログラミングの教科書 [php1st.com]
https://php1st.com/1263/

 

さて、今回のエラー「Parse error: syntax error」ですが、こちらは構文エラーが原因です。
入力ミスなどで、PHPの解釈(分析・翻訳)がうまくいかなかったときに発生します。

なお、今回のエラーは全角スペースが含まれていることが原因でした。
使用しているエディタが全角スペースと半角スペースが少しわかりにくい表示だったので、気が付くのが遅くなってしまいました…。
半角スペースに直したところ、無事問題なく実行できました。

で、このエラーですが、エラー文の最後に行数が表示されるのですが、この行数は、必ずしもエラーが発生した行の位置を示しているとは限らないとのこと。
私の遭遇した状況では、エラー文で示された行数と、実際ミスをしていた行数が一致していましたが、場合によっては、表示されている行数よりも上でエラーが発生していることもあるようです。
なので、エラー文の行数はあまり信用しないほうがよさそうです。

 

以上、初心者がやらかしがちなPHPのエラーでした。
今回の状況も踏まえまして、特に初心者の皆さんは今使っているエディターの半角スペースや全角スペースをきちんと可視化しておくことをおすすめします。

  • この記事いいね! (0)
takahashi 著者:takahashi

SDカード規格の違い

最近カメラなどをはじめとして、さまざま機器で使われているSDカード。

実は複数の規格があるのをご存知ですか?
SDカードには実は容量に合わせた3種類の規格と、2種類の転送スピード規格があります。



SDカードの規格には、

SD
SD HC
SD XC

の3種類があります。
SDは128MBから2GBでファイルシステムのフォーマットはFAT16、
SD HCは4GBから32GBまでの範囲でFAT32、
そしてSD XCは64GBから2TBまで で、exFATを用いることになっているようです。

また、SD HC、SD XCについては下位互換性がなく、例えばSDにのみ対応している機器に
SD HCやXCを差しても、ファイルシステムに対応していないなどの理由で使えないことがあるようです。

一方こちらは速度の規格で、最近よく見かけるようになったUHS-Ⅰのマークです。
最低転送速度が10MB/sということで、ビデオカメラなどのデータ転送速度が求められる機器でも快適に使用ができます。

こちらはリーダ・ライタがUHS-Ⅰに対応してなくても使用することができます(ただし、転送速度はリーダ・ライタの性能が上限になります。)

最近のSDカードはUHS-Ⅰ対応の物がほとんどのようですが、安いメモリーカードの中にはまれにUHS-Ⅰに対応していない、遅いSDカードが混ざっていることもあるようなので、注意したいですね。

SD / SDHC / SDXCカードの仕様と互換性 – SanDisk

  • この記事いいね! (0)
著者:ym

分散ストレージとNFS

貧乏でも大容量のストレージを構築できる GlusterFS なのですが、いまいち使えない。

GlusterFS 標準の NFS も、Ganesha NFS も試したのですが、サービスが落ちて使えない状況。情報が少ないというより、不安定で使えないので情報が無いであろう。w

別の手段で iSCSI でブロック・ストレージとしてエクスポートを考え、FUSE マウントした領域にイメージファイルを作成し、iSCSI ターゲットとして共有したのですが、これもまたいまいち不安定。使えん状況です。

仕方が無いので更に情報をさがしていたところ tcmu-runner という GlusterFS API を使って iSCSI ターゲット化できるっぽいのを発見しました。ただこの tcmu-runner も情報が古いまま止まっているっぽい。

VMFS のブロック・ストレージが複数マウントしても壊れないことを知ったので、iSCSI でも良いですが、GlusterFS API を使って分散ストレージを iSCSI/NFS 共有をうまくする方法はないのだろうか?

  • この記事いいね! (0)
著者:杉浦

機械学習に用いる学習データの選定

 機械学習において学習、評価に用いられる学習データは出力結果の正しさ、出力までの計算時間に大きく関わります。学習データが小さすぎれば十分な正確さを持てず、大きすぎれば無用な計算時間が大量に増え、偏れば偏った結果しか出ません。
 学習データ数が増えるにつれて出力の正確さは増えます。増え方は対数に近く飽和が起きます。

 飽和している状態でさらに学習を行うのは時間の無駄です。正確さの増加量、飽和点は変数の数などのモデルの柔軟性によって大きく変わります。ディープラーニングの様な柔軟性が高いモデルを用いる場合、特に大量の学習データを用意する必要があります。近年はデータに対して自然にありえるであろう微細な加工を施すことで少ない学習データを大量の学習データをの様に扱う技術が生まれ始めています。
 機械学習の実行にかかる計算時間は学習データの数と項目数に大きく左右されます。計算量はデータ数と項目数の積になりがちです。これにより組み合わせ爆発同様の事態に陥ります。単純な繰り返しによる網羅はあっという間に破綻します。
 学習データの偏り方は学習データの母集団と目的の母集団のずれがバイアスとして現れます。通年の天気のデータを予測するために、夏の天気のデータのみを用いる様なものです。以前書いたアンケートのバイアスの話と同じです。

  • この記事いいね! (0)
村上 著者:村上

【アプリ】方向音痴のための道案内アプリ「Waaaaay!(うぇーい!)」

凄くユニークなアプリ名ですが、確かに迷う心配はなさそう。
協偶然見つけたアプリで、「99%迷わない!」というキャッチコピーに惹かれて思わずインストールしてみました。
なお、私はそこまでひどい方向音痴ではないはず…!

インストールはこちらから

・Android:https://play.google.com/store/apps/details?id=com.waaaaay&hl=ja
・iOS:https://itunes.apple.com/jp/app/waaaaay-%E3%81%86%E3%81%87%E3%83%BC%E3%81%84/id792381884?mt=8

 

起動してみると、まず現在地が表示されます。

なので、行きたい場所を検索するか、下の候補地から選択します。

今回は、浜松駅を選択してみました。

目的地のポップアップの「ここに行く」を選択すると…。

とてもシンプルに、進むべき方向と距離のみが表示されました!

地図が読めないとか、今どの方向を向いているかわからないというときに凄く便利ですね。
このナビの方法だと歩行時にしか使えなさそうですが、旅行の時の散策とかにぴったりだと思います。
極度の方向音痴や地図が読めない方は、是非インストールしてみてはいかがでしょうか。

 

なお、課金をすると、ナビ中の矢印がサンマにできるとのこと。
…なぜサンマ?

  • この記事いいね! (1)
takahashi 著者:takahashi

日本全国の神様の所在地が一目でわかるWebサービス”神さまマップ”

日本には古来より、”八百万の神々”というあらゆるものに神様が宿っている=無数の神様がいる、という考え方があり、いろんな神様を祀った神社が日本全国各地に存在しています。
神社によって祀られている神様もさまざまであり、どんなご利益があるのかも神社によってさまざまです。
そんな全国の神社の所在地や地域ごとの多さを、地図上から一目で確認できるサービスがニュース記事で紹介されていました。

全国の“神様分布”地図で一目瞭然 「神さまマップ」ホトカミが公開 – ITMedia

試しに神社が多そうな京都・奈良あたりを出してみます。

流石、赤くなっている場所が多いですねw

他の地域で神社が多そうなところも見てみます。
毎年10月には全国の神様が集まるという出雲大社がある島根県出雲市周辺。

神社が集中していることを示す赤い部分は少ないですが、出雲市周辺はしっかり赤くなっています。

そして意外だったのが首都圏。

かなり赤い地域が多いです。
首都は人だけでなく神様も集まっているようですね。

ちなみに、会社のある浜松市周辺ですが、

赤くなる程ではありませんが実は多くの神社があるんです。
ちなみに、位置情報ゲームのIngressも浜松市はそのポータルの多さから”聖地”と呼ばれることがあるようですが、

ポータルが多い理由もうなずけますねw

神さまマップ – ホトカミ

  • この記事いいね! (0)