SQL のメモ( UPDATE)


を参考に、DBの更新方法を学習中
今回、150Pで
フィールド(カラム)の追加方法が載っていたけど
データ更新の方法が載っていないのでメモ
update `my_items` set keyword=’甘い、赤い、ケーキ’ where id=1;
間違って insert で実行すると、オートインクリメントでどんどん増えます

MySQL のメモ

よくわかるPHPの教科書を参考に
DBの勉強を開始

Mysql の使い方は126Pから掲載されているので、これを参考に
してみます
使う環境は、phpMyAdmin を使います
オートインクリメントで
エラーがでたら
デフォルト値設定を none もしくは なし にするとよい
DB(Mysql )の場合、
= は等しい( java とかだと == とか ===)
<> だと等しくない (java とかだと !=)
という意味になります

RHEL rails起動スクリプト作成

本番環境の mongrel の起動は
ruby script/server mongrel -e production -p 80 -d
最後に -d をつけてデーモンモードにすることで
バックグラウンドで起動しています
アプリ起動のときに & を使ったときのようなものです
ただし、一般ユーザである rails ユーザでは実行できません
1024番より小さいポートの場合root 権限が必須です
これらは別名特権ポートともいわれます
なので、root で実行するスクリプトを作成します
まず
su –
でroot ユーザへ変更
mkdir bin でディレクトリ作成
次に
vim /root/bin/start_sample.sh
でファイルを作成
#!/bin/sh
export PATH=$PATH:/home/rails/gems/bin
export RUBYLIB=$RUBYLIB:/home/rails/gems/lib
export $GEM_HOME=/home/rails/gems
cd /home/rails/rails/sample
ruby script/server mongrel -e production -p 80 -d
として保存し
chmod +x start_sample.sh
で実効権限をつけたあと
start_sample.sh を実効
これでブラウザを起動し
http://サーバーIP/todos
にアクセスすればOK
次は、監視スクリプトを作成します

RHELでrailsサンプルアプリの作成

RHELのインスタンスを使い、練習
参考資料は
Linux 2012-04

まず開発用DB sample_development
本番用 sample_production
を作成
使用しているのは postgresql
ただし、今回までインスタンスを停止しているので
最初にAWSアカウントにログインして RHELのインスタンスを稼働し
ssh 公開鍵認証でroot でログイン
続いて
su – rails
でrails ユーザへ変更
まず
createdb -U rails sample_development
でパスワード入力し作成
続いて
createdb -U rails sample_production
で作成
パスワードは書籍のとおりに pas4rails でOK
次にDB接続情報ファイルを設定
vim rails/sample/config/database.yml
でファイルを開き
/username
で検索

development:
adapter: postgresql
encoding: unicode
database: sample_development
pool: 5
username: rails
password: pas4rails

というように変更します
他にも2ヶ所ありますので
/username で検索し、変更しておきます
次にサンプルアプリを生成
しかし

ruby script/generate scaffold Todo title:string description:text due:datetime done:boolean
ruby: No such file or directory -- script/generate (LoadError)

となってしまいます
原因は
Rails再びつまずく、scriptの中身ないじゃん
にあるように
実行は予めアプリケーションのフォルダに移動してから実行します
とのこと
たしかに書籍をみても
. はカレントディレクトリ(~/rails/sample を表す)
と書いてあったので、
一度
cd rails/sample/
へ移動し
ruby script/generate scaffold Todo title:string description:text due:datetime done:boolean
を実効

exists  app/models/
exists  app/controllers/
exists  app/helpers/
create  app/views/todos
exists  app/views/layouts/
exists  test/functional/
exists  test/unit/
create  test/unit/helpers/
exists  public/stylesheets/
create  app/views/todos/index.html.erb
create  app/views/todos/show.html.erb
create  app/views/todos/new.html.erb
create  app/views/todos/edit.html.erb
create  app/views/layouts/todos.html.erb
create  public/stylesheets/scaffold.css
create  app/controllers/todos_controller.rb
create  test/functional/todos_controller_test.rb
create  app/helpers/todos_helper.rb
create  test/unit/helpers/todos_helper_test.rb
route  map.resources :todos
dependency  model
exists    app/models/
exists    test/unit/
exists    test/fixtures/
create    app/models/todo.rb
create    test/unit/todo_test.rb
create    test/fixtures/todos.yml
create    db/migrate
create    db/migrate/20120310004408_create_todos.rb

となり、成功です
このコマンドで、サンプルアプリを生成
続いて
RAILS_ENV=development rake db:migrate
で開発用DBの初期化
RAILS_ENV=production rake db:migrate
で本番用DBの初期化
次に、サンプルアプリの動作確認を確認
ruby script/server mongrel -e development
を実行し
確認のため、ブラウザを起動して動作確認
今回の確認には google chrome を使用
http://サーバーIP:3000/todo
でアクセスして画面に表示されたらOKです
new todo をクリックすると Todo リストがつくれます
とりあえず、確認できたら
端末に戻って Ctrl + c で mongel を停止します
次はアプリの起動、停止監視のスクリプトになります
それにしても、やはり書籍の場合ある程度知っていることが前提で
かかれているので多少はネットなどで調べることが必要になります

ubuntuへ metasploit framework install

ubuntu へ metasploit framework をインストール
今後のweb アプリのセキュリティ検証に必須です
UbuntuにMetasploit Frameworkをインストールする方法
を参考にインストール
いざというトラブルを考慮して
今回は Vmware Player に新規に ubuntu をインストールし
設定
wget http://updates.metasploit.com/data/releases/framework-4.0.0-linux-full.run
でファイル入手
chmod +x framework-4.*-linux-full.run
sudo ./framework-4.*-linux-full.run
でインストール
途中でGUIインストール画面がでるので、ターミナル操作だとX転送が
必要かも
msfconsole
で起動
sudo msfupdate
でアップデートする
ここまではOK
次に、問題発生
BitTorrent で必要なファイルをダウンロードするらしいけど
これが P2P なので経験がない
そこで、ubuntu bittorrent クライアントで検索
どうもP2Pってダーティなイメージだけど
結構海外では普通に使われています
たぶん、日本では Winny の報道の影響が大きいのかも…
ネガティブな意味で
著作権がらみでないなら
かなり革新的といわれ、海外では好評なツールだったのに
残念なことです
UbuntuでBitTorrent(KTorrent)
を参考に
sudo apt-get install ktorrent
でインストール
また、別の参考サイト
UbuntuマシンでBitTorrentを使ってダウンロードしてみよう
では
kde-i18n-ja
をインストールするとあったけど
実際にインストールしようとしたら
バージョンが古いといわれ
kde-l10n-ja
をインストールするため
sudo apt-get install kde-l10n-ja
でインストール
起動には ktorrent&
でOK
これで、ほぼ準備完了
次は、ktorrent を使い、ファイルをダウンロードしてみます

プログラミング関連のサイト

今日、Google リーダーへおもしろい記事の更新がありました
プログラミング初心者でもできる!プログラミングを習得するための有益すぎる記事まとめ
Google リーダーは
登録しておいたRSS対応サイトが更新したときに、その更新を知らせてくれます
ちなみに、これと Gmail + Google アラート を組み合わせると
かなり効率的な情報収集が可能になります
Google アラートは
登録したキーワードに該当するものを、指定した条件で
該当するサイトや記事等のリンクをメールに知らせるものです
毎回検索するのは面倒なので
これを使うことにより。ほぼ自動検索のようなことができます

シェルスクリプトでファイル書き換え

ユーザの所有権を変更するのに毎回タイプするのは面倒なので
スクリプトを作ってみようと思います
今回は read コマンドを使ったものを作成
vim user_change.sh
でファイルを作成
#!/bash/sh
echo -n “所有権を変更します ユーザ名の入力を–>”
read $USER
chown -R $USER:$USER test-ip.txt
echo “所有権を $USER へ変更しました”
これでOK
ただし、$USER に格納したデータを消さないと
毎回ユーザを変えられないので、この処理が必要
ちなみに、一度ログアウトしなければ値が保持されているので
そのままパーミッション変更などには使えます
sh user_change.sh
のあとに
mkdir $USER
とすれば
ユーザ名のディレクトリなどにも使えますし
chwon $USER test
というように所有権変更などにも使えます
応用で ipアドレス変更とかもできます

HTML5 の Canvas

Canvas を使うと
HTML と javascript だけで背にゃ図形を描ける
Canvas を使って線や図形を描画する手順は
Canvas オブジェクトを取得
Camvas オブジェクトから描画用コンテキスト(Context) を取得
コンテキストのメソッドやプロパティを利用して描画する
で次に線の描画処理の手順
bigenPath() でパスの指定を開始
moveTo() で基点となる (x1,y1) を指定する
LineTo() で終点(x2,y2)を指定
stroke() で実際に線を書く
ckisePath() でパスを閉じる
という流れ
ipod touch とかの手書きアプリのようにしたいなら
終点を次の基点にして
線を描画する手順をマウスのドラッグ操作に合わせて繰り返せばOKらしい

CSS 関連のメモ

facebook アプリを作成する上で
CSS関連の勉強をする必要があるので
少しずつメモしておきます
cursor:crosshair;
これの意味が分からなかったので検索
参考サイトは
cursor・・・・・カーソルの形状を指定する
です
調べた結果、どうやら
cursor はマウスカーソルについての設定でした
crosshair を指定することで 十字カーソルに変わります
また、
-webkit-border-radius: 10px;
ですが
これは
Safari,Chrome用のCSS設定で角丸にするときの設定になります
角丸にする。
に解説が載っていました

Facebook API (Graph API)

2011/08 に
Graph API に score と achievements という機能が追加されました
score は
ゲームアプリのスコアを記録するための機能で
これを使うとDBを用意せずに ゲームスコアの記録ランキングの表示が行えるようです
この score に記録された情報は キャンバスページの右上に表示される
ライブティっカーに反映され、友達ランキングが表示されます
まだ詳しくは調べている途中ですが、APIを使えばより効率てきな開発ができます
もうひとつ
achievements ですが
これは
特定のレベルに達した とか
ある目的を達成したというゲーム成果の記録ができるものです
この内容もライブティッカーに反映されます
ちなみに。
scores と achievements を使うには
アプリのカテゴリーをゲームで登録する必要があるようです
あと、これがキャンバスページ以外でも使えるのかな?