bar_1

contents_map

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のメニューの
表示>イミディエイト・ウィンドウ
で表示できるよ。

2008年5月14日水曜日

親指シフト練習法

下記の練習法によって、だいたい2~3週間ほどで親指シフトで用いられる文字配列を覚えることができた(2008/3月時点の話)ので、ご紹介します。

ローマ字入力と比較しての効能として現時点で感じていることは、ローマ字入力よりは指が疲れないし、慣れてくれば速度もより早いということです。

親指シフトドライバとしては、やまぶきを使用いたしました。
(著名なソフトとして、もうひとつ親指ひゅんQがありますが、アプリをいろい
ろ試したところ、当方の環境(XP HE)ではどうもうまく動きませんでした。)


まずは、設定から。
■設定
●OS・IME関連
‐地域と言語のオプション
コントロールパネル>地域と言語のオプション>
テキストサービスと入力言語>詳細設定>詳細なテキストサービス
→「詳細なテキストサービスをオフにする」をチェックする。

‐IMEの入力モード
→「ひらがな」をチェック

‐IMEの入力設定
・プロパティ>全般>入力設定ペイン
→「ローマ字入力/かな入力」で、かな入力を選択する。
→おこのみで「スペースの入力」で、常に半角を選択する。

●やまぶき関連
  1. やまぶきを起動する。
  2. タスクトレイのやまぶきのアイコンを右クリック>設定...を選択。
    ‐設定ウィンドウ中の項目:配列定義ファイル
    → おこのみの配列を選択。自分の場合飛鳥[21-290](数字除く).ini を使用している。
    ‐設定ウィンドウ中の項目:右シフトキー
    → 設定を「スペース」から「変換」キーにする。
  3. タスクトレイのやまぶきのアイコンを右クリック>終了を選択。
    → これで、設定がyamabuki.iniファイルに保存される
■親指シフト入力の練習方法
1)「ひだり」、「みぎ」、「む」の入力を練習する。

2)50音表を自作する
下記のような表を作成します。配置を覚える意味で、ていねいに手打ちしていきます。
+-------+-------+-------+
|あ 左d|ぁ 左r|
|い 無k|ぃ 左u|
|う 無d|ぅ 左t|
|え 左e|ぇ 左y|
|お 右s|ぉ 左g|
+-------+-------+-------
|か 無l|が 左m|
|き 無a|ぎ 無g|
|く 右j|ぐ 右x|
|け 無:|げ 左:|
|こ 右o|ご 右@|
+-------+-------+-------
|さ 左s|ざ 左q|
|し 無s|じ 無e|
|す 左k|ず 左h|
|せ 無x|ぜ 左z|
|そ 右i|ぞ 右p|
+-------+-------+-------
|た 無;| |だ 左a
|ち 左c| |ぢ 右y
|つ 右l|っ 無m|づ 右v
|て 無f| |で 左;
|と 無i| |ど 右,
+-------+-------+-------
|な 右d|
|に 右;|
|ぬ 右g|
|ね 左w|
|の 右k|
+-------+-------+-------+
|は 無o|ぱ 右c|ば 左v
|ひ 左x|ぴ 無r|び 無b
|ふ 左o|ぷ 右z|ぶ 無v
|へ 無p|ぺ 右r|べ 右w
|ほ 無z|ぽ 右/|ぼ 右h
+-------+-------+-------+
|ま 左l
|み 無c
|む 右n
|め 無/
|も 右.
+-------+-------+-------+
|や 左n|ゃ 無n
|ゆ 無h|ゅ 無.
|よ 左i|ょ 無,
+-------+-------+-------+
|ら 右f
|り 左f
|る 左j
|れ 右e
|ろ 右:
+-------+-------+-------+
|わ 右a
|を 右m
|ん 無j
+-------+-------+-------+
|「 無q
|」 無@
|( 右q
|) 左@
|{ 左1
|} 左4
|[ 左2
|] 左3
|< 右0
|> 右9
+-------+-------+-------+
|+ 左-
|* 左8
|& 右t
|& 左6
|/ 左0
|/ 右\
|= 右-
|% 無t
|¥ 無[
+-------+-------+-------+
|・ 無u
|. 無-
|, 無^
|’ 左7
|* 無\
|、 左,
|。 左.
|! 左p
|! 右1
|? 左/
|ー 無w
|| 左\
|- 無y
|~ 右u
|_ 左[
|
+----



3)句読点の入力を練習する。
、。?!

4)助詞・助動詞の入力を練習する。
てをには

がで
です
ます

である

5)自分の名前の入力を練習する。

6)普段使用しているアプリで、親指シフトのみで日本語入力する
これは、2)で作成した50音表を見ながらでよい。
ただし慣れるにしたがって、だんだん見る量を減らしていくこと。


2008年5月1日木曜日

Excel VBA: マクロをテキストファイルに落とす

今日の今日まで知らなかったのだが、EXCEL マクロのソース・コード記述って、テキスト・ファイルに落とせるんだね。いつも、コピペで対応していたよ。

方法は、簡単。

ブラウザ内で、各モジュール配下のオブジェクトを選択>右クリック>ファイルにエクスポート...

で、出力される。

オブジェクトの種類によって、拡張子はいろいろ:.bas, .cls, {.frm, frx} だけどね。
フォームの場合は、ソース・コードそのものとバイナリ・ファイルのペアが出力されるね。
バイナリ・ファイルのほうは、ジオメトリックな情報なんだろうね。

Ruby: rconv

TODO