一畳のくつろぎタイム

このブログでは紹介する商品画像をAmazonアソシエイトより借りています。画像やリンクにはアフィリエイト広告が含まれる事があります

2018年6月21日木曜日

やらないと損!GooglePayと毎日くじ(2018年に終わりました)

GooglePayがSuicaとWaonに対応しました。
結果何かが変わるかというと、実は直接の変化はありません。(Suicaへのクレジットカードチャージに関する変化はあるようですが)
Felica対応(おサイフケータイ)機種でなければSuicaもWaonも使えませんし、対応機種なら今までも使えていました。

では今回何を言いたいのかというと‥
キャンペーンで、GooglePayに登録後、おサイフケータイ機能を使うと11月23日12月31日(延長された?)まで1日5回までの決済毎にGooglePlayで使えるクーポンが当たるのだ。

ついに1等賞がキター

 EdyやNanacoやWaonは物を買うしかありませんが、通勤で電車やバスを使っている人は当たり前にSuicaを使っているので、なにも意識しなくても使ったことになります。

私の場合、朝3つ路線を使うのでSuica払い3回、帰り2路線で2回で計5回Suica払いしますので、運のいい日だったりすると、100円とか50円とかGooglePlayのクーポンが当たっています。

通勤定期を利用している方は、月20日以上出勤していない場合、普通に運賃を払うのと定期で支払うのにさほど金額の違いがないので、計算してみると良いです。

私の場合、混雑の都合で行きと帰りでルートを変えたく、計算してみたらほとんど変わらないことがわかって普通のSuica払いで通勤しています。
※6カ月などの期間で購入している場合は定期の方が安いです。


いまのところ、GooglePayがSuicaに対応した5月24日あたりからゲットしたクーポンはこんな感じです。正確には数えてませんが1万円は到達しています。ゲットした金額は利用期限(1年後)がありますので、無料バージョンでもいいと思ってたアプリの購入や、GooglePlayMusicの定期利用など、けっこう無駄に使ってます。

GooglePay開始からの取得クーポン


最終的には2万円分のGooglePlayクレジットが手に入りました。
ほしかったアプリはあらかた購入し、LINEのスタンプとか無駄に購入してます。



2018年6月18日月曜日

Swift3,Swift4で乗算のループ

Swift3以上?Swift4でObjective-Cで書いたfor文1000まで10倍の乗算ループを書こうとしたら
for( int i=1; i<1000; i*=10 ) {
    NSLog(@"Hello %d",i);
}
予想以上に面倒で困った、詳細は不明だが、こうかけば期待通りに動いた
参照先https://code-examples.net/ja/q/2636c3a
// 乗算ループの書き方
let num = 1000
for i in sequence(first: 1, next: { $0 * 10 }).prefix(while: { num/$0 > 0 }) {
    print(i)
}
while文が残っていて本当によかったと感じる、Swift4以降でもうちょっと簡単な構文を期待したい。
var i = 1

while( i <= 1000 ) {
    print(i)
    i *= 10
}

2018年4月24日火曜日

ComposerでPEAR

PEARのライブラリcache_liteをComposerでインストールしたかったがうまくいかなかった。
configでHTTP接続を許可し、pearの取得先をrepositoriesで指定。
pear-pear.php.netの指定で
こちらのサイトで
pearのライブラリの名前とバージョンを調べて追記してupdateしたらうまくいった。

composer.json
{    
    "name": "vendor/myapp",
    "description": "プロジェクトの説明。",
    "authors": [
        {
            "name": "myname",
            "email": "your@email.here"
        }
    ],
    
    "config": {
        "secure-http": false
    },
    
    "repositories": [
        {
            "type": "pear",
            "url": "http://pear.php.net/"
        }
    ],
    
    "require": {
        "smarty/smarty": "~3.1",
        "pear-pear.php.net/cache_lite": "1.8.2"
    }
}
Composer2だとpearは取れないっぽいです。

PDOで表の名前にはプレースホルダーが使えない

ダメなコード

    // PDOによる接続
    $pdo = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8','test','password');
    // DBエラーで例外を発生させる
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    // プリペアステートメントのエスケープ設定
    $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
    
    $stmh = $pdo->prepare("select * from :table");
    
    $stmh->bindValue(":table", "mytable");
    
    $stmh->execute();

show tableを実行して得た結果からテーブルを選ばせてその情報を取得しようとしたがSyntaxエラーとなる。

FROM句にプレースホルダーを使うことは少ないが、これはできないらしい。
自分で無害化するか、表名自体を表に出さないような作りにする必要がある。

参考
https://stackoverflow.com/questions/15182910/php-pdo-bind-table-name

2018年4月19日木曜日

adb rootできない時



特定のAndroidエミュレーターでadb rootができない。
中を覗けるのがエミュレータの良いところなのになぜかと調べたらstackoverflowには答えがあった。
To enable root access, use an emulator image like
rootアクセス可能なエミュレータイメージは
    Google APIs Intel x86 Atom System Image
Not
コレジャナイ
Google Play Intel x86 Atom System Image
https://stackoverflow.com/questions/43923996/adb-root-is-not-working-on-emulator
ということだった。
エミュレータ作成時のディフォルトがrootできないイメージが選ばれてしまうのでそうではないものを選べば良いようだ。

2018年4月18日水曜日

Andoridのカレンダーでマイカレンダーが表示されない



Android6標準のカレンダーアプリでマイカレンダーが表示されなくて困った。
この子である

Andorid5端末からは表示ができるので、どうもAndorid6標準カレンダの問題らしい。

色々ぐぐって試したがダメで、結局改善できたのは

Andorid標準ではなくGoogleカレンダーアプリのインストールを行い。
Android標準とGoogleカレンダーは同じと思っていたが違った

Googleカレンダーアプリから該当するマイカレンダーの表示をONにすることで、
Andoroid標準アプリからも見れるようになった。

でもGoogleカレンダーアプリの方が便利そうなので、Android6標準カレンダーはもう使いません。