拡張子を一括変換

あるフォルダにあるjpegの拡張子が、
「jpg」「JPEG」「jpeg」とバラバラで気持ちが悪かったので、
一括で変更してみた。

仮にJPEGjpegに変更する場合ターミナルから

$cd /画像ファイルがあるフォルダ
$for nm in *.JPEG; do
> mv $nm ${nm%.JPEG}.jpeg;
> done


これで完了

$ls 


で確認してみてください。


んーすっきり。

超簡単wordpressデータ初期化

開発が一通り落ち着いて、
データを一旦初期化したいときありますよね。
でも入れたプラグインとかリソースはそのままにしたい。
そんなときは以下の手順で超簡単にwordpressのデータを初期化できます。


但し、プラグインの各設定がDBで行われている場合、その設定も初期化されることと、プラグインの有効化は全て無効になってしまいますので、その点だけご注意を。なにせDB丸ごと消しちゃうので。くれぐれもバックアップは忘れずに。。。

以下wordpressデータ初期化手順

  1. DB削除
  2. wp-config.phpを削除
  3. 管理画面にアクセス(/wp-admin)
  4. 初期化画面から再設定


以上


プラグインとかリソースはそのままでデータの初期化成功。

超簡単 wordpressプラグイン3分クッキング

この記事は1分で読める内容です。

1分後にはプラグイン簡単に作れる〜!!っとなり、
3分でhelloworldプラグインが作れるようになります。

pluginsディレクトリに作成したいプラグインディレクトリを作成する

インストールディレクトリ/wp-content/plugins/ディレクトリ名

プラグインのファイルを作成する

インストールディレクトリ/wp-content/plugins/ディレクトリ名/プラグイン.php

ファイル名は何でもOKですが、
他のプラグインと競合する可能性があるため、
なるべく唯一なファイル名が望ましいです。
詳しくは本家サイトに書いてあります。
プラグインの作成 - WordPress Codex 日本語版

標準プラグイン情報を書く

プラグイン名.phpの初めの方に以下のコメントを記載した内容が
wordpressの管理画面で表示されるようになります。

/*
Plugin Name: プラグインの名前
Plugin URI: プラグインの説明と更新を示すページの URI
Description: プラグインの短い説明
Version: プラグインのバージョン番号。例: 1.0
Author: プラグイン作者の名前
Author URI: プラグイン作者の URI
*/



wordpress管理画面からプラグインを有効にする

ここまで来たら一旦管理画面を表示して
作成したプラグインを有効にします。

↑有効化をクリックすると
プラグインが有効化され無効リンクに変る


関数を書く

HelloWorldを表示するプラグインの場合
さっき作ったプラグイン名.phpに下記関数を書く

function helloworld() {
     echo "HelloWorld";
}

表示したいテンプレートファイルからプラグイン関数を呼ぶ

<?php helloworld(); ?>

今回は使用するテーマのheader.phpのヘッダーテンプレート呼ぶ直前に書いてみた。

画面を表示してみると画面上部に

シュールw

簡単さ伝わりました?

超シンプル記事ですが、
プラグイン作ったことない人に
wordpressプラグインを作る簡単さが伝わればと。
(自分で作り出すとき簡単に全容が把握できる記事がなかったので)

wordpress3.0で関連記事を表示させるプラグイン「Yet Another Related Posts Plugin」が動作しないので動作させました。



wordpress3.0にプラグイン「Yet Another Related Posts Plugin」をインストールしてみたところ、
エラーが発生して動作しないので改造して動作させました。


まずはインストール。参考サイトはコチラ。

http://sugar-clip.jp/275.html



関連記事を表示させるプラグインは他にも幾つかあるのですが、
7月20日時点ではwordpress3.0での動作が確認できませんでした。
他のプラグインについてはコチラの記事が参考になります。

http://sugar-clip.jp/495.html



インストールするとまず管理画面にDBのwp_postsテーブルのエンジンをMyISAMにしてとメッセージが出るので、
バックアップを取った上でInnoDBからMyISAMに変更します。

他にも色々エラーがでるので順次対応していきましょう。


magic.php

$pagenow

が定義されてない的なことを言われるので、
242行目の行末に

, $pagenow;

を追加。次。


template-functions.php

$d, $gmt

が定義されてない的なことを言われるので9行目あたり

function get_the_score() { // returns the score
     global $post;
     $score = $post->score;
     return apply_filters('get_the_score', $score, $d, $gmt);
}

の$dと$gmtを削除。していいのかわからないけど、引数でもないし、
今のところ普通に動いているのでよしとする。

function get_the_score() { // returns the score
     global $post;
     $score = $post->score;
     //return apply_filters('get_the_score', $score, $d, $gmt);
     return apply_filters('get_the_score', $score);
}


次。


options.php
myisam_overrideが定義されてない的なことを言われるので、
23行目あたり

if ($_POST['myisam_override']) {
     yarpp_set_option('myisam_override',1);
     echo "<div class='updated'>"
     .__("The MyISAM check has been overridden. You may now use the \"consider titles\" and \"consider bodies\" relatedness criteria.",'yarpp')
     ."</div>";
}

if (!empty($_POST['myisam_override'])) {
     yarpp_set_option('myisam_override',1);
     echo "<div class='updated'>"
     .__("The MyISAM check has been overridden. You may now use the \"consider titles\" and \"consider bodies\" relatedness criteria.",'yarpp')
     ."</div>";
}

とかしてみた。


同じく、77、78行目あたり、

foreach (array_keys($yarpp_value_options) as $option) {
   if (is_string($_POST[$option]))
     yarpp_set_option($option,addslashes($_POST[$option]));
}

このループの中でまたもや定義されてない的なエラーがでるので、

foreach (array_keys($yarpp_value_options) as $option) {
   //if (is_string($_POST[$option]))
     if (!empty($_POST[$option]) && is_string($_POST[$option]))
     yarpp_set_option($option,addslashes($_POST[$option]));
}

とかしてみた。


記事のページを見てみると無事表示!!


これで一通りnoticeを含めエラーは出なくなりました。
挙動も今のところおかしいところは無しです。

お疲れ様でした。

抜けがあるかも知れません。上記修正の反映は自己責任でお願いします。

googleがゴイスー

みんな知ってると思うけど、
googleで「W杯」って検索すると試合結果とか
予定する試合を検索結果に表示してくれる。
これが改めてゴイスーって思った。
ユーザビリティ高杉である。


W杯今日の試合は何がやるかなー。
とりあえずググルか。

日本時間に加えて放送予定の局まで教えてくれるのか!!


ゴイスーですよgoogleさん


しかも、
一番下の次の検索画面のロゴが
googleから「gooooooal!」になってるw



ちなみに「ワールドカップ」でも
world cup」でも同じく表示されました。

Adobe presents, Girly Lightning Talk!!!に行ってきた

Adobe presents, Girly Lightning Talk!!! : ATND

web業界で活躍されているGEEK女子の方々がライトニングトークを行うこのイベント

@honbin と一緒に行ったのだがモチベーションが上がった。
女性GEEKが第一線で頑張っている姿をみて、
負けてられねーとも思った。

閑歳 孝子さん

特に共感を持てたのは「閑歳 孝子」さん
http://d.hatena.ne.jp/ramyana/

今まで作ったもので代表的なものは

  • Smillie!

http://smillie.jp/

RoR
携帯電話からアップした写真をその場ですぐスライドショーにして、みんなで楽しめるオンライン共有アルバムサービス

  • ReTweeter!

http://retweeter.unicco.in/

CakePHP
ReTweeter (りついったー) は、Twitter で RT (ReTweet) された発言の読者数を調べるサービス
Twinaviに掲載されている

  • うごくひと2

無料のスマートフォン解析ツール&携帯アクセス解析「うごくひと2」: 商用利用可

「うごくひと2」は、PCサイト向けアクセス解析サービスである「なかのひと」の携帯サイト向けツールのバージョン2
25億PV/月を処理している


どれも魅力的なサービスを展開している閑歳さんは

webサービスの作り方
という内容のライトニングトークだった。

  • イデア
  • インターフェース編
  • プロモーション編

という内容だったが、

イデア編では

  • 自分が使い続ける想像ができるもの

たしかに。自分が使わなきゃ誰が使う。
きっかけはやはり自分だろう。



インターフェース編では

  • ネットに詳しくない人でも使えること
  • 毎日使いたくなること

うっかり自分の親がつかっちゃうくらいのUIにすると。
分かってはいるけどなかなか実践が出来ないんですよね。



プロモーション編の

  • 読んでたニュース系ブログに凸メール

すげぇと思いつつ、やるべきだよなとも思った。
ちなみに今はやはりtwitterとのこと。

装備しなきゃダメだろ

webで評価されている会社やアルファブロガーの方々の共通点は、
プロダクトやサービスを公開している事。

公開する事はなにより大事だと常々思っていたが、
予算的にも時間的にもシガラミ的にもなかなか。。。
今も社内プロジェクト担当していてもうすぐリリースなのだが営業も兼任している。
お客さんも直接案件の話しを持ってきてくれたりととてもありがたい状況だが、
稼働が社内プロジェクトに100%当たることは無い。


がぁ、し か し

机上でこうあるべきみたいなこと言ったって
出来ているサービスがなければ説得力も無い。

何だっていい。企業としてでも個人としてでも何でもいい。
プロダクト、サービス、なんか作ろう。


その為には @celt @violetyk と昨日話したばっかりだが、
ヒマを作ることだろう。


今年の目標(もう3分の1は終わってしまったが・・・)が明確になった。

最後に

Adobe presents, Girly Lightning Talk!!!主催の皆さま
スピーカーの皆さまお疲れさまでした。
ありがとうございました!!