Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

2012-02-01から1ヶ月間の記事一覧

xargs | 標準入力からコマンドラインを作成する

コマンド名 xargs オプション e = ファイル終了文字を指定 p = コマンドごとに問い合わせる r = 空白しかない場合は実行しない 概要 標準入力からコマンドラインを作成する サンプルコード aaaa.txtとaaaa.shを作成後、 findコマンドでaaaaで始まるファイル…

Thunderbirdの配色をカスタマイズ

概要 Thunderbirdの配色をカスタマイズする方法について。 手順 ツール→アドオン Stylish1.2.6をインストールThunderbirdの再起動表示→ツールバー→カスタムからスタイリッシュを選択して ツールバーにドラッグで「Stylish」のアイコンをセットするStylishの…

M+フォントの導入

M+フォントの導入について。以下のURLからフォントデータをダウンロードします。 http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/download/index.html#download解凍したフォルダの中身を コントロール パネル\デスクトップのカスタマイズ\フォント …

> リダイレクトでファイル出力

概要 リダイレクトによりコマンドの実行結果をファイルに出力可能。 上書きリダイレクト構文 コマンド > ファイル名 追記リダイレクト構文 コマンド >> ファイル名 リダイレクトサンプルコード $echo test > test.txt $cat test.txt test $echo test > test.…

前のコマンドが成功してから次のコマンドを実行

2つのコマンドを&&で繋ぐと、前のコマンドの成功時のみ後続のコマンドを実行します。例えばカレント配下にテストフォルダがあるとします。 この際、rmでtestフォルダを作成する際に-rオプションを付けずに実行すると エラーになります。 この場合パイプで後…

<< 入力の終端

概要 入力の終端を以下の構文で指定することで 終端文字を入力するまでの内容を入力としてコマンドを実行できる。 入力リダイレクト構文 コマンド 入力リダイレクトサンプルコード 使用コマンドはsort 入力内容は987654321の降順数字 終端文字はhogeとする。…

< 入力のリダイレクト

概要 入力のリダイレクトによりファイルからの入力でコマンドを実行する 入力リダイレクト構文 コマンド 入力リダイレクトサンプルコード sort < desc.txt >asc.txt 入力ファイル 9 8 7 6 5 4 3 2 1 出力結果の確認 1 2 3 4 5 6 7 8 9

& バックグラウンドで実行

コマンドの最後に&をつけることでバックグラウンドで実行が可能。 長時間の実行が必要なジョブなど他のジョブと並行して実行させたい場合に有用。

RubyでMediatorパターン

概要 GoFのデザインパターンのMediatorパターンについて。 多数のメンバー(同僚、Colleague)を利用する処理を調停者(Mediator)を通して行うパターン。 個別のメンバーにばらばらに重複するような処理を持たせずに一か所で管理することで 保守性を向上さ…

RubyでFacadeパターン

概要 GoFのデザインパターンのFacadeパターンについて。 複雑な手順の処理の窓口=Facadeを用意することで システムをシンプルにする。 登場人物 Facade = 窓口 ModuleA = 処理A ModuleB = 処理B Client = 利用者 UML 実装サンプル サンプル概要 親子構造を…

Javaプログラマーが学ぶRuby応用/RubyのModule

概要 Rubyのモジュールについて。 モジュール Moduleはインスタンスを持ちません。 Moduleはクラスにincludeして、継承関係を意識せずに利用が可能です。 用途としてはモジュールの用途1:名前空間の確保 モジュールの用途2:Mix-in モジュールの用途3:定数…

Javaプログラマーが学ぶRuby基礎/Rubyのクラス継承

概要 Rubyのクラス継承について Javaと変わらない部分は省略 基底クラスのメソッド呼び出し メソッド内で以下の記述を行うことで自分と同名の基底クラスのメソッドを 呼び出すことが出来ます。 super サンプルコード parent_class # encoding: Shift_JIS =be…

Javaプログラマーが学ぶRuby基礎/Rubyのクラス

概要 Rubyのクラスについて Javaと変わらない部分は省略 クラス変数 クラス変数は以下の構文で定義出来ます。 @@変数名="初期値" getter,setterの代替 以下の構文でJavaのアクセサと同様の機能を実現します。attr_reader :変数名 = Javaでgetterだけ定義した…

Rubyファイル操作

ファイルのオープン 下記の構文でファイルを開くことができます。 file=open(ファイルパス,モード) 第二引数のモードは r = 読み取り w = 書き込み(上書き) a = 書き込み(追記)です。デフォルトはr。 ファイルを閉じる file.close ファイルの中身を一括読み…

nkfのインストール

nkfのインストール 日本語変換ソフトであるnkf(Network Kanji Filter)をインストールします。 http://sourceforge.jp/projects/nkf/からnkfをダウンロードする 解凍する(tar xvfz nkf-2.1.2.tar.gz) makeの実行 make testの実行 ファイルを配置する cp -av…

Git Extensionsの導入

概要 分散バージョン管理ツールGitのクライアントソフトである Git Extensionsの導入について。 インストール 下記URLからGitExtensions228SetupComplete.msiをダウンロードします http://code.google.com/p/gitextensions/downloads/detail?name=GitExtensi…

RubyでVisitorパターン

概要 GoFのデザインパターンのVisitorパターンについて。 データ構造と処理の分離を行うことによって OPC(The Open-Closed Principle)を実現する。 拡張については開かれていて、修正については閉じられている。VisitorとElementが協調して処理を行う形式を …

shunit2でシェルもテストファースト

概要 シェル用テストフレームワークのshunit2の導入について。 インストール手順 ・以下のURLのダウンロードリンクからshunit2を取得する ※2012/02/24時点での最新版2.1.3を選びました http://sourceforge.jp/projects/sfnet_shunit2/・該当ファイルを解凍す…

RubyでChainOfResponsibilityパターン

概要 GoFのデザインパターンのChainOfResponsibilityパターンについて。 処理の責務をたらい回しにする。利点としては ・要求側は処理を呼び出す最初の相手だけ知っていれば良い ・処理の連鎖の修正が容易 ・各自の処理に専念できる欠点としては ・遅いこと …

Ruby De ワンライナー|カレントディレクトリのファイル名に含まれる特定文字列を置換

カレントディレクトリのファイル名に含まれる特定文字列を置換 コマンド ruby -Ks -e 'Dir::glob("./Composite*").each {|f|File.rename(f, f.gsub(/Composite/, "ChainOfResponsibility"))}' 実行例:出力前 Composite.txt Compositeパターン.asta Composit…

筆箱に入るかさばらないコンパス、ペンパスを購入

私は平日出勤前、必ず1時間は喫茶店で学習をします。 その際に、マインドマップを書いたりクラス図を書いたりする関係で 何かと直線や丸や四角を書く必要が出てくるのですが 元々不器用なこともあってフリーハンドで書いた線が汚くて自分にイライラしてまし…

RubyでDecoratorパターン

概要 GoFのデザインパターンのDecoratorパターンについて。 飾りと中身を同一視するパターン。 利点 元のクラスの中身を変えずに機能を追加出来る 組み合わせで様々な機能を実現できる 欠点 小さいクラスが大量に出来る 登場人物 Component = 抽象コンポーネ…

Javaプログラマーが学ぶRuby基礎/Rubyのハッシュ

概要 Rubyのハッシュについて。 宣言と取得 下記の構文でハッシュを宣言出来ます。 変数名 = {"key1" => value1,"key2" => value2,・・・} 変数名 = Hash["key1" => value1,"key2" => value2,・・・] 下記の構文で値の取得ができます。 変数名["key1"] 変数…

Javaプログラマーが学ぶRuby基礎/Rubyのメソッド

概要 Rubyのメソッドについて Javaと変わらない部分は省略 デフォルト 以下の構文でデフォルト値の設定を行うことが出来ます。 def メソッド名(変数名=デフォルト値) 引数の配列化 以下の構文で引数を配列化することが出来ます。 def メソッド名(引数名1,引…

ThunderbirdにNostalgyアドオンを導入し、キーボードでの操作を拡張する

Nostalgyとは NostalgyはフリーのメーラーThunderbirdのアドオンです。 Thunderbirdデフォルトではキーボードで操作出来なかった操作を 実現することが出来ます。 Nostalgyのインストール ・ツール→アドオン→nostalgyで検索→検索結果からインストール ・Thun…

RubyでCompositeパターン

概要 GoFのデザインパターンのCompositeパターンについて。 よくある例としてファイルとフォルダを同様のComponentとして扱い、 再帰処理を可能とする。 木構造を再現する際などに利用。 登場人物 Component = コンポーネント。構成要素 Composite = コンポ…

RubyでStrategyパターン

概要 GoFのデザインパターンのStrategyパターンについて。 委譲によってアルゴリズムを交換可能にする。 登場人物 Context = コンテキストクラス Strategy = 抽象戦略 ConcreteStrategy = 具象戦略 UML 実装サンプル サンプル概要 ある言語のソースコードを…

RubyでBridgeパターン

概要 GoFのデザインパターンのBridgeパターンについて。 クラス〜サブクラスの機能の階層。 抽象クラス〜具象クラスの実装の階層。 それぞれを独立させることで保守性を高める。 新たな機能、新たな実装の追加が容易となる、 登場人物 Abstraction = 抽象ク…

Rubyで郵便番号の正規表現

以下のコードで正規表現を行った結果を配列として取得することが可能です。 サンプルコード postal_code = '141-0000' postal_code_list = postal_code.scan(/([\d]{3})-([\d]{4})/) p postal_code_list 出力内容 [["141", "0000"]]

歯医者で歯のリファクタリングをしてきた

今日、歯医者で歯石取りをしてきた。 すぐに分かるような痛みがないからといって歯磨きや 定期検診による歯石取りなどをおろそかにしていると 歯周病が出来たりして、いつかは虫歯になったり ボロボロの歯になってしまう。これ、システム開発のメタファにな…