bar_1

contents_map

2008年2月29日金曜日

Ruby: irb, ruby console で日本語入力ができない?

いつのまにか、そうなっていたのでいじってみた。


解決法
Step 1. ナチュラルインプットを無効にする

(1) コントロールパネル>地域と言語のオプション>テキストサービスと入力言語
で、Natural Input を選択。

(2) プロパティ>詳細設定>「詳細なテキストサービスをオフにする」を、チェック

再起動を促される。

これをおこなうと、なぜか言語バーがデスクトップに表示されなくなった。
また、コンパネの地域と言語のオプション>テキストサービスと入力言語にも、Microsoft Natural Input が消えた。


Step 2. IME使用の設定を行う

IME の詳細設定>システムの構成ペイン内>「詳細なテキストサービスをオフにする」を、チェック

IMEのバー(これも言語バー?)が、デスクトップ右下に表示される。
また、irb・ruby console ともに、Alt+漢字で日本語入力可能に。ウマー

2008年2月16日土曜日

g++: GNU C++ ライブラリ 日本語訳(目次)

探してたのだがどうにも見つからなかったので、やってみた(まだ目次のみ)。
原書は、"The GNU C++ Library" (http://gcc.gnu.org/onlinedocs/libstdc++/manual/spine.html)
まだ途中です。適宜アップデート予定。
長すぎる、とSeeSaa様に怒られてしまったので、付録以降はとりあえず本稿では省きました。



GNU C++ ライブラリ

Copyright (c) 2008 FSF

Japanese Translation Copyright (c) 2008 もふもふ

ライセンス

Table of Contents

I. イントロダクション

1. ステータス

実装ステータスImplementation Status

C++ 1998
C++ TR1
C++ 200x

ライセンス

コード: GPL
ドキュメンテーション: GPL, FDL

バグ

実装のバグ
標準ライブラリのバグStandard Bugs

2. セットアップ

ビルド構成の設定Configure
ビルド

必要なお膳立てPrerequisites
Make

テスト

構成Organization
命名規則
ユーティリティ
テスト・スイートの実行
新しいテスト・ケース
テスト・ハーネス詳細
これから

3. つかい方

ライブラリ・バイナリ・ファイルのリンク
ヘッダ

ヘッダ・ファイル
ヘッダの混載Mixing Headers
C ヘッダと std名前空間
コンパイル済みヘッダ

名前空間

使用可能な名前空間
std名前空間
名前空間を組み合わせて使うUsing Namespace Composition

マクロ
同時性Concurrency

必要なお膳立てPrerequisites
スレッド安全性
アトミック
IO
コンテナ

「例外」安全性Exception Safety
デバッギング・サポート

g++ の使用
デバッグバージョンのライブラリ・バイナリ・ファイルDebug Versions of Library Binary Files
メモリ・リーク狩りMemory Leak Hunting
gdb をつかう
捕らえなかった例外を追う
デバッグ・モード
コンパイル時間のチェックCompile Time Checking

II. サポート

prefaceTODO:
4. 型Types

基本の型Fundamental Types
数値プロパティNumeric Properties
NULL

5. 動的メモリ
6. 停止Termination

停止ハンドラTermination Handlers
くどくどしい停止ハンドラVerbose Terminate Handler

III. 診断

7. 例外

例外クラス
例外にデータを追加する
打ち消しCancellation

8. コンセプト・チェッキング

IV. ユーティリティ

9. ファンクタ
10. ペア
11. メモリ

アロケータ

要求仕様Requirements
設計上の問題点Design Issues
実装
スペシフィック・アロケータをつかう
カスタム・アロケータCustom Allocators
エクステンション・アロケータ

auto_ptr

制限
コンテナ中での使用

shared_ptr

要求仕様Requirements
設計上の問題点Design Issues
実装Implementation
使用法Use
謝辞

12. Traits

V. 文字列Strings

13. String クラス関連Classes

シンプルな変換Simple Transformations
大文字小文字の区別Case Sensivitity
任意の文字型Arbitrary Character Types
トークナイジングTokenizing
縮めてフィットShrink to Fit
CStringクラス (MFC)

VI. ローカライゼーション

14. ロケール関連

ロケールlocale

要求仕様Requirements
設計Design
実装Implementation
これからFuture

15. ファセット aka カテゴリFacets aka Categories

ctype

実装
これから

codecvt

要求仕様Requirements
設計Design
実装Implementation
使用法Use
これからFuture

messages

要求仕様Requirements
設計Design
実装Implementation
使用法Use
これからFuture

VII. コンテナ関連

16. シーケンスSequences

リストlist

list::size() は 計算量O(n)

ベクタvector

空間オーバヘッドの管理

17. 連想配列Associative

挿入のヒントInsertion Hints
ビットセットbitset

サイズ変数Size Variable
Type String

18. Cとの連携Interacting with C

コンテナ vs. アレイContainers vs. Arrays

VIII. イテレータIterators

19. 定義済みPredefined

イテレータ vs. ポインタIterators vs. Pointers
ひとつ越えたらOne Past the End

IX. アルゴリズムAlgorithms

prefaceTODO:
20. ミューテイティイングMutating

スワップswap

特殊化Specializations

X. 数値型Numerics

21. 複素数型Complex

complex の処理

22. 一般化した操作Generalized Operations
23. Cとの連携Interacting with C

数値型 vs. アレイNumerics vs. Arrays
C99

XI. 入力と出力

24. Iostream オブジェクト
25. Stream バッファ

streambuf 派生クラス関連
バッファリング

26. メモリ・ベースのストリーム

strstream との互換性

27. ファイル・ベースのストリーム

ファイルをコピーする
バイナリ入力と出力
さらなるバイナリ入力と出力

28. Cとの連携

ファイルポインタFILE* とファイルディスクリプタを使うFILE* and file descriptors
パフォーマンス

XII. 拡張Extensions

prefaceTODO:
29. コンパイル時間のチェックCompile Time Checks
30. デバッグ・モードDebug Mode

Intro
セマンティクスSemantics
つかい方Using

デバッグ・モードを使う
Using a Specific Debug Container

設計

目的Goals
方法
他の実装Other Implementations

31. 並列モードParallel Mode

Intro
セマンティクスSemantics
つかい方Using

並列モードを使うUsing Parallel Mode
特殊並列コンポーネントを使うUsing Specific Parallel Components

設計Design

基本インタフェースInterface Basics
構成とチューニングConfiguration and Tuning
名前空間の実装Implementation Namespaces

テスティングTesting
Bibliography

32. アロケータ

mt_allocator

Intro
設計上の問題点Design Issues
実装
単一スレッドの例
複数スレッドの例

bitmap_allocator

設計
実装

33. コンテナ

ポリシーベースのデータ構造Policy Based Data Structures
HP/SGI
Deprecated HP/SGI

34. ユーティリティ
35. アルゴリズムAlgorithms
36. 数値型Numerics
37. イテレータIterators
38. 入力と出力

filebufs の派生

39. 曖昧性除去Demangling
40. 同時性Concurrency

設計

ロックとミューテックスへのインタフェースInterface to Locks and Mutexes
アトミック・ファンクションへのインタフェースInterface to Atomic Functions

実装

ビルトインのアトミック・ファンクションをつかうUsing Builitin Atomic Functions
スレッド抽象化

使用法

2008年2月8日金曜日

[書籍メモ] 本日購入分

  1. Alberto Palacios Pawlovsky/アズウィ著;『考えるコンピュータのアルゴリズム』,SoftBank Creative,¥2,400
  2. Bruce A. Tate著,角谷 信太郎訳;『JavaからRubyへ マネージャのための実践以降ガイド』,オライリー・ジャパン,¥2,200
  3. Digital Travesia管理人,うさぴょん著;『デバッガによるx86プログラム解析入門』,秀和システム,¥2,400


  • 目的
    やわらかいアルゴリズムの情報収集、ERプロジェクトへの活用(1)
    社内力学研究、変革に必要とされるものは何か?その他RubyとJavaの相違点等情報収集(2)
    プリミティブ技術、ツールの情報収集、実践(3)

  • 要約・分析・考察など
    別途


2008年1月30日水曜日

FireFoxプラグイン:マクロ機能を組み込むiMacros

これは便利かも。
 iMacrosはFirefoxの操作を記録し自動再実行するツールだ。Firefoxのエンジンを利用してFirefox上で行った操作を追跡しスク
リプトとして記録する。このスクリプトを保存しておけば、あとでロードして実行したり、コピーして別のコンピューター上で実行したりすることができる。(http://opentechpress.jp/developer/article.pl?sid=08/01/16/019223&tid=194
)
スクリプトをみんなで共有する仕組みもあるらしい(Social Scripting)。

Select "Share Macro" on the Edit tab to embed the complete iMacro in a link that you can share with others.
PerlのCPANみたいなものか?


・FireFoxを自動運転するツール、iMacros
http://opentechpress.jp/developer/article.pl?sid=08/01/16/019223&tid=194

・iMacros for FireFox
http://www.iopus.com/imacros/firefox/

2008年1月29日火曜日

Ruby: 数字に桁区切りを入れたい(その2)

前回 は、数字を区切るためのインスタンス・メソッドを作成した。
今回はこのクラス Price に、コンストラクタと比較演算メソッドを、追加しよう。
Price.new の引数として、文字列、または、整数をとるものとする。
オープンクラス を使って、クラスに機能を追加した。
class Price
  public

  include Comparable

  #Constructer
  #
  def initialize( p_ )
    @val_orig = p_.to_s;
    @val_s_wo_d = del_digit_delimiter( "#{@val_orig}" );
    @val_s_w_d = add_digit_delimiter( @val_s_wo_d );
    @val_i = @val_s_wo_d.to_i;
  end

  def <=>(other)
    self.val_i <=> other.val_i;
  end

end
コンストラクタ: initialize では、4種類のインスタンス変数: val_orig, val_s_wo_d, val_s_w_d, val_i; が生成される。
それぞれ、オリジナルの値、桁区切りなしの値、桁区切りありの値、数値変換時の値、となる。
インスタンス・メソッド: <=> は、クラス Price のオブジェクト同士の大小比較を行うために、定義した[1]。

References:

  • [1] 『プログラミングRuby 第2版 言語編』; ‘Mixin’, p.101

2008年1月24日木曜日

Ruby: 数字に桁区切りを入れたい (その1)

数字に桁区切りを入れたい。

クラスPriceをつくってみよう。
内部で文字列と数字で値を保存する。
class Price

protected

def add_digit_delimiter( v_ )

#remove comma from v_.

v_.gsub(/[,]/){ |c| "" };



#adding commas from lower, each 3-digits.

v_.reverse.gsub(/[[:digit:]]{3}(?=\d)/){|d| "#{d},"}.reverse;

end



[追記]2013-04-13 3の倍数桁のときに、左端にカンマが付いてしまうため修正: (?=\d)を追加した。
def del_digit_delimiter( v_ )

v_.gsub(/,/){|d| ""};

end

��

��

これで、メインとなる処理はできた。

2008年1月10日木曜日

FireFox:ページのリダイレクト設定が正しくありません

近頃FireFoxとそのプラグインをいくつかバージョンアップをおこなったら、mixiのニュースをクリックしても、
ページのリダイレクト設定が正しくありません
このアドレスへのリクエストに対するサーバのリダイレクト設定がループしています。
Cookie を無効化したり拒否していることにより、この問題が発生している可能性もあります。
などとでて、ページが表示されなくなってしまった。

以下のような環境で、当該現象が発生した:
NoScript 1.2.6
FireFox 2.0.0.11


WA:FireFox(NoScript)の設定でWhite listから当該ドメインを削除する
これは下記のように、いったんwhite listから当該ドメイン(ここではmixi.jp)を削除することで、現象を解消されることを確認できた。

NoScriptのアイコン右クリ>オプション...>Whitelistタブを選択
そして、問題の生じているドメイン名を、いったん削除。
(削除の影響:Javascriptなどは、削除したドメインで無効となる)
これで、リンク先にいけるはず。
より詳細なソースについては、こちら:
"Q: Looks like the Anti-XSS feature causes problems with URLs containing diacritics or other non-ASCII characters, e.g. with queries
to search engines (other than Google and Yahoo) containing Japanese or Chinese terms.
"
http://noscript.net/faq#qa4_2
[2008/1/18追記]NoScript 1.2.9で、本エントリの症状は改善された模様。忘備のために残す。

2007年12月5日水曜日

Overloading methods in Ruby

Ruby では、メソッドなどのいわゆる多重定義(オーバロード;overload)ができない。
したがって、引数の異なる複数のコンストラクタを持つことも、できないという話。

その回避策は:
[ruby-list:30553] Re: 名前の異なるコンストラクタを複数持つには?



多重定義は、抽象化のひとつの手だとおもうのだが、Rubyのこのような仕様はC++使いからすると、あんまりうれしくない。

2007年11月27日火曜日

bashのコマンドラインでのいくつかのキー設定・入力方法

入力モードをEmacsライクにするには?また、タブを直に入力したいときは?

入力モード設定には、setコマンド。直入力には、Ctrl+Vを使う。

コマンドラインの入力モード切替え方法。
# set -o vi
で、viモード
# set -o emacs
で、emacsモード。
コマンドラインで、タブなどを直接入力したい場合。
# [Ctrl+V][TAB]
で、入力される。