2012年5月31日木曜日

NetbeansでCodeigniterのプラグインを使う

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
前にぐぐっても見つからなくて、実はあったぽいのでメモいしておきます。

以下のメモ参照。

2012年5月30日水曜日

いろんな生放送サイトのライブ視聴者ランキング作ってみた

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
WEB上でライブ放送ができるサイトが増えてきましたね。
Ustream、Justin、にこ生など昔からある規模の大きいサイトはよく知られていますが
最近はいろんなところでライブ放送ができるサービスが増えてきてます。
ということで作ってみました。

ネットキャストランキング
http://webcafe.x0.com/netcast/












後発のサービスは個人で作っておられる方もいて他とは違った雰囲気があります。
Ustream、Justin、にこ生以外にも自分にあった楽しめるライブを探してみてはいかがでしょうか。



●ここからWEB作成に関して
今回、少しずつ勉強してきたPHPフレームワーク、Codeigniterを使って作成しました。
といって、DB関連は使っていないので、MVCではなくVCだけしか使えてません。
それでもルーティングをしてくれるのは楽ですね。
必要な機能もよく使われるPHPのライブラリのファイルをコピーすればそのまま使えるのも
PHP系フレームワークのいいところですね。まだまだ使っていない機能があるのでそこらへんもやっていきたい。

サイトの主な機能を作るにあたって
データ収集のため各サービスのAPIを使ってオブジェクトに直して使ったり
APIがないところはhtmlをパースしてデータを取得したりしてみました。
API自体使うのは初めてなんですが、ドキュメントやらもある程度そろっていて
結構簡単に扱えるものなんですね。

使ったパーサー
・XML
Simplexmlライブラリ
http://php.net/manual/ja/simplexml.examples-basic.php
libraryにコピペして読み込むだけで簡単に使える。

・Json
json_decode($json);
元からあるメソッド

・Html
simplehtmldom
http://simplehtmldom.sourceforge.net/
これもlibraryにコピペして読み込むだけ。

以下のようなAPI集みたいなサイトもあっていろいろ調べてやってみたいですね。
http://wafl.net/


データの取得更新について毎回データ収集処理をして最新の情報を取得して重い処理をしたりするのか悩んだんですが、とりあえずはリアルタイム性は必要ないと思い一定時間過ぎてサイトを回覧したときにデータの収集と更新をするようにしました。
この点でCodeigniterはキャッシュ機能で更新時間を簡単に設定できるので
キャッシュを使って処理を軽くする+データ更新が両方同時にできたのは楽でした。

次はCodeigniterのDB関連を学びつつそれを使ったサイトを作ってみたい。

さくらでCodeigniterトップページの表示が拒否される

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
さくらレンタルサーバーでCodeigniterを配置したときに
hostname/mysite  という普通のトップページを表示したいときに
なぜかサーバーから拒否された。

htaccses関連だと思って、前にファイルのインデックス表示をなくすために
ファイルマネージャーから簡単設定で権限を追加したときに
wwwのところに以下のhtaccsesが作成されていた


DirectoryIndex .ht
AuthUserFile /home/webcafe/www/.htpasswd
AuthType Basic
AuthName "Web access"
Satisfy all
Order deny,allow

サクラの場合ここが悪いようだ。フォルダ直接にアクセスしていると思われてるのかな?
以下のように一番上だけ変えてみた
DirectoryIndex index.php .ht

で hostname/mysite   にアクセスすると拒否されなくなった。
htaccessは自信ないけどたぶんこれでいけてるんだろう。

2012年5月27日日曜日

PHP系かRaillsを学んでいくかまだ迷っている中

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
こういう記事を見つけたんですが
http://toyoshi.hatenablog.com/entry/2012/03/09/143753

本当にRailsのあるあるですね。
特に自分はRailsからWEBサイト作成を始めたのですべてつまずいている感じがあります。
Railsの方向性は本当に独自の路線をたどっている感じで、作るだけなら簡単ですが
ちゃんとしたものを道に沿って作ってやらないといけないと強いられたら本当にたくさん覚えないといけない。とくにプログラミング以外の部分。

Rubyはコードが少なくて見やすいしPHPの{ }がごちゃごちゃすることもなくて
Railsのルーティングやバリデーションもシンプルで、scaffoldも使いやすくて
Gemから簡単インストールでいろんなライブラリも使えて・・・・などなど。
環境さえ整えればメリットしかないんじゃないかというくらい。
でもそれが初心者には敷居が高すぎると思うんですよね。

今はCodeigniterというPHPのフレームワークの勉強中ですが
Railsだと1行で書けるのにーとか、Railsだとこの機能ついてるのにーとか
それらがコード量にでてくるので、生産性はRailsなんでしょうねえ。

例えばDBから読み込んで一覧を表示する場合

・Codeigniter
public function index(){
$data= array();
$query = $this->db->get('article');
if($query){
  $data['records']=$query->result();
}
$this->load->view('article/index',$data);
}

・Rails
def index
@articles = Article.all
end

(あとはRailsさんが勝手にやってくれる)

この差は大きいですよねえ。
実際codeigniterでもRailsぽくモデルをいじってやれば

public function index(){
 $data['record'] = $this->aritcle->all;
$this->load->view('article/index',$data);
}

この辺までいけるとは思うのですが、やっぱりごちゃごちゃしてますよね。
モデルの数が多いほど差がでてくるのは明白でしょうね。
逆に少なければほとんど差はなくなる。

自分が作りたいのはどっちなんだろう。
やっぱまだ小さいスケールのほうなんだと思う。
PHPは修行とおもってコードをたくさん書いてつまずいてたくさん実装して
それから、Railsに戻って環境構築をがっちりしてまた挑戦したいな。

2012年5月26日土曜日

無料にすることで利益を得るFreeの本を読んでみた感想

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
半年以上前に買って、ちびちび読んでこの前やっと読み終えました。
内容的にはネットで今主流の料金体系である基本無料的なビジネスが
有料よりも儲かるというような話の例をいくつも載っていたが
最後のほうはマンネリな感じではった。

ネットのコンテンツのコストは限りなく0になっていくということと
その中でどう付加価値をつけてユーザをひきつけるコンテンツに見せるかということ
などなど、確かにそうであるしそれが難しいし、とそれなりに納得のできる本ではあった。

読み終えてふと思った。
本屋にいって表紙にFREEって書いてあったからレジを素通りしようとしたら
引き止められちゃったよ!FREEって書いてるのに有料なんだってよ。
中身読んだら無料にすることで儲けることができた実例がたくさん紹介されてたよ!
これはほんとお金払ってまで買う価値のある本だったよ。
え、でもその本は有料なんだよね?あれなんかおかしくない?

本当に魅力なのはFREEという言葉の響きでした
っていうアメリカンジョーク的なことが頭に浮かんだ

2012年5月21日月曜日

CodeigniterでCakeライクなlayout

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
といってもCakePHPはやったことないので
自分としてはRailsライクになるのですが、以下のライブラリを使うとできるみたいです。
仕組みを考えれば自分でできそうですが、あったらそのまま使いたいですよね。

layout library
http://codeigniter.com/wiki/layout_library

上を使って、さらに入力フォームと編集フォームをformにまとめて
Railsぽい?感じにしてみました。

layout libraryを試してみたメモ

Codeigniterでさくらレンタルサーバーでのリダイレクト

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

ローカルではリダイレクトがうまくいくのに
さくらレンタルサーバーではうまくいかないことがあったのでメモ。

redirectメソッドがうまくいかないことがありました。
redirect('article/index');→リダイレクトされない

原因として
①リダイレクトの前に何か出力するものがあると駄目らしい。

wellcome_controller
public function hello(){
echo "hello";
redirect('welcome/hoge');
}

public function hoge(){
echo "hoge";
}

にして、 helloにアクセス

エラー 
A PHP Error was encountered
Severity: Warning
Message: Cannot modify header information - headers already sent by (output started at /home/webcafe/www/redirecttest/application/controllers/welcome.php:29)
Filename: helpers/url_helper.php
Line Number: 546


②独自ライブラリをautoloadするときにタグを正しく閉じないと駄目らしい
ライブラリの最後にタグを閉じるところ
}
?>(この辺に空白があった?)

これを削除して以下のようにした。(見た目は変わりませんが)
}
?>

最後に限り?>はなくてもいいみたいですが、空白があると駄目みたいです。
このときはエラーがほとんどでず、redirectもされないのではまりました。

さくらレンタルサーバーにgitをインストールする

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
Vimというもので直接サーバーのコードを書き換えるという高度なことはできないので
gitを使ってローカルからpushしてサーバーのファイルを更新するようにしました。

こういう環境構築系はほんと苦労します。
慣れてるひとはささっとできてしまうんでしょうが
自分は勉強も含めて半日以上かかりました。
次回からはすんなりいきたいので出来るだけメモをとりました。
もしやる方は参考にしてもらえればと思います。

さくらレンタルサーバーにgitをインストール

2012年5月19日土曜日

さくらレンタルサーバーでCodeigniterを試す

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
CodeigniterはMVCタイプのPHPフレームワークで
他のフレームワークと比べて速いらしい
その変わりに機能は最小限といった感じ。
必要に応じてライブラリを落としてきたり、自分で実装する必要があるようだ。
MVCといってもコントローラーだけでDB読み込み、ページの表示もできるので
自分の好みにあった使い方もできる。Railsの規約とは反れる感じだ。

Codeigniterユーザーガイド(日本語)

マニュアルも日本語でわかりやすい。
ライブラリの説明を読むことでそれなりの機能は実装できそうだ。
一通り読んで、さくらレンタルサーバーでHelloを表示させるまでやってみた。

Codeigniter version 2.1.0
(system部分だけ2.1.0を使い、言語のsystem/languageは2.0.3の日本語を使っている。

準備
・phpがローカルで使えるようになってる状態
・PHPが編集できるエディタもしくはIDE。
(自分はNetbeans)

●まずはローカルでのHello
①とりあえずダウンロードしたフォルダを名前だけ変えてそのまま配置
・localhost/(アプリケーション名) にアクセスするとwelcomeページが表示される




②CIのコアライブラリの分離
ライブラリを使いまわして容量を節約する
systemファイルを外に出して名前をとりあえずCIにかえてみる

index.php
$system_path = 'system';
$system_path = '../CI';

で他のプロジェクトと使いまわせる
 user_guideやtxt関係のファイルはとりあえず削除


・CIのフォルダに直接アクセルできちゃったりするのかな?
直接 localhost/CIにアクセスしてみる
アクセス権限でアクセスできないというメッセージが表示される
Access forbidden!

③helloテスト
 よくやる”hello”を表示させる。
 コントローラーにhello.phpを作成する。クラス名は大文字

class Hello extends CI_Controller {

    function index() {
      echo "hello";
    }

}

 以下にアクセスとhelloが表示される
 http://localhost/cafeole/index.php/hello


④URLのindex.phpを表示させない
かっこ悪いので表示させないようにする

参考 http://codeigniter.jp/user_guide_ja/general/urls.html
・config/config.php
index_pageを空白にする
$config['index_page'] = '';

・.htaccessファイルの設定
公式のままだとなぜかうまくいかなかった。
ルートに.htaccessを作成し以下のようにしてみる

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]

でhttp://localhost/アプリケーション名/helloにアクセスすると
helloが表示された。


●ここからさくらのレンタルサーバーでHello
プランはスタンダード

①フォルダが見え見えなのでインデックス表示をなくす 

サクラのコントローラパネル→ファイルマネージャー
上のメニューの表示アドレス→アクセス設定→indexファイル
でアクセスの拒否をチェックする

ルートにアクセスすると以下のメッセージ
アクセスする権限がない。これでOK.

Forbidden
You don't have permission to access / on this server.

②ファイルアップロード
→ローカルのままコピペするだけ、特に変更なし
CIフォルダとアプリ用のフォルダは分離されている状態でOK.

③アクセスして確認
アプリのルートにアクセスすると、先ほどのwelcome画面が表示されうまくいってるように思ったが
/アプリケーション/helloにアクセスしても No input file specified(ファイルが指定されていない)
/アプリケーション/index.php/hello はちゃんと表示される

ここを参考 http://codeigniter.jp/user_guide_ja/installation/troubleshooting.html

.htaccessファイルを修正
なんかよくわかんないけどRewriteRuleのindex.phpの後ろに?をつけてみる

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^(index\.php|images|robots\.txt) 
RewriteRule ^(.*)$ index.php?/$1 [L]

/アプリケーション/helloでhelloが表示された。

他の記事を参考にさせてもらってさくらの場合は
少し設定をいじらないといけないみたいなことが書かれていたので
これから実装していくと何かエラーが起こるかもしれない。
get送信のときになんちゃらかんちゃらとか。

とりあえずここまで
次はCRUDの機能を実装して慣れていきたい。

以下は hello画面、ちゃんと表示されていますね

2012年5月15日火曜日

RailsからPHPの何かへ

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
自分はWEBサイトの作成をRailsから始めました。
素人の自分でもルールさえわかってくれば簡単に動的サイトが作れてしまう
魔法のようなフレームワークだと思います。
また、Rubyという言語もコードがすっきりしていてコード量が少なく
こうしたいんだけどーってなんとなく書いたら通じたりして融通の利いてくれる
使いやすい言語だと思います。

ただ不満な点があって、環境の構築部分と「フレームワークの感じ」でしょうか。
Windowsと相性が悪く、なにかを新しく実装しようとするとめんどくさいことが多いです。
また、運営しようとするとVPSがほぼ必須なのでその辺の知識が必要になる。
Macやlinux系に慣れているひとであれば問題ないのでしょうが
自分にはちょっとまだ早いかなーという印象です。

フレームワークの感じと書いたのは自分でも説明しにくいのですがふわふわした感じなんですよね。
自分で十分に理解しないままでも、これやってーって命令したらできてしまうというか。
逆に予約されている命令以外のことはことごとく断られるみたいな。
(この辺は自分のスキルの問題もあるでしょうが)

自分にはちょっとRailsは早過ぎたのかもしれない。
まだまだやれていないこと、やれるはずなことがたくさんあり、残ったままになっている状態。
それらを消化していくには引っぱたいて背中を押したら強引でも動いてくれるようなものに
試乗してみようと考えました。

結果、よく使われているPHPでWEBサイト的なものを作っていこうと思います。
レンタルサーバーでも手軽に扱えて、Winでも使いやすい。
小回りが利くので、その分を、デザイン、使いやすさ、コンテンツに力を入れて
いいものを沢山作れるようにしていきたい。(切実)

PHPは前にCURD機能やそこらの基本を使ったサイトは作ったことがあるのですが
フレームワークを使わなかったのでかなり大変でした。
いま選択しようとしているのはCodeigniterというMVCタイプのフレームワークです。

Codeigniterユーザーガイド(日本語)
http://codeigniter.jp/user_guide_ja/index.html

ユーザーガイドに一通りの機能のやり方が日本語で書かれています。
CakePHPも考えたのですが、ほぼRailsぽい感じがしたので逆に避けました。

PHPで納得できたら、Railsに戻って本格的なものをやってきたいという思いです。

ほんとはUnityとかで3Dネットワークゲーム作りたかったけど
そんな余裕ないなあ

2012年5月11日金曜日

英単語を覚えるのに使えそうなweblio英和辞典

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
英文ををすらすら読めるようになって海外の読み物を理解できるようにしたい。
そのためには暗記している単語の量は大事だと思うのです。

英和辞典・和英辞典 - Weblio辞書http://ejje.weblio.jp/




このサイトはよく辞書として使っていたのですが単語テスト機能がついているんですね。
やってみたらかなり便利です、今後使っていきたい。

テストの種類として
①4択の診断テスト、英検 大学入試 TOEFL、TOIEC(得点別)など
②単語帳に登録して復習
1.勉強中の単語を4択テスト
2.フラッシュカードで復習(これは単語帳をパラパラめくって暗記する感じ)
3.スペルの書き取り

自分のやり方としては
①の4択診断テストを繰り返し、間違った単語を単語帳に登録
②フラッシュカードで何周もテストを繰り返しチェックしていって覚えたとおもったら消していく

①の4択診断テストを繰り返すと、テスト終了後に間違った単語を単語帳に登録できるので便利です。(1つの単語帳に200個まで貯めることができます。)

フラッシュカードは、ショートカットーキーで発音確認や次の単語の送りもできるので
さくさく暗記作業を進めることができます。

●このやり方で200個の単語を自分なりに覚えたとおもったら削除していき
すべて完了するまでやってみました。


ざっくりです
1回目で 200個→約150個
2回目で 約120個
3回目で 約100個
・・・
・・・
・・・(何回繰り返したか覚えていません)
やっと20個まで着ました。(ここまで 2時間程度)
この辺までくると脳の方もかなりお疲れのようで全然消せません。
また、残った単語は覚えるのが苦手なタイプのものが多いようです。
結局、20個→0個まで行うのに+30分程度かかりました。

最後らへんはテストを繰り返してもパッと意味が浮かばなかったです。
1回目で50個消せたのに、20個消すのに何回繰り返したことか・・・。
自分の脳の仕組みはどうなっているのやら。


そういえば脳に記憶するためには繰り返して何回もやる必要があるとどっかの記事に書いてました。1回読むだけだとその80%は忘れるとかなんとか。

忘却曲線で調べたらいろいろでてくると思います。
以下参考の記事 効率の良い勉強法・暗記法~脳の仕組みと忘却曲線
http://www.wiquitous.com/blog/education/how-to-study001


あとここにで英語習得するまでの勉強時間について書かれていました。
参考記事さん 英語の習得には何時間かかるの?
http://photo-collage.jp/makoto/archives/2005/05/post_218.html

日本語と英語は相性が悪く、一番覚えにくい組み合わせらしい。
優秀な大学生で80-92週(約2年でしょうか)


ちなみに自分のTOEICの単語診断テストの結果では600点くらいでした。
うーん、遠すぎる・・・・。