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

納まりました

今年も無事納まりました。 無事でよかった。 今年はいろいろやりました。 Dir的なことをやったり SE的なことをやったり Railsで開発したり 一つのサービスのマークアップとJSをメインで作ったり objective-cを勉強してアプリも出したり ブログも書きだしたり…

githubのprojectページを作ってみた

簡単な静的ページを作りたい時はgithubのprojectページが便利ということで初めて試してみました。 http://pages.github.com/ 作り方 リポジトリを作ったら、「gh-pages」というブランチを作るだけ。 後は、そのブランチにファイルをコミットしていけば下記の…

bowerでjsのライブラリを管理する

javascriptのライブラリもgemとかcocoapodみたいに管理できないかなーとググってみたら良さそうなのがあったので使ってみました。 Twitter社製のbowerです。 http://bower.io/ install npmでインストールするので、npmが入っていない人はNodeJSからインスト…

アクセスログからアクセスの多いIPアドレスを算出する

cutでIPアドレスだけを抜き出して、uniqで数えた後、更に多い順にソートしています。 cat access.log | cut -f 1 -d ' ' | sort | uniq -c | sort -nr | head -10

UITabBarControllerとUINavigationControllerを同時に使う

標準のミュージックアプリの様な、UITabBarとUINavigationを同時に使う方法をまとめます。 どうやるのか UINavigationControllerの配列を作り、UITabBarControllerに渡してあげるだけです。 // 各タブのrootとなるViewControllerを指定して // UINavigationC…

iOSエンジニアにモテるAPIを作るための3つのこと

最近、自分でobjective-cをちょこちょこ書いていて、API作る側もちょっと気をつけた方がいいなーと思ったことがありました。 それは、プロパティ名です。 1. "id"を使わない objective-cにはid型があるので、プロパティ名でそのままidを使うとまぁややこしく…

Xcodeのデバッガってコマンド叩けたのね

Xcodeでブレイクポイントを設定して処理を止めた時とかに出てくるデバッガ。 こいつ。 よくわからないエラーとかも吐いてくるので、あんまり好きじゃありませんでした。 しかも左側に出てくる変数とかは、中身が見れそうで見れない。 そのチラリズムの精神は…

【facebook】access_tokenのexpire(有効期間)を延長する方法

facebookのaccess_tokenはデフォルトだと1~2時間ぐらいで無効になってしまい、再度access_tokenの取得が求められますが、「それはあまりにも短い!」という人のために、有効期間を延長する方法を提供しています。 公式ドキュメントを見る こちらに載っている…

RubyでExcelファイルからデータを取り出す

よく、マスターデータをExcelで管理してプログラムで一気にImportする、というようなことをするので、RubyからExcelファイルのデータを取り出す方法をまとめます。 spreadsheetを使用する spreadsheetというgemが公開されているので、こちらを使用します。 h…

いつの間にかfacebookの写真アップロードがURLを渡すだけでできるようになっていた件

今まで、facebookに写真をアップロードする時、画像のバイナリデータをPOSTしていました。 しかし、久々にドキュメントを見てみたら、いつの間にか「url」というパラメータが増えていたので、もしやと思って試してみたらヌフフな結果でした。 ドキュメントを…

Rails4で条件付きのリレーションを設定する方法

Rails4になってから指定方法が変わって、探すのに苦労したのでメモっときます。 Rails3の場合 has_many :hoge, :conditions => "status = 1" Rails4の場合 has_many :hoge, -> { where(status: 1) } 『->』ってなんだ これはruby1.9から、lambdaをこういうふ…

facebookの開発者サイトのデザインがもうすぐ更新

facebookのdeveloper向けのサイトがあります。 http://developers.facebook.com/ 先日このブログでも紹介した、GraphAPIのドキュメントもここにあります。 GraphAPIを調べる時のFacebook公式ドキュメントの歩き方 - tanihiro.log この開発者サイトのデザイン…

【初めてのiPhoneアプリ開発】『週刊Qiita』をリリースしました!!

@hirotterと@ki_230の共同開発を経て、本日生まれて初めてiPhoneアプリをリリースしました! 週刊Qiita 作ったアプリは至ってシンプル。 Qiitaの週間ストック数ランキングを閲覧することができるだけです。 ※非公式アプリですが、Qiitaのサポートチームに問…

UINavigationBarのタイトルを画像にする方法

UINavigationBarのタイトルに画像を設定してみます。 こんな感じ。 UIImageView *titleImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo.png"]]; self.navigationItem.titleView = titleImageView; ViewControllerのnavigationIt…

javascriptのfunctionの話

javascriptで関数を定義してみます。 function hello() { document.write('hello'); } これで、helloという関数を実行できるようになります。 でも関数を即時実行したいとき、よく見るのがこの形です。 (function() { docuemt.write('hello'); })(); 最後の…

GraphAPIを調べる時のFacebook公式ドキュメントの歩き方

これさえ覚えればFacebookのGraphAPIも怖くない、ということでFacebookの公式ドキュメントの歩き方をまとめます。(2013/12/04 現在) 公式ドキュメント GraphAPIの公式ドキュメントは下記のURLです。https://developers.facebook.com/docs/graph-api/refere…

UINavigationControllerの基礎的な使い方

UINavigationControllerの使い方を簡単にまとめます。 UINavigationControllerを定義する まずは、UINavigationControllerを定義します。 その時、一番最初に表示したいViewのViewControllerを渡します。 TAViewController *viewController = [[TAViewContro…

Rubyから複数の音声ファイルを繋げる

Rubyから複数の音声ファイルを繋げる方法をまとめます。 soxを使用する CUI上で音声ファイルを扱う時に便利なツールとして、soxがあります。 http://www.hcn.zaq.ne.jp/___/unix/sox-ja.html http://sox.sourceforge.net/sox.html このsoxを使用します。 イ…

FacebookページをAPIで操作するためのAccessTokenを取得する

自分が管理権限を持っているFacebookページであれば、APIで操作が可能です。 自動で投稿したりといったことが、簡単に作ることができます。そのためには、FacebookページをAPIで操作するためのAccessTokenが必要なので、そのAccessTokenの取得方法をまとめま…

prototype継承するときの順序には気をつける

prototype継承を実装する時の凡ミスが多いです。 function GrandParent() { } function Parent() { } function Me() { } // GrandParentにhelloメソッドを追加 GrandParent.prototype.hello = function() { }; // Parentにworldメソッドを追加 Parent.protot…

Alfredの変な機能を見つけた

Alfredはめちゃくちゃ便利です。 ランチャーとしてとても優秀なので、いつも愛用しています。https://itunes.apple.com/jp/app/alfred/id405843582そんなAlfredの変な機能を見つけました。 1. まず、いつもどおりAlfredを立ち上げます 2. 文字を入力します 3…

セルをカスタマイズしてオシャレなUITableViewを作成する

InterfaceBuilderを使って、TableViewのセルをカスタマイズする方法をまとめます。 セル用のclassを新規作成 これでカスタムセル用のクラスが作成されますが、IntefaceBuilderがありません。 なので、作ります。これで空の状態のxibファイルが作成されます。…

RMagickを使ってサムネイル画像を作成する

2週連続でrmagickネタです。(rubyのネタがない...) image = Magick::ImageList.new('/path/to/file') # width: 200, height: 200の画像にリサイズ image.resize(200, 200).write('/path/to/thumbnail') ImageListを生成した後に、resizeメソッドで画像をリ…

cssで条件以外の要素に対してスタイルを指定する

css

最初の要素以外のものにスタイルを適用したいというケースがよくあったのですが、その度にいちいち全体に指定した後、first-childだけを元に戻す、みたいなことをしていました。そしたら、そんなことせずともできる方法がありました。 :notを使う :not(selec…

javascriptのモジュールパターンとprototype継承について

jsを書くとき、今まであまりprototype継承を使用せず、どちらかというとモジュールパターンで記述することが多かったので、それぞれ何が違うのか、あまり理解していませんでした。 それを今日教えてもらえたので、まとめます。 モジュールパターンとは funct…

ビット演算でフラグを管理する

複数のフラグを管理したい場合、いちいちDBに専用のカラムを追加していくのはめんどくさいです。(もちろんそのフラグで絞り込みたい場合は別ですが。) ビット演算でフラグを判定する ビット演算でフラグを判定すれば、フラグの管理がスリムになります。 FL…

UITableViewの基礎的な使い方

最近、UITableViewはなんとなく触れる用になってきたので、基礎的な使い方をまとめます。 とりあえず表示してみる とりあえず画面にtableViewを表示します。 UITableView *tableView = [[UITableView alloc]initWithFrame:self.view.bounds style:UITableVie…

RMagickを使って透過pngを重ねて合成する

例として、0.png ~ 9.pngまでの透過pngが用意されていて、それを重ねて1枚の画像に出力する。 require 'RMagick' image = nil 10.times do |num| # 画像データを読み込む tmp_image = Magick::Image.from_blob(File.read("/path/to/#{num}.png")).first # im…

能年玲奈の情報をいち早くキャッチしたいからPUSH通知で知らせるようにした

通知周りはim.kayac.comに任せました。https://github.com/tanihiro/nonen-rena-notification## 設置方法(簡単3ステップ) git clone im.kayac.comのアカウント情報を記入 cronを設定 現在は、公式サイトと事務所サイトのニュースを一時間ごとにチェックし…

isuconに初参加してきました

土曜日に職場の@handlenameと@nobu_ohtaと組んで参戦してきました。 結果は惨敗。でもすごく楽しかった。 始まる前 他の2人は仕事でPerlを使っているので、自然とPerlを選択することに。 僕はPerl全然わからないので、始まる前はどうやって空気にならないよ…