Category Archives: 技術情報

Ubuntu 12.04 で hosts ファイルを編集する方法

サーバ移行時に DNS 切り替え前に新サーバでの動作確認を行うとき、手軽なのは自分の PC の hosts ファイルにIPアドレスとドメインを関連付けて記述することらしい。
http://ja.wikipedia.org/wiki/Hosts
http://www.gigaan.jp/support/web/hosts_rewrite.html

で、Ubuntu の場合 hosts ファイルは /etc/hosts にあるらしいのだが、自分 Ubuntu は使い始めてまだ 1週間なので、何をどうすればいいのやらw。そもそもファイルを見るときに起動するホームフォルダからは /etc なんて見れやしない・・・はて?

で、色々検索すると以下に記述があった。
https://forums.ubuntulinux.jp/viewtopic.php?id=5173

「端末」から $ sudo gedit /etc/hosts と入力すると、パスワードを聞かれた後に標準のテキストエディタ gedit が起動され、中身を編集できた。

記述方法は hosts ファイルの最下行辺りに xxx.xxx.xxx.xxx www.mydomain.com と追加すれば良い。

注意することは、DNS 切り替え後に元に戻すこと。

ツイートツイート

FTP で一括転送した画像を WordPress のメディアライブラリに認識させるプラグイン

訳あって Joomla! 1.5 から WordPress 3.5 へ移行しなければならなくなった。

WordPress のプラグインで Joomla からインポートしてくれるプラグインがあれば簡単なのだろう、きっと。探してみると Joomla 1.5 Importer などが見つかる。そう、ちゃんとした手順でエクスポートされたデータされあればそれらを使えば一発だ。
でもそうはいかない。だって Joomla の方はサーバのバックアップと MySQL のテーブルダンプしかないのだから。完全に人海戦術で移行するパターン。

移行すると言ってもそれぞれのデータベースに違いがあるので、記事データなどはコピペして貼り付け、画像データは 1 個 1 個アップロードしては記事に貼り付けなければいけないという面倒さ。記事は致し方ないとして、画像くらいは FTP で転送してから記事に貼り付けられないかと思ったわけです。

でもまぁ転送するにしたって、WordPress 形式のディレクトリ構成 /uploads/yyyy/mm にしたほうがいいので、転送前に画像を日付ごとのディレクトリに振り分ける作業を延々行って、さぁこれで FTP 転送すりゃあ OK だ! と思った。のだが、転送後、メディアライブラリにはなにひとつ表示されなかったorz。

色々調べると、通常 WordPress のアップロード機能でアップロードすると、画像とデータベースを紐つける作業を行っているようで、そうしないとメディアライブラリに表示されないらしい。あかんかぁ・・・

でも、それくらいはやってくれるプラグインありそうだなと思って探すと・・・ありました。wordpress flash uploader というプラグイン。
そこで狂喜乱舞するかと思えばさにあらず。そのプラグインでメディアライブラリに認識されるようになっても、サムネイルまでは作ってくれないということらしい。

でも待てよ、そういやサムネイルを再作成してくれるプラグインもどっかで見た記憶あり。
記憶をたどって探してみたら・・・あった。AJAX Thumbnail Rebuild というプラグイン。

と、ここまでたどり着いたものの自分では一切試していませんw ごめんなさい。
そう、完全に「誰か奇特な人がやって試してくれないかなぁ」状態なのです。そーいうことで、あとはよろしく!

ツイートツイート

Ubuntu 12.04 で FileZilla がフリーズしたときの終了方法

Windows7 が逝ってしまわれたので、やむなく Ubuntu 12.04 インストールして不自由に仕事やってます。

で、Ubuntu で使える FTP クライアントソフトって何だろと探したら、やっぱり FileZilla でした。
でも、 FileZilla 時々フリーズしてくれるんですよね・・・なんでだろ

そんなときはこうしろと、以下のサイトが教えてくれた。
http://dbweb.0258.net/wiki.cgi?page=Ubuntu12.04%A5%E1%A5%E2#p7

まず 「Dash ホーム」から「端末」を起動。探しにくいときは上部にある検索ボックス欄に「端末」と打って調べましょう。
見つかったら起動して、そこから「killall filezilla」と入力すると終了できます。

ツイートツイート

WordPress に PDF & EPUB 化プラグイン PriPre 入れたら・・・

WordPress に PDF & EPUB 化プラグインの PriPre 入れた。

http://wordpress.org/extend/plugins/pripre/

入れたものの使い方いまいちわからず・・・

ふとよく見ると、TinyMCE エディタ部分が真っ白。文字を入力しても表示されない・・・
と思ったら、デベロッパーツールで要素を見るとエディタ部分の CSS が color:white; にされている。
ようするにテキスト色が白色にされたため、文字を入力しても目に見えないようだ。

CSS 自体は元々 TinyMCE に付いてきてたもの。
でも、セレクタの条件が合わないのかこの部分は適用されていなかったようだけど、PriPre 有効化とともにこの部分が有効にされたようで。

即、PriPre 削除しました。

ツイートツイート

RSSフィードを取得して自動投稿する WordPress プラグイン FeedWordPress

お客さんから、Excite ブログの投稿を WordPress のブログにも自動投稿できないかと質問されたけど、そんなんできるわけねーよ!と心のなかで思いつつ探してみたら・・・あった!(笑)

RSSフィードを取得して入力した記事のように自動投稿する 「FeedWordPress

見ての通り、RSSフィードを取得して WordPress の方で投稿したふうに見せるものだから、利用方法は限られている。でも、RSSフィードは Excite ブログに限らずどのブログサービスでも出力してるから、そのフィードをもとに WordPress の方にも同じ記事が投稿できるわけだ。ただ、ユーザが言ってた「同時に投稿したいものがあるときだけ」という選択はできない。RSSフィードがある記事は全て同時投稿される。

一つ懸念なのが、RSSフィードが取得できれば赤の他人のブログ記事をあたかも自分の記事のように投稿できてしまう点。この辺、正真正銘自分の記事でも Google のガイドラインに違反して逆にペナルティー課せられそうだけど、まぁ、やってみる。

 インストールの方法は 「wordpress 自動投稿 FeedWordPress」でググる と色々見つかる。
詳しそうなのは ここ あたりを参考に。 

 インストールは省略して、設定方法から。

 

と、ひとまずここまで。

ツイートツイート

Chrome にマウスジェスチャーを導入してみた

便利でも時々邪魔になる拡張機能

Chrome には便利な拡張機能が多くて(でもよく動かなくなったりしますがw)日頃からたいへん助かっているけど、時々じゃまになる場合もありますよね。

SNS をやり始めてから必須になったのが、ページの一番上や一番下にスクロールしてくれるやつ。ぼくの場合、下の画面の右端にあるのがそうで、 Scroll To Top Button っていうのを使ってます。

結構便利なんですけど、スクリーンショットを取るとこのボタンまで写ってしまって面倒な事が度々あったので、これをなくす代わりにマウスジェスチャーの拡張機能を入れてみようと思った訳です。

そう、ここからが本題。

 マウスジェスチャーとはマウスを上下左右に動かしてそのパターンによってそれぞれ別々のアクションを実行させる機能

 

どんなマウスジェスチャー用の拡張機能があるのか調べる

で、まずは Chrome にどんなマウスジェスチャーの拡張機能があるか調べた所、以下のようなものがありました。

  • Smooth Gesture
  • Gestures for Chrome
  • Chrome Gestures など

Smooth Gesture っていうのが評価が高い感じでしたが、Chrome ウェブストアから探すものの今は登録されていない様子。
参考サイトによると、あろうことかスパイウェアに認定されちゃってストアから消されちゃったらしいとのこと。うーむ、のっけから波乱。

しかし、 次に記事も多い Gestures for Chrome が評価も高そうなのでチョイス。

探すには Chrome ウェブストアに行き、「Gestures for Chrome」 と検索しましょう。日本語で「マウスジェスチャー」と入力しても見つかるはず。

で、見つかったものの同じ名称のやつが2つあります。同じ物のようですが、詳細な説明文を見ると片方は中国語になってる・・・。今は尖閣諸島問題で中国は大荒れですし、中国語だとどうしても遠慮しちゃいますよね。スパイウェアというキーワードも妙にリンクしちゃったりしてw。というわけでもう一つの方をインストール!

 

 

インストールが完了したら拡張機能を開き、「オプション」リンクをクリックすると、Gestures for Chrome の設定画面が現れます。

 

 

上部にタブがいくつかありますが、「Basics」 を選ぶと標準的な設定がここで行えます。幸いなことに日本語で表示されていますね。ここは特にデフォルトのままで構わないはず。

下の方に「スムーススクロールを使用する」というチェックボックスがありますが、ちょい上の「マウスホイールを使用する」がチェックされていないとチェックできません。つまり、マウスホイール用の機能だということ。 私個人的に興味があったのでやってみましたけどそんなに違いはありませんでした(ガクリ)。

 

次に「Actions」 タブをクリックすると、既に登録されているジェスチャーの一覧が表示されますので、ここから既存のジェスチャーを確認したり、新たなジェスチャーを登録することができます。

まずは、デフォルトのジェスチャーをここで確認して、実際にどうなるかやってみましょう。で、気に入らなければ自分の好きなように変えればいいのではないでしょうか。 

ちなみに、最初に出てくる「Flip Back」や「Flip Forward」って何だろ?ですが、以下のことらしいです。ふむふむ。

  • Flip Back:マウスの右ボタンを押しながら左ボタンを押す
  • Flip Forward:マウスの左ボタンを押しながら右ボタンを押す

でも、マウスジェスチャーにも既に「→ 進む」「← 戻る」がすでに登録されているのであまり使うことは無さそう。 試してみてもちょっと反応悪そうな感じでした。

さてさて、では実際にジェスチャーをやってみましょう。
やり方は、ブラウザのどこでもいいので、マウスの右ボタンをドラッグ(押したまま移動)しながら上下左右に動かし、最後に右ボタンをリリース(離す)します。その際、マウスの軌跡も表示されるので便利です。

登録されているジェスチャーの中で単純な「← 戻る」「→ 進む」などいいかも。つまり、前のページに戻りたいなら、右ボタンをドラッグ(押したまま移動)しながら今ある場所から左の方へ動かしてリリースします。やってみると・・・か、快適すぎるw

上図は Google ニュースで試した画面ですが、右の赤で囲った部分が右ボタンをドラッグ(押したまま移動)しながら描いたジェスチャーの軌跡、そして画面中央(左の赤い囲い)はそのジェスチャーを感知してどのアクションが選ばれたかを表しています。

ただ、デフォルトで設定されているジェスチャーはあまり多くないので、例えば需要が多そうな「ページの一番上、一番下にスクロール」を新たに登録したり、逆にあまり使いそうもない「右端のタブを選択」「左端のタブを選択」などは削除して構わないのではないでしょうか。

 

新たなジェスチャーの登録

新たなジェスチャーも登録してみましょう。

ここでは、需要が多そうな「ページの一番上にスクロール」を新たに登録してみようと思います。
Twitter や Facebook など SNS やってる人はタイムラインやストリームがどうしても長くなりがち。そんな時いっぺんにページの一番上や一番下にスクロールさせたくなることが多いのではないでしょうか。そんな時に威力を発揮します。

まず、「add new gesture」ボタンをクリックして、新たなジェスチャーを登録開始します。
すると以下のように黒っぽい画面になりますので、ここでマウスの右ボタンをドラッグしながらジェスチャーを記録させます。

 

「ページの一番上にスクロール」だとどんなジェスチャーがいいでしょう。私は「→↑」にしました。
ただ、そのジェスチャーが既に他のアクションで登録されている可能性もありますので、事前に調べておくのもいいでしょう。
幸いにも「→↑」は無登録でしたので、右ボタンをドラッグしながら以下のように描いてみます。

右ボタンをリリースして意図通り「→↑」と表示されればOKです。

正常に感知したので「ok」をクリックします。もし、違うジェスチャーになっていた場合は「cancel」をクリックしてやり直します。
「ok」をクリックすると以下の画面になります。 

登録されたばかりなので「アクションなし」となっていますが、そこをクリックするとドロップダウンリストが表示され再設定することができますので、「一番上にスクロール」を選択します。

 これで、「→↑」が「ページの一番上にスクロール」のジェスチャーとして登録されたはずです。実際に試してみてください。

ただし、サイトやページによっては、ちゃんとジェスチャーを認識して登録されているアクションが起動されたにもかかわらず、その通りのアクションをしないことがあります。

SNS で試したところ、Facebook は比較的広い範囲でマウスジェスチャーが効きますが、Twitter は場所が限られるようです。下図のように、縦長で狭い「タイムライン上」でなら毎回効きますが、その他の空いてるスペースなどでは効きませんのでご注意。 

残念なことに、私のメイン SNS の Google+ ではスクロール操作は全面的に効きませんでした・・・orz。

 

 さて、「ページの一番上にスクロール」があるなら、「ページの一番下にスクロール」も欲しいはず。早速、「add new gesture」ボタンをクリックして、「→↑」と似たようなジェスチャー「→↓」で登録してみましょう。すると・・・

 

気づきましたか?
右ボタンをリリース(離す)と消えてしまいますが、さっきは何も出ていなかった部分に文字が表示されているのを。
そう、既に登録済みのジェスチャーに関しては、どんなアクションが割り当てられているかが表示されるのです。だから、他のアクションと被らないように事前に調べていなくても大丈夫。ここでわかります。

さて、アクションが被ってるのがわかりましたけど、使いそうもないアクションだなと思ったら構わず「ok」して登録してしまいましょう。
すると、アクションを登録する画面になりますので、そのアクションの代わりに「ページの一番下にスクロール」を選び直します。 

 

ジェスチャーを削除したらリロードを忘れずに 

不要なジェスチャーやアクションは「Del」ボタンで削除できます。

ただ、注意して欲しいのは、「Del」ボタンをクリックしただけでは半透明になるものの画面から消えずまだ有効な状態だということ。ちゃんと画面上からも消すには、リロードが必要です。

はい、リロード・・・って、F5キー押すならまだしも、思わずブラウザのリロードボタンを押してしまった人!何のためにマウスジェスチャーを導入したの?。リロードするジェスチャーも登録されてるでしょ?w

下の画面は「右端のタブを選択」というジェスチャーを「Del」したところ。
「Undo」は「Del」を取り消したい時、つまり元に戻したい時はこれをクリック。
このまま「Del」したいので、リロードのジェスチャー「↑↓」を実行。 

すると、リロードされて画面上から「Del」したジェスチャーが消えているはずです。これをしないまま新たなジェスチャーを登録しようとしても、うまくいかない時がありますのでご注意です。

はい、設定はここまで。いろいろ試して自分好みのジェスチャーにカスタマイズしましょう。

 

ついでに滑らかなスクロールも試す

マウスホイールのスムーススクロールは残念でしたけど、Chrome には「滑らかなスクロール」という機能が有効にできるとあったのでついでにやってみることに。

有効にするには、URL入力欄から「about:flags」と入力し、表示された「試験運用機能」の中から「滑らかなスクロール」を探して「有効」にするだけ。
機能が多いので、ちょっと探しにくい時はF3キーを押して検索欄に「スクロール」と入力してやると、2番目くらいに見つかります。 

 「有効にする」をクリックすると、滑らかなスクロールが出来るようになる・・・はずだったのですが、どこが滑らかやねん!(こういう時関西弁は便利w)
全然変わりないのですが・・・ 汗;

 

 

ツイートツイート

どのアフィリエイトがいいか調べてみた

果たして儲かるのか?

アフィリエイト・プログラムを導入しようと思っているのだけど、「果たして儲かるのか、儲かるにはどうしたらいいのか」を知る手がかりをスライドだけど見つけた。

アフィリエイト・プログラムに関する意識調査2012

 

 

アフィリエイトで得る収入は?

上記資料によると、ひと月のアフィリエイトによる収入は

  • 0円 : 20%
  • ~1,000 円 : 32%
  • 1,000 円~5,000 円 : 17%
  • 5,000円~1万円 : 6%
  • (中略)
  • 50 万円~100 万円 : 2%
  • 100 万円以上 : 3%

ということなので、75%は月1万円以下の収入しかないということになる。うーん厳しい。
そんな状況なのに、50万円以上稼いでいる人が5%いるらしい。
この5%については、「5%もいる」と思うか、「5%しかいない」と思うかだが、大体こんなもんだろうと思う。中にはサバを呼んで多めに申告してるのもいるかもしれない。だって、「100万円稼いだ」と豪語するアフィリエイターが多い事多い事w 

 

どのアフィリエイト(ASP)がいいのか?

また、操作感がよいなどアフィリエイターに支持されているのはどの ASP なのかは以下の通り。

  1. エーハチネット(株式会社ファンコミュニケーションズ)
  2. リンクシェア(リンクシェア・ジャパン株式会社)
  3. アクセストレード(株式会社インタースペース)
  4. 楽天アフィリエイト (楽天株式会社)
  5. Amazonアソシエイト(アマゾン ジャパン株式会社)
  6. バリューコマース (バリューコマース株式会社)
  7. Affiliate-B(株式会社フォーイット)
  8. トラフィックゲート(リンクシェア・ジャパン株式会社)
  9. ジャネット(株式会社アドウェイズ)
  10. 電脳卸(株式会社ウェブシャーク)
  11. ADVack(株式会社サイトスコープ)
  12. xmax(株式会社セプテーニ・クロスゲート)

 

ツイートツイート

Adobe、ソースコード用ウェブフォント “Source Code Pro” をオープンソースで公開

元記事 : [速報] ソースコードを表示するためのフォント「Source Code Pro」をアドビがオープンソースで無料公開

で、早速 WordPress に組み込みたいなと。

 

プラグインを使う方法

で、Google が用意しているウェブフォントが手軽にWPに組み込めるという「WP Google Fonts」という便利なプラグインがあるらしい。
ということで先のそのプラグインを組み込んてみたものの・・・使用するフォントを一覧から選ぶ方式らしくて、どうもその一覧に “Source Code Pro” が載ってない。あらら。

これはプラグインの新バージョンを待たねばならんようですね。

その上、たとえバージョンアップされて選択できるようになっても、問題となる箇所を発見!
このプラグイン、あろうことかプログラム中で body タグの font-family を上書きしちゃってるのですよ。
だから、CSS で再定義しようとしても全て無効になるという・・・ 

ぼくの場合、 ヒラギノ角ゴとかメイリオなんかを優先的に指定してるんだけど全て無効化されてしまう訳ですね。これはまずいでしょ、プラグインの作者さん。

 

直接記述する方法

別の方法探してみるか・・・と思ったけど、プラグインなんかを使わずに直接記述することも可能だからやってみることに。

まず、header.php の head タグの間に以下を挿入しないといけない。

 

これは ・・・ <書きかけ途中>

ツイートツイート

また間違えた・・・ Javascript のグローバル変数

何度も何度も間違えるので書いておく。

変数を最初に使う時(宣言時)に

関数の外で var を使っても省略しても ・・・グローバル変数 
関数内で var を使う ・・・ローカル変数
関数内で var を省略 ・・・グローバル変数

var aaa = 10; /* グローバル変数 */ 
bbb = 20; /* グローバル変数 */
function xxx() {
  var aaa = 30; /* ローカル変数 */ 
  bbb += aaa; /* bbb:グローバル変数、aaa:ローカル変数 */
}
document.writeln(aaa); /* 結果 10 */
document.writeln(bbb); /* 結果 50 */

 だからって、「グローバル変数には var を付けない」という覚え方はしちゃダメ!

  • 重複しない変数名にすること。
  • 変数を最初に使う宣言時には必ず var を付け、再利用時に var を外して使えばよい。

参考サイト:http://js.tank.jp/javascript/post.html

 

 

ツイートツイート

CakePHP 1.3 で認証付きのトップページを作成する

CakePHP 1.3 で認証付きのトップページを作る方法。

静的なページなら、コントローラやビューは不要で、/webroot に index.html として作成すれば大丈夫だが、最初にユーザ認証させたい場合は、コントローラとビューが必要となる。ただし、モデルは不要。

で、コントローラとビューの名前だが /app/config/routes.php には 

Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));

と記述しているので、そのまま使うならば

コントローラ:pages_controller.php 
ビュー:display.ctp

を作成する必要がある。

/controller/pages_controller.php

class PagesController extends AppController {

	public $name = 'Pages';

	public $components = array('Auth');

	// モデルなし
	var $uses = null;

	// 事前処理(共通)
	function beforeFilter() {

		$this->Auth->allow('map');	// 認証を除外するアクション
		$this->Auth->authError = '管理者権限でログインする必要があります。';
		$this->set('username', $this->Auth->user('username'));	// ログイン名取得
	}

	// 認証された時の追加処理
	function isAuthorized() {
		$this->Session->setFlash('ログインしています(ユーザ名:'.$this->Auth->user('username').')', true);	// setFlash で認証メッセージにユーザ名を設定
		return true;
	}

	public function display() {
	}

}

 

/view/pages/display.ctp

 

ツイートツイート