2016年4月22日金曜日

[Windows]シャットダウン時に出てくる「x個のプログラムが閉じられていません」を出さないようにする方法

・シャットダウン時に出てくる「x個のプログラムが閉じられていません」を出さないようにする方法


①WIN+Rを押して「gpedit.msc」と入力する。

②ローカルグループポリシーエディターが起動したら
「コンピューターの構成」→「管理者テンプレート」→「システム」→「シャットダウンオプション」を選択。

③「シャットダウンをブロックするか取り消すアプリケーションの自動終了をオフにする」をダブルクリックして「有効」にする。



参考URL
http://windows7.wiki.fc2.com/wiki/%E7%B5%82%E4%BA%86%E6%99%82%E3%81%AB%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E5%BC%B7%E5%88%B6%E7%B5%82%E4%BA%86%E3%81%AE%E5%95%8F%E3%81%84%E5%90%88%E3%82%8F%E3%81%9B%E3%82%92%E5%87%BA%E3%81%95%E3%81%AA%E3%81%84

2016年4月20日水曜日

[RaspberryPi]RpiでツイッターBotを作る

[RaspberryPi]RpiでツイッターBotを作る



【Bot用アカウント作成編】

Step1.Twitterアカウントの作成
 https://twitter.com/

 ※電話認証は済ませておくこと。


Step2.アプリ登録
 https://dev.twitter.com/apps/

 PermissionでAccessをRead and write にチェックを入れて、Update Settingsする。

Step3.APIKeyとシークレットキーを取得する。
Keys and Access Tokensタブを開くと、Application Settingsに記載してあるキーをメモしておく。



【RPi環境構築編】

Step1.環境構築
$ sudo pip install twython requests requests_oauthlib

Step2.Botアプリ用フォルダを作成
$ mkdir twitterBot
$ cd twitterBot
$ vim TempBot.py

----
#!/usr/bin/env python
#coding:utf-8

import os
from twython import Twython

#Twitterアカウントの認可情報
CONSUMER_KEY = ‘Consumer key’
CONSUMER_SECRET = ‘Consumer secret’
ACCESS_KEY = ‘Access token’
ACCESS_SECRET = ‘Access token secret’

api = Twython(CONSUMER_KEY,CONSUMER_SECRET,ACCESS_KEY,ACCESS_SECRET)

#Raspbianの制御コマンド(vcgencmd)を実行
cmd = ‘/opt/vc/bin/vcgencmd measure_temp’
line = os.popen(cmd).readline().strip()
temp = line.split(‘=’)[1].split(“‘”)[0]

#取得したCPU温度を投稿
api.update_status(status=’CPU no ondo ha ‘+temp+’do desu ‘)  
----

$ sudo chmod +x TempBot.py


Step3.実行する

$ ./TempBot.py




参考URL
http://pettomo.azurewebsites.net/?p=4101

2016年4月14日木曜日

[Xamarin]バージョン2.0.06482、2.1.0.6529はスキップして2.2系列が出るのを待った方がよい理由

バージョン2.0.06482、2.1.0.6529はスキップした方がよい理由


これら2つのバージョンは、2016年3月31日(本土時間)、マイクロソフトがXamarinをオープンソース化を発表した時点のXamarinバージョンになります。


それまでは製品版として販売していたのだからすぐ使えるくらいの品質かというとそうでもありませんでした。
(きっとVisual Studio環境下のXamarinはまだアルファ版レベルなのだろう。。。)

特に2.1.0.6529は古いバージョンに依存していて、まともに使えたものではない、そんな状況になっています。

まとめると、
 2.0はかなり古いけど使える。
 2.1はメジャーバージョンだけど、依存ライブラリのバージョンを下げないと使えない。
 2.2はオープンソース化になって初めてのメジャーバージョンになる(現在Pre版)

ということで、まともになるのはそれ以降の2.2系列、
頻繁にXamarin.Formsプレビュー版2.2.*系列が更新されているので、それが正式版になるまで待った方が無難です。


バージョン2.2が出るまでに環境構築を覚えておきたい!って思った方用に情報をまとめておきました。

下記TIPSはどのバージョンでも共通した内容なので覚えておいて損はありません。



~準備編~

・Xamarinのバージョンをベータ版を使用する
 ツール -> オプション -> Xamarin -> Other -> Beta版を選択
 https://developer.xamarin.com/recipes/cross-platform/ide/change_updates_channel/



~プロジェクト作成~

・新規プロジェクト作成
 Cross-Platform -> Blank App(Xamarin.Forms Potable)を選択


・ビルド構成を設定する
 ソリューションエクスプローラーにあるソリューションを右クリックを押してビルド構成を選択


・ソリューション全体のXamarinパッケージをアップデートする
 ツール -> Nuget -> ソリューションのNugetを管理する -> 更新プログラムからパッケージを更新。
 ※表題どおりバージョンが2.1.0.6529はアップデートするとエラーばかり出て使えないので注意。


~番外編~

・SQLite-netを使う
 http://javatechig.com/xamarin/using-sqlite-net-orm-in-xamarin-application



2016年4月4日月曜日

[Xamarin]VSユーザーからみたXamarin入門(2)


今回は広告Admobを表示してみる編です。

※現時点2016.04.04 Businessプラン以上のライセンスでないと使えないようになっています。

まず何をするかというと、Google Play Serviceをインストールすることから始まる。

どうやっていれるんだって思っていたら、

Componentsを右クリックする

ソリューションエクスプローラ内にコンポーネント追加する項目がありました。

Nugetみたいに入れられる機能がある事に感動。

さっそく 検索欄にAdmobといれてインストール。

そしてドキュメントを開いてみると、設定手順が丁寧に書かれている。

(パーミションとか自動でチェック入れろよとか、思ってはいけません)


設定手順通りに、
PropertiesのAssemblyInfo.csにパーミション追加
[assembly: UsesPermission(Android.Manifest.Permission.Internet)]
[assembly: UsesPermission(Android.Manifest.Permission.AccessNetworkState)]

AndroidManifest.xmlにAdmobを追加




この辺りはAndroidStudioと同じ方法。

あとはUIに広告を追加すれば完成。

UIのファイルはResource¥Layoutフォルダ内のMain.axmlファイルになります。
ダブルクリックで開くと馴染み深いGUIデザイナー画面になります。

さっそくツールボックスの中からAdmobを探してみると、、入ってません。

Getting Startにも書かれていないけど、Google公式にあるAdmob導入するHowToにはやり方が載っているので、そこからXMLタグを抜粋して張り付ける。

XAMLのSourceタブを選択して自前でタグと属性を挿入する。

-------
Layoutの属性に追加
xmlns:ads="http://schemas.android.com/apk/res-auto"

このタグを好きな位置に配置
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentTop="true"
        ads:adSize="BANNER"
        ads:adUnitId="@string/banner_ad_unit_id">
   

-------

ここまで設定してふと気づく。
Getting Startだけだと設定が足りてないので、
最初から以下のサイトを見ながら設定した方が早いです。

https://developers.google.com/admob/android/quick-start#give_your_app_an_ad_unit_id


一通り済んだから、ビルド実行。

。。。。。


あれ?

User code size, 2702336 bytes, is larger than 131072 and requires aツBusinessツ(or higher) License. android1
Using type `Android.Runtime.JNIEnv` requiresツBusinessツ(or higher) License. android1


なにこれ!Visual Studio Update1だから?

ライセンス開放してくださいよー(切実)

Update2にアップデートすれば可能なんだろうけど、今家の回線が0SIMで繋いでるのでアップデートできません。。

ってことで、いつかのアップデートで対処されるんだろうけど今回はこんな切ない終わり方で終了します。

後日、家の固定回線が使えるようになったときにでもUpdate2にしたときどうなったかを追記します。


次回へ続く。

[Xamarin]VSユーザーからみたXamarin入門(1)

今回は触りだけ。
新規プロジェクトで出来たプロジェクトをビルドしてAndroidスマホでデバッグするまでをやってみたいと思います。


Step1.新規プロジェクトからAndroid→Blank App を選択していつものようにプロジェクトを立ち上げる。


Step2.ソリューションエクスプローラから作ったプロジェクトのプロパティを開いて、新しい項目に着目する。


コンパイラのバージョン設定とかターゲットのAPIバージョンの設定




パッケージ名とパーミションの設定



アンドロイドの固有設定(1)




アンドロイドの固有設定(2)

アンドロイドの固有設定(3)


所感、アイコンの設定やマニフェストの設定、ビルドに関する設定があるようだ。
細かい設定は分からなくてもそのままビルドすれば実機で動くので、ひとまず必要になった時に調整していくことにする。


Step3.実機をUSB接続した状態であとはF5ボタンを押すとデバッグが開始させる。

 Hello worldは以上!



コード書かずに実機でHello worldまで進める事が出来ました。



ついでにソリューションエクスプローラの中をみていくと

フォルダ構成はAndroid Studioとかなり似た構成になっているようです。

ざっくり説明すると

Assetsはメディアファイル関係

Resource内
 Drawableに画像関係
 Layoutに画面レイアウト
 Valuesに文字列などの情報

1つ気になったのは、異なるアイコンサイズ事にアイコンを作らなくていいの?っていう点。
まあ、設定項目がないんだから今のところ開発環境がうまいことやってくれるんだろうって思ってる。(希望)



まとめ
・ほぼ今までと同じ操作でXamarinが使える事。

・GUI周り、フォルダ構成、プロジェクト構成、この部分はAndroid依存要素があるので新たに覚える必要がある。


Androider