2011年12月26日月曜日

退蔵益ビジネス

退蔵益とは、クーポンやチケット、電子マネーなどで使われなかったサービスの前払い金による利益。
グルーポンビジネスの肝はこれ。

参照:
http://skillstorage.com/archives/001119.html
http://blog.livedoor.jp/mktgcfo/archives/2819395.html

・半額東京
ホリエモンの会社、現在休業中
http://hangakutokyo.jp/

2011年12月7日水曜日

Macのtime machineを再認識させる

Macを修理にだしたら、いままでのTime Capsuleを認識しなくなった。

以下の方法で外部NASを再認識できた。

ターミナルでコマンド入力
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1

参照:
http://www.sky-s.net/sky-blog/archives/2010/04/25-230923.php

2011年11月16日水曜日

kindleの最終ページ同期をリセットする方法

参照;
http://www.kindleboards.com/index.php/topic,25545.0.html


Solution – Reset the Furthest Page Read
Use the same device for all of the steps below before opening the book on a different one, the below example is using a single Kindle

1. Set the Synchronization off on your Amazon Account (Go to Amazon -> Your Account -> Manage Your Kindle -> Manage Kindle Device Synchronization -> click the “Turn the Synchronization off” button to turn off the synchronization)
2. Wait about a minute, then exit & re-enter your book
3. Go to the beginning of your book on the Kindle
4. Sync to the furthest page. If it tells you that you’re on the furthest location, you’re good to go.
1. If not, select Cancel on the sync message, exit and re-enter the book to attempt the reset again. (I think that the Amazon databases have to get reset-thus the delay; in any case, it always works for me on the 2nd attempt)
5. Turn on the synchronization setting on your Account – your Furthest Page read will be reset to your new location.
6. On your other devices–if further along in the book, you will have to go to the beginning of the book, but once done the Furthest Page Read location will sync with your Kindle.

意訳
1 アマゾンアカウントに行き、同期をオフにする
2 同期オフが浸透するまで待ち、キンドルで読んでいる本を閉じて、再度開く
3 ページの一番最初に行き、同期を試す
4 現在のページがfurthest locationになればOK、そうでなければもうしばらく待って、さらに試す
5 アマゾンアカウントの同期をオンにするー同期すれば現在のページがfurthest locationになる
6 ほかのデバイスもきちんとページを戻しておかないと、そっちに同期されるのできをつけてね

2011年9月24日土曜日

ソーシャルゲーム成功・失敗パターン

http://game.watch.impress.co.jp/docs/news/20110919_478680.html?ref=twrank

■失敗要因
・社内の余剰リソースでやってしまう
・仕組みがよくわからないまま外注に丸投げ
・作ったあと何のフォローもしない


■成功要因
・日々の状況に合わせて、迅速にゲーム内容を変化させていくスピード感
・製造業からサービス業への意識転換
・エース級人材の投入 


Failure factor
-Created by surplus staff
-Outsourcing without any understanding about social game
-No follow up and update

Success factor
-Update daily and follow the situation quickly
-Set your mind on service business from manufacturing
-Created by resourceful staff

2011年6月20日月曜日

Amazonにyii

■久しぶりなので基礎からやり直し
・ログイン
sshでログイン($ssh -i 'user_key.pem' ec2-user@'ip address')
・yiiのインストール
wget http://yii.googlecode.com/files/yii-1.1.7.r3135.tar.gz
※wgetのファイル先を調べるために、ダウンロードファイルのページに行き、
ソースコードのリンク先をコピーした
・yiiの展開
tar zxvf filename
・Yiiアプリケーションの作成
php framework/yiic.php webapp /var/www/html/yii/app

ところが、timezoneエラーが出てしまう
バージョン落としてやってみてもだめだ。
今度考えよう。

2011年5月14日土曜日

アプリ登録 アンドロイドマーケット

登録してあったアンドロイドマーケットに、ためしにアプリを登録してみる。

■署名
・inventorで作ったアプリをダウンロードして、apkファイルをアップロードしようとしたところ、下記エラーが出てはじかれる。
”Market requires versionCode to be set to a positive 32-bit integer in AndroidManifest.xml.
Market requires versionName to be set in AndroidManifest.xml.”

どうやら、app inventor自体では、versonCodeとNameを追加することは出来なさそうなので、
apkを解凍して、codeとnameを追加しようとしてみる。

android-apktoolでapkファイルを解凍
http://code.google.com/p/android-apktool/
・apktoolをダウンロード
・解凍したファイルを/usr/local/binに移動
・aapt実行

でいけるはずなのだが、何故かファイルを認識せず。
とりあえず、ここで時間かけるより他のアプリを作り直してアップすることにする。


ともかく、アンドロイドマーケットにアップするには署名が必要なようなので、
以下の手順でkeystoreを作成し、付与する。

1. keystoreを作成する
$ keytool -genkey -keystore test.keystore -validity 10000 -alias test

2.アプリに署名する
$ jarsigner -keystore test.keystore -verbose test.apk test

ちなみにkeystoreが出来ていれば、eclipseで
android tools>Export Signed Application Packageを選んで、手順に従って署名したapkを作れる

.apkファイルのアップロードがエラー無く出来ればOK。

2枚の320 x 480, 480 x 800,480 x 854, 1280 x 800のスクリーンショット画像と、
512×512のHigh Resolution Application Iconが必要なので、それをあわせてアップロードして、publish.

マーケットで検索し、自分のアプリ発見。

ダウンロードしてみると、スマフォ上で「正しく署名されていないパッケージファイルです」と表示される。
どうやら、デバッグなので同一アプリを入れていると出てくる問題らしい。でも一応ダウンロードは出来ていて、実行も出来た。


■参照
・Androidアプリケーションを公開するために:署名と配置の方法
http://japan.internet.com/developer/20090213/26.html

・Androidアプリに証明書を入れてちゃんとデジタル署名する方法
http://www.adamrocker.com/blog/232/signing_for_publish_android_application.html

・APKファイルの書き出しと配布
http://d.aoikujira.com/jsWaffle/wiki/index.php?%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E9%85%8D%E5%B8%83%E6%96%B9%E6%B3%95

・AndroidのLauncherアイコンの作り方
http://blog.asial.co.jp/693


・Android Market登録方法
http://www.taosoftware.co.jp/android/market/market_start.html

・タオの新人研修 Androidプログラミング 初めの1歩
http://thinkit.co.jp/article/1193/1
・第1回 「ドロクリ」を使って簡単にアンドロイドアプリを作ろう
http://thinkit.co.jp/story/2011/01/06/1957

2011年5月9日月曜日

MacキャプチャとEclipse行数表示

■Macで画面キャプチャ
コマンド+Shift+4 一部撮影
コマンド+Shift+3 全体撮影

■Skitch
フリーソフトのSkitchでキャプチャー画像の加工
skitch.com

■Eclipseで行表示
・Preference-General-Editors-TextEditors
>Show line nombersをクリック

Corona SDK

■ひとまず動かしてみる

・コロナ用フォルダを作成
・main.luaファイルを作り、その中にプログラムを記述
local textObject = display.newText("Hello World!", 50, 50, nateive.systemFont, 24)
textObject:setTextColor(255, 255, 255)
・Corona Simulatorを起動し、ファイルを選択するとシミュレーターに結果が表示される
・シミュレーターのfileからbuildを選び、項目を埋めbuildするとapkが作成される
・apkをdorpboxなどで実機にダウンロードすれば、実機でファイルを動かすことができる

2011年5月8日日曜日

SugarSyncで罠にはまる

■SugarSyncが起動しない
Mac起動時/アプリ起動時にバーの上に虹色の読み込みマークが表示され、そのまま進まない

■発生までのステップ
1.日本版で登録
2.ダウンロードして一旦利用する
3.日本版を解約
4.英語版で登録
5.英語版で利用
6.Mac再起動
7.SugarSyncが読み込みにいったまま戻らなくなる

・状態
web上は通常通り利用可能
他のパソコンでも英語版で問題なく利用可能
日本版を登録して同期させていたパソコンでのみ、起動が不可能な状態
→日本版と英語版の競合か?

■まずやってみた対策
・アプリ削除、再インスト、再起動
→立ち上げ時にどこを読み込みに行くかのデータがどっかにあるらしく、問題解決せず
・日本運営のBBソフトサービスに問い合わせ中
→解決したので、対応内容を追記予定

※追記・サポートセンターの返答
コンテンツ内の「SugarSync.Uninstaller.command」を 利用してUninstせよとのこと
こんなとこにアンインストールがあったのねぇ…

■問い合わせ後に試したこと
・/ユーザ名/ライブラリ/Preferences以下のplistを削除
→とくに効果なし
・/ユーザ名/Library/Application Support/SugarSync/のファイルを削除
→解決へ

■解決
/ユーザ名/Library/Application Support/SugarSync/のファイルを全削除
→再起動時にメルアドとパスワードを求められ、無事英語版へアクセスし通常起動

※どのファイルがログインデータを保持してるかは(ひとつひとつ調べなかったし)わからなかった
※ちなみにsc1.logがログデータらしい

/Library/LaunchDaemons/com.sharpcast.xfsmond.plist
ついでにこれもSugarSync関係のデータらしい

■参照
http://mas0061.blogspot.com/2009/09/sugarsync-manager.html

htdocsのリンクをホームに作る

すぐ忘れるので再録

■Xamppのhtdocsへのエイリアスをホームディレクトリにつくる
なぜだか右クリックでエイリアスの作成が出てこなかったので、
option+commandを押しながらフォルダのドラッグ・アンド・ドロップして作成

上記方法では、ターミナル上での移動ができないため、ターミナル上で再度エイリアス(シンボリックリンク)を作成
ln -s /Application/XAMPP/xamppfiles/htdocs /Users/"name"

2011年5月5日木曜日

Mac Book Air

Mac Book AirのUSキーボードを購入

■コマンドキーを「英数/かな」として使う
http://pqrs.org/macosx/keyremap4macbook/index.html.ja
・KeyRemap4MacBookをインストール
・再起動
・Change KeyのFor Japaneseからコマンドキーの動作を優先モードを選択

■参照
・MacBook Air を買ってきて最初にやったことまとめ
http://www.msng.info/archives/2011/02/macbook-air-initial-settings.php

※ただしFileVaultはリスクが高いようなので、しないほうがよさそうだ
・Time MachineとFileVault、など
http://blog.livedoor.jp/second_flush/archives/51069563.html
http://veadardiary.blog29.fc2.com/blog-entry-120.html
http://papativa.jp/archives/2114

2011年4月25日月曜日

LinkStation LS-QL/1D

■データバックアップ用に買ったLinkStation LS-QL/1Dの設定まとめ
・同時に2TBHDDを購入

■HDDのフォーマット形式
・フォーマット形式はXFS以外選べない
・XFSはLinuxフォーマットでありMac/Winでは読み込めない
・LinkStationのUSBに接続したら読めるというネット情報があったが、HDDの全体を読み込んでくれない
・USBをフォーマットする際には、FAT形式などが選べるが、FATでフォーマットしてもLinkStationが正常に認識しない
・XFS方式は、KNOPPIXなどをCD使って立ち上げれば読めるらしい
→結局あきらめてXFSに2台目をフォーマットして利用


■接続
・NASNavigater2というのが付いているが、使いたくないので他の方法を探す
・FinderのConnect to Serverを利用して、smb://localaddressで接続できた
・LinkStationのコンソールで設定すればFTPも可能

■TimeMaschineのバックアップ設定
・LinkStationのコンソールで対象フォルダを指定し、機能を使用するに設定
・併せてコンソール上でイメージファイルを作成する
・この際、対象ホスト名とMACアドレスが必要となるのだが、MACアドレスが罠
・ホスト名は、ターミナルでhostnameと打って出てくる名前の、.localを除いた前部分
・MACアドレスは、About This Macで出てくる情報のEthernet: MAC Address: ではなく、
Network PreferencesでEthernetを選んで、AdvancedのEthernetタブに表示されているEthernet IDだった。
・Time Machine自体は動くようになったが、今度は容量制限をどうするか調べ中
・下記参照の方法でやっても、どうして実行時に最大容量である1.99TBまで最大化されてしまう(同時にDiscUtilityを見ると、きちんとリサイズされた550GBで表示されている)


・参照
http://www.sky-s.net/sky-blog/archives/2010/04/25-230923.php

2011年4月22日金曜日

Amazon Wev Service利用その3'mysql'

■wordpress実行の際のエラー対処
お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。
と、でてしまう。

■mysql処理
・ルートにパスワード設定
mysqladmin -u root password NEWPASS

・パスワードを使ってルートでログイン
CREATE USER 'user'@'localhost' IDENTIFIED BY 'pass';
GRANT ALL PRIVILEGES ON *.* to 'user'@'localhost' IDENTIFIED BY 'pass';
flush privileges;

create database wordpressdb;

・wordpressのconfig設定を変える
/var/www/html/wordpress
wordpressを入れてあるディレクトリに移動

cp wp-config-sample.php wp-config.php
configファイルをコピー

vim wp-config.php
vimで以下の中身を書き換え

/** WordPress のためのデータベース名 */
define('DB_NAME', 'database_name_here');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'username_her');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'password_here');

上の三つを書き換えるのだが、
書き換える場所を、左側のシングルクオーテーションで囲まれた場所だと思い込み、
何度やっても’エラー: データベースに接続できません’という表示が解消されず、はまってしまっていた。

正しい書き換えは以下の部分。
'database_name_here'
'username_her'
'password_here'

気づいてみれば下らないことだが、はまる時ってこんなもの。


■参照
MySQL Change root Password
http://www.cyberciti.biz/faq/mysql-change-root-password/

2011年4月21日木曜日

メールヘッダー

1.Return-Path
2.X-Original-To
3.Delivered-To
4.Received
Received: from 送信したパソコン名またはホスト名など (右記のIPアドレスのホスト名[送信したコンピュータのIPアドレス])
by 受け取ったサーバ名 with SMTPなどの転送方法 id 転送時のID番号
for 宛先のメールアドレス; 処理時刻
5.Message-ID
メールを特定するためのユニークなID。以下のフォーマットをとる。
Unique ID@ドメイン名(FQDN)
このIDは全世界で唯一のものにならなくてはならないとされる。そのため、ドメイン名はメールサーバのFQDNを用いて、Unique IDは決定方法は任意だが、メールサーバでユニークになるように、プロセスIDや時刻との組み合わせが用いられることが多い
6.From
7.To
8.Reply-To
9.Subject
10.Date
11.MIME-Version
12.Content-Type
13.Content-Transfer-Encoding
14.X-Mailer


■参照
http://memorva.jp/internet/spam_virus/mail_header.php

2011年4月17日日曜日

Amazon Wev Service利用その2

■固定IPの紐付け
・Elastic IPsを選ぶ
・Addressをallocateし、Associate Addressでインスタンスと紐づける

■ログイン
・認証キーをルートに置く
・chmod 400 'key-file'
・sshでログイン($ssh -i 'user_key.pem' ec2-user@'ip address')
※ちなみにインスタンスを右クリックしてconnectを選ぶと接続方法のヘルプが出る。
ルートでのログインを指示されるが、ルートでログインすると以下の文がでるので、
Please login as the ec2-user user rather than root user.
ec2-userでログインする

■yumコマンドを実行してappachを入れる
・sudoコマンドでrootユーザーになる
・yum install httpd
・起動(/etc/init.d/httpd start)
※Security Groupで80番ポートの許可をapplyしておく(最初add ruleした後applyし忘れててアクセスできなかった)

・yum install php
・/etc/init.d/httpd restart

・yum install mysql
・yum install mysql-server
・/etc/init.d/mysqld start

■利用料金の確認
・AWS Management ConsleのAccountをクリック
・Account Activityをクリック

チェックしてみたところ、free tierのはずがお金がかかってることに気づく。(結局10時間ぐらい稼働してて$1.00ぐらい)
実は、無料のmicroではなく、small instanceを選んでいた

すぐに、small instanceをterminate
microで作り直す

新しいインスタンスに再度IPをassociateしなおしてsshでログインしようとしたら出来ない。
userの下にある /.ssh/known_hosts のメッセージを消去しないとだめらしい。

削除して再度ログイン。今度は成功

■Apacheのルートディレクトリ
/var/www/html/

■wordpressインスト
wget http://ja.wordpress.org/latest-ja.tar.gz
ar zxvf latest-ja.tar.gz -C /var/www/html/

■php.iniの場所
/etc/php.ini


■参照
http://tak86it105.seesaa.net/index-2.html

2011年4月15日金曜日

【ひとりStartMac】から学ぶ

http://www.ideaxidea.com/archives/category/startmac

■特に感動したもの
・Shift+Optionを押しながらボリュームを調整すると1/4ずつあげたりさげたり出来る
・ターミナルでsayコマンドを使うと、発音してくれる
・ターミナルで「pbcopy」「pbpaste」を使うと、クリップボードにコピー、クリップボードからペーストできる
$ ls -la | pbcopy

2011年4月13日水曜日

Amazon Wev Service利用

■EC2を無料で使ってみる
・アカウント登録
・クレジットカード登録
・住所(通常のアマゾンから引用可能だった)
・電話確認
着信>暗証番号入力
・サブスクリプション認証
・email認証
→使用可能に

■作業環境構築
・認証用のキーを作成する
・インスタンスを作成する(フリー枠を利用)
http://aws.amazon.com/jp/free/

2011年4月10日日曜日

アンドロイドアプリ1

■main.xmlのタグ
・xmlns:android
アンドロイドレイアウト用であることを示すためのもの。必ず以下の用に競ってする
・android:orientation="vertical"
部品を並べる向き
・ android:layout_width="fill_parent"
android:layout_height="fill_parent"
"fill_parent"は幅一杯に拡げて表示

2011年4月7日木曜日

JSON形式

■通常配列との比較
・JSON形式
$test = array('1'=>'apple','2'=>'orange','3'=>'peach');
echo json_encode($test);

{"1":"apple","2":"orange","3":"peach"}


・通常配列表示
$test = array('1'=>'apple','2'=>'orange','3'=>'peach');
print_r ($test);

Array ( [1] => apple [2] => orange [3] => peach )


$test = array('1'=>'apple','2'=>'orange','3'=>'peach');
$test2 = join("",$test);
echo $test2;

appleorangepeach

配列を理解する

■配列
input type="checkbox" name="arr[]" value="test1"
input type="checkbox" name="arr[]" value="test2"
input type="checkbox" name="arr[]" value="test3"
とすると、
arr[0] = test1
arr[1] = test2
arr[2] = test3
となる
submitで一括で送り、受け取り同様に
$POST_['arr'][0]
$POST_['arr'][1]
$POST_['arr'][2]
でとれる。


satart.php

6 <form method="post" action="next.php">
7
8 <?php
9 $a = 1;
10 while($a < 5){ ?>
11 <input type="checkbox" name="arr[]" value="<?php print $a; ?>"><?php print $a; ?>
12 <br />
13 <?php $a++;
14 }
15 ?>
16 <input type="submit" value="GO">
17 </form>


next.php

1 <?php
2
3 if(isset($_POST['arr'])) {
4 for ( $i = 0; $i < count( $_POST['arr']); $i++) {
5 echo $_POST['arr'][$i]."<br />";
6 }
7 }
8 ?>





■参考
PHPでフォームで送信されたチェックボックスの値を受け取るには?
http://kattsuk2.blog111.fc2.com/blog-entry-16.html

基本的なフォーム要素
http://www.kanzaki.com/docs/html/htminfo31.html

ソフィのphp入門:array()
http://nyx.pu1.net/reference/typearray/func_array.html

2011年4月6日水曜日

MAMPとXAMPPのmysql競合

■問題点
当初MAMPを利用していたMBPで、今回XAMPPへと乗り換えたが、
terminal上でmysqlコマンドを実行すると、まずMAMP側のmysqlを読み込みに行く状態を解決出来ない

■結論
/usr/bin/に、mysqlのシンボリックリンクが存在しており、
そのリンク先がMAMPのmysqlだった

■解決プロセス
・mysqlを実行すると以下のエラーが出る
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/Applications/MAMP/tmp/mysql/mysql.sock' (2)

・/etc/のbashrcや、ローカル上の.bash_profileなどにMAMPを読み込みに行く記述はない

・envコマンドを打ってみる
特にMAMPを読み込みに行く設定はない

・which mysqlでどのmysqlを読み込みに行っているかチェックしてみる
/usr/bin/mysql

・/usr/bin/mysqlをチェック
シンボリックリンクになっており、MAMPのmysqlがOriginalになっていた

・/usr/bin/mysqlのシンボリックリンクをremove
rm /usr/bin/mysql

・lnコマンド実行
ln -s /Applications/XAMPP/xamppfiles/bin/mysql /usr/bin/


解決(ぱちぱちぱち)

2011年4月4日月曜日

現在のフォルダの内容表示

■ファイルだけ表示

1 <?php
2 //ディレクトリを開く
3 $dir=@opendir(getcwd()) or die("ディレクトリのオープンに失敗しました");
4 while($file = readdir($dir)) {
5 if (!is_dir($file)){
6 echo $file ."<BR>";
7 }
8 }
9 closedir($dir);
10 ?>


■フォルダも表示

1 <?php
2 //ディレクトリを開く
3 $dir=@opendir(getcwd()) or die("ディレクトリのオープンに失敗しました");
4 while($file = readdir($dir)) {
5 if (!is_dir($file)){
6 echo $file ."<BR>";
7 }
8 else {
9 echo "/".$file ."<BR>";
10 }
11 }
12 closedir($dir);
13 ?>



■フォルダにリンクもつける

<?php
$dir=@opendir(getcwd()) or die("ディレクトリのオープンに失敗しました");

while($file = readdir($dir)) {
if (!is_dir($file)){
echo $file ."<BR>";
}
else { ?>
<a href="<?php echo $file; ?>"><?php echo $file; ?></a><br/>
<?php
}
}


closedir($dir);

?>



・参照
http://masago.kir.jp/php20041028.php



■ひとつ上のフォルダを見に行く場合
ディレクトリかどうかを判断するis_dirはそのフォルダを参照しにいった場合に返り値を返すので、
opendirの値だけ上の階層にしても、if (!is_dir($file))のままではfalseしか戻さない。
※ファイル名だけ渡しても、フォルダとは判断してくれない

以下のようにしたら上手くいった
if (!is_dir('..'.DIRECTORY_SEPARATOR.$file)){

・DIRECTORY_SEPARATOR
ディレクトリの区切り文字
※これによりOSの違いを回避できる。べつにここでは"/"でもよかったけど、使ってみた。

■参照
PHP入門"is_dir"
http://nyx.pu1.net/function/filesystem/is_dir.html

PHPで、ディレクトリ構造をXMLに書き出すプログラムを作成しています。
http://q.hatena.ne.jp/1182482759

OSの判別
http://nyx.pu1.net/sample/tips/check_os.html

Xampp設定、eclipseアンドロイド開発設定再度

■MacBookPro側にもXamppを導入し、アンドロイド開発環境設定

■Xamppのhtdocsへのエイリアスをホームディレクトリにつくる
ターミナル上でエイリアス(シンボリックリンク)を作成
ln -s /Application/XAMPP/xamppfiles/htdocs /Users/username/

■eclipseのアンドロイド開発環境設定
・help>Install New Software
・Work with:に右のアドレスを記入"https://dl-ssl.google.com/android/eclipse/
・インストール

・グーグルサイトから直接android sdkをダウンロード
・eclipseのpreferenceを開き、androidタブから、SDK locationを設定
・Android SDK and AVD ManagerがWindowタブ、もしくはメインコンソールアイコンから開けるようになるので、
開いて、Available packagesをインスト

■エミュレーターのセッティング
・ndroid SDK and AVD ManagerのVirtual deviceで、新しくdeviceを作る
・プロジェクトをandroid projectで作成
・runするとエミュレーターが起動する

→エミュレーターのサイズを設定する方法
RunタブのRun Configurationsで、プロジェクトを選び、
TargetタブのAdditional Emulator Command Line Optionsに下記のコマンドを入れる
-scale 0.5
これで半分の大きさになる。

■実機で実験する場合
・Galaxy Sの場合
アプリケーション>開発>USBデバッグをチェック
あとは繋がってる際にプログラムをrunすると選択肢に現れるか、自動的に実行される
※Run ConfigurationsでDeployment Target Selection ModeをManualにしていた場合

2011年3月30日水曜日

ワードプレスアドミンページ

■ワードプレス、ログインページのURL

http://●あなたのドメイン名/wp-admin/


■参照
たびんのワードプレス 導入奮闘記
http://wordpress-in.blogspot.com/

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/

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;

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/

ソーシャルゲームで必要な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 一人がプレイ期間の中で何人誘うか

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

ひとこと掲示板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);

韓国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/

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; に変更することができる

アンドロイド開発環境その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する

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

単語登録DBを作成する

■index.phpを書き換える
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 直接入力にした
・類語を入力しなくても表示が変にならないように、空白追加とか、なんらかの方法を取る -> 解決
・言語種を単語の入力から判断して、省略する
・トップページで、英語のみ表示、韓国語のみ表示といったかたちでわける -> 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

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:品詞登録マスター

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

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>
<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

iMacのディスプレイをスリープ

「コントロール+シフト+イジェクト」

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. 現状、退職金がもらえる見込みは殆ど無いため、老後のために一定額の貯蓄を確保する
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

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

2011年3月12日土曜日

災害時生存確認ツール

■目標
災害時の生存確認用ツールを作る
ひとまずはログイン認証と、ユーザーごとの確認者出し。

■機能
シンプルかつ必要なものを、を目標に、名前と生存状態のみを確認するインターフェイス
ユーザー毎に確認したい人達を登録可能
ログインの手間を避けるため、確認のメールを配布するようにし、ログイン用のアドレスを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
”子ども達が興味あるものはいいデザイン” 
”最終的に出来たものしか記憶に残らない”
吉岡徳仁

2011年3月9日水曜日

「ゲームデザイナーの仕事」からのメモ

■ゲームを構成する3つの要素
・イベント(楽しい、カタルシス、お得、トレードオフ、ジレンマ)
・勝敗条件(成否、生存、ゲーム目的、テーマ、ルール)
・快適性(ユーザビリティ、インターフェイス、操作性、インタラクティブ)

■オリジナリティーを付け加える場合の注意
「現存するウェブデザインの約束事を使わなくても許されるのは、自分がそれと置き換えようとしているものが、以下のふたつのどちらかでなければならないというくらいシビアに考えておきたい。
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分間で終わり、容易に理解できるがマスターするのは難しいというコンセプトを練り上げた。開発期間は半年あまり。”

2011年3月8日火曜日

MySqlオートインクリメントリセット

■オートインクリメントリセット
オートインクリメントで追加される値がずれてきたのでまずリセット
alter table <テーブル名> auto_increment = 1;
※現在の末尾の値+1に自動的に補正される

2011年3月7日月曜日

蜂の生態を調べてゲームに応用する

■構成要因
・女王蜂(身体の大きさ働き蜂の約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);

2011年3月4日金曜日

スマートフォン用フレームワーク

■コロナ
どちらかと言えば、アクションゲーム向け

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;

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,

2011年3月1日火曜日

α改善用ゲームデザイン知識習得

■目的
α改善用ゲームデザイン知識集直

■参考書籍
ゲームデザイナーの仕事

■ゲーム作成者は何はなくともゲームを知るべき
・何故おもしろいのか
・どこに感動したのか
・何が心に残るのか


■企画とは
いいぞと判断できるアイデアに実現性を持たせると「企画」になる

・企画は伝えること
・大切なのは”面白いこと”であって、斬新であって珍しいことではない

・通すコツは「信用」「実績」「コネ」

・最低限必要なのは
「表紙」- タイトル、ジャンル、発売時期、お金関連、プラットフォーム、日時、作成者氏名
「企画意図」- 何故儲かるのか(キャラものだから、人気のあるテーマだから…)
「企画概要」- この企画のどこが面白いのか(コンセプト、ゲームシステム、キャラクター要素、世界観など)
「企画内容」- ゲーム性、ルール、物語、キャラクター、世界観
ときに「添付資料」

・そもそも企画は簡単に通らないものだと心得る

■企画書をまとめる
・アイデアを選り分ける(企画書に載せるもの・載せないが使う予定のもの)

・どこが面白いのか→こうだから面白い

・どこが売れるポイントか→誰に売るのか、なぜ売れるのか、制作する理由はなにか(商品価値)
※数値的アプローチ

・どこがウリなのか
※質的アプローチ

・一発で伝える工夫をする(企画のよさ(面白さ、ウリ)が一発で伝わる、ごく短い時間で伝達可能な情報)