買ってよかったもの2014
今年は結構お金を使った覚えがあるので自分用にメモを残しておく。
とは言っても買ってから後悔したものはなかったのでよかった。
毎日使うものにはお金をかけたほうが良いかなと思っているので、来年もよさそうと感じたものは積極的に試していきたい。
Bose QuietComfort 20i
通勤中にPodcastを聞くために買った。
音楽だと音量をすこし上げればノイズも気にならないけれど、会話が中心のPodcastだとノイズが気になっていた。
ノイズキャンセリングのおかげで快適なPodcastリスニング環境が手に入った。
ノイズキャンセリング++。
コンビニとかで会話が必要な時はコードに付いているスイッチでノイズキャンセリングをオフにできるのも便利。
羽根つきイヤーチップは違和感があるかなーと思っていたけれど、実際つけてみるとそんなこともなく、むしろ走ったりしてもズレなくてよかった。
ちょっと高いけど間違いなくおすすめ。
【国内正規流通品】BOSE QuietComfort20i ノイズキャンセリング・ヘッドホン(インイヤータイプ)
- 出版社/メーカー: BOSE
- メディア: エレクトロニクス
- この商品を含むブログ (13件) を見る
Kindle Voyage
Kindle Papaerwhiteから買い替え。
キャンペーン情報なし&Wi-Fiモデルを購入した。
全体的にさくさく動くようになって、ページ送りのストレスがほぼなくなった。
表示がキレイになったおかげか、文字が潰れていた漫画も普通に読めるようになった。
Kindleだと紙よりすこし経ってから販売されてすぐに読めない場合があるのが不安要素だけど、本棚がいっぱいになりつつあるのでKindleで買えるものはKindleで読むようにしていきたい。
Kindle Voyage Wi-Fi、キャンペーン情報つきモデル
- 出版社/メーカー: Amazon
- 発売日: 2014/11/04
- メディア: エレクトロニクス
- この商品を含むブログ (14件) を見る
iPhone6
手が小さいので片手で扱いにくくなるのは嫌だなーと思いつつも、iPhone5から買い替え。
iPhone6 32GB Silverを購入した。
片手操作がしづらくなるのは予想通りだったけれど、自分の使い方だとバッテリーが1日持つようになったのでよかった。
予想外だったのはTouch IDで、よく面倒臭がらずに4桁入力していたなーと思うくらい便利だった。
ラウンドフォルムになって落としやすそうだったので、Power SupportのAir Jacketケースのマットタイプをつけて使っている。
本体が薄くなったせいかあまり厚みを感じることもなく、滑りどめの安心感があって良い。
iPhone5だと本体の角をぶつけないように気をつけて使っていたけれど、ケースをつけるとあまりそういうことを考えなくてもよいのが思いの外快適だった。
パワーサポート iPhone6用エアージャケットセット(クリア)Air Jacket set for iPhone6 PYC-71
- 出版社/メーカー: パワーサポート
- メディア: エレクトロニクス
- この商品を含むブログを見る
motion-kitを使ってRubyMotionでAutoLayoutを利用する。
RubyMotionでAutoLayoutが使えないか調べたところ、motion-kitが良さ気だったので使ってみました。
AutoLayoutについて勉強したい人は「UIKit徹底解説 iOSユーザーインターフェイスの開発」がおすすめです。
- 作者: 西方夏子,丸山弘詩
- 出版社/メーカー: インプレスジャパン
- 発売日: 2014/06/13
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
motion-kitのページを見るとわかりますが、DSLでAutoLayoutを設定したLayoutクラスを定義します。
class HogeLayout < MotionKit::Layout def layout add UIButton, :button end def button_style title 'Press it!' size_to_fit constraints do left.equals(:superview).plus(10) right..equals(:superview).minus(10) top.equals(:superview).plus(10) height 100 end end end
あとはLayoutクラスのインスタンスをコントローラのビューに設定するだけでOK。
Layoutに追加したボタンなんかも簡単に参照できます。
class HogeController < UIViewController def loadView @layout = HogeLayout.new self.view = @layout.view @button = @layout.get(:button) end end
で、いい感じだなと思いながら触っていたのですが、UITableViewやUINavigationControllerなどのよく使うやつのサンプルがないというか、GitHubのIssueやStackOverflowに分散していたので、やりたいことを実装するのにけっこう苦労しました。
自分用のメモとして作ったサンプルをGitHubに上げてみたので、同じような境遇の人は使ってみてください。
AutoLayoutというと面倒くさくて嫌だという人が多いイメージがあるんですが、あまり自分はそう思うことは少なくて、なぜかなーと思っていました。
もともと自分がフリーハンドで図を書くのが苦手で、座標・幅・高さを数値指定して図を書きたいからじゃないかなと最近は思っています。 (ピッタリ数値が揃っているのがいい感じ)
なんとなく自分に合っているツールな気がするので、もう少し使ってみようかなと思います。
YAPC::Asia 2014 に初参加してきた。
「ブログを書くまでがYAPC!」とのことなので、若干遅れ気味ですがエントリを書いてみます。
普段Perlを触ることはあまりないんですけど、応募されていたトークを見るとインフラやモバイルに関する話題が多くておもしろそうだったので初参加してきました。
3日間通しで参加してPerlコミュニティを体感することができてよかったです。
人が多すぎて立ち見でも聴講できないトークがあったのがちょっと残念でした。
まじめにトークを聞く戦略で予定を立てていましたが、想像以上に疲れました。
これだけは聞きたい!!というトークを決めておいて聞くのがよかったかなーという気もします。
個人的ベストトークは、Day1は@kentaroさんの「いろんな言語を適材適所で使おう」です。
トークリストやベストトーク賞を見てのとおり、Perl一途な人でなくても楽しめるイベントでした。
もう Yet Another "Programming" Conference に改名しちゃいなYO #yapcasia
— Naoya Ito (@naoya_ito) 2014, 8月 30
スピーカのみなさん、運営のみなさん、楽しい時間をありがとうございました。
聴講リスト
Day0
Day1
- YAPC::Asia 2014 Tokyo - オープニング
- インフラエンジニア(狭義)は死んだ
- 完成されたシステムなどない。完成された人間もいない。あるのは成長し続ける未完成なシステムと、それを支える未完成な人間だけだ
- JSON SchemaとAPIテスト
- 作られては消えていく、泡のように儚いクラスタの運用話
- One layer down below.
- いろんな言語を適材適所で使おう
- WHERE狙いのキー、ORDER BY狙いのキー
Day2
- 突然ITインフラを任された人のための…監視設計入門
- Google BigQuery で DWH 構築
- JSON SQLインジェクション脆弱性と、そこから学ぶセキュアプログラミングの原則
- ほんとにあったスキーマの話 「ソーシャルゲーム」
- モバイルアプリとAPIのありかたを考える2014
- Changing the tires on a moving car: a case study in upgrading legacy architecture
- Mobile Application Development for Perl Mongers [ninjinkun x gfx]
- そんなにビッグでもないデータ処理手法の話
- Lightning Talks Day 2
- キーノート
- YAPC::Asia Tokyo 2014 - クロージング
RubyMotionでPixate Freestyleを使う時はmotion-pixatefreestyleを使おう。
motion-pixatefreestyle
数日前にRubyMotionでPixate Freestyleを試した記事をアップロードしたけど、motion-pixatefreestyleが公開されたのでより簡単に試すことができるようになりました。
watsonさんありがとう!!
公式のGithubに書いてあるとおり設定してうまく動作するところまで確認できました。
・Pixate/RubyMotion-PixateFreestyle · GitHub
CocoaPodsでPixateFreestyleを管理させたい場合
vendor/PixateFreestyle.frameworkにフレームワークコードをダウンロードする必要があるみたいだけど、そこら辺の管理はCocoaPodsにやらせたかったので、シンボリックリンクを作成して動作させました。
公式のGithubにも
Download the Pixate Freestyle Framework and copy the PixateFreestyle.framework folder into vendor directory (or alternatively just create a symbolic link).
って書いてあるので大丈夫だと思う。
CocoaPodsを使うとvendor/Pods/PixateFreestyle/PixateFreestyle.frameworkにコードがダウンロードされるので、vendor/PixateFreestyle.frameworkからこいつにシンボリックリンクを張ればOK。
% cd $PROJECT_DIR % ln -s vendor/Pods/PixateFreestyle/PixateFreestyle.framework vendor/PixateFreestyle.framework
Enjoy, Pixate Freestyle!!
RubyMotionでPixate Freestyleを試してみた。
[2014/02/27追記]
motion-pixatefreestyleが公開されたので、より簡単に試すことができるようになりました。
最新の記事はこちら。
大分ブログを書いていませんでしたが、ひっそりとRubyMotionで遊んでいたりします。
先週、Pixateが名前をPixate Freestyleに変えてオープンソース化されたというニュースが公式ブログに投稿されていたので、さっそくRubyMotionから試してみたました。
これまでも個人利用であれば無料で利用することができましたが、オープンソース化されたことで利用しやすくなった&利用者が増えそうでいい感じ。
Pixateが何者なのかはid:naoyaさんのエントリが詳しいです。
Pixate Freestyleのインストール
GithubのREADMEを読むと、CocoaPodsが使えるようなのでmotion-cocoapodsをGemfileに追加してbundle installしておく。
% vi Gemfile source 'https://rubygems.org' gem 'rake' gem 'motion-cocoapods' % bundle install
次にRakefileにPixate Freestyleの設定を追加して、bundle exec rake pod:installする。
pod:installしただけではPixate Freestyleのヘッダファイルが見つからず実行時エラーになったので、app.vendor_projectメソッドでヘッダファイルのパスを指定しています。
motion-pixateを使ってPixateをインストールしたときはあまり意識していなかったのでハマりました。
% vi Rakefile # -*- coding: utf-8 -*- $:.unshift("/Library/RubyMotion/lib") require 'motion/project/template/ios' require 'rubygems' require 'motion-cocoapods' begin require 'bundler' Bundler.require rescue LoadError end Motion::Project::App.setup do |app| # Use `rake config' to see complete project settings. app.name = 'PixateFreestyleTest' # CocoaPodsでPixateFreestyleをインストール app.pods do pod 'PixateFreestyle' end # PixateFreestyleのヘッダファイルを指定 app.vendor_project('vendor/Pods/PixateFreestyle/PixateFreestyle.framework', :static, :products => ['PixateFreestyle'], :headers_dir => 'Headers') end % bundle exec rake pod:install
あとはapp_delegate.rbにPixateFreestyleを初期化するコードを追加すればPixateと同じ感じで使えます。
cssのセレクタに指定できるUIコンポーネントなどの情報は公式ドキュメントに詳しく載っています。
% vi app/app_delegate.rb class AppDelegate def application(application, didFinishLaunchingWithOptions:launchOptions) # PixateFreestyleを初期化する autorelease_pool { PixateFreestyle.initializePixateFreestyle } @window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds) @window.makeKeyAndVisible @view = UIView.alloc.initWithFrame(UIScreen.mainScreen.bounds) # idやclassを指定する場合 # @view.styleId = 'hoge' # @view.styleClass = 'fuga' @window.addSubview(@view) true end end % vi resource/default.css view { background-color: linear-gradient(to right, rgba(0,153,255,0.5), #009); } /* #hoge { } #fuga { } */
これでbundle exec rakeするとcssが適用されたアプリが実行されるはず。
cssで見た目を変更できるのはやっぱり便利です。
UITableViewでセルの高さを動的に計算しなければいけないところとかcssでできない部分とできる部分を考えて適用しないといけないとは思いますが、しばらく使ってみてノウハウを貯めていきたいと思います。