PHPのvar_dump()の出力内容が省略されたら。。。

Written in 2018年04月27日 by | コメントする( 0件 )

PHPのvar_dump()で出力内容が省略されることがある。長ーいデータだったり、階層が深い配列だったり、要素数の多い配列だったり。省略されたくない場合は以下のように設定する。

ini_set('xdebug.var_display_max_children', -1);
ini_set('xdebug.var_display_max_data', -1);
ini_set('xdebug.var_display_max_depth', -1);

サーバ証明書の失効リスト(.crlファイル)をテキスト情報で得る

Written in 2018年02月05日 by | コメントする( 0件 )

サーバ証明書の失効リストを証明書情報に記載されているURLから.crlファイルでダウロードすることができる。これをダブルクリックするとchromeなどの機能でダイアログで失効した証明書のシリアルの一覧を閲覧できるが、検索もできなければコピペもできないので、大量にあるリストの中から該当のシリアルがあるかを確認するのが困難である。

その場合、Linuxのopensslコマンドでテキスト情報でリストを得ることができる。

openssl crl -inform der -in crlfile.crl -text > crl.txt

これで検索しやすい。

Arduino UNO互換機を安く使う

Written in 2017年11月10日 by | コメントする( 0件 )

Arduino UNOは純正品は2,000円以上する。

Arduino Uno Rev3 ATmega328 マイコンボード A000066

新品価格
¥2,660から
(2017/11/10 10:43時点)

私は当初、サインスマートの互換ボードとさまざまなモジュールやセンサーがセットになったセット購入したが、問題なく純正品と同様に使用できた。

サインスマート Arduino(Uno) をはじめよう互換キット 初心者専用Arduino基本チュートリアルプロジェクト付き! 十種類選択可! (19プロジェクト、1602 LCD、プロトタイプ シールド、MPU6050含む! )

今回はもっとも安く使いたいので、Easy World Mallの互換機を試してみた。中国から送られてくるので到着まで1,2週間かかるが安い。

EasyWordMall UNO R3開発ボード USBケーブル付属 Arduinoと互換

新品価格
¥458から
(2017/11/10 10:53時点)

試してみると、Arduino IDE でプログラムの転送ができない。。。 調べてみると、USB-シリアル変換チップが純正品やサインスマートのものはATmega16U2というチップが使われているが、このボードはCH340というのが使われているので、Win7ではドライバが自動インストールされず認識しなかったのだ。

以下のページからドライバー(CH341SER.ZIP)をダウンロードしてインストールすると、認識し、プログラム転送も成功し、動作した。

http://www.wch.cn/download/CH341SER_ZIP.html

安くArduinoできるのは魅力ですね。

Let’s Encrypt certbot-autoでlibaugeas0が古いと怒られる場合

Written in 2017年11月06日 by | コメントする( 0件 )

古いOSでLet’s Encryptを導入する際に、certbot-autoを実行する際に、libaugeas0とaugeas-lensesのバージョンが古いと怒られることがある。私の場合はCentOS6.2で出ました。

Could not choose appropriate plugin: The apache plugin is not working; there may be problems with your existing configuration.
The error was: NotSupportedError(‘Apache plugin support requires libaugeas0 and augeas-lenses version 1.2.0 or higher, please make sure you have you have those installed.’,)
The apache plugin is not working; there may be problems with your existing configuration.
The error was: NotSupportedError(‘Apache plugin support requires libaugeas0 and augeas-lenses version 1.2.0 or higher, please make sure you have you have those installed.’,)

この場合、rpmインストールされているaugeas-libsのバージョンが古い。

rpm -qa | grep augeas

CentOS6.5などでは、

augeas-libs-1.0.0-10.el6.x86_64

と出るが、6.2では、

augeas-libs-0.9.0-1.el6.x86_64

である。それで、このパッケージをアンインストールして新しいものをソースインストールする。その際、readline-develパケージが必要なのでインストールしておく。

yum erase augeas-libs

yum install readline-devel

mkdir /usr/local/src/augeas
cd /usr/local/src/augeas
wget http://download.augeas.net/augeas-1.6.0.tar.gz
tar -zxf augeas-1.6.0.tar.gz
cd augeas-1.6.0
./configure
make
make install

ライブラリは/usr/local/lib/ 以下に生成されるが、これではcertbot-autoがlibaugeas.so.0を見つけられないようなので、以下のようにシンボリックリンクを張る。私の場合は、64ビットOSなのでlib64以下に作成した。

ln -s /usr/local/lib/libaugeas.so.0 /usr/lib64/

これで無事、certbot-autoを実行できた。

mbed LPC824のファームウェアアップデート

Written in 2017年10月02日 by | コメントする( 0件 )

mbed LPC824のファームウェアをアップデートするには以下のページに従って行う。

https://os.mbed.com/teams/Switch-Science/wiki/Firmware-LPC824

Windowsでmbedとシリアル通信するドライバ

Written in 2017年10月02日 by | コメントする( 0件 )

Windowsでmbedとシリアル通信するにはドライバをインストールする必要がある。
MacやLinuxでは不要なようだ。以下のページからダウンロードする。
mbedをUSBに接続した状態でドライバをインストールする。

https://os.mbed.com/handbook/Windows-serial-configuration

mbed LPC824のAnalogInのプルアップ設定を解除

Written in 2017年10月01日 by | コメントする( 0件 )

mbed LPC824はinputがデフォルトでプルアップされている。プルアップ抵抗を追加しなくていいから便利なのだが問題がある。

mbed APIにおけるDigitalInクラスでは、コンストラクタで、

DigitalIn sensor( P0_6, PullNone );

のようにピンモードを指定できるし、mode()メソッドを使って、

sensor.mode( PullNone );

ともできる。
ちなみに、指定できるモードは以下の通り。

PullUp, PullDown, PullNone, OpenDrain

このようにDigitalInでは何の問題もないのだが、アナログ入力が問題だ。
AnalogInクラスにはこのピンモードを設定するメソッドがない!! なぜだ。。。。
mbedのサイトを見ると、

Warning

一部のCPUのmbedライブラリについて、アナログ入力ピンの内蔵プルアップ/プルダウンがONになっているものがあります。(意図してか、意図せずか不明)
この場合、ドライブ能力の低い電圧源や、抵抗器を介したアナログ入力の値がおかしくなります。

ピンモードを設定しているレジスタを直接アクセスして、プルアップ/プルダウンをOFFにしてください。

https://os.mbed.com/users/okini3939/notebook/AnalogIn_jp/

と書かれている。なんとも面倒な。レジスタを触るのか。
しかしレジスタを触らなくてもうまいことハックできちゃった。
つまり、いったんDigitalInで目的のピンをPullNoneで設定しておいて、再度同じピンでAnalogInを生成する。するとPullNoneなAnalogInが出来上がる。

DigitalIn dummy( P0_6, PullNone );
AnalogIn sensor( P0_6 );

これで動いたさ。

マイクロソフト系のメールアドレスへのメール送信ができない場合

Written in 2017年07月25日 by | コメントする( 0件 )

マイクロソフト系のメールアドレス

live.com
hotmail.co.jp
outlook.com
msn.com

など。

これらのドメインのメールアドレスへのメール送信ができずMAILER-DAEMONが帰ってくる場合、マイクロソフトのポリシーを確認しましょう。

https://mail.live.com/mail/troubleshooting.aspx

■以下のようなメッセージが帰ってくる場合(エラーコード:550 SC-001)

<nantarakantara@hotmail.co.jp>:

Connected to xx.xx.xx.xx but sender was rejected.

Remote host said: 550 SC-001 (BAY004-MC1F57) Unfortunately, messages from yy.yy.yy.yy weren’t sent. Please contact your Internet service provider since part of their network is on our block list. You can also refer your provider to http://mail.live.com/mail/troubleshooting.aspx#errors.

エラーコード550の場合、対処方法はまず、SPI情報をDNSのTXTレコードとして登録しましょう。

TXT v=spf1 ip4:xx.xx.xx.xx mx:mail.simple-eye.com ~all

また、SC-001のエラーコードの説明は以下の通り。

ポリシーを理由にメールが Outlook.com によって拒否されました。拒否された理由は、メールの内容が迷惑メールの特徴に似ていることか、IP/ドメインの評価に関連している可能性があります。メールまたはネットワーク管理者のどちらでもない場合は、メールまたはインターネット サービス プロバイダーに連絡して支援を依頼してください。

とある。マイクロソフトは複数のサービスを利用して迷惑メール判断をしている。

https://mail.live.com/mail/services.aspx

この中で、「Junk E-Mail Reporting Program」というのがある。これはOutlook.com ユーザーによって報告された迷惑メールの問題についてレポートを提供してくれる。
記載されているリンク(https://postmaster.live.com/snds/JMRP.aspx)をクリックする。

サイドメニューの「Junk Mail Reporting Program」から、自分のSMTPサーバのIPを登録すると、「View IP Status」メニューでそのIPがブロックされているかが確認できる。

Blocked due to user complaints or other evidence of spamming

というメッセージとともに該当IPがブロックされてしまった場合、以下のページからメール送信者情報をマイクロソフトに送る。

https://support.microsoft.com/ja-jp/getsupport?oaspworkflow=start_1.0.0.0&wfname=capsub&productkey=edfsmsbl3&locale=ja-JP&ccsid=636365643354583281

私の場合は1日後には上述のブロック情報のページで解除されたことが確認できた。

macでsmbサーバへの接続のパフォーマンス向上

Written in 2017年07月06日 by | コメントする( 0件 )

パケット署名を無効にすることでパフォーマンスが向上する可能性がある。

https://support.apple.com/ja-jp/HT205926

/etc/nsmb.conf を以下のように編集する。

[default]
signing_required=no

その後、SMBに再接続する。

macをAndroidスマホでUSBテザリング

Written in 2017年07月06日 by | コメントする( 0件 )

Androidスマホを使ってmacでテザリングするには、別途ドライバーのインストールが必要だ。

Josua Wise ( http://joshuawise.com/horndis )

latestバージョンをmacにインストールすれば、ネットワーク設定にUSBテザリング情報が現れる。
インストール後、一度、再起動が必要なようだ。