月別アーカイブ 4月 2018

著者:ym

海賊版サイトのブロッキング要請方面

海賊版サイトへのブロッキング要請。

ブロッキングが憲法が禁じる検閲行にあたる恐れがある行為。

コンテンツブロック行うISPの立場となったときには、憲法に反する行為を行う事となるし、監視する必要がある。そして運用の手間が増える。

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

FuelPHPでNotice例外の表示を消す方法

FuelPHPはデフォルトで、すべてのPHPエラーを表示するように設計されています。

FuelPHP は、古い手続き型の関数からの(例外でなない)PHP エラーに遭遇した場合、デフォルトの PHP の振る舞いを変更します。 FuelPHP は、致命的でない PHP エラーに遭遇した場合、処理を継続せず、これらのすべてのエラーに対し PhpErrorException をスローします。 すると、以前は無視していたような E_NOTICE といったエラーもすべて解決することを求められます。 非プログラマが作成したビューファイル中の構文エラーといった、PHP のエラーを捕らえることも同時に可能になります。

つまり、PHP上で作法通り(例えば空の変数を参照しない、など)プログラムしていないとNoticeエラーでバシバシ怒られます。
綺麗なプログラムを描きたい場合は非常に有用です(し、可能な限り修正すべきです)が、既成のライブラリを用いたり、開発期間が短かかったり、などといった場合はNoticeエラーが表示されるのは非常に困ることがあります。

そういう場合にNoticeエラーを無効化する方法を紹介します。

自分の知る限り、無効化する方法は2通りあります。

一つ目は、.htaccessでPHPのNoticeエラーを無効化する方法です。
fuelの場合、ドキュメントルート/public/.htaccess に次の設定を加えることで設定できます。

php_value "error_reporting" "E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR"

この一行を、.htaccessの末尾に追加すれば設定完了です。
もう一つの方法は、fuelPHPの設定ファイル fuel/app/config/config.php に設定を記述することでnoticeを無効化できます。

アプリケーション設定 – FuelPHP

FuelPHPは”規定より設定”という思想で開発されており、かなり自由にコーディングすることができます。
最低限のルールの土台はfuel、それ以降の細かい部分は自分で作りこむことができるのがfuelの魅力ですね。

フレームワーク何を使うか悩んでいる方は是非一度試してみてはいかがでしょうか。

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

【MySQL】SELECT文で取得したデータを外部ファイルに書き込む方法

気付けばこの投稿が記念すべき100記事目でした。
いつも必死に書いていましたが、案外100記事ってあっという間ですね。

 

さて今回は、MySQLでSELECT文で取得したデータを ○○○.csv のような形式で、外部ファイルに書き込む方法です。
すぐやり方を忘れる or 定型文としてメモしてあるのをコピーして使っているだけなので、私のための備忘録としてまとめます。

select * from [テーブル名] INTO OUTFILE '[ファイル名]' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';

こちらを実行すると、指定したファイル名(例えば data.csv など)で新しくファイルが作られ、そこに抽出したデータが書き込まれます。

具体的には、まず「INTO OUTFILE [ファイル名]」でデータをファイルに書き込みます。
なお、既にあるファイル名を指定することはできません。
次に「FIELDS TERMINATED BY ‘,’」で、抽出したデータをカンマ区切りに変更します。
OPTIONALLY ENCLOSED BY ‘”‘」では囲み文字を指定でき、抽出したデータを指定した文字で囲むことができます。
今回は、「”(ダブルコーテーション)」でデータを囲みます。

また、サンプルコードでは指定しておりませんが、改行コードを指定することもでき、「LINES TERMINATED BY ‘\r\n’」を使います。
が、エクセルなどで開くと、いい感じに整形してくれるので、あまりこのオプションを使うことは少なそう。

 

データベースのデータをCSVファイルとして抽出できると、あとから表でまとめるときにとても楽なので、このオプションはとても重宝しています。
が、初めて使ったときは変な風に指定してしまい、おかしな形式になってしまったので、慣れるまではサンプルコードをコピー&ペーストした方が無難ですね。

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

NMEAについてざっくり

NMEAを詳しく知りたい方のための資料として私がおすすめする資料はu-bloxの公開しているu-blox 8 / u-blox M8 Receiver Description Including Protocol Specificationのpp.105~127あたりです。このふんわりした小話よりもそちらでがっつり読み込んだ方がためになると思います。私は検索がうまくできませんでしたがtrimbleのhelpなども詳しいです。
NMEAとはGNSSの受信したデータを出力する複数のプロトコルをまとめた呼称です。NMEAは正式にはNMEA0183といい、団体であるNMEA(この記事中に出てくるこれ以外のNMEAはプロトコルNMEA0183のことを指した語です)が制定したプロトコルです。GNSS受信機はGNSS衛星から送られてきた信号を元に自らの位置などを推定しています。この推定された位置などの便利そうな情報をいい感じにまとめるプロトコルがNMEAになるわけです。ほとんどのGNSS受信機はこのNMEAに従ってデータを出力します。このNMEAには様々な種類があります。その中でも使われる頻度の高いGGA、GSA、GSV、RMCについてほんのり紹介します。実際に受信機から送られてくるデータを読んだことがある人はGGA、GSAでなく$GPGGA、$GNGSAなどの頭文字を持ってデータが送られてくることを知っているでしょう。NMEAは受信機によってGPGGA、GNGGAと頭文字が変わります。この頭文字は受信機が対応する衛星に従って付けられています。
GGAはざっくりと今の受信機の状態が分かるプロトコルです。位置、使用衛星数、精度低下率などがわかります。

$xxGGA,time,lat,NS,long,EW,quality,numSV,HDOP,alt,M,sep,M,diffAge,diffStation*cs<CR><LF>

GSAは誤差について詳しく記述されたプロトコルです。使用衛星、精度低下率について詳しく記述されています。

$xxGSA,opMode,navMode{,sv},PDOP,HDOP,VDOP,systemId*cs

GSVはGNSS Satellites in Viewの略称であり可視状態にある衛星について詳しく記述されています。

$xxGSV,numMsg,msgNum,numSV,{,sv,elv,az,cno},signalId*cs

RMCはRecommended Minimum dataとされています。RMCに大体のGPSに時刻、位置、速度といったGNSSに要求されている結果が記されています。

$xxRMC,time,status,lat,NS,long,EW,spd,cog,date,mv,mvEW,posMode,navStatus*cs
  • この記事いいね! (0)
著者:ym

スマートフォン機種変

スマートフォンを機種変しました。

電池の持ちが悪くなって来てたのと。電池が 60 % 程度で突然電源が落ちる劣化電池の持病が頻発する様になったのがきっかけ。サーバ監視や、VPN、リモートSSH操作端末、SIPボタン電話、など非常に重要な端末化しているので、結構困るんですよね。

ちょうど HTC U11 の SIM フリー・Felica・NFC 対応の赤色限定モデルが予約発売開始されていたのですが、高くて手がでませんでした。

なので、ヤフオク。

IMEIだけ◯印のを確認して、8000 円で今と同じ機種の色違い中古を購入しました。

いままでは HTV31 の紺色使っていましたが、今度は HTV31 の赤です。

 

とどいたのは結局SIMロック状態品でした。こまったことに、先日から各キャリアが SIM フリー化対策で、自信の購入履歴が無いと SIM フリー化はしてくれなくなったのでね。どうにか root 化、SIM フリー化出来たので移行無事完了!

さて、古い機種側のバッテリー交換の為に、分解にはいります。

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

人工知能の父「アラン・チューリング」をもっと知りたい

最近AmazonPrimeで『イミテーション・ゲーム/エニグマと天才数学者の秘密』という映画を見ました。
最初はミステリー的な感覚でダウンロードしたのですが実際に見たら「アラン・チューリング」を題材にした映画でした。
エニグマとタイトルにある段階で気づけよ・・・

アラン・チューリング
アラン・マシスン・チューリング(Alan Mathieson Turing、英語発音: [tjúǝrɪŋ]〔テュァリング〕, OBE, FRS 1912年6月23日 – 1954年6月7日)はイギリスの数学者、論理学者、暗号解読者、コンピュータ科学者。
https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%A9%E3%83%B3%E3%83%BB%E3%83%81%E3%83%A5%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0

エニグマ (暗号機)
エニグマ (Enigma) とは、第二次世界大戦のときにナチス・ドイツが用いていたことで有名なローター式暗号機のこと。幾つかの型がある。その暗号機の暗号も広義にはエニグマと呼ばれる。
https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%8B%E3%82%B0%E3%83%9E_(%E6%9A%97%E5%8F%B7%E6%A9%9F)

ミステリーを見るつもりだったのでしたがアラン・チューリングの事でしたのでしっかり見る事にした結果、ITに従事している自分としては非常に興味深く見てよかったと思える映画でした。
かなり現実に忠実に作られており、どれだけチューリングが「bombe」(映画での名前はクリストファー)を作ることに苦労と時間を重ねて来たかが物凄くよくわかります。
今ではCPUやらGPUで高速演算できる時代ですが「bombe」が無ければ今言われている人工知能は無かったかもしれません。
是非ともITに従事している方は『イミテーション・ゲーム/エニグマと天才数学者の秘密』を見ることをお勧めします。

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

screenとshutdown

 2018/4/16本日、screenからexitするつもりがscreen中でshutdownコマンドを実行してサーバを落とす事故を起こしてしまいました。そんなわけでlinuxのscreenコマンドとshutdownコマンドについて書くことにしました。screenについてはこちらの記事こちらの記事で詳しく話されています。
screen
 screenは端的に言えば別画面を作るコマンドです。ターミナルと同じ機能を持つ別のプロセスが走り出すような感じです。
参照:SCREEN Quick Reference
よく使う操作

新たにscreenを作る screen
名前を付けてscreenを作る screen -S <name>
現在存在しているscreenをリストアップ screen -ls
指定した<id|name>のscreenに移動 screen -rx <id|name>
screenを動作させたまま抜け出す screen中でCtrl-a d
screenを消して抜け出す screen中でexit

 
shutdown
 シャットダウンを行うコマンドです。ただ命令するだけでも問答無用でshutdownコマンドが実行され出しますがコンピュータのシャットダウンが行われるまで多少猶予があります。CentOS7.4.1708のデフォルト設定におけるオプションなしの猶予は1分でした。特に覚えておきたい大事な操作は’shutdown -c’で実行できるshutdown処理の中断命令です。shutdownはCtrl+zやCtrl+cを打ち込んでも走り続けるため、シャットダウンを中止するためにはshutdown -cを入力する必要があります。一応shutdownを実行した際に「use ‘shutdown -c’ to cancel」と文面がでますが、焦り出す上に英語に親しくない私みたいな人は読み取れないことがあると思います。気を付けましょう。

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

AWSの料金をシンプルに計算してくれるサイト

AWSの料金計算って、わかりづらくてめんどくさい…
なんて思っている方結構いると思います。

そんな方にピッタリなサイトを発見。
その名も

ざっくりAWS

現在8個のサービスの見積もりを出すことができるようです。
今回は試しに、EC2の方を試してみます。

個人の小規模なサイトを想定してこんなもんかなーと入力してみました。

おおお!料金が出た!
値を入力してくと自動で合計額が増えていく仕組みです。

AWSのシステムを把握していない初心者にとっては、これぐらいシンプルだとわかりやすくてありがたいです。
ただ、シンプルということもあり、それぞれのサービスで計算できないオプションがあるようで、入力画面の下側に注意事項として書かれています。
オプションサービスを使う方は公式の料金計算ツールを利用しましょう。

なお、こちらのサービスですが、作者の方がQiitaに作り方を掲載しています。
AWSの料金を「ざっくり」計算できるサイトを作るぞ – Qiita

ちなみに、こちらのサイト、イースターエッグも仕込まれているようです。
興味のある方は是非探してみてはいかがでしょうか。

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

DoT してみる

先日の DoH は、DNS over HTTP でしたが、DoT は over Twitter 。

DNS over Twitter も始めてます。

@1111Resolver に対して、メンション付きでコマンドツイートすると IP アドレス返してくれる様です。

で、? なサービスですが、簡単で広告で良い。

DNS over Twitter

DNS over Twitter

ドメイン名をメンションするとIPアドレスを返すTwitterアカウント「@1111Resolver」、Cloudflareが開始 – INTERNET Watch

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

アプリGNSS Viewについて

GNSS Viewは、指定した時間や場所におけるみちびきやGPS、GLONASSなどの測位衛星の位置を知ることができるWebアプリです。(みちびきより)
GNSS Viewというアプリを見つけましたが、技術者以外の人も対象にしているような作りのサイトで説明がろくになかったのでざっくりと機能と使えそうな用途の例の説明させてもらいます。
web版GNSSViewの全体図が下図です。

 BASE CONDITIONについてはほぼ割愛。英語が読めれば多分大丈夫です。GPS/QZSS WeeksもMaskAngle操作してみればわかるでしょう。 レーダ部を飛ばしてSELECT SATELLITE部。これはBASE CONDITIONとSELECT SATELLITEの設定でレーダー部をいじるためです。チェックボックスは衛星の種類です。自分の知りたい受信機に対応する衛星を選ぶとよいです。GPSはほぼすべての受信機で対応しています。ついでGLONASSです。GNSSを謳う受信機でしたらすべてに対応していることもあります。ラジオボタンは発信している信号の種類です。下の方ほど多種で精度の良い信号を持つ衛星になります。
 レーダー部は先に述べた通りBASE CONDITIONとSELECT SATELLITEの設定で動きます。上部のレーダは見たまま設定時点で見える衛星の配置です。色が衛星の種類を区別しています。TimeLine、Visible GNSSも見たままです。HDOP、VDOP。これはGNSSの精度低下率です。もしこの条件でGNSSによる測位を行ったら、という時の精度の目安になります。これらが0に近づくほど良好な受信環境になると予想できるわけです。なぜ実際に受信を行っていないのに、精度低下率が出せるのかというと衛星の散らばり具合によって算出しているからです。最近、3DMAPによる工事などが話題に上ったりもします。3DMAPによってマルチパス、可視衛星の精密な予測ができることによってより優れたHDOPに成り代わるものが現れるかもしれません。

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