サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
qiita.com/yaotti
Atom Is Now Open Source | Atom Blogによると,Atom開発のためにNode-Webkitを試してみたが利用はせず,別途フレームワーク(Atom Shell)を作成したとのこと. We experimented briefly with Node-Webkit, but decided instead to hire @zcbenz to build the exact framework we were imagining. Node-Webkitを採用しなかった理由を開発者に質問したところ以下の回答が得られた. 技術選定のタイミングではNode-Webkitは安定していなかった&分離されたコンテキスト(nodeのコンテキストとwebのコンテキスト)があった 他のプロジェクトに依存しない,完全に自由な状態でzcbenz(Atom Shellの中心開発者)に
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up
AUTO_CD setopt AUTO_CDの1行を~/.zshrcに設定しておくと,ディレクトリ移動時にcdを打たなくても,ディレクトリと解釈できる文字列を打てばcdしてくれる
Gitにある程度慣れ,基本的な操作ができるようになるとより深く知りたくなってくると思いますが,そのときにググって分散した情報を読むのではなく,まとまったドキュメントを活用すると効率が良いです. まずは中級者向けgit helpについて. git help help まずはgit help helpをして,よく使うgit helpについてより良く知っておきましょう.git helpの中でおすすめオプションは以下の2つ. -w HTMLでのmanをブラウザで開く.長いmanを読むときなどは読みやすくて地味に便利 -g ガイド一覧.特定のgitコマンドに縛られないような内容を見ることができます. gitガイド $ git help -g The common Git guides are: attributes Defining attributes per path glossary A Gi
ワークツリーに加えた変更のうち一部分だけをaddしたいときには git add -p すると,変更部分ごとにaddするかどうかを選択できる. 逆にgit checkout -pで,一部の変更を消す(正確にはaddされていない=unstagedな変更から消す)ことができる. デバッグプリントのコードを消したいときなどに便利. どちらもyやnなどで選択した後に毎回enterを押す必要があり面倒だが git config --global interactive.singlekey true を実行しておくと,yやnなどを押した時点で決定できる. # 選択してgit addするかどうか決める git add -p [file_or_dir] # addされてない変更それぞれに対してgit checkout git checkout -p [file_or_dir] # git add/check
rubyを使っている人なら皆使っていると思われるpryですが(pryについてはRuby - ググるよりもまずはpry - Qiita [キータ]などを参考に),そのpryをrails console代わりに使うときに便利ユーティリティを提供してくれるpry-rails gemについて紹介します. pry-railsが提供するコマンド show-middleware show-model show-models show-routes recognize-path show-middleware 名前の通り,そのアプリケーションで利用しているミドルウェアの一覧を表示する.(名前はshow-middlewaresの方が良い気がする) デフォルトでもこんなミドルウェアが利用されてるんだなーと眺めるのによい [1] pry(main)> show-middleware use Raven::Rac
$ git co -b foo $ git co -b foo/bar error: unable to resolve reference refs/heads/foo/bar: Not a directory fatal: Failed to lock ref for update: Not a directory ブランチを作ると,そのブランチの指すコミットのsha1を保存するためにrefs/heads/BRANCH_NAMEというファイルを作る.このときブランチ名に/が入っているとディレクトリを作成してからファイルを作る. そのためgit co -b foo/bar時にfooディレクトリを作ろうとするが,既にファイルが存在するためエラーとなる.
Kicksend/mailcheck を使うと,メールアドレスのtypoとしてありがちな *@gmali.comや*@gmail.coといったtypoを検出し,サジェストすることが簡単にできる. 簡単な利用方法 メールアドレス以外も入力する場合はREADMEの例のようにblur時に実行すればよい. 応用 ユーザーにメールアドレスのみ入力してもらう,もしくはアドレスを最後に入力してもらう場合は,blurを挟まずに登録ボタンを押すことになるためblur時のサジェストでは遅すぎる. そのため以下のようにkeyup時かつサジェストすべきと思われるタイミング(メールアドレスのドメインのTLD入力中)で実行すると良い. acceptableTLD = Kicksend.mailcheck.defaultTopLevelDomains.concat ['co.jp', 'ne.jp'] # co.jp,
自分のいるブランチが他の人によってforce-pushされたとき,カレントブランチを削除せずに変更を取り込むGit 例えばレビュー中に小さなバグを見付けたので,レビュイーにpush -fしてもらった後にその変更を手元に持ってくるにはどうすればよいか.歴史が変わっているのでgit pullはできない. 今までは以下のように別ブランチに移動&削除&再度ブランチ作成していた. # someone force-pushed to `topic` branch git co master git branch -D topic git fetch git co topic # creates `topic` branch from `origin/topic`
これでrubocopコマンドがインストールされ,rubocop foo.rbとするとチェックできます. コマンドラインからいちいち実行したくないので,各エディタのプラグインをインストール.すると,以下のようにコーディングルールに合わない箇所を指摘してくれます. ここでは「bodyが1行のときは後置ifか,&&や||を使え」と言われています. 設定 rubocopが準拠するコーディング規約は同じ開発者が提案しているものですが,.rubocop.ymlファイルを編集することで自分達に合った形に変更することができます. うちではチームで話し合い,10箇所ぐらい変更しました. うちの設定 こんな感じです.(rubocop v0.9.1) 最近のバージョンだとデフォルト設定は別ファイルに切り出されたのでカスタマイズしやすい. # This file overrides https://github.
@dynamicはアクセサ作成をするわけではないので厳密に言うとタイトルは違うけど. @synthesizeと@dynamicの違いは基本的なポイントだけど,きちんと理解して使い分けないと思わぬところでハマる. CoreDataを使うためにNSManagedObjectを継承した専用クラスを作ったとき,属性へのアクセサを作るためにヘッダに@property XXX;,*.mに@dynamic XXX;と書く.@dynamicにするのはNSManagedObject側で各属性のセッタ/ゲッタを作ってくれるから. このとき@dynamicではなく@synthesizeとしてしまうとCoreData用のアクセサ(-setValue:forKey:)が使われず,普通のアクセサが作られる. つまりNSManagedObjectを変更しているつもりが変更されず,CoreDataに編集データが保存されな
NSLogはstderrに吐いているだけなので,- (void)applicationDidFinishLaunching:(NSNotification *)aNotification内などで freopen([@"/tmp/xcode.log" fileSystemRepresentation], "w+", stderr);
bind main G !@hub browse -- commit/%(commit) bind diff G !@hub browse -- commit/%(commit) 上を~/.tigrcに書いておけば,tig起動中にGを押したとき,選択されているコミットに対応したgithubのコミットページをブラウザで開いてくれる.hubコマンドについてはGitHubユーザーのためのhubコマンド - Qiitaの記事をどうぞ. デフォルトではGはgit gcに割り当てられていて意味がわからない(たまに間違えて押してしまう)ので潰しておく. !@hubの@は出力を捨てる(つまりtigの再描画を避ける)意味がある. 参考 tig/tigrc.5.txt at master · jonas/tig
StreamとかSignalなどの用語の意味はReactiveCocoa/Documentation/FrameworkOverview.md at master · ReactiveCocoa/ReactiveCocoa · GitHubに書いてある. 以下それらの用語まとめ Stream (RACStream) 変化する一連の値(オブジェクト)を表す.値が変化する順番にしか取れない. HaskellのモノイドとかMonadZipのような型クラスと同等のものを実装している. Stream自体を直接使うことは少なく(RACStreamは抽象クラス),signalsやsequencesとして使うことが多い. Signal (RACSignal) push-drivenなstream. 処理が実行されたりデータを受け取ると,シグナルにより値が送られる(? 原文: "values are sen
cmd + ctrl + Up/Down ヘッダファイルとソースファイルの切り替え. (普段はEmacsで書いているけどブレークポイント設定などで使う) cmd + shift + o open quickly プロジェクトからファイルやシンボル名でインクリメンタル検索し,マッチしたものを即座に開ける cmd + click クリックしたシンボルの定義場所にジャンプする cmd + 数字(0~7) 1~7の場合は左メニューのタブ切り替え.cmd+1(ファイルツリー表示)とcmd+4(エラー/ワーニング表示)はよく使う. cmd+0は左メニューを隠す.ちなみに右メニューを隠すにはopt+cmd+shift cmd + b/r b: ビルド r: 実行 cmd + shift + k (+ option) Clean optionも指定するとClean Build Folder cmd + c
git push時に表示されるwarning: `push.default is unset...`の意味と解決方法Git $ g push warning: push.default is unset; its implicit value is changing in Git 2.0 from 'matching' to 'simple'. To squelch this message and maintain the current behavior after the default changes, use: git config --global push.default matching To squelch this message and adopt the new behavior now, use: git config --global push.default
のようにprecmd内でブランチ名を取得してプロンプトに表示,ということをやっている人は多いと思うけど,hubコマンドを使っていて以下のような設定をしていると毎回hubが呼ばれてしまい,結構重くなる.
[1] pry(main) > User.find_by_url_name('yaotti') # 本当はuser = User.find_by... としたかった => #<User id: 1, url_name: "yaotti", ...> [2] pry(main) > user = _ => #<User id: 1, url_name: "yaotti", ...> Special Locals · pry/pry Wikiを読めば他の特殊変数も全部載ってるけど,_が一番便利. その他pry関連でおすすめ記事 pryの基本: ググるよりもまずはpry awesome_print を pry の表示のデフォルトに使う pryを使った快適なRubyライブラリのコードリーディング&開発方法 #開発環境(未だにストッックされ続けている記事.pryのedit-methodは本当に便利)
Google Chromeのとても優秀なDeveloper Tools,の中でもよく使うブレークポイントの機能について簡単に紹介します.単純なブレークポイント以外にもJS特有の機能があるのだけれど,あまり使っている人を見ることがないので… この投稿を読んだ後にはconsole.logやalertでprintデバッグをすることはないでしょう. 色々なBreakponts Developer Toolsのブレークポイントは,ソースコードの特定の行でbreakするという一般的なブレークポイント以外にもいくつかあります.上部写真の右側のメニュー参照 Breakpoints 普通のbreakpoint DOM Breakpoints Developer ToolsのElementsタブでDOMを右クリック→Break on...にて指定.特定のDOMのサブツリーや属性が変更されたとき,また該当DOM
作業手順 適当なバッファ(scratchとか)に処理したい文字列を貼る(今回はfoo\nbar\nbaz...) 繰り返し実行したいキーボード処理を考える.今回ならば以下の作業で1行目(foo)の処理が終わる.(スタート時にカーソルは1行目のfにあるとする) 'を入力 C-eで行末に移動(カーソルはoに移動する) ',を入力 C-dで改行を削除 2の処理をキーボードマクロに定義する.定義方法は簡単で,C-x( -> 定義したいキーボード処理を操作 -> C-x)とするだけ. 定義したマクロの実行はC-xe(execution).連続実行はC-xeeeee.... 大量に実行したい時はC-u100C-xeなどとすればよい 他のキーバインドなど,詳細は GNU Emacsマニュアル: M. キーボードマクロ
railsのedgeではデフォルトで入る(config.action_dispatch.default_headersに入れられる)が安定版(3.2.8)にはまだ入っていないので,暫定対応. https://github.com/rails/rails/pull/7390 configでデフォルトヘッダーを設定する方法がないためApplicationControllerのfilterでやるしかない?汚い… class ApplicationController < ActionController::Base after_filter :set_default_headers private DEFAULT_HEADERS = { 'X-Frame-Options' => 'SAMEORIGIN', 'X-XSS-Protection' => '1; mode=block', 'X-Con
spork + redis-rb でのエラー対処: "Tried to use a connection from a child process without reconnecting. You need to reconnect to Redis after forking."RubyRedisSpork 問題 redis-rb gemsを2.2から3.0.1にアップデートしたとき,sporktを使ってspecを走らせると以下のようなエラーが出た. Tried to use a connection from a child process without reconnecting. You need to reconnect to Redis after forking. 原因 redis-rb 3以降では,forkしたときに親と子でredisのコネクションを共有していると例外を投
次のページ
このページを最初にブックマークしてみませんか?
『@yaottiのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く