[雑記]ブログテーマ変更、WordPressのウィジェット有効活用

Written by uechoco 12 月 30

ブログのテーマ(デザイン、スキン)を変更しました。というか、これからは好きな時に好きなテーマに変えようと思う。

どうして今まで変えなかったのかというと、テーマを変更するたびに、テーマを直接編集してブログパーツを挿入していたため。でも、これからはWordPressのウィジェット機能を使って、テーマが変わってもブログパーツが勝手に入るようにしました。

それと、リキッドデザイン(海外ではfluid widthなのかな?他にはliquid layoutとも)のWordPressテーマをいろいろ集めてます。個人的にはWordpress Themesが探し易いです。「Fluid Width」などのテーマの属性で絞り込みができ、プレビュー機能もしっかり機能しているからです。

[WordPress]HeadSpace2のmetaタグが出力されない

Written by admin 12 月 29

独自テーマのWordPressにHeadSpace2プラグインを入れてSEO対策を頑張っているのですが、HeadSpace2で出力されるはずのmetaタグがなぜか出力されなくなりました。

HeadSpace2のバグかな?とも思ったのですが、いつもは何もしなくても使えていたので、HeadSpace2は悪くないはず。やっぱり独自テーマを使っているのが原因ですよね。

いろいろ調べていくうちに、wp_head();というWordPressテンプレートタグを見つけました。どうやらこいつを<head>?</head>の間に埋め込まなければいけないらしい。

そんなわけで、wp_head();をテンプレートに埋め込んだら、しっかりHeadSpace2で設定したmetaタグが表れました。おまけにgeneratorやらEditURIやら変なmetaタグやlinkタグも出力されましたが、これは消せないのかな・・・調べます。

[php]phpizeって便利だ。

Written by uechoco 12 月 27

普段はyumでphpなりなんなりのインストールを済ませてしまうから、ソースコードコンパイルのphp環境に新しく拡張入れてくれなんて言われるとあせります。

今回はcurlなんぞを入れてくれと言われました。libcurlはソースコードコンパイルで入れましたが、phpの再コンパイルを憂鬱に感じていたら、phpizeの存在を知りました。

phpizeはphpの拡張モジュールのためのビルドツールで、PECLのインストールの時に使う人もいるようです。phpの再コンパイルをせずに拡張モジュールの読み込みが可能になります。

でもって、同じく初めて知ったのですが、ソースコードコンパイルのphpの展開ディレクトリの中にはext/というディレクトリがあって、その中にいろいろな拡張モジュールが準備されているようです。

参考:あらきだのメモ箱 - Apache 2.0.61 , PHP 5.2.4

ようは、ext/ディレクトリ以下の拡張モジュール(今回はcurl)をphpizeしてcongirueしてmakeしてmake installすればPHPの再コンパイルをせずに拡張モジュールが追加できるのですね

便利な世の中だ。ってか、Linux系の各種コンパイルって未だに謎が多い。勉強が足りませぬね。

走り続けるエンジニア

Written by uechoco 12 月 20

ホノルルマラソン 2008 走ってきました。

記録は4時間55分34秒。総合順位は20061位中、5537位

運動嫌いのITエンジニアでも、走ればそれなりのタイムでゴールできるんです。

最近エンジニア啓発活動は停滞気味ですが、エンジニアとしても、ランナーとしても止まりたくはないですね。

うえちょこ。走り続けるエンジニア。

[Processing]PVectorサンプル(1.0リリース記念)

Written by uechoco 12 月 03

Processing 1.0リリース記念として、いくつか新しい機能のサンプルコードを書いてみました。

まずはPVectorクラス。リファレンスには英語で主な使い方は書いてあるものの、実際のソースコードはありませんでした。

リファレンスに従い、position(位置)、velocitiy(速度)、acceleration(加速度)をPVectorクラスで表した実用的なサンプルを書いてみたので、PVectorクラスの1つの使い方として参考にしてみてください。

Processing:
  1. PFont font;
  2. PVector position, velocity, acceleration;
  3. final int WIDTH = 250, HEIGHT = 250;
  4. final int STATUS_HEIGHT = 50;
  5.  
  6.   // 画面の初期化
  7.   size(WIDTH, HEIGHT + STATUS_HEIGHT);
  8.  
  9.   noStroke();
  10.   colorMode(RGB, 256);
  11.   background(255, 255, 255);
  12.  
  13.   // フォントの初期化
  14.   font = loadFont("ArialNarrow-14.vlw");
  15.   textFont(font);
  16.  
  17.   // 自機の初期化
  18.   position = new PVector(WIDTH / 2, HEIGHT / 2, 0);
  19.   velocity = new PVector(3, 4, 0);
  20.   acceleration = new PVector(0.01, 0.01, 0);
  21. }
  22.  
  23.   // 背景消去
  24.   fill(255, 255, 255, 30);
  25.   rect(0, 0, WIDTH, HEIGHT);
  26.   fill(255, 255, 255);
  27.   rect(0, HEIGHT, WIDTH, STATUS_HEIGHT);
  28.  
  29.   // 自機描画
  30.   fill(255, 0, 0);
  31.   ellipse(position.x, position.y, 10, 10);
  32.  
  33.   // 速度表示
  34.   fill(0, 0, 0);
  35.   text("Position: " + position, 0, height - STATUS_HEIGHT + 14);
  36.   text("Velocity: " + velocity.mag(), 0, height - STATUS_HEIGHT + 14 * 2);
  37.   text("Acceleration: " + acceleration.mag(), 0, height - STATUS_HEIGHT + 14 * 3);
  38.  
  39.   // 場所の更新
  40.   position.add(velocity);
  41.   if (position.x <= 0 || position.x>= WIDTH) {
  42.     velocity.x *= -1;
  43.     acceleration.x *= -1;
  44.     position.x += velocity.x;
  45.   }
  46.   if (position.y <= 0 || position.y>= HEIGHT) {
  47.     velocity.y *= -1;
  48.     acceleration.y *= -1;
  49.     position.y += velocity.y;
  50.   }
  51.   velocity.add(acceleration);
  52. }

実行画面(クリックで拡大)

サンプルコードのダウンロード:PVectorSample.zip