へたれ技術っぽいブログしてます

【Android】【覚書】最近プレファレンス使ったアプリ作ってなかったからちとハマった

むかーーーしに作ったAndroidアプリの更新をしていたら、利用者の方から不具合報告を頂いた。メインの機能じゃないところなのでバグに気づいてなかったのだけど「アプリが停止しました」と落ちるので早々に不具合対応をする。

 

LogCatによると

   java.lang.SecurityException: MODE_WORLD_READABLE no longer supported   

ってエラーで止まってるので、ググったところ

    getSharedPreferences("RESULT", MODE_WORLD_READABLE)

ってモードの指定が今は使っちゃいけなくて、

    getSharedPreferences("RESULT", MODE_PRIVATE)

ってーのに書き換えたところエラーを吐かなくなりました。

 

まあ、Android 6.0 (マシュマロ)以降で既に使っちゃいけなかったらしいけど、このアプリってAndroid 1.6(ドーナツ)用に作ってたものだもの、許してくださいませ。

 

と、Android 9.0 (パイ)が公開されてるイマドキなのに呑気なものだねー、自分。ごめんなさい。さんじやんうんから

 

【足跡】Python入門の講義資料を作成ちゅう

ただいま表題の講義資料を作成中。

ググったけど1件もHitしなかった

「楽々Python勉強会」

というタイトルにした。

この名称は自分がキープするぜい、という足跡というか覚書として記す。

 

ちなみにハッシュタグは #rakupy ね。これも1件もHitしなかったよん。

【覚書】【AI】ふる〜いPCにTensorflow環境を作ったった(多分)という話

会社の倉庫に何台も転がっている古いPCにNVIDIAGPUを載っけて、そこにTensorflowを導入できたっぽいので手順を覚書しておく。

 

■マシン環境:

Fujitsu FMV ESPRIMO D5350

  - MotherBoard : GIGABYTE GA-TQ35M

  - CPU : Intel Core2Duo E6850 3.0GHz

  - Memory : 4GB(DDR2 2GB × 2)

  - HDD : 500GB

  - GPU : MSI Geforce GTX-1050ti 4G OCV1

  - 電源 : 230W

 

■ソフトウェア環境

Windows 10 (Fall Creator Update)

・Anaconda 5.1 (Python 3.6 version, 64-Bit Graphics Installer (537MB))  download

・CUDA 9.0 (cuda_9.0.176_win10.exe と 2つのパッチ)  download

・cuDNN 7.0.5 (cudnn-9.0-windows10-x64-v7.zip)*1  download(要ID登録)

python 3.5.5*2

・tensorflow-gpu 1.5.0

・keras 2.1.6

・Visual C++ 2015 再配布可能パッケージ  download

Visual Studio Community 2017  download

 

■インストール手順 Part.1 (ダウンロードしたソフトのインストール)

(1) コントロールパネルの「プログラムと機能」からNVIDIA関係のものを全てアンインストール

  このPCはグラボを載せるとマザーのDsub出力が使えなくなるので必然的にディスプレイをグラボ側に接続する必要がある。この状態で Windows10 をクリーンインストールするとNVIDIAのソフトが勝手に入ってくるっぽい。CUDAをインストールするときに同じのがインストールされるので、バッティングしないように一応アンインストールしておいた。(この作業が必要かどうかはわからないけど念の為)

(2) Visual C++ 2015 再配布可能パッケージをインストール

 うーん、不必要かも知れない。そのうち試す。

(3) Visual Studio Community 2017 をインストール

 CUDA 9.0のインストール中に「こいつ必要だけど入ってる?」と聞かれるので、あらかじめインストールしておいた。

(4) CUDA 9.0と2つのパッチをインストール

(5) cuDNNのzipを展開して c:¥Program Files¥NVIDIA GPU Computing Toolkit¥CUDA¥v9.0 の下にコピー

(6) Anaconda をインストール

 

■インストール手順 Part.2 (環境構築)

(1) Anaconda Promptを起動。以下、このウインドウで作業する。

(2) 「conda upgrade -n base conda」でcondaを最新版に更新

(3) 「conda create -n tfenv35 python=3.5 jupyter」で tfenv35 という環境を作成*3

(4) 「activate tfenv35」で環境を切り替え。

(5) 「pip install tensorflow-gpu==1.5」でTensorFlow 1.5をインストール

(6) 「pip install keras」でKerasをインストール

 

そのうち Windows10のクリーンインストールからこの手順で大丈夫なのか検証しておく。もう一枚 1050tiを買おうかな?*4

 

 ネットのたくさんの方々のブログを紐解いてここまでできた。皆様の知見公開に感謝。

 

 

 

 

 

*1:7.1.4ではダメ

*2:3.6でも普通に動いた

*3:3.6でも大丈夫だったので conda create -n tfenv36 jupyter ってので良さげ。tfenv36の部分はお好きな名称で

*4:もう一枚買って試した。1080なマシンでも試した。Good!でしたよ

【覚書】【AI】Windows10にTensorflowとKerasを使える環境を設定したいのだけど...

いろいろなWindowsマシン(i7~Core2Duo、GTX1080~GTX750Ti)にTensorflowを入れたのだけどサクッと動くときと実行時にエラーを吐き出すときがあってよくわからない。Web記事をもとにいろいろと試してみるけど、結局のところCUDA、cuDNN、Tensorflow、Pythonのバージョンの組み合わせで不具合が起きているのではないかと思われた。...っちゅーわけで、巷のソレ系の技術ブログさんで示されているバージョンの組み合わせを一覧にしてみようかなーと。

 

見つけ次第に以下へ記していく所存

No. CUDA cuDNN tensorflow-gpu Python
1 8.0 6.0 1.4  
2 9.1 7.1.3 1.8  
3 9.0 7.0 1.6 3.5
4 9.1 7.0.5   3.6
5 8.0 5.1   3.5
6 8.0 6.0    
7 8.0 6.0 1.4 3.5

 空欄はバージョンの記載が無しだったものです。

 

元記事へのリンクも張ろうかと思ったけどちょっとなんなのでヤメておいた。

 

 

【Windows】【覚書】Creator Updateを適用したら通信が劇的に遅くなったのを解決したっぽい話

Windows 10 に Creator Update Fall を適用したらネットワークが(逆)感動するくらいに遅くなった。今までふつ〜に数十Mbpsが出ていたのに1Mbps出れば良い、下手すると64Kbpsとかしか出なかったり。各種SpeedTestサイトで測ってもタスクマネージャーの表示をみてもそのくらいの低速。光回線だってのに!無線部分だけの通信速度をみた見るとこれまた普通に 500Mbps以上(うちのWi-Fi802.11ac使ってるので)は出ていると表示されているのに...

Creator Updateを削除(OSを旧バージョンに復旧)すると回線速度がふつ〜に戻るので明らかにアップデートが原因。これは困った。

様々なサイトを見てみたのだけど同じ症状になっている人が意外にも少ない。質問されていても解決に至っているのは無し。

ぶっちゃけ諦めていたのだけど、2018年1月になって全ての人にCreator Update FallがWindows Update経由で落ちて来るようになった。これはさすがにいつまでも旧バージョンを使っているわけにいかなそう。

ということで改めて調べまくってみたところ、関係あるか無いかわからない以下の記述を見かけて試してみたところうまくいった(通信速度が数十Mbpsに回復した)ようなので覚書。

news.mynavi.jp

 

ざっくりいうとMicrosoft Wi-Fi Direct Virtual Adapterというドライバと相性の良くない無線LAN用デバイスがあるってことらしい。無効化したところほぼ元どおりの速度が回復したよ、と。 

無線LANに原因があるとは思わなかった。でも本当に改善されたのかはまだ様子をみないとわからない。通信が不安定(タスクマネージャーで見てると急に通信速度が0Mbpsになってずっとそのままということがあったり)っぽいのがちっと怖い。気のせいかもしれないけどね。

 ちなみに使っている無線LAN用デバイスは「BUFFALO WI-U3-866D」というUSB接続のやつです。

 

というわけで、その後についていつか書くかも。

 

おしまい

【覚書】KMS認証サーバー壊れた

年末にKMSライセンスの管理サーバーとして稼働させていたPCが突然壊れた。電源がランプが点いていて一見普通に稼働しているようなのだけど実は動いてなかったので実際にはいつから壊れていたのかわからないけど。

サーバーとして売られていた機種ではなくふつ〜のPCを使って無休で稼働させていたのでまあ耐久性的にはしょうがないか。Windows7から8を経て10にOSをUpgrade(基本的に管理させるクライアントOSに合わせてアップさせる必要があるから)させていたし、よく働いてくれていたということで。

なぜ故障に気づいたかというと、Windows10とOffice 2013のKMSライセンス管理をさせていたのにそれらのクライアントで認証エラーが発生するようになったから。あれ?と言うことはもしかして結構前から壊れていたんじゃ無いのかな。

 

ということで、Windows10とOfficer2013のライセンス管理も Windows Server 2012 R2機に行わせることに。こいつはいまWindows 10とOffice2016のライセンス管理をさせているサーバー機である(Domain Controlerで、DNSやらDHCPやらもやってる)。

その途中でした失敗を自分用に覚書。

 

(1) Windows10クライアント機の管理するように設定してあったつもりができてなかった。slmgr.vbs /dli all の結果をよく見ると「Windows(R) Iperationg System, VOLUME_KMS_20120R2_WIN10 channel」が「このライセンスは使用されていません。ライセンスされていません」の状態だった。

解決策:普通のWindows10やWindows Server 2012 R2のKMSキーを登録してもだめ。専用のキー(Windows Server 2012 R2 上で Windows 10以下を管理するためのKMSキー)を用意して登録すべし。

https://support.microsoft.com/ja-jp/help/3086418/error-0xc004f015-when-you-try-to-activate-windows-10-enterprise-on-a-w

 

(2) ライセンスマネージャーでOffice 2013のキーが登録できない。

解決策:Office 2013用のボリュームライセンスパック(追加ソフト)を適用してから作業する(Office 2016の登録時にダウンロードしてあったボリュームライセンスパックを使ってたのでダメだったっぽい)。あと、Active Directoryでの管理とKMSサーバーソフトでの管理のどちらで行うかを間違えないこと。

 

間違ってたらごめん。それにしてもちょっと恥ずかしいミスばかり。ぽっ

 

【Advent Calendar】こんなこといっいな♪な話

あー、この記事は以下のAdvent Calendarの記事です。4つ目の記事書くのを登録してたのすっかり忘れてクリスマスもTooに過ぎてから書いてます。ゴメンナサイ。

 

adventar.org

 

ちなみにクリスマス・イブのイブはイブニング(Evening)の略で、単に「クリスマスの夜」という意味でしかありません。今は0:00から24:00までが1日と呼ばれていますが、昔は日没から次の日没までを1日としていたので12月24日の日没から12月25日の日没までクリスマスであり、12月25日の夜明けまでが「夜=イブ」というわけです。尊敬するアイザックアシモフ先生のエッセイに書かれていたことです。何が言いたいかっていうと「イブ=前日」って意味じゃねーから12月23日に『今日はクリスマス・イブイブだね❤︎』とか寝ぼけたこと言ってんじゃねーぞ、ってことです。

 

おしまい

 

 

 

ではなくて、プログラミングクラブのアドカレ的にプログラミングの話っちゅーか心構えって言うか考え方の事を書きます。書きますというか寝言を言います。

説教というわけでは無いのですが、プログラミングクラブに所属してくれているメンバーで「作品を仕上げて公開する」事ができていない人が残念ながら多々見受けられるのでちょっと「それってどうなのかなー」と思っています。

一般に漫画とか絵を描いている人たちの世界では「下手でもいいからどんどん他人に見てもらうこと」「とにかくたくさん手を動かす(描く)こと」ってのはもはや常識かと思います。それと同じ事でプログラム作りの世界も、作品を作っては公開するって事が上達やモチベーションアップのためにはもう絶対条件だと思うんですよね。

特に今はアプリストアが充実してますのでまずはGoogle Playに開発者アカウントを登録して(今でも$25で永遠に利用可能なのかな?)ヘタレ作品でもいいから公開して見ましょう。意外と「こういうのが欲しかった!」と喜んでくれる人がいたりしますし、よしんば誰からも反応なくてもマイナスになることは何もありませんから。

#昔は自分のWebサイトで公開ってのが普通だったなあ。もしくはベクターさんあたりくらい。

#自前のサイトで公開してたときはストアとカスタマイズの要望を受けてたりしたなあ。ストア経由だとこれができないのが寂しいよね。

 

ちなみに単機能のアプリをたくさん作ってみるのがオススメ。例えばQRコードを読み取って読み取った内容を音声で出力するだけのアプリ、とか。

上記のアプリは「視覚障害の方がレストランのメニューに何かが書かれているけど読めないで困る。音声で読み上げてくれたらいいのに」という要望を聞いてきた学生の話を聞いて、「バーコードリーダーで読ませてサーバーにあるメニューデータを検索させるか......。いや待てよ、直接料理の名前をQRコード化してそれを音声読み上げさせればいいじゃん」と思ってサクッと作ってみたものです。今時はQRコードを読むライブラリや音声読み上げのWebAPIなどが充実しているのでそれを呼び出すだけだからそんなに手間かかりませんでしたよ〜。

 

と言うわけで、クラブに所属してくれているのは大変嬉しいのだけど、自信持って「こんなの作ってます(作りました)」って言うネタを1つは持って欲しいなーという、ささやかな願いを表明して、2017年を終わりにしたいと思います。

 

おしまい(本当)