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

【swift】Optional Bindingについて

前回swiftでのnilの取り扱いについてまとめました。 【swift】nilとoptionalな型の取り扱い - tanihiro.log 今回はnilを取り扱う時に便利な記法のOptional Bindingについてまとめます。 Optional Binding 必要になるケース 例えば、関数の中には返り値がOpti…

【swift】nilとoptionalな型の取り扱い

nilの扱い swiftでは通常、変数や定数にnilは代入できません。 var hoge: String = nil let fuga: String = nil これはコンパイルエラーになります。 nilを代入するためには、optionalであることを宣言するために型に?をつけます。 var hoge: String? = nil …

【swift】InterfaceBuilderを使用してViewControllerを組み立てる

objective-cと変わらないと思ってたらちょこっとだけ違いました。 新規ファイル作成から「Cocoa Touch Class」を選択して 「Also create XIB file」にチェックを入れれば、ViewControllerのファイルと一緒にxibファイルを作成されます。 objective-cであれば…

【swift】変数・定数・関数を定義する

最近swiftをちょっと勉強しだしたので、ちょっとずつメモを取っていこうと思います。 変数 var hoge: String = "hoge" // 型を宣言する var hoge = "hoge" // 宣言しなくても自動的に判定もする var hoge = "hoge", fuga = "fuga" // カンマで連続で定義する…

GoogleAnalyticsのトラッキングのコールバックを設定する

〇〇ページに遷移するためのボタンのクリック率とかを図るためによく、ボタンのクリックイベントを計測したりします。 でも、このページ遷移とトラッキングのAPIを同時に叩くと、やっぱりうまくトラッキング出来ないこともチラホラあるみたいです。 Analytic…

【Ruby】ActiveRecordのAssociationにメソッドを追加する

ActiveRecordのhas_manyとかbelongs_toとかのAssociationはブロックを渡してメソッドを追加することができます。 class User has_many :blogs do # ステータスがopenのものを取得する def open where(status: 'open') end end end こんな感じで、ブロックの…

【Rails】belongs_toで紐付けたモデルの存在チェック

belongs_toで紐付けたモデルが本当にデータとして存在するかどうかをチェックする。 class Blog has_many :comments end class Comment belongs_to :blog end 例えば、このようなモデルがあった時、Blogモデル経由でCommentを作成した場合は、すでにBlogは存…

【css】floatとvertical-alignを併用しようとしてがっつりハマった話

css

先日書いたブログに、先輩がこんな風にコメントしてくれたにもかかわらず、がっつりハマったので戒めのためにもメモしておきます。 なにが起きたか 要件としては、高さの違う2つのボックスを横並びにして、上下中央寄せにする、というものでした。 <div class="wrapper"> <div class="left">左は<br>二行</div> <div class="right"></div></div>…

【CSS】横幅が可変な要素を中央寄せにする

css

margin: 0 auto;で中央寄せするためには要素の幅を指定しないといけないので、横幅が可変な場合はこの方法では中央寄せにできません。 inline-blockを使えばできるみたいです。 <div class="pager_wrapper"> <ul class="pager"> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul> </div> .pager_wrapper { text-align: center; } .pager { display: inl…

【GoogleAnalyitcs】複数のトラッキングコードを一つのページに埋め込む

最新版のanalytics.jsであれば、複数のトラッキングコードを一つのページに埋め込むことができます。(ga.jsではできません) トラッキングコードの定義 ga('create', 'UA-xxxxxxxx-1', 'auto'); ga('create', 'UA-xxxxxxxx-2', 'auto', {'name': 'sub'}); …

AngularJSを初めて勉強する時にたどった道

最近、初めてAngularJSを使ったんですが、すごく便利でなぜ今までちゃんと触ってこなかったのかを後悔しています。 ただ、便利な面学習コストも高くて、なかなか使いこなすまでに時間がかかりそうです。 僕もまだ一部機能しか使えていませんが、これからAngu…

EC2でping監視をする時はセキュリティグループで許可しましょうという話

EC2のインスタンスをzabbixで監視していると、なぜかping監視のところでアラートが挙がる。 なぜだなぜだーと悩んでいたら、セキュリティグループで許可しない限りpingも到達しないからでした。 セキュリティグループの設定 Custom ICMP ruleを選択 TypeはEc…

サーバにhtpasswdだけインストールしたい

NginxだけでWebサーバを構築したけど、Basic認証はかけたいからhtpasswd使いたい!でもApacheはインストールしたくない!って時の方法です。 $ yum install httpd-tools htpasswdはhttpd-toolsというパッケージに分けられているみたいなので、これをインスト…

apache2.4からアクセス制限の書き方が変わってた

apacheがこんなエラーを吐いてくるので、なんだろうなーと思っていたらアクセス制限の書き方が2.4から変わってました。 client denied by server configuration・・・ 今までのこれが <Directory "/hoge"> Order allow,deny Allow from all </Directory> <Directory "/fuga"> Order deny,allow Deny from all </Directory> …

fluent-agent-liteのrpmを作成する

全部READMEに書いてあることなんですが、自分用にまとめます。 https://github.com/tagomoris/fluent-agent-lite rpm-buildのインストール rpmを作成するためにはrpm-buildが必要なので、インストールします。 $ yum install rpm-build インストールすると、…

serverspecをグループ分けして実行する方法

serverspecは、デフォルトの設定だとhost毎にspecファイルを書かなければいけません。 spec ├── spec_helper.rb └── example.com └── httpd_spec.rb そのため、同じミドルウェアがインストールされている場合、同じソースを書かなければいけないのが少し面倒…

【css】MediaQueryを使ってみた

css

PCとスマホのページを1ソースで作るために、ウィンドウの幅に応じてスタイルを変更する、css3のMediaQueryを使ってみました。 @media screen and (max-width: 640px) { body { background-color: red; } } MediaQueryを使用する時は、Mediaを明示的に指定し…

cssが適用される優先順位

css

たまに混乱してしまうのでまとめます。 idはclassより強い 階層が深いほうが強い styleを直接書くのが一番強い idはclassより強い この場合は、idの方が強いので背景色は赤色になります。 <div id="hoge" class="hoge"></div> #hoge { background-color: red; } .hoge { background-color: gree…

シェルスクリプトでif文を書く

すごく基礎的なことなんですが、毎回ググっているので自戒の念を込めて書きます。 if [ "hoge" == "hoge" ]; then echo true else echo false fi 重要なのは[]の中は半角スペースを必ず開けること。 if ["hoge" == "hoge"]; then echo true else echo false …

facebookの評判をチェックできるサイトを作りました

http://fb-checker.tanihiro.com/ どんなサイトか URLを入力して、そのURLのいいね数の内訳(share, like, comment)の数を表示します。 なおかつ、facebook上で公開範囲が全体になっている投稿からURLをキーワードにして検索をし、投稿を表示します。 作ろ…

【objective-c】UIWebViewでローカルにあるHTMLを表示する

xcode内にHTMLを格納して、そのHTMLをWebViewで表示する方法です。 // UIWebViewの初期化 UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.bounds]; // htmlのパスの取得(今回はsample.html) NSString *path = [[NSBundle mainBundle] p…

日付期間の重複チェック

開始日時と終了日時を持っているデータがあって、その期間と重複しているデータがないかチェックするときの条件式のメモです。 start_date(開始日) end_date (終了日) start_date <= {対象終了日付} AND end_date >= {対象開始日付}

【ruby】rakeのデフォルトタスクを変更する方法

Rakefileに記述する Rakefileに記述して指定します。 task default: :about この様に書くと、タスクを指定せずrakeコマンドのみを実行した時にrake aboutと同じ挙動になります。 taskは複数設定することも可能です。 task default: [:about, :routes] about…

【Rails】migrationのchangeとup/downって何が違うの?

Railsでmigrationを作成する時、changeメソッドだけが定義されていたり、upとdownメソッドの2つが定義されている時があります。 class AddColumnHoge < ActiveRecord::Migration def change end end class ChangeColumnHoge < ActiveRecord::Migration def u…

【ruby】ActiveModelを使ってDBと関係ないFormを作成する【Rails】

RailsでFormを扱う時は、Modelと紐付けることで、validationなどの設定はModelに書くことができ、非常に便利です。 ですが、DBと関係ない場合は紐付ける対象のModelが生成されていません。 そこで使用するのがActiveModelです。 https://github.com/rails/ra…

【ruby】Railsでファイルアップロードをテストする

Rack::Test::UploadedFileを使用します。 http://rdoc.info/github/brynary/rack-test/master/Rack/Test/UploadedFile インスタンスを生成する際に、第一引数にファイルのパス、第二引数にcontent-typeを指定します。 Rack::Test::UploadedFile.new("/path/t…

【ruby】ブロックの変わりにProcオブジェクトを引数に渡す

ブロックを渡すようなメソッドは、Procオブジェクトを引数として渡すことも出来ます。 普通にブロックを渡すとこんな感じ。 hoge = %w(foo bar piyo) hoge.each do |val| puts val end これをProcオブジェクトを引数として渡すとこんな感じになります。 hoge…

【iOS】UIViewに背景画像を設定する方法

UIColorにcolorWithPatternImageというメソッドがあるので、背景画像を渡して対象となるviewのbackgroundColorにセットするだけ。 UIImage *backgroundImage = [UIImage imageNamed:@"bg.png"]; self.view.backgroundColor = [UIColor colorWithPatternImage…