損害賠償なしのシステム開発な日常:電車で

電車で帰宅途中の尼崎駅、停車して扉が開いたところで杖をついたお爺さんが乗ってきました。これは譲らねばと立ち上がろうとしたのですが、他に二人も立ち上がり譲り合い競争に。この時この3人は競争をしているのに、3人ともお互いに笑顔になってました。同じ善意がそばにあると人はつい嬉しくなってしまうようです。“””

YellowknifeのLightningケーブルが最初からショートしていた

注意喚起的な記事です。この製品に限らず同様の症状が見られた場合には使用を中止して返品しましょう。

数ヶ月前、iPadに使うLightningケーブルが欲しいと思い立ち、Amazonで以下の製品を購入しました。


「【Yellowknife】新世代 Apple認証取得 (Made for iPhone) [lightning usbケーブル+OAprodaクロス] iPhone 6s / 6s Plus / iPhone 6 / 5 / iPad Air / iPad mini 用充電・同期ライトニング USBケーブル (2M,ホワイト)」
販売者IDはfuture_style。法人名は株式会社ディライトカラーです。
このケーブルを使って充電しようとしたら、USB電源アダプターのポリヒューズが飛ぶという症状が現れました。この時はまさかケーブルがショートしているとは思いませんでしたので、iPadは初期接続時の突入電流が多くて、電源アダプタのキャパが足りていないのだと考えていました。使用していたのはAnkerの40Wだったのですが、40Wの割には根性ないなぁとAnkerに濡れ衣を着せていました。

このケーブルはそれ以降しばらくお蔵入りにしていたのですが、MacにiPhoneを接続しようとしてこのケーブルを使ったら、このような警告が出ます。いろいろ試していると、iPhoneをつながなくても、このケーブルを本体に接続するだけでこの警告が出ることが判明。


ショートしている可能性が高いと判断しUSB電流計測アダプタで電流値を計測してみることにしました。電源とデバイスの間に噛ませるとこんな感じで数値が出ます。これはiPhone充電時の電流。


デバイスを接続せず、このケーブルだけを接続してみると、どうやら計測値を超えてしまうようで、表示が飛び、USBアダプタから異音し始めました。


それでもショートしているかの確証が無いので、実際に抵抗値を計測してみることにしました。USB-Aコネクタはプローブが当てにくいのですが、1番とコネクタケースの抵抗値がこうなりました。表示値が大きく変動しているので接触抵抗が大きいと思われ、コネクタとジャックでちゃんとコンタクトさせるともっと低い値が出ると思います。コネクタケースは4番と導通していますので、1番と4番がこのレベルの抵抗値ということになります。USBの1番は5Vで4番はGNDなので、ショートとはいわないまでもショートに近い電流値です。

電流計測アダプタの最大計測値が2A、Ankerの出力も2Aなので少なくとも2A以上が流れていると推測できます。そうすると実際の抵抗値は2.5Ω以下でしょう。実質的にはショート状態にあると言えます。

最近USBは電力供給のための手段として使用されることが多くなり、電源サイドも電力量が大きくなってきています。アダプタ側に保護手段が入っているとはいえ、ショートには常に発火の危険が伴い、火災を引き起こす恐れがあります。PCから使用する場合でも、ポリヒューズで保護されていることが通常でしょうが、もしポリヒューズを飛ばしてしまうと、そのポートはもう使えない、死亡状態になってしまいます。ですので「ショートしているケーブル」は絶対に使用してはいけません。

こういったケーブルについては出荷時に導通チェックと絶縁チェックが行われているはずですが、そのチェックをしていないか、少なくともチェックが甘いと言うことだと思います。


僕もAmazonのクチコミをそれなりに参考にする方で、このケーブルの購入も1000件越えのレビューをみて購入に至りました。しかし実際にそのレビューの信用性や、たとえ99.99%の製品が良好でも自分が入手する個体に問題があるかどうか、このケーブルの例の通り分かりません。実害が無い不具合であればよいのですが、火事になった、パソコンが壊れたでは笑い話ではすみません。危険兆候を察知して回避できる能力を磨かないといけませんね。

“””

C# ガベージコレクション:宇宙仮面の C# ProgrammingUnityでのメモリ管理について色々とWeb上のドキュメントを読んでいたらこの記事がよく参照されているようです。じゃあ自分のプロジェクトではどの方針を採用するかということなのですが、かなり小規模なので、不要なリソースを自分で特定して任意のタイミングでGCを呼ぶという方針にしたいと思います。解放するリソースが増えそうだとusingを使う方針が良さそうですが。実際のところでいえば一番大きなデータオブジェクトでも1Mbyteも無いはずなのでそれほど気にすることはなく、完全にMonoに任せるという方針もありかなとは思いました。ただOSサイドからするとMono環境も一種のアプリで、Monoが非Monoアプリのことまで考慮してメモリマネージメントをしているわけでは無いでしょうから(間違っていたら教えて下さい)、メモリを食い過ぎて非Monoアプリに迷惑をかけるような状況になるのもいかがなものかなと思われました。そこで、・明らかに不要と判断できるリソースは随時Nullを参照・UIのタブ切り替えはユーザーにとって遅延を感じにくいタイミングなのでその時点でGCを実行という方針を採用することにします。NET TIPS ガベージ・コレクタを明示的に動作させるには?こちらのコードを参考にして以下のコードでテストしてみました。

"

L-02Cとyosemiteでmineoを使う

2枚目のmineoのsimをDプランで契約しました。docomo回線のプランです。契約したのは眠っているL-02Cを使ってみたかったからで、人柱的に実験をしてみます。

このsim自体はiPad Air2のsimフリー版でちゃんと導通することをまずは確認しました。

次はドライバインストールなのですが、ここでまず最初に躓きました。以前のMavericksのころはUSBドライブの中に入っているドライバをインストールするだけで、L-02Cを認識していました。ところが今使っているyosemiteでは再起動してソフトを起動しても「ドライバがインストールされていない」と怒られます。

解決策としてはドコモ公式から「L02C_CM_Driver_for_Mac_V1.2.1.0.zip」をダウンロードしてきて再インストールすることで成功しました。L-02Cのファームが古かったのでこれが原因かと思いアップデートしたのですが、これでは解決しませんでした。WindowsでしかアップデートできないのでPCを用意したのですが、意味が無かったです。いや、使っているうちに意味が出てきますかね。

初期設定のままでは接続できませんでしたが、接続ソフトのプロファイルを上記のように設定すると、接続成功しました。パスワードはマニュアルに記載の通りです。

“””