2008年2月29日(金) 01:07:21 @ Charlie

大変な人々

Category : 戯言 / Tags :

持たざる能力

世の中で最も迷惑な存在。それは、耳から情熱が溢れ出している上司。もしくは、取引先のような、回避したくてもできない相手。

不幸なことに、世の中には、全てにおいて能力値の高い人間はめったに存在しないという事実がある。意識的に捨てたのか、無意識的に得られなかったかの違いはあるのだろうが、人は、何かを得たら、何かを失っているのだ。

彼の場合、情熱と口の上手さが人よりも優れていたために、物事の本質を掴む能力に影響が出たと言わざるを得ない。

ちょっとした会話では頭が切れそうな印象を与えるのだが、しばらく話し続けると「あれ、ちょっとおかしいな」という疑問を抱くとになる。さらに話すと「もしかして頭良くない?」という疑惑に変わり、 30 分も話せば「キてるなあ」と確信するに至る。

直進すればゴールに着くのに、わざわざ沼地やモンスターのいる森に入り込んで状況を複雑にするタイプだ。
舵の壊れたボートにも例えられる。そのまま進めばやり過ごせるのに、わざわざ直角に曲がって岩に向かって行くのだから、乗っている乗客はたまったものではない。

ある日、こんな電話があった。
「そういえばこの間送ってもらった ASP.NET のソースがあるじゃない。今回のソースのことなんだけどさ、微妙に違っているところがあるんだよ」
「え、どこですか? ほとんど同じソースだったと思いますけど」
「メールアドレスのチェックのところ」

前に送ったソース
C#:
  1. if (!Regex.IsMatch(TextBox_Email.Text,
  2.     // メールアドレスの簡易チェック
  3.     @"^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$"))
  4. {
  5.     処理
  6. }

今回送ったソース
C#:
  1. // メールアドレスの簡易チェック
  2. if (!Regex.IsMatch(TextBox_Email.Text, @"^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$"))
  3. {
  4.     処理
  5. }

「エラーは出ないんだけどね。これでいいのかなぁ。 ASP.NET は勉強したばかりでさ、よく分からないんだよ」
「コメントはどこに書いてもいいんですよ」
「ステートメントの途中で改行してるんだけど」
「それが OK な言語体系なんです!」

プログラムにそんな詳しくない人間だって、コメントから改行までは、どこにあったっていいと分かりそうなものだ。
確かに、if 判別式どころか Regex.IsMatch() の途中で改行しているから、気持ち悪いと思う人はいるだろう。だから変更したのだが、コード自体に変更を加えているわけではない。

ビルドしてエラーも出ていないのに、わざわざその部分に注目する理由が意味不明である。最近 ASP.NET を覚え始めて嬉しいんだか何だか知らないが、独特の論理で話される、はっきり言ってしまえば頭のおかしい話に 30 分も付き合わされた挙句、最後にコメントの位置どうのとか言われた日には、私でなくても怒ってしまう。この時ばかりは温厚な私も、「くたばれ」と声を出さないようにするのが精一杯だった。怒って良いよね。

実際、同僚も被害に合い、声を荒げてしまったことがある。無視するのが一番なのだが、取引先だけに、付き合わないわけにはいかず、それ以降は電話があるたびに「ヤツから電話が来たぞ」と警戒するようになった。
周囲の人間も「勘違いしたバカ」「鬱陶しいデブ」で認識してしまっている。

私の経験上、中小企業の社長に多いタイプだ。

ステータス 説明
HP 生命力 80
MP 魔力 3
STR 力強さ 60
INT 知性 30
VIT 体力 40
AGL すばやさ 20
DEX 器用さ 1
LUK 運のよさ 80

※ 50 が日本平均

世の中には、他の人間とどうしても意識が合わない人間がいる。そのような人間に限って、自分についてこれない周囲の方がおかしいと本気で思っていたりする。意識が合わないならせめて、周囲からは不審に思われないように合わせた振りをして生活すればいいのだ。私のように。
能力的にそれすらできないほど意識がずれている人間はご愁傷様と言う他ない。
度し難いのは、能力があってもそうしない人間である。我が道を行くのは結構だが、せめて他人に迷惑をかけないようにしてもらいたいというのは、私が傲慢なのだろうか。

とか書いてる今日もまた連絡があって orz...

和製ホラー

先日、「THE JUON」という「呪怨」の海外版リメイクを見た。
確か夫以外の男を好きになったストーカー女が、嫉妬した夫に殺されて怨霊になり、家に来た人々を殺しまくると言うなんとも痛い話。

怨霊が人を殺すのは分かるが、何が悲しくて、殺された女と、殺した男が同棲して、仲良く人を殺してなければいかんのだ。男は嫉妬で女を殺したのだし、女はひどい殺し方をされて男を怨んでいるのだろうから、怨霊同士殺しあっていればいいのである。怨霊同士の壮絶なバトルの結果、勝ったほうが人の魂を求める、という設定であればまだ理解できる。
もうね、ホントにダメだよ。エレベーターで昇っている途中に各階に男の子は出てくるシーンはドリフのコントにしか思えない。どんだけ足が速いんだよって話。素直にエレベーターに同席すればいいだろ。そんなんだから最終絶叫計画4でさんざんパロディにされるんだ。

つまり、一言で感想を言うなら・・・怖いわけ。

2008年2月15日(金) 20:00:52 @ Charlie

WordPress でアーカイブをドロップダウンにする設定

Category : 設定

WordPress 設定変更

WordPress でアーカイブをドロップダウンにするには、
[表示] - [ウィジェット] でアーカイブをクリックし、「 Display as a drop down 」のチェックをいれるだけ。

実は sidebar.php のソースを変更するんだと思い込み、[表示] - [テーマエディタ] からソースをいじってみたものの、変わる様子がない。「デバッグ!!!!」とか入れてみても表示されないのでさすがにおかしいと思い、調べていくうちに、どうやら if 文以降の部分が実行されていないことが分かった。ウィジェットでメニューをカスタマイズしていると、その条件分岐が偽になって実行されないらしい。つまり、 if 文の中身はまったく無駄なコードということになる。以下のソースを見れば、どれだけムダがあるか分かるだろう。

サイドバー変更前のソース
PHP:
  1. <div id="menu">
  2. <ul>
  3.  
  4. <?php   /* Widgetized sidebar, if you have the plugin installed. */
  5.     if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>
  6. /* ここから */
  7.  <li id="calendar"><h2><?php _e('Calendar'); ?></h2>
  8.     <?php get_calendar(); ?>
  9.  </li>
  10.  
  11.  <li id="search">
  12.    <form method="get" id="searchform" action="<?php bloginfo('url'); ?>">
  13.     <div>
  14.         <input type="text" name="s" id="s" size="15" /> <input type="submit" value="<?php _e('Search'); ?>" />
  15.     </div>
  16.     </form>
  17.  </li>
  18.  
  19. <?php get_links_list(); ?>
  20.  
  21. <li><h2><?php _e('Archives'); ?></h2>
  22. <ul>
  23. <?php wp_get_archives('type=monthly&show_post_count=true'); ?>
  24. </ul>
  25. </li>
  26.  
  27. <li><h2><?php _e('Categories'); ?></h2>
  28. <ul>
  29. <?php list_cats(0, '', 'name', 'asc', '', 1, 0, 1, 1, 1, 1, 0,'','','','','') ?>
  30. </ul>
  31. </li>
  32.  
  33.  
  34. <li id="meta"><h2><?php _e('Meta'); ?></h2>
  35. <ul>
  36. <?php wp_register(); ?>
  37. <li><?php wp_loginout(); ?></li>
  38. <li><a href="<?php bloginfo('rss2_url'); ?>" title="<?php _e('Syndicate this site using RSS'); ?>"><?php _e('<abbr title="Really Simple Syndication">RSS</abbr>'); ?></a></li>
  39. <li><a href="<?php bloginfo('comments_rss2_url'); ?>" title="<?php _e('The latest comments to all posts in RSS'); ?>"><?php _e('Comments <abbr title="Really Simple Syndication">RSS</abbr>'); ?></a></li>
  40. <li><a href="http://validator.w3.org/check/referer" title="<?php _e('This page validates as XHTML 1.0 Transitional'); ?>"><?php _e('Valid <abbr title="eXtensible HyperText Markup Language">XHTML</abbr>'); ?></a></li>
  41. <li><a href="http://gmpg.org/xfn/"><abbr title="XHTML Friends Network">XFN</abbr></a></li>
  42. <li><?php echo sprintf(__('<a href="http://wordpress.org/" title="%s">WordPress</a>'), __("Powered by WordPress, state-of-the-art semantic personal publishing platform.")); ?></li>
  43. <?php wp_meta(); ?>
  44. </ul>
  45. </li>
  46.  
  47. /* ここまで */
  48. <?php endif; ?>
  49.  
  50. </ul>
  51. </div>
  52. <!-- end sidebar -->

サイドバーのコード

無駄骨を折らされて頭にきたのでサイドバーのソースから無駄な部分を削りまくってやった。ざまみろ。

サイドバー修正後のソース
PHP:
  1. <div id="menu"><ul>
  2.   <?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>
  3.   <?php endif; ?>
  4. </ul></div>
  5.  
  6. <!-- end sidebar -->

若干処理が早くなって一石二鳥くらい。

2008年2月14日(木) 20:02:42 @ Charlie

WordPress にカウンターを設置する

Category : Counterize2

WordPress 改造計画

Counterize II というプラグインは統計を取るためのものだが、アクセスカウンタとしても使えるらしい。というわけで、インストールしてみた。

※ コード部分の PLAIN TEXT をクリックするとテキストで表示されます。見やすい方で見てください。

1. ファイルを DL 、解凍、アップする

Counterize II - English から DL ページに跳んで、「Download Plugin」 をクリックすることで DL できる。
解凍後、 wordpress/wp-content/plugins/ にディレクトリごとアップロードする。
管理画面から編集できるように、 counterize.php のパーミッションを 666 (なるべく最小権限) にしておく。

2. Counterize II を日本語化する

Counterize II 日本語版のページより、 counterize-ii 2.10-ja_UTF を DL する。
解凍したファイルを Counterize II のフォルダに上書き。

3. MySQL のテーブルを作成する

CODE:
  1. # mysql -u root -p
  2. mysql> use wordpress; ← WordPress で使っている DB 名
  3. mysql> create table wp_Counterize
  4. (
  5. id integer not null auto_increment,
  6. IP varchar(16) not null default 'unknown',
  7. `timestamp` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL ,
  8. url varchar(255) not null default 'unknown',
  9. referer varchar(255) not null default 'unknown',
  10. useragent text,
  11. primary key(id)
  12. ); ← ここまでで 1 行。なお、 wp_ は WordPress インストール時に設定した接頭語。
  13. mysql> quit;

なお、テーブルを作成する作業は、 Counterize プラグインを有効にしたときに、自動でやってくれるかもしれない。以下のテーブルが作成されていたし。

  • wp_Counterize
  • wp_Counterize_Keywords
  • wp_Counterize_Pages
  • wp_Counterize_Referers
  • wp_Counterize_UserAgents

4. プラグインの有効化

管理画面にログインする。
[プラグイン] - [プラグイン] で、 「Counterize II」を有効化する。

以上で Counterize II が有効になり、アクセス数の統計が取れるようになった。

以降、 WordPress にアクセスカウンタを表示させるための設定。

5. プラグインに新しい関数を追加

[プラグイン] メニューの「Counterize II」の編集をクリック。以下のコードを付け加える。

PHP:
  1. function counterize_getPageHits($uri) {
  2.  
  3.  $a = parse_url($uri);
  4.  parse_str($a['query']); # Check
  5.  if(ereg("[0-9]+$", $p)) {
  6.   $num_p = $p;
  7.  
  8.   #以下、間違っていました。(2008.03.21 修正)
  9.   #$sql = "SELECT count(1) FROM " . counterize_logTable() . " WHERE pageID = '" . $num_p . "'";
  10.     $sql = "SELECT count FROM wp_Counterize_Pages WHERE url = '" . $uri . "'";
  11.  
  12.   $wpdb =&amp; $GLOBALS['wpdb'];
  13.   $result = $wpdb-&gt;get_var($sql) . " Access";
  14.  } else {
  15.   $result = "";
  16.  }
  17.  return $result;
  18. }

2008.03.21 追記

wp_Counterize_Pages というテーブルに訪問者数が記録されていました。

SQL:
  1. mysql> SELECT * FROM wp_Counterize_Pages WHERE url = "/bloody-mary/wordpress/?p=17";
  2. +--------+------------------------------+-------+--------+
  3. | pageID | url                          | count | postID |
  4. +--------+------------------------------+-------+--------+
  5. |     26 | /bloody-mary/wordpress/?p=17 |    62 |     17 |
  6. +--------+------------------------------+-------+--------+
  7. 1 row IN SET (0.00 sec)

6. スタイルシートの追加

[表示] - [テーマエディタ] - [スタイルシート]

CSS:
  1. #counterize_header {
  2.     font-weight        : bold;
  3.     margin             : 0 auto 0 10px;
  4. }

7. テーマの変更

[表示] - [テーマエディタ] - [インデックス] で、以下のコードを探す。

PHP:
  1. <div class="meta">
  2.     <?php _e("Filed under:"); ?> <?php the_category(',') ?> &#8212; <?php the_author() ?> @ <?php the_time() ?> <?php edit_post_link(__('Edit This')); ?>
  3.  
  4.       # 以下のコードを追加する。
  5.       <spanid="counterize_header"><?php echo counterize_getPageHits($_SERVER['REQUEST_URI']); ?></span>
  6.   </div>

カウンタの表示

記事毎のカウンタ表示

ホントにこれでいいのだろうか・・・

Counter : Access
ログイン