エンジニアリングにはほど遠い

iPhoneアプリとかサイトとかをつくっていくブログです。

2014-01-01から1年間の記事一覧

Rubyのcaseを圧縮

whenの後の条件式のあとは改行しないとエラーになるのでどうしても行数が長くなる (追記: when A then B でいけます。基本的な事だけど知らなかった・・) case key when :foo 1 when :bar 2 else 3 end 条件が文字列かシンボルであれば下の様に書いてみてる…

WindowsのSSL 3.0をコマンドで無効化 (SSL 3.0 POODLE対応)

マイクロソフト セキュリティ アドバイザリ 3009008のWindowsの方のSSLを無効にする方法をコマンドプロンプトで書きました。 やってることはレジストリにファイルを一つ作成しているのみです。 無効の設定ファイルの作成 reg add "HKEY_LOCAL_MACHINE\System…

Clojureで同一キーでhash-mapのリストを作ろうとしたらハマった

下のはいける。 user=> (map #(hash-map :key %) [1 2 3]) ({:key 1} {:key 2} {:key 3}) でも、キーを引数化したら怒られる。 user=> (map #(hash-map %1 %2) :key [1 2 3]) IllegalArgumentException Don't know how to create ISeq from: clojure.lang.Ke…

CocoaPodsエラー diff: /../Podfile.lock: No such file or directory

iOS

以下のようなエラー。 diff: /../Podfile.lock: No such file or directory diff: /Manifest.lock: No such file or directory error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation. Pods.d…

Windowsでchromeを落としてインストールするバッチファイル

Windowsマシンの設定自動化についてちょこちょこ調べてます。Windowsマシンは仕事でしかほとんど触らないのでなかなか慣れない。。 管理者権限で実行したらchromeのダウンロードからインストールまでやるバッチを作ってみました。powershellでwget的な事をや…

UITextFieldで編集中に別のやつにフォーカスさせると色がヘンになる

iOS

画面上にUITextFieldが複数あって何文字入力したら次のfieldにジャンプする、みたいな事をしたい場合このようにした。 #import "ViewController.h" @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; [_first addTarget:self acti…

Ruby Hashのkeyをsymbolに変換する

hashの中のarrayの中にもhashがあったときの事を考えて書きました。 config/initializers/hash.rb class Hash def keys_to_sym each_with_object({}) do |(k, v), hash| hash[k.to_sym] = v.respond_to?(:keys_to_sym) ? v.keys_to_sym : v end end end conf…

ctrl+M で enter

これが凄く快適です。 returnを押すとどうしても「ッターン!」の瞬間に思考の空白ができてしまうので。 打鍵音もかなり小さくなって、今日はキーボードを打っているのかどうか分からないくらいにまで抑えられたかな、と思います。 vimやiTermでは標準でこの…

新言語Swift

いや〜熱いですね。 一応ドキュメントは無料で手には入るんですがNDA的な関係で内容をどこまで書いていいのか。 パッと見はObjective-Cとはまるで違いますね。 自分はObjective-Cからプログラミングに入ったのでObjective-Cが母国語というか、やっぱ読みやす…

iOS 角丸パーツ

iOS

かなり既出でしょうが。 UIViewのサブクラスのdrawRectに角丸処理を書く。 storyboardでも置けばそのまま使えるので、速く作るならradiusが違うクラスとか、button用クラスとかを何個か作っても良いかななどと思ったり。 #import "JOGRoundButton.h" @implem…

更新滞ってる

ちょっと忙しくて更新が・・。 「入門 Webゲーム開発」買った。JavaScriptがまるで分かっていないのでとりあえず動くものを作ってみて流れを感じてみようという事で。 フレームワークの力も感じられそう。 早く写経したい・・・! 入門 Webゲーム開発作者: E…

iOS NSStringで絵文字を含んでいるかを判定

iOS

こちらから、絵文字のNSCharacterSet+EmojisAdditionカテゴリを使わせてもらった。 #import "NSString+isContainAddition.h" #import "NSCharacterSet+EmojisAddition.h" @implementation NSString (isContainAddition) - (BOOL)isContainEmoji { NSCharacte…

UIPageViewControllerでpage内にセットしたvcのviewが37pt縮む件

iOS

何の事は無い、画面下部にpageControllerが表示されていたんですね。 こちらでみてなるほどと。 自分の方ではpageControllerの○の色が見えなくて、ずっと原因が分からず悩んでいました。なんで、中のviewが縮むんだよ、と思って色々試行錯誤し、Transition S…

iOS端末の中に入っているprovisioning profileに関してキャッシュ的なことが起こった

iOS

アプリのテストなどで一度アプリインストール時にprovisioning profileを端末内に入れると、そのままだと、大元のiOS dev centerでそのprovisioning profileをeditしたりして更新したとしても、古いやつがずっと使われる。 さらに、たとえ大元で新しくprovis…

Rails インスタンスが持つインスタンス変数一覧をハッシュで取得

ActiveRecordのattributes的な。 instance_values でできるみたいです。(要ActiveSupport) [1] pry(main)> class Hoge [1] pry(main)* attr_accessor :a, :b, :c [1] pry(main)* end => nil [2] pry(main)> hoge = Hoge.new => #<Hoge:0x007fec4b2859d0> [3] pry(main)> hoge.instan</hoge:0x007fec4b2859d0>…

office365体験版をアカウントに関連づける

メチャクチャ分かりにくかったので。officeは商品の種類とか、ライセンスとか、ユーザーを混乱させようとしているとしか思えない。 管理画面で ユーザとグループ > ユーザを選択 > 鉛筆マーク > ライセンス > Office 365 Small Business Premium 10 ライセン…

Mac renameコマンド

すごく便利ですね〜。 こちら参考にさせてもらいました。 インストールは brew install rename 例えば、現在のディレクトリ内の全部の.pngファイルを@2x.pngにしたいときは find . -not -name '*@2x*' | grep .png | awk -F"/" '{print $2}' | xargs rename …

iOS NavigationBarとTabBarを考慮したUIViewControllerのviewを取得

iOS

viewWillAppearで取得する。 // exist NavigationBar and TabBar - (void)viewDidLoad { [super viewDidLoad]; NSLog(@"self.view %f %f %f %f", self.view.frame.origin.x, self.view.frame.origin.y, } - (void)viewWillAppear:(BOOL)animated { NSLog(@"s…

iOS QuickDialogのひとつのelementsのappearanceをいじったら全部の見栄えが変わってしまう件

iOS

ハマりました。 // NG [self.root elementWithKey:@"hoge"].appearance.backgroundColorEnabled = [UIColor redColor]; これでやると、なぜか他のelementの色も変わっちゃう!(?_?) いろいろデバッグしたりしてかなり彷徨っていたんですが、 // OK QAppearan…

iOS QuickDialogからさらにQuickDialogを開きたい〜!(電波少年風)

iOS

QuickDialogのサブクラスを作って手でうちゃうちゃやるのはあまりよろしくなさそうという事で、カテゴリでやってみました。 これが正解のやり方だとは思っていないので、もっといい方法があれば教えて頂きたいです。 UIViewController+showQuickDialogContro…

自分用時計Mac App作った

Mac

Obsician Menu Barでmenu barを黒くしていると、時計の時刻が見づらくなりまして。 それで、時計だけを表示するMacAppを作ってみました。 この佇まい。 Quitのみ。 Mac Appはあまり作った事がないのですが、UI以外のところはiOSとほとんど同じ感じですね。 …

iOS addSubViewのときに隅とか真ん中に楽に置けるカテゴリ

iOS

ただまんま書いただけなのですが、作っておくととても便利でした。 UIView+adjustSubView.h #import <UIKit/UIKit.h> typedef enum { UIViewAdjustSubViewLeftTop, UIViewAdjustSubViewLeftCenter, UIViewAdjustSubViewLeftButtom, UIViewAdjustSubViewCenterTop, UIViewAdj</uikit/uikit.h>…

iOS 文字数で縦幅が変化するラベルを持つビューを作るカテゴリ

iOS

よく使う機能なのでカテゴリ化して作りました。 最後ceilしてるのはこちらを参考にさせていただきました。 引数のtextはNSStringとNSAttributedStringに対応してます。 ※デカすぎるものを作ると落ちるので注意して下さい。 gist9976186 使うときはこういう感…

ググりまくれるスクリプトを書いた

pod list とか brew cask search とかの内容をいっぱい検索したいなぁと思い。 (open url でブラウザ起動できる必要あり) google search each arg keywords. example: pod lis ... (10件以上のときは確認メッセージが出ます) 使い方 pod list | grep -i web …

キーボードでUIパーツが隠れるのをUIScrollViewにて上にスクロールして回避

iOS

昔からなされている事だとは思いますが、今日初めてその問題に突き当たったので。 Appleの公式のやり方だとなんか動かなかったので少しだけ別のやり方で。 考え方として、見せたいUIパーツの下の部分がキーボードに隠れた時に、隠れた分だけ上に上げる、とい…

UIScrollViewにviewを追加していけるカテゴリ

iOS

作ってみたらかなり重宝してます。 かなりまんま書いてて賢くないソースだし、イレギュラーな使い方とか考慮していないのですが。 add content to UIScrollView, auto calc scrollView' ...

Mac 単語を三本指タップで辞書

凄い!知らなかった。 英語読み上げ機能と合わせて捗りますね。 SafariのReader + 読み上げ + 3本指と、Mac標準のものでも既に凄く快適です。

Vimがステキ

去年の8月からVimを使い始めてようやく慣れてきた。 しかしiOSを作るときにはXcodeを使ってて、まあXcodeも好きなのだけど、Vimっぽい動きをしたいときが多くなってきた。特にデータを切り貼りしたりするときに行単位のRecoding機能を使いたくなる。 Rubyの…

applicationWillEnterForegroundで何かやる場合

iOS

notificationを投げているんだけど、状況によってやりたいことを変えたい。(例えば、ブラウザでの認証後にジャンプして戻ってくる時だけこの処理をするみたいな) もしアプリが起動していなくて、application: didFinishLaunchingWithOptions:が呼ばれれば、…

sign_upのメールに載せたurlの末尾が.だった場合にgmailで開くと値が欠ける件

ユーザ登録のメール認証の為のトークンを作ったりしたときに トークンの末尾が.ではまりました。 メール本文: https://****/confirm?token=○○○○. クリックで開く: https://****/confirm?token=○○○○ に遷移 → 認証失敗 となる。 また、.はURLエンコードの対象…