タグ

ブックマーク / zariganitosh.hatenablog.jp (18)

  • bundle gemは何をしてくれるのか? - ザリガニが見ていた...。

    必要最小のgemパッケージの作り方は大体理解できた。 rubyコードをlib/とbin/に振り分けて、 .gemspecファイルに設定を記述して、 gem build、gem installしてテスト、 問題なければgem pushで公開。 とっても簡単である。 初回のみ.gemspecファイルの追加とRubyGems.orgへの登録が必要だが、手間はかからない。 一旦公開してしまえば、コード修正して、gem build、gem install、gem pushの繰り返しだ。 これ以上何を求めてbundlerを使うのか?探ってみた。 bundle gemが生成するもの sampleという名のgemプロジェクトを始めてみる。 $ bundle gem sample create sample/Gemfile create sample/Rakefile create sample/LICEN

    bundle gemは何をしてくれるのか? - ザリガニが見ていた...。
  • bundlerでgemバージョンを束ねる - ザリガニが見ていた...。

    Rails1.1.6の環境でどうにかscaffoldはできるようになった。その時の実行環境は以下の状態だった。 $ rbenv version 1.8.7-p375 (set by /Users/zari/.rbenv/version) $ gem list *** LOCAL GEMS *** actionmailer (1.2.5) actionpack (1.12.5) actionwebservice (1.1.6) activerecord (1.14.4) activesupport (1.3.1) rails (1.1.6) rake (0.7.1) sqlite3 (1.3.10) この実行環境というのは非常にデリケートである。 例えば、今の時代にRails-1.1.6を�gemに従うままにインストールすると、最新のRake-10.3.2がインストールされる。 しかし、Ra

    bundlerでgemバージョンを束ねる - ザリガニが見ていた...。
  • プロンプトにRubyのバージョンを表示したい - ザリガニが見ていた...。

    rbenvによって、Rubyバージョンは素早く、簡単に切り替えられるようになった。 すると、作業中にいったい自分はどのRuby環境にいるのか、見失ってしまうことがある...。 そうならないように、コマンドプロンプトにRubyのバージョンを表示しておきたい。 やってみた。 プロンプト Rubyバージョンの由来を調べて(rbenvのglobal・local・shellのどれか) systemの場合は、ruby -vのバージョンを使う。 __ruby_ps1() { if [ -e "$HOME/.rbenv" ] ; then if [ "$RBENV_VERSION" != "" ]; then rbenv_scope="shell" else if [ -e ".ruby-version" ]; then rbenv_scope="local" else rbenv_scope="glob

    プロンプトにRubyのバージョンを表示したい - ザリガニが見ていた...。
  • rbenvは何をしているのか? - ザリガニが見ていた...。

    ~/.rbenv/以下に複数のRubyバージョンをインストールして、それぞれのRuby環境を切り替える仕組みを提供する。 ~/.rbenv/ (rbenvがRubyを管理するルートフォルダ) ~/.rbenv/shims/ (rubyやgemがインストールするコマンドへのラッパーを保存しておくフォルダ) ~/.rbenv/version (global環境のRubyバージョンを記録するファイル) ~/.rbenv/versions/ (Rubyの各種バージョンをインストールするフォルダ) Ruby環境の構造 例えば、rbenvがインストールしたRuby-1.8.7-p375は、以下のような構造となっている。 ~/.rbenv/versions/1.8.7-p375/bin/(実行コマンドを含む:erb gem irb rake rdoc ri ruby testrb) ~/.rbenv/v

    rbenvは何をしているのか? - ザリガニが見ていた...。
  • 日本の祝日もちゃんと表示するjcalコマンドを作ろう - ザリガニが見ていた...。

    紙に印刷して使う目的なら、表計算アプリのカレンダーはけっこう使えるのだけど、画面で素早く確認したい時には、ちょっと仰々し過ぎる。特にターミナルで作業している時などは、そのままコマンドラインから素早くカレンダーを表示したい欲求がある。calコマンドはあるのだけど、日の祝日は表示されない...。 ならば、日の祝日もちゃんと表示するjcalコマンドを作ってみよう!と思い立った。 外部からのカレンダー情報に頼らずに、祝日もちゃんと自力で計算して、jcalコマンドの中のみで完結するようにしたい。 1900年から2099年までのカレンダー出力に対応したい。 作業環境 OSX 10.9.4 ruby 2.0.0p451 (2014-02-24 revision 45167) [universal.x86_64-darwin13] 祝日情報 外部からのカレンダー情報に頼らないので、まずは日の祝日をル

    日本の祝日もちゃんと表示するjcalコマンドを作ろう - ザリガニが見ていた...。
  • RubyGems.orgで公開する手順 - ザリガニが見ていた...。

    前回からの続き。 gemコマンドは、.gemファイルを元に、gemが管理する階層にライブラリやコマンドをインストールする。 前回手順7で試したとおり、.gemファイルさえあれば、それがどこにあってもインストールは可能なのだ。 但し、そのためには.gemファイルの正確なパスを知っている必要がある。 一方、gemコマンドの醍醐味は、.gemファイルがどこにあるか?なんて気にせずに、gem install jpdateで素早くインストールできてしまう所にある。 �gemコマンドは https://rubygems.org で公開されているgemを探しに行って、同じ名前のgemが見つかれば、それをインストールしようとしている。 RubyGems.orgに.gemファイルを登録しておけば、苦労最小のgem install jpdateでインストールが可能になるのだ。(憧れる) 以下は、jpdateを

    RubyGems.orgで公開する手順 - ザリガニが見ていた...。
  • ブロックとProcの世界 - ザリガニが見ていた...。

    Rubyの世界はブロックとProcで溢れている。だのになぜ、自分はそれに精通できないのか?Symbol#to_procとか、関数型Rubyとか、そんな発想は自分には到底できそうもない。そればかりか、自分の頭の中はRuby1.8で止まっている。その状態では、Ruby1.9以降に追加された新たな記法が、謎の記号に見えてしまう...。 発想はできないけど、そうゆうコードを読んで感動できる読解力は持ち続けたい。調べてみた。 環境 MacBook Pro Retina15 OSX1 0.9.2 irb(main):001:0> RUBY_VERSION => "2.0.0" $ ruby -v ruby 2.0.0p451 (2014-02-24 revision 45167) [universal.x86_64-darwin13] ブロックとは何か? do ... end、あるいは{ ... }で

    ブロックとProcの世界 - ザリガニが見ていた...。
  • 通販の財布選びは難しい - ザリガニが見ていた...。

    10年来使ってきた二つ折り財布、自分にとっては使いやすく気に入っていたのだけど、さすがにガタが出始めた...。 ボックス型小銭入れのホックの付け根が破れた...。 二つ折りにした時のコーナーも激しく摩耗している...。 札入れの仕切りなし、カード入れ6カ所。 失敗 似たような財布ということで、30分くらいWebページを眺めて、以下の財布に絞り込んだのであった。 サ イ ズ … 縦12cm 横9.5cm 厚さ2cm 材質 … 表…牛皮 内側…牛皮/合皮/ポリエステル ファスナー…YKK 仕様 … 札入れ×2 カード入れ×10 フリーポケット×2 小銭入れ×1 レビュー … 5星=4 4星=7 1星=1 平均=4.1 価格 … 4千円くらい 上記スペックから、それほど悪くないだろうと予想して、いつもの調子で購入ボタンを押したのだった。 ところが... 商品が届いて、箱を開けてみると、自分が想像

    通販の財布選びは難しい - ザリガニが見ていた...。
  • 今更OSXでDVDを焼いてみた - ザリガニが見ていた...。

    先日「このDVD(コピーガードなし・ホームビデオの類が収録されたもの)を10枚コピーして欲しい」と頼まれた。「はいはい、できますよ、お安い御用です」と引き受けたのだが、家に帰って考えてみると、�最近のAppleマシンには光学式ドライブが搭載されていないことに気付いた。調べてみると、2012年のMacBook Pro Retina15(初代Retinaマシン)以降、Appleが新発売するマシンに光学式ドライブは搭載されていない。そして、過去5年以上、自分がDVDを焼いた記憶もなかった。 久々にDVDを焼こうとすると、何をどうやるか、暫し悩む。そして案の定、無駄なDVDをたくさん焼いてしまった...。今後DVD-Rを無駄にしないように、メモしておくのだ。 そもそもDVDって、データ容量はでかいし、物理的に焼かなきゃいけないし、時間かかる。作るのがとても面倒なのである。 試しに渡されたDVDをM

    今更OSXでDVDを焼いてみた - ザリガニが見ていた...。
  • 必要最小のgemの作り方とインストール - ザリガニが見ていた...。

    gemは、Rubyのライブラリ管理のコマンド。Rubyのライブラリを検索・インストール・アップデート・削除など、苦労最小で操作する仕組みを提供してくれる。今までgemを使って、多くの素晴らしいライブラリをインストールしてきた。しかし、自分が作ったものをgemでインストール可能な形式で公開したことはなかった...。 できることならgemでインストールできるようにしてみたい。では、自作のRubyコードは、どうすればgemでインストールできるようになるのか?果たして、簡単にできることなのか?調べてみた。 作業環境 MacBook Pro Retina15 OSX 10.9.5 Rubyバージョン $ ruby --version ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin13] Gemバージョン 最新のG

    必要最小のgemの作り方とインストール - ザリガニが見ていた...。
    kasedac
    kasedac 2014/10/16
    "現在Webを検索すると、bundlerを使った方法が多く紹介されていた…その手順を雛形として覚えれば用は足りるのだけど、もっと基本的な所からちゃんと知っておきたい”
  • 日本語が使えるirbにしておく - ザリガニが見ていた...。

    OSXに標準インストールされているirbは、残念ながら日語が文字化けする。Rubyの方は標準で日語が使えるようになったのに、何故なんだ? 調べてみると、Ruby自体の日語処理には問題ないのだけど、irbがコマンド入力を受け取る際に使っているライブラリ(libedit)が日語に対応していないのが原因らしい。解決策は、日語対応のライブラリ(readline)に切り替えること。 日語が使えない環境 irbは、"readline"をrequireして、コマンド入力ライブラリを利用している。 requireした"readline"はどこにあるのか? irbを起動して、以下のコマンドを入力してみる。 $ irb irb(main):001:0> puts $LOADED_FEATURES.grep /readline/ /System/Library/Frameworks/Ruby.fra

    日本語が使えるirbにしておく - ザリガニが見ていた...。
    kasedac
    kasedac 2014/09/24
    "OSXに標準インストールされているirbは、残念ながら日本語が文字化けする…irbがコマンド入力を受け取る際に使っているライブラリ(libedit)が日本語に対応していないのが原因…(readline)に切り替える"
  • OptionParser底力+ARGFを使ったコマンド作り - ザリガニが見ていた...。

    前回からの続き。マニュアルがあるのだから、ちゃんと読めばそこにすべてが書かれているのだけど、自分はマニュアルを読むのが苦手。それよりもサンプルコードを実行して、その結果を体感しながら覚える方が好き。自分にとってはそうやって覚えた方が、忘れずに記憶が後々まで残るのだ。 RubyのOptionParserの底力を知る - ザリガニが見ていた...。 RubyのOptionParserの使い方は、大体分かった。すると便利な機能を知った後では、以前のコードがずいぶん無駄な努力をしているように思えてくる。もっと楽して、もっと使いやすいコマンドに仕上げるのだ。 サンプルコード(悪い例) 以下のコードは、以前作ったコマンドのRubyコードである。 Closure Compilerを利用してJavaScriptを圧縮・整形する。 #!/usr/bin/ruby require 'optparse' req

    OptionParser底力+ARGFを使ったコマンド作り - ザリガニが見ていた...。
  • RubyのOptionParserの底力を知る - ザリガニが見ていた...。

    コマンドは、以下のような書式でオプションと引数を設定して、実行する仕組みになっている。 例: コマンド名 オプション オプション オプション引数 オプション コマンド引数 optparser_test.rb -a -b VALUE --foo FILE_PATH 実際にコマンドを作ろうとすると、オプションの解析には手間がかかると気付く。 そのため、多くの言語環境にはオプション解析用のライブラリが用意されている。 Rubyのoptparserについて、基的な使い方は知っているつもりだったが... Rubyでコマンドの中身を作るまで - ザリガニが見ていた...。 ちょっと気の利いたコマンドにしようとすると、その使い方は謎だらけになった。 どうしたら苦労最小限でオプションを解析できるのか、調べてみた。 基 require 'optparse' OptionParser.new do |op

    RubyのOptionParserの底力を知る - ザリガニが見ていた...。
  • ブックマークレットの書き方の段階的な発展の仕方 - ザリガニが見ていた...。

    ブックマークレットとは、JavaScriptコードが保存されたブックマークのことである。クリックすると、そこに保存されているJavaScriptコードが実行される。 通常のブックマークのアドレスには、http:で始まるURLが保存されている。 ブックマークレットのアドレスには、javascript:で始まるJavaScriptコードが保存されている。 はじめの一歩 WebブラウザのURLフィールドに以下のように入力して、returnキーを押してみると... javascript:alert("hello world!!") アラートダイアログが表示された! URLフィールドのアイコンをブックマークバーにドラッグ&ドロップすると、そのJavaScriptはブックマークレットとして保存される。 あるいは、aタグのリンク先にJavaScriptを設定しておけば、そのリンクをドラッグ&ドロップして

    ブックマークレットの書き方の段階的な発展の仕方 - ザリガニが見ていた...。
  • Mavericksのことえりの仕組みを探ってみる - ザリガニが見ていた...。

    今さらだけど、OSX 10.9 Marvericksになってから、ことえりの仕組みが変わった。ことえりの環境設定や単語登録は、システム環境設定に統合された。特に単語登録の手順は大幅に変更された。登録済みの単語はリスト表示され見やすくなったが、品詞の種類は指定できなくなり、単語とその読みだけを登録するようになった。 OSXになってから最大の変化を経験しているはずなのだけど、この数ヶ月間、適当に使ってきた。それなりに使えるのだけど、やはり時間の経過とともに不満も募ってくる...。 単語登録でショートカットが使えないのは不便とか、 独自の辞書を作りたいのに、ことえり単語登録.appが見当たらないとか、 MacBookiPhoneのユーザ辞書が同期してないぞ!とか、 入力とはパソコンを使う上で最も重要な操作である。特に日語環境で使う場合は、数万文字に及ぶ英数漢字かな混じり文字を、ことえりなどの

    Mavericksのことえりの仕組みを探ってみる - ザリガニが見ていた...。
    kasedac
    kasedac 2014/01/29
    "過去の互換性を保つためにユーザ辞書を残しているが、いずれCoreDataUbiquitySupportに統一されるのかもしれない。…Mavericksのことえりで独自の辞書を追加したい時には、どうすれば良いのだろう?…"
  • 予約日時になったらちゃんと目覚めるtimerコマンドが欲しい - ザリガニが見ていた...。

    前回、radikoやらじる★らじるを録音するrec_radikoru.appを作った。どうにか録音することはできるようになったのだけど...じゃあ、その他のネットラジオを録音したいとか、iTunesを目覚まし代わりに起動したいとか、その他いろいろな欲求が湧いてきた時に、現状のrec_radikoru.appではどうにもならない...。 ところで、OSXにも時間管理の仕組みは用意されている。システム環境設定 >> 省エネルギーで、繰り返しのスケジュールを設定できる。でも設定できることは、起動・スリープ解除か、終了・スリープだけ。起動したり、スリープ解除するということは、その時点で実行したいことがあるはずなんだけど、何を実行するかまでは指定できないのだ。設定できる繰り返しスケジュールも起動系と終了系でそれぞれ1つだけ。 何を実行するかの予約は、launchdやcron、それにカレンダーイベント

    予約日時になったらちゃんと目覚めるtimerコマンドが欲しい - ザリガニが見ていた...。
    kasedac
    kasedac 2014/01/20
    "スリープ解除と連携したタイマー駆動の仕組みは、OSX環境には用意されていない…スリープ解除と連携したタイマー駆動の仕組みを、もっと汎用的に利用できるようにしておきたい"
  • その設定でバッテリーは本当に節約されているのか? - ザリガニが見ていた...。

    前回、バッテリーを節約する設定を探ってみたが、それぞれの設定の数値的な根拠はまったくない。すべてが自分の体感に頼っている。そして、数々のバッテリー節約術でも「この設定で節約になる」ということは書かれているのだが、一体どれほどの効果があるのか?その部分がほとんど書かれていない。 具体的な数値で示されているのは、iPhoneの性能表ぐらい。バッテリーの節約と利便性のバランスする設定を見つけるためにも、具体的な節約効果を知りたいのだ!その情報がなければ、自分で計測してみるしかない。 しかし、どうやって?MacBookならスクリプト書いて自動計測できそうなんだけど、同じことをiPhoneでやる術を知らない...。こうなったら、地道に、泥臭く、手作業で計測してみるしかないかも。やってみた。 利用環境 ソフトバンク iPhone 4S iOS 7.0.2 計測方法 バッテリー残量を見て、パーセント

    その設定でバッテリーは本当に節約されているのか? - ザリガニが見ていた...。
    kasedac
    kasedac 2013/10/12
    "キャリア >> 自動=オフ、によるバッテリー節約効果は意外に大きい。"
  • "プレビュー.app" の底力 - ザリガニが見ていた...。

    (Leopard Preview.app's potential) アプリケーションの名前こそ「プレビュー」だが、すでに機能は「レタッチ」レベルなのであった! The application's name is "Preview", but the function is "retouch" level! スクリーンショット(Screen capture) ウィンドウの影なし撮影ができる。(command-shift-4 & spaceの影あり撮影と使い分けると便利) "File >> Grab >> Window" is without shadow.(Properly, we can use that "command-shift-4 & space" is with shadow.) タイマー撮影ができる。 "File >> Grab >> Timed Screen" command

    "プレビュー.app" の底力 - ザリガニが見ていた...。
    kasedac
    kasedac 2009/01/18
    "アプリケーションの名前こそ「プレビュー」だが、すでに機能は「レタッチ」レベルなのであった!"
  • 1