2011年2月28日月曜日

Wordpressのカスタマイズ

アクシスおおくまです。

このところ、新たにWordpressのカスタマイズ案件が始まっています。
なかなか慣れないうちは時間がかかってしまいますね。
ここを乗り越えればいろいろ楽しい時間になると思って
とにかくがんばってやっています。

WordpressでSNSができるくらいモノにできれば文句なしですね。
まぁそのときはOpenPNE使いますが・・・

2011年2月27日日曜日

DreamweaverにCakePHPの「ctp」を登録する

アクシスおおくまです。

CakePHPのctpファイルをeclipse上で編集していましたが
コーディング作業はDreamweaverで統一したかったので
Dreamweaverでも開けるようにphpファイルとして登録しました。

まずは拡張子ctpをExtensions.txtに登録します。
ファイルは

/Users/ユーザ名/Library/Application Support/Adobe/Dreamweaver CS5/ja_JP/Configuration

に保存されているのでこれを開きPHP関連の行にctpを追加します。

こんな感じの行があるので
PHP,PHP3,PHP4,PHP5,TPL,PHP-DIST,PHTML:PHP Files

こうします。
PHP,PHP3,PHP4,PHP5,TPL,PHP-DIST,PHTML,CTP:PHP Files


次はMMDocumentTypes.xmlですがこのファイルは

/Applications/Adobe Dreamweaver CS5/Configuration/DocumentTypes

にあります。これを開いて

こんな感じの行があるので、
<documenttype id="PHP_MySQL" servermodel="PHP MySQL" internaltype="Dynamic" winfileextension="php,php3,php4,php5,phtml" macfileextension="php,php3,php4,php5,phtml" file="Default.php" writebyteordermark="false" mimetype="text/html">
  <TITLE>
    <MMString:loadString id="mmdocumenttypes_14" />
  </TITLE>
  <description>
    <MMString:loadString id="mmdocumenttypes_15" />
  </description>
  <dtdcontext>html</dtdcontext>
</documenttype>

1行目にctpを追加すれば完了です。

2011年2月26日土曜日

Macでの強制終了

アクシスおおくまです。

コーディングのために画像の切り出しなどを
進めていたのだけど、Command+Hでアプリケーションを隠したら
隠れたっきりで元に戻らなくなってしまった・・・

全てを表示をしたり、いろいろやってみたけど
どうにもならず仕方なく強制終了をするハメに・・・

作業の途中だったけど
コマメに保存しておいて助かったのは不幸中の幸い。

Windowsでは強制終了するには「Ctrl+Alt+Del」が
「Ctrl+Shift+Esc」でタスクマネージャを出すけど
Macでは「Command+Option+Esc」を押すか
ユーティリティの「アクティビティモニタ」で。

2011年2月25日金曜日

CakePHP1.3 AuthコンポーネントのloginRedirect

アクシスおおくまです。

CakePHPのAuthコンポーネントで、
ログイン後に指定したページを表示させるには

$this->Auth->loginRedirect = '表示させたいページ'


としたのだけど、セッションタイムアウトなどで
自動的にログインページに遷移してしまった場合には
どうも元のページに戻ろうとしてしまっていた。
(つねにログイン後のページは固定したかった。)

あまり時間が取れなかったので
さっとAuthコンポーネントのソースを開いてみた。
で、ログイン用のコントローラのbeforeFilter()で

$login_redirect = '表示させたいページ';
$this->Auth->loginRedirect = $login_redirect;

$auth_redirect = $this->Session->read('Auth.redirect'); 
if (!empty($auth_redirect) && $auth_redirect != $login_redirect)
    $this->Session->write('Auth.redirect', $login_redirect);


こうしてみるとうまくいった。

2011年2月24日木曜日

Google Analyticsのフィルタで自分を除外する

アクシスおおくまです。

Google Analyticsでアクセスログを取得しているときに
関係者のアクセスを除外した場合の方法について、
IPアドレスの指定と、Cookieによる指定がある。

お客様には固定IPを取得されていないというのが
普通なので、Cookieでの方法を取ることになります。

Google Analytics内にフィルタマネージャというものがあり、
その中のヘルプにCookieの登録方法も書かれています。が…
公式ヘルプ内の方法そのままではJavaScriptエラーとなってしまいます。


<body onLoad="javascript: pageTracker._setVar('test_value');">



こうしなさい、とヘルプにありますが

現在のGoogle Analytics 非同期トラッキング コードのバージョンには
pageTrackerは存在せず、

「pagetracker is not defined.」

とJavaScriptエラーが出てCookieが登録されない状態となります。
この場合には


<body onLoad="javascript: _gaq.push(['_setVar', 'test_value']);">




このようにすればOKです。もちろん、Cookie登録用ページには
トラッキングコード自体も入れておく必要がありますので忘れずに。

2011年2月23日水曜日

Macのキーボードショートカット

アクシスおおくまです。

コード入力時のキーボードショートカット、
というかWindowsの「Home」「End」キーと同じ操作を
Macでしようとしてうまくいかないので調べてみました。

Windowsでは「Home」で行頭に「End」で行末に移動します。
使用中のMacにはそのどちらのキーもないので調べてみると
デフォルトの設定がアプリケーションによって違いがあるようです。
例えば、

行頭に移動する:
・Dreamweaver  fn+←
・mi command+←
・eclipse command+←
・このブログ command+← または control+a

行末に移動する

 ・Dreamweaver  fn+→
 ・mi command+→
 ・eclipse command+→
 ・このブログ command+→ または control+e

ファイルの先頭に移動する:
 ・Dreamweaver  command+fn+←
 ・mi command+↑
 ・eclipse command+fn+← または command+↑
 ・このブログ command+↑

ファイルの末尾に移動する:
 ・Dreamweaver  command+fn+→
 ・mi command+↓
 ・eclipse command+fn+→ または command+↓
 ・このブログ command+↓


うーん、どうもDreamweaverだけ他と少し違うようですね。
ちなみに、Dreamweaverで「command+↑」をやると「Page Up」になります。

ショートカットのカスタマイズしなければ…

2011年2月22日火曜日

Macのウィンドウにある+(プラス)ボタン

アクシスおおくまです。


最近、Macを本格的にさわるようになりました。
WindowsとMacとの違いに戸惑うことがまだまだ多くあります。

昔から気になっていたのが、
Macのウィンドウにある+(プラス)ボタン


Windowsを普段使っているのでウィンドウを最大化するイメージがあるけど
プラスボタンを何度押しても最大化になってくれない。

少し調べてみると、どうやらこれは「最適化」ボタンとのこと。
最適な大きさに変わるボタンのようだ。

最大化の動作をするように設定できるソフトもあるようですが
そのうち慣れると思って使い続けることにしました。

2011年2月21日月曜日

a要素の疑似クラスを書く順序

アクシスおおくまです。

aタグで使用する疑似クラスには
記述するには順序が関係するので注意が必要です。

例えば

a:link { #333; }
a:hover { #999; }
a:active { #CCC; }
a:visited { #333; }

のように指定したとします。
すると、:visited のリンクに :hover が効かないという状況になります。
これは、最後に指定した :visited が影響するためです。

:visited のリンクでも :hover を効かせたいなら

a:link { #333; }
a:visited { #333; }
a:hover { #999; }
a:active { #CCC; }

この順番で記述をすればOKです。

2011年2月20日日曜日

PCの故障

アクシスおおくまです。

Windows PCの液晶が壊れたようです。
作業中に突然ふっと真っ暗になりました。
始めはHDDの故障かと思いましたが
キーボードを操作するとHDDのアクセスランプが点滅するし
よーく目を凝らしてみると、うっすらと
直前まで作業していたウィンドウが見える…

どうやら液晶のバックライト?が消えている様子。
作業は不可能なレベルで真っ暗です。

普段データをバックアップしているので
最新のデータをMacにコピーして問題なしなのですが
Macにコピーする作業時間がもったいない…

RAID付きのNASでも購入して
障害児にもすぐに復帰できる環境は必要ですね。

2011年2月19日土曜日

Eclipseとテキストエディタ

アクシスおおくまです。

あるお客様のサイトをメンテナンスしていて
普段はEclipseでコードを編集しているのだけど
どうしてもEclipseで保存できないファイルがある。

保存しようとすると、
設定してある文字コードにマッピングできないと…

問題を特定しようとテキストエディタで開き
保存してみるとあっさり保存完了。

うーん…どっちがおかしいのか、
じっくり調べてみる必要ありです。

2011年2月18日金曜日

SEO対策の効果

アクシスおおくまです。

先月末ごろに行なったSEO対策の成果がやっと出てきました。
やはり、少なくとも1ヶ月程度はかかりますね。

成果が、と言っても200位から150位へ上昇した程度。
上位表示はまだまだですが、確実にアップしている点では合格です。
今月の変更も確実に行なって、来月の順位UPにつなげたいですね。

2011年2月17日木曜日

日付、時刻の入力に便利な補助ツール

アクシスおおくまです。

問い合わせや予約などを
ホームページ上からフォームを使用して行なうケースが多いけど
ユーザからも制作からも
特に、日付・時刻の入力は結構面倒な部類です。

そこで、jQueryのプラグインで便利な入力補助ツールを紹介します。

・Datepicker

カレンダーから日付を選択するだけで、
関連付けたフォームに日付を入力できるプラグインです。
マウスだけで操作ができ、直感的に操作可能なので負担も軽減できます。

プラグインページはこちら

同じく、マウス操作のみで時刻を入力できるのが

・Timepicker



パッと見、操作方法は分かりにくいけど使い心地は悪くないです。
管理画面なんかではありではないでしょうか。

プラグインページはこちら

DatepickerもTimepickerも、設定を変えれば細かい部分を柔軟に変更できるので
いろいろな場面で活用できそうです。

2011年2月16日水曜日

CakePHP1.3 Emailコンポーネントのカスタマイズ

アクシスおおくまです。

CakePHPを使っての開発案件で
Emailコンポーネントを使用する機会があったのですが
付属のEmailコンポーネントではViewの分離が今一つ。

と言うのも、今使用しているCakePHP1.3.6では
テンプレート、レイアウトをメール本文に使用することはできるけど
問い合わせフォームの返信メールのように
決まった箇所に個別の変数を割り当てることができない。

そこで、こんな感じでメールが送れるようにカスタマイズしてみた。

コントローラで

$this->MyEmail->send(array(
    'name' => $this->data['Inquiry']['name'],
    'ruby' => $this->data['Inquiry']['ruby'],
    'tel' => $this->data['Inquiry']['tel'],
    'mail' => $this->data['Inquiry']['mail'],
    'msg' => $this->data['Inquiry']['msg'],
), 'inquiries_template', 'inquiries_layout');


と書いて、テンプレートで

■ 氏名
  <?php echo $name; ?>

■ フリガナ
  <?php echo $ruby; ?>

■ 電話
  <?php echo $tel; ?>

■ メールアドレス
  <?php echo $mail; ?>

■ 内容

<?php echo $msg; ?>
 


とすれば該当する変数が置き換わるというもの。
これでViewの分離を保てるのでメールテンプレートの編集も
FTPが使える人なら少しやり方を教えるだけで大丈夫。

2011年2月15日火曜日

バージョンナンバーに注意

アクシスおおくまです。

つい先日、CakePHP1.3で開発を進めていた案件で
PostgreSQLのバージョンの影響で
本番サーバでうまく動作しないという現象になりました。

CakePHPは7でもOKというのを事前に調べておいたので
テストサーバではPostgreSQL8だったけども、
あまり時間に余裕もないことからとにかく開発を進め
いざ本番サーバに載せてみると見た事のないエラーが出てくる始末。

Google先生にささっと尋ね、
同じ理由で悩む同士を紹介してもらいました。
ズバリ、解決方法を真似してみましたが
イマイチすきっと解決できません。
調査を進めていくと、同士のPostgreSQLは7.3
こちらの環境では7.2でしたのでそれが原因でした。
マイナーバージョン一つですが侮ってはいけないですね・・・

それはそれですが、やはり事前調査とテスト環境の構築は重要ですね。
限りなく本番環境に近づけての開発を心がけます。

2011年2月14日月曜日

デザイナーさん

アクシスおおくまです。

技術者の私として、
デザイナーさんやアニメーターさんとか
本当にすごい方たちだなと常々思います。

そのスキルと発想を手に入れられれば、
とんなすごい事ができるかと考えてみると、
すごく楽しみになってきます。

普段からデザインや映像にも
注意して目を向けるようにしてみよう。

2011年2月13日日曜日

トラックボール使い

アクシスおおくまです。

私はトラックボール使いです。
ほとんどの方はマウスだと思いますが、
トラックボールは一度使うとやめられないくらい
かなり良いデバイスです。

そもそも使い始めたきっかけは
昔一緒に仕事をしていたある会社の専務に勧められ
その場で借りて使ってみたけど使いづらくてどうしようもなかったのですが、
専務の強烈なアピールに押し切られとりあえず買ってみたってだけでした。

価格は確か4,000円程度、結構な値段だったので
せっかく買ったんだから使わなければ!
と使いつづけていったところ、次第に慣れ、今や離れられない存在に。

トラックボールの利点は

・デスク上であまり場所を取らない
・腕の疲れを感じることなく長時間作業できる

と言ったところ。
本体に埋め込まれたボールを指で転がしてポインタを移動させるので、
普通のマウスのようにデスク上を動かす必要がないのです。
また、ボールを指だけで動かしますので腕が疲れません。
初めのころは指が疲れましたが慣れました。

難点と言えば、

・イラレなど、繊細なポインタ操作が難しい・コンパクトなタイプがないので持ち運びに場所を取る

と言った感じです。
最初の点は慣れで十分カバーできるのですが
持ち運びだけはどうしようもないですね。

コンパクトにできるトラックボールを作れば
トラックボール人口は多少増えるかもしれないですね。

2011年2月12日土曜日

パスワード管理 - その2

アクシスおおくまです。

先日のパスワード管理のエントリーで
Dropboxで共有してWinとMacで同期を取るには
公開鍵なんかで保護できるいいけど、なんて書きました。

今日も作業のためにKeePassXを起動してマスターパスを入力していると
ありました、マスターパス入力欄のすぐ下に「キーファイル」を指定する箇所が・・・
こんなところにあったのね。

さっそくキーファイルを生成して改めてKeePassXを起動。
見事、マスターパス&キーファイル指定でなければ
パスワードファイル(*.kdb)を開けない設定にすることができました。
これでkdbをWindowsとMacで同期しておけば
いつでも最新の状態で作業できるようになりますね!

WindowsにはまだKeePassをインストールしていなかったので
さっそくKeePass 1.18(Classic Edition)をダウンロード、インストールをすませました。
最新のKeePass 2.14(Professional Edition)
パスワードファイルは*.kdbxなのでMacとの同期はできないのでご注意を。


MacからkdbファイルとキーファイルをWindowsにうつし
Windows側のKeePassを起動して・・・うまく開くことができました。
これでパスワード管理が楽になります。

あとは同期の方法だけど、やはりDropboxで同期するには抵抗があります。
自分のパスワードだけならまだしも、お客様の関係のパスワードがメイン。
なにかあってからでは遅いので、やはりkdbファイルはUSBメモリに保存。
キーファイルはWindows、MacのローカルとCDに焼いて保管することにしました。

多少面倒だけども、これで安心して日々暮らせます。

2011年2月11日金曜日

フレームワークで開発を

アクシスおおくまです。

最近、Webアプリ開発をフレームワークでやっていますが、
面倒なことは全てまかせられて、なかなかいいものですね。
フレームワークに慣れることは必要だけども、
慣れればさくさくと進められて良い感じです。

きちんとフレームワークに沿って進めれば
開発コストも下がり、バグの発生も抑えられかなり良いと思います。

開発は主にPHPを使用しており、フレームワークはCakePHP(1.3)を利用中です。
一通り、CakePHPをやって次はsymfonyをと考え中。

symfonyと言えば、
オープンソースのSNSエンジン「OpenPNE」がバージョン3から採用しているので
symfonyを習得してOpenPNEのプラグインなんかを開発する予定です。

2011年2月10日木曜日

説明すること

アクシスおおくまです。

おおくまはIT戦士を目指すプログラマーですが、
お客様との打ち合せの席で
資料を使って説明をすることもあります。

開発するシステムの説明や、
発生した不具合などの状況説明などですが
当然、お客様は技術のことをご存知ない方が大半です。

そういった機会が最近2度あったのですが
根っからの技術者であるおおくまは
ついつい「説明する」という行為自体が目的となってしまい
「理解を得る」という最終目標を見失うという事態に・・・

説明の最中に、お客様の

「???」

な表情をはっきりと認識していても
勢いでずらずらーっと話を進めてしまうのです。

何かを開発するにしてもお客様に説明をするにしても、
最終的にどうしたいのか、着地点をしっかり意識して
日々の行動を起こすことが必要だな、と痛感する今日この頃です。

まだまだIT戦士への道のりは険しい・・・
前進あるのみ!!

2011年2月9日水曜日

パスワード管理

アクシスおおくまです。

最近、お客様の事務所を訪問し事務所内のPCからSNSの設定変更作業をする。
という作業があったのですが・・・

設定変更に必要なID、パスを持参しておらず
危うく訪問の意味が無くなってしまう事態に・・・


ご要望を伺いつつSNSの画面を拝見し状況を把握する。


というのが訪問の目的だと勘違いしてしまい・・・orz
最終的には我が事務所のスタッフに電話連絡、
PCを見てもらい事無きを得ました。


そこで、いつ何時、そのような状況になるとも限らないので
パスワードを安全に持ち歩く方法はないものか?

そんなの、ノートPC持っていけばいいじゃん。
と言われそうですが、それは聞こえないフリをして。

さくっと調べてみると、ありました。 

Windows KeePass Password Safe
Mac KeePassX
iPhone iKeePass


パスワードを*.kdbというファイルで暗号化して保存できるそう。
kdbファイルは、ソフト起動時に入力するパスワードがないと
開く事ができないのでちょっと安心。

Dropboxを利用して各PC間で同期しておく。という人もいるみたいだけど・・・
公開鍵を設定できるならばそれもアリだと思います。
できるかどうかはまだ調べていないのでまた後日。


あとは、iPhoneに同期なんてできれば
お客様訪問時の対応と、PCを持ち歩かないが両立出来て完璧ですね。
iPhone用のiKeePassは日本ではまだのようですので待ち遠しいですね。




2011年2月8日火曜日

ブログスタート!

これは、IT戦士おおくまによる
日々の奮闘を描いたブログである。

IT戦士であるおおくまですが
日々IT戦士としてあり続けようと活動をしております。
ところで・・・IT戦士とは何ぞや??ささっと調べてみると

「それは、ITによる世界平和の実現を目指し、日々戦う戦士達。」
http://d.hatena.ne.jp/keyword/IT%C0%EF%BB%CE

とのこと。素晴らしい。
エコと一緒でまずは身の回りの出来ることから。
ITを通して、地域の活性化に少しでも貢献しよう!!
と常々思うおおくまです。
出来ているかどうかは別として、
目指さなければ進みません。まずは目指すことから始めよう。