月1000PV突破したらしい
hatenaから通知がきて今月は1000PV突破したらしい
まあ非常にしょぼいんだけど、ブログ始めた時は月100とかもいってなかったから確実に進歩かな。
2015年に入ってから月10記事は書くようにしていた
このブログを始めたのは2012年で、
ちょうと仕事以外で趣味でandroidアプリを作り始めていた頃。
自分のエンジニアの端くれなのでブログでも書くかー的なテンションだったが、いま振り返ると2012年は6記事しかない。笑
まあ備忘録的に始めたのでそんなんでも良いのだけど、もうちょっとちゃんとやろうかと。
ということで、月10記事は書く事にしようかと。
で、最近は、毎日コードを書いていて毎日何かしらハマっているので小ネタでも更新するようにしている。
ブログを定期的に書いていると確かにアクセスが増える
これも大した数字ではないけど、定期的に記事を更新していると確かにアクセスは増えるようだ。
ブックマークやスターも少しだけど貰えるようにもなってきた。
ググると100記事くらいが目安でアクセスが増え始めるらしいので(記事内容にもよるし、100という数字には厳密に意味はないと思うけど)このまま続ければ人に言えるくらいのPVまで増えるのだろうか。
今月ピンチ
今月は一週間くらい休みを取っていたので、更新する内容がない!
このエントリをいれても今7記事!今日3/30日!
ハマった系のエントリ以外でも書いていこうと思う
ここ一年で、元いた会社を辞めて自分でサービス立ち上げたり、フリーランスエンジニアとして働いたりしているので、技術話だけでなく、広ーい意味でのエンジニアブログに出来たら良いかなと思っている。
こんな感じの。
kenjiszk.hatenablog.com
まあ、書く事が無くて月10達成むずかしくて苦肉の策で書いたわりには書いていて楽しかったので、普段考えているような事も書き出してしまおう、という感じ。
次は月10000PV目標で
年内にはいければ良いかな。
それくらいになったらhatena proにしよう。
vimをそろそろちゃんと使いこなしたい
キングダムを読んでいてい閃いた、エンジニアタイプの見分け方
すごいエンジニアってどんな人?ってきかれる
特に、非エンジニアの方に。
特定の人を指して、この人は出来るか・出来ないか、は判断出来る気がする。
でも抽象的に説明するのって意外にむずかしいのかもと思った。
そもそもエンジニアとひとえに言っても色々なタイプがいるわけで。
キングダムを読んでいて閃いた
なんかこれは分かりやすいかも、と勝手に思っているので書いてみる。
スーパーエンジニア系
[asin:408877504X:detail]
羌瘣・龐煖タイプ。
神レベルに強い。
中華統一といった夢よりも、武に重きを置くタイプ。
(現実のスーパーエンジニアは本当にスーパーなので、技術に重きを置きつつもサービスや経営に関しても考えられちゃったりする。)
めちゃくちゃ詰まって悩んでた問題を投げると一発で解決してくれたりする。
エンジニア出身CEO
[asin:B009LHBWP0:detail]
李牧タイプ。
まあ、王様ではないけど。
軍師なのに武のにおいぷんぷん。
フリーランス、個人で面白いサービス立ち上げちゃうタイプ
[asin:4088794559:detail]
桓騎タイプ。
才能としては、将軍(エンジニア)の枠には収まらないタイプ。
好きなように生きるので、正社員だとしても企業への忠誠心は薄い。
意外に義理堅かったりもする。
まとめ
かなり個人的な意見で書いたけど、
面接に来たエンジニアさんをキングダムの登場人物に当てはめて、
誰タイプなのかなーと考えると出来る人かどうか、自社に必要な人かどうかがちょっとはわかるのかも。
将来どんなエンジニアになりたいかを考える時にもキングダムは参考になるかも。
UIPageViewControllerで現在のページを取得する場合の注意
複数のViewをページめくりの様にして使えるUIPageViewController
公式ドキュメント。
Apple Developer Documentation
多分ググればかなりの数が出てくる。
今何ページ目なのかが知りたい事はよくある
ページ番号を振るとか、ページごとに固有の処理をさせたいとか、UIPageControlのcurrentPageに設定する為とか、そんな目的で、今何ページ目かが知りたい事がよくある。
なぜか正しい値を示さない
以下のように、viewControllerAtIndexの中で描画されたページ(今のページ)のindexを記録するようにしたところ、返ってくる値がおかしい。
2ページ目なのに3とか返ってくる。
- (UIViewController *)viewControllerAtIndex:(NSUInteger)index { currentPage = index; // currentPageに今何ページ目かをセットしてクラス内で使えるようにする /* ~~ 各ページ用のviewController作る ~~ */ return viewController; }
UIPageViewControllerは今のページとその前後のページを先読みしているため
ドキュメントを見ると、どうもUIPageViewControllerは動きをサクサクさせる為に、今のページとその前後のページをあらかじめ作っておくらしい。
そのため、1ページ目から2ページ目にいく時に、裏では3ページ目もよんでいてcurrentPageに3が入ってしまっていた。
ちなみに、前後なので1ページ目も先読み対象になるけど、既に作成されているページは読み込まない。逆に言うと廃棄もしない。
廃棄されるのは3ページ目になった時。
今activeなページを取得する為には
で、色々調べた結果、以下のようなメソッドが使えるとの事。
- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed { // ContentViewControllerはあらかじめ作っている各ページ用のクラス // ContentViewControllerにはcurrentIndexというプロパティを持たせていて、ページ作成時にセットするようにする ContentViewController *currentViewController = [pageViewController.viewControllers objectAtIndex:0]; currentPage = currentViewController.currentIndex; }
スクロールモーションが終わったタイミングをフックに、viewControllersを取得する。
viewControllersには今前面に出ているviewControllerとその親たちが入っているので先頭(子供)を取得する。
一瞬ハマりかけたけど、解決。
Images.xcassetsに置く画像の名前にドットを含むとエラーになった
シミュレータでは画像が出るのに実機では画像が出ないという症状に陥りました
エラーはこんな感じ。
2015-03-13 21:07:27.284 xxxx[229:60b] Could not load the "TopSlide03_3.5" image referenced from a nib in the bundle with identifier "xxx.xxx.xxx"
ファイル名にドットを入れると駄目らしい。
3.5inch用にTopSlide03_3.5という名前を付けていましたが、これが原因。
ドットを抜いて、TopSlide03_3_5としたら無事表示されました。
iOS7 or iPhone4sの問題??
この症状が発生したのは、iOS7のiPhone4sの実機のみでした。iOS7未満は実機が無いので未確認。
また、シミュレータ(iOS8ですが)でiPhone4sで試してみると正常に表示される事は確認できました。
ちょっと発生条件まで追えずじまいだけど、いずれにしてもドットはファイル名に使わない方が無難ぽい。
[asin:4800710707:detail]
MySQLでautocommitをONにしておかないとALTERがロック待ちで固まった
開発中の環境でALTERを打ったらロック待ちで固まって焦った
原因は、autocommitがOFFになっていたのと、他の作業者がMySQLに接続していたから。
autocommitがOFFだとMySQLに接続してクエリを発行したタイミングでトランザクションが開始される、そのためもう一つの接続先からALTERを打つとロック待ちになる、という現象でした。
こんなテーブルを作って。
mysql> create table test (id int, name varchar(10));
接続元1でselectを打つ
mysql> select * from test; Empty set (0.00 sec)
autocommitがOFFの場合、このタイミングでトランザクションが開始され、テーブルor行にロックがかかる(インデックスが効いていれば行ロック)。
今まで勘違いしていたけど、更新処理開始時ではなくselectでもトランザクションが開始されるっぽい。
REPEATABLE READなので考えてみれば当たり前か。
ここで、接続元2からalterを打つ。
mysql> alter table test change column id id bigint; (返ってこない。。。)
トランザクションによりロックがかかっているのでALTERが打てない感じになります。
アプリ広告収入 2015/02
2月は日数が少ないですからね!笑
iOS nend
ときめきエキスプレスStation ¥1
https://itunes.apple.com/jp/app/tokimekiekisupuresustation/id660044163?mt=8&at=10l8JW&ct=hatenablog
バブルデコレータ(iOS) ¥359
https://itunes.apple.com/jp/app/baburudekoreta/id741537396?mt=8&at=10l8JW&ct=hatenablog
バブルデコレータ(android) ¥282
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
計 ¥643
Android AdMob
THE じゃんけん ¥56
https://play.google.com/store/apps/details?id=org.waremon.janken&hl=ja
原発を運転せよ ¥11
https://play.google.com/store/apps/details?id=org.waremon.fissioin2&hl=ja
音神経衰弱 ¥6
https://play.google.com/store/apps/details?id=org.waremon.soundmemory2&hl=ja
計 ¥73
計 ¥716
2月はバブルデコレータのandroid版をリリースしたんですが、あんまりインパクトは無いですね。
相変わらず、昼飯代程度という事で。。。