Chrome Extension「MetaVoice(仮)」を公開しました
Chrome Extension「MetaVoice(仮)」を公開しました。
開発期間約10日と完成度はまだまだベータ版です。
自分の頭の中にあるアイデアをひとまず具現化してみたら、こんなのが出来たよという訳です。
改めてマネタイズ無視で作るのは楽しいな!という事を感じた次第です。
このChromeExtensionの特徴・仕様は、
・Webサイト上でページごとに付箋を貼れる
・付箋はURLごと他人の付箋と一緒に保存される
・自分が貼った付箋は、他の人からも見れる。つまり共有される。
となります。
要は、Webサイト上のあらゆる位置にコメントが出来る機能ですね。
いまのところはChromeExtensionという形でのサービス提供です。
将来的にはブログパーツとして公開しても面白いかなと思っています。
CSSちゃんと勉強せんと( ^ω^)・・・
なにかご感想あればお気軽にコメントしてください。
ChromeExtension開発中[jQuery]
ChromeExtension作ってます。
プラットフォームとなるWebサービスは回りだすと最高ですが、なかなか難しい。
やはり既存のものの上位階層で楽しめるWebサービスの方がリスクは低い。
なによりも今更感あるしね
というわけでChromeExtension作ってます。
完成イメージとしてはWebサイトの上に一枚フィルタを貼り、そこにらくがきするというものです。
エクステンションにしたのはアドオンよりも開発が楽なのとFirefox4がリリース間近という不確実性回避のためです。
ChromeはGoogleが広告打って順調にシェアを伸ばしていますし、ユーザーボリュームも十分あります。
さて、実際の開発の話に入りたいと思います。
まずはChrome Extensions API リファレンスでお勉強しました。
チュートリアル→はじめてみようでflickrAPIを使ったサンプルエクステンション動かしてみる。
なんとまあ簡単です。
で、独自のエクステンションを実装しようとすると、生のJavaScriptなんて最近全然触ってないという問題に気づいたんですね。
jQueryなどJSライブラリを使うやり方調べました。
さすがGoogleです。
ちゃんと用意してありました。
{ "name": "My extension", ... "content_scripts": [ { "matches": ["http://www.google.com/*"], "css": ["mystyles.css"], "js": [<span style="color:#FF0000;">"jquery.js"</span>, "myscript.js"] //jquery.jsを追加 } ], ... }
ManifestFileに追加するだけでした。
そしてコンテントスクリプトに
$(function(){ alert("Hello World"); });
とすると「こんちには世界」が表示されて準備完了です
書籍紹介
性欲の科学 なぜ男は「素人」に興奮し女は「男同士」に萌えるのか
- 作者: オギ・オーガス,サイ・ガダム
- 出版社/メーカー: CCCメディアハウス
- 発売日: 2012/09/01
- メディア: Kindle版
- クリック: 9回
- この商品を含むブログ (1件) を見る
- 作者: 架神恭介,辰巳一世
- 出版社/メーカー: 筑摩書房
- 発売日: 2009/11/01
- メディア: 新書
- 購入: 31人 クリック: 423回
- この商品を含むブログ (78件) を見る
電話番号カラムのデータ型とその扱い[PHP][MYSQL][データ型][int型][integer][桁あふれ][telカラム]
今日はPHPとMysqlのトピックです。WebサービスではUsersテーブルにユーザーの個人情報を格納しておくのはよくある事。ユーザーの名前、パス、年齢、性別、住所などですね。今回はその中で「電話番号」のカラムを作っていて10分ほどハマったこととその解決法をご紹介します。
まず、Userテーブルにユーザーの個人情報を格納するカラム群をつくります。データ型を設定してこの段階では特に落とし穴も見当たらないように思えます。user_nameはvarchar(255)くらいでidをAUTO_INCREMENTにして、私も常識的に考えて作ってました。ですが電話番号カラム「tel」に排水溝程度の落とし穴がありました。
問題は「tel」カラムのデータ型にありました。int(11)にして電話番号11桁いれたら
Mysql「そんなにデカイの入るか(゚д゚)バーカ(Warning: #1264 Out of range value for column 'カラム名' at row 1)」
って言われました。無知とはなんとも恐ろしいもの、つい癖で整数のカラムを全部int型にしてました。int型は2147483647までしか入らないということを知りませんでした。でも、Mysqlさんも整数系の他のデータ型にしろって教えてくれればいいのにね。ちょっと調べてみるとtelカラムのデータ型をchar(11)にするなどという邪道が載っていました。そんな小技ではなく、あくまで王道を行きたいのが人情というもの。そこでもっと大きな桁が入る整数系のデータ型がないか調べましたらありました。
DBonline: http://www.dbonline.jp/mysql/type/
TINYINT
-128から127 (符号無しの場合0から255)SMALLINT
-32768から32767 (符号無しの場合0から65535)MEDIUMINT
-8388608から8388607 (符号無しの場合0から16777215)INT
-2147483648から2147483647 (符号無しの場合0から4294967295)
別名:INTEGERBIGINT
-9223372036854775808から9223372036854775807
(符号無しの場合0から18446744073709551615)
だそうです。それで telカラムをBIGINT(11)に変えたらMysqlさんもちゃんとデータを入れてくれました。
Mysql「おっと、整数型だから先頭の0は消えちゃうんだぜ」
でもまだこれで終わりではありませんでした。たいていの電話番号は先頭が0です。整数型ですので先頭の0が消されてしまいます。
MYSQLマニュアル
(5.0.3 より前の) 古いバージョンの MySQL とは異なり、MySQL 5.1 内の DECIMAL カラムは、先頭の + キャラクタや - キャラクタ、あるいは先頭の 0 の桁を格納しません。 DECIMAL(5,1) カラムの中に +0003.1 を挿入すると、それは 3.1 と格納されます。負の数では、リテラルの - キャラクタは格納されません。古い性能に依存するアプリケーションはこの変更を考慮するように改良を施さなければなりません。
で、解決法を例によって探しました。ありました。
CUI版
DBonline: http://www.dbonline.jp/mysql/type/
データ型にZEROFILLを付けるとデータ型の桁数分だけ0で埋められます。
phpadmin版
Webコーダーの手帳: http://web-coder.info/2009/07/phpmyadmin-new-field.html
属性
BINARY:数値型以外
UNSIGNED:正の数値
UNSIGNED ZEROFILL:「長さ/値」で指定した数まで数値の桁が足りない場合は、0を入れる
on update CURRENT_TIMESTAMP:そのデータが更新されるたびに、その時点でのタイプスタンプを値にします
ようやく出来ました
でもvarcharでやったほうがシンプルでいいかも