■ワードプレス、ログインページのURL
http://●あなたのドメイン名/wp-admin/
■参照
たびんのワードプレス 導入奮闘記
http://wordpress-in.blogspot.com/
2011年3月30日水曜日
2011年3月29日火曜日
アンドロイドアプリマーケット調査
■アプリ成功事例
http://www.atmarkit.co.jp/news/201003/02/android.html
Edward Kim, Car Locator
Kim氏にとって2本目のAndroidアプリ
総ダウンロード数は7万件
そのうち有償版は6590件
有償版の「トラベル」分野で第4位になるなど順位はコンスタントに上昇
マーケティング的なことは何もしていない
最初の2カ月は1日5、6ドルの売り上げ
その後、1日平均80~100ドルだった売り上げは、おすすめアプリに選ばれた後には1日平均435ドルに跳ね上がった
バレンタインデーに最高売り上げ772ドルを記録
価格を1.99ドルから3.99ドルに上げても、購入者の減少数は半分よりはるかに少なかった
Twitter検索ですぐにクラックされた無償のCar Locatorが見つかることから、海賊版問題が頭をもたげつつある
■参考サイト
Androlib
http://www.androlib.com/
アンドロイダー
http://androider.jp/
アンドロナビ
http://andronavi.com/
ミートロイド
http://www.meetroid.com/
OCN Androidアプリ
http://appliko.jp/
http://www.atmarkit.co.jp/news/201003/02/android.html
Edward Kim, Car Locator
Kim氏にとって2本目のAndroidアプリ
総ダウンロード数は7万件
そのうち有償版は6590件
有償版の「トラベル」分野で第4位になるなど順位はコンスタントに上昇
マーケティング的なことは何もしていない
最初の2カ月は1日5、6ドルの売り上げ
その後、1日平均80~100ドルだった売り上げは、おすすめアプリに選ばれた後には1日平均435ドルに跳ね上がった
バレンタインデーに最高売り上げ772ドルを記録
価格を1.99ドルから3.99ドルに上げても、購入者の減少数は半分よりはるかに少なかった
Twitter検索ですぐにクラックされた無償のCar Locatorが見つかることから、海賊版問題が頭をもたげつつある
■参考サイト
Androlib
http://www.androlib.com/
アンドロイダー
http://androider.jp/
アンドロナビ
http://andronavi.com/
ミートロイド
http://www.meetroid.com/
OCN Androidアプリ
http://appliko.jp/
2011年3月28日月曜日
ひとこと掲示板3
■ログアウト
セッションを破棄して、ログイン情報を記録しているcookieを削除する
http://jp2.php.net/manual/ja/function.session-destroy.php
クッキーも空に書き換え
setcookie('email', '', time()-3600);
setcookie('password', '', time()-3600);
■メッセージ表示のスタイルを調整する
http://www.nishishi.com/css/line-border-hr.html
・トップにボーダー線を引く
border-top: 1px solid gray;
・上部に余白をつける
padding-top: 3px;
・イメージの右に文章がくるようにする
img.img
{
float : left;
margin-right: 5px;
}
・ページング項目
http://www.1uphp.com/con1/list/float.html
リストのマークを消す
list-style: none;
一列にする
display: inline;
セッションを破棄して、ログイン情報を記録しているcookieを削除する
http://jp2.php.net/manual/ja/function.session-destroy.php
クッキーも空に書き換え
setcookie('email', '', time()-3600);
setcookie('password', '', time()-3600);
■メッセージ表示のスタイルを調整する
http://www.nishishi.com/css/line-border-hr.html
・トップにボーダー線を引く
border-top: 1px solid gray;
・上部に余白をつける
padding-top: 3px;
・イメージの右に文章がくるようにする
img.img
{
float : left;
margin-right: 5px;
}
・ページング項目
http://www.1uphp.com/con1/list/float.html
リストのマークを消す
list-style: none;
一列にする
display: inline;
2011年3月27日日曜日
NHNゲームレボリューション(2)
石井裕
http://rikunabi-next.yahoo.co.jp/tech/docs/ct_s03600.jsp?p=000789
藤井直敬
http://www.vcasi.org/fellow/%E8%97%A4%E4%BA%95-%E7%9B%B4%E6%95%AC
http://ai.brain.riken.jp/
http://rikunabi-next.yahoo.co.jp/tech/docs/ct_s03600.jsp?p=000789
藤井直敬
http://www.vcasi.org/fellow/%E8%97%A4%E4%BA%95-%E7%9B%B4%E6%95%AC
http://ai.brain.riken.jp/
ソーシャルゲームで必要な7つの指標
http://www.gamebusiness.jp/article.php?id=3200
ARMモデル(Acquisition=ユーザー獲得、Retention=継続性、Monetization=収益化)
ユーザー獲得コスト、バイラルでの浸透性(いかにユーザーが他のユーザーを誘うか)、継続率、最後にユーザー一人あたりの収益
デベロッパーが意識すべき7つの指標
・CAC(Customer Acquisition Cost) ユーザー1人当たりの獲得コスト
・K-FACTOR ユーザーがフィード、インバイト、メールなどでどれだけ他のユーザーをバイラルで巻き込むか
・SESSIONS/USER & AVG. SESSION LENGHT アクティブ率、およびセッションあたりの接触時間
・1DAY + 1WEEK RETENTION 初日、または1週間での継続率
・AVG. LIFETIME PER USER 平均のプレイ期間
・ARPU,ARPPU 一人あたりの収益
・% PAYING USERS 課金ユーザー比率
・VIRAL LIFE TIME VALUE 一人がプレイ期間の中で何人誘うか
ARMモデル(Acquisition=ユーザー獲得、Retention=継続性、Monetization=収益化)
ユーザー獲得コスト、バイラルでの浸透性(いかにユーザーが他のユーザーを誘うか)、継続率、最後にユーザー一人あたりの収益
デベロッパーが意識すべき7つの指標
・CAC(Customer Acquisition Cost) ユーザー1人当たりの獲得コスト
・K-FACTOR ユーザーがフィード、インバイト、メールなどでどれだけ他のユーザーをバイラルで巻き込むか
・SESSIONS/USER & AVG. SESSION LENGHT アクティブ率、およびセッションあたりの接触時間
・1DAY + 1WEEK RETENTION 初日、または1週間での継続率
・AVG. LIFETIME PER USER 平均のプレイ期間
・ARPU,ARPPU 一人あたりの収益
・% PAYING USERS 課金ユーザー比率
・VIRAL LIFE TIME VALUE 一人がプレイ期間の中で何人誘うか
2011年3月26日土曜日
JAVAについて学ぶ
■統合開発環境
IDE(Integrated Development Environment)
エディット、コンパイル、デバッグなどを統合的に行えるようにしたプログラム開発環境
■Javaプログラム実行
・Projectを作成
・クラスを作成
・コードを記入
・Run AsからJava Applicationを実行する
・コンソールに結果が表示される
■プリントコマンド
System.out.prinln()
printとprintlnがあり、printlnはprint lineらしい。改行を含める。
■クラスファイルの最初の宣言文の意味
public static void main(String args[])
・public
どのクラスからもアクセスできる
・static
固定。クラス特有の値やメソッドを持たない。
・void
戻り値なし
・main
プログラムのエントリポイントだそうな。実行するとまずこのmainメソッドを探す
・args
変数。argument、引数の略。
■ダイスを振るクラスを作る
java.util.Randomメソッドを呼び出し、nextInt()で数値を返す。
このときnextIntの返す数値が、0〜指定した数値なので、1を足している
public class Dice {
java.util.Random r = new java.util.Random();
public int roll(){
return r.nextInt(6)+1;
}
}
・実行サイド
Diceクラスを呼び出し、diceに値を入れて、出力。
public class DiceTest {
public static void main(String[] args) {
Dice dice = new Dice();
System.out.println(dice.roll());
}
}
■インターフェイスの利用
DiceIF.java
public interface DiceIF {
public int roll();
}
FakeDice.java
public class FakeDice implements DiceIF {
int[] values = new int[] {
3, 4, 2, 1, 5, 6
};
int current = 0;
@Override
public int roll() {
current++;
if(current == 6) current =0;
return values[current];
}
}
RealDice.java
public class RealDice implements DiceIF {
java.util.Random r = new java.util.Random();
@Override
public int roll() {
return r.nextInt(6)+1;
}
}
Sample101.java
public class sample101 {
public static void main(String[] args) {
// TODO Auto-generated method stub
sample101 sample = new sample101();
System.out.println("FakeDice");
sample.rolls(new FakeDice());
System.out.println("RealDice");
sample.rolls(new RealDice());
}
public void rolls(DiceIF dice) {
for (int i=0 ; i<6 ; i++) {
System.out.println(dice.roll());
}
}
}
■参照サイト
Javaで覚えるIT技術者の40の常識
http://www.atmarkit.co.jp/fjava/channel/javajousiki.html
いまから始めるJava
http://www.atmarkit.co.jp/fjava/rensai2/javaent02/javaent02.html
IDE(Integrated Development Environment)
エディット、コンパイル、デバッグなどを統合的に行えるようにしたプログラム開発環境
■Javaプログラム実行
・Projectを作成
・クラスを作成
・コードを記入
・Run AsからJava Applicationを実行する
・コンソールに結果が表示される
■プリントコマンド
System.out.prinln()
printとprintlnがあり、printlnはprint lineらしい。改行を含める。
■クラスファイルの最初の宣言文の意味
public static void main(String args[])
・public
どのクラスからもアクセスできる
・static
固定。クラス特有の値やメソッドを持たない。
・void
戻り値なし
・main
プログラムのエントリポイントだそうな。実行するとまずこのmainメソッドを探す
・args
変数。argument、引数の略。
■ダイスを振るクラスを作る
java.util.Randomメソッドを呼び出し、nextInt()で数値を返す。
このときnextIntの返す数値が、0〜指定した数値なので、1を足している
public class Dice {
java.util.Random r = new java.util.Random();
public int roll(){
return r.nextInt(6)+1;
}
}
・実行サイド
Diceクラスを呼び出し、diceに値を入れて、出力。
public class DiceTest {
public static void main(String[] args) {
Dice dice = new Dice();
System.out.println(dice.roll());
}
}
■インターフェイスの利用
DiceIF.java
public interface DiceIF {
public int roll();
}
FakeDice.java
public class FakeDice implements DiceIF {
int[] values = new int[] {
3, 4, 2, 1, 5, 6
};
int current = 0;
@Override
public int roll() {
current++;
if(current == 6) current =0;
return values[current];
}
}
RealDice.java
public class RealDice implements DiceIF {
java.util.Random r = new java.util.Random();
@Override
public int roll() {
return r.nextInt(6)+1;
}
}
Sample101.java
public class sample101 {
public static void main(String[] args) {
// TODO Auto-generated method stub
sample101 sample = new sample101();
System.out.println("FakeDice");
sample.rolls(new FakeDice());
System.out.println("RealDice");
sample.rolls(new RealDice());
}
public void rolls(DiceIF dice) {
for (int i=0 ; i<6 ; i++) {
System.out.println(dice.roll());
}
}
}
■参照サイト
Javaで覚えるIT技術者の40の常識
http://www.atmarkit.co.jp/fjava/channel/javajousiki.html
いまから始めるJava
http://www.atmarkit.co.jp/fjava/rensai2/javaent02/javaent02.html
ひとこと掲示板2
■文字コード宣言
(クロームで見たら文字化けしたので)
ヘッダーの中に以下を入れる
meta http-equiv="Content-Type" content="text/html; charset=utf-8"
■check.phpでisset()を使いsession値が空の場合を回避
if (!isset($_SESSION['join']))
{
header('Location: index.php');
}
http://nyx.pu1.net/function/var/isset.html
■パスワードの文字列をsha1ファンクションで変更する
http://www.phppro.jp/phpmanual/php/function.sha1.html
■登録時のcreated timeの更新について
やりかたがわからなかったので、飛ぶ前のページでhiddenで9時間足して計算したのを受け取っていたが、
実際は、受け取り時にdate()するだけでよかった。
また時間のずれについては、結局php.iniのdate.timezoneの設定がUCTになっていたのが原因で、
以下のようにAsia/Tokyoに修正することによって解決した。
1160 date.timezone = Asia/Tokyo
■なんどもやってるauto_incrementリセット
ALTER TABLE <テーブル名> AUTO_INCREMENT = 1;
または、phpmyadminから
当該テーブルの「操作」→「テーブルオプション」→auto_increment→「1」と入力→「実行」
■dd要素の左寄せ
dd
{
margin-left: 0px;
}
■header
別のページのジャンプに使えるが、それ以外に、強制的にエラー表示させたり、pdf表示とかさせたりできる。
■setcookie
クッキーをセット
setcookie('name', value, 期間);
setcookie('email', $_POST['email'], time()+60*60*24);
(クロームで見たら文字化けしたので)
ヘッダーの中に以下を入れる
meta http-equiv="Content-Type" content="text/html; charset=utf-8"
■check.phpでisset()を使いsession値が空の場合を回避
if (!isset($_SESSION['join']))
{
header('Location: index.php');
}
http://nyx.pu1.net/function/var/isset.html
■パスワードの文字列をsha1ファンクションで変更する
http://www.phppro.jp/phpmanual/php/function.sha1.html
■登録時のcreated timeの更新について
やりかたがわからなかったので、飛ぶ前のページでhiddenで9時間足して計算したのを受け取っていたが、
実際は、受け取り時にdate()するだけでよかった。
また時間のずれについては、結局php.iniのdate.timezoneの設定がUCTになっていたのが原因で、
以下のようにAsia/Tokyoに修正することによって解決した。
1160 date.timezone = Asia/Tokyo
■なんどもやってるauto_incrementリセット
ALTER TABLE <テーブル名> AUTO_INCREMENT = 1;
または、phpmyadminから
当該テーブルの「操作」→「テーブルオプション」→auto_increment→「1」と入力→「実行」
■dd要素の左寄せ
dd
{
margin-left: 0px;
}
■header
別のページのジャンプに使えるが、それ以外に、強制的にエラー表示させたり、pdf表示とかさせたりできる。
■setcookie
クッキーをセット
setcookie('name', value, 期間);
setcookie('email', $_POST['email'], time()+60*60*24);
韓国MV
どうでもいいことだが、いろいろ調べてしまった。
ので、一応記録として
■高速ガールラッパー E.via(이비아)以前はnapperという名前でアングラで活躍してたらしい
Hey
http://www.youtube.com/watch?v=bOBtDDEWNVE
Shake!
http://www.youtube.com/watch?v=yyROBgl7wlA&NR=1
삐까 Chu~♡ (Pick Up! U!)
http://www.youtube.com/watch?v=WyD-GWtZg8U&NR=1
http://d.hatena.ne.jp/oolt/20090630/p2#20090630f1
■Hard Girl'sHipHopグループ 2NE1
Go Away
http://www.youtube.com/watch?v=3yW13T2sfKg
Can't Nobady
http://www.youtube.com/watch?v=Ihi_kJJj_8A&feature=fvsr
■m-floっぽい感じの、Mighty Mouth
Tok Tok (톡톡) (feat. Soya) MV
http://www.youtube.com/watch?v=-F-XqdnUWkE
■なんか下着がみえたとかで話題になったらしい Girl's Day
http://www.youtube.com/watch?v=cJVL0h96UqU
■少女時代が出てたバラエティー「夜行星」のキルのLeeSsang(리쌍)
헤어지지 못하는 여자 떠나가지 못하는 남자
別れられない女 離れられない男
http://www.youtube.com/watch?v=clJe2HDxhvI
내가 웃는게 아니야..
http://www.youtube.com/watch?v=YOroE3OUoGA&feature=fvwrel
■日本で最近デビューしたらしい、Brown Eyed Girls(브라운 아이드 걸스)
Abracadabra
http://www.youtube.com/watch?v=ofwFr8o8p0Y
■情報サイト
現代K-POPグループ
http://www.kiraku.tv/category/56162
辺境にも吹く風
http://ameblo.jp/kid94ad02/
Jo-Jackの「つぶやき速報...」
http://jojack5.blog25.fc2.com/
ので、一応記録として
■高速ガールラッパー E.via(이비아)以前はnapperという名前でアングラで活躍してたらしい
Hey
http://www.youtube.com/watch?v=bOBtDDEWNVE
Shake!
http://www.youtube.com/watch?v=yyROBgl7wlA&NR=1
삐까 Chu~♡ (Pick Up! U!)
http://www.youtube.com/watch?v=WyD-GWtZg8U&NR=1
http://d.hatena.ne.jp/oolt/20090630/p2#20090630f1
■Hard Girl'sHipHopグループ 2NE1
Go Away
http://www.youtube.com/watch?v=3yW13T2sfKg
Can't Nobady
http://www.youtube.com/watch?v=Ihi_kJJj_8A&feature=fvsr
■m-floっぽい感じの、Mighty Mouth
Tok Tok (톡톡) (feat. Soya) MV
http://www.youtube.com/watch?v=-F-XqdnUWkE
■なんか下着がみえたとかで話題になったらしい Girl's Day
http://www.youtube.com/watch?v=cJVL0h96UqU
■少女時代が出てたバラエティー「夜行星」のキルのLeeSsang(리쌍)
헤어지지 못하는 여자 떠나가지 못하는 남자
別れられない女 離れられない男
http://www.youtube.com/watch?v=clJe2HDxhvI
내가 웃는게 아니야..
http://www.youtube.com/watch?v=YOroE3OUoGA&feature=fvwrel
■日本で最近デビューしたらしい、Brown Eyed Girls(브라운 아이드 걸스)
Abracadabra
http://www.youtube.com/watch?v=ofwFr8o8p0Y
■情報サイト
現代K-POPグループ
http://www.kiraku.tv/category/56162
辺境にも吹く風
http://ameblo.jp/kid94ad02/
Jo-Jackの「つぶやき速報...」
http://jojack5.blog25.fc2.com/
2011年3月25日金曜日
ひとこと掲示板
■ファイル構成
index.php>check.php>thanks.php
■スタイルシート作成
default.cssを作成し、クラス設定をする
本体head内で、linkで読み込む
リンク要素の使い方
http://www.kanzaki.com/docs/html/link.html
■エラーチェック
empty() 変数が空かどうかを調べる
http://nyx.pu1.net/function/var/empty.html
strlen() 文字列の長さを返す
http://nyx.pu1.net/function/strings/strlen.html
endif;による制御
if文で{ } で囲ったものを、処理の開始部分を : に変更し、
さらに条件の終了部分を endif; に変更することができる
index.php>check.php>thanks.php
■スタイルシート作成
default.cssを作成し、クラス設定をする
本体head内で、linkで読み込む
リンク要素の使い方
http://www.kanzaki.com/docs/html/link.html
■エラーチェック
empty() 変数が空かどうかを調べる
http://nyx.pu1.net/function/var/empty.html
strlen() 文字列の長さを返す
http://nyx.pu1.net/function/strings/strlen.html
endif;による制御
if文で{ } で囲ったものを、処理の開始部分を : に変更し、
さらに条件の終了部分を endif; に変更することができる
アンドロイド開発環境その1
■ソフトウェアの用意
・Eclipse IDE for Java EE Developersダウンロード
・Android SDKダウンロード、適当な場所に展開
・Eclipseでアンドロイド開発ツールダウンロード
"help"の”Install New Software"をクリックし、下記アドレスを記入
https://dl-ssl.google.com/android/eclipse/
・EclipseのPrefarenceでandroid SDKのロケーションを設定する
・SDKパッケージを組み込む
Android SDK and AVD Managerで、installed packagesする
・Eclipse IDE for Java EE Developersダウンロード
・Android SDKダウンロード、適当な場所に展開
・Eclipseでアンドロイド開発ツールダウンロード
"help"の”Install New Software"をクリックし、下記アドレスを記入
https://dl-ssl.google.com/android/eclipse/
・EclipseのPrefarenceでandroid SDKのロケーションを設定する
・SDKパッケージを組み込む
Android SDK and AVD Managerで、installed packagesする
2011年3月24日木曜日
Safariでyoutube画像ダウンロード
■SIMBLダウンロード
Cocoaアプリケーションの機能拡張プラグイン
http://www.culater.net/software/SIMBL/SIMBL.php
■GraseKitダウンロード
http://8-p.info/greasekit/
ユーザースクリプトを利用出来るようにするものらしい
・インストール
LIbrary/SIMBL/Plugins->GreaseKit.bundle
・YouTubeHD Suiteをダウンロード
http://creazy.net/2010/04/youtube_hd_suite_update_2010404.html
http://creazy.net/youtubehdsuite/
■参照
http://minatokobe.com/wp/mac/youtube-hd-downroad.html
Cocoaアプリケーションの機能拡張プラグイン
http://www.culater.net/software/SIMBL/SIMBL.php
■GraseKitダウンロード
http://8-p.info/greasekit/
ユーザースクリプトを利用出来るようにするものらしい
・インストール
LIbrary/SIMBL/Plugins->GreaseKit.bundle
・YouTubeHD Suiteをダウンロード
http://creazy.net/2010/04/youtube_hd_suite_update_2010404.html
http://creazy.net/youtubehdsuite/
■参照
http://minatokobe.com/wp/mac/youtube-hd-downroad.html
単語登録DBを作成する
■index.phpを書き換える
DB内容に合わせてテーブル名やカラム名を書き換えて、追加
■input.phpを修正
・言語入力をプルダウン化
■htmlコメントアウト
原則のルールでは「同様に2つの「-」ハイフン+「>」で終了タグ
■追加時の日にちを追加する
そのままやると、どうも9時間ほど(GMTと日本時間の差だと思う)日にちがずれるので修正
echo date("Y-m-d", strtotime("+9 hours"));
■synonymにデータをいれないで空セルにすると、枠線がでない
empty-cellsを追加
td style="empty-cells: show"
※参照サイト
http://journal.mycom.co.jp/special/2007/ie7/003.html
http://hp.vector.co.jp/authors/VA022006/css/tables.html#empty-cells
■今後やること
・類語をタブから入力 -> 3/25 直接入力にした
・類語を入力しなくても表示が変にならないように、空白追加とか、なんらかの方法を取る -> 解決
・言語種を単語の入力から判断して、省略する
・トップページで、英語のみ表示、韓国語のみ表示といったかたちでわける -> 3/25トップは全リストを表示、特定の言語を表示したい場合はリンクをたどることとした
・復習単語のチェックを追加し、復讐単語用テーブルに自動追加 -> 3/25一部終了 復習単語用テーブルについては作成が必要
・アンドロイドからも単語チェック可能
・復習テーブルから引っ張ってきた単語でテストゲーム
■3/25日追記
・類語をテキスト化し、pos_tableを廃止>めんどくさい上に、言語ごとの意味合いが違うので
・要復習チェックボックスを追加。1でonとした。
・$language関数を追加し、sql文のwhereに追加
where l.language_id=w.language_id and w.language_id '.$language.'
英語リスト、韓国語リスト用のページを作り、本体と切り離した。
■ソースを「そのまま表示するためのHTMLソース」変換、再録
http://blogtool.flatlabs.net/source.html
DB内容に合わせてテーブル名やカラム名を書き換えて、追加
■input.phpを修正
・言語入力をプルダウン化
10 <dd>
11 <select name="language_id">
12 <option value="1">英語</option>
13 <option value="2">韓国語</option>
14 </select>
15 </dd>
■htmlコメントアウト
原則のルールでは「同様に2つの「-」ハイフン+「>」で終了タグ
■追加時の日にちを追加する
そのままやると、どうも9時間ほど(GMTと日本時間の差だと思う)日にちがずれるので修正
echo date("Y-m-d", strtotime("+9 hours"));
■synonymにデータをいれないで空セルにすると、枠線がでない
empty-cellsを追加
td style="empty-cells: show"
※参照サイト
http://journal.mycom.co.jp/special/2007/ie7/003.html
http://hp.vector.co.jp/authors/VA022006/css/tables.html#empty-cells
■今後やること
・言語種を単語の入力から判断して、省略する
・アンドロイドからも単語チェック可能
・復習テーブルから引っ張ってきた単語でテストゲーム
■3/25日追記
・類語をテキスト化し、pos_tableを廃止>めんどくさい上に、言語ごとの意味合いが違うので
・要復習チェックボックスを追加。1でonとした。
・$language関数を追加し、sql文のwhereに追加
where l.language_id=w.language_id and w.language_id '.$language.'
英語リスト、韓国語リスト用のページを作り、本体と切り離した。
■ソースを「そのまま表示するためのHTMLソース」変換、再録
http://blogtool.flatlabs.net/source.html
2011年3月23日水曜日
2011年3月22日火曜日
英語登録DB下準備
■DB構成を決める
・どの単語もひとつのテーブルに入れる
・言語、品詞は他のテーブルで管理
・品詞は最初カラムごとにpos_jp、pos_en、pos_kr…としていこうかと考えたが、
今後の拡張性を考えて、1カラム内に順番に、名詞、noun…とやっていくことにした
■DB構成
テーブルを以下の4つにしてみる
words_tbl:単語登録用
goover_tbl:復習用
language_mst:言語種登録マスター
pos_mst:品詞登録マスター
・どの単語もひとつのテーブルに入れる
・言語、品詞は他のテーブルで管理
・品詞は最初カラムごとにpos_jp、pos_en、pos_kr…としていこうかと考えたが、
今後の拡張性を考えて、1カラム内に順番に、名詞、noun…とやっていくことにした
■DB構成
テーブルを以下の4つにしてみる
words_tbl:単語登録用
goover_tbl:復習用
language_mst:言語種登録マスター
pos_mst:品詞登録マスター
2011年3月20日日曜日
twitter botを作る
■twitter bot基本機能
フォローされたらフォロー仕返す
なんらかの必要情報を定期的につぶやきつづける
※できたらいいな
DMくれたメッセージを翻訳して返す?
RSSフィードを取得してつぶやくとか
■twitter devサイト
http://dev.twitter.com/
■参照すべきポイント
アプリケーション登録&アクセストークン等取得
公開証明書鍵を得る
Twitter User Stream API でタイムラインを表示
■参照サイト
http://www.usamimi.info/~ryouchi/twitter/
>そのまま入れて見たが出来なかった
ボットをつくろうの会のまとめサイト
http://sites.google.com/site/bot2uku/
・いきがかり上、google app engineに登録(tokoro.work@gmail.comで)
http://kizen-study.appspot.com
・Java用のtwitter用クラス
http://twitter4j.org/ja/index.html#introduction
■用語まとめ
・サーブレット
サーバサイドで動作するアプレット
>javaまで手をつけ始めるとまったく進まないので、一旦phpに戻ることにする。
他の言語やるにしても、まずphpをある程度できるようになってから。
■phpでなんとかパッケージを導入
・pearでservices_twitterというのがあった
http://labs.transrain.net/products/services_twitter/
■とりあえずログインしてTLを表示させようとしてみる
http://blog.senseless.jp/2007/05/09/services_twitter/
■下記エラーがでる
Assigning the return value of new by reference is deprecated
PHP5では、newすると参照になるのに、それを =& でさらに参照で受け取ろうとしてエラーが出ているらしい
エラー箇所のソースを読むと、 =& になっているので = に変更
■エラーは消えたがしかし表示はされない
結局参照してたサイトのバージョンが古いことに気づきアップデートを試みる
■pearをもう少しマスターする必要があることに気づく
新しいバージョンのServices_TwitterはHTTP_Request2が必要らしい
だがこれを入れるにはpearのバージョンアップが必要
>とりあえずバージョンアップ処理
pear upgrade-all
■関連ファイルをpearで導入したが、以下のエラーでつまる
Fatal error: Uncaught Unsupported endpoint enableJsonConvert (code: 2) thrown in /Applications/XAMPP/xamppfiles/htdocs/twitter/Services/Twitter.php on line 292
■どうやらこの二文のどこかに問題があるらしい
$st->enableJsonConvert();
$arr = $st->getUserTimeline();
■twitterの問題か?
Twitter は、2010年8月以降、OAuth という認証形式しか使えないようになったらしい…
■アクセスするにはリクエストトークンとアクセストークンがいるらしい
>ここで現在つまってる状態
・Services_Twitter(PHP + PEAR)でゼロからTwitter botを作る
http://blog.guchikiriri.net/2010/12/28/services_twitterphp-pearでゼロからtwitter-botを作る/
・プログラミングができなくても作れるTwitter botの作り方
http://pha22.net/twitterbot/
・PHPでTwitter APIのOAuthを使う方法まとめ
http://www.msng.info/archives/2010/01/twitter_api_oauth_with_php.php
・PHP+OAuthでTwitter
http://www.sdn-project.net/labo/oauth.html
フォローされたらフォロー仕返す
なんらかの必要情報を定期的につぶやきつづける
※できたらいいな
DMくれたメッセージを翻訳して返す?
RSSフィードを取得してつぶやくとか
■twitter devサイト
http://dev.twitter.com/
■参照すべきポイント
アプリケーション登録&アクセストークン等取得
公開証明書鍵を得る
Twitter User Stream API でタイムラインを表示
■参照サイト
http://www.usamimi.info/~ryouchi/twitter/
>そのまま入れて見たが出来なかった
ボットをつくろうの会のまとめサイト
http://sites.google.com/site/bot2uku/
・いきがかり上、google app engineに登録(tokoro.work@gmail.comで)
http://kizen-study.appspot.com
・Java用のtwitter用クラス
http://twitter4j.org/ja/index.html#introduction
■用語まとめ
・サーブレット
サーバサイドで動作するアプレット
>javaまで手をつけ始めるとまったく進まないので、一旦phpに戻ることにする。
他の言語やるにしても、まずphpをある程度できるようになってから。
■phpでなんとかパッケージを導入
・pearでservices_twitterというのがあった
http://labs.transrain.net/products/services_twitter/
■とりあえずログインしてTLを表示させようとしてみる
http://blog.senseless.jp/2007/05/09/services_twitter/
■下記エラーがでる
Assigning the return value of new by reference is deprecated
PHP5では、newすると参照になるのに、それを =& でさらに参照で受け取ろうとしてエラーが出ているらしい
エラー箇所のソースを読むと、 =& になっているので = に変更
■エラーは消えたがしかし表示はされない
結局参照してたサイトのバージョンが古いことに気づきアップデートを試みる
■pearをもう少しマスターする必要があることに気づく
新しいバージョンのServices_TwitterはHTTP_Request2が必要らしい
だがこれを入れるにはpearのバージョンアップが必要
>とりあえずバージョンアップ処理
pear upgrade-all
■関連ファイルをpearで導入したが、以下のエラーでつまる
Fatal error: Uncaught Unsupported endpoint enableJsonConvert (code: 2) thrown in /Applications/XAMPP/xamppfiles/htdocs/twitter/Services/Twitter.php on line 292
■どうやらこの二文のどこかに問題があるらしい
$st->enableJsonConvert();
$arr = $st->getUserTimeline();
■twitterの問題か?
Twitter は、2010年8月以降、OAuth という認証形式しか使えないようになったらしい…
■アクセスするにはリクエストトークンとアクセストークンがいるらしい
>ここで現在つまってる状態
・Services_Twitter(PHP + PEAR)でゼロからTwitter botを作る
http://blog.guchikiriri.net/2010/12/28/services_twitterphp-pearでゼロからtwitter-botを作る/
・プログラミングができなくても作れるTwitter botの作り方
http://pha22.net/twitterbot/
・PHPでTwitter APIのOAuthを使う方法まとめ
http://www.msng.info/archives/2010/01/twitter_api_oauth_with_php.php
・PHP+OAuthでTwitter
http://www.sdn-project.net/labo/oauth.html
2011年3月19日土曜日
よくわかるphpの教科書その2
■Xamppのhtdocsへのエイリアスをホームディレクトリにつくる
なぜだか右クリックでエイリアスの作成が出てこなかったので、
option+commandを押しながらフォルダのドラッグ・アンド・ドロップして作成
上記方法では、ターミナル上での移動ができないため、ターミナル上で再度エイリアス(シンボリックリンク)を作成
ln -s /Application/XAMPP/xamppfiles/htdocs /Users/
パーミッション変更
chmod 777
すべてのユーザーから読み書きできる
chmod 755
○その所有者は読み出せて、書き込めて、実行できる。
○そのグループは、読み出せて、実行できる。
○その他のユーザは、読み出せて、実行できる
■index.phpを作成し、DBに接続する
mysql_connect('localhost', 'user', 'pass')
or die (mysql_error());
mysql_select_db('mydb')
or die (mysql_error());
■データを取り出す
mysql_fetch_assoc 連想配列
mysql_fetch_row 通常配列
mysql_fetch_array 通常配列と連想配列
■input用のフォームを作る
リスト処理
※dl,dt,dd要素だけを使ってクールな日記を作成する
http://www.w-frontier.com/stylesheet/dldtdd_diary.html
■mysqlを呼び出して、データを入れ込む
sprintf 適当な文をさまざまな指定に合わせて書式を整える
sprintfを利用して、%dを使うと、数字として整えることができる
※d=digit
"%s"で、文字として整える
※s=string
%05d、とすると5桁になるまで0を補って数字として整える、となる
■サニタイズ
mysql_real_escape_stringコマンド
■index.phpを調整
thはtable headerの略
th要素やtd要素にscopeを追加すると、見出しの対象範囲を指定することができる
※参照
http://www.tagindex.com/html_tag/table/th_scope.html
■requireコマンドを使って、DBへのアクセスを簡略化
コネクト用の記述をひとつのphpファイルにして、
他のファイル内では、requireコマンドで呼び出す
require('dbconnect.php');
dbconnect.php
1 2 mysql_connect('localhost', 'user', 'pass')
3 or die(mysql_error());
4 mysql_select_db('mydb');
5 mysql_query('set names utf8');
6 ?>
■limitを記述することで表示数を制限
recordSet = mysql_query('select m.name, i.* from makers m, my_items i where m.id=i.maker_id order by id DESC limit 3');
■ページング
リスト要素(ul, li)の中にパラメータをもたせたリンクを配置
a href="index.php?page="前のページへ<
a href="index.php?page=">次のページへ<
ページの頭でパラメータを受け取る
$page = $_REQUEST['page'];
最初の段階で数値が入っていない場合pageに1を代入
if ($page == '') {
$page = 1;
}
数字が1より小さい場合に、強制的に1にする
$page = max($page, 1);
■CRUDシステム構築
登録(Create)
一覧(Read)
編集(Update)
削除(Delete)
■全体のファイルを振り返る
dbconnect.php(データベース接続用)
index.php (一覧)
>input.php(登録) >input_do.php (実行)
>update.php(編集)>update_do.php(実行)
>dalete.php(削除)
■デリートする前に確認させる設定を
Javascript文を挿入
onclick="return confirm('削除してよろしいですか?');
■ソースを「そのまま表示するためのHTMLソース」変換
http://blogtool.flatlabs.net/source.html
なぜだか右クリックでエイリアスの作成が出てこなかったので、
option+commandを押しながらフォルダのドラッグ・アンド・ドロップして作成
上記方法では、ターミナル上での移動ができないため、ターミナル上で再度エイリアス(シンボリックリンク)を作成
ln -s /Application/XAMPP/xamppfiles/htdocs /Users/
パーミッション変更
chmod 777
すべてのユーザーから読み書きできる
chmod 755
○その所有者は読み出せて、書き込めて、実行できる。
○そのグループは、読み出せて、実行できる。
○その他のユーザは、読み出せて、実行できる
■index.phpを作成し、DBに接続する
mysql_connect('localhost', 'user', 'pass')
or die (mysql_error());
mysql_select_db('mydb')
or die (mysql_error());
■データを取り出す
mysql_fetch_assoc 連想配列
mysql_fetch_row 通常配列
mysql_fetch_array 通常配列と連想配列
■input用のフォームを作る
リスト処理
<dl><dt><dd>
<DL>タグでリスト本体を定義し、<DT>タグでリストの項目を定義し、<DD>タグにそのリストの内容を記述する
<DL>(Definition List)
<DT>(Definition Term)
<DD>(Definition Description)
※dl,dt,dd要素だけを使ってクールな日記を作成する
http://www.w-frontier.com/stylesheet/dldtdd_diary.html
■mysqlを呼び出して、データを入れ込む
sprintf 適当な文をさまざまな指定に合わせて書式を整える
sprintfを利用して、%dを使うと、数字として整えることができる
※d=digit
"%s"で、文字として整える
※s=string
%05d、とすると5桁になるまで0を補って数字として整える、となる
■サニタイズ
mysql_real_escape_stringコマンド
■index.phpを調整
thはtable headerの略
th要素やtd要素にscopeを追加すると、見出しの対象範囲を指定することができる
※参照
http://www.tagindex.com/html_tag/table/th_scope.html
■requireコマンドを使って、DBへのアクセスを簡略化
コネクト用の記述をひとつのphpファイルにして、
他のファイル内では、requireコマンドで呼び出す
require('dbconnect.php');
dbconnect.php
1 2 mysql_connect('localhost', 'user', 'pass')
3 or die(mysql_error());
4 mysql_select_db('mydb');
5 mysql_query('set names utf8');
6 ?>
■limitを記述することで表示数を制限
recordSet = mysql_query('select m.name, i.* from makers m, my_items i where m.id=i.maker_id order by id DESC limit 3');
■ページング
リスト要素(ul, li)の中にパラメータをもたせたリンクを配置
a href="index.php?page="前のページへ<
a href="index.php?page=">次のページへ<
ページの頭でパラメータを受け取る
$page = $_REQUEST['page'];
最初の段階で数値が入っていない場合pageに1を代入
if ($page == '') {
$page = 1;
}
数字が1より小さい場合に、強制的に1にする
$page = max($page, 1);
■CRUDシステム構築
登録(Create)
一覧(Read)
編集(Update)
削除(Delete)
■全体のファイルを振り返る
dbconnect.php(データベース接続用)
index.php (一覧)
>input.php(登録) >input_do.php (実行)
>update.php(編集)>update_do.php(実行)
>dalete.php(削除)
■デリートする前に確認させる設定を
Javascript文を挿入
onclick="return confirm('削除してよろしいですか?');
■ソースを「そのまま表示するためのHTMLソース」変換
http://blogtool.flatlabs.net/source.html
2011年3月18日金曜日
よくわかるPHPの教科書その1
■目標
本の内容をひと通りさらうその1
PHP+DBで本格的なWebシステムを作る
■前準備
本に書いてあるDB作成
>ターミナル上で日本語入力ができない
■ターミナルで日本語が文字化けしないようにする
>.inputrcファイルを作成、以下を記述する
set convert-meta off
set meta-flag on
set output-meta on
>my.cnfファイルに以下を追加
[client]
default-character-set=utf8
[mysqld]
default-character-set = utf8
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
>ところが表示がなおらない
※文字化けしたまま入力しても、きちんと反映はされる
ただターミナル上で?のまま表示される
■本格的にmysql文字コードチェック
・mysqlの文字コードを調べる
show variables like 'char%';
・chracter_set_databaseがなぜかlatin1
my.cnfの設定変更の一部が足りなかったらしい
[mysqldump]
default-character-set=utf8
[mysql]
default-character-set=utf8
・変更すると
mysql> show variables like 'char%';
+--------------------------+------------------------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /Applications/XAMPP/xamppfiles/share/mysql/charsets/ |
+--------------------------+------------------------------------------------------+
全部utf8になった
・でもまだ文字化けする
mysql> ?^???^?^??^?^?;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'だめか' at line 1
・ホームディレクトリの.bash_profile書き換え
expert LANG-jp_JP.UTF-8
を追加
echo $LANGで状態を確認
>でもなおらない
・なんと!
ターミナルの文字の文字エンコーディングを”日本語(EUC)”にするとなおった!
※いままで全体に合わせてutf-8だった
※mysqlをexitして、通常のbashにもどると、今度はそっちで文字化けする
>とりあえず、.bash_profileのexpert LANGを削除したら両方いけるようになった
ただし、echoすると、jp_JP.eucJPにセットされている
今度はDB内容が文字化けして表示される
というわけで、mysqlターミナル文字化け処理をあきらめutf-8に戻す
■mysql文について
・datetimeとtimestampの差
timestampを使うとDBを更新したときに自動的にdateが更新される
・集計コマンド
合計
select sum(price) from my_items;
最大値
select max(price) from my_items;
最小値
select min(price) from my_items;
データ数
select count(id) from my_items;
平均値
select avg(price) from my_itmes;
・group by コマンド
item_idごとの集計
select item_id, sum(count) from carts group by item_id;
リレーションを使って、item名をidと対応させて同時表示
SELECT i.item_name, sum( c.count )
FROM my_items i, carts c
WHERE i.id = c.item_id
GROUP BY c.item_id
本の内容をひと通りさらうその1
PHP+DBで本格的なWebシステムを作る
■前準備
本に書いてあるDB作成
>ターミナル上で日本語入力ができない
■ターミナルで日本語が文字化けしないようにする
>.inputrcファイルを作成、以下を記述する
set convert-meta off
set meta-flag on
set output-meta on
>my.cnfファイルに以下を追加
[client]
default-character-set=utf8
[mysqld]
default-character-set = utf8
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
>ところが表示がなおらない
※文字化けしたまま入力しても、きちんと反映はされる
ただターミナル上で?のまま表示される
■本格的にmysql文字コードチェック
・mysqlの文字コードを調べる
show variables like 'char%';
・chracter_set_databaseがなぜかlatin1
my.cnfの設定変更の一部が足りなかったらしい
[mysqldump]
default-character-set=utf8
[mysql]
default-character-set=utf8
・変更すると
mysql> show variables like 'char%';
+--------------------------+------------------------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /Applications/XAMPP/xamppfiles/share/mysql/charsets/ |
+--------------------------+------------------------------------------------------+
全部utf8になった
・でもまだ文字化けする
mysql> ?^???^?^??^?^?;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'だめか' at line 1
・ホームディレクトリの.bash_profile書き換え
expert LANG-jp_JP.UTF-8
を追加
echo $LANGで状態を確認
>でもなおらない
・なんと!
ターミナルの文字の文字エンコーディングを”日本語(EUC)”にするとなおった!
※いままで全体に合わせてutf-8だった
※mysqlをexitして、通常のbashにもどると、今度はそっちで文字化けする
>とりあえず、.bash_profileのexpert LANGを削除したら両方いけるようになった
ただし、echoすると、jp_JP.eucJPにセットされている
今度はDB内容が文字化けして表示される
というわけで、mysqlターミナル文字化け処理をあきらめutf-8に戻す
■mysql文について
・datetimeとtimestampの差
timestampを使うとDBを更新したときに自動的にdateが更新される
・集計コマンド
合計
select sum(price) from my_items;
最大値
select max(price) from my_items;
最小値
select min(price) from my_items;
データ数
select count(id) from my_items;
平均値
select avg(price) from my_itmes;
・group by コマンド
item_idごとの集計
select item_id, sum(count) from carts group by item_id;
リレーションを使って、item名をidと対応させて同時表示
SELECT i.item_name, sum( c.count )
FROM my_items i, carts c
WHERE i.id = c.item_id
GROUP BY c.item_id
保険関連について調べる
■ドル建てリタイアメントインカム
1. 現状、退職金がもらえる見込みは殆ど無いため、老後のために一定額の貯蓄を確保する
2. リスク分散のため、ドルで一定額を確保する
上記双方を満たすため、現在プルデンシャル生命のリタイアメントインカムを検討中
■リタイアメントインカムとは何か
正式名称は「無配当積立利率変動型年金支払型特殊養老保険」
・メリット
元本保証
利回り変動型となっているため、運用次第では死亡保険金も積立金額も多くなる
基本資産型保険なので、一定期間を過ぎれば掛け捨ての要素はない
・デメリット
短期間で解約した場合は支払い損となる
途中で払いきれなった場合は、払い済み塩漬けにしないことには損になる
7年、10年で塩漬けにした場合の利率がいいので、
月額を再度検討して、最終決定としたい。
■質問事項
途中支払い停止を一時的にできるかどうか?
>可能
その場合のペナルティ(払戻額の減額はどれぐらいなのか)
>資料に書かかれている
ある時点で支払い済みにすると、どれぐらいの払戻額になるのか
中途で減額という選択はあるのか
>部分解約は可能、部分払込済み
元本保証の記載はどこにあるのか(契約のなかの)
利率保証はどこに書かれているのか(契約のなかの)
>契約時の証明書に書かれている
1. 現状、退職金がもらえる見込みは殆ど無いため、老後のために一定額の貯蓄を確保する
2. リスク分散のため、ドルで一定額を確保する
上記双方を満たすため、現在プルデンシャル生命のリタイアメントインカムを検討中
■リタイアメントインカムとは何か
正式名称は「無配当積立利率変動型年金支払型特殊養老保険」
・メリット
元本保証
利回り変動型となっているため、運用次第では死亡保険金も積立金額も多くなる
基本資産型保険なので、一定期間を過ぎれば掛け捨ての要素はない
・デメリット
短期間で解約した場合は支払い損となる
途中で払いきれなった場合は、払い済み塩漬けにしないことには損になる
7年、10年で塩漬けにした場合の利率がいいので、
月額を再度検討して、最終決定としたい。
■質問事項
途中支払い停止を一時的にできるかどうか?
>可能
その場合のペナルティ(払戻額の減額はどれぐらいなのか)
>資料に書かかれている
ある時点で支払い済みにすると、どれぐらいの払戻額になるのか
中途で減額という選択はあるのか
>部分解約は可能、部分払込済み
元本保証の記載はどこにあるのか(契約のなかの)
利率保証はどこに書かれているのか(契約のなかの)
>契約時の証明書に書かれている
2011年3月17日木曜日
資産移動計画
■ポートフォリオ整理
日本円、日本株、外貨の大きく三種に分ける
日本円>生活費、即時性のある貯金
日本株>外貨とのバランシング
外貨>日本円とのバランシング、旅行用
銀行を数社に分けていること自体にはそれほど意味がないので、
もう少し利用可能性の高い形に再編する
イーバンク>楽天証券へ
・イーバンクと楽天は現在同企業のため、この分散の意味はない
・いつでも株式購入可能なようにするため
・現金のままだと円預金と意味合いがほとんどかわらないため、無理ない範囲で株券に移行する
ドル預金>為替状況を見ながら生命保険へと移行
・現金は基本そのまま手をつけない
・即変更するのではなく、ドル高になったときに利用予定
住友支店
・パソコン購入用なので、特にさわらず
ソニーバンク
・外貨購入用に残しておくべきか?
・そもそもレバレッジも効いてないのであまり意味ないとは思うが...
日本円、日本株、外貨の大きく三種に分ける
日本円>生活費、即時性のある貯金
日本株>外貨とのバランシング
外貨>日本円とのバランシング、旅行用
銀行を数社に分けていること自体にはそれほど意味がないので、
もう少し利用可能性の高い形に再編する
イーバンク>楽天証券へ
・イーバンクと楽天は現在同企業のため、この分散の意味はない
・いつでも株式購入可能なようにするため
・現金のままだと円預金と意味合いがほとんどかわらないため、無理ない範囲で株券に移行する
ドル預金>為替状況を見ながら生命保険へと移行
・現金は基本そのまま手をつけない
・即変更するのではなく、ドル高になったときに利用予定
住友支店
・パソコン購入用なので、特にさわらず
ソニーバンク
・外貨購入用に残しておくべきか?
・そもそもレバレッジも効いてないのであまり意味ないとは思うが...
Mysql権限付与、パス
■Mysql
・ルートでログイン
・ユーザー作成
CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
・権限付与
grant all privileges on *.* to 'user'@'localhost' identified by 'pass';
・テーブルリフレッシュ
flush privileges;
・権限の確認
show grants for user@localhost;
■UNIX
・現在のパスの確認
printenv PATH
・bashのパスファイルを生成する
.bash_profile
・.bash_profile内にパスを書き込む
exprot PATH=$PATH:/Application/XAMPP/xampfiles/bin
・ターミナルを立ち上げ直す
・パス確認
printenv PATH
※カレントディレクトリ確認
pwd(print working directory)
■MacのFinder上でドット付きファイルを表示させる方法
defaults write com.apple.finder AppleShowAllFiles TRUE
「killall Finder」で設定を反映
※戻すとき
defaults write com.apple.finder AppleShowAllFiles FALSE
・ルートでログイン
・ユーザー作成
CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
・権限付与
grant all privileges on *.* to 'user'@'localhost' identified by 'pass';
・テーブルリフレッシュ
flush privileges;
・権限の確認
show grants for user@localhost;
■UNIX
・現在のパスの確認
printenv PATH
・bashのパスファイルを生成する
.bash_profile
・.bash_profile内にパスを書き込む
exprot PATH=$PATH:/Application/XAMPP/xampfiles/bin
・ターミナルを立ち上げ直す
・パス確認
printenv PATH
※カレントディレクトリ確認
pwd(print working directory)
■MacのFinder上でドット付きファイルを表示させる方法
defaults write com.apple.finder AppleShowAllFiles TRUE
「killall Finder」で設定を反映
※戻すとき
defaults write com.apple.finder AppleShowAllFiles FALSE
vimについて
■vimとは
vi から派生し、発展した高機能なテキストエディタである
■格納場所確認
vim --version
■vi, vimを使いやすく
・エディター実行時の色換え方法がわからない->シンタックスハイライト
:syntax on
・行数の表示
:set number
※ただし一時的。継続的に利用するにはvimrcに書き込む
一応双方をvimrcに記述したところ、期待した効果は得られた。
■参照サイト
http://blog.blueblack.net/item_107
■参考書籍
入門vi 第6版
http://www.amazon.co.jp/gp/product/4873110831/nase-22/ref=nosim
vi から派生し、発展した高機能なテキストエディタである
■格納場所確認
vim --version
■vi, vimを使いやすく
・エディター実行時の色換え方法がわからない->シンタックスハイライト
:syntax on
・行数の表示
:set number
※ただし一時的。継続的に利用するにはvimrcに書き込む
一応双方をvimrcに記述したところ、期待した効果は得られた。
■参照サイト
http://blog.blueblack.net/item_107
■参考書籍
入門vi 第6版
http://www.amazon.co.jp/gp/product/4873110831/nase-22/ref=nosim
2011年3月12日土曜日
災害時生存確認ツール
■目標
災害時の生存確認用ツールを作る
ひとまずはログイン認証と、ユーザーごとの確認者出し。
■機能
シンプルかつ必要なものを、を目標に、名前と生存状態のみを確認するインターフェイス
ユーザー毎に確認したい人達を登録可能
ログインの手間を避けるため、確認のメールを配布するようにし、ログイン用のアドレスをID、パスワード付きで載せる
そのアドレスからログインした際に、生存確認がONになり、関係するリストの生存確認が見られるようになる
■ログイン認証
isset 中身が入っているかいないかの確認
htmlspecialchars サニタイジング
if(isset($_POST['my_id'])){
$login_id = htmlspecialchars($_POST['my_id']);
}else{
echo "IDを入力してください。";
災害時の生存確認用ツールを作る
ひとまずはログイン認証と、ユーザーごとの確認者出し。
■機能
シンプルかつ必要なものを、を目標に、名前と生存状態のみを確認するインターフェイス
ユーザー毎に確認したい人達を登録可能
ログインの手間を避けるため、確認のメールを配布するようにし、ログイン用のアドレスをID、パスワード付きで載せる
そのアドレスからログインした際に、生存確認がONになり、関係するリストの生存確認が見られるようになる
■ログイン認証
isset 中身が入っているかいないかの確認
htmlspecialchars サニタイジング
if(isset($_POST['my_id'])){
$login_id = htmlspecialchars($_POST['my_id']);
}else{
echo "IDを入力してください。";
2011年3月10日木曜日
標語集
「キーとなるフィーチャーを学んで真似ること」
「最初に市場に投入するためにはスピードが重要」
「退屈を紛らわすのではなく、楽しみを届ける」
Zyngaプロダクト・デベロップメント・バイス・プレジデント
Mark Skaggs
1. 早めに公開しろ
「早めの公開」とは、バグだらけのものを公開しろという意味ではなく、最小のものを公開しろという意味だ。ユーザはバグを嫌う。でもすぐにバージョンアップされるなら、機能が最小限しかないバージョン1を気にしないようだ。
[1] バグだらけのものを公開し、すぐに修正しなかったので倒産するベンチャーはある。でも私は非常に早めに、安定はしているが最低限の機能しか持たないものを公開し、その後、それを速やかに改善したのに倒産してしまった企業を知らない。
ポール・グレアム「ベンチャー向けの最も難しい教訓」http://d.hatena.ne.jp/lionfan/20070130#1170772508
「宇宙に衝撃を与えたい」
スティーブジョブス
「人は論理で納得し、感情で動く」
カーネル・サンダース
"新しいアイディアなんてないんだ。ただ、初めて世の中で実現できたアイデアというものは存在する。"
[現代将棋と進化の物語]梅田望夫
「凡人は真似る。天才は盗む」
スティーブ・ジョブズ
"Anything that is a really valuable service that is used by a lot of people has a way to monetize,"
「本当に価値があって、大勢が使ってくれるサービスであれば、収益をあげる方法は必ずあるはず。」
Quora創業者、Charlie Cheever
1/24
『ボタンを押させる為の、押したくなるようなアイコンを作る』
林国夫
1/21
『秘すれば花なり秘せずは花なるべからず』
世阿弥
1/20
『観客の見る役者の演技は、離見(客観的に見られた自分の姿)である。「離見の見」、すなわち離見を自分自身で見ることが必要であり、自分の見る目が観客の見る目と一致することが重要である』
世阿弥
1/19
「自然を円筒、球、円錐として捉えなさい」
ポール・セザンヌ
1/17
”A million dollars aren't cool.
you know, what's cool?
A billion dollars."
ソーシャル・ネットワーク
1/11
”子ども達が興味あるものはいいデザイン”
”最終的に出来たものしか記憶に残らない”
吉岡徳仁
「最初に市場に投入するためにはスピードが重要」
「退屈を紛らわすのではなく、楽しみを届ける」
Zyngaプロダクト・デベロップメント・バイス・プレジデント
Mark Skaggs
1. 早めに公開しろ
「早めの公開」とは、バグだらけのものを公開しろという意味ではなく、最小のものを公開しろという意味だ。ユーザはバグを嫌う。でもすぐにバージョンアップされるなら、機能が最小限しかないバージョン1を気にしないようだ。
[1] バグだらけのものを公開し、すぐに修正しなかったので倒産するベンチャーはある。でも私は非常に早めに、安定はしているが最低限の機能しか持たないものを公開し、その後、それを速やかに改善したのに倒産してしまった企業を知らない。
ポール・グレアム「ベンチャー向けの最も難しい教訓」http://d.hatena.ne.jp/lionfan/20070130#1170772508
「宇宙に衝撃を与えたい」
スティーブジョブス
「人は論理で納得し、感情で動く」
カーネル・サンダース
"新しいアイディアなんてないんだ。ただ、初めて世の中で実現できたアイデアというものは存在する。"
[現代将棋と進化の物語]梅田望夫
「凡人は真似る。天才は盗む」
スティーブ・ジョブズ
"Anything that is a really valuable service that is used by a lot of people has a way to monetize,"
「本当に価値があって、大勢が使ってくれるサービスであれば、収益をあげる方法は必ずあるはず。」
Quora創業者、Charlie Cheever
1/24
『ボタンを押させる為の、押したくなるようなアイコンを作る』
林国夫
1/21
『秘すれば花なり秘せずは花なるべからず』
世阿弥
1/20
『観客の見る役者の演技は、離見(客観的に見られた自分の姿)である。「離見の見」、すなわち離見を自分自身で見ることが必要であり、自分の見る目が観客の見る目と一致することが重要である』
世阿弥
1/19
「自然を円筒、球、円錐として捉えなさい」
ポール・セザンヌ
1/17
”A million dollars aren't cool.
you know, what's cool?
A billion dollars."
ソーシャル・ネットワーク
1/11
”子ども達が興味あるものはいいデザイン”
”最終的に出来たものしか記憶に残らない”
吉岡徳仁
2011年3月9日水曜日
「ゲームデザイナーの仕事」からのメモ
■ゲームを構成する3つの要素
・イベント(楽しい、カタルシス、お得、トレードオフ、ジレンマ)
・勝敗条件(成否、生存、ゲーム目的、テーマ、ルール)
・快適性(ユーザビリティ、インターフェイス、操作性、インタラクティブ)
■オリジナリティーを付け加える場合の注意
「現存するウェブデザインの約束事を使わなくても許されるのは、自分がそれと置き換えようとしているものが、以下のふたつのどちらかでなければならないというくらいシビアに考えておきたい。
a.非常に明快で一目瞭然なので、学習する必要がない点にかけては”お約束”並みである。
b.少しくらいユーザーに学習の手間をかけさせるだけの価値はある。
自分のアイデアが”お約束”よりも優れているとわかっているときのみ(そして、そのアイデアを見せられた人全員が「おおーっ」と感嘆してくれるときのみ)、お約束ごとを無視する。でも、それほど確信がなかったり、人があまり感動してくれないなら、慣例に従うようにする」 ”ウェブユーザビリティの法則”
■ゲーム仕様書例
例えば「ババ抜き」
・プレイ人数:2名以上、5~6人程度まで。
・使用するアイテム:ジョーカー一枚を含めた53枚のトランプ
・ゲーム内容概略
・勝利条件:手札が、すべてなくなる
・敗北条件:ジョーカーが手札に残ったままゲームが終了する
・ゲームスタート前の準備:車座になって座るとゲームがスムーズに進行する....
・ゲーム進行
・追記:ゲームに負けた人は、モノマネをしなければならないなどのバツゲームを科すとゲームが盛り上がります
■印象的なセリフメモ
・「3つ以上は覚えられない」
・「新しい武器の売ってない町は、町じゃない」
>RPGには「買い物ゲーム」という面が確実にある
・お客さんは北斗の拳の村人。村人はケンシロウにあこがれても、自分からケンシロウになる努力はしない。お客さんはケンシロウが来るのを待ってる。
・ひとつしか使い道のない10種類よりも、10パターン使える1種類
■ゲームシナリオ構造
6パターン
・一本道
・分岐
ifを提示
・並列
途中経過をかき分けるために利用
・樹木
分岐と合流の繰り返しの因果関係の面白みが重要。
・マルチ
プレイヤーの自由度を優先させる構造
・モザイク
ときメモのようなパラメータ主導で多様なパターンを実現する構造
■ルイージ要素
ゲームデザインの定義by米光一成
・ゲーム
・インタラクション
・ジレンマ
ジレンマ(選択)>結果を返す(インタラクション)>学ぶ(ルール学習)
■ユニバーサルデザイン7原則
・どんな人にも公平に使えること
・使ううえで自由度が高いこと
・使い方が簡単で、直感的に理解できること
・必要な情報が、すぐに理解できること
・うっかりミスが危険につながらないこと
・ムリな姿勢や強い力を要求されず、ラクに使えること
・接近して使えるように、十分な大きさと空間が確保されていること
・イベント(楽しい、カタルシス、お得、トレードオフ、ジレンマ)
・勝敗条件(成否、生存、ゲーム目的、テーマ、ルール)
・快適性(ユーザビリティ、インターフェイス、操作性、インタラクティブ)
■オリジナリティーを付け加える場合の注意
「現存するウェブデザインの約束事を使わなくても許されるのは、自分がそれと置き換えようとしているものが、以下のふたつのどちらかでなければならないというくらいシビアに考えておきたい。
a.非常に明快で一目瞭然なので、学習する必要がない点にかけては”お約束”並みである。
b.少しくらいユーザーに学習の手間をかけさせるだけの価値はある。
自分のアイデアが”お約束”よりも優れているとわかっているときのみ(そして、そのアイデアを見せられた人全員が「おおーっ」と感嘆してくれるときのみ)、お約束ごとを無視する。でも、それほど確信がなかったり、人があまり感動してくれないなら、慣例に従うようにする」 ”ウェブユーザビリティの法則”
■ゲーム仕様書例
例えば「ババ抜き」
・プレイ人数:2名以上、5~6人程度まで。
・使用するアイテム:ジョーカー一枚を含めた53枚のトランプ
・ゲーム内容概略
・勝利条件:手札が、すべてなくなる
・敗北条件:ジョーカーが手札に残ったままゲームが終了する
・ゲームスタート前の準備:車座になって座るとゲームがスムーズに進行する....
・ゲーム進行
・追記:ゲームに負けた人は、モノマネをしなければならないなどのバツゲームを科すとゲームが盛り上がります
■印象的なセリフメモ
・「3つ以上は覚えられない」
・「新しい武器の売ってない町は、町じゃない」
>RPGには「買い物ゲーム」という面が確実にある
・お客さんは北斗の拳の村人。村人はケンシロウにあこがれても、自分からケンシロウになる努力はしない。お客さんはケンシロウが来るのを待ってる。
・ひとつしか使い道のない10種類よりも、10パターン使える1種類
■ゲームシナリオ構造
6パターン
・一本道
・分岐
ifを提示
・並列
途中経過をかき分けるために利用
・樹木
分岐と合流の繰り返しの因果関係の面白みが重要。
・マルチ
プレイヤーの自由度を優先させる構造
・モザイク
ときメモのようなパラメータ主導で多様なパターンを実現する構造
■ルイージ要素
ゲームデザインの定義by米光一成
・ゲーム
・インタラクション
・ジレンマ
ジレンマ(選択)>結果を返す(インタラクション)>学ぶ(ルール学習)
■ユニバーサルデザイン7原則
・どんな人にも公平に使えること
・使ううえで自由度が高いこと
・使い方が簡単で、直感的に理解できること
・必要な情報が、すぐに理解できること
・うっかりミスが危険につながらないこと
・ムリな姿勢や強い力を要求されず、ラクに使えること
・接近して使えるように、十分な大きさと空間が確保されていること
3/9記録
■履歴
・Wallaby実験
http://labs.adobe.com/technologies/wallaby/
■日経記事
http://www.nikkei.com/tech/personal/article/g=96958A88889DE0E6E4E7E7E2E0E2E2EAE2E1E0E2E3E3E2E2E2E2E2E2;df=2;p=9694E3EAE3E0E0E2E2EBE0E4E2E7
”InfinityBladeの開発では、2週間で100種類ものゲームデザインを作成した。そこから、指1本でプレーできて1つのセッションが2分間で終わり、容易に理解できるがマスターするのは難しいというコンセプトを練り上げた。開発期間は半年あまり。”
・Wallaby実験
http://labs.adobe.com/technologies/wallaby/
■日経記事
http://www.nikkei.com/tech/personal/article/g=96958A88889DE0E6E4E7E7E2E0E2E2EAE2E1E0E2E3E3E2E2E2E2E2E2;df=2;p=9694E3EAE3E0E0E2E2EBE0E4E2E7
”InfinityBladeの開発では、2週間で100種類ものゲームデザインを作成した。そこから、指1本でプレーできて1つのセッションが2分間で終わり、容易に理解できるがマスターするのは難しいというコンセプトを練り上げた。開発期間は半年あまり。”
2011年3月8日火曜日
MySqlオートインクリメントリセット
■オートインクリメントリセット
オートインクリメントで追加される値がずれてきたのでまずリセット
alter table <テーブル名> auto_increment = 1;
※現在の末尾の値+1に自動的に補正される
オートインクリメントで追加される値がずれてきたのでまずリセット
alter table <テーブル名> auto_increment = 1;
※現在の末尾の値+1に自動的に補正される
2011年3月7日月曜日
蜂の生態を調べてゲームに応用する
■構成要因
・女王蜂(身体の大きさ働き蜂の約3倍)
・働き蜂(雌)(群れの95%)
・雄蜂
■食餌
ローヤルゼリー>女王バチ
花粉、蜂蜜>働き蜂
■寿命
女王蜂(平均3年、6~8年生きる例もあるらしい、働き蜂の30倍)
働き蜂(1ヶ月余り)
■目的
蜜を集める
■死ぬとき
刺したら自分も死ぬ
交尾したら死ぬ
※基本どっちも器官がちぎれるかららしい
■生産物
蜜
ローヤルゼリー(超栄養食品)
プロポリス(抗菌物質)
■女王蜂
16日で出房(雄蜂23日、働き蜂21日)、羽化
一週間で発情
出房し、地上から10~40メートルの空中で他の巣の雄蜂も含んだ多数の雄蜂と交尾
雄蜂と交尾して一週間程度で産卵
その後卵を産み続ける(1500~2000/day)
女王物質というフェロモンを出して群れを統率
■働き蜂
内勤:育児、掃除、巣作り、貯蜜
外勤:門番、戦闘、蜜や花粉収集
・女王蜂(身体の大きさ働き蜂の約3倍)
・働き蜂(雌)(群れの95%)
・雄蜂
■食餌
ローヤルゼリー>女王バチ
花粉、蜂蜜>働き蜂
■寿命
女王蜂(平均3年、6~8年生きる例もあるらしい、働き蜂の30倍)
働き蜂(1ヶ月余り)
■目的
蜜を集める
■死ぬとき
刺したら自分も死ぬ
交尾したら死ぬ
※基本どっちも器官がちぎれるかららしい
■生産物
蜜
ローヤルゼリー(超栄養食品)
プロポリス(抗菌物質)
■女王蜂
16日で出房(雄蜂23日、働き蜂21日)、羽化
一週間で発情
出房し、地上から10~40メートルの空中で他の巣の雄蜂も含んだ多数の雄蜂と交尾
雄蜂と交尾して一週間程度で産卵
その後卵を産み続ける(1500~2000/day)
女王物質というフェロモンを出して群れを統率
■働き蜂
内勤:育児、掃除、巣作り、貯蜜
外勤:門番、戦闘、蜜や花粉収集
2011年3月6日日曜日
韓国語学習ツールを作る
■目標
DBを利用して、韓国語単語をチェックする学習ツールを作る
■DB作成
・ルートでログイン
mysql -u root -p
・ユーザー作成
> create user 'test'@'localhost' identified by 'test';
※もしコマンドを打ち間違えて ->から抜けられない場合、/cで抜けられる
・ルートでログインしてDB作成と、権限付与
>create database studyk;
>grant all privileges on studyk.* to 'test'@'localhost' identified by 'test';
・phpmyadminで韓国語を入れるkwordsテーブルを作成
・再度ユーザーでログインし確認
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| 100game |
| studyk |
+--------------------+
mysql> show tables;
+------------------+
| Tables_in_studyk |
+------------------+
| kwords |
+------------------+
mysql> show fields from kwords;
+-------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| word | text | NO | | NULL | |
| level | int(11) | NO | | NULL | |
| date | date | NO | | NULL | |
+-------+---------+------+-----+---------+----------------+
・テーブル作成
kwords(id、word、jword(日本語の対応ID)、level、date)
jwords(id、word、kword(韓国語対応ID)、date)
・データの更新テスト
update kwords set level = 2 where id = 2;
■PHPからMySQLに接続
※このページが参考になった
http://park18.wakwak.com/~little-box/Dreamweaver/sql009.htm
・DBに接続
$con = mysql_connect("localhost","test","test")
or die("接続出来ません");
mysql_select_db('studyk', $con)
or die("エラー");
・SQL文を実行
$res = mysql_query('select * from jwords', $con)
or die('SQLエラー'.$sql);
・結果を表示させる
while($show = mysql_fetch_array($res))
{
echo "id=".$show["id"];
echo "word=".$show["word"];
echo "kwordid=".$show["kword"];
echo "date=".$show["date"];
}
・SQLをクローズ
mysql_close($con);
DBを利用して、韓国語単語をチェックする学習ツールを作る
■DB作成
・ルートでログイン
mysql -u root -p
・ユーザー作成
> create user 'test'@'localhost' identified by 'test';
※もしコマンドを打ち間違えて ->から抜けられない場合、/cで抜けられる
・ルートでログインしてDB作成と、権限付与
>create database studyk;
>grant all privileges on studyk.* to 'test'@'localhost' identified by 'test';
・phpmyadminで韓国語を入れるkwordsテーブルを作成
・再度ユーザーでログインし確認
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| 100game |
| studyk |
+--------------------+
mysql> show tables;
+------------------+
| Tables_in_studyk |
+------------------+
| kwords |
+------------------+
mysql> show fields from kwords;
+-------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| word | text | NO | | NULL | |
| level | int(11) | NO | | NULL | |
| date | date | NO | | NULL | |
+-------+---------+------+-----+---------+----------------+
・テーブル作成
kwords(id、word、jword(日本語の対応ID)、level、date)
jwords(id、word、kword(韓国語対応ID)、date)
・データの更新テスト
update kwords set level = 2 where id = 2;
■PHPからMySQLに接続
※このページが参考になった
http://park18.wakwak.com/~little-box/Dreamweaver/sql009.htm
・DBに接続
$con = mysql_connect("localhost","test","test")
or die("接続出来ません");
mysql_select_db('studyk', $con)
or die("エラー");
・SQL文を実行
$res = mysql_query('select * from jwords', $con)
or die('SQLエラー'.$sql);
・結果を表示させる
while($show = mysql_fetch_array($res))
{
echo "id=".$show["id"];
echo "word=".$show["word"];
echo "kwordid=".$show["kword"];
echo "date=".$show["date"];
}
・SQLをクローズ
mysql_close($con);
2011年3月4日金曜日
スマートフォン用フレームワーク
■コロナ
どちらかと言えば、アクションゲーム向け
http://www.anscamobile.com/corona/
■チタニウム
どちらかと言えば、ビジネス向き
http://www.appcelerator.com/products/titanium-mobile-application-development/
どちらかと言えば、アクションゲーム向け
http://www.anscamobile.com/corona/
■チタニウム
どちらかと言えば、ビジネス向き
http://www.appcelerator.com/products/titanium-mobile-application-development/
Mysqlコマンド
■目標
mysqlの基本コマンドをコマンドラインでやってみる
■ログイン
mysql -u username -ppass
show databases;
・useで使用するテーブルを指定
use study;
・showでテーブルを確認
show tables;
・select文
select * from lec1;
・where句
条件検索
select * from lec1
where
price < 1000;
mysqlの基本コマンドをコマンドラインでやってみる
■ログイン
mysql -u username -ppass
show databases;
・useで使用するテーブルを指定
use study;
・showでテーブルを確認
show tables;
・select文
select * from lec1;
・where句
条件検索
select * from lec1
where
price < 1000;
2011年3月3日木曜日
Yiiフレームワーク導入
■目標
Yiiフレームワークを導入し、最終的には自分の作業管理ツールを作る
■用語
OOP:Object Oriented Programming
オブジェクト指向プログラミング。
MVC:Model-View-Controller
ソフトウェアの設計モデルの一つで、処理の中核を担う「Model」、表示・出力を司る「View」、入力を受け取ってその内容に応じてViewとModelを制御する「Controller」の3要素の組み合わせでシステムを実装する方式。
■ステップ
1.ファイルをダウンロード
http://www.yiiframework.com/
2.tarファイルを解凍
windowsでunixコマンドが使えなさそうなので、
Lhaplusで解凍。
コマンドラインで実行するなら、以下の方法か?
a.サーバーにupload
b.tera termで接続して、unixコマンド実行
c.クライアントにダウンロード
3.phpのパスを通す
http://pocketstudio.jp/win/xp/path.html
a.マイコンピュータ>プロパティ>システムの詳細設定>環境変数
b.システム環境変数 Pathの値を追加
4.Yiiアプリケーションの作成
%php YiiRoot/framework/yiic.php webapp WebRoot/testdrive
■Mysqlの起動
1.パスを通す
2.ルートユーザーで実行
%mysql -u root
3.ユーザーを作る
CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
4.データーベースの一覧を見る
show databases;
■SQLとデータベースをつなぐ
/protected/config/main.phpの中身書き換え
'db'=>array(
'connectionString' => DB_SERVER.':host='.DB_HOST.';dbname='.DB_NAME,
'emulatePrepare' => true,
'username' => DB_USER_NAME,
'password' => DB_USER_PASS,
'charset' => 'utf8',
),
■giiを利用してプログラムをジェネレートする
/protected/config/main.php
GiiModuleを利用可能にする
'modules'=>array(
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'pick up a password here',
),
),
・実行用のアドレス
index.php?r=gii
※ネット上で公開する場合、gii部分にコメントアウトされたフィルタリング部分を以下に書き換え
'ipFilters'=>false,
Yiiフレームワークを導入し、最終的には自分の作業管理ツールを作る
■用語
OOP:Object Oriented Programming
オブジェクト指向プログラミング。
MVC:Model-View-Controller
ソフトウェアの設計モデルの一つで、処理の中核を担う「Model」、表示・出力を司る「View」、入力を受け取ってその内容に応じてViewとModelを制御する「Controller」の3要素の組み合わせでシステムを実装する方式。
■ステップ
1.ファイルをダウンロード
http://www.yiiframework.com/
2.tarファイルを解凍
windowsでunixコマンドが使えなさそうなので、
Lhaplusで解凍。
コマンドラインで実行するなら、以下の方法か?
a.サーバーにupload
b.tera termで接続して、unixコマンド実行
c.クライアントにダウンロード
3.phpのパスを通す
http://pocketstudio.jp/win/xp/path.html
a.マイコンピュータ>プロパティ>システムの詳細設定>環境変数
b.システム環境変数 Pathの値を追加
4.Yiiアプリケーションの作成
%php YiiRoot/framework/yiic.php webapp WebRoot/testdrive
■Mysqlの起動
1.パスを通す
2.ルートユーザーで実行
%mysql -u root
3.ユーザーを作る
CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
4.データーベースの一覧を見る
show databases;
■SQLとデータベースをつなぐ
/protected/config/main.phpの中身書き換え
'db'=>array(
'connectionString' => DB_SERVER.':host='.DB_HOST.';dbname='.DB_NAME,
'emulatePrepare' => true,
'username' => DB_USER_NAME,
'password' => DB_USER_PASS,
'charset' => 'utf8',
),
■giiを利用してプログラムをジェネレートする
/protected/config/main.php
GiiModuleを利用可能にする
'modules'=>array(
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'pick up a password here',
),
),
・実行用のアドレス
index.php?r=gii
※ネット上で公開する場合、gii部分にコメントアウトされたフィルタリング部分を以下に書き換え
'ipFilters'=>false,
2011年3月1日火曜日
α改善用ゲームデザイン知識習得
■目的
α改善用ゲームデザイン知識集直
■参考書籍
ゲームデザイナーの仕事
■ゲーム作成者は何はなくともゲームを知るべき
・何故おもしろいのか
・どこに感動したのか
・何が心に残るのか
■企画とは
いいぞと判断できるアイデアに実現性を持たせると「企画」になる
・企画は伝えること
・大切なのは”面白いこと”であって、斬新であって珍しいことではない
・通すコツは「信用」「実績」「コネ」
・最低限必要なのは
「表紙」- タイトル、ジャンル、発売時期、お金関連、プラットフォーム、日時、作成者氏名
「企画意図」- 何故儲かるのか(キャラものだから、人気のあるテーマだから…)
「企画概要」- この企画のどこが面白いのか(コンセプト、ゲームシステム、キャラクター要素、世界観など)
「企画内容」- ゲーム性、ルール、物語、キャラクター、世界観
ときに「添付資料」
・そもそも企画は簡単に通らないものだと心得る
■企画書をまとめる
・アイデアを選り分ける(企画書に載せるもの・載せないが使う予定のもの)
・どこが面白いのか→こうだから面白い
・どこが売れるポイントか→誰に売るのか、なぜ売れるのか、制作する理由はなにか(商品価値)
※数値的アプローチ
・どこがウリなのか
※質的アプローチ
・一発で伝える工夫をする(企画のよさ(面白さ、ウリ)が一発で伝わる、ごく短い時間で伝達可能な情報)
α改善用ゲームデザイン知識集直
■参考書籍
ゲームデザイナーの仕事
■ゲーム作成者は何はなくともゲームを知るべき
・何故おもしろいのか
・どこに感動したのか
・何が心に残るのか
■企画とは
いいぞと判断できるアイデアに実現性を持たせると「企画」になる
・企画は伝えること
・大切なのは”面白いこと”であって、斬新であって珍しいことではない
・通すコツは「信用」「実績」「コネ」
・最低限必要なのは
「表紙」- タイトル、ジャンル、発売時期、お金関連、プラットフォーム、日時、作成者氏名
「企画意図」- 何故儲かるのか(キャラものだから、人気のあるテーマだから…)
「企画概要」- この企画のどこが面白いのか(コンセプト、ゲームシステム、キャラクター要素、世界観など)
「企画内容」- ゲーム性、ルール、物語、キャラクター、世界観
ときに「添付資料」
・そもそも企画は簡単に通らないものだと心得る
■企画書をまとめる
・アイデアを選り分ける(企画書に載せるもの・載せないが使う予定のもの)
・どこが面白いのか→こうだから面白い
・どこが売れるポイントか→誰に売るのか、なぜ売れるのか、制作する理由はなにか(商品価値)
※数値的アプローチ
・どこがウリなのか
※質的アプローチ
・一発で伝える工夫をする(企画のよさ(面白さ、ウリ)が一発で伝わる、ごく短い時間で伝達可能な情報)
登録:
投稿 (Atom)