« 2017年2月 | トップページ | 2017年4月 »

2017年3月31日 (金)

マルウェアに感染したUSBメモリから安全にデータを取り出すソフト”CIRCLean”

USBメモリを介して入り込むウィルスというのは厄介ですよね。

私は幸いまだ引っかかったことはありませんが、USBデバイスってつい無防備に挿してしまうため、うまく油断のスキを突いたウィルス侵入経路です。

もっとも、さすがに出所不明なUSBメモリを挿す人なんてそれほどいないでしょうから、ウィルスに侵されたPCから感染したUSBメモリを挿すという方がケースとしては多そう。あるいは、中華土産で買ってきたUSBメモリあたりも怪しいかも。

そんなやばそうなUSBメモリから、安全にデータのみを取り出すソフト”CIRCLean”というのがあるそうです。

マルウェアに感染したUSBメモリから安全にデータを取り出せる「CIRCLean」 - GIGAZINE

このソフト、PC上で動作させることも可能ですが、上の記事にもある通りRaspberry Piなど安価なコンピュータボードでの使用が推奨されてます。

配布元:https://www.circl.lu/projects/CIRCLean/

ソースコード:https://github.com/CIRCL/Circlean

やり方は、まずRaspberry PiなどにこのCIRCLeanをインストールしておく、安全なUSBメモリを挿す、感染の疑いのあるUSBメモリを挿す、Raspberry Piを起動、しばらくほっておく

データを転送中に音楽が流れるそうですが、この音楽が切れたら転送完了。

注意点としては、転送させたいUSBメモリは感染の疑いのあるUSBメモリよりも大きい容量のものを使用すること。ウィルスを除去した結果、容量が大きくなることがあるんだそうで。

ウィルスチェックというのは結構面倒な作業ですけど、これなら簡単に実行可能。100%の信頼性というのはないですけど、手軽で安価にリスク低下につなげられるため、業務用にも導入を考えてもいいレベルの手段ですね。

Raspberry Pi3 Model B ボード&ケースセット 3ple Decker対応 (Element14版, Clear)-Physical Computing Lab

”慶長5年”と言われても西暦何年かすぐに計算できるアプリ”年号 西暦 皇紀 年齢 干支換算機”

「織田信奈の野望」の設定のように戦国時代にタイムスリップしてしまい、周りの人に年を尋ねたら「永禄3年」などといわれて西暦に直すと何年なのか知りたくなった際に役立ちそうなアプリです。そんなシチュエーションがあるのかどうかはわかりませんが。

年号 西暦 皇紀 年齢 干支換算機を App Store で

”年号 西暦 皇紀 年齢 干支換算機”とは長ったらしい名前のアプリですが、名前の通りのアプリ。無料。

要するに元号を西暦に換算してくれる(ついでに”皇紀”と干支まで割り出してくれる)アプリです。

Img_2558

使い方はいたって簡単。

例えば私の生まれた年(昭和46年)を西暦に換算したいときは、”昭和”を押して数字を入力、”決定”を押すと上のように換算された西暦等が出てきます。

ありがちな使い方としては、西暦を”平成”に換算することでしょうが・・・なにせ最近、平成何年か時々わからなくなります。

なお、”大正20年”のように実際にない年を入力しても、”昭和6年”と換算されて表示されます。なかなか賢いですねぇ。

さて、このアプリのすごいところはやはり”明治前”というボタン。

Img_2559

明治前の元号がずらっと出てきます。

一体どこまでさかのぼるのかと思っていたら

Img_2561

”神武天皇元年”までさかのぼります。

Img_2562

神武天皇1年、いわゆる”皇紀元年”ってやつですね。西暦にすると紀元前660年。

卑弥呼の時代が西暦247年ごろなので、相当昔ですね。

Img_2560

よくアニメやドラマの設定である”タイムスリップ”に出会ったときでも、その元号がわかれば西暦換算ができるんです、このアプリがあれば。

”慶長5年”といわれれば”西暦1600年”とわかります。つまり、関ヶ原の戦いが行われた年ですね。

ちなみに”永禄3年”とは1560年、今の愛知県豊明市付近で行われた”桶狭間の戦い”の年。信長メジャーデビューの年ですね。

タイムスリップするかどうかは別として、今が平成何年だったかを調べたり、会社の上司のする”昭和○○年”の昔話が一体何年前の話なのか?を割り出すため等に使えそうです。

角川まんが学習シリーズ 日本の歴史 2017特典つき全15巻 別巻1冊セット

2017年3月30日 (木)

いずれiPhone/iPadはノートPCになる!?

iPhoneやiPadが今のMacbookの代わりになる時代が来るかもしれません。

iPhoneやiPadをノートPCにするアクセサリーの特許をAppleが申請中 - GIGAZINE

そんな予感をさせてくれる特許情報が出ているようです。

トラックパッドの辺りにiPhoneを取り付けられるようにしたMacbook風のラップトップの絵が出てますが、これは要するにiPhoneを取り付けるとノートPCに早変わりするという代物では!?といわれているようですね。

同様に、画面にiPadをつけるアダプタも存在するようです。

アイデア自体はそれほど目新しいものではないものの、iOS機でというあたりがちょっと注目を浴びることになってるようです。なにせ、今のiOS機はマウスやトラックパッドが使えません。

でも、こういう仕様を想定しているなら、いずれポインティングデバイスのサポートもありうるということなんでしょうね。場合によってはこういう形で使うときはMacOS X風にUIが変化するということもあるかもしれません。

iPhone/iPadは確かに便利ですが、どうしてもPCじゃないとできない作業というのがあるのが現状。

おかげで、安いノートPCを一台買おうかどうしようかと悩んでいるくらいですし。

私の場合は、まさにこの”ブログ更新”がPCでないとやりづらい作業の一つ。

キーボードのこともありますが、リンク張ったり画像張り付けたりという作業はPCでないと大変です。

これがMacbook風なアダプタが登場し、iPhoneでもできるようになったら・・・いよいよPCの出番が減るかもしれませんね。

ちょっと先の未来はPCの影がさらに薄くなってしまうかもしれませんね。できれば、ストレージまでアダプタ側に搭載してくれるとなおいいんですが。

MacBook (12-inch/1.1GHz Dual Core Intel Core m3/256GB/8GB/802.11ac/USB-C/ローズゴールド)

初代GeForce発売の時

AKIBA PC Hotlineがまたまた懐かしいパーツを題材にしてますね。

歴史はここから始まった、初代GeForceが登場した1999年の秋 (取材中に見つけた○○なもの) - AKIBA PC Hotline!

1999年秋に登場した初代GeForceの、発売当時の話が出てます。

実は私、買ったんですよね、この初代GeForce。

上の画像にある、このクリエイティブ版のGeForceを買いました。

真っ黒な箱にシンプルに”GeForce”と書かれたこの箱。今でも覚えてます。たしか、3万円くらいでしたね。

発売してすぐではなかったものの、冬のボーナスで購入した記憶があります。

当時、Voodoo3を持ってましたが、どうしてこれを買おうと思ったのかはあまり覚えてません。なにせ、3Dゲームなんてものはほとんど持ってませんでした。

当時はまっていたゲームは、Age of Empires IIとCombat Fright Simulaterくらいでした。別に最新の3Dボードである必然性はなかったんですが。

でもなんとなく未来を感じたというか、これ買っておこうと思わせられる何かがありましたね。

気が付けば、これ以降グラボといえばずーっとGeForce(内蔵VGAを除く)。もっとも、最廉価版ばかり買ってますけど、それでもGeForce一筋です。

Linuxとの相性がいいというのもGeForce一筋だった理由の一つですね。

そんな私ですが、ここしばらくはGeForce 210というすでに時代遅れも甚だしいボードをずーっと使っております。

が、最近ちょっとGTX1050Tiあたりに惹かれてまして。

というのも、ディープラーニングなんてものをやってるのがその理由。

TensorFlowで「けものフレンズ」の”フレンズ判別器”作ってみたでも書いた通り、深層学習にかかる時間がどんどん増えてます。

CPUを買い換えようかと思ってたんですが、それ以上にGPUの効果が大きいという話。しかも、GTX1050くらいでも桁が一つ違うくらい高速化するといわれてるようなので、ちょっとどころかかなり気になってます。

本当は1080がいいんでしょうけど、そこまで高い買い物をするほどの需要がないですからね。私は1050Tiあたりで十分です。

3DゲームよりはVRやディープラーニングで再び脚光を浴びつつあるGeForce。まだまだ全盛期は続きそうです。

玄人志向 ビデオカードGEFORCE GTX 1050Ti搭載 GF-GTX1050Ti-4GB/OC/SF

2017年3月29日 (水)

上海問屋から最大10枚のmicroSDカードをSATAドライブにできるアダプタ

最近はmicroSDカードも安くなっており、気が付いたら思わず何枚も買っているなんて人も多いんじゃないでしょうか。

そんなmicroSDカードを複数挿してSATAドライブとして使えてしまうアダプターが上海問屋から発売されたそうです。

10枚のmicroSDカードをSATAドライブ化するアダプタが発売、上海問屋 - AKIBA PC Hotline!

このアダプター、その名も”10枚のmicroSDカードをSATAドライブにできる変換アダプター”。そのまんまです。

ただ、組み合わせや挿す位置には若干制約があって、挿せる枚数は1、2、4、5、8、10枚という組み合わせで、それぞれ挿す位置もだいたい決まっているようです。

すべて同容量のカードを挿すことが必須。違う容量にすると誤認識されるそうです。

256GBのカードを1枚挿して使えたそうなので、一応256GBまでは大丈夫な模様。まあ、そんなカードをこういうものに挿す人も少ないかもしれませんが。

お値段は3,999円。大容量のカードに変えたら32GBのカードが何枚か余ってしまった・・・という人ならこれで再利用することができますね。

Goliton・ マイクロSD TFのスイッチ SATAアダプタへ ノートブックハードドライブアダプタ SATA SSDのRAIDグループ10* TFカード

自撮りドローン付きスマホケース”AirSelfie”が日本でも5月に発売

発売されるかどうかといわれてましたが、やはり発売になりましたね。

「自撮り棒はもう古い」ドローン自撮りカメラ「AirSelfie」が日本上陸 - ケータイ Watch

自撮りドローンを搭載したiPhone/Galaxy用ケース”AirSelfie”が5月に発売されることになったそうです。

すでにこのメーカーの直販サイトでは予約を受け付けてます。

AirSelfie | Life-size emotions

どんなドローンなのかは、この動画を見ればわかります。

さすがにどこでもOKとはいかないでしょうが、室内でも使えるくらい安定した飛行が可能。

最大20mの垂直飛行が可能で、手のひらをかざすと着陸する

バッテリー容量は260mAh、一介の充電で飛行可能な時間は3分と短いですが、充電池一体型ケースだと1,600mAh搭載されてます。外でも充電可能なため、何度か撮影することができるみたいです。

カメラ自体は500万画素と、さほどすごいカメラセンサーがついているというわけではありません。

重さは61gとドローン規制(200g以上のドローンが対象)の適用外。だからといってかの”夢の国”ではダメでしょうね、多分。あそこは自撮り棒も禁止ですし。

アウトドアを楽しむ方であれば使える場面が多そうなカメラドローン。お値段は31,598円から。

Noiposi JJRC H37 Wifi ミニ ドローン カメラ付き iPhone&Androidで生中継可能

2017年3月28日 (火)

AKIBA Hotlineで”ザナドゥ”が!

ザナドゥといえば、私が最初に買ったパソコンゲームソフトですね。

X1用FD版を購入、友人とやりこみましたね。

デカキャラが衝撃的だった「ザナドゥ」 - AKIBA PC Hotline!

で、そんな”ザナドゥ”がAKIBA Hotlineに紹介されてました。

この記事のタイトルにもありますが、ザナドゥってところどころどでかいボスキャラが出てくるんですよね。

当時ファミコンに慣れていた私でも、この大きさは衝撃的でした。

最後のドラゴンと闘うときなんて結構緊張しましたねぇ。なかなか勝てなかった記憶ですが。

そんなザナドゥ。たしかX1版以外には88版、FM-77版などもありました。

記事にもある通りX1版にはテープ版も存在してて、私の友人は最初テープ版でやってたんですよね。

攻略途中でデータが壊れたため、X1Fを買ったばかりの私に強引に勧めてきてFD版を買った(買わされた)次第。

テープとFDのアクセス速度の差に、度肝を抜かれてました。

レトロパソコンの思い出、当時最先端だったフロッピーディスクのアクセス性能の高さ、そしてファミコンにはない深い世界観のゲームとの出会い。

いろいろと想いが染みついてますね、このザナドゥ。

Img_0086

ちなみに、まだちゃんと動きます、うちのザナドゥ。

また近いうちに攻略してみようかな。空のFDも一枚くらいはあったはずですし。

レジェンドパソコンゲーム80年代記

まさにVAIO Pの再来を思わせるARM版Windows 10端末”KS-PRO”

昨年末に予告されていたARM版Windows 10ですが、いったいどういう端末が出ることになるのかと思っていたら。

こういうのが出てくるようです。

【やじうまPC Watch】VAIO type Pの後釜になる? Windows 10搭載8.2型クラムシェル「KS-PRO」 ~Snapdragon 835を搭載。Indiegogoで資金調達中 - PC Watch

Snapdragon 835を搭載した8.2インチの超小型ノートPC”KS-PRO”です。

現在、Indiegogoで資金募集中。

KS-PRO & KS-PROID PhabTop Powered by Snapdragon | Indiegogo

Windows 10搭載の”KS-PRO”は600ドルで入手可能。なお同型の端末でAndroid 7 Nougatを搭載した”KS-PROID”は450ドルであるようですが・・・私としてはWin10一択ですね。

Windows 10版は2018年1月に出荷予定(CES2018に出品される予定)、AndroidのKS-PROIDはもうちょっと早く今年の11月に出荷予定とのこと。なお、ハードはどちらも同じだそうです。

スペックとしては、サイズは246×150×16mm、背広の内ポケには余裕で入りそうですね。Gorilla Glass 3で覆われた8.2インチ ディスプレイ(2560×1440ドット)のタッチパネル液晶、メモリ 8GB、ストレージ128GB、256GBまでのmicroSDカードスロット付き。重さは640g。

Nano SIMスロットを搭載しLTEにも対応。Wi-Fi 、Bluetooth 4.0、GPS付き、バッテリ容量は10,307mAhで12時間駆動、USB Type-C×2+USB 3.0、1,200万画素のカメラを搭載。

なにせARM版Windows 10というものがまだ現存しないため、どれくらいの使い勝手なのかは不明。

サクサク動いてくれればいいですよね。VAIO Pの残念なところはこのサクサク感がなさ過ぎたところですね。悪いPCじゃなかったんですけど、肝心な部分での動作が重すぎでした。

これが実用レベルで動いてくれるなら、一つほしいところですねぇ。

GPD WIN 黒 + 液晶保護フィルム付属 (Windows10 /5.5inch /IPS液晶 /Intel Atom X7 Z8700) (4GB/64GB)(USB Type-C /USB3.0 /HDMI /Bluetooth4.1) (タッチパネル /Gorilla Glass 3 /Gamepad Tablet PC /UMPC) (ブラック) [正規輸入品] (4GB/64GB 黒)

2017年3月27日 (月)

IchigoJamがRaspberry Pi上で動作

Raspberry PiとIchigoJam。一見相容れないこの両者が一体になると・・・

IchigoJamがRaspberry Pi 3向けに移植 - PC Watch

Raspberry Pi上で動く「IchigoJam RPi」を使ったプログラミング教育を進めるとIOデータが発表しました。

IchigoJamは1500円でハードが提供されてますが、コンポジット出力にPS/2キーボードと、今となっては確保が難しいハードが必要だったりしてややハードルが高いのが難点でした。

が、Raspberry PiならHDMIにUSBデバイスが使える上、電子工作との相性も抜群ということもあって、Raspberry Pi上でIchigoJamを使えるようにしようということになったみたいです。

Raspberry Piもなかなかいいハードですけど、難点は”Linux”なこと。確かに、プログラム言語の自由度が高いんですが、プログラミング学習用に使うにも覚えなきゃいけない操作(コマンド、エディタ、パッケージインストール方法・・・)が多すぎ。

その点、IchigoJamはBASICですから、比較的簡単です。

思えば私もX1でBASICからスタートしたんですよね。

あの時いきなりLinuxだったら、多分挫折してたかなぁ・・・

今どきの言語の基礎にBASICはどうかという声もあるようですけど、プログラミングの基本はBASICであれPythonであれ同じですからねぇ。私は初等プログラム教育にはBASICでいいんじゃないかと思ってます。

AIだのIoTだのとIT分野の目覚ましい発展により、2045年にも第4の”シンギュラリティ”(人工知能が人間を超える分岐点)を迎えるとされる近未来。一方でIT技術者が不足気味という事情もあって、プログラミング教育に力を入れたいと思う人が増えてるみたいです。

論理性の育成にもつながり、私はいい傾向だと思いますが、その前にいまのIT業界の過酷な労働環境、プログラミング業務の軽視を何とかしないと、明るい未来が訪れないように思いますね。ほんと、何とかしてほしい・・・

Raspberry Pi3 Model B ボード&ケースセット 3ple Decker対応 (Element14版, Clear)-Physical Computing Lab

文鎮化したApple Watchを復活させるガジェット

昨年暮れにWatchOS 3.1.1が公開された際に、一部でApple Watchが”文鎮化”するという事態が発生。すぐさま公開が中止されるということがありました。

幸いうちのApple Watchは大丈夫でしたけど、現状では一度文鎮化するとApple Storeで修理しない限り復活しないようです。ユーザーとしては、ちょっとこれは何とかしてほしいところ。

そんな文鎮化したApple Watchを復活させてくれるアイテム「iBUS」が発売されたそうです。

“文鎮化”したAppleWatchを復活させる「iBUS」が登場!個人で購入するハードルは高いが非正規の修理業者への普及に期待!? | Apple Watch Journal

このiBUS、Apple Watchのバンド取り付け部の裏にあるデバッグポートに接続、PCと直接優先接続することでファームウェアを再インストールできるというもの。

動画:Using iBUS Data Cable S1 Flash iWatch S1 (World First Solution) By MFC Dongle - YouTube

かなりハードルが高い接続方法ですが、Apple Storeって予約が大変らしいので、たとえ無償修理な案件でもひるんでしまいそう。

ただこのiBUS、一介のユーザーが買うにはちょっと高いのが難点。お値段90ドル、およそ1万円です。

しかもS1チップを搭載する初代Apple Watchのみに対応。残念ながら現行のApple Watch(Series 1/2共)には非対応だそうです。

できれば、ユーザーサイドでApple Watchの文鎮化を復活できるようにしてくれるとありがたいですね。

というか、Apple Watchって”文鎮化”というんですかね?どちらかというと”リストバンド化”という方が・・・どうでもいい話ですが。

Apple Watch Sport 42mmスペースグレイアルミニウムケースとブラックスポーツバンド

2017年3月26日 (日)

Raspberry Piを屋外で安定動作させるための太陽光パネル付き屋外キット

Raspberry Piを屋外で使いたいという方も増えつつあると思いますが、こちらはなかなか本格派。安心の国産品です。

ラズベリーパイ屋外稼動キット販売開始| IoT/M2M機器/Raspberry Pi用周辺機器-メカトラックス株式会社

福岡にあるメカトラックス社が提供しているこのRaspberry Pi屋外稼働キット。

電源として太陽光パネルに鉛蓄電池、3G回線が使える3GPi、そしてこれらを収める防水ボックスからなるキット。他にも電源やRaspberry Piの監視モジュールも搭載されてます。

当然ですが、このキットだけで単独稼働可能。Raspberry Piのほかに、多少のセンサー類を入れることも可能ですね。

広大な畑のど真ん中で気温、天候、そして監視カメラをつけての観測などもこれを使えば可能になりますね。

お値段は税抜きで198,000円。Raspberry Piのお値段を考えると高い気もしますが、監視機能や堅牢そうな電源を搭載していることを思えば、かなりお手軽な金額かもしれません。

真夏の炎天下の中でも動作するんですかね?気になるところはたくさんありますが、それだけこの製品が気になっているってことでしょうね。ちょっと欲しい気もします。今のところ、私には使い道がありませんが。

Raspberry Pi 3でつくる IoTプログラミング

”AptPackageIndexUpdate”というプロンプトが出てきて・・・

なんじゃ!?新手のウィルスか!??

Aptpkgindxup01

・・・と思うようなコマンドプロンプト画面がPC起動時に登場。

で、調べてみたら・・・apt-getの自動アップデートでした。

そういえば、Windows 10に”Bash on Ubuntu on Windows”を入れてましたねぇ。最近Anacondaに浮気して起動しなかったので、自動でアップデートしたらしいです。

たまには相手しろってことですかねぇ・・・ひねくれないうちに、時々は起動してあげるのが吉のようです。

ちょっとだけLinuxにさわってみたい人のための Bash on Ubuntu on Windows入門

2017年3月25日 (土)

Windows 10のディスクアクセス負荷が高い!時の対処法

いろいろな対処法があるようですが、こんなことでアクセス負荷が下がるの!?と思われる方法もあります。

Windows10のディスクアクセス負荷が高い場合の対処 | code-lab

こちらに出ているやり方は、

・「個人用設定」を開く

(デスクトップの右ボタンか、アクセスセンターの「すべての設定」の中から)

・「色」タブを選択

・「スタート、タスクバー、アクションセンターを透明にする」をオフにする

私もこれを試してみましたけど、確かにちょっと下がった感じ。

うちのメインPCは休止状態にして使ってますけど、復帰した直後にいつまでもガラガラとHDDが回りっぱなしになってしまいます。

ほぼ100%負荷が数分続くんですが、これが90%程度になりました。

改善レベルはほんのわずかですが、ブラウザ一つ立ち上げるにもすごい待たされていたのが体感的にかなり解消。これは大きい。

古いPCほど効果があるようなので、起動後にディスクアクセスが遅い場合はぜひお試しあれ。

Microsoft Windows 10 Home Anniversary Update適用版 32bit/64bit 日本語版 (最新)|USBフラッシュドライブ

UQ mobileからもiPhone SE発売へ

3月25日から真っ赤なiPhone 7/7 Plusや新しいiPad iPhone SE容量増加版が発売され、iPhone SEについてはワイモバイルからも販売されることになっていますが。

ワイモバイル同様、iPhone 5sを販売していたUQ mobileでもiPhone SEを扱うことになったようです。

MVNOによる携帯電話サービス「UQ mobile」が4インチスマホ「iPhone SE」の32GBモデルを3月25日に発売!価格は本体代5万4540円の実質2万6028円に - S-MAX

販売されるのは32GBモデルのみ。128GBは売られないようです。

価格は一括購入の場合54,540円、分割なら2,268円×24回(頭金108円)だそうですが、月月割が1,188円/月あるため、実質26,028円となる模様。

比較的通信費が安いワイモバイルやUQ mobileからも現行のiPhone SEが発売されることとなり、比較的iPhoneが手に入りやすくなったのはいいことなんですが。

どうせなら、ほかのMVNOサービスでも扱ったらいいんじゃないかと思いますね、iPhone SE。

ワイモバイルにせよUQ mobileにせよ、キャリア直結のサービス会社。これではあまりに不公平です。

真の通信費適正化に向かうのはいったいいつのことやら・・・こうなったら通信会社と端末販売の分離、SIMロックの禁止くらいやらないとだめなんですかねぇ。。。

Apple docomo iphone SE 64GB MLXP2J/A 【ゴールド】

2017年3月24日 (金)

Apple Watch Series 2にゲームボーイエミュレーター”Giovanni”登場

あんな小さな画面でゲームボーイができるのか心配ですが、意外と操作性まで考慮して作られたエミュレータのようです。

Apple Watch用のゲームボーイエミュレーター「Giovanni」が登場 | 気になる、記になる…

動いているのはポケモン イエロー。もっさり感もなく、思ったよりちゃんと動いてますね。

この”Giovanni”というエミュレータ。Githubにも公開されているオープンソースなアプリです。

https://github.com/gabrieloc/giovanni

あんな小さな画面でもちゃんと動かせるように配慮した結果、こんな割り当てになったみたいです。

実際に使ってはいないため、動かしやすいかどうかはわかりませんが・・・いろいろ試行錯誤した結果のようです。

普通にゲームボーイを買えば済む話では、とか、iPhoneを使えばいいのに、とか言うのは野暮というものでしょう。

「どうしても電車のつり革につかまった状態でポケモンイエローをやりたい」というような情熱で作られたんじゃないかと思われますし。

それにしてもゲームボーイってエミュレータにされやすいハードですよね。昔から言われていることでしょうが、これ任天堂が公式アプリで出したら結構流行るんじゃないでしょうかね?(ソフト配信付きで)

ニンテンドークラシックミニ ファミリーコンピュータ

週刊アスキー特別編集『2017春の超お買物特大号』買いました

だって、”週刊アスキー”サイトで散々煽ってましたし。

ふ〜ん、4Kテレビって10万円で買えちゃうんだ〜。へ〜 - 週刊アスキー

え、お前WiGigも知らないの? ダサくね? って言われないために週アスを買おう - 週刊アスキー

こりゃもう、買うしかないでしょ。

Img_0776

てことで、買ってまいりました、週刊アスキー特別編集『2017春の超お買物特大号』。

電子版の週アスはたまに買いますけど、紙版は本当に久しぶりですね。

Img_0777

まず目を引くのは中綴じのこれ。

「格安SIM/格安スマホ乗換マニュアル」です。

この部分は本体から切り離し可能。最近相談が多いので、私もこれを会社にもっていこうかと思ってます。

Img_0778

中身はこんな感じ。MVNOサービスに興味はあるけどちょっと・・・という方の背中をきっと押してくれる内容です。

ちなみに、私の会社の同僚の方が娘にSIMフリーiPhone 7 + イオンモバイル(音声通話付き4GB)を与えたようですが、あまりに快適に使ってるので自身も乗り換えようかと画策しているとのこと。

Img_0779

ちなみにこの中綴じ冊子の前ページにはこんな広告が。

これはこれで気になります。

Img_0780

煽ってきた記事に出ていたWiGigの解説も載ってます。

いずれ家庭向け無線LANの標準規格として今のWi-Fiと置き換わるんですかね。

Img_0782

他にもLINE/SNSデビューに関する記事や

Img_0781

次にヒットするであろう製品も紹介されてます。

なかなかお買い得な週アス特別編集。

お値段は690円ほど。内容のわりにお買い得です。

週刊アスキー特別編集 2017春の超お買物特大号 (アスキームック)

2017年3月23日 (木)

「週刊 ロビ2」が6月6日創刊

とうとうロビ君の第2弾が登場です。

週刊 ロビ2 | シリーズトップ

週刊 ロビ2が6月6日より開始されるそうです。

ぱっと見た目にはちょっと色が変わったロビ君のようですが、かなり機能強化が施されてます。

最大の特徴はやはり”顔認識”ができるようになったことでしょうか。

ディープラーニング全盛の時代ですから、ついに画像認識を搭載してきましたね。

カメラを内蔵し、家族の顔を認識してくれるそうです。また、笑顔になったときに自動的に撮影する機能も搭載。

ほとんど同じパーツで構成されているような感じのロビ2ですが、組み立てやすいように改良もされてるみたいです。

すでに1月31日から一部地域で先行発売されている模様。

初代の週刊ロビが2月創刊で、翌年の7月に完成。1年半かかっていることを考えると、2017年6月創刊のロビ2は2018年末あたりに完成というところでしょうかね。

他にも、誕生日や記念日を教えてくれる機能、絵本読み聞かせ機能、初代ロビ君との連携機能、そして

キューボ(Q-bo)という妙ちきりんな相棒が登場。

なんか適当な相棒に見えますが、意外と(?)賢そうです。

いろいろ機能がついてますけど、クラウドではなくスタンドアロン動作なため、どこかのロボットのように月額使用料が必要ということもなし。安心して使えます。

できれば、AmazonのAlexaあたりと連携できるとなおベターかもしれませんが、まだAlexaは日本語版がありませんよね・・・

さて、このロビ2ですが、私は多分買わないかなぁと。

すでに初代ロビ君持ってますし、多分また70号以上かかるため、総額20万オーバーは確実。

カメラ機能はちょっと惹かれますけど、それが付いたからといって何かすごいことができるのか・・・というわけでもなさそうですし。

一番いいのは、初代ロビ君の”アップグレードパック”を出してくれるといいんですけどねぇ。頭部とコンピュータボードを交換したらロビ2に早変わり、というやつ。まあ、商売上出してくれるとは思えませんけどね。

まだロビ君を所有していないという人なら、間違いなくお勧めです。

Robi(ロビ) 組立代行バージョン

真っ赤なiPhone 7/7 Plus 新しいiPad iPhone SE容量増加版が3月25日から発売

夕べはApple Storeが停止していたらしく、復帰と同時にこんな製品が登場してました。

アップル、iPhone 7 / Plusに新色「レッド」を追加。3月25日国内発売「RED SPECIAL EDITION」 - Engadget 日本版

まずは赤いiPhone 7/7 Plus。シャアか!?

容量は128GB、256GBの2種類。価格は他色と同じ。

過去にもiPod nanoなどで展開していた「(PRODUCT) RED Special Edition」という位置づけの商品ですが、とうとうiPhoneにも登場ですね。これでiPhone 7/7 Plusのカラバリは6色(ゴールド、ブラック、ジェットブラック、シルバー、ピンク、レッド)になります。

きれいな色ですが、傷がつきやすそうなので透明ケースに入れるなど注意が必要そうですね。

続いて新しいiPad。

アップル、9.7インチiPad(無印)発表。3月25日注文開始、3万7800円から。iPad Air 2後継 - Engadget 日本版

9.7インチ版の新しいiPadが登場です。

これまでのiPad Air 2のプロセッサがA8XからA9に変更。

今までのAirよりほんのちょっと厚く・重くなったみたいです。

Wi-Fi版で32GBが37,800円、128GBが48.800円。Wi-Fi+セルラー版で32GBが52,800円、128GBが63,800円。こちらはちょっとお安くなってます。

なお、iPad mini 4は128GBのみとなり、価格はWi-Fi版が45,800円、Wi-Fi+セルラー版が60,800円になりました。

iPad Proの方は変更なし。廉価版iPadがよりお手頃となったのが大きな変化点ですね。

続いてiPhone SEですが、

アップル、iPhone SEの容量を倍増。32GBと128GB、価格は据え置き4万4800円(税別)から - Engadget 日本版

こちらは容量アップされて、16GB/64GBが32GB/128GBになりました。価格は変わらず。

単なる容量アップですが、使い勝手はかなり上がりますね。16GBだとちょっと足りないことが多いですが、32GBあれば私くらいならさほど困りません。

そういえば、ワイモバイルがこのiPhone SEを扱うことになったそうです。

ワイモバイル、「iPhone SE」を3月25日発売 32GB・128GBの2モデル - Engadget 日本版

MVNOまでとはいきませんが、安いことは安いですからね、ここも。

近所のイオンでもよく客引きやってますけど、SEが入ればかなり捗るんじゃないでしょうかね。

この時期にいきなり地味な変更点ですが、ちょっと新しいiPadはうらやましいかなぁ。1年待てばよかったですね。iPhone SEも何気にうれしい変更かも。

会社用にiPhone 5sを使ってますが、次の会社用iPhoneはSEにしたいなぁなんて思ってたりします。大きさがちょうどいいですし。

でも、できればSIMフリーのiPhone SEをMVNOサービスに展開してくれないでしょうかね?ワイモバイルだけというのもちょっと不公平ですし。

JEDirect iPhone SE 5 5s ケース 衝撃吸収バンパー アンチスクラッチ(クリア)

2017年3月22日 (水)

軍手で瞬間接着剤を使わないで!という警告がTwitterにて拡散中

確かに熱を帯びるというのは認識してましたけど、やけどをするほど熱くなるという認識はなかったですね。

「軍手しながら瞬間接着剤を使わないで」セメダイン公式が警告 化学反応でやけどの恐れ

手袋・軍手をした状態で瞬間接着剤を使う際、その手袋に瞬間接着剤がしみこむと高熱を発してやけどにつながる恐れがあるそうです。

接着剤のメーカー「セメダイン」の公式アカウントがTwitter上で警告を発してます。

瞬間接着剤は空気に触れて固まるそうですが、繊維などにしみこむと空気に触れる面積が増えて、急激に化学反応が起こるため高熱になるとのこと。この接着剤が固まるという反応は”発熱反応”なんですね。

アロンアルファを作る東亞合成でも同様の警告を行ってるようです。

手袋だけでなく、たとえばストッキングの伝線を止めるため瞬間接着剤を使うと、やはり高熱によりやけどするということがあるようです。

手袋を使う場合はポリエチレン製手袋など接着剤がしみこまないタイプのものを使うよう呼び掛けてます。

こんな危険があるなんて、あまり考えたことがなかったですね、瞬間接着剤。

以前「Raspberry Piで4足歩行ロボット作ってみた」際にも多量に使用しましたが、今後も同様の変なものを作るつもりなので、気を付けないといけませんね。

川西工業 ポリエチレン手袋 内エンボス 100枚入 #2013 クリア M

IIJmioが大学生協でも取り扱い開始

ネットや家電店・ショッピングモール等で取り扱われているIIJmio(ビックSIMやイオンモバイルといった系列含む)ですが、新たに3月21日から大学生協でも扱われることになりました。

IIJ、個人向けモバイルサービス「IIJmioモバイルサービス」の取扱店舗を拡大し、全国の大学生協で販売開始 | 2017年 | IIJ

私も大学時代は生協にずいぶんお世話になったものですが、学生にとってはお手軽にMVNOサービスを始めるきっかけになりそうです。

初回手数料は3,000円(税抜)、プランは通常のIIJmioのものと同じ。

なお、6月30日までは月使用量を1年間1GB増量してくれるキャンペーンを実施中とのこと。

ドコモ回線版、au回線版両方が扱われているため、自身の所有している端末によって選べます。

そういえば、日本通信がSoftbank版iPhoneで使えるMVNOサービスを開始しましたね。

ソフトバンク回線のMVNO、日本通信から開始 | SIMチェンジ

IIJも追従してくるでしょうか?

最近、Softbank版の中古のiPhone(5sや6あたり)が安くなってますよね。唯一MVNO SIMがないため、既存のSoftbankユーザーでない限り使えないという事情もあって、やや値段が安いようです。

という具合にMVNOサービスがより身近になりつつありますけど、これが大手キャリアの通信量値下げにつながれば一番いいんですが・・・

IIJmioプリペイドパック nanoSIM IM-B177

2017年3月21日 (火)

+SIMで日経電子版とmineoを両社お得に利用できる!?

mineoが”+SIM”というサービスを開始したようです。

+SIMってナニ? 日経電子版 + 月間5GBデータSIMの意味。MVNOが始めたスマホやSIMの「格安」以外の楽しみ方 - Engadget 日本版

この+SIMというのは”コンテンツ+データSIM”なサービスなようで、第1弾として”日経電子版”との組み合わせでのセット販売が始まる模様です。

通常なら日経電子版は月額3,889円(税抜き)、これに5GBのデータ通信を加えて月額4,946円で提供されるそうです。

ちなみにmineoのデータ通信は安い方のAプランでも月額は1,580円。つまり合計で5,469円となるところが4,946円。500円ほどお得です。

日経電子版+SIM

なお、日経電子版を契約するとどうなるのか?

私は日経電子版(無料)に入ってますけど、日経新聞(電子版)の有料記事を月に10個までしか読めません。それ以上読みたい場合は有料の契約に入らないといけません。

まあ、私の場合はそれで事足りますけど、役職が上の方や経営者レベルの人なら有料版も必要かなぁと思うこともありますね。

横並びなMVNOサービスの中で、このサービスはなかなかいいところをついているかもしれません。

mineo プリペイドパック 1GB NanoSIM (au 4G LTE対応)開通期限2017年6月末

iPhone 6sの”バッテリー交換プログラム”やってみた

発売直後のiPhone 6sで、バッテリー残量がまだあるのに突然電源が落ちて、充電ケーブルをつながないと起動しなくなるという不具合があるそうです。

該当するiPhone 6/6sシリーズならバッテリーを無償交換してくれるプログラムがすでに始まってます。

が、私のiPhone 6sは特に不具合もなく・・・

といいたいところですが、実は1~2か月ほど前に一度起こりました。

バッテリーは70%ほど残っていたんですけど、突然ダウン。

電源ボタンを押しても、びくともしません。

自宅だったのでそのまま充電ケーブルにつなぐと、あっさりと起動。残量も70%ほどでした。

てことで、薄々該当iPhoneだろうなぁという自覚はあったんですが、その後不具合も起こらず、Appleの修理プログラムって予約しづらい、結構待たされる、というイメージもあってほったらかしにしておりました。

が、この記事を見て、突然交換する気になりまして。

iPhone 6sの電源が落ちる不具合 該当していたのでバッテリーを無償で交換してきた - ITmedia Mobile

そういえば、バッテリー交換してもらえばバッテリー自身は新品になるんですよね。これはなかなかおいしい話じゃないかと思い立ったわけでして。

Img_2767

なお、購入して1年半経過。バッテリーは13%消耗。”Good”ですけど、消耗はしています。

まず、本当に該当製品かどうかを確認。以下のサイトにアクセスして、シリアル番号を打ち込みます。

iPhone 6s が突然シャットダウンする問題に対するプログラム - Apple サポート

Img_1257

ああ、やっぱり該当してましたね。

てことで、うちから近いところのサービスプロバイダに予約を入れます。

この辺りだと、名古屋栄のApple Storeか、岡崎の方にもあるらしいと聞いたことがありますが。

調べたらうちの比較的近所にあるエディオン豊田本店内にあることが判明。

Img_1258

予約したのは3月20日の朝でしたが、空きがあったので予約。

で、もっていく前にやることは二つ。

まずiTunesでiPhoneの完全バックアップを実施。

そしてiPhoneの「設定」-「iCloud」の下の方にある「iPhoneを探す」をオフにしておきます。

Img_0770

これらを実施したのち、さっそく行ってきました。

エディオンですが、ここだけ”キタムラ”なようです。

Img_0771

予約時間に伺うと、早速店員さんがてきぱきとチェックしてくれました。

なぜかBluetoothに不具合ありと出てくるんですけど・・・別に直前まで使えてましたけどねぇ。

やり直すとチェック通りました。なんだったんでしょう?

Img_2768

このiPadでいくつかの同意文書にチェック、住所などを入力、最後に自筆でサイン。

Img_0773

手続きが終わると、10分ほど奥のスペースで交換作業してました。

Img_0775

再びチェック。

今度はカメラが引っ掛かりました。

ただし撮影してみるとなんら問題なく使えたため、スルー。

Img_0783

20分ほどで完了。最後にこんな書類をもらって帰りました。

ごらんのとおり、0円です。

Img_2770

Battery Doctorで確認すると”100%”に戻ってます。

バッテリーだけ新品に復活。

わりとあっさり終わりましたね。

私のiPhone 6sは不具合なしとはいうものの、バッテリー持続時間がちょっと短くないか?と思うことはありました。

まあ比較対象がiPhone 6 Plus、7 Plusですから、短くて当たり前のような気もしますけど、それにしてもちょっと早く減りすぎない?と思うこともしばしば。

これが直ってくれてるとありがたいんですが・・・ちょっと様子見してみます。

それにしても、最近は正規サービスプロバイダって増えてるようなので、意外と近くにあるかもしれません。

修理に出すのが面倒で、無償交換プログラム対象なのに放置している方が見えたら、ぜひ一度調べてみた方がいいかもしれません。

Anker PowerCore 10000 (10000mAh 最小最軽量 大容量 モバイルバッテリー) iPhone&Android対応 *2016年8月末時点 A1263011

2017年3月20日 (月)

iPhoneの裏にAndroid!?な多機能ケース”Eye”

iPhoneの裏にAndroidが引っ付いたケースというのはすでに存在してますけど、こいつはただAndroidを内蔵しただけではないケースです。

Eye - The Smart iPhone Case by ESTI Inc. — Kickstarter

現在Kickstarterにて資金募集中の案件、背面に5インチのAndroidを内蔵したiPhone用ケースです。

ただ背面にAndroidを引っ付けただけのケースではありません。いろいろな機能がついてます。

まず、Androidとしてのスペックですが、画面はiPhone 6/6s/7用のケースには4.7インチ(1334×750)、iPhone 6 Plus/6s Plus/7 Plus用のケースには5インチ(1920×1080)のAMOLEDを搭載。

SoCは不明、メモリは3GB、ストレージは16GB(microSDにより最大256GBまで拡張可能)。

Androidのバージョンは最新版の7.1のNougat(ヌガー)を搭載、バッテリー容量は2,800mAhでAndroid用だけでなくiPhone側のモバイルバッテリーとしても使用可能。

ワイヤレスチャージにデュアルSIM(4Gモデルのみ?)、NFCまで搭載しているそうです。

なお、iPhoneのカメラ画像を写すこともできるため、iPhoneの背面カメラを使ってセルフィを撮ることもできるそうで。

ただしAndroid側にはカメラはついてないようですね。もっとも、iPhone側を利用すればいいだけですが。

また、iPhone 7/7 Plusで廃止された3.5mmイヤホンジャックも使えるようになります。

Android側の画面はAOD(Always on Display)にも対応しているため、画像を表示しっぱなしにできるそうで。

お手軽に着替えができるケースとしても利用できますね。

あとはオリジナルのFlappy Birdがプリインストールされてるそうですが・・・まあ、これはいらないかな。

とまあ、これだけいろいろついててお値段は現在119ドルのもの(4G対応版は149ドル)がまだ入手可能。製品版では189ドル(4G版は229ドル)となる予定だそうです。2017年8月に発送予定。

値段のわりに豪華な機能。しかし、安価なAndroidって結構クセがありますからねぇ。うちのZenfone 4でも思い知らされましたが、動かないアプリがあったりして不便なことも多いですし。こればかりは使ってみないと何ともわかりません。

AndroidとiPhoneを2台持ちにしている人なら願ったりかなったりの製品。最新版のAndroid 7.1まで搭載しており、なかなか悪くない製品かと。

【LIHOULAI】iPhone 7 Plus (5.5 inch) 専用バッテリー内蔵ケース モバイルバッテリーケース スタンド機能付 8000mAh 充電ケース (ジェットブラック)

iPhone 7上でWindows XPを動作させた動画

意味があるかどうかは別として、心意気は買いたいですね。

iPhone7上でWindows XPが動作している動画が公開される – iBitzEdge

iPhone 7上でWindows XPを動かしているところが動画で公開されているそうです。

ごらんいただくとよくわかりますが、動作速度はお世辞にも早いとは言えません(むしろ”遅い”)。が、かつてポケットの中にWindows XPマシンを入れて持ち歩きたいと思っていた方には朗報かもしれません。今ならその夢、かないます。

もっとも、近日中にWindows 10がARM対応されるという話もあり、場合によってはポケットの中に入るWindows 10マシンが当たり前になるかもしれないため、あまり意味はなさそうですね。

ネットブックが流行ったころに出ていたら、こんな速度でも欲しがる人はいたかもしれませんね。多分、このブログを始めたころの私なら、ちょっと欲しかったかも。VAIO Pに手を出していた頃ですし。

Microsoft WindowsXP Home Edition SP2 日本語 OEM DSP版 CD-ROM   メモリ セット品

2017年3月19日 (日)

70ドルの偽iPhone 7 Plusの出来は!?

まあ、やはりというか、値段相応のようです。

たった70ドルで買った偽物の「iPhone 7 Plus」と、本物の「iPhone 7 Plus」を比較した動画が公開 | CoRRiENTE.top

偽iPhone 7 Plusを入手し、本物と比較した動画が出ています。

外観は思いの外そっくり。細かいところに違いは見られるものの、ホーム画面までは見分けがつきません。

が、実際に動いているところになると、違和感のあるキーボード、そして明らかに遅い動作。

ついにイライラがたまって投げちゃいます、この方。

で、中をばらしてみると・・・デュアルカメラの片方はフェイク、中の作りもなんだか安っぽい。

まあ、お値段が10分の1以下ですから、そんなものでしょうね。

70ドルでこれならまあよくできた方だと思いますけど、これが”本物”と称して売られている可能性もありますよね。こんなものに正規の値段払って入手した人は発狂しそうです。

私は70ドルでも要らないかなぁ。Android端末としてちゃんと動いてくれるわけでもなさそうですし、話題づくり以外にはあまり使い道がなさそうです。

できるポケット ドコモのiPhone 7 Plus 基本&活用ワザ100

Nintendo Switchが早くもハッキング

Nintendo Switchが早くもハッキングされたそうです。

ニンテンドースイッチ、早くもハッキングされる。 – すまほん!!

どうやら、Webkitのセキュリティの脆弱性をついたようで、以前のiOSやPS 4にもあったそうです。

ハッキングされたからどうしたという話ですけど、ハッキングされるということは、内部解析されて違法ゲームを入れたりできちゃうかもしれないわけです。穏やかな話ばかりではなくなりますね。

ところで、Nintendo SwitchってFreeBSD系OSなんですね。PlayStation 4と同じだとか。Linux系ではないですね。まあ、OSは何であれ、ハッキングされるときはされちゃいますね。

Nintendo Switch フィルム 【KuGi】 Nintendo Switch 専用 ガラスフィルム 硬度9H ラウンド加工処理 飛散防止処理 任天堂 Switch 専用 耐久 0.26mm 薄型 貼り易い 指紋防止 気泡防止 高透過率 ニンテンドー スイッチ 専用 液晶保護強化ガラスフィルム 保護シート

2017年3月18日 (土)

IBMが数年以内に汎用の量子コンピュータを公開!?

スパコンの京でさえ何年もかかる計算を短時間で解いてしまうといわれる量子コンピュータ。

より現実的に使える量子コンピュータを数年以内に完成させようとIBMが取り組んでるそうです。

IBM、現行スパコンを超える「汎用」量子コンピュータを数年内に公開へ - PC Watch

ところでこの量子コンピュータですけど、あらゆる計算でスパコン以上の速度が出せると言わけではありません。

量子コンピュータが期待されているのはいわゆる「巡回セールスマン問題」と呼ばれる”組み合わせ最適化”問題を短時間で解くこと。

例えば、日本中にあるすべての都市を最短でまわるためにはどういう順に回ればいいか?という問題をスパコンを使って総当たりで解こうとすると、それこそ何億年もかかってしまうほどの膨大な組み合わせになるそうですが。

これを「量子アニール」を用いて一発で最適解を探し出せるというのが量子コンピュータの特徴、だそうです。

例えばディープラーニングでは多くの教師データを用いて多層のニューラルネットワークを形成するわけですけど、その際の最適化計算もこれを使えばかなり短時間で終わることができる、かもしれません。

量子コンピュータについてめちゃくちゃ詳しいわけではありませんが、組み合わせ問題の複雑さは目の当たりにしているため、量子コンピュータの登場には期待しております。

この量子コンピュータの性能を決めているのが”量子ビット”の数。従来5qubit(量子ビット)だったものが20qubitとなり、汎用にするためにはこれをさらに50qubitにする必要があるようです。

わりと夢物語だった量子コンピュータですけど、だんだん現実的になりつつあるようですね。ただ、従来のコンピュータでは不可能だった複雑な暗号コードを瞬時に打ち破ることも可能になるかもしれないため、悪用される懸念もあるそうです。便利な反面、そういう厄介な事態を引き起こすというのもまた、コンピュータの宿命でしょうかね?

量子コンピュータが人工知能を加速する

BuffaloのNAS”LS210D”のアクセスランプがオレンジ色に!?原因は・・・

突然うちのBuffalo製NAS”LS-210D”のアクセスランプが妙な色に変わりまして。

Img_0724

普段は白っぽい色ですが、ちょっと赤みのかかったオレンジ色というんでしょうか、急にこんな色に変わりました。

再起動したんですが、結局この色に戻ってしまいます。

ただ、NAS自体は何ら問題なく使えるんですよね。いったいどんなトラブルが起きたのか!?

心配になって、Buffaloのサイトへ行くと、こんなのを発見。

LinkStaiton前面のランプが橙色で点灯しています/NasNavigator2で「I52」と表示されます - アンサー詳細 | BUFFALO バッファロー

なんと・・・ファームウェア アップデートのリリースを知らせる色だったんですね。

いかにも警告っぽい色なのでやばい事態でも発生したかと思ったんですけど、案外大した理由じゃなかったですね。もうちょっと穏便な色で知らせてほしいものです。

てことで、NASの管理画面にアクセスし、アップデートすることにしました。

Bnas01

詳細設定から「admin」にアクセスし「アップデート」を選択すると、こんな画面が。

「アップデート実行」をクリックします。

Bnas02

あとはひたすら待ちます。

Bnas03

しばらくすると、完了です。

Img_0730

メニューなど、特に変わった感じはしませんが、ランプの色は元に戻りました。

Buffalo製NASのアクセスランプが変な色に変わっていたら、まずは詳細設定を確認しろってことですね。

BUFFALO リンクステーション 210シリーズ ネットワーク対応HDD(NAS) 2TB  LS210D0201N [フラストレーションフリーパッケージ(FFP)]

2017年3月17日 (金)

スマホと連携して自撮りカメラとして使える超小型カメラ”Foxshot”

大き目のさいころサイズなカメラというのは最近多いですけど、その場でスマホに送れる超小型カメラというは初めてです。

どこにでも取り付けて撮影!スマホ連携の小型1080pHDカメラ「Foxshot」はたったの39ドル | Techable(テッカブル)

現在Kickstarterで出資者募集中なこの小型カメラ”Foxshot”。

まず、とにかく小さいです、このカメラ。正面からのサイズはよく見かける大きさですが、厚さが薄い。さいころサイズなんてものじゃない。なんというか、クッキーのようなサイズです

フルHD動画が撮影可能でこのサイズ。Wi-Fi搭載で、専用アプリでスマホからコントロール可能。

柱や木に張り付けて自撮りしてますが、まさにスマホとの連動ならではの使い方です。

防水性は備えているため、雨の日でも気にせず撮影可能。なかなか優秀です。

ただ、どれくらいバッテリーが持つのかはわからず。この大きさですから、もってせいぜい20~30分程度じゃないかなぁ。すぐに充電が必要じゃないかと思われます。

お値段は39ドル。日本円で4,500円。すでに目標金額を突破してますが、4月24日まで受付で、夏に発送予定。

SONYのレンズカメラ以来、この手のカメラがちょくちょく出てますけど、これはスマホと一緒に持ち歩いても邪魔にならないサイズ。いずれこれか、これと同等の製品が日本にも上陸するものと思われます。多分、サンコー or 上海問屋経由で。

UYIKOO 丸形スパイカメラ 360°全角度撮影 1200万画素

海外旅行の現地SIMでデータ通信できない場合の対処法

海外旅行先で現地SIMを調達したものの、データ通信ができない・・・なんてトラブルに見舞われた方の、対処法に関する記事があります。

iPhoneがハワイのSIMでデータ通信できない時の対応方法 | はじめてのハワイ旅行

この方のiPhone、MVNOを使っていらっしゃるのか構成プロファイルが入っているようです。

で、ハワイの現地SIMを使う際はこれを消さないと使えなかったようです。

現地SIM使用にあたり、

・ 日本国内で使っている構成プロファイルを消去

・ 再起動

これでようやく使えるようになったみたいです。

が、当然考えられるのは、日本に帰ってきたらWi-Fiが使えるところまでいかないと今度は日本で使えなくなってしまうということ。

構成プロファイルを消してしまった以上、これを再インストールしないと使えないのは当たり前ですよね。

ところが、これをすぐに使える状態にする技が書いてありました。

・ あらかじめPCで構成プロファイルをダウンロードしておく

・ iPhoneが受信できるメールアドレスに、PCからこの構成プロファイルを添付ファイルで送信

・ 日本に帰ってきたときに、添付ファイルを開いてインストール

なるほど、これならWi-Fiがなくても構成プロファイルを入れられますね。

このとき注意が必要なのは、現地SIMを使う際に構成プロファイルを入れた場合、そのプロファイルを消さない限りインストールできなくなってしまうこと、でしょうか。

Android端末だと手動で接続設定を書けるんですが、iPhoneは構成プロファイルってやつをいちいち落とさないと使えないため、こういう時不便ですよね。

海外旅行にSIMフリーなiPhoneをもっていかれる方は、こういう技があるということで。

ZIP SIM 通話+SMS+データ通信500MB、7日間 アメリカ用プリペイドSIM (※旧名称 READY SIM 2016年4月より商品名・パッケージが変更となりました)

2017年3月16日 (木)

湿度が下がったら自動的に加湿器をオンしてくれるように改造

家電機器の改造は危険なので、要注意です。が、こういう家電がそろそろ出てもいいんじゃないかと。

湿度が下がったら電源オンになるよう加湿器を改造してみた - 週刊アスキー

ASCII倶楽部にて、湿度が48%以下になったら自動的に起動、52%を超えると停止する加湿器の製作を紹介しているようです。

確かに加湿器ってあまりつけっぱなしにするとカビが生える原因になったりしますし、何よりもタンクが空になって補充するのが面倒。

てことで作られた電子工作事例のようですが、私がやるなら直接ではなく、Raspberry Pi+赤外線リモコンセンサーの組み合わせでやるかなぁと。これなら家電を直接改造しなくてもできますし。

そうでなくても、最近は”AI執事”なるものが登場しつつあります。Amazonのやつも今年中には日本上陸らしいです。加湿器だけでなく、照明、エアコン、扇風機あたりを自動で動かせる日もそう遠くはなさそうです。

LinkJapan 「eRemote mini」 イーリモートミニ スマホで家電をコントロール 外からも可能

イオンモバイル追加SIM2枚目!

先日イオンモバイルのシェアプラン化&SIM追加したばかりですが、もう一枚SIMを追加いたしました。

Img_1252

今度はすぐに受付してもらいましたが、以前は1時間で済ん発効までの時間が1時間半もかかりました・・・なかなか楽にはいかせてもらえませんね。

しかし今度も1円。キャンペーン期間中、しっかり利用させてもらいました。

Img_1253

とりあえず、iPhone 6sに設定。

これで私のメインで使うiPhone(iPhone 5s、6 Plus、6s、7 Plus)にはすべて通信可能なSIMが入った(イオンモバイル×3、0SIM×1)ことになります。

Img_1256

ごらんのとおり、SIMが3枚になりました。

1枚目のみ音声付、2枚はデータ通信専用(SMSなし)。

3枚までは今の月額で維持可能なため、当面これで運用するつもりです。

ただ、0SIMはこのまま寝かせて自動解約かな。最近は通信状態も悪いですし、イオンモバイル一本で行こうかと。

ところで、今回こんなものをいただきました。

Img_1254

どうやらGoogleが発行している冊子のようです。

Img_1255

中身は「こんなときどうググる?」的な内容。まあ、PCでよく検索する人ならいちいち読まなくてもわかる内容ですが、最近は高齢の方も契約するみたいですし、PCをあまり触ったことのない人向けの冊子でしょうかね?

【完全ガイドシリーズ156】 SIMフリー完全ガイド (100%ムックシリーズ)

2017年3月15日 (水)

かなり危険な自作火炎放射ロボット

なんだかシュールすぎる動画なので思わず紹介。

火炎放射ロボットを作ってみた。 | Maker is You!

Arduinoと3Dプリンター、そして簡易の火炎放射器を組み合わせて作った自作ロボット。

テストに使った人形といい、雑な消火作業といい、やる気があるのやらないのやら。

頑張れば作れそうな電子工作ですね。ただし、頑張る理由が見当たりませんが・・・

Arduinoをはじめよう 互換キット UNO R3対応互換ボード 初心者専用実験キット 基本部品セット20 in 1 Arduino sidekick basic kit

Apple Watchはこんなことまでしてくれる!?紹介記事

そういえば、もうすぐApple Watch発売から2年になりますね。

発売前後の話題に比べると、今はまるで話題にもならなくなりつつあるApple Watch。

そんなApple Watchの活用法を書いた記事があったので紹介しておきます。

こんなことまで管理してくれるの!? Apple Watchがタダの時計じゃない理由 | GetNavi web ゲットナビ

私もそうですが、Apple Watchを”健康管理”に使うのが主流みたいですね。

上の記事もおおむねそんな内容です。

それにしても「Standland」というアプリの存在は知りませんでした。今度落して使ってみようかと。

そろそろ2年になるApple Watch。

発売日に入手した私も、今ではほぼ健康管理のためにつけてるって感じですね。

毎日消費カロリーとスタンド時間、歩数を確認しています。

心拍数は時々確認する程度。本当はこれが一番大事なんでしょうけどね。なかなかすっと見えるものじゃないので、ついおろそかになります。

もちろん”時計”ですから、時間の確認にも使用。天気や気温の情報もついでに見られるのが便利です。

他に使うアプリは音楽とタイマーくらいでしょうか。電車やバスに乗ってる時の音楽のコントロールや、インスタント食品の時間測定に使用。

他のアプリは全く使いませんね。いろいろ入れましたが、たまに”乗換案内”を使うくらいでしょうか。

本当はこの”アプリ”に期待して買ったんですが、結局は健康管理のためにつけているといった感じ。まあ、それでも2年以上使えるなら元は取れてますけど。

それにしても、もう2年近く経ちますが未だにバッテリーは持ちますね。一日つけて40~50%残る感じ。まだへたっている感はありません。

3代目のApple WatchはGPSに加えついに通信機能を内蔵するらしいとのうわさですが、バッテリー持続時間は現状を維持してほしいですね。

といっても、まだ当面買い替える予定はなし。あと1年は使えるかなぁ。でも、次もApple Watchにするつもり。今の2並みの機能で十分なので、3が出た時に安くなった2を買おうかと考えてます。

UGREEN Apple Watch 充電ケーブル Apple Watch用モバイルバッテリー 2200mAh アップルウォッチ iphone 同時充電 MFI認証済み

2017年3月14日 (火)

Windows Vistaのサポートはあと1か月!

あらら、もうそんな時期なんですね。

「Windows Vista」のサポート終了まで残り1ヶ月 | 気になる、記になる…

すっかり忘れてましたが、Windows Vistaのサポートは2017年4月11日まで。つまりもう一か月を切ってます。

ちょうどEeePC 4G-Xが出る前に登場し、グラフィカルなUIで話題をさらったものの、当時のPCには荷が重い仕様だったため”失敗作”のレッテルを張られてしまった不運のWindows。

Vistaが出た当時はまだメモリが512MBというのが珍しくなかったころ。Raspberry Pi B並みのメモリで動かすにはいささか重すぎでした。

その後、CPUやメモリ等のハードの環境が追い付き、また軽量化にも力を入れたWindows 7では挽回できましたけど、Vista自体はほとんど普及することなく短命で終わってしまいました。

なにせその直後に出たEeePC 4G-Xでは当初Linuxが採用されたんですが、これに対抗する形でネットブック向けにXPが復活。

Windows 7が出るまでXPが再び全盛という事態を招いてしまいました。

そんな私も、一時Windows Vistaを使ってたんですよね。

連休中のパソコン増強: EeePCの軌跡

2009年4月30日の記事に、TS抜きチューナー”QRS-UT100B”とともに購入。

エディションはもっともしょぼいBasicでしたが、当時そんなに困らなかったですね。

Aeroが使えないとか言われてましたが、あっても使いませんでしたよね、そんな機能。

その後Windows 7を買う(2012年5月1日の記事:Windows 7への移行完了: EeePCの軌跡)までの3年間、何ら問題なく使えてました。悪いOSではなかったですよね。

しかしOSの歴史では存在の薄いまま終焉を迎えることになりそうです。

その後7で盛り返し、8や8.1でまた微妙な空気に逆戻りし、10で再び盛り返そうという歴史を歩んでますが、徐々にARM系チップ+スマホにおされ気味な今日この頃。

フル版Windows 10にもARM対応版が出るとアナウンスされてますが、Vistaが出たころを思えばそんな時代が来ること自体想像すらできなかったことです。

そんなVistaですが、ついにサポート終了。

ほとんど使っている人はいないでしょうけど、セキュリティのことを考えると、Vistaを使っているユーザーは速めにWindows 10への乗り換えを考えた方がいいでしょうね。

Microsoft Windows 10 Home Anniversary Update適用版 32bit/64bit 日本語版 (最新)|USBフラッシュドライブ

1.2万円のHMD型Androidデバイス

一応VRヘッドマウントデバイスですが、Oculus RiftやHTC Viveのような高性能な奴ではなさそうです。

実売11,999円のHMD型Androidデバイスが上海問屋から登場 - AKIBA PC Hotline!

要するに、よくあるスマホをヘッドマウントしてしまうアダプターのようなものといったところ。ただし、完全にヘッドマウント専用です。

お値段は11.999円で、Android 4.4搭載、解像度は1,280×720、CPUは1.3GHzクアッドコア、メモリ1GB、ストレージ 8GB。画面サイズは5インチですが、取り付けると60インチの画面を3m離れたところから見ているようなサイズになるとのこと。

加速度センサーはついているんですが、ジャイロセンサーは非搭載。このため、360度動画で方向を変えるには上の写真のようなコントローラーが必要なようで。

3DのVRな動画より、2D動画を手軽に大画面で見るために使うとよさそうです。

そういえば、先日HTC Viveを体験しました。なかなかすごいハードウェアでしたが、VR画面中にリフトに乗って動くところがあったんですけど、実際には動いていないのに画面全体が動いたため、なんというかちょっと酔いました。

VR酔いってやつですね。私が長時間つけるのはちょっと辛いかもしれません。

JAPAN AVE.・ VRヘッドセット / VRゴーグル 【日本正規品】 VR バーチャルリアリティ 3Dメガネ 超3D映像 (VR BOX) ヘッド マウント ディスプレイ iphone SE/6S/6plus android 各種スマホ対応 (3.5-6.0inch) JA490 日本語取扱説明書付 [メーカー12カ月保障]

2017年3月13日 (月)

Raspberry Pi Zero向け小型カメラモジュール

Raspberry Pi Zero Ver.1.3と、海外では発売されたばかりのZero Wでは、純正のカメラモジュールが使えますが、通常サイズのRaspberry Piに合わせたモジュールではちょっと大きすぎ。

ところが、Raspberry Pi Zeroサイズのカメラモジュールというのがあるようです。

ラズベリーパイの調理法 Pi カメラをもっと小さく - Pi Zero 用ミニカメラモジュール

これなら確かにちょうどいいサイズですよね。

通常のカメラモジュールだと、普通のRaspberry Piで使うにもちょっと大きすぎるんですよね。これRaspberry Pi 3で使う方法ないんでしょうかね?ちょっと気に入りました。

肝心のRaspberry Pi Zero Ver.1.3やWが入手できていないため、うちではまだ使えませんが、いずれそのあたりを手に入れた暁には・・・

Raspberry Pi Zero Camera Module - ミニ カメラ モジュール for Pi Zero

TensorFlowで「けものフレンズ」の”フレンズ判別器”作ってみた

先日の記事(OpenCVによる”アニメ顔”検出)はこの伏線だったんです。

子供向けのような絵柄なのに、出てくるキャラがあまりにもIQ低め能天気なのに、背景にある世界観があまりにもシビアで意味深すぎて話題の「けものフレンズ」。

私もすっかりはまってます。サーバルちゃんが可愛すぎて死にそう、毎週楽しみで夜も眠れません。

ところがだんだんと登場人物・・・いやフレンズが増えてきたため、そろそろどの顔が何のフレンズさんかわからなくなってきた今日この頃。

こういう悩みにこそ”人工知能”の出番

てことで、TensorFlowを使って「けものフレンズ」の顔の画像を読み込むと何のフレンズかを答えてくれる判別器を作ってみました。

さて、それじゃあ今まで使ったTensorFlowのプログラムコードを使って…といきたいところですが。

実は今回使い勝手を大幅に向上させてます。

これまでは「TensorFlowで歴代「クラウン」の画像を判別させてみた」の記事でも参照させていただいた「TensorFlowでアニメゆるゆりの制作会社を識別する - kivantium活動日記」のコードをほぼそのまま流用させていただいてます。

これを使って”画像認識”の学習データを作るためには

(1) プログラムコードとTensorFlow実行環境を準備

(2) 教師データとなる画像と、その画像がなんの画像かをラベル分け

(3) (2)で集めた画像を訓練用(train)とテスト用(test)に分類(大体9対1)

(4) (3)の一覧リストを書いたファイル(train.txt、test.txt)を作成

という流れで、この最初の準備が大変でした。

おまけにデータを追加しようとすると、また(3)、(4)もやり直す羽目になり、これがなかなか面倒。

(1)、(2)は省きようがありませんけど、今回この面倒な(3)、(4)の部分を自動化することができました。

教師データ(今回は”けもフレ”キャラ顔画像)を準備し、それぞれがどんなキャラなのかを書いたフォルダに入れれば、勝手に(3)、(4)をやってくれるようにしました。

環境構築からの流れを以下に書きます。

(1) Windows上にTensorFlow実行環境を作成

TensorFlowがWindowsサポートしたのでインストールしてみた - デジタル・デザイン・ラボラトリーな日々

現状では、上のリンクのように「Anaconda for Windows」を入れて「TensorFlow」を入れるのが最も楽です。

今回のコードはOpenCVも使うため、上の操作に加えて

> conda install -c https://conda.binstar.org/menpo opencv3

という操作もお忘れなく。

今回はAnaconda 4.2.0 64ビット版 + TensorFlow 0.12.0が前提になってます。最新版では未確認です。

(2) ”教師データ”画像を集める

画像データを集めます。けもフレのフレンズさんの顔の部分を正方形に切り取ったものをひたすら集めてください。

動画やネットからひたすら手作業で集めてももちろんOKですが。

せっかくなんで、先回書いた「OpenCVによる”アニメ顔”検出」の記事にある通り、動画から自動的に画像を取り出させました。

取り出した画像を、フレンズさんの名前を書いたフォルダごとに分類。

Tfkemofr01

フォルダ名ですが、Windows版Anaconda+TensorFlowでは日本語が認識できないため、上のように英語表記でお願いします。

訓練させるためには、1キャラ当たり最低30枚は準備してください。正面向きの、目を閉じていないやつをチョイス。

Tfkemofr02

そのフォルダを「data」フォルダに入れて、学習用コード(cnn_train_56_a.py)と同じ階層に配置します。

注意点が2つ。

1、教師データのフォルダには画像データ以外入れない

2、各フォルダには最低でも10枚(できれば30枚以上)の画像データを入れる

これをやらないと、次の(3)のプログラムが動きません。ご注意を。

(3) 訓練実行

> python cnn_train_56_a.py

と実行すれば、各教師データからプログラムが勝手に訓練用・テスト用(9:1に分割)に分けてくれます(プログラム本体は下に載せてます)。

まさにプログラム実行者はただ教師データを準備すればいいんです!

ディープラーニングというよりスピード〇ーニングっぽいフレーズですね。

(4) 判別実行

上の訓練データを用いて、早速判別をさせてみます。

Tfkemofr03

訓練用コード「cnn_train_56_a.py」と同じ階層に、上の二つのファイル・フォルダを入れておきます。

cnn_app_56_a.py」はコード本体。「analysis」フォルダには上の教師データとは違う画像を入れておきます(コードは下に載せてます)。

Tfkemofr04

ネット上から適当に集めました。

実行結果はのちほど。

ここで訓練用コード「cnn_train_56_a.py」と判別用コード「cnn_app_56_a.py」を載せておきます。

◆ cnn_train_56_a.py

#!/usr/bin/env python

import glob
import os
import sys
import cv2
import numpy as np
import tensorflow as tf
import tensorflow.python.platform

path=os.getcwd()+'/data/'
class_count = 0
folder_list=os.listdir(path)

for folder in folder_list:

  class_count = class_count+1

NUM_CLASSES = class_count
IMAGE_SIZE = 56
IMAGE_PIXELS = IMAGE_SIZE*IMAGE_SIZE*3

flags = tf.app.flags
FLAGS = flags.FLAGS

flags.DEFINE_string('label', 'label.txt', 'File name of label')
flags.DEFINE_string('train_dir', './', 'Directory to put the training data.')
flags.DEFINE_integer('max_steps', 100, 'Number of steps to run trainer.')
flags.DEFINE_integer('batch_size', 20, 'Batch size'
                     'Must divide evenly into the dataset sizes.')
flags.DEFINE_float('learning_rate', 1e-4, 'Initial learning rate.')

def inference(images_placeholder, keep_prob):

    def weight_variable(shape):
      initial = tf.truncated_normal(shape, stddev=0.1)
      return tf.Variable(initial)

    def bias_variable(shape):
      initial = tf.constant(0.1, shape=shape)
      return tf.Variable(initial)

    def conv2d(x, W):
      return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')

    def max_pool_2x2(x):
      return tf.nn.max_pool(x, ksize=[1, 2, 2, 1],
                            strides=[1, 2, 2, 1], padding='SAME')

    x_image = tf.reshape(images_placeholder, [-1, 56, 56, 3])

    with tf.name_scope('conv1') as scope:
        W_conv1 = weight_variable([3, 3, 3, 32])
        b_conv1 = bias_variable([32])
        h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)

    with tf.name_scope('pool1') as scope:
        h_pool1 = max_pool_2x2(h_conv1)

    with tf.name_scope('conv2') as scope:
        W_conv2 = weight_variable([3, 3, 32, 64])
        b_conv2 = bias_variable([64])
        h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2)

    with tf.name_scope('pool2') as scope:
        h_pool2 = max_pool_2x2(h_conv2)

    with tf.name_scope('conv3') as scope:
        W_conv3 = weight_variable([3, 3, 64, 128])
        b_conv3 = bias_variable([128])
        h_conv3 = tf.nn.relu(conv2d(h_pool2, W_conv3) + b_conv3)

    with tf.name_scope('pool3') as scope:
        h_pool3 = max_pool_2x2(h_conv3)

    with tf.name_scope('fc1') as scope:
        W_fc1 = weight_variable([7*7*128, 1024])
        b_fc1 = bias_variable([1024])
        h_pool3_flat = tf.reshape(h_pool3, [-1, 7*7*128])
        h_fc1 = tf.nn.relu(tf.matmul(h_pool3_flat, W_fc1) + b_fc1)

        h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob)

    with tf.name_scope('fc2') as scope:
        W_fc2 = weight_variable([1024, NUM_CLASSES])
        b_fc2 = bias_variable([NUM_CLASSES])

    with tf.name_scope('softmax') as scope:
        y_conv=tf.nn.softmax(tf.matmul(h_fc1_drop, W_fc2) + b_fc2)

    return y_conv

def loss(logits, labels):

    cross_entropy = -tf.reduce_sum(labels*tf.log(logits))

    tf.summary.scalar("cross_entropy", cross_entropy)
    return cross_entropy

def training(loss, learning_rate):

    train_step = tf.train.AdamOptimizer(learning_rate).minimize(loss)
    return train_step

def accuracy(logits, labels):

    correct_prediction = tf.equal(tf.argmax(logits, 1), tf.argmax(labels, 1))
    accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
    tf.summary.scalar("accuracy", accuracy)
    return accuracy

if __name__ == '__main__':

    count=0
    folder_list=os.listdir(path)

    train_image = []
    train_label = []
    test_image = []
    test_label = []

    f = open(FLAGS.label, 'w')
    for folder in folder_list:
      subfolder = os.path.join(path,folder)
      file_list = os.listdir(subfolder)

      filemax = 0

      for file in file_list:
        filemax = filemax + 1

# train : test = 9 : 1
      file_rate = int(filemax/10*9)

      i = 0

      for file in file_list:

        img = cv2.imread('./data/' + folder + '/' + file)
        img = cv2.resize(img, (IMAGE_SIZE, IMAGE_SIZE))
        if i <= file_rate:
           train_image.append(img.flatten().astype(np.float32)/255.0)
           tmp = np.zeros(NUM_CLASSES)
           tmp[int(count)] = 1
           train_label.append(tmp)
        else:
           test_image.append(img.flatten().astype(np.float32)/255.0)
           tmp = np.zeros(NUM_CLASSES)
           tmp[int(count)] = 1
           test_label.append(tmp)

        i = i + 1

      label_name = folder + '\n'
      f.write(label_name)
      count=count+1
    f.close()

    train_image = np.asarray(train_image)
    train_label = np.asarray(train_label)
    test_image = np.asarray(test_image)
    test_label = np.asarray(test_label)

    with tf.Graph().as_default():

        images_placeholder = tf.placeholder("float", shape=(None, IMAGE_PIXELS))
        labels_placeholder = tf.placeholder("float", shape=(None, NUM_CLASSES))

        keep_prob = tf.placeholder("float")

        logits = inference(images_placeholder, keep_prob)

        loss_value = loss(logits, labels_placeholder)

        train_op = training(loss_value, FLAGS.learning_rate)

        acc = accuracy(logits, labels_placeholder)

        saver = tf.train.Saver()

        sess = tf.Session()

        sess.run(tf.global_variables_initializer())

        summary_op = tf.summary.merge_all()
        summary_writer = tf.summary.FileWriter(FLAGS.train_dir, sess.graph)

        for step in range(FLAGS.max_steps):
            for i in range(int(len(train_image)/FLAGS.batch_size)):

                batch = FLAGS.batch_size*i

                sess.run(train_op, feed_dict={
                  images_placeholder: train_image[batch:batch+FLAGS.batch_size],
                  labels_placeholder: train_label[batch:batch+FLAGS.batch_size],
                  keep_prob: 0.5})

            train_accuracy = sess.run(acc, feed_dict={
                images_placeholder: train_image,
                labels_placeholder: train_label,
                keep_prob: 1.0})
            print ("step %d, training accuracy %g"%(step, train_accuracy))

            summary_str = sess.run(summary_op, feed_dict={
                images_placeholder: train_image,
                labels_placeholder: train_label,
                keep_prob: 1.0})
            summary_writer.add_summary(summary_str, step)

    print ("test accuracy %g"%sess.run(acc, feed_dict={
        images_placeholder: test_image,
        labels_placeholder: test_label,
        keep_prob: 1.0}))

    save_path = saver.save(sess, "./model.ckpt")

◆ cnn_app_56_a.py

#!/usr/bin/env python

import glob
import os
import sys
import numpy as np
import tensorflow as tf
import cv2

path=os.getcwd()+'/analysis/'
file_list=os.listdir(path)

i = 0
label_name = []

flags = tf.app.flags
FLAGS = flags.FLAGS
flags.DEFINE_string('label','label.txt','File name of label')

f = open(FLAGS.label,'r')
for line in f:
  line = line.rstrip()
  l = line.rstrip()
  label_name.append(l)
  i = i + 1

NUM_CLASSES = i
IMAGE_SIZE = 56
IMAGE_PIXELS = IMAGE_SIZE*IMAGE_SIZE*3

def inference(images_placeholder, keep_prob):

    def weight_variable(shape):
      initial = tf.truncated_normal(shape, stddev=0.1)
      return tf.Variable(initial)

    def bias_variable(shape):
      initial = tf.constant(0.1, shape=shape)
      return tf.Variable(initial)

    def conv2d(x, W):
      return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')

    def max_pool_2x2(x):
      return tf.nn.max_pool(x, ksize=[1, 2, 2, 1],
                            strides=[1, 2, 2, 1], padding='SAME')

    x_image = tf.reshape(images_placeholder, [-1, 56, 56, 3])

    with tf.name_scope('conv1') as scope:
        W_conv1 = weight_variable([3, 3, 3, 32])
        b_conv1 = bias_variable([32])
        h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)

    with tf.name_scope('pool1') as scope:
        h_pool1 = max_pool_2x2(h_conv1)

    with tf.name_scope('conv2') as scope:
        W_conv2 = weight_variable([3, 3, 32, 64])
        b_conv2 = bias_variable([64])
        h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2)

    with tf.name_scope('pool2') as scope:
        h_pool2 = max_pool_2x2(h_conv2)

    with tf.name_scope('conv3') as scope:
        W_conv3 = weight_variable([3, 3, 64, 128])
        b_conv3 = bias_variable([128])
        h_conv3 = tf.nn.relu(conv2d(h_pool2, W_conv3) + b_conv3)

    with tf.name_scope('pool3') as scope:
        h_pool3 = max_pool_2x2(h_conv3)

    with tf.name_scope('fc1') as scope:
        W_fc1 = weight_variable([7*7*128, 1024])
        b_fc1 = bias_variable([1024])
        h_pool3_flat = tf.reshape(h_pool3, [-1, 7*7*128])
        h_fc1 = tf.nn.relu(tf.matmul(h_pool3_flat, W_fc1) + b_fc1)
        h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob)

    with tf.name_scope('fc2') as scope:
        W_fc2 = weight_variable([1024, NUM_CLASSES])
        b_fc2 = bias_variable([NUM_CLASSES])

    with tf.name_scope('softmax') as scope:
        y_conv=tf.nn.softmax(tf.matmul(h_fc1_drop, W_fc2) + b_fc2)

    return y_conv

if __name__ == '__main__':
    test_image = []
    test_filenm = []

    for file in file_list:
        test_filenm.append(file)

        img = cv2.imread('./analysis/' + file )
        img = cv2.resize(img, (IMAGE_SIZE, IMAGE_SIZE))
        test_image.append(img.flatten().astype(np.float32)/255.0)

    test_image = np.asarray(test_image)

    images_placeholder = tf.placeholder("float", shape=(None, IMAGE_PIXELS))
    labels_placeholder = tf.placeholder("float", shape=(None, NUM_CLASSES))
    keep_prob = tf.placeholder("float")

    logits = inference(images_placeholder, keep_prob)
    sess = tf.InteractiveSession()

    saver = tf.train.Saver()
    sess.run(tf.global_variables_initializer())
    saver.restore(sess, "./model.ckpt")

    for i in range(len(test_image)):
        accr = logits.eval(feed_dict={
            images_placeholder: [test_image[i]],
            keep_prob: 1.0 })[0]
        pred = np.argmax(logits.eval(feed_dict={
            images_placeholder: [test_image[i]],
            keep_prob: 1.0 })[0])

        pred_label = label_name[pred]
#        print (pred,accr)
        print (test_filenm[i],' , ',pred_label)

あまりきれいなコードではありませんが・・・これをそれぞれコピペしてお使いください。

ちなみに、ベースは「TensorFlowの画像認識コードを高解像度化してみた: EeePCの軌跡」で使った56×56のを使ってます。

さすがに今回の教師用データを配布するわけにはいかないので、こちらはご自分でご用意願います。

で、今回用意したフレンズさんの種類は27種類

8話までの画像を使ったんですが、すでにこの数です。

30枚以上の顔画像が取れたフレンズさんしか使わなかったんですけど、いったい全部で何種類出てるんでしょうかね?

なお、「OpenCVによる”アニメ顔”検出」を使った顔画像検出でほとんどのキャラは抽出できたんですが、ハシビロコウさんライオンさんマーゲイさんはほとんど抽出できず。結局、手で集めました。

ハシビロコウさんは特に顔の表情がなさすぎるので、画像集めには結構苦労します。

サーバルちゃんとカバンちゃんはさすがに全話登場しているため何百枚でも集まってしまうのですが、他とのバランスで100枚程度まで絞ってます。

27種類で200サイクルの学習を実行、これをメインPC(Corei3-3220 3.3GHz)で学習させたら2時間かかりました。うわーったいへんだねー。

で、判別した結果は

Kemono04

左が画像のファイル名、右が判定結果。

黄色が正解だった項目を示してます。

31枚中、正解は21枚。判別率67.7%。

同人系の画像の判別率が半分程度と低かったですね。もうちょっと教師データがあれば認識率上がるかもしれませんが。ハカセと助手も認識率低く、ほとんど外れでした。

なぜか”マーゲイ”さんに判定される事例が多いのが気になるところ。

あの顔って、もしかしてけものフレンズでは”標準形”なんでしょうか?

で、ちょっと調子に乗ってこんな実験も。

Kemono06

デジカメで撮った画像から取り出したリアルな人の顔画像で判別させてみました。

幼稚園の運動会の画像を使ったせいか、様々な顔を大量に取得(約100枚)。

Kemono05

結果はこんな感じ(名前の後ろの数字は気にしないでください)。

カバンちゃん、コウテイペンギンさん、イワトビペンギンさんが多いですね。スナネコ、ライオンもちょくちょく。

なお、私の顔写真が3枚混じってましたが、判定は「カバン」×2、「コウテイペンギン」×1。私はどうやら”カバンちゃん”らしいです。

なぜか次男は”トキさん”に分類されることが多いですね。確かに音痴ですが。

妻と長男は「コウテイペンギンさん」と無難な(?)分類結果に。

先のOpenCVでの顔検出のコード等と組み合わせて、顔を撮影すると「君は〇〇なフレンズだね!」って言ってくれるやつを作ろうかとも考えてますが。

正直、大して似ていない画像に判別されることが多いので、ちょっとモチベーション下がってます。

なお、まだ「けものフレンズ」は終わっていないので、今後画像を増やすことも可能。まだ8話までのデータですし。

今回、いちいち学習データの一覧リストを作らなくても「data」フォルダに画像ファイルを入れたフォルダを放り込んだら勝手に訓練できるようになったので、判別器のアップデートがずいぶん楽になりました。

同じコードを私の職場にも送って使ってますが、画像データが増えたらすぐ実行すればいいだけなので、運用も楽になりました。もっとも、私しか使ってませんけど。

将来的には、画像が増えたら所定の場所に登録してもらい、毎晩訓練コードを自動起動させて、翌日にはアップデートされた画像認識が使える、なんて運用も可能にできます。

ちょっと手軽にWindows上でTensorFlowの画像認識を実験してみたいという方、ぜひこちらのコード、おすすめです。

けものフレンズBD付オフィシャルガイドブック (1)

2017年3月12日 (日)

百均のiPhoneケースもアイデア次第で豪華に!?

たかが百均、されど百均。百均に笑うものは百円で泣くといわれるほど(?)便利グッズのあふれた百円ショップがあちこちにありますが。

ただ、iPhoneのケースに関してはそのままではあまりお世辞にもかっこいいとは言い難いものばかり。

ですが、そんな百均のiPhoneケースも知恵と工夫でこんなに変わるそうです。

スマホケースの自作アイデアまとめ!100均ケースの簡単・おしゃれアレンジ │ TIPS │ 自分らしいDIYスタイルを追求するウェブMAG │ DIYer(s)

こちらには百均の材料メインで作ったとは思えないほどの出来栄えなケースが出ております。ちなみにこのケースは白いケースにマスキングテープを張り付けたもの。

こちらは紫外線で硬化するレジンを使い、ケースに張り付けた押し花をコーティングしたもの。なかなかの出来栄えですね。

こういうもふもふしたケースってなかなかありませんからね(壊れやすいので)。すぐに壊れちゃうかもしれないけど、こんなのを持ち歩いたら目立つこと請け合いです。

ちょっと痛そう・・・

他にも個性的なケースがいくつか紹介されています。

気分を変えたいときに、ここを参考にオリジナルのケースを作ってみるのはいかがでしょうか?

Spinas(スピナス) iphone 6 / 6s / 6 plus / 6s plus / 7 / 7 plus ケース キラキラ ウォーター ラメ クリア カジュアル おしゃれ カップ ケーキ スイーツ かわいい 女 子 スマホ ケース 3color 【 ピンク ホワイト ブルー 】 流れる キラキラ ラメ が かわいい (iPhone6 /6s , ブルー)

OpenCVによる”アニメ顔”検出

急にアニメ動画から顔を取り出したくなったので、OpenCV用のアニメ顔検出器を探してたんですが、ここのを使うと便利なようです。

OpenCVによるアニメ顔検出ならlbpcascade_animeface.xml - デー

よくある”顔検出器”ではアニメ顔をほとんど検出してくれませんが、ここにある”lbpcascade_animeface.xml”を使うとほんとによく検出してくれます。

入手元:http://anime.udp.jp/data/lbpcascade_animeface.xml

てことで、動画から直接顔を検出するコードを作りました。

◆「movie2face.py

import cv2
import glob

video_path = './(動画ファイル名)'
video_name = video_path[2:8] + '_'
output_path = './movie/'
out_face_path = './face/'
xml_path = "./lbpcascade_animeface.xml"

def movie_to_image(num_cut):

    capture = cv2.VideoCapture(video_path)

    img_count = 0
    frame_count = 0

    while(capture.isOpened()):

        ret, frame = capture.read()
        if ret == False:
            break

        if frame_count % num_cut == 0:
            img_file_name = output_path + str(img_count) + ".jpg"
            cv2.imwrite(img_file_name, frame)
            img_count += 1

        frame_count += 1

    capture.release()

def face_detect(img_list):

    classifier = cv2.CascadeClassifier(xml_path)

    img_count = 1
    for img_path in img_list:

        org_img = cv2.imread(img_path, cv2.IMREAD_COLOR)

        gray_img = cv2.imread(img_path, cv2.IMREAD_GRAYSCALE)

        face_points = classifier.detectMultiScale(gray_img, \
                scaleFactor=1.2, minNeighbors=2, minSize=(1,1))

        for points in face_points:

            x, y, width, height =  points

            dst_img = org_img[y:y+height, x:x+width]

            face_img = cv2.resize(dst_img, (64,64))
            new_img_name = out_face_path + video_name + str(img_count) + 'face.jpg'
            cv2.imwrite(new_img_name, face_img)
            img_count += 1

if __name__ == '__main__':

    movie_to_image(int(10))

    images = glob.glob(output_path + '*.jpg')
    face_detect(images)

この「movie2face.py」と先の「lbpcascade_animeface.xml」と動画ファイルを同一フォルダに置きます。

そのフォルダ内に「face」と「movie」というフォルダを作成。

あとは

> python movie2face.py

と実行すれば、まず「movie」フォルダに動画から取り出された静止画が保存され

Tf_kemo01

その静止画から取り出された顔の部分が「face」に保存されます(64×64)。

Tf_kemo02

若干誤認識がありますけど、結構な精度で落としてくれます。

ただ”ハシビロちゃん”がうまく認識されないですよね・・・ってなにをキャプチャしてるんだか。

上のコードの「xml_path = "./lbpcascade_animeface.xml"」の部分を「xml_path = "./haarcascade_frontalface_default.xml"」と置き換えて、動画をアニメからドラマやホームビデオに変えれば、人の顔をキャプチャする検出器に早変わりします。

haarcascade_frontalface_default.xml”は、たいていOpenCVをインストールすればデフォルトで入ってくるようですが、別途入手する方法は以下。

(1) https://github.com/opencv/opencvにアクセス

(2) 「Clone or Download」をクリックし「Download ZIP」をクリック

(3) ダウンロードしたファイル(opencv-master.zip)を解凍

(4) 解凍したフォルダ内にある「data\haarcascades」の中に「haarcascade_frontalface_default.xml」というのがあるのでこれを取り出す

これを使えばリアルな人の顔を検出できます。

動画から何かを取り出したい場合は同様に、別の検出器を入手し、このコードの”xml_path=・・・”に入れればOK。

例えば猫を検出したかったら、以下のサイトから”xml”ファイルが入手可能。

ねこと画像処理 part 2 – 猫検出 (モデル配布) « Rest Term

試しにここから検出器を入手して

https://github.com/wellflat/cat-fancier

猫動画を処理してみると

Tf_neko01

確かに猫だらけになります。ただし、誤認識もちょっと多め。

自分で”物体検出器”を作りたくなったら、以下を参照。

OpenCVで物体検出器を作成する① ~基礎知識~ - 技術者ブログ

これをやるためには3000枚以上のサンプル画像を作る覚悟が必要ですが。

結構いろいろな”検出器”が転がってるようなので、応用はききそうですね。

Raspberry Pi3 Model B ボード&ケースセット 3ple Decker対応 (Element14版, Clear)-Physical Computing Lab

2017年3月11日 (土)

128×128の1.5インチOLED付Arduino互換ボード”Pixel 2.0”

小型ながらOLEDついてるため、これ単体でいろいろとできそうですね。

Pixel 2.0 Arduinoボードには1.5インチのOLEDスクリーンが載ってるからウェアラブルのゲーム機なども作れる | TechCrunch Japan

1.5インチ 128×128の65k色のOLED搭載のArduino互換機”Pixel 2.0”がKickstarterにて資金募集中です。

Pixel 2.0 - The Arduino compatible smart display! by Rabid Prototypes — Kickstarter

ごらんのとおり、OLEDパネルが引っ付いた基板に、microSDカードリーダーまでついてます。

小型のArduino(と互換機)にありがちなPCとの接続性や取り回しの悪さはなく、うまくいろいろな機能を集約してますね。

このモニター、Raspberry Piも見習ってほしいところですね。

Arduinoを使ったゲーム機なんてのもあるくらいですから、これなら立派な超小型ゲーム機が作れそう。もっとも、老眼の入り始めた(私をはじめとする)おっさんにはつらいですけどね。

一つ75ドル(約8500円)から。すでに目標の5,000ドルを突破済み。うまくいけば今年の6月には発送開始だそうです。

HiLetgo Mini USB Nano V3.0 ATmega328P CH340G 5V 16M マイクロコントローラーボード Arduinoと互換

TensorFlowの画像認識コードを高解像度化してみた

Re:ゼロから始めるディープラーニング: EeePCの軌跡で宣言した通り、まったりとディープラーニングの勉強を進めてます。

ついでに職場にある私のワークステーションにもTensorFlowをインストールして、CAEがらみの画像認識実験もちょくちょくやっております。

といっても、コードは以下の記事で使用したものをほぼそのまま使ってるだけ。

TensorFlowで”日本のお城”を識別させてみた: EeePCの軌跡

このコード、画像を28×28で読み込んで学習・認識しているため、ちょっと低解像度過ぎるのが難点。

元々MNISTの手書き文字の認識用のためこの解像度でも行けたんでしょうが、私が使うレベルの画像認識にはもう少し解像度が欲しいところ。

ということで、縦横それぞれ倍の56×56に拡張してみました。

ただ、今までのコードの「28×28」の部分を「56×56」にしただけでは、画像認識の精度がかえって下がります。

このため、この辺りの記事を参考に畳み込み層+プーリング層のペアを一つ増やしてみました。

続・TensorFlowでのDeep Learningによるアイドルの顔識別 - すぎゃーんメモ

TensorFlowによるももクロメンバー顔認識(中編) - Qiita

これで高解像度化&認識率アップできます。

元々が「畳み込み層+プーリング層」×2+結合層×2の6層でしたが。

高解像度化に伴い「畳み込み層+プーリング層」×3+結合層×2の8層になりました。

◆学習用コード「cnn_train_56.py」

#!/usr/bin/env python
import sys
import cv2
import numpy as np
import tensorflow as tf
import tensorflow.python.platform

NUM_CLASSES = 7
IMAGE_SIZE = 56
IMAGE_PIXELS = IMAGE_SIZE*IMAGE_SIZE*3

flags = tf.app.flags
FLAGS = flags.FLAGS
flags.DEFINE_string('train', 'train.txt', 'File name of train data')
flags.DEFINE_string('test', 'test.txt', 'File name of train data')
flags.DEFINE_string('train_dir', '/mnt/c/linux/data', 'Directory to put the training data.')
flags.DEFINE_integer('max_steps', 300, 'Number of steps to run trainer.')
flags.DEFINE_integer('batch_size', 20, 'Batch size'
                     'Must divide evenly into the dataset sizes.')
flags.DEFINE_float('learning_rate', 1e-4, 'Initial learning rate.')

def inference(images_placeholder, keep_prob):

    def weight_variable(shape):
      initial = tf.truncated_normal(shape, stddev=0.1)
      return tf.Variable(initial)

    def bias_variable(shape):
      initial = tf.constant(0.1, shape=shape)
      return tf.Variable(initial)

    def conv2d(x, W):
      return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')

    def max_pool_2x2(x):
      return tf.nn.max_pool(x, ksize=[1, 2, 2, 1],
                            strides=[1, 2, 2, 1], padding='SAME')

    x_image = tf.reshape(images_placeholder, [-1, 56, 56, 3])

    with tf.name_scope('conv1') as scope:
        W_conv1 = weight_variable([3, 3, 3, 32])
        b_conv1 = bias_variable([32])
        h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)

    with tf.name_scope('pool1') as scope:
        h_pool1 = max_pool_2x2(h_conv1)

    with tf.name_scope('conv2') as scope:         W_conv2 = weight_variable([3, 3, 32, 64])         b_conv2 = bias_variable([64])         h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2)     with tf.name_scope('pool2') as scope:
        h_pool2 = max_pool_2x2(h_conv2)

    with tf.name_scope('conv3') as scope:
        W_conv3 = weight_variable([3, 3, 64, 128])
        b_conv3 = bias_variable([128])
        h_conv3 = tf.nn.relu(conv2d(h_pool2, W_conv3) + b_conv3)

    with tf.name_scope('pool3') as scope:
        h_pool3 = max_pool_2x2(h_conv3)

    with tf.name_scope('fc1') as scope:
        W_fc1 = weight_variable([7*7*128, 1024])
        b_fc1 = bias_variable([1024])
        h_pool3_flat = tf.reshape(h_pool3, [-1, 7*7*128])
        h_fc1 = tf.nn.relu(tf.matmul(h_pool3_flat, W_fc1) + b_fc1)

        h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob)

    with tf.name_scope('fc2') as scope:
        W_fc2 = weight_variable([1024, NUM_CLASSES])
        b_fc2 = bias_variable([NUM_CLASSES])

    with tf.name_scope('softmax') as scope:
        y_conv=tf.nn.softmax(tf.matmul(h_fc1_drop, W_fc2) + b_fc2)

    return y_conv

def loss(logits, labels):

    cross_entropy = -tf.reduce_sum(labels*tf.log(logits))

    tf.summary.scalar("cross_entropy", cross_entropy)
    return cross_entropy

def training(loss, learning_rate):

    train_step = tf.train.AdamOptimizer(learning_rate).minimize(loss)
    return train_step

def accuracy(logits, labels):

    correct_prediction = tf.equal(tf.argmax(logits, 1), tf.argmax(labels, 1))
    accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
    tf.summary.scalar("accuracy", accuracy)
    return accuracy

if __name__ == '__main__':

    f = open(FLAGS.train, 'r')
    train_image = []
    train_label = []
    for line in f:
        line = line.rstrip()         l = line.split()
        img = cv2.imread(l[0])
        img = cv2.resize(img, (56, 56))
        train_image.append(img.flatten().astype(np.float32)/255.0)
        tmp = np.zeros(NUM_CLASSES)
        tmp[int(l[1])] = 1
        train_label.append(tmp)
    train_image = np.asarray(train_image)
    train_label = np.asarray(train_label)
    f.close()
    f = open(FLAGS.test, 'r')
    test_image = []
    test_label = []
    for line in f:
        line = line.rstrip()
        l = line.split()
        img = cv2.imread(l[0])
        img = cv2.resize(img, (56, 56))
        test_image.append(img.flatten().astype(np.float32)/255.0)
        tmp = np.zeros(NUM_CLASSES)
        tmp[int(l[1])] = 1
        test_label.append(tmp)
    test_image = np.asarray(test_image)
    test_label = np.asarray(test_label)
    f.close()

    with tf.Graph().as_default():

        images_placeholder = tf.placeholder("float", shape=(None, IMAGE_PIXELS))

        labels_placeholder = tf.placeholder("float", shape=(None, NUM_CLASSES))

        keep_prob = tf.placeholder("float")
        logits = inference(images_placeholder, keep_prob)
        loss_value = loss(logits, labels_placeholder)
        train_op = training(loss_value, FLAGS.learning_rate)
        acc = accuracy(logits, labels_placeholder)

            saver = tf.train.Saver()
        sess = tf.Session()

        sess.run(tf.global_variables_initializer())

        summary_op = tf.summary.merge_all()
        summary_writer = tf.summary.FileWriter(FLAGS.train_dir, sess.graph)

        for step in range(FLAGS.max_steps):
            for i in range(int(len(train_image)/FLAGS.batch_size)):

                batch = FLAGS.batch_size*i

                sess.run(train_op, feed_dict={
                  images_placeholder: train_image[batch:batch+FLAGS.batch_size],
                  labels_placeholder: train_label[batch:batch+FLAGS.batch_size],
                  keep_prob: 0.5})

            train_accuracy = sess.run(acc, feed_dict={
                images_placeholder: train_image,
                labels_placeholder: train_label,
                keep_prob: 1.0})
            print ("step %d, training accuracy %g"%(step, train_accuracy))

            summary_str = sess.run(summary_op, feed_dict={
                images_placeholder: train_image,
                labels_placeholder: train_label,
                keep_prob: 1.0})
            summary_writer.add_summary(summary_str, step)

    print ("test accuracy %g"%sess.run(acc, feed_dict={
        images_placeholder: test_image,
        labels_placeholder: test_label,
        keep_prob: 1.0}))

    save_path = saver.save(sess, "./model.ckpt")

◆認識用コード「cnn_app2_56.py」

#!/usr/bin/env python

import sys
import numpy as np
import tensorflow as tf
import cv2

NUM_CLASSES = 7
IMAGE_SIZE = 56
IMAGE_PIXELS = IMAGE_SIZE*IMAGE_SIZE*3

flags = tf.app.flags
FLAGS = flags.FLAGS
flags.DEFINE_string('analysis', 'analysis.txt', 'File name of analysis data')

def inference(images_placeholder, keep_prob):

    def weight_variable(shape):
      initial = tf.truncated_normal(shape, stddev=0.1)
      return tf.Variable(initial)

    def bias_variable(shape):
      initial = tf.constant(0.1, shape=shape)
      return tf.Variable(initial)

    def conv2d(x, W):
      return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')

    def max_pool_2x2(x):
      return tf.nn.max_pool(x, ksize=[1, 2, 2, 1],
                            strides=[1, 2, 2, 1], padding='SAME')

    x_image = tf.reshape(images_placeholder, [-1, 56, 56, 3])

    with tf.name_scope('conv1') as scope:
        W_conv1 = weight_variable([3, 3, 3, 32])
        b_conv1 = bias_variable([32])
        h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)

    with tf.name_scope('pool1') as scope:
        h_pool1 = max_pool_2x2(h_conv1)

    with tf.name_scope('conv2') as scope:
        W_conv2 = weight_variable([3, 3, 32, 64])
        b_conv2 = bias_variable([64])
        h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2)

    with tf.name_scope('pool2') as scope:
        h_pool2 = max_pool_2x2(h_conv2)

    with tf.name_scope('conv3') as scope:
        W_conv3 = weight_variable([3, 3, 64, 128])
        b_conv3 = bias_variable([128])
        h_conv3 = tf.nn.relu(conv2d(h_pool2, W_conv3) + b_conv3)

    with tf.name_scope('pool3') as scope:
        h_pool3 = max_pool_2x2(h_conv3)

    with tf.name_scope('fc1') as scope:
        W_fc1 = weight_variable([7*7*128, 1024])
        b_fc1 = bias_variable([1024])
        h_pool3_flat = tf.reshape(h_pool3, [-1, 7*7*128])
        h_fc1 = tf.nn.relu(tf.matmul(h_pool3_flat, W_fc1) + b_fc1)
        h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob)

    with tf.name_scope('fc2') as scope:
        W_fc2 = weight_variable([1024, NUM_CLASSES])
        b_fc2 = bias_variable([NUM_CLASSES])

    with tf.name_scope('softmax') as scope:
        y_conv=tf.nn.softmax(tf.matmul(h_fc1_drop, W_fc2) + b_fc2)

    return y_conv

if __name__ == '__main__':

    test_image = []
    test_filenm = []
#    for i in range(1, len(sys.argv)):
#        img = cv2.imread(sys.argv[i])
#        img = cv2.resize(img, (56, 56))
#        test_image.append(img.flatten().astype(np.float32)/255.0)
#    test_image = np.asarray(test_image)
    f = open(FLAGS.analysis, 'r')
    for line in f:
        line = line.rstrip()
        l = line.split()

        test_filenm.append(l[0])
        img = cv2.imread(l[0])
        img = cv2.resize(img, (56, 56))
        test_image.append(img.flatten().astype(np.float32)/255.0)
    test_image = np.asarray(test_image)
    f.close()

    images_placeholder = tf.placeholder("float", shape=(None, IMAGE_PIXELS))
    labels_placeholder = tf.placeholder("float", shape=(None, NUM_CLASSES))
    keep_prob = tf.placeholder("float")

    logits = inference(images_placeholder, keep_prob)
    sess = tf.InteractiveSession()

    saver = tf.train.Saver()
    sess.run(tf.global_variables_initializer())
    saver.restore(sess, "./model.ckpt")

    for i in range(len(test_image)):
        accr = logits.eval(feed_dict={
            images_placeholder: [test_image[i]],
            keep_prob: 1.0 })[0]
        pred = np.argmax(logits.eval(feed_dict={
            images_placeholder: [test_image[i]],
            keep_prob: 1.0 })[0])
        print (test_filenm[i],pred,accr)

一見すると何の進歩もなさそうに見えますが、以前よりちょくちょくパラメータ値が変わってるところがあります。

まず、Anaconda 4.2.0 for Windows(64bit)+TensorFlow 0.12.0でWarningが出てたのを全部修正しました。

また、認識用コードは複数のファイルを読めるようにしました。

analysis.txt」というファイルに認識させたい画像ファイル名を書き込んでおくと、その中にあるファイルをいっぺんに処理してくれます。

相変わらず学習用コードには”教師データファイル名+ラベル”が書かれた訓練用ファイル一覧「train.txt」とテスト用ファイル一覧「test.txt」の2つも必要です。この辺は先の記事を参考に。

早速、これを使って画像認識させてみました。

使ったのはTensorFlowで”日本のお城”を識別させてみた: EeePCの軌跡で使った画像データ。

Castle02

Anaconda for Windowsのコマンドラインで

> python cnn_train_56.py

と入力して実行。

縦横2倍、データ量にして4倍に増えたため、さすがに時間かかります。

うちのメインPC(Corei3 3220 2コア4スレッド 3.3GHz)で300サイクル回すと40分ほどかかりました。以前は数分で終了。データは4倍ですが、時間は4倍以上かかります。

というのもデータ量が増えただけでなく、収束するまでのサイクルも増加。

以前は70~100サイクルも回せば十分だったのが、今回は最低でも150サイクルは必要で、余裕を見て300サイクル回してます。

学習が終了したら、今度は”認識”させてみます。

認識用に用意したこちらの画像。

Tf_casle01

各お城 3枚づつのデータを準備。

それぞれのお城のラベル(0~6)を各ファイル名の頭につけておきました。

この画像ファイル名を一覧にしたファイル「analysis.txt」を準備して

> python cnn_app2_56.py

と実行。

返ってきた結果は

Tf_casle02

こんな感じになりました。

「判定」の黄色に塗った部分が正解だった画像。

横の%でかかれた数字は、それぞれのラベルの判定率。最も数値の大きかったところをオレンジで塗ってます。

黒枠のところにオレンジが収まっているのが正解。ですが、熊本城、犬山城、大坂城でそれぞれはずれが出てますね。

全21枚中、当たりは17枚。正解率 81.0%。

特に”犬山城”のはずれっぷりが目立ちますが、犬山城の画像のうち、2枚だけは学習に使った画像よりちょっと斜め上から見たものを認識させたんです。

天守閣中央に特徴的な屋根の形があるので少々ずれてても認識するんじゃねぇ?と思って入れたんですが、やはりだめでしたね。

犬山城をのぞけば高解像度化のおかげか、まあまあの正解率。実質9割くらいじゃないかなぁと。なかなかやりますね。

ちなみに職場では「畳み込み層+プーリング層」をさらに一つ増やして112×112まで解像度を増やしたコードを作成してます。

ただ、自宅で用意した教師データは64×64になっているため、自宅用は56×56どまり。

実は112×112にしても正解率がかえって下がってしまってるため、現在いろいろとチューニングの真っ最中。うまく行ったら、またブログにて公開します。

ただ人の顔やお城くらいなら、56×56の解像度でも大丈夫っぽいですね。

しかし勉強の途中でコードをいじりだして大丈夫か?と思われそうですが。

ただ、この動くコードというのは、プログラミングを勉強する上では結構大事。

「ゼロから作るDeep Learning」を読みながらこのコードを読むと、例えば”loss”っていう関数が一体何をやってるのか?など理解が進みます。

本を読むだけでは眠くなっちゃいますが、手を動かしてコードを書き換えてみて実際の動きを確認しながら読み進めると、いろいろとわかって面白いです。

「ゼロから作るDeep Learning」自体はTensorFlowを使っているわけではありませんが、やってることは同じなので、TensorFlowのコードでも非常に参考になるんです。

とりあえず実際に動くコードを手元において、教材片手にいじりながら読むのはおすすめです。

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

2017年3月10日 (金)

中華製なCPU”龍芯3号 3A3000”搭載ノートPCが登場

中華スマホ・タブレットはよく見ますし、大体ノートPCの多くは中国で生産されたものが多いわけですが、なんとCPUまで中国製なノートPCが登場です。

中国製CPU「龍芯3号 3A3000」を搭載したノートPC、間もなく登場か - PC Watch

このノートPCに搭載されているのは”龍芯3号 3A3000”というCPU。ARMとx86の両方のコードが走る両刀使いなチップだそうです。

Linuxを搭載し「龍芯版深度応用商店v1.0」というアプリストアまであるこのノートPC、まだ発売はされていないものの、中国での関心は高いようです。

ただCPUの仕様を聞くと、なんとなくTransmetaのCrusoeを思い出しますね。

スムーズに動いたかと思ったら急に処理が重くなってファンが全開になり・・・なんていうLibretto L2の不憫な思い出がよみがえってしまいます。

外観は決して悪くないですよね。ちょっとMac OS X風なデスクトップですが、いたって普通のノートPC。

独自のアプリストアによる使い勝手が問題なければ、人口の多い中国で普及してくれそうな予感です。

10インチ オクトコアタブレットPC 2G/16G Android 5.1 タブレット 178度 IPS液晶/高画質2560*1600 / Simフリー/ 1.6Ghz/ GPS搭載

Nintendo SwitchはMacbook Proに給電可能!?

逆な気もしますが、本当にMacbook Pro「へ」給電しちゃったようです。

ニンテンドースイッチ、なんとMacBook Pro「へ」充電可能だった|ギズモード・ジャパン

先日発売されたばかりのNintendo Switch。据え置き型のドッグから画面付きの本体が切り離されて携帯ゲーム機としても使えるのが売りのこのゲーム機。その結合部分にはUSB-Cが搭載されており、ここから本体側へ電力供給が行えるようになってるみたいです。

が、Switchの電源が入った状態で2016年モデルのTouch Barなし13インチのMacbook Proにつないだところ、電力をMacbook Pro側に供給し始めたそうです。

Switchの電源を落とした状態だとちゃんとSwitch側に給電されるようですが、それにしてもなんだか変な感じです。

USB-Cが双方向に給電できる仕組みだからこそ起こったことのようです。

これをみてMacbook Pro用の予備バッテリーとしてNintendo Switchを・・・という人はさすがにいないでしょうね。

ところで、このNintendo Switch、iFixitによれば分解性はかなり高評価のようです。

Nintendo Switchをバラバラに分解、修理が容易で長く使えるように設計されていると判明 - GIGAZINE

10段階中の8ということですが、これは本体が接着ではなくねじで留められているところが高評価につながったようです。保証外でしょうが、ユーザーがばらすことも比較的容易とのこと。

かなり本気で作ったハードみたいです。今後の売れ行きはどうなるんでしょうね?まあ、ソフト次第なんでしょうが。

Nintendo Switch Joy-Con (L) / (R) グレー

2017年3月 9日 (木)

ドコモが最大682Mbpsの通信サービスを開始

ドコモが受信速度で最大682Mbpsの通信サービスを開始しました。


NTTドコモ、国内最速となる受信時最大682Mbpsの通信サービスを3月9日より開始へ | 気になる、記になる…


「256QAM」と「4×4MIMO」の二つの技術を用いることでこの速度を実現したようです。


ただしこの速度を出すためには、当然この規格に対応した端末が必要。当初は「Wi-Fi STATION N-01Jのみとなるようです。ただXperia XZも500Mbps出せる模様。


最初は大都市圏のみですが、いずれ全国に広がっていくものと思われます。


それにしても、私の妻も入ってるかけ放題の2GBで月約7000円も払ってる通信プランの通信量なら、理論上でたったの23秒で撃ち尽くせることになりますね。


技術革新大いに結構ですが、金額と技術に見合ったサービスも提供していかないと、せっかくの高速通信が無駄になるように思います。


Sony Xperia XZ Dual SIMフォレストブルー F8332 [並行輸入品]


iPhoneの”アクセスガイド”が解除できなくなった時の対処法

そういえば、本日でこのブログ開始してちょうど9年です。本日よりついに10年目突入!

その間、数多くのトラブルに巻き込まれては解決して、ブログのネタにしたこと数知れず。

今回も、そんなネタです。

いやあ、焦りました。

次男が使っているiPhone 5cの”アクセスガイド”が解除できなくなってまるで使い物にならなくなったんです。

以前iPhone/iPadのアプリ使用に”時間制限”をかける方法: EeePCの軌跡を使っていた時にアクセスガイドをオンにしており、その設定がそのまま残ってました。

で、どうやら

・ 何かの拍子に”アクセスガイド”に切り替わった

・ 「キャンセル」を押さずにアクセスガイドを開始、パスコードを聞かれたため適当な数字を押した

って感じのことをしちゃったみたいです。

こうなると、アクセスガイドを解除しようにもパスコードがわかりません。

で、なんとか解除できたので、やり方を書いておきます。

iPhone/iPad/iPod touchの設定次第で、やり方が変わります。

参考にしたのはこちらのサイト。

iPhone、アクセスガイドのパスワードを忘れたときの対処法 | iPhoneトラブル解決サイト

◆ 強制リセット ◆

まず試すのは「ホームボタン+電源ボタン」長押しによる強制リセットをかけるという方法。

ロック解除時のパスコードを設定している場合、再起動後に元に戻るようです。

が、子供用のiPhone 5cにはパスコードをかけてなかったため、再起動後もアクセスガイドが有効なまま。

◆ iTunesでバックアップ復元 ◆

そこで次に試すのは「バックアップからの復元」。

アクセスガイドが効いている状態でも、iTunesにつないでバックアップを作成することは可能。

そこで(1) iTunesにつなぐ (2) バックアップを取る (3) バックアップを復元する (4) 再起動後に復活 という手順で元に戻せる・・・

はずだったんですが

うちのiPhone 5cでは「iPhone自体のiCloud設定から”iPhoneを探せ”をオフにしてください」というようなメッセージが出てバックアップ自体ができません。

万事休すか!?

◆ iCloudのiPhoneを探せから”iPhoneを削除” ◆

iPhone 5c自体のiCloud設定を開くことはできません。

が、ほかのiPhone/iPadやPCからiCloudを開くことはできます。

そこで最後の手段。

iCloudにつないで”iPhoneを削除”します。

Acsguide01

上の絵はiPod touchになってますが、下にある”iPodを消去”(iPhoneの場合は”iPhoneを消去”)をクリック。

Apple IDのパスワードなどを聞かれますが、消去できます。

これで再起動後にはアクセスガイドは解除されてます。

が、お察しのとおりデータはすべて消去されてしまいます。

iCloud上のバックアップなどを使って、できるだけ近い状態に戻すしかなさそうです。

幸い、うちのiPhone 5cは大したデータもないため、長男用iPhone 5のiCloud上のバックアップを使って復元。

これで一応元に戻りました。

子供に触らせるときはアクセスガイドは便利ですが、ある程度大きくなってアクセスガイドが不要になったのなら、なるべく切っておいた方がよさそうです。

au iPhone 5c 16GB ホワイト ME541J/A 白ロム Apple

2017年3月 8日 (水)

お米の量をスマホに知らせてくれる米びつセンサー

米ライフというところが「米びつセンサー」なるものを作ってます。

米の残量をアプリで確認し、タイムリーに注文できるサービス開始 - 週刊アスキー

この米びつセンサー、米びつにあるお米の量を測定するもので、少なくなるとスマホから直接注文できるというサービスのためのセンサーみたいです。

まさにIoTな感じのセンサーですが、頑張れば作れそうな気もします。でも、結構コンパクトですねぇ。電源はどうするんでしょうか?

センサー自体の値段が書かれてませんが、お米は5kgあたり3,000円とあるので、こしひかりあたりでしょうかね?

AmazonもDash Buttonを作って、なくなったらすぐに注文できる仕組みをリリースしてますが、いちいち買いに行かなくても手元まで届けてくれるのは便利ですよね。

一方で、こうした通販の荷物量が増加したおかげで、宅配業者の負担が増加しつつあるのが現状。ヤマト運輸あたりが大変なことになってます。

私はお米や洗剤くらいは自分の足で買いに行くようにしたいですね。Raspberry Piや電子部品など、どうしても手に入らないものはしょうがないですが。

【精米】お米の横綱 魚沼産コシヒカリ 5kg (国産) 平成28年産

メインPCのキーボードを交換

今までiBUFFALOのキーボードを使ってきましたが

Img_2733

とりあえず自宅にある予備のキーボードと交換することにしました。

Img_2734

交換理由その1:いくつかのキーの刻印が消滅。

ほぼ毎日ブログ記事を書いてますからね、A、S、Dなどは爪先などで削れてしまいました。

Img_2735

反対側の”K”のキーもHと区別できません。M、Nも同様。

交換理由その2:キータッチが硬い。

Img_2736

毎日たたいてるからでしょうか、押し込むのがつらくなるくらい硬くなってきました。

これを買ったのは2012年6月。当時の記事はこちら。

Buffalo製キーボード購入: EeePCの軌跡

120610_20_06_49

このときもキータッチが硬くなったので交換してると書いてますね。

この記事ではキータッチが軽いと書いてるので、やはり経年劣化で硬くなってきてたようです。

Img_2737

ところでこのキーボード、いつ買ったのかは覚えがありませんが、2013年5月のこの記事ですでに登場しています。

30ピン→Lightning変換ケーブルでiPad miniとキーボードなどをつないでみた: EeePCの軌跡

Img_3157

てことは、先のiBUFFALOのキーボードとあまり変わらない時期に買ってるんですよね。

Img_2739

ですが、全然キータッチは軽い。やはり毎日使うと硬くなるんでしょうかね。

Img_2738

1000円ほどで買った安物キーボードなので大して期待してませんでしたが、ちゃんとPowerキーがついてます。今までと同じ使い勝手を確保できそうです。

とはいえ、やはり古くて安物の予備キーボード。ちゃんとしたキーボードを買わないといけません。そのうち買ってくるつもりです。

Logicool ロジクール フルサイズ 薄型 ワイヤレスキーボード テンキー付 耐水 静音設計 USB接続 3年間無償保証ボード Unifying対応レシーバー採用 K270

2017年3月 7日 (火)

なぜだか憎めないお絵かきロボットアーム”Line-us”

Kickstarterでこんなロボットが出てたようです。

どんなふうに使うかはアナタ次第!な模写マシーン | TABI LABO

お絵かきロボットの”Line-us”。タブレットで描いた絵を横で模写してくれるというロボットです。

直接描けばいいんじゃないかという疑問はおいておき、動きが何だかコミカルです。

プログラミングで描かせることも、音楽を演奏させることもできるようです。

不思議とけなげなロボットに見えてしまいますね。なんででしょう?

アプリ付きで69ポンド(約9,500円)からだったそうですが、すでにすべての購入プランは終了済み。市販化を待つしかないですね。

Line-us: The little robot drawing arm by Line-us — Kickstarter

そろそろ”便利”さより”人間臭さ””かわいらしさ”が備わったロボットが受ける時代かもしれませんね。

サインスマート 5軸 パレタイジングロボット ロボットアーム DIYキット For Arduino UNO MEGA250 電子自作

Windows 98スマートウォッチを自作したユーザー登場

スマートなんだか、レトロなんだかわからないネタですが。

Windows 98が動くスマートウォッチをRaspberry Piで作成した猛者が登場 - GIGAZINE

Raspberry PiベースにWindows 98を手首に収めてしまった人が登場です。

ずいぶん小型ですが、使われたのはRaspberry Pi ZeroではなくてRaspberry Pi A+。2.4インチタッチスクリーン液晶に1000mAhバッテリー、スイッチ、ボタンで構成されてます。

もちろんRaspberry PiでWindows 98が動くわけはありません。エミュレータです。QEMUというのを使ってるそうな。

QEMU

さすがに実用速度とはいいがたいようですけど、これがWindows 98の出た19年前にあったら大騒ぎですね。

あのころはLibretto 20でも”小型PC”だったのに、腕につけた画面にWindowsが動いていたら卒倒ものです。

タイムスリップもののラノベ・漫画・アニメって多いですが、そろそろ80年代にRaspberry PiとiPhoneを持った主人公が現れて・・・なんてのが出てきても面白いかも。なぜかスマホの電波だけはその時代でも使えて、未来の変態技を80年代で再現させて・・・いや面白いか?そんなの。

そういえば、今年中にはフルのWindows 10が載ったARMチップの端末が登場するらしいですし、ガチでこういう端末が作れそうです。Windows 10で。

cocopar 4インチIPSハイビジョンLCD ディスプレイ タッチパネル タッチペン付

2017年3月 6日 (月)

IoT工作の練習にぴったり!?なFlasAirのドアポスト通知機製作記事

FlashAirを使った電子工作の記事(前後編)がわりとIoTを作ってみたいという方には役立ちそうな記事だったので、紹介します。

【電子工作×IoT】 第1回:SDカードが郵便を通知! 無線LAN機能付きのSDカード「FlashAir」を使ってドアポストセンサーを作ってみた<前編> - INTERNET Watch

SDカードが郵便を通知! 無線LAN付きSDカード「FlashAir」を使ってドアポストセンサーを作ってみた<後編> - AKIBA PC Hotline!

このFlashAir、要するにWi-Fi付きSDカードですが、電源さえ確保できればこんな使い方も可能です。

Wi-Fi付きのRaspberry Pi Zero Wも出ますが、このFlashAirの小ささにはかないませんね。センサー感知とメール送信くらいならこれ単独でできてしまうため、もはやメモリーカードというよりは小型のコンピュータボードです。

詳しい製作方法などはリンク先を参照いただくとして、このFlashAirの使い方の次に注目したのは”型想い”というお湯で柔らかくなる、プラモデル用の型取りに使える樹脂の存在。こんなものがあったんですね。

これなら明かりがついたり、人感センサーで感知したらメールでお知らせ(在宅者確認や防犯用)をさせたり、気温などを測定したデータを決まった時間に送信させたりできそう。いろいろと使い道が広がりそうですね。

などと書いている私は、最近電子工作をパタッとしなくなっちゃいましたね。なかなかこれといったアイデアが思いつかないのが原因ですが、そろそろ何かろくでもない・・・面白いものを作ってみたいところ。

最近日本でも発売になったRaspberry Pi Zeroを使った工作事例が出てます。

ラズベリーパイの調理法 Pi Zero プロジェクト トップ10

この辺りに刺激されて、何か作りたくはなってるんですけどねぇ。

TOSHIBA(東芝) 無線LAN搭載SDHCカード FlashAir W-03 [32GB] Class10 SD-R032GR7AL03A

キモかわいいロボットのBoston Dynamicsから車輪付きジャンピングロボット 爆誕

なんだかよくわからない方向に走っている感のあるロボットの登場です。

“車輪のある脚” 機動力で注目を浴びるロボット「Handle」は社会の中でどう使われていくか? @maskin | TechWave テックウェーブ

キモかわいいロボットでおなじみのBoston Dynamics社から、今度は車輪付きのロボットです。

一見すると意味のあるようなないような車輪付きの足ですが、2足歩行と高速移動の2つの利点を併せ持つため、わりと理にかなった構造です。

さらにこのロボットジャンプします。高さ120cmものジャンプ力があるそうで。

BGMにヴァン・ヘイレンのJump!が似合いそうな跳躍ぶりですね。

それにしても、毎度のことながら微妙なバランスで動くロボットが出てきますねぇ、この会社。

元々は軍事用に作られたロボット達。民間用に、しかも介護ロボットなど、なくてはならない存在になれるといいんですけどね。

【国内正規品】 iRobot ロボット掃除機 ルンバ 622 ホワイト

2017年3月 5日 (日)

Windows 98マシンは2017年の今でも使えるのか!?

2001年に製造されたCOMPAQ製ノートPC「Armada e500」(Pentium III 500MHz、メモリ128GB、20GB HDD)にインストールされているWindows 98を無理やり現代の環境に持ち込んてみた実験動画が公開されてます。

Windows 98マシンは2017年現在でもまだ現役で使うことはできるのか? - GIGAZINE

とりあえず、ブラウザやメールソフト、Office、PDFなどが使える環境を構築。

Windows 98/Meで2000/XPアプリケーションが使えるようにする”KernelEX”というのをインストールしているため、Thunderbirdは問題なく動作。

ただ、ブラウザはInternet Explorer 6が最新だったようです。Officeは”OpenOffice”を使用。

AdobeのAcrobat Readerは使えなかったのか「PDF-XChange Viewer」というのを使って代用したそうです。

音楽再生にはWinampを使ってました。懐かしい。

動画はVLCを使用。まだ動くものがあるんですね、VLC。フルHD動画再生はさすがに無理なようですが、なんとか使えるようです。

いろいろとやってますが、やっぱりIE 6ではダメなサイトが多かったため、別のブラウザをチョイス。

どうやって見つけたのか、Opera 11を発見。それでもダメなサイトはあるようですが、ある程度は閲覧可能になったみたいで。

YouTubeの再生は、一旦ダウンロードしてVLCで見るという荒業に出てます。ちょっと・・・いやかなりグレーなゾーンにまで踏み込んでますね。

あとはいくつかのゲームソフトを動作。

まあ、頑張れば今でもなんとか使えるようですけど、さすがにネットにつなぐのは最早危険なOS。オフラインで使うにはいいかもしれません。

もっとも、この時代の愛着ある端末をお持ちの方限定。Windows 10タブレットやスティックPCが1万円で購入できる時代、わざわざ中古のWin98端末を購入してまで使うのは意味がなさそうです。

Windows98

イオンモバイルのシェアプラン化&SIM追加しました

私のiPhoneはイオンモバイルとSo-net 0SIMで運用してますが、最近0SIMのつながりがあまりに悪い

iPhone 7 Plusに入れてますが、先日の出張時に使おうとすると時々通信途絶してしまうため、イオンモバイルのiPhone 5sを使うという場面が多発。

さすがにそれじゃ困るので、いっそイオンモバイルをシェアプランにしてiPhone 7 PlusにもイオンモバイルのSIMに変えてしまおうと思い立ったのは先月中頃のこと。

さて、イオンモバイルのプランをシェアプラン化してSIMを追加するには、以下の2段階を踏まなくてはいけません。

(1) SIMを追加する前の月に「シェアプラン」に変更

    (翌月からプラン変更が反映されるため)

 

(2) シェアプラン適用後にSIMを追加

この(1)、(2)いずれもネット上では申し込み不可能。店頭でやるのが最も早い。

ということで、先月20日頃に近所のイオンに行き、まず(1)のプラン変更を申し込み・・・

しようとしたら受付終了されてまして。

イオンモバイルの電話での受付時間は10:30~19:30。

店頭でも同じだろうと思って19:10頃着いたんですが、すでに受付終了の看板が立ってました。

仕方がないので、数日後に今度は18:00頃に受付へ。

手続きに1時間ほどかかるということで、ひたすら待ってプラン変更を完了。

で、今度は3月1日 17:50頃に再びイオンへ。

・・・行ったんですが、再び受付できず!!

なんと追加SIM受付の場合は18:00までにセンターへ書類FAX必着なんだそうで。

しかも1日というのは回線が込んでて10分ではまずつながらないとのこと。

で、出直して4日朝一に受付へGo!

10:30から受付だろうと思ったら、朝は10時から空いてるんだそうで、これまた1時間ほど待たされまして。

さらに書類の処理に1時間

計2時間かけて追加SIMを受領。

Img_2761

イオンに向かうこと4回、手続きで3時間かかったことになります。

Img_2762

プラン変更とSIM追加を同時に受け付けてくれればよかったんですけどねぇ。運転免許を2回コピーしてもらう羽目になりましたし。

まあ悪いことばかりではなくて、たまたまですが3月31日までは追加SIMにかかる料金がなんと1円というキャンペーン期間中でした。

Img_2763

1円です、1円。消費税をかけても四捨五入どころか桁が違い過ぎて切り落とされるレベルの金額ですよね。

通常なら3,240円かかるところが1円なので、かなりお得です。

これなら、もう一枚追加しておこうかなぁ。

Img_2764

早速、iPhone 7 Plusに挿入。

Img_0720

店頭でもらった紙にあるQRコードを読み込んで、構成プロファイルをインストール。

Img_0721

4G回線接続を確認。

Img_0722

ただ、QRコードからインストールしたせいか、こんなアイコンができまして。

マイページ以外は消しておきました。

Img_0723

そのマイページを確認すると、SIMが2枚になってることがわかります。

Img_2765

なお、0SIMはiPhone 6 Plusに挿すことにしました。

少々ぐだぐだ感のあるプラン変更&SIM追加でしたが、おかげでiPhone 7 Plusが比較的快適になりました。

今月中にはもう一枚増やすつもり。そちらはiPhone 6sにでも挿しておこうかなぁと考えてます。

IIJmioプリペイドパック nanoSIM IM-B177

2017年3月 4日 (土)

GPIO端子をすべてふさがないRaspberry Pi用タッチパネル液晶

ちょっと気になるRaspberry Pi用タッチパネル液晶が売られているようです。

コスパ高いラズパイ用液晶モニター - OSOYOO(オソヨー) HDMI 3.5インチLCDディスプレイ モニター タッチスクリーン 1920x1080ハイビジョン Raspberry Pi 3 2 Model B に対応 (3.5" HDMI LCD)のレビュー | ジグソー | レビューメディア

OSOYOOの3.5インチ フルHD(つまり1920×1080)のタッチパネル液晶。お値段は2,980円。

このサイズでフルHDというのも珍しいですね。

ちょっと気になったのは、GPIOをすべてふさいでないんですよね、この液晶パネル。

通常、この手の液晶パネルはRaspberry PiのGPIOコネクタピンをすべてふさいじゃってますが、こいつは前4ピン、後ろ8ピン分だけ

てことは、頑張れば電子工作と併用できるってことでしょうかね?

電子工作との両立ができないという理由でこの手の液晶を避けてきましたが、ちょっと手を出してみたいですね。

もちろん、解像度にも惹かれます。フルHDですからね、フルHD。

ただ、今のところ在庫切れで、入荷のめど無しだそうです。

Amazon.co.jp | OSOYOO(オソヨー) HDMI 3.5インチLCDディスプレイ モニター タッチスクリーン 1920x1080ハイビジョン Raspberry Pi 3 2 Model B に対応 (3.5" HDMI LCD) | OSOYOO(オソヨー) | マザーボード

早く再開してほしいですねぇ。

Raspberry Pi 3 MODEL B

Microsoft Lumia 535にWindows 10 Mobile向けマインクラフト PE入れてみた

700円かかっちゃいましたが、せっかくLumia 535にWindows 10 Mobile入れてるのに活かさない手はないかと思い、入れてみました。

Img_0719

起動がちょっと遅い感じですが、安い&古いハードなので、そのあたりは我慢。

Img_0711

ですが、この「地形を作成中」はいくらなんでも長すぎ。1分以上待たされて画面がスリープされちゃいます。

Img_0712

が、一旦ゲームがはじまればスムーズに動作。

操作性もiPhone版マインクラフト PEと変わりません。

Img_0713

画面のスクロールもスムーズ。これなら使える!

Img_0714

・・・と思いきや、画面の端の反応性が悪い。

これはマイクラというより、Lumia 535の問題でしょうが。

時々タッチパネルが誤動作し、押していないところが押されたり、反応してほしいところが反応しなかったり、やや不安定です。

Img_0715

画面を磨きなおすと多少ましになりました。

Img_0717

クリーパーや洞窟クモなどを作りまくってみましたが

Img_0718

特に速度は落ちませんね。スムーズに動きます。

子供らにも貸してみましたが、まあまあそれなりに使っていました。

画面も大きいし、このまま使ってくれれば・・・と思ってたんですが、やっぱりタッチパネルの反応が悪いせいか、30分で飽きられました。

最近Freetelやドスパラが出したやつなら、もうちょっとましな操作ができるかもしれません。

Windows 10 Mobile端末の使い道がなくて困っている方、マイクラマシーンに変えるというのはいかがでしょうか?700円でそれなりに遊べる世界が手に入ります。

はじめてでも必ずデキる! マインクラフト Pocket Editonかんぺきガイド

2017年3月 3日 (金)

Ryzen登場でIntel CPUが値下げ!?

PC向けCPU市場はしばらくはIntel独走な状態でしたが、例のRyzen登場でちょっと動きがあったようです。

AMD Ryzen登場を前に「Intel焦ってる」状態に、Skylake-Xを急遽12コアに変更&価格改定の可能性 - GIGAZINE

まず、Intelの次期ハイエンドCPU「Skylake-X」が10コアから12コアに変更する可能性が報じられたとのこと。

Ryzen自体は8コアCPUですが、これが本当ならRyzenに対し優位さをアピールするための施策なのかもしれません。

実際、Xeonなら20コア以上のものもありますし、12コアなCPUをリリースすることはぜんぜん可能なはず。もっとも、そんなコア数を活かせるだけのアプリケーションがあるかどうかが問題ですが。

一方、小売店ではIntel CPUの値下げがはじまったとのこと。

この一覧からは、Ryzenとの比較に使われたCorei7-6900Kは999ドルから300ドル値下げされるとなってます。

Intel自身はまだ価格改定に向けて何らかの動きを見せているわけではありませんが、早晩値下げは行われるんじゃないかといわれてます。

とはいえ価格は699ドル。一方でRyzenは499ドル。同等性能だとしても日本円換算で2万円以上の価格差。まだまだ割高感はあります。

ただ本当にRyzenがそんな高スペックを叩き出せるのかどうかは、実際に出てみないと何とも言えません。

互換CPUはある分野は速いけど、トータル性能はIntelの方が上ってこともよくありますし。

ただ、AMDの方が名実ともに速い時代もありました。Athronの時代はわりとそんな感じでしたよね。

これで自作業界が盛り上がればいいんですが、すでにオーバースペックな頂点対決という感じ。でもミドルレンジ以下のCPUが安くなるきっかけになるのなら、少しは盛り上がりそう。せっかくだし今度は乗ってみようかなぁ、このビッグウェーブに。

Intel Broadwell-E Corei7-6900K 3.20GHz 8コア/16スレッド LGA2011-3 BX80671I76900K 【BOX】

5.7インチのAndroid/Linuxデュアルブート クラムシェル端末”Gemini PDA”

リンク先には”NetWalkerの再来”と書かれてます。

シャープの「NetWalker」の再来を彷彿とさせる5.7型のAndroid/Linuxデュアルブート端末 - PC Watch

Indiegogo出資先サイト:Gemini PDA Android & Linux keyboard mobile device | Indiegogo

小型のノートPC型なクラムシェル端末”Gemini PDA”がIndiegogoで出資募集中だそうです。

画面サイズは5.7インチ(解像度 2880×1440)、Cortex-A72×2(2.5GHz) + Cortex-A53×4(2.0GHz) + Cortex-A53×4(1.55GHz)というややこしい仕様のMediaTek Helio X25というSoC、メモリ4GB、ストレージ 64GB、GPS、NFC、500万画素カメラ、Bluetooth 4.0を搭載。バッテリーは8000mAh。

ずいぶんとハイスペックな端末ですが、Wi-Fiのみの端末で299ドル、Wi-Fi + 4Gで399ドル(早期割引で349ドル)というわりと安価なのが魅力的。

大きさはこんなサイズ。重さは400gで、NetWalkerとほぼ同じ重さ。これが”NetWalkerの再来”とPC Watchが書いているゆえんです。

正直、AndroidなしでLinuxのみだったらいいですね。ディストリビューションはなんでしょうか?Indiegogoのサイトにも書かれてませんね。Ubuntuでしょうか?

ずいぶん前にNetWalker自体は手放してしまいましたが、一時再購入しようかと思ったくらいこのくらいの端末が欲しかったと気がありました。いや、今でもそうです。

最大の理由は”ブログ更新”のためなんですが、やはりキーボードがあると捗ります。この用途ならLinuxでも十分ですね。

こういう金欠の時に限って、こういうのや7インチの小型ノートPC”GPD Pocket”が出てきますよね。ぽちってしまいそう・・・

GPD WIN 黒 + 液晶保護フィルム付属 (Windows10 /5.5inch /IPS液晶 /Intel Atom X7 Z8700) (4GB/64GB)(USB Type-C /USB3.0 /HDMI /Bluetooth4.1) (タッチパネル /Gorilla Glass 3 /Gamepad Tablet PC /UMPC) (ブラック) [正規輸入品] (4GB/64GB 黒)

2017年3月 2日 (木)

Raspberry Pi ZeroにWi-Fi+Bluetoothが付いた”Raspberry Pi Zero W”が発売!税抜き1200円!

先日Raspberry Pi Zeroが日本でも発売されて盛り上がってますが、そのRaspberry Pi ZeroにWi-FiとBluetoothが内蔵された”Raspberry Pi Zero W”が発売されることになりました。

極薄・極小のワンボードコンピュータRaspberry Pi ZeroにWi-Fi+Bluetoothがついた「Raspberry Pi Zero W」が登場 - GIGAZINE

性能的にはRaspberry Pi Zeroそのまま。1GHzシングルコアにRAMは512MBのままですが、無線環境が追加されます。

大きさはそのままなので、Raspberry Pi Zero用ケースなどはそのまま流用可能。いやはや、よくまあこの大きさに押し込んだものです。

気になる価格は10ドル。日本では1200円(税抜き)で発売される予定。技適の関係で3月下旬になるとか。

この大きさを活かした何かを作りたいところですが、残念ながら全然思いつきませんねぇ。

GPIOピンをはんだ付けする手間をのぞけば、普通にRaspberry Piとして使えるこのZero W。無線環境を手に入れたことでUSBポートも余裕ができて、さらに小型の何かが作れそう。アイデアが捗りそうです。

ClusterHAT for Raspberry Pi - クラスター 構築用 HAT

”Macintosh SE”をAppleのGenius Barに持ち込んだら・・・

30年前のMacintosh SEをApple StoreのGenius Barに持ち込んだら、果たして直せるのか!?

しかも、製品版ではなくプロトタイプのSEを。

そんな意地の悪い検証を収めた動画があるそうです。

30年前の「Mac SE」をApple StoreのGenius Barに持ち込んだらこうなった - GIGAZINE

持ち込んだのは元Appleのランキンさん。

25年前に譲り受け、バッグに入れて大切に保管していたとのことですが、System 3.3(当時のMacのOSは7あたりまで”System 〇.〇”のような殺風景な名前でした)を入手し、はたしてインストールできるかどうかをGenius Barでやってみてます。

まず最初にマウスが動かないというトラブルに直面。キーボードでマウスカーソルを操作するという荒業に出てます。そんな方法、あったんだ・・・

つづいてHDDにトラブル発生。プロトタイプにはいっている20MB HDDはヘッドがプラッタ上で動かなくなるというトラブルがあったそうで、なんとHDDを取り出して手で回転させるというこれまた荒業で解決。製品版の40MB HDDでは大丈夫だったらしいですが。

そんなこんなで困難を乗り越えて無事System 3.3をインストールできたそうです。

ちなみに、このころのMacってSystem 7くらいまでは動作できたようです。というか、うちのMacintosh Plusに漢字Talk 7を入れたZipドライブをつないで起動させたことはあります。

たとえるなら、PC-9801 VM2でWindows 3.1を起動させるようなもの。実用性があるかどうかは別として、なかなか息の長いコンピュータでした。

余談ですけど、iPhoneにも当時のMacintoshに使われたネーミングがちょくちょく流用されてますよね。SEとか、Plusとか。あと使われそうなのはLCとかQuadraあたりでしょうかね?案外次のiPhoneでのネーミングに登場するかもしれません。

初代MacintoshをモチーフにしたiPad2/3用 ハードカバーケース 「Padintosh」(パッディントッシュ)

2017年3月 1日 (水)

東芝のFlashAir W-04は転送速度・カメラ内からの転送時でのパワーセーブ阻害機能付き

東芝のFlashAirって最近マイチェンしていたんですね。

Eyefiの力を手に入れた覚醒版FlashAir #CPplus|ギズモード・ジャパン

最新のW-04シリーズでは、書き込み速度は90MB/s、読み込み70MB/s、4K動画でもOKとのこと。

デジカメ内に入れて使う際、これまではカメラ側がスリープモードに入ると転送を中断。ところがEyefiのパワーセーブ阻害機能を搭載し、転送が終わるまでスリープしなくなるようです。

いろいろと進化してますが、肝心の東芝本体が怪しい状況になってますよね。大丈夫でしょうか?半導体部門は引く手あまたなので最悪どこかが引き取ってくれるんでしょうけど、心配ですねぇ。

東芝 TOSHIBA 無線LAN搭載 FlashAir III 最新世代 Wi-Fi SDHCカード Class10 日本製 [並行輸入品] (32GB)

マインクラフト P.E.のWindows 10 Mobile版リリース

今さらながらの感もありますが、Windows 10 Mobile用マイクラP.E.がリリースされたようです。

「Minecraft: Pocket Edition」が「Windows 10 Mobile」に対応 | 気になる、記になる…

てことは、うちのLumia 535にもマイクラがインストールできるんですね。

今長男も次男もマイクラにはまり気味。長男はPC版にグレードアップしてますが、次男はまだP.E.で満足な模様。

ならば、あまり使われていないLumia 535を活用するいい機会だなぁと思いまして。

でも700円かかるみたいです。そんな大した金額ではないんですけどね。どうしましょう?またiPhoneのデータを移行することってできるんでしょうか?

ゼロからはじめるマインクラフト Pocket Edition版 完全攻略

« 2017年2月 | トップページ | 2017年4月 »

無料ブログはココログ

スポンサード リンク

ブログ村