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