pslaboが試したことの記録

はてなダイヤリーからはてなブログに引っ越してきました

この日記は現在実行中の減量記録を含む個人的なメモとして始めましたが、最近はコンピュータやガジェット、ハック、セキュリティネタのほうがメインになっております。

iPad3のSIMロックに関する考察とSIM下駄による解除の試みはSoftbank版iPad3にiPhone用のSIM下駄を履かせてみるにいろいろ書いてます。

ポストした内容のカテゴリー分けがちゃんと出来てないので、過去記事を探したい方はお手数ですが検索で探してみてください。


InterBaseデータベースのDB容量、BLOBサイズはデータベース作成時のページサイズで決まるらしい

InterBaseの各種データ量制限を調べていて意外に手間取ったのでメモとして残す。

ネタの出典は InterBase2017 の OpGuide [http://docs.embarcadero.com/products/interbase/IB2017/ OpGuide.pdf]

ページサイズ データベース上限 テーブル上限 BLOB上限
1KB 2TB 2TB 64MB
2KB 4TB 4TB 512MB
4KB 8TB 8TB 4GB
8KB 16TB 16TB 32GB
16KB 32TB 32TB 256GB

デフォルトのページサイズは4KBだけど、通常はこれで充分だろう。

なお、最初は日本語版の OpGuide を調べたけど記述が微妙に抜けていたりするので、最終的には英語版を見たほうがよさげ。

また docwiki の情報も英語版、日本語版でそれぞれ記述が怪しかったりする場合があるので、そのへんがちょいと困る。

しかしまあ、モバイルデバイス組み込み、デスクトップ、サーバのいずれも同一データファイルで利用できるのは案外便利なのですよ。商用サポートも受けられるわけだし。

FireDACで大量のデータをデータベースに一括登録する

ちょいと調べたのでメモ。

配列DMLを用いるか、またはコマンドバッチを使う方法があるようだ。

配列DMLはクエリのパラメータに配列を使うので、同じ形式のクエリを大量に実行する場合に使える。

http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/配列DMLコマンドのパフォーマンス(FireDAC)

http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/配列_DML(FireDAC)

DBが配列DMLに対応していない場合はFireDACがエミュレーションしてくれるので、接続先のデータベースの仕様によらず使える。ただしエミュレーションの場合は速度は期待できないはず。

コマンドバッチは同じクエリでも異なるクエリでも良さげだけれど、個々のクエリを ; でターミネートすべきかどうかはDBによって異なることが注意点かも。

http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/コマンド_バッチ(FireDAC)

Anker PowerCore Fusion 5000でMacbook Pro 2016の充電を試みる(2)

先日、こんな記事を書きました。

pslabo.hatenablog.com

しかしこれは簡易的な検証でしたので、もうちょっと内容を広げてみることにします。負荷が高い状況での比較とか、PowerPort+5との比較とか。

なお、0%~100%の充放電テストは行っていません。時間がかかってつらいので。

使用する機器

試験内容

  • そこそこの負荷をかけた場合に、Macbook Pro 2016 13inch のバッテリはどのように減るか。さらに、Anker Power Core Fusion 5000 の内蔵バッテリから給電したら、内蔵バッテリの減るペースがどの程度緩和されるか?
  • 負荷を掛けない状態でのApple純正充電器とPowerPort+5 での違いは?
  • 負荷を掛けた状態でのApple純正充電器とPowerPort+5 での違いは?

負荷の掛け方

下記コマンドを同時に4本走らせておく。

cat /dev/urandom | md5 &

試験結果

Anker Power Core Fusion 5000 の内蔵バッテリからの給電によって、Macbook Pro 2016 13inch の内蔵バッテリの減りはどの程度緩和されるか?

f:id:pslabo:20170712095027p:plain

Macbook の内蔵バッテリが減る速度は、Power Core Fusion 5000 からの給電により半減できる模様です。

負荷を掛けない状態で、Apple 標準のMacbook Pro 13inch 用USB-C充電器とAnker PowerPort +5 では充電速度がどれくらい違うか?

若干ではありますが、純正の充電器のほうが充電速度は速いです。しかし Anker PowerPort +5 でも全く問題なさげです。

f:id:pslabo:20170712095220p:plain

そこそこの負荷を掛けた状態で、Apple 標準のMacbook Pro 13inch 用USB-C充電器と Anker PowerPort +5 では充電速度がどれくらい違うか?

f:id:pslabo:20170712095229p:plain

こちらは純正の充電器のほうが相当速いですね。そういう意味では、Anker PowerPort +5 の給電能力は少々不足気味ではあります。ただし充電ができないわけではない。

結論?

Anker PowerCore Fusion 5000 は基本的には気休め程度と割り切って使う感じ。モバイルバッテリ機能が不要なら、Anker PowerPort +5 がやはりベターな感じですね。

Anker PowerCore Fusion 5000でMacbook Pro 2016の充電を試みる

Anker PowerCore Fusion 5000 はモバイルバッテリーとUSB充電器がニコイチになったデバイスなので、スマートフォンタブレットの予備充電器としてはとても便利に使えます。

しかし、このデバイスのoutputは下記の仕様ですから、USB-PD 仕様のノートパソコンを充電するにはパワーが足りません。

  • AC使用時 5V=2.1A (最大合計x2.1A)
  • バッテリー使用時 5V=3A (最大合計3A)

そのことは承知の上で、あえて Macbook Pro 2016 の充電をトライしてみることにします。

ついでに、同じく Anker の PowerPort+ 5 の充電速度も測って比べてみることにします。

試験内容

  • Macbook Pro 2016 13inch のバッテリーが空の状態で Power Core Fusion 5000 のバッテリでの充電を試みた場合に、何%まで充電できるかを確かめる。

  • Macbook Pro 2016 13inch を利用中に Power Core Fusion 5000 と接続した場合に、Macbook 内蔵バッテリーの減りをどの程度抑えられるかを調べる。

Macbook Pro 2016 13inch のバッテリーが空の状態で Power Core Fusion 5000 のバッテリでの充電を試みた場合に、何%まで充電できるかを確かめる。

実際にやってみたところ、約3時間ほどで Power Core Fusion 5000 のバッテリは空になり、Macbook Pro 2016 13inch のバッテリーは 30%程度 まで回復していました。

f:id:pslabo:20170709122649p:plain

なお、Anker PowerCore Fusion 5000接続時の給電状態は12Wでしたので、Macbook Pro を使用中に充電するには給電電力量が足りないことは言うまでもありません。しかしながら Macbook Pro 2016 13inch のUSB充電器を自宅またはオフィスに忘れてきたときに、AC電源が取れない場所で多少時間が掛かってもよいのでMacbook Proを使用しないときにバッテリーを回復させたい場合には使えそうです。

Macbook Pro 2016 13inch を利用中に Power Core Fusion 5000 と接続した場合に、Macbook 内蔵バッテリーの減りをどの程度抑えられるかを調べる。

こちらは Macbook Pro 2016 13inch で youtube で動画を再生しつつ、以下の状態を比較します。

  • Power Core Fusion 5000 をAC接続して給電した場合に充電できるか?
  • Power Core Fusion 5000 の内蔵バッテリで給電した場合に充電できるか?
  • Mac book pro 2016 をバッテリ駆動した場合にバッテリがどれくらい減るか?
  • PowerPort+ 5 でどれくらいのペースで充電できるか?

youtube の動画再生はいまどきのハードウェアには軽い負荷なので、給電系への負荷試験としては適切ではない可能性があります。

本当ならば、Macbook pro 2016 で仮想マシンを実行し、そこで youtube を再生するべきだったかもしれませんが、とりあえず今回はそういう測り方をしていません。これは後日測ってみます。

Power Core Fusion 5000 をAC接続して給電した場合に充電できるか?

基本的には、充電はできない、と考えて頂いだほうがよいです。しかしMacbook Pro の内蔵バッテリーが減るペースは抑えられるかもしれません。

以下は時間ごとのバッテリ残量の変化です。

f:id:pslabo:20170709191352p:plain

Power Core Fusion 5000 の内蔵バッテリで給電した場合に充電できるか?

今回の前提条件ではバッテリは減りませんでしたので、AC接続の場合と同様にMacbook Pro の内蔵バッテリーが減るペースは軽減できるはずですが、充電は厳しいでしょうね。

f:id:pslabo:20170709191410p:plain

Macbook Pro 2016 をバッテリ駆動した場合にバッテリがどれくらい減るか?

当然ながら、Macbook Pro を内蔵バッテリだけで駆動させるとバッテリは減ります。この試験では概ね3分ごとに1%づつ減っています。

f:id:pslabo:20170709191516p:plain

PowerPort+ 5 でどれくらいのペースで充電できるか?

Macbook Pro の内蔵バッテリが減るペースよりは速いペースでの充電が行えています。

f:id:pslabo:20170709191453p:plain

結論

  • Macbook Pro 2016 がスリープ中なら Power Core Fusion 5000 での充電は可能です。ただし相当に時間が掛かることを覚悟の上で。
  • Macbook Pro 2016 を利用中に Power Core Fusion 5000 で充電することは非常に困難なので、これを目的として購入してはダメです。ただしバッテリーの減りを軽減させる目的ならアリかもしれません。
  • PowerPort+ 5 は案外使い物になります。そこそこの出力が取れるUSB充電器が欲しいなら、現時点ではおそらくベストチョイスです。

MicrosoftやOracleのライセンスに関するメモ

Microsoftのソフトウェア・ライセンスと料金はココで計算できる。

Microsoft License Advisor

MS SQL Server 2016 のライセンスはコレを理解する必要あり。

https://download.microsoft.com/download/A/0/D/A0DB63D2-E8B6-4CA4-9939-50104E491880/SQL_Server_2016_Licensing_Guide_JP.PDF

Oracle Database のライセンスや金額の計算はコレが参考になる。

http://www.oracle.com/technetwork/jp/ondemand/database/db-new/oracle-license-abc-2704758-ja.pdf

Windows Server 2016にcygwinとapt-cygをインストールするための覚え書き

Windows Server への Bash on Windows は当面来ないので、cygwin を使うことにする

将来的には Bash on Windows が来るんでしょうけど、現時点では来ていないので、やむを得ず cygwin を使うことにします。将来的な話は以下の記事に出ていますね。

www.publickey1.jp

さて、cygwin を使うなら、apt-cyg は必須だと私は考えているので、これも入れてしまいます。

このときの最低必要限の手順をメモとして残します。誰かが読むことを想定していないので、手順はざっくりと。

サマリ

  • cygwinインストーラをダウンロードして実行する
  • インストールを漫然と進めるのではなく、git, wget のパッケージを追加インストールしておく
  • qiita の下記記事に従って apt-cyg をセットアップする

qiita.com

だけど引用部分のコマンドは引用を2つに分けたほうがよいので、自分用のメモとして以下に引用しなおしておく。

#!/bin/sh
# cygwinターミナルを開き、リポジトリをクローンする.
# 公式は transcode-open だが、野良も含めて多数の fork あり.
# 下記の「参考記事」に紹介されているので、お好みのリポジトリを選べば良い.
git clone https://github.com/transcode-open/apt-cyg.git
cd ~/apt-cyg/

# gitの改行コード設定を、Windows環境にあわせてCRLFにしている場合は,
# 改行コードLFでapt-cygを再取得する.
git config core.autocrlf input
rm -f apt-cyg
git reset --hard

# apt-cygをPATH上に置く.
install apt-cyg /usr/local/bin

# 国内のcygwinリポジトリを登録する.
apt-cyg -m ftp://ftp.iij.ad.jp/pub/cygwin/ update
#!/bin/sh
# 以後は、バージョンアップのタイミングで下記を実行する.
cd ~/apt-cyg/
git pull
install apt-cyg /usr/local/bin

git, wget の指定方法

それぞれ、こんな感じで。

f:id:pslabo:20170630104854p:plain

f:id:pslabo:20170630104914p:plain

補足

Qiita の記事は apt-cyg の取得に git を使っているので git を事前にインストールしておきます。

また、apt-cyg 自体は wget または lynx を使ってファイル取得を行います。これをインストールしていないとファイル取得に失敗した上で 0 バイトのファイルが作られててしまいます。こうなると wget or lynx を正しくインストールしても apt-cyg が正常に動作しません。このようにやらかしてしまった場合は、Desktop に作成されているキャッシュ用のディレクトリを調べて 0 バイトのファイルを片っ端から削除します。

Google Analytics のタグを貼れない環境でも Google Analytics で集計してみるテスト

Google Analytics のタグが貼れないCMSで不定期に記事を書く必要が出たのだけど、せめてページ毎のアクセス集計くらいは見える化したいと思ってなんとかしてみるテストです。

Google Analytics の Measurement Protocol を使ってみる

developers.google.com

Measurement Protocol というのは、一言でいうとWebビーコンです。Webビーコンなのでパラメータをつけてリクエストを投げると集計が行われた上で縦横1ピクセルの画像が返されます。

だからウェブコンテンツの中に Measurement Protocol へのリンクを画像タクとして入れておけば、最低限、アクセス数の集計くらいは出せそうな感じ。

Measurement Protocol のパラメータは Hit Builder で作ることができる

Hit Builder — Google Analytics Demos & Tools

Google Analytics のトラッキングIDを新規に作ったら、Hit Builder でパラメータをカスタマイズする。

今回はとりあえずこんな内容を設定してみる。

パラメータ名
v 1
t pageview
tid ラッキングID
cid 本来は閲覧者毎に割り振るIDだが、今回は固定値を振っている
ds web
dl ページのURL
dt ページのタイトル

そして Hit Builder が生成したパラメータと www.google-analytics.com/collect? を連結したURLを作ればよい。

そしてこのURlを個別のページに で差し込んでいく。

今後はページを新規に作るたびに、dlとdtを変えたタグを差し込めば一応は集計できる。

ただしこの方法で集計した場合はページビューは集計できるけれど、個々のアクセスに紐作り情報は正しく集計されない点に注意。cid が全て同じなのだから正しく集計できるわけがない。

これについては何か解決方法がないかと考え中。