2012年12月22日土曜日

MongoDBをUbuntuServer12.04へインストール

MongoDBをUbuntuServer12.04へインストールしてみたので、なんとくなくメモ。

10genのリポジトリを追加すると、apt-getコマンドでインストールできるので簡単。



1)PGP鍵のインストール
 $sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

2) 10genリポジトリの作成
 $sudo vim /etc/apt/sources.list.d/10gen.list
-----内容-----
 deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen
----ここまで--

3) aptのアップデート
 $sudo apt-get update

4) MongoDBのインストール
 $sudo apt-get install mongodb-10gen

5) 一応確認
 $mongo --version

UbuntuServer 12.04 固定IPアドレス化

Ubuntu Server12.04をインストールしたら、DHCPでIPアドレスを取得するようになっていた。
固定IPアドレスに変更してみたので、なんとくなくメモ
 
 /etc/network/interfacesでDHCPの部分をコメントアウトし、必要な情報を設定する。

1) 設定を変更
$sudo  vi /etc/network/interfaces
----------192.168.1.100に設定する例----------------
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
--------------------------ここまで---------------








2) eth0の再起動
$sudo ifdown eth0
$sudo ifup eht0

2012年11月17日土曜日

OpenAM


 シングルサインオンとOpenAMの記事があったので、なんとなくめも

http://codezine.jp/article/detail/6318

2012年10月27日土曜日

表示中のページをPDF化するFirefox プラグイン

WEBのページをPDF化するのに便利だったので、なんとくなくメモ

Firefoxのプラグイン
Print pages to Pdf

2012年10月21日日曜日

Google Map を扱うjQueryプラグイン

Google Map を扱うjQueryプラグインを調べて居たののでなんとなくメモ。
使い方の詳細は後々調べる予定。


a)jquery-ui-map
http://code.google.com/p/jquery-ui-map/

MITライセンスで公開されている。
他のプラグインがGoogleMapAPIをラップしているしているのに対して、jquery-ui-mapとう名前だけあって、角丸で表示したりと手を加えている。

jQuery Mobileと併用するサンプルが多く掲載されるし、見た目も統一感がとれている用にみえる。

サンプルはこちら
http://jquery-ui-map.googlecode.com/svn/trunk/demos/jquery-google-maps-mobile.html

b)jQuery Google Maps プラグイン  
http://labs.d-s-b.jp/plugins/jQuery/jQueryGoogleMaps/
https://github.com/dreamseeker/jQueryGoogleMaps

日本の方が開発していて、MITライセンスで公開されている。

地図表示時に、マーカーなどをJSONやXMLを外部から読み込んで表示することができるようになっている。
単に地図を表示するには便利そう。
ただ、mapにアクセスする手段がないので、後からマーカーを追加したらりイベントを追加するようなことはできなさそう。
#誰か知ってたら教えてください。

c) gmaps.js
http://hpneo.github.com/gmaps/
MITライセンスで公開されている。

すごく使いやすそうなプラグイン。

gmaps.jsで作ったインスタンスを別の変数に保持しておく必要がある。

APIやサンプルがうまくまとまっている。
http://hpneo.github.com/gmaps/examples.html


d)gmap3
http://gmap3.net/
 
GPL v3 ライセンスで公開されている
mapはプラグイン内で管理していて、getアクションで取得できる。

マニュアルがちょっとわかりずらい印象。
$("#map").gmap3()に渡す連想配列で、動作を指定する。
addressで住所を指定すると、位置情報を変換する機能が内包されているなど、 高機能だけど指定の仕方はくせがある。


そのままGoogle Map APIを叩くか、プラグインを使って見るか悩みどころ。
特定ポイントの地図を表示するだけならプラグインを使った方がシンプルに記述ができそうだけど、いろいろと自分で処理を書き始めると、使っても使わなくても変わらなくなってきそう。
別にライブラリを読み込むこと考えるとなくてもいいかなぁと。

2012年10月19日金曜日

MySQLのバックアップ・リストアなど



MySQLでのバックアップ、リストアの調べたのでなんとなくメモ。

(1)DBの状態を確認
 use データベース名;
 status;

(2)ファイルシステムに配置しているのSQLファイルをを実行
mysqlプロンプト上で、sourceコマンドを利用

mysql > source ファイル名;

ファイル名は絶対パス指定、相対パス指定が使える

(3)バックアップ
mysqldumpコマンドを利用する
a)全バックアップ
$ mysqldump -A -u root -p パスワード --opt > ダンプファイル名

b)特定データベース名を指定してバックアップ
$ mysqldump データベース名 -u root -p パスワード --opt > ダンプファイル名

--optは全部入り
個別に指定することもできる
--add-drop-table    dropテーブルを追加

ダンプ時の文字コードを指定する場合は
--default-character-set=文字コード

c)データのみをダンプ

mysqldump -u ユーザ名 -e -c -t -p foo_db > dump.sql

d)指定条件(WHERE句の形式で指定)のデータたけをダンプ

mysqldump -u ユーザ名 --where="条件" -p データベース名 テーブル名 > ファイル名


(4)リストア
バックアップしたファイル名を標準入力から入れる

a)全データリストア
$mysql -u root -p パスワード < ダンプファイル名

b)特定データベースに設定
$mysql -u root -p パスワード データベース名 < ダンプファイル名


(5)select結果をファイルに出力
a) mysql上で
select * into outfile 'ファイル名' from テーブル名;

CSVで出力する場合は fields terminatedでセパレータに,を指定
select * into outfile 'ファイル名' from テーブル名 fields terminated by ',';

b) コマンドライン上で
$ mysql -e "select * from テーブル名" -u ユーザ名 -p データベース名 > ファイル名

(6)ファイルを取り込み
load data infile 'ファイル名' into table テーブル名;
CSVを取り込む場合は fields terminatedでセパレータに,を指定
load data infile 'ファイル名' into table テーブル名 fields terminated by ',';

2012年10月14日日曜日

Google Mapで吹き出し表示

Google Mapで吹き出し表示するには、  google.maps.infoWindowクラスを利用する。


 infoWindowのオブジェクトを作ってからopenメソッドで、表示対象とする地図オブジェクトを指定する。

      //オブジェクト取得
      info= new google.maps.InfoWindow({
        position: latlng,
         content: '吹き出しの内容'
      });
      //表示
       info.open(map);
   


contentには、表示する文字列を指定する。
HTMLのタグをつかえ、CSSクラスも指定可能。


吹き出しを表示しなくするにはcloseメソッドかopenメソッドにnullを指定する。
      info.close();
      info.open(null);

吹き出しの内容は後からsetContentメソッドで変更できる。
      info.setContent("あたらしい内容");


吹き出しの形はinfoWindowクラスのオプションでは変更できず、
オーバーレイのサブクラスを作るしかなさそう。



Javascriptで一定間隔で処理を実行

Javascriptの組込み関数であるsetIntervalを使う。
setIntervalへ、実行したい関数オブジェクトと、実行間隔をミリ秒で指定する。

        setInterval(関数オブジェクト,実行間隔ms);

例) 1秒毎に関数を実行
setInterval(
     function(){
        //処理
     }
     ,1000);

一回だけする場合は、setTimeout関数を利用する。


2012年10月13日土曜日

Google Map イベントに対する処理を指定

google.maps.event.addDomListener()を使う。;

google.maps.event.addDomListener(対象オブジェクト, イベント,イベント取得時に実行する関数オブジェクト);

google関連のオブジェクトはマニュアルにイベントが書いてある。  

Google Mapを調べてみた

1)Google 地図表示
    1)APIの取り込み
    <script src="http://maps.google.com/maps/api/js?sensor=true"></script>
     sensorの引数は端末GPSなど使うかの指定。true:利用
    2)DIVタグの用意
     *ID属性をつけないと指定できない
     width,heightで表示サイズを指定できる。指定しないと全画面?
     <div style="width:400px,height:300px" id="mymap"/>
    3)google.Maps.Mapクラスの生成(初期処理)
     var map = new google.maps.Map(document.getElementById('mymap'), myOptions);

     オプションとして、
        zoom:    表示倍率
        center:    中心位置   
        mapTypeID: 地図表示タイプ
      の3つは必要
     zoomは整数値で指定 (0ー19、数値が大きくなるほど拡大、小さくなるほど縮小)
      centerはgoogle.maps.LatLngクラスで緯度、経度を指定する。
     mapTypeIDはgoogle.maps.MapTypeIdクラスで定義されている定数を指定する
        ROADMAP:地図のみ
        SATELLITE:航空写真のみ
        HYBRID:航空写真+地図
        TERRAIN:地形
       
     4)google mapを表示するためのイベントを設定
      a) HTMlタグにイベントを記述
        <body onload="initialize();">
      b) Javascriptでイベントリスナーを登録
        google.maps.event.addDomListener()メソッドを利用して、イベントと、Javascriptの関数を指定する。
        google.maps.event.addDomListener(イベント対象オブジェクト, 'イベント名', 関数オブジェク
ト);
        例)ウィンドウ(ブラウザ)のロード終了時にinitialize関数を呼び出す
        google.maps.event.addDomListener(window, 'load', initialize);
   
2)任意位置に移動
    mapオブジェクトのsetCenter()メソッドを利用
   
    map.setCenter(new google.maps.LatLng(lat,lng));
    いわき駅:37.05846492309772,140.89227676391602
3)表示中地図の中心位置を取得
    map.getCenter()で、google.maps.LatLngが取得できる
    google.maps.LatLngからは
    緯度:lat(),経度:lng()
    でそれぞれ取得できる
4)マーカーを表示
    google.maps.Makerクラスを利用
    animationを指定すると、表示する際のアニメーションを指定することができる。
      var maker= new google.maps.Marker({
        position: new google.maps.LatLng(lat,lng),
        map: map,//表示したい地図
            animation:google.maps.Animation.DROP,
        title: 'いわき駅'
      icon:'images/sample.jpg'
      });

2012年10月10日水曜日

Mysqlをコマンドラインから操作するメモ

Ubuntuでのmysqlのインストール
 apt-get install mysql-server


mysql コマンドラインの操作

(1)  ユーザを指定してMysqlにログイン
mysql -u ユーザ -p パスワード

DBを指定する場合は、
mysql -u ユーザ -p パスワード データベース名

ログイン後にDBを変更する場合は、

mysql> use データベース名

(2) パスワード変更

☆rootユーザでDBユーザのパスワードを変更
set password for username@'localhost' = password('new password');

(3)利用可能ユーザの確認
MySQLはユーザ名@アクセス元をセットで管理

自ホストはlocalhost/127.0.0.1/localhost.localdomainで指定する。
全ホストからアクセスできるようにするには、ワイルドカード %を指定する。
同一セグメント上からアクセスさせる場合は 192.168.1.% を指定する。

ユーザ確認は以下のSQLを実行する。
select user,host from mysql.user;


(4)ユーザの追加と削除
ユーザの追加
grant all on データベース名.* to ユーザ名@ホスト identified by 'パスワード'
☆全権限許可

SELECT , INSERT , DELETE , UPDATE権限を付加して登録する場合は、上記のallの箇所を置き換える

grant select,insert,delete,update on データベース名.* to ユーザ名@ホスト identified by 'パスワード'

パスワード設定を再設定する場合は
set password for ユーザ名@localhost=password('パスワード');

(5)ユーザの削除
権限を削除してから、mysql.userから対象ユーザを削除

revoke all on データベース名.* from ユーザ名@ホスト名;
delete from mysql.user where user like 'ユーザ名' and host like 'ホスト名';
flush privileges;

(6)ユーザ権限の表示

show grants for ユーザ名@ホスト名;

a)INSERT権限の追加

grant insert on データベース名.* to ユーザ名@ホスト名;

b)INSERT権限の削除

revoke insert on データベース名.* to ユーザ名@ホスト名;


select,deleteなどは上記insertの箇所を置き換える

(7) データベースの一覧表示

show databases;

(8)データベースへ移動

use データベース名;

(9)データベースを作成
create database データベース名 character set utf8 collate utf8_bin;

文字コードの指定は、以下を指定
utf8=UTF-8
sjis=Shift_JIS
ujis=EUC-JP

作成後にデータベースの文字コードを変更する場合は
 ALTER DATABASE データベース名 DEFAULT CHARACTER SET=utf8;

(10)データベースの削除

drop database データ名;

(11)テーブルの一覧表示

show tables;

(12)テーブルの追加(作成)

user_tblテーブルを以下の条件で作成します。

create table テーブル名 (キー名 int auto_increment NOT NULL, name text NOT NULL, primary key(u_id)) type MyISAM;

☆プライマリキー キー (自動採番)、エンジンタイプ MyISAM


(13)テーブルの削除

drop table テーブル名;

(14)テーブル情報を表示
describe テーブル名;


(14)テーブルの変更
a)テーブル名を変更する
alter table 旧テーブル名 rename 新テーブル名;

b)カラムの名を変更する
alter table テーブル名 change 旧カラム名 新カラム名;

c)カラムの型を変更する

alter table テーブル名 modif カラム名 型 not ull default デフォルト値;


d)カラムを自動インクリメントに変更する

alter table テーブル名 modify カラム名 int auto_increment;


e)カラムを追加する

alter table テーブル名 add 追加するカラム名 型;


f)カラムを削除する

alter table テーブル名 drop 削除するカラム名;


g)主キー(プライマリキー)を設定する

alter table テーブル名 add primary key (カラム名);


h)主キー(プライマリキー)を削除する

alter table テーブル名 drop primary key;


i)ユニークインデックスを設定する

alter table テーブル名 add unique (カラム名);


j)インデックスを設定する

alter table テーブル名 add index カラム名;


i)インデックスを削除する

alter table テーブル名 drop index インデックス名;




(15)バックアップ
a)MySQLデータベース全体をバックアップ
mysqldump -u root -p -x --all-databases > dump.sql

b)データベースを指定してバックアップ

mysqldump -u root -p データベース名 > database.dump.sql

c)バックアップを自動で取得

cronで以下を指定する
mysqldump --all-databases -u root --password='パスワード' > dump.sql


(16)MySQLデータベースストア
a)全部
mysql -u root -p < dump.sql

b)ータベースを指定してリストア

mysql -u root -p データベース名 < database.dump.sql

2012年9月7日金曜日

いつかCreateJSも調べたいので、とりあえずメモ

2012年8月20日月曜日

IIS7.5でPHP

IIS7.5でPHPを動かすときに参考にしたサイトをなんなくメモ
参考にさせていただきました。


[PHP on Windows ガイドライン (ドラフト)]
http://technet.microsoft.com/ja-jp/iis/gg535422.aspx#ch1

[PHP on IIS  ]
http://guitarfish.wazure.jp/index.php?PHP%20on%20IIS


[IISでWebアプリケーション ディレクトリごとのPHPパラメータの変更(2)]
http://itmx.kids-beads.com/wordpress/tag/iis7-5/



[IISでZendFrameworkを利用する]
http://blogs.gine.jp/kusa/archives/118


Window7+IIS7.5の環境でphp.iniをほぼいじらずに使っていたときに、
error_log()で出力したものがそのままクライアントに出力されてしまうので、php.iniでerror_log=出力フィルを明示する必要があった

2012年7月28日土曜日

2012年7月21日土曜日

2012年7月13日金曜日

画面全体をマスクするサンプル(作りかけ)

http://www.whims-d.com/archives/223 
を参考にしてみました。

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript" src="jquery-1.7.2.min.js"></script>
        <script>
           
            function mask(){
                    var mask = $('<div id="top-mask"></div>');
                    mask.css({
                            'position':     'absolute',
                            'top':             0,
                            'left':            0,
                            'width':        $(document).width(),
                            'height':        $(document).height(),
                            'color':        '#ffffff',
                            'background':    '#000000',
                            'display':        'none',
                            'opacity':        0,
                            'zIndex':        9999
                    });
                    mask.click(function(e) {
            $('#top-mask').css({zIndex:$.browser.msie?0:null}).fadeOut("fast");
                    });
                    //    同IDのマスクが存在しない場合にマスクDOMを追加
                    if(! $('#top-mask').size()) {
                            $('body').append(mask);
                    }
                    $('#top-mask').css({'opacity':0,'display':'block'}).fadeTo('fast', 0.5);
            }
           
           
        </script>
    </head>
    <body>
        <div><input type="button" value="mask" onclick="javascript:mask();"/></div>
    </body>
</html>

2012年6月12日火曜日

HTML5+CSSでMac OS X Lion?

すごい。

http://www.alessioatzeni.com/mac-osx-lion-css3/

2012年5月9日水曜日

WEBアプリ開発基盤「Meteor」

Note.jsベースのMeteorという開発ツールがあるみたい。
興味ありなので、なんとなくメモ。

Titanium Mobile 2.0リリース

javascriptでAndroid,iPhone向けのネイティブアプリが作れるTitanium Mobile 2.0リリースされたみたい。
興味ありなので、なんとなくメモ。

2012年4月30日月曜日

IE系で旧バージョンのブラウザ互換表示してもらうためのおまじない

IE系は、バージョンによって、レンダリングがずいぶんと異なる。
IE8以降ではどのドキュメントモードでレンダリングするか、ドキュメントで任意に指定できるようなので、とりあえずメモ。
 
ヘッダー部で以下のメタタグを記述する。
以下は、IE9の場合は、IE9で、IE8の場合はIE7モードで動作させる場合の鬼才。 
 
 
<!-- ここから --> 
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7; IE=EmulateIE9">
<!-- ここまで -->
 
 
 

ExtJS4 (その1) extjsライブラリの読み込み指定方法

ExtJS4を使うことになったので、久々に、なんとくなくメモ。

ExtJS4はここからダウンロード


ダウンロードファイルを展開したディレクトリをext-4.0としたとすると、ext-4.0と同じ階層にHTMLファイルがあるとするとHTMLファイルの記述は以下のようになる。


 -----ここから-----
<!DOCTYPE html>

 <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <!-- ExtJS CSS -->
        <link rel="stylesheet" type="text/css" href="ext-4.0/resources/css/ext-all.css"/>
        <!-- テーマを変える場合は、変更するテーマのCSSファイルを読み込み -->
         <link rel="stylesheet" type="text/css" href="ext-4.0/resources/css/ext-all-gray.css"/>-->
        <!-- ExtJS4本体読み込み -->
        <script src="ext-4.0/bootstrap.js" charset="utf8"></script>
        <!-- 日本語ロケール読み込み -->
        <script src="ext-4.0/locale/ext-lang-ja.js" charset="utf8"></script>
        <script>
            /*  IE用にs.gifを読み込み */
            Ext.BLANK_IMAGE_URL="./s.gif";
            Ext.onReady(
                function(){
                     //処理内容
                }
            );
        </script>
       </head>
       <body>
        </body>
 </html>
 -----ここまで-----

ExtJS3系は使わなかったけど、ExtJS2.xとの違いは、ext-all.jsを直接読み込まないで、bootstrap.jsを読み込んでいるところ。

bootstrap.jsを使用せずに、ext-all.jsを直接読み込んでもOK。
bootstrap.jsを使うと、ローカルで扱うときや、localhostで検証する時は、ext-all-debug.jsで、その他の場合は,ext-all.jsに切り替えてくれる。