サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
idesaku.hatenablog.com
Ruby on Railsにはrails dbconsoleというコマンドがある。config/database.ymlの接続情報を使ってデータベースクライアント(mysqlとか、psqlとか)を立ち上げてくれる、やや便利なやつで、DBからちょっとした情報を手軽に得たいときに重宝している。たとえば、こんな感じの使い方である。 $ echo "show variables" | bin/rails dbconsole -pところが、これが私の環境に限りいつのまにか使えなくなっていたので、さて困ったぞと。 実行してみると、何の出力も無く、ただ終了する。どうやら"show variables"が最終的に呼び出されることになるmysqlコマンドまで渡っていないようなのである。 さて、何が起きているのか。パイプラインなんてかなり基本的な処理なので、むしろどうやった壊せるのか。見当も付かない。 原因
タコの本である。とにかくタコについて詳しく書いてある。例えば、ご存じであろうか…タコは、腕の吸盤で味を感じ取れるらしいぜ。 Octopus!: The Most Mysterious Creature in the Sea Katherine Harmon Courage Current 2013-10-31 Amazonで詳しく見る by G-Tools こちらが和訳本。ニッチすぎてまず出ないと思っていた。 タコの才能 いちばん賢い無脊椎動物 (ヒストリカル・スタディーズ10) キャサリン・ハーモン・カレッジ 高瀬素子 太田出版 2014-04-17 売り上げランキング : 150990 Amazonで詳しく見る by G-Tools The octopus is a tough beast to grasp. With eight arms, three hearts, camoufl
発売が目前に迫っている、WEB+DB PRESS Vol.73に「詳解Rails 4」という特集を書いた。松田明さんとの共著である。 WEB+DB PRESS Vol.73 設樂 洋爾 白土 慧 大和田 純 松田 明 後藤 大輔 ひろせ まさあき 小林 篤 近藤 宇智朗 まかまか般若波羅蜜 Mr. O 奥野 幹也 佐藤 鉄平 後藤 秀宣 mala 中島 聡 堤 智代 森田 創 A-Listers はまちや2 WEB+DB PRESS編集部 技術評論社 2013-02-23 売り上げランキング : 605 Amazonで詳しく見る by G-Tools おそらく、現時点では日本語で書かれた中でもっともまとまっているRails 4資料だと思う。ぜひ手にとって楽しんでいただきたい。 Rails 4雑感 Rails 4は「革新的な新機能がこんなにたくさん!」といったリリースにはなっていない。しかし
Railsアプリのデプロイツールとしてデファクトスタンダード的な位置にあるCapistranoについて。 TL;DR HOSTSとROLESではなく、HOSTFILTERとHOSTROLEFILTERを使え。 タスクの実行先制限方法 Capistranoは、デプロイ先サーバに"ロール"を設定し、特定のロールに所属するサーバ全てに対して一括でなにかしらの処理を実行させることができる。 # deploy.rb server 'webserver1' :web server 'webserver2' :web server 'dbserver', :db, :primary => true ... task :do_something, :roles => :web do ... end cap do_something #=> webserver1, webserver2に対してのみdo_so
Git 1.7.9がリリースされたので、変更点のハイライトをつらつらと眺めてみよう、と思ったら初っぱなに興味深い一文発見。 "Credential helper" support, that allows integration of HTTP authentication with platform-native key-chain implementations; Git Blame: Git 1.7.9 つまり、OS Xユーザからすると、HTTP認証にKeychainを使えるってことではなかろうか。 追記: HomebrewのGitパッケージは2012年4月中旬あたりから /usr/local/bin/git-credential-osxkeychain をインストールするようになっている。 ゆえあって、SSHでなくHTTPSで使用しているGitリポジトリがあるのだが、普通に使ってい
Vimmerであるところの諸兄が、あのすばらしいVimテクニックバイブル 〜作業効率をカイゼンする150の技を片手にご機嫌の年越しと相成ったであろうことは想像に難くない。無論私とてそのクチであり同じ穴の狢というやつである。微妙に日本語の使い方を間違っている気もする。 それはともかく、"1-13 autocmdを使用して自動的に処理を実行する"で紹介されている、"保存時に構文チェックを実行する"技が簡単に導入できる上になかなかどうして便利そうなので早速我が.vimrcにも書いてみた次第である。 保存時に構文チェック " ~/.vimrc augroup rbsyntaxcheck autocmd! autocmd BufWrite *.rb w !ruby -c augroup END 構文エラーを含む*.rbファイルを保存すると、ウィンドウの下の方に… Good. しかし問題があって… 構
git-grepでPerlの正規表現が使える…ぞ? - idesaku blog 前回はMacportsでインストールしたGitでPCREサポートが有効になるようにしてみたが、Homebrewでもやってみた。 2012/02/11追記: 本家にパッチが入ったので、こんな小細工必要なくなった。brew install git --with-pcre でOK。 やることはMacportsと大差ない。GitのFormulaをエディタで開いて… $ brew edit git…二行足すだけ。 class Git < Formula url 'http://git-core.googlecode.com/files/git-1.7.7.tar.gz' sha1 'bbf85bd767ca6b7e9caa1489bb4ba7ec64e0ab35' homepage 'http://git-scm.co
新しいMacbook Airが届いたので、いそいそと環境構築に励んだところ、問題発生。 $ launchctl load -w ~/Library/LaunchAgent/org.postgresql.postgres.plist Bug: launchctl.c:2408 (24957):13: (dbfd = open(g_job_overrides_db_path, O_RDONLY | O_EXLOCK | O_CREAT, S_IRUSR | S_IWUSR)) != -1 launch_msg(): Socket is not connectedおおお、なんだかおっかなそうなエラーになった。DBが上がらないと開発で困るぞ。 何が悪いんだ。出て間もないOS X Lionか、それともせっかくだからと重い腰を上げてMacportsから乗り換えたHomebrewか… なんと、使い始めた
アジャイルサムライ−達人開発者への道− Jonathan Rasmusson 西村 直人 オーム社 2011-07-16 売り上げランキング : 230 Amazonで詳しく見る by G-Tools アジャイルを知るためにまず読むべき本は何か?この問いへの答えとして本書以上に相応しいものはないだろう。アジャイルの基本、実践的手法、そして奥義…知るべき全ての情報がそこにあり、それでいて堅苦しくなくて面白い! オーム社様より献本していただきました。ありがとうございます。 ちょうどいい 本書はSamuraiなどという尖った名前から得られるイメージに反して、"ちょうどいい"本である。 さて、アジャイルっていうのを何となく知っていて、ちょっくら試してみたいなぁ、と思っている人がいるとする。または、次の現場がそういう取り組みをしているから、予習しておきたいなぁ、という人がいるとする。そうした、いくら
git-grep -P Git 1.7.6から、git-grep -P でPCRE(Perl Compatible Regular Expressions)を使えるようになったらしい!PCREはPOSIXの正規表現よりずっと表現力があって使いやすいし、なにより私は正規表現をPerlで覚えたクチなので、扱い慣れた記法を使えるのは嬉しい。 $ git grep -P 'regex' fatal: cannot use Perl-compatible regexes when not compiled with USE_LIBPCREあるえぇー? Macports GitはMacportsで入れているのだが、普通にインストールしただけだと有効にならない。*1エラーメッセージにある通り、現時点ではデフォルトでUSE_LIBPCREになっていないためである。 じゃあconfigureなりmakeなり
Gitを使い始めて以来、ずっと飲み込めずに残っているのが、"署名付きタグ"という代物である。これ、どういうときに使うのだろうか? あちらこちらのドキュメントを見ても、「署名もできて嬉しいね」としか書いていない。つまり、それが有益であることはたぶん一般的に自明のことなのである。が、恥ずかしながら俺はよくわからない。 よくよく考えて、なんとなく理解できたと思うので、メモしておきたい。 三種類のタグ Gitでは、三種類のタグを作成できる。 軽量タグ 注釈付きタグ 署名付きタグ "軽量タグ"は、CVSのタグのようなものである。特定のコミットにマークをつけるが、それだけ。 $ git tag v1.0"注釈付きタグ"は、Subversionのタグのようなものである。タグをオブジェクトとして登録し、そこにコメントを含められる。 $ git tag -a v1.0 -m "バージョン1.0リリース。""
ふと思い出したので、考えをまとめるために書いてみようと思う。 ソフトウェア開発では、よく「メッセージファイル」なるものを作成する。アプリケーションが使用するメッセージの情報をまとめたもので、その中身はメッセージ文字列とそれに対応するIDである。大抵の場合プロパティファイル形式であったり、最近はXML文書だったりする。 さて、いつのことだったかは忘れたが、メッセージファイルについて先輩エンジニアと意見が衝突したことがある。お題は「メッセージ一覧表を作るべきか」。 先輩が、メッセージの一覧表をメッセージファイルとは別にMS Excelで作成し、それをマスターとすべきだと主張したのに対して、俺はメッセージファイル自体をマスターとすれば良く、いちいち別ファイルを作る必要は無い、と主張した。 結局は、俺が譲ったのを覚えている。簡単な管理対象ファイルが一つ増えるだけだったので、それほど大した問題ではな
2012/01/11追記。今やGitHub - tpope/vim-pathogen: pathogen.vim: manage your runtimepath、GitHub - VundleVim/Vundle.vim: Vundle, the plug-in manager for Vim、GitHub - Shougo/neobundle.vim: Next generation Vim package managerなどの優れたVimプラグイン管理ツールが存在するので、下記をアテにするよりもそれらを使ってGitHub - vim-ruby/vim-ruby: Vim/Ruby Configuration Filesから直接インストール方がよい。 熱心なVimmerであり、かつ敬虔なRubyistである諸兄におかれましては、当然ながらvim-rubyを使って日夜Rubyプログラミン
restful-authenticationというと、Rails界では代表的な、そして古株の認証プラグインである。本ブログでも取り上げたことがあるのだが、ブクマ数やアクセスログを見たところ、いまでもそれなりの需要があるようだ。 restful_authenticationを触ってみた - idesaku blog ところが、本プラグインの大本であるGitHub - technoweenie/restful-authentication: Generates common user authentication code for Rails/Merb, with a full test/unit and rspec suite and optional Acts as State Machine support built-in.は、どうやら現在メンテナンスされていないようなのである。 いく
祝・JRuby 1.5.0リリース! さて、JRuby 1.5.0は様々な機能拡張が行われているが、その中に次の一文がある。 Ant support and Rake-Ant integration ほほう? JRake JRakeというキーワードが存在する。 JRakeってどうなんだろう? - idesaku blog Rakeが登場し、アーリーアドプター達から「もしかしてこいつは使えるツールなんじゃあ?」という認識が広まりだした頃、こう考える人が現れた。「JavaプログラムのビルドでRake使えたら幸せになれるんじゃね?」 Rakeを知る身からすれば、そう考えるのは自然なことだと思える。Rakeでは、MakeやApache Antに見られる宣言的な記述と、Rubyを直接利用した手続き型の記述を併用できるため、宣言的な書き方しかできない*1Antでは記述が難しい処理をたやすく記述できる。
前々から気になっていた、Zen-Codingを試してみた。これはすばらしい!特にVimmer*1は迷わず使うべき。 プログラマの世界ではコピペは悪!しかし… 「"Hello."と3回表示するプログラムを書け」と言われたら、どう書く? puts "Hello."と書いて、コピペで3行にするのさ! puts "Hello." puts "Hello." puts "Hello." そんなわけない。もちろん、ループを使うだろう。 3.times { puts "Hello." } それでは、「HTMLで3項目からなるリストを書け」と言われたら? <ul> <li></li> <li></li> <li></li> </ul> ……今、liを書いてコピペして増やさなかった? こういうときも、プログラミングするときみたいに書ければなぁ。 という願望を満たしてくれるのが、Zen-Codingだ。このケ
Githubは、もはやファイアウォールの内側であってもread-onlyではない。 From now on, if you clone a repository over the http:// url and you are using a Git client version 1.6.6 or greater, Git will automatically use the newer, better transport mechanism. Even more amazing, however, is that you can now push over that protocol and clone private repositories as well. Smart HTTP Support | The GitHub Blog Githubはすばらしいサービスなのだが、数少ない欠
初めてAmazonのAPIを叩いてみた。 準備 AWSのアカウントが必要なので取得しておく。 http://aws.amazon.com/ アカウントを取ったらログインして、Security CredencialのページでAccess Key IDとSecret Access Keyを調べて、控えておく。 Amazonアソシエイトを併用してお金を稼ぎたい場合は追加で申請が必要だが、ただ検索する分には不要であるらしい。 プログラミング 既存の適当なライブラリを使おうと思ったが、何を使ったらいいのかわからなかったので勉強がてら自作してみることにした。Ruby 1.8.7を使って、ガイド片手にREST APIを叩いてみる。 require 'rubygems' gem 'ruby-openid' gem 'nokogiri' require 'cgi' require 'net/http' re
mapをインデックス付きで使いたい!と思ってRuby1.8.7でRuby1.9ライクな書き方をしようとしたら失敗した。 Rubyでは内部イテレータが使われている。 [1,2,3].each { |n| print n } イテレータにインデックスを渡すこともできる。 [1,2,3].each_with_index { |n,i| puts "#{i}: #{n}" } ところでRuby 1.9からeachやmapはブロックを与えられなかった場合に外部イテレータを返すようになった。これにより、こんな書き方もできるようになった。 e = [1,2,3].each e.with_index { |n,i| puts "#{i}: #{n}" } これで何が嬉しいって、mapでも簡単にインデックス番号を使えるようになったのである。*1 [1,2,3].map.with_index { |n,i|
How's it work? Just checkout your project from svn.github.com: svn checkout http://svn.github.com/schacon/simplegit.git Announcing SVN Support | The GitHub Blog 上記のコマンドを叩くことで、Github上のリポジトリをSubversionでチェックアウトできるようになったそうだ。 まじで?4月1日にポストしているというのがアヤシイ。ネタか?ネタなのか? 試しに自分のリポジトリ(idesaku/rubykaigi2008_golf.git)をチェックアウトしてみよう…。 $ svn co http://svn.github.com/idesaku/rubykaigi2008_golf.git A rubykaigi2008_golf.
世界は変わった。開発の現場はどうか? 世界は変わった。開発の現場はどうか? Developers Summit 2010 デブサミに行ったのは初めてだが、楽しかった。 デブサミ参加で得たのは、次のもの。 熱い気持ち 最初に聴いたセッションは、市谷聡啓氏の『【18-E-1】SIerのこれからのソフトウェアを創る』なのだが、ここでよりよい開発、よりよい社会を追究していこうという熱い気持ちの発露が見られた。 よりよい開発スタイルで、顧客によりよい価値を提供し、それがゆくゆくは社会をよりよいものに変える。そうしたよりよい変化を求めて、今の自分たちを変えるべく足掻くのだ。 しかし自分だけ頑張ってもだめ、開発に関わる全ての人々と共に頑張らなければならない。営業と技術者、顧客と開発者、SIerと下請け、みんな立場が違うから「あいつら何もわかっちゃいねぇ」とお互いを敵と見てしまうことがあるけど、それじゃダ
Gitにgit-cherry-pickという、知らなくてもなんとかなるが知っていると便利なコマンドがある。このコマンドを少し掘り下げてみた。 git-cherry-pick git-cherry-pickは、狙ったコミットの変更内容だけを現在のブランチに取り込む操作である。 例えば、つぎのような履歴を想定する。 ---A---B---C [master] \ \ ---X---Y [temp]ここで、YはCの後にコミットするほうが適切であることに気づいた。このとき、masterブランチで次のようにすると目的は達成される*1。 $ git cherry-pick YコミットYの変更内容だけをmasterのHEADに適用する、という操作である。このときXの変更内容は適用されない点がgit-mergeとは異なる。 ---A---B---C---Y' [master] \ \ ---X---Y [
http://www.flickr.com/photos/lassekoskela/4202802224/in/set-72157623041486184/ "TDD" Boot Campに参加してきた。TDD = Test Driven Development = テスト駆動開発を実践しよう、というイベントである。 このイベント、前評判が高く、即日定員オーバーになったと聞いている*1。私は幸運にもTwitterのTLを眺めていたら定員まであと5人の時点でキャッチできたのである。有用すぎるぞ、Twitter。そしてその評判に負けない、実戦的で実に有益なイベントだったと思う。 TDDというのはなかなかに実践が難しい。JUnitでテストケースを書いておけばTDD、なんて単純なものではない。TDDはツールやテクニックではなくプロセスであり、これまでの開発習慣を大きく変えねばならない。それでうまく
いや、バグでもなんでもなく、単に自分が使い方を知らなかったというだけなのだが。 次のようなHTML文書があるとして(抜粋)、 <DIV> <UL> <LI>...</LI> <LI>...</LI> ... </UL> </DIV> LIを取りたいなぁ、と思って次のようなコードを書いてみる。 doc = Nokogiri::HTML(open('/path/to/hoge.html').read) puts doc.xpath('//DIV/UL/LI').text …なにも表示されない。 しかし、XPath式を小文字で書くと表示される。 puts doc.xpath('//div/ul/li').text なぜ? XPath式って小文字じゃないとダメって規約だったっけ?そもそも大文字小文字を区別してたっけ?HTMLには区別は無いはずだが、XMLにはあるから、XML由来のXPathもまた違
Gitの使い方を覚えるにあたって、まず知っておきたいのは――git-cloneだのgit-commitだのは当然として――「操作をミスったときにどのように回復するか」である。それを実現するのは、次の3つのコマンドだ。 git-commit --amend git-reset git-reflog git-commit --amend あるファイルをコミットしたとしよう。 $ (edit...) $ git commit -am 'メッセージ生成処理を実装したよ。'しかし、しばらくして彼は気づいた。 def create_massage(param) ...typoしてる!massageじゃない、messageだ!マッサージを作ってどうする! 慌てるな。まずは直してステージに上げるんだ*1。 def create_message(param) ...$ git add .そして…。 $ gi
入門Git 秀和システム 2009-09-19 売り上げランキング : 1796 Amazonで詳しく見る by G-Tools Gitのメンテナ自身による、本当の意味での「Gitの使い方」を教えてくれる本。 とりあえず、著者による"まえがきの代わり"を読んでおくとよい。どんなことが書かれている本なのか一発でわかる。 入門Gitの目次はというと - gitster's journal 突然だが、Gitは素晴らしい。 ――そう感じるようになったのは、ここ半年ぐらいのことである。 Git自体は一年ほど前から使い始めたが、最初は使い慣れたSubversionの、すこし便利な代替品として使っていた*1。つまり、Subversionのポリシーそのままで、インタフェースだけをGitにしていたわけだ。 しかし、あるとき思い立って、しっかり使いこなしてやろうと学習した結果、GitとSubversionの立
ローカルで持っているGitリポジトリをGitHubにpushしてしまいたいなぁ、と思ったのだが、pushする直前にAuthorおよびCommitterとして自分の本名を使っていることに気づいた。そういえば、Gitを使い始めたころはuser.nameに正直に本名を入れていたなぁ…。 そのままでも大した問題はないのだが、ネット上ではidesakuで通すことにしているので、こいつらを修正した。その際、あまり使わないコマンドを使ったので、作業ログなど残してみる。 さて、どうすればよいか。すぐに思いついたのは、git-rebaseを使うことである。 ところで、Gitは全てのコミットにAuthorとCommitterの二つの名前を記録している。これは、オープンソース分野でよくある「パッチを書いた人(Author)と、それをリポジトリにコミットした人(Committer)が違う」ケースに対応するための措
プレゼンテーション Zen ピアソンエデュケーション 2009-09-07 売り上げランキング : 1622 Amazonで詳しく見る by G-Tools 次のサイトでビル・ゲイツとスティーブ・ジョブズのプレゼンテーションを比較しているので、ちょっと見てみてほしい。英語で書かれているが、写真を見るだけで何が言いたいかは伝わると思う。 Presentation Zen: Gates, Jobs, & the Zen aesthetic ジョブズのように格好よくて人を惹きつけるプレゼンテーションを行うための本が、本書だ。 本書では、ごちゃごちゃしたスライドを読み上げるだけの、聴衆の眠気を誘うばかりのプレゼンテーションから脱却することを強く勧めている。シンプルでわかりやすく、聴衆の心に残る、それが我々が行うべきプレゼンテーションである。 これを実現するための有益なアドバイスが多数記載されている
努力すればできる、苦労するのも仕事のうち、そういう話は聞き飽きた。しなくていい苦労を背負い込むことを正当化するのは間違っている。 そういうわけで、書いてこそコード | さくらたんどっとびーずへの返答。トラックバックありがとうございます。意見は食い違っていますが、楽しませていただいてます。 さきにまとめ。 UKTKKNSHINFなネーミングは読めないからダメ XXXすれば読めるよ、と言われても本来不要なXXXをしなければ読めない時点でアウト 無駄作業は許容すべきじゃない そして、詳細は以下。 さくらも昔 UKTKKNSHINF みたいな命名規則持ってるプロジェクトで仕事したことあるの。この手の名前って確かに変だとわ思うけど別に読みにくいって程じゃ無いと思ってるんだけど。それにこの程度の命名規則覚えるの仕事の範疇だと思うし。 書いてこそコード | さくらたんどっとびーず 俺は前記事でこう書いた
次のページ
このページを最初にブックマークしてみませんか?
『idesaku-blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く