CentOS7でdaemontoolsを動かす
CentOS6からはインストールしただけだとdaemontoolsは動かない
CentOS6の場合はこちら
wp.kaz.bz
CentoOS7の場合はどうすんだ?
centos7はデーモンをsystemctlで動かすので、daemontoolsもそれに従うと良さそう。
こんな感じでdaemontools.serviceを作る
# cat /etc/systemd/system/daemontools.service [Unit] Description=daemontools Start supervise After=getty.target [Service] Type=simple User=root Group=root Restart=always ExecStart=/command/svscanboot /dev/ttyS0 TimeoutSec=0 [Install] WantedBy=multi-user.target
そのあと以下を実行でめでたく動きます
systemctl enable daemontools systemctl start daemontools
MySQLでdatetimeに10000年を指定すると残念な事になる。
MySQLのBETWEENに'10000-01-01 00:00:00'のように9999年以上の値を入れると予期せぬ結果が返ってくる
MySQL ver : 5.6.20
こんなテーブルに対して
mysql> select * from date_test_table; +---------------------+ | date | +---------------------+ | 2015-01-01 00:00:00 | | 9999-01-01 00:00:00 | | 0000-01-01 00:00:00 | | 1015-01-01 00:00:00 | | 3015-01-01 00:00:00 | +---------------------+
BETWEENのminのほうに1000年と間違えて10000年を指定してしまった。
普通はエラーになるだろうと思ったらなぜかレコードが返ってきた。
謎い。
mysql> select * from date_test_table where date between "10000-01-01" AND "2050-01-01"; +---------------------+ | date | +---------------------+ | 2015-01-01 00:00:00 | | 0000-01-01 00:00:00 | | 1015-01-01 00:00:00 | +---------------------+
どうやら挙動的には0000年になっているっぽい
DateTimeは0年から9999年まで
そもそもMySQLのDateTime自体が9999年までしか対応していない。
更新はエラーだけど参照はwarning
実際に10000年に関してのクエリを打ってみると、更新はエラーになるが参照はwarningという不思議。
mysql> insert date_test_table set date = '10000-01-01 00:00:00'; ERROR 1292 (22007): Incorrect datetime value: '10000-01-01 00:00:00' for column 'date' at row 1 mysql> select * from date_test_table where date = "10000-01-01 00:00:00"; Empty set, 2 warnings (0.00 sec) mysql> show warnings; +---------+------+--------------------------------------------------------------------+ | Level | Code | Message | +---------+------+--------------------------------------------------------------------+ | Warning | 1292 | Incorrect datetime value: '10000-01-01' for column 'date' at row 1 | +---------+------+--------------------------------------------------------------------+
BETWEENは空文字でも受け付ける
一方で、BETWEENは空文字でもクエリを受け付ける仕様のようだ。しかも自動的に最小の値になっているっぽい。
mysql> select * from date_test_table where date between "" AND "2050-01-01"; +---------------------+ | date | +---------------------+ | 2015-01-01 00:00:00 | | 0000-01-01 00:00:00 | | 1015-01-01 00:00:00 | +---------------------+
BETWEENとDateTimeの仕様の合わせ技でおかしな事に
この二つの挙動が合わさると、BETWEENのmin側に10000年を入れるとempty(="")と評価されて、0000年からのレコードを返してしまうようだ。
まとめ
そもそも、10000年を渡す方が悪いのでアプリ側でバリデーションをしっかりしましょう。という事で。
androidアプリが停止された -エロは駄目だよpart2-
アップデートをかけたら停止された
最近リリースしたandroidアプリ「バブルデコレータ」。
ちょっと機能追加したのでアップデートをしてみた。
数時間後、そろそろ更新されたかなーと思ってディベロッパーコンソールを見たところ。。。
むむむ。
原因はアダルトコンテンツ
まあ、あたりまえです、エロは駄目。もう一度、エロアプリは駄目。
とはいえバブルデコレータ自体は単にこのアプリで水玉コラ写真を作るだけだったんで良かったんですけどね、
それを投稿出来る掲示板と、そこにはってある広告(むしろこっちが主?)が引っかかったんだろうと予想。
最初のリリースでは大丈夫だったのに
最初のリリース時点でこの掲示板はあったのになぜいま?とも思ったけどよく考えると、
- リリース後にかなりきわどい感じのコラ写真がたくさん投稿されて溜まっていた
- アダルト広告を追加しちゃった(ごめんなさい)
これが原因ですね。本当にごめんなさい。
アプリ出し直し
一度停止されると修正しても同じアプリとしてリリースは出来ないらしい。
仕方が無いので、新しく作り直して新しいアプリとしてリリース。
https://play.google.com/store/apps/details?id=org.waremon.bubble2&hl=ja
今まで広まってたURLが変わっちゃうからショック!
とりあえず本ブログに記載されていたURLは修正したけど、別サイトにのせてもらっているURLは修正出来ない。。。ショック!
androidアプリのバージョンアップに必要なkeystoreのパスワードを忘れた!
keystoreのパスワードとエイリアス
androidアプリをリリースする時に必要なkeystore。
アプリをアップデートする時には、リリース時に使ったkeystoreと設定したパスワードが必要なのでしっかりメモっておく事。
忘れてしまったら、、、思い出すしか無い
と言いつつ、メモるの忘れてた。適当に作ったアプリだったからアップデートなんてする気無かったし。
どうしようか。。。
手当たり次第試す!これしか無い。
簡単にばーっと試すにはコマンドラインが良いので、以下のコマンド打ちまくって使ってそうなパスワード打ちまくって試しまくる。
$ keytool -list -keystore /path/to/keystore キーストアのパスワードを入力してください:
ちなみに、パスワードを入れずにエンター押すとエイリアスだけは分かるみたい。
という事で、1時間くらいうんうん言いながらパスワード試しまくって見事発見。
今度はちゃんとメモっておこう。
思い出す以外の方法があるのだろうか。
あったら誰か教えてください!
アプリ広告収入 2015/03
個人的に作っているアプリの広告収入
拙作の大した事無いアプリの広告売上を公開しています。
ほとんどのアプリが単なる学習目的でしたがせっかくなので収益化を少しながらしています。
とてもしょぼい金額ですが、反省も込めて。
売上 @nend
ときめきエキスプレスStation ¥18
https://itunes.apple.com/jp/app/tokimekiekisupuresustation/id660044163?mt=8&at=10l8JW&ct=hatenablog
バブルデコレータ(iOS) ¥784
https://itunes.apple.com/jp/app/baburudekoreta/id741537396?mt=8&at=10l8JW&ct=hatenablog
バブルデコレータ(android) ¥321
https://play.google.com/store/apps/details?id=org.waremon.bubble2&hl=ja
高額喫煙納税 ¥0
https://itunes.apple.com/jp/app/gao-e-chi-yan-na-shui/id902170473?mt=8&at=10l8JW&ct=hatenablog
計 ¥1,123
売上 @AdMob
THE じゃんけん ¥0
https://play.google.com/store/apps/details?id=org.waremon.janken&hl=ja
原発を運転せよ ¥0
https://play.google.com/store/apps/details?id=org.waremon.fissioin2&hl=ja
音神経衰弱 ¥85
https://play.google.com/store/apps/details?id=org.waremon.soundmemory2&hl=ja
計 ¥85
まとめ
計 ¥1,208
金額としては過去最高。ちょっと良いランチ食える。バブルデコレータのandroid版出したので当然か。
まあ当初の数百円に比べたらまだ成長しているんだろうか。目標は20万円ですけど。笑
今月はバブルデコレータの広告の表示をちょっと変えてみる予定。
あと、出来れば計画中のアプリを一つ出したい。予定では有料アプリ。
放置気味の奴らもなんとかしないとなあ。
unityをちょっとかじりだしたのでゲーム系はリメイクしようかな。
AWSのwebコンソールでS3のバケットの中身の表示時にファイル名検索出来た!
webコンソールでs3の中身の検索って出来ないと思っていた
Ctl+fでブラウザの検索をしても、ファイル数が多い場合には一定数以上が表示されていないので、下にずーーーっとスクロールして、次のファイル読み込んでーーー、ってやってやっと目的のファイルにたどり着いていた。
こんな感じで、下までいくと次のファイルを読み込んでくれる。
なんと検索する方法があった
ところが検索する方法がなんとあった。
1. 適当なファイルを選択状態にする
2. 目的のファイルの最初の文字を打つ(画像の場合、oを打っている)
すると、oから始まるファイルだけがずらーっとならぶ。
なんと簡単。そして隠し機能すぎる。
nginxのアクセスログがaccess_log.1になる
なんでだろうと思っていたら同じようにはまっている人がいた。
serverfault.com
たしかに、ディレクトリの所有者がwww-dataになってる。
という事で、chmod 755 してnginxリロードして様子見中。
追記
様子見していたら、ログローテートのタイミングでパーミッションが戻ってしまうようだった。
ここに書いてあるような設定をして完了。
http://shakezoomer.com/?p=668shakezoomer.com