タグ

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

  • RubyのOptionParserの底力を知る - ザリガニが見ていた...。

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

    RubyのOptionParserの底力を知る - ザリガニが見ていた...。
  • bashとrubyの連携に見るエスケープな悩み - ザリガニが見ていた...。

    問題 突然ではあるが、以下のコード...ruby -pe に続けて、シングルクォートを取り除くワンライナーを完成できるだろうか? 出力結果が「私はzariganiです。」となればOK。 ちなみに、作業環境はOSX 10.9 Mavericksである。 GNU bash, version 3.2.51(1)-release (x86_64-apple-darwin13) ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13] $ echo "私は'zarigani'です。" | ruby -pe もし、10秒以内に正しく動くコードを思い描けた方は素晴らしい。尊敬する。 自分は思い描いたコードを実行したけど、謎のエラーに悩み、1時間悩んだあげく眠くなり、そのまま夢の中で考えて、翌朝起きて閃いて、ようやく解決で

    bashとrubyの連携に見るエスケープな悩み - ザリガニが見ていた...。
  • 通知センターを一時的にオフにする非通知タイマー - ザリガニが見ていた...。

    通知センターはいろいろなことを伝えてくれて便利なのだけど、目の前に集中して作業しておくべきことが山ほどあるのに、頻発する通知の魅力に負けて余計なことばかりしてしまうことって、よくある。結局、肝心の作業がなかなか捗らない...。(そうです、意志の弱い自分が悪いのです) そんな時は、通知センターをOFFにしてしまう。(メニューバー右端の通知センターのアイコンをoption-クリック)そうすれば、次の日まで通知センターは黙っていてくれる。でも、OFFにしておくのは1、2時間くらいがいい。そのままうっかり次の日までOFFにしてしまうと、貴重なチャンスを逃してしまう気もして、心配になる。(iPhoneもあるから、杞憂かもしれないけど) というわけで、通知センターを一時的にOFFにしておくタイマーを、お決まりのAppleScriptで作ってみた! 参考ページ AppleScripting Notifi

    通知センターを一時的にオフにする非通知タイマー - ザリガニが見ていた...。
  • 起動音ジャーンの音量を自在にコントロールしたい! - ザリガニが見ていた...。

    MacBook Pro Retinaに移行してから、起動音がうるさくなってしまった。MacBook OSX10.6.8までの環境では、StartupSound.prefPaneが素晴らしくって、たいへんお世話になっていた。ところが、OSX Lion以降の環境には残念ながら対応していない...。困っていた。*1 起動音を消音する技 調べてみると、起動音を消音する技が公開されていた。 disable start up sound: Apple Support Communities sudo defaults read com.apple.loginwindow 事前に上記コマンドでcom.apple.loginwindowフックが利用されていないことを確認しておく。 2012-12-18 04:53:04.603 defaults[6963:a07] Domain /var/root/Lib

    起動音ジャーンの音量を自在にコントロールしたい! - ザリガニが見ていた...。
  • なるべく書かないawkの使い方 - ザリガニが見ていた...。

    awkという、古くからのスクリプト言語がある。(1977年生まれ。読み方は「オーク」である。エイ・ダブリュ・ケイではない)man awkをPDFに変換してみると、たったの3ページ強しかない。 $ man -t awk|pstopdf -i -o ~/Downloads/awk.pdf とてもシンプルな言語仕様ではあるが、awkには必要十分な表現力がある。特にテキストを処理する場面においては、最小限のシンプルな記述で、気の利いた処理を素早くこなす。無駄のないawkワンライナーを見ると、ある種の感動を覚える。awk以降に生まれたスクリプト言語は、少なからずawkの影響を受けていると思われる。 awkを知ることで、間違いなく幸福度は上がると思う。いつかきっと「知ってて良かった」と思える時が来るはず。もっともっと、awkを知りたくなってきた。 基動作 awkの基動作は、とってもシンプルである。

    なるべく書かないawkの使い方 - ザリガニが見ていた...。
  • プロセス・パイプ・リダイレクション・ファイルディスクリプタの実体を見に行く - ザリガニが見ていた...。

    プロセス置き換えとか、名前付きパイプとか、とても便利な機能なのだけど、その仕組みはどうなっているのだろう?断片的な知識ばかりでは、その核心にはなかなか辿り着けない。サンプルコードの真似はできるけど、それ以上の発想はできない...。もっと根的なところからちゃんと理解しておかないと、いつまでたってもコマンドの使い方の質が理解できないと感じた。プロセスとは何か?パイプとは何か?リダイレクションとは何か?ファイルディスクリプタとは何か?可能な限りその質を探ってみようと思う。 UNIXのプロセス UNIXでは、複数のユーザーがログインした状態で、同時に複数の処理を依頼される状況が多々ある。 ところが、どんなに高性能なCPUであっても、ある瞬間に処理できるのはたった1つの処理だけである。 そんな時OSは、それぞれの処理に必要なメモリ領域を割り当てて、CPUをタイミングよく切り替えながら同時並行的

    プロセス・パイプ・リダイレクション・ファイルディスクリプタの実体を見に行く - ザリガニが見ていた...。
  • MacBookのRetinaディスプレイを縦2880pxにした壮観な眺め - ザリガニが見ていた...。

    以前の日記「Retinaよりも大切なもの」でも書いた「Retinaディスプレイを縦長に使う自由が欲しい」という欲求は、なんとOSX標準の機能で簡単に実現できてしまうのであった! 参考ページ:[Mac] 知らない人は損してると思うMacの使い方【その4】 | Appleちゃんねるの「MacBookでポートレート表示」の項目。(素晴らしい情報に感謝!) システム環境設定を起動(すでに起動している時は一旦終了してから)して、commandキーとoptionキーを押しながら、「ディスプレイ」をクリック。すると、いつもは見えない回転という設定が現れるのだ! MacBook Pro Retina15 OSX 10.8.2の環境において、「回転」の設定項目が表示された。 初代 MacBook OSX10.6、2008late MacBook OSX10.6の環境では、いくら試しても「回転」の設定項目は表

    MacBookのRetinaディスプレイを縦2880pxにした壮観な眺め - ザリガニが見ていた...。
  • MacBookで快適なリモート操作を目指す - ザリガニが見ていた...。

    Snow Leopardになり、サポート対象はIntel CPUのマシンだけとなってしまった...。でも、年に1度だけ、未だにOS9とOSX10.4のアプリケーションが大活躍する。そう、年賀状の作成である。具体的には、宛名書きの「宛名職人」と文字や画像にエフェクトをかけて自由に配置できる「Photoshop」だ。どちらもバージョンアップすれば、最新のOSX10.6 Snow Leopard環境でも問題なく動作するはず。しかし、年賀状を作成するという目的においては、その当時の機能で十分なので、そのまま使い続けてきた。バージョンアップの料金も馬鹿にならない。 年賀状作成の時だけ、PowerBookの前に移動して作業すれば良いことなのだが、普段からMacBookを常用していると、最近はそれさえも面倒になる。できることなら、MacBookからそのままPowerBookも操作したい欲求に駆られる。

    MacBookで快適なリモート操作を目指す - ザリガニが見ていた...。
  • メモリを解放してスワップ発生を抑える方法 - ザリガニが見ていた...。

    OSX 10.6 Snow Leopardは、極めて安定した、信頼性の高い、快適なOSとなった。但し、ハードディスクから起動する環境において、その快適さを保つためたった一つ気を付けておくべきことがある。それは、スワップ使用領域の増加を極力抑えること。 スワップへのアクセスが頻繁に発生している時は、あのレインボーカーソルがぐるぐる回っている時である。どうしようもない操作レスポンスの低下に悩まされる。そんな状態に極力陥らないように、使っていないメモリを素早く解放する方法を模索してみた。 その1 フォルダ容量を計算する フォルダ容量を計算する過程でメモリが解放されることがある。それを利用した方法は、3つある。どれも仕組みは同じなので、どれか一つの方法を実行するだけで十分。 Finderを利用する方法 Finderで起動ディスクのルートを開いて、リスト表示にする。(command-2) 表示オプシ

    メモリを解放してスワップ発生を抑える方法 - ザリガニが見ていた...。
  • ベイジアンフィルターで日本語を分類する。 - ザリガニが見ていた...。

    ベイジアンフィルターで日語を取り扱う時に問題になってくるのが、文章を品詞レベルに分解する処理。英語の場合は、文章はスペースで区切られた品詞の集合で構成されるため、余分なことをせずに簡単に処理できる。例えば、'How do I set up an AirPort wireless network?'という文章の場合、ベイジアンフィルターは、スペースで区切られた単語を、分類するための判断材料として自動的に取り込んでくれる。 ところが、日語の場合は、「エアポートの無線ネットワークはどうやって設定しますか?」という文章を、「エアポート の 無線 ネットワーク は どう やっ て 設定 し ます か ? 」のように、品詞をスペースで区切った文章に変換して、ベイジアンフィルターに渡してあげる必要があるらしい。これはすごく高度な作業だ。自分のレベルではどうやっても出来ない。 そこで、この高度な作業を

    ベイジアンフィルターで日本語を分類する。 - ザリガニが見ていた...。
  • 新規購入したMacBookにインストールしたApple以外のソフトウェア - ザリガニが見ていた...。

    僕のMacができるまで | Macの手書き説明書さんの記事に触発されて、いつか自分でも似たようなことを書き留めておきたいと思っていた。MacBookを新規購入したので、今こそ、そのチャンス!(こういうことって、当り前の環境として使ってしまっていると、何をインストールしていたか忘れてしまう。新規インストールする時に改めてその便利さを再確認することが多い。) インストール前のいい訳 PathFinderというOSの操作感をそっくり代替してしまうような素晴らしいソフトウェアもあるが、日常的にはOSXのFinderを利用している。*1 メールとWEBブラウザについても、(機能拡張するソフトウェアはインストールしているが)OSX標準のMailとSafariをメインに利用するようにしている。そうすると、MobileMe(.mac)を利用してメール設定やブックマークをあっという間に同期できる便利さに惹か

    新規購入したMacBookにインストールしたApple以外のソフトウェア - ザリガニが見ていた...。
  • 1