ページ

2014年6月9日月曜日

Sim Freeスマホの検討

現在Sim Freeのスマホを利用してるのですが(ちなみにOCN Simです。
今現在使っているのはXperia SPです。2万台なのでお手頃
icon
icon


いつもXperiaシリーズを買っているので今回もそうしようと思っているのですがスペックが決めきれないので
Zシリーズが主な比較対象 比較は画面やメモリーなど基本的な点価格などです。

調べてみるとよく似ているようで微妙に異なる
品名Xperia Z2Xperia Z1Xperia Z1 CompactXperia Z
画像icon
icon
icon
icon
icon
icon
icon
icon
システムAndroid 4.4Android 4.2Android 4.3Android 4.1
CPU2.3 GHz Quad Core2.2 GHz Quad Core2.2 GHz Quad Core1.5 GHz Quad Core
容量16G16G16 GB16G
RAM3 GB2 GB2 GB2 GB
ディスプレイ5.2インチ5.0インチ4.3インチ5.0インチ
解像度1920 x 10801920 x 10801280 x 7201920x1080
カメラ20.7 Mpixels20.7 Mpixels20.7 Mpixels13 Mpixels
ネットワーク4G LTE 3G GSMLTE Bands 3G GSM4G LTE 3G GSMLTE HSPA+ GSM
ワイヤレスBluetooth: 4.0, NFCBluetooth: 4.0, NFCBluetooth: 4.0, NFCBluetooth: 4.0, NFC
バッテリー3000 mAh3000 mAh (Built-in)2300 mAh2400 mAh
重量158 g169 g137 g146 g
サイズ146.8 x 73.3 x 8.2144.4 x 73.9 x 8.5127 x 64.9 x 9.5139 x 71 x 7.9

このような感じになります。
価格的には、Z2>Z1>Z1 Compact>Zと妥当な通りでZ1かZ1 Compactで悩み中・・・

2014年6月7日土曜日

Titanium mobile始める

そろそろモバイルアプリを行うかと思い、Titanium mobileを勉強中お決まりのhello worldをやってみます。
ちなみにTitaniumのバージョンは2014/06/07現在の最新3.2.3です。

初回はただプロジェクトを作るだけなのでプロジェクトの作成手順が中心

Step1.
Titanium mobileをDLします。こちら
からダウンロードできますが、メアドなどの登録が必要です。

ダウンロードしてからインストールは趣旨ではなので割愛(Eclipseベースのためなじみがあれば気にならないです)
Titanium™ インストールガイド に詳しくあるのでご覧ください。


Titaniumを起動し「Mobile App Project」を作成し以下のAlloyを選択

保存ディレクトリなどを指定

これでHello worldが出来上がるデバッグモードで起動してみたがラベルがわかりにくかったので少し編集がてら下調べ

自動作成されたプロジェクトは上記画像のようになっているのでこれを確認
ルートディレクトリにある以下のディレクトリはおそらくそれぞれの役割で
app:ソースコードを記載する
plugins:ライブラリの管理
みたいに思えます。

appディレクトリを中心に見ると
assets:画像とか?
controllers:メイン処理
models:まだわからない
styles:css?のようなファイルがある デザインに利用すると思われます。
views:表示用のデータHTML見たいなもの
alloy.jsこれが共通処理

このような感じかと体感もう少しわかったらいろいろあげれるようにしてみたいな

2014年6月1日日曜日

PHPのよく使うarray関数をまとめる

最近PHPを使うのですがよくのでarray系の関数をまとめました。(今更間丸出しw


配列の切り出し.
$arr = array(1, 2, 3, 4, 5, 6);
$arr2 = array_slice($arr, 0, 3);
var_dump($arr2);
/** 結果 */
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


配列のマージ.
$arr1 = array(1, 2, 3, 7, 9);
$arr2 = array(4, 8);
$arr3 = array(5);
$arr4 = array_marge($arr1, $arr2, $arr3);
var_dump($arr4);
/** 結果 */
array(8) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(7)
  [4]=>
  int(9)
  [5]=>
  int(4)
  [6]=>
  int(8)
  [7]=>
  int(5)
}


配列からキーの一覧を取得する
$arr = array("a" => 1, "b" => 2, "c" => 3);
$keys = array_keys($arr);
var_dump($keys);
/** 結果 */
array(3) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
}


配列から値のみを取得する
$arr = array("a" => 1, "b" => 2, "c" => 3);
$vals = array_values($arr);
var_dump($vals);
/** 結果 */
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


特定文字の配列を自動生成する
$a = array_fill(1, 5, '?');
var_dump($a);
/** 結果 */
array(5) {
  [1]=>
  string(1) "?"
  [2]=>
  string(1) "?"
  [3]=>
  string(1) "?"
  [4]=>
  string(1) "?"
  [5]=>
  string(1) "?"
}


配列から重複したデータを削除します.
$a = array("a" => 1, "b" => 2, "c" => 3, "d" => 4, "d" => 5, "a" => 9);
$vals = array_unique($a);
var_dump($vals);
/** 結果 */
array(4) {
  ["a"]=>
  int(9)
  ["b"]=>
  int(2)
  ["c"]=>
  int(3)
  ["d"]=>
  int(5)
}


配列から最初のキーを取得する
$arr = array("a" => 1, "b" => 2, "c" => 3);
$key = key(array_slice($arr, 0, 1));
var_dump($key);
/** 結果 */
string(1) "a"

配列から最後のキーを取得する
$arr = array("a" => 1, "b" => 2, "c" => 3);
$key = key(array_slice($arr, count($arr) - 1, 1));
var_dump($key);
/** 結果 */
string(1) "c"


array系を応用した関数

/**
 * PDOを利用したINSERTクエリーの発行.
 * @param object $dbh PDOの接続クラス.
 * @param string $table テーブル名.
 * @param array $values カラムと値の連想配列
 * @return integer 成功の場合は1失敗の場合は-1を返します.
 */
function insertQuery($dbh, $table, $values) {
    $sql = "INSERT INTO " . $table . "(" . join(", ",  array_keys($values)) . ") VALUES(" . join(", " ,array_rale("?", count($values))) . " )";
    $stmt = $dbh->prepare($sql);
    if (!$stmt->execute(array_values($values))) {
        print_r($dbh->errorInfo());
        return -1;
    }
    return 1;
}

このような応用ができます。
ほかにもあれば今後公開してみます。

2014年4月27日日曜日

postgresのバックアップを1ファイルずつgoogleドライブに保存する

自分用に作ったpostgresを1ファイルずつGoogleドライブに保存したいと考えシェルを作成。
pg_dumpを利用し対処1ファイルずつなのは除外したいDBもあるためです。
GoogleドライブはGoogleから出ているアプリを利用しフォルダに移動するだけなので保存すること自体は簡単です。
DropBoxとかもディレクトリを変更すれば対応できると思います。
※Macを利用しているのでLinux系では一部動作しない可能性もあります。
その際は一部改変が必要になるかと思います。


バックアップ詳細はDB名_yyyyMMdd.tar.gzで保存されています。
while read部分が少し戸惑いました。
パイプを利用してreadを行うないようです。




#/bin/sh

DATE=`date "+%Y%m%d"` # 日付のフォーマット
TMP_DIR="/tmp/pg_dump_$DATE" # 作業ディレクトリ
EXECLUDE_DB="template|postgres" # バックアップ除外対象
BACKUP_DIR="/Users/genya/Google ドライブ/backup" # バックアプディレクトリ
DB_USER=postgres # 動作ユーザー

# 作業ディレクトリ作成
echo "作業用ディレクトリを作成 $TMP_DIR"
mkdir $TMP_DIR

# DB一覧を取得する.
psql -c "select datname FROM pg_database;" -t -U postgres | while read db_name
do
 if [ -z "$db_name" ]; then
  continue
 fi
 # バックアップ対象外を除外
 DB_COUNT=`echo "$db_name" | grep  -E "($EXECLUDE_DB)" | wc -l`
 if [ "$DB_COUNT" -eq "1" ]; then
  echo "execlude database no backup $db_name"
  continue
 fi
 echo "backup database:$db_name"
 # バックアップ
 pg_dump -U $DB_USER $db_name > ${TMP_DIR}/${db_name}.sql
 # 圧縮
 tar zcvf ${TMP_DIR}/${db_name}_${DATE}.tar.gz ${TMP_DIR}/${db_name}.sql >/dev/null 2>&1
 # 元のファイルを削除
 rm ${TMP_DIR}/${db_name}.sql
 # googleドライブに移動
 mv ${TMP_DIR}/${db_name}_${DATE}.tar.gz "${BACKUP_DIR}/${db_name}_${DATE}.tar.gz"
done

# 作業ディレクトリ削除
rm -rf $TMP_DIR

2014年4月9日水曜日

postgresで区切り文字を集計する

備忘録のないようです。

以下のように「,」区切りの文字が連結されている状態でグループ化を行うための操作を記述

CREATE TABLE nodes(tags TEXT);
INSERT INTO nodes VALUES('tag1,tag2,tag3');
INSERT INTO nodes VALUES('tag1,tag3');
INSERT INTO nodes VALUES('tag1,tag3');
INSERT INTO nodes VALUES('tag1,tag4,tag5');
このデータを以下のようにしたい
tag   | count 
-------+-------
 tag1  |     4
 tag3  |     3
 tag2  |     1
 tag4  |     1
 tag5  |     1

このような処理はどのようにと呼ぶのか分からないがニュアンス的には
・区切り文字配列化
・パース配列化
・文字列分割結合
などか?

正式名称が知りたい・・・・
とりあえずSQLだけ記載
SELECT tag, COUNT(tag) FROM (SELECT UNNEST(STRING_TO_ARRAY(tags, ',')) FROM nodes) AS T1 GROUP BY tag ORDER BY COUNT(tag) DESC, tag;
UNNESTとSTRING_TO_ARRAYを利用することで対応が可能である。

UNNESTで検索を行うといろいろ応用が出てくるので参考にしてみたい。
とりあえず自分の目的は上記で解決です。

2014年3月19日水曜日

mavenとiciqlのインストール手順

Javaを利用する機会があり、せっかくなので新しいO/Rマッパーを試そうと思い探していて見つけたのが

iciqlとよばれるO/Rマッパーです。

以前Seasar2のS2JDBCを利用していましたが
軽量ということで使い心地はわからないがとりあえず試してみようと思います。

以下のソフトのインストール手順となります。
Databaseはpostgresを利用します.
・maven
・iciql

OSはmac OS X 10.9.2で行っています。
Postgresは9.3.2を利用しています。

mavenのインストール手順

# mavenをダウンロード
cd ~/Downloads
curl -O http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/maven/maven-3/3.2.1/binaries/apache-maven-3.2.1-bin.tar.gz
# 展開
tar xvzf apache-maven-3.2.1-bin.tar.gz
mv apache-maven-3.2.1 apache-maven
mv apache-maven /Applications/
# パスを追加
echo "M2_HOME=/Applications/apache-maven" >> ~/.bash_profile
echo "PATH=$PATH:$M2_HOME/bin" >> ~/.bash_profile
echo "export M2_HOME" >> ~/.bash_profile
echo "export PATH" >> ~/.bash_profile
source ~/.bash_profile


ここまではおなじみの手順です。
mavenのインストールですので特に解説なくいきます。

iciqlインストール

# iciqlのダウンロードとmvnの追加
curl -o https://iciql.googlecode.com/files/iciql-1.2.0.zip
unzip iciql-1.2.0.zip
# mavenリポジトリに追加
mvn install:install-file -Dfile=iciql-1.2.0.jar -DgroupId=com.iciql -DartifactId=iciql -Dversion=1.2.0 -Dpackaging=jar

iciqlはmavenの保存場所が直接見当たらなかったので
自分の環境にDLしローカル内で保存

pom.xmlの作成


  4.0.0
  net.rule.selenium
  roadbike
  0.0.1-SNAPSHOT
  war
  
   
    com.iciql
    iciql
    1.2.0
   
   
  postgresql
  postgresql
  9.1-901.jdbc4
   
  

postgresと一緒にりようするのでiciqlとpostgresqlでpom.xmlを作成
これで「mvn eclipse:eclipse」で環境が整います。

またこちらを利用したentityクラスの自動生成もありますコマンドは以下となります
postgreテーブルの内容をentityとしたjavaファイルに出力します。
cp ~/.m2/repository/com/iciql/iciql/1.2.0/iciql-1.2.0.jar ./iciql-1.2.0.jar 
cp ~/.m2/repository/postgresql/postgresql/9.1-901.jdbc4/postgresql-9.1-901.jdbc4.jar ./postgresql-9.1-901.jdbc4.jar
java -cp iciql-1.2.0.jar:postgresql-9.1-901.jdbc4.jar com.iciql.util.GenerateModels -url "jdbc:postgresql://localhost:5432/postgres" -user postgres -password {PASSWORD}
iciqlを利用し、entityを自動生成が可能です。
ある程度はマッピングしてくれるので、こちらをベースに対応を行うと便利です。

2014年3月10日月曜日

RALEIGH RSRで箱根へ

とうとうミニベロ買いましたRALEIGH RSRです。

10段ギアの105がシーンに応じ利用可能なので重宝しています。

いきなりですが、箱根の山に挑戦してきました。
ヒルクライムです。

小田原->箱根->熱海












小田原から1号線をひたすら行くコースで、小田原発-熱海着コースとなります。

ミニベロ輪行
輪行中の状態













箱根の山へ挑戦しようと思い18切符行くためまずは
東京から小田原まで輪行です(これも初
左ミニベロ用の輪行袋オーストリッチ ちび輪バッグ・ミニベロ 輪行バッグ ブラックです。
これに入れました。右は、700ccの折りたたみです。
やっぱり小さいが少し長いです。



RALEIGH RSR
小田原駅近くのセブンイレブンにて













とりあえず、前輪を入れサドルの高さを調整しスタート準備中

箱根途中の橋


途中の駅で休憩
山頂までの途中の写真です。雪があるのかと思ったのですがこのあたりはほとんどないです。

箱根 874m地点で撮影













箱根874m地点に到着結構長い道のりでした。(体力不足
この辺りはすごく寒いです。測道には結構雪があります。
漕いでいるとそこまで気にならないですがここから主に下り・・・


ここからさらに1号線を進み芦ノ湖へ











到着するまで寒い・・・
下りは速度がでます。だいたいブレーキなしだと
40〜50km/h程度になります。
手袋していても驚くほど寒いそして足先も


芦ノ湖+自転車+富士山+海賊船w
たまたま来ました。

後はメインの下りここの冷えが非常に厳しかった












最後に撮影ここを下り熱海へ行き温泉へ入り帰宅
頑張れば体力のない人でも箱根は登れます
是非お試しをちなみに総時間8hほどです。