ブログの存在すっかり忘れてたよ

うん、まさに忘れてた。ほんとに。

この2年の間でびっくりするくらい、目まぐるしく自分も環境も変わった気がする。

仕事で言えば、
2010年の終わりのクリスマス大リリースから始まり、
年明けの大障害
不眠不休の復旧作業
未経験からのプロジェクトマネージャ業
大阪の父に怒鳴られどやされの日々、、、


そして最終的に、まさかのMVP受賞、東京転勤と。



私生活でも。
じいさん死んだり、
そこきっかけで親と大喧嘩したり、
お詫びのLA旅行やダーリン退職。
からの、プロポーズ大作戦



2011年の1月ごろに、
アップしようとして下書き止まりになっている記事をさっき見たけど、
相当まいってたんだろうね。
悩み悩みの思いの丈がつらつらと書かれてたや。


当時から考えると今はずっとスッキリと将来を考えられている気がする。
自分が何をしたいのか、すべきなのかなんてわからんしわかるようになるのか見当もつかん。


ただ今やるべきこと、やりたいことと真摯に向き合っていれば、
おのずと結果はついてくるんだろうと思った。
周りのスピードに焦ることはこれからもあると思うけど。


「あんたは遅咲きタイプだよ」と言ってくれた、彼女の言葉をかみしめる。



大きなことを成し遂げたいとは思ってない。
小さくても、自分の好きな人が喜んでくれることをしたい。
あせんな、おれ。

ホットペッパーのAPIを使う

はじめてAPIを使ったのでめもめも。


ホットペッパーAPIはメールアドレスだけで登録完了なので、かなりお手軽に使えてよいです。
また、REST方式が採用されているので、
GETのパラメータを渡してリクエストを投げれば、xmlレスポンスを取得できるっていう、
私みたいな初心者にもやさしいAPIでした。


PEARにもxmlを扱うライブラリがあるみたいやねんけど、
今回はPHPの組み込み関数simplexml_load_fileを使ってます。

$apiKey = "APIキー";
$shopId = "Jxxxxxxxx";

// リクエストURL
$req = "http://api.hotpepper.jp/GourmetSearch/V110/?key=$apiKey&ShopIdFront=$shopId";

// simplexml_load_fileを使うと, SimpleXMLElementクラスのオブジェクトを返します.
$xml = simplexml_load_file($req);

// 店情報
$shop = $xml->Shop;

// たとえば店名ならこんな感じで子ノードへアクセス
echo $shop->ShopName;

よどがわの花火

を、初めてちゃんと見に行きました。
せっかく大阪に引っ越して歩いて行けるくらいの近所にいるくせに、ずっと行ったことなくて。

んやー。でっかい!びっくりでかいねー!
感動しました。ほんと、口がぽけーっとあいて。

田舎の小さな盆踊りであがる花火しか知らなくて。

元気なうちに、お母さんにも見せてあげたいと思いました。
きっと腰ぬかす。

PDOの使い方

ずっと使ってたわりには全然理解してなかったんやなーと反省。

PDOでデータベースに接続

$dsn = "pgsql:host=localhost; dbname=test_db";
$username = "ユーザー名";
$password = "パスワード";
$pdo = new PDO($dsn, $username, $password);

普通にSELECTするとき

$sql = "SELECT * FROM data";
$query = $pdo->prepare($sql);
$query->execute();
$result = $query->fetchAll();

プレースホルダ使ってSELECTするとき

$sql = "SELECT * FROM data WHERE id = ?";
$query = $pdo->prepare($sql);
$query->execute(array($_POST['id']));
$result = $query->fetchAll();

queryとprepareのちがいは?

queryとprepareは似たような感じやけども、SQL文の基本部分が同じで値だけ異なるような場合にはprepareを使う。

$sql = "SELECT * FROM data";

だけならどっちでもいいけど、

$sql = "SELECT * FROM data WHERE id = ?";

のように、値が固定じゃない場合はprepareを使うのが基本。
1回だけ使用するようなSQL文の場合はqueryを使う。

PostgreSQL

主キーについて

PRIMARY KEY制約 = NOT NULL制約とUNIQUE制約をいっしょに付けたのと同じ。
テーブルの中での一意な値。で、1テーブル内には1つだけ。
インデックスも自動で作成される。

create table data_tb (
    id integer primary key,
    date timestamp default NOW() not null,
    memo varchar(200)
); 

インデックスについて

データの検索速度を上げるために、カラムに対して作成する索引のこと。
とある1レコードのデータを検索するとき、やみくもに順番に1レコードずつ調べていくよりも、
特定のカラムでばばばばーっと検索・位置を特定してから、そのレコードを読み込む。


とくに大きなテーブルでは効果を発揮するけど、
貼り方をまちがえると逆にパフォーマンス低下につながるので、注意が必要。

パフォーマンスUP↑↑なパターン
  • 表の結合条件に使用される列に対して作成。
  • 違う値が多くてばらついてる列に対して作成。
パフォーマンスDOWN↓↓なパターン
  • 値があんまりばらついてない列に対して作成。
  • 更新頻度の高いテーブルで作成(テーブル更新のたびにインデックスも更新されるため)
create index date_index on data_tb (date);
drop index date_index;

ちなみに、drop tableするとインデックスも削除される。

あけましておめでとうございます

今年はもっと細かい小ネタをブログにあげていけるようにがんばります。


年末年始が出勤で、ちょっとお正月気分はあんまり味わえなかったんですが、
上司や先輩とじっくり話す機会に恵まれて、少し、自分の道が見えてきました。


結局わたしは、入社前から何も考え方は変わってないことに気付きました。
それが自分の根底にあるものだから、もっと大切にしないといけなかったのに。


周りの人たちのすごさに圧倒されて、
なんとかついていきたい、同じように考えていきたい、って焦った結果、
ずっと持ってきた気持ちを忘れてたんよね。


まさかSPIの結果から気付かされるとも思わんだけど。笑


でも。
道が見えたってのは語弊があって。。
手掛かりが見えた、って感じやなぁ。


だから今年は、自分自身を忘れないように、自分の道を探す1年にします。

チェックボックスの一括チェック、一括解除をチェックボックスで操作する方法

この前も書いたんですが、jQueryの方がかなーーりすっきりするのでこっちで。
それになんかjQueryで書くと直感的でわかりやすいなぁ。。って思うのはうちがデザイナーかぶれやからなんかな。

jQueryで実装してみる

<script type="text/javascript">

//全選択チェックボックス用処理
function allCheck() {
	if ($("#allcheck").is(":checked")) {
		$(".onecheck").attr("checked", true);
	} else {
		$(".onecheck").attr("checked", false);
	}
}

//個別選択チェックボックス用処理
function oneCheck() {
	var count = $(".onecheck").length;

	for (var i=0; i<count; i++) {
		if (!$(".onecheck").eq(i).is(":checked")) {
			$("#allcheck").attr("checked", false);
			return;
		}
	}
	$("#allcheck").attr("checked", true);
}
</script>

<form action="" method="post" name="form1">
	<input id="allcheck" type="checkbox" name="" onclick="allCheck();">全選択<br>
	<input class="onecheck" type="checkbox" name="" onclick="oneCheck();">チェック1<br>
	<input class="onecheck" type="checkbox" name="" onclick="oneCheck();">チェック2<br>
	<input class="onecheck" type="checkbox" name="" onclick="oneCheck();">チェック3
</form>

比較用に以前のコードも

普通にjavascriptのコード。

続きを読む