bar_1

contents_map

2009年6月17日水曜日

「Firefoxが重い」

という現象に、ここ数ヶ月の間、私は悩まされ続けていた。
原因はいくつかあるのかもしれないが、登録してあるRSSフィードの量に問題が
ありそうなのは感覚的に分かっていた。RSSリーダーには、Sage-Tooを使用して
いる。

最近になって、ようやく以下のページで解決策を見つけた:
『MarleySoft別館‐Livemark読込みの負荷分散』
http://marilab.hp.infoseek.co.jp/firefox/bug329534.html
自分で数日試してみたところ、上述の現象の改善が得られたので、ここに設定手
順を含めてご紹介する。


問題
Firefoxの起動に時間がかかる。またはFirefox起動中に、周期的にPCがフリーズする。

解決策
以下のステップでbug329534パッチを適用し、ライブブックマーク読込みの負荷分散を図る。

手順
  1. bug329534対応のパッチ:bug329534.xpiのインストール
  2. 対象となる設定項目を設定
    1. Firefoxの設定項目画面を開く
    2. 設定項目を追加する
    3. 設定項目に値を設定する

1.について

前述のページからxpiファイルをダウンロードし、Firefoxのウィンドウにドラッグ&ドロップする。

2.1.について
URLバーに、
about:config
と、入力する。

2.2.についてコンフィグ画面で右クリックし、コンテキスト・メニューで「新規作成>整数値」として
browser.bookmarks.livemark_refresh_delay_time
(説明:更新間隔。単位は秒。最小値は1。)

browser.bookmarks.livemark_refresh_limit_count

(説明:一度に更新するLivemarkの数。最小値は1。)
を、新たに定義する。


2.3.について追加した項目をクリックして、値を設定する。
自分の場合は、
livemark_refresh_delay_time を 5
livemark_refresh_limit_count を 2
としておいた。


パッチ適用前後の状況ご参考としてパッチ適用前後の状況についても述べておこう。

最初に適用以前について。
まず、Firefoxの起動時にやたら時間がかかるのだ。また、息継ぎするかのごとく、
Firefoxのプロセスをアクティブにした際や、ブラウジング中に、Firefoxがなん
らかのアクセス(ネットやローカルドライブ)をし始める、といった現象だ。この
アクセス中、ほとんどPCはフリーズしたかのような状態になる。この状態は、お
およそ数十分続く。

ちなみに、私のフィードの登録数は約325サイト分である。


パッチ適用後は、上記のような状況はほぼ皆無、多少重くなったとしても、重さ
の劇的な低減がなされた。

2009年6月11日木曜日

Ustreamの日本語入力

下記のブックマークレットの実行をすればいい(URL入力バーに書いて、リターン)

javascript:(function(){chat.addParam("wmode", "");chat.write("chatContent");})()


Flashの実装上の不具合らしい。詳細は下記のサイトに、まとめられている:

実況者USTREAM WIKI
http://www36.atwiki.jp/jikkyosha_ust/pages/67.html

NIKKEI NETのRSSフィード

日本のニュースサイトは、なんでフィードを提供しないんだろう。

日本におけるニュース電子化のさきがけの日経新聞のサイト:NIKKEI NET(http://www.nikkei.co.jp/)ですら、行われていない。。。

ということで検索していると、NIKKEI NET から、RSS生成するWebサービスを提供している下記のサイトを見つけた:

  • NIKKEI NETのニュース見出しをRSS出力するスクリプトです。
    http://www.zou3.net/php/index.php?page=rss&sub=nikkei


おお、これは便利!

2009年4月12日日曜日

【Twitter】XSS脆弱性を利用したウイルス

ProfileのWeb欄にスクリプトを埋め込むことで、
そのユーザのページを開いた際に、開いたユーザ(いままで感染していなかったユーザ)が感染する。

感染すると、「Mikeyy, Wooo」などといったPOSTが勝手になされる。
運営側での対策は済みのようであるが、しばらく注意した方がいいかもね。

詳細は、下記のページがまとめている。

http://www.greenspace.info/mt/2009/04/12/twitter_xss.html

2008年11月25日火曜日

[Seesaa]CSSを微修正[ソースコード]

前々から、どうもソースコードを記事に載せるときに、見にくいなぁと思っていたので、修正してみました。

等幅フォントのほうが、どう考えてもいい。
デザイン>デザイン一覧>下のほうに出てくる一覧から、使用しているデザインをクリック
で、スタイルシートの編集画面になる。

そこから、blockquoteクラスの属性に、font-family: monotype; を追加した。


ぐぐると、ソースコード中のキーワードを、色付けしたりするJavaScriptなどが、存在するみたいだ。
今のところは、これは保留。

2008年10月14日火曜日

[EXCEL][VBA] COUNTIF関数で複数条件を扱うには?(OR条件編)



2011年3月24日追記:このエントリは、より一般化された方法によって 改善された

COUNTIF関数は、次のような形式で範囲で指定されたセルの中から、条件を満たすセルの個数をカウントするものである:

=COUNTIF(範囲,検索条件)


ここで、「検索条件」とは

計算の対象となるセルを定義する条件を数値、式、セル参照、または文字列で指定します。
たとえば、検索条件は 32、"32"、">32"、"Windows"、または B4 のようになります
(式および文字列を指定する場合は半角の二重引用符 (") で囲む必要があります)。

[Microsoft Excel ヘルプより]


ところで、この検索条件が複数(OR条件)である場合は、どうしたらよいのだろうか?
単純に、次のようにすればいい:

=COUNTIF(範囲1, 検索条件1)+COUNTIF(範囲2, 検索条件2)





2008年7月21日月曜日

【使用レポート】ケータイの通話の録音機器

2つの製品を使用する機会を得たので、ここにその使用感について、レポートする。


メーカ名:ラスタバナナ社


製品名:【平型タイプ】音声出力プラグ付きイヤホンマイク RBEMRC1型番:RBEMRC1
メーカー希望小売価格:1,290円(税込)

使用後結論:はっきり言って、お話にならない。買ってはいけない。
使用感:
セットアップ
通話音声を録音するために、ケータイのおしりのインタフェースと、ICレコーダの音声入力の、2箇所に接続する。

使用方法
通話相手からの音声は、製品のイヤホンから聞こえる。(ケータイからは聞こえない)
こちらの発話は、製品のマイクから集音される。

難点
実際に録音を試したところ、相手の発話がエコーされてしまうようだ。これは、相手側にしか分からない。
また、途中で録音が切れてしまう現象が確認された。


メーカ名:SONY
製品名:エレクトレットコンデンサーマイクロホン
型番:ECM-TL1希望小売価格2,625円


使用後結論:
文句なし。おススメ。

使用感:
セットアップ
ICレコーダの音声入力に接続する。

使用
通話相手の音声は、製品のイヤホンに内蔵のマイクから聞こえる。
自分の音声は、製品のイヤホンに内蔵の骨伝導マイクから集音される。
ケータイでの通話は、通常使用するのと同様に使えばいい。

その他雑感
直感的に使用でき、通話を録音する上で、音質にもまったく問題を感じない。
また、上記ラスタバナナ社の製品であったような難点も、一切存在しない。



2008年5月28日水曜日

Excel VBA: シート名から目次を自動生成する

Excelで仕様書・設計書を書いているエンジニアは、相当数にのぼると考えられます。タイトルページ、変更履歴、目次、インタフェース、アーキテクチャ、機能一覧、、、。目次なんて、勝手に作ってほしいですよね。ねっ。WORDなら、できるんだし。


今回はそんなとき役に立つ以下のトピックについて、書いてみたいと思います:


  1. 各シートに、ページ・タイトルを設定する

  2. ページ・タイトルの一覧をリスト・アップし、目次を自動生成する

  3. このとき、目次のページ・タイトルをクリックすると、当該ページにジャンプする





1. 各シートにページ・タイトルを設定する



今回は、以下のような仕様でいこうと思います:
  • ページ・タイトルは、シート名と同一とする
  • 各シートのA1セルに、ページ・タイトルを表示する
    当然、シート名を変えたときは自動的に追随するものとします。
  • また各シートへのタイトル設定は、自動でできる



これらは、以下のようなコードで、実現できます:
'name: insert_titles
'date: May 28th, 2008
'author: http://voidptr.seesaa.net/
'desc: 各シートにタイトルを設定する
'
'
Public Sub insert_titles()
Dim ii As Integer

For ii = 1 To ThisWorkbook.Sheets.Count
ThisWorkbook.Sheets(ii).Range("A1").Value _
= "=RIGHT(CELL(" & """" _
& "filename" & """" _
& ",A1), LEN(CELL(" & """" _
& "filename" & """" _
& ",A1))-FIND(" & """" _
& "]" & """" _
& ", CELL(" & """" _
& "filename" & """" _
& ",A1)))"
Next ii
End Sub



シートごとに、A1セルの値を設定しているだけです。

シート名は、Excelの関数cell()から得ています。

ただしcell("filename",A1)だけでは、
フルパス+[xlsファイル名]+シート名

のかたちであるため、シート名の部分だけRIGHT()、LEN()、FIND() で切り取っています。

cell関数を使用しているため、シート名を変更したときは、自動的にタイトルも変わります。


ちょっとわかりにくい点として、ダブル・クォート(”)が4つ、連続して書かれている箇所があります。
これは、文字列としてのダブル・クォートです。

  

2. 目次を自動生成する

ここでは、以下のような仕様で行こうと思います。
  • 目次のページのシート名は、「目次」または「Contents」とする
  • 目次ページより左側にあるシート、および目次ページ自体は、目次に含めない
  • 目次ページには、名前付セル:TITLE_LISTNIG を用意し、このセルから下に向かってページ・タイトルを羅列していく
  • 羅列されたページ・タイトルをクリックすると、そのシートにとぶ



これらは、以下のようなコードで実現されます。
'name: make_contents
'date: May 28th, 2008
'author: http://voidptr.seesaa.net/
'desc: 目次をつくる
'
Public Sub make_contents()
'
Const PAGE_TITLE = "A1"
Const START_LISTING = "TITLE_LISTING"

'
Dim is_after_contents As Boolean
Dim num_sheets As Integer
Dim num_skips As Integer
Dim ii As Integer

is_after_contents = False
num_sheets = ThisWorkbook.Sheets.Count
num_skips = 1

''' list the title pages.
For ii = 1 To num_sheets
'clear old list item.
Range(START_LISTING).Offset(ii).Value = ""


'count the pages before contents.
If is_after_contents = False Then
num_skips = num_skips + 1
End If


'list a item.
If ThisWorkbook.Sheets(ii).Name = "目次" _
Or ThisWorkbook.Sheets(ii).Name = "Contents" _
Then

is_after_contents = True

Else
If is_after_contents Then
Range(START_LISTING).Offset(ii - num_skips).Value _
= "=hyperlink(" _
& """" & "#" _
& "'" _
& ThisWorkbook.Sheets(ii).Range(PAGE_TITLE).Value _
& "'" _
& "!A1" _
& """" _
& "," _
& """" _
& ThisWorkbook.Sheets(ii).Range(PAGE_TITLE).Value _
& """" _
& ")"
End If
End If

Next ii

End Sub



注意としては、セルの名前:TITLE_LISTINGは自分で定義すること。


このマクロを実行すると、目次シートのTITLE_LISTINGセルから下に向かって、ページ・タイトルがずらっと表示されると思います。
各ページ・タイトルは、HYPERLINK関数を利用して表示されているので、クリックすると、実際のページに飛びます。



わかりにくい点として、ダブル・クォートでかこまれたシングルクォートがあると思います。これはなぜ必要か?

シート名によっては、参照がうまくできなくなる場合があるからです。(ハイフンを含んだシート名=ページ・タイトルで試してみて。)
HYPERLINK関数の仕様です。



お好みで、この目次ページに「更新」ボタンなどを定義し、押下したらmake_contents()が実行されるようにしたらよいでしょう。





2008年5月20日火曜日

Excel2003: vbaUnitを使うためのExcelの設定

[Sep. 27th, 2010]追記:2種類のパッケージを混同していたので、記述を修正。
Excel2003の場合、とくに、Visual Basic Applications Extensibility の設定は、いらないのだね。


SourceForgeから、vbaUnit のアドイン・ファイルをダウンロードして来ればいい:
  • http://sourceforge.jp/projects/vbaunit/
  • http://sourceforge.net/projects/vbaunit/

前者は、アドイン(.xla)ファイルが、
後者なら、ReadMeとサンプルもついているよ。(英語だけどね。)

sourceforge.jp版の場合、
ダウンロードしたら解凍して、アドインを組み込めば使えるみたいよ。
ツール>アドイン...>参照...
から、組み込めるよ。
sourceforge.net版の場合、
ダウンロードしたら解凍して、.cls, .basをインポートする。Visual Basic Editorで
ファイル>インポート...
から、インポートできる。

sourceforge.net版のサンプルを試したかったら、Visual Basic Editorから、VBAProject::標準モジュールのVbaUnitMain をまず開いてみて。
それから、イミディエイト・ウィンドウで
prep
run
と、タイプしてみて。

イミディエイト・ウィンドウは、Visual Basic Editorのメニューの
表示>イミディエイト・ウィンドウ
で表示できるよ。