ブラウザーでバグ取り

ブラウザーでバグ取り
バグ取りに使うのは
Chromeのデベロッパーツール

javascriptの
console.log()
ちなみに、Chrome以外だとSafariにもある
Firefoxなら firebug
というアドオンを入れれば同様にデバッグ可能
ちなみに、javascriptじゃなくて
C言語なら
printfデバッグという手法がつかえる
javascriptで
よくあるバグとしては
document.getElementById
で要素が取得できていない
イベント名のスペルミス
座標が正しく変換できてない
などなと

javascriptメモ

javascriptメモ
document.getElementById

id属性から要素を取得する関数
getContext()
で描画用オブジェクト取得
e.target.getBoundingClientRect()
canvas要素のコンテンツの左上の座標取得
lineWidth
線の太さ
e.clientX – rect.left
マウスのX座標から左余白を引く
e.clientY – rect.top
マウスのY座標から上余白を引く
mousedown
マウスのクリック
mousemove
マウスドラッグ
mouseup
マウスボタンを離す
beginPath()
描画用オブジェクト
Path
は線
canvasで描く画像は
座標から座標までの線の集まりで
線の曲がり方、太さなとをデータ化する
moveTo()
で座標移動
lineTo()
線を引く
stoke()
実際に描画
closePath()
線の描き終わり

CSSの簡単な解説

CSSではボックスレイアウトを採用
これは
各要素をボックス単位でレイアウトするもの
ボックスには様々な種類があり
ブロック
インライン
インラインブロックなどがある
どのボックスにするかは
displayプロパティで指定
ブロックボックスを指定しないと
Webブラウザーの標準設定になる
pならブロック
imgはインラインブロック
paddingは余白設定
borderは
コンテンツを囲む境界線の定義
境界線の有無
大きさ、色を指定できる
marginは境界線の外側の余白設定
複数のボックスをレイアウトするとき
ボックス間の間隔を取るのに利用
paddingとmarginは間隔の設定だけど
背景に対しての動きが違う
背景色、背景画像を設定するとき
paddingたと表示される
marginだと表示されない
どちらを使えばいいか悩んだら
border:1px solid;
として
境界線を表示するとわかりやすい
ちなみに solidは線を引く

サーバーサイドJava script Node.js

サーバーサイドJavascript Node.js
Node.jsは
非同期処理を特徴としたJava scriptの処理系
非同期処理とは
実行の順序が前後しても問題ない処理
処理系は
プログラミング言語を実装したソフトウェアのこと
つまり、複数のクライアント接続を受けて処理できるサーバーソフト版
Javascriptのようなもの
Webサーバーソフトとしては
Apacheが有名だけど
今回はNode.jsを使用
インストールは
sudo apt-get install build-essential
sudoapt-get install libssl-dev
sudo apt-get install curl
で必要なパッケージインストールしてから
nvmに必要なGitHubを使用
sudo apt-get install git-core
git clone git://github.com/creationix/nvm.git ~/.nvm
これで、nvmがダウンロードされるので
source ~/.nvm/nvm.sh
で準備完了
これで、
nvm install v0.6.5
でインストール
これだけだと
ログアウトしたら設定が消えるため
sudo apt-get install vim
でエディタをインストールして
vim ~/.bashrc
でファイルを開いてから
最終行へ
source ~/.nvm/nvm.sh
nvm use “v0.6.5”
を追記して保存
あとはWebサーバーとして動作するのに
必要なライブラリを
npm install connect
でインストール
npmは
Node Package Managerで
ubuntu の apt-getみたいなもの
今回は
connectパッケージインストールしてます
では、Webサーバーとして起動
まずは
mkdir ~/public
cd
node -e “var connect=require(‘connect’); connect(connect.static(__dirname+’/public’)).listen(8080);” &
を実行
nodeコマンドは
Node.jsを実行するプログラム
_dirname
には
Node.jsで実行する
Java scriptを配置するパスを格納
listen(8080)
は使用するポートを指定
今回なら8080
&はLinuxでおなじみのバックグラウンドでの
実行
Webサーバーを停止するには
jobsコマンドでジョブ番号を調べて
kill %ジョブ番号
とします
ジョブ番号1なら
kill %1
あとは
サーバーにアップしたいファイルや
ブラウザーでみたいファイルを作るなら
~/public
の下に作成していきます

インテントの例

メール機能を利用したいアプリアプリを、呼び出すIntentの例
//暗黙的Intentでメール機能を持つアプリの呼び出し
Uri uri = Uri.parse(“mailto:hogehohe@mail.com”);
Intent intent = new Intent(Intent.ACTION_SENDTO,uri);
intent.putExtra(Intent.EXTRA_SUBJECT,”メールの題名”);
intent.putExtra(intent.EXTRA_TEXT,”メール本文”);
startActivity(intent);
これの解説
Intentフィルターに
Intent.ACTION_SENDTO
をセットし
startActivity
を呼び出すと
端末内にインストールされている
メール機能を持ったアプリが
リスト一覧で表示される
同様に
カメラとかナビ、マップも可能

暗黙的Intentについて

暗黙的Intentの利便性
Androidでは
Intent機能を使うことで
他のアプリケーションを呼び出したり
機能の一部を処理することが可能
例えば
カメラ機能を呼び出すなら
setAction

ACTION_IMAGE_CAPTURE
をセットして呼び出すことができた
本来、Intemt機能で
特定のアプリを呼出すには
アプリのパッケージ名やアクティビティのクラス名
をしていしないといけないので
呼び出すアプリの詳細情報がわからないと
呼び出せない
これだと面倒だけどもうひとつのIntent機能になる
暗黙的Intent
これを使うと少し楽になる
暗黙的Intentの呼び出しは
パッケージ名やクラス名を使わず
どういう処理をするアプリを呼び出すか
という
Intentフィルターだけセットする
この方法でアプリを呼び出せば
該当する機能を持つアプリがリストとして
表示される
あとは
利用したいアプリを自分で選択してもらい
そのアプリに処理を委ねられる
例えばメールなら
Gmail
Eメール
メールアプリ
の選択がでる
これを使えば
地図のアプリも使えるかもしれない

data-xxxxx属性

検証に必要な情報はdata-xxxxx属性で
検証に必須なパラメータ情報は
data-xxxx属性で指定
<input … class=”valid length” data-length=”30″/>
data-xxxxx属性は
目的に応じて開発者が自由に設定できる特別な属性
使い方としては
スクリプトで利用するパラメータ情報を埋め込むのに多用される傾向あり
xxxxxにへ
アルファベット
ハイフン
アンダースコアなどか利用可能
例えば
htmlファイルで
<input type=”text” class=”valid length” data-length=”30″/>
とすれば
Jqueryで
.filter(‘length’).each(function(){
if($(this).val().length > $(this).data(‘length’)){
というように判定に使える
今回なら
data-length属性で
文字列長検証て利用する
許可する最大の文字列の長さを設定している
このように
可変なパラメータと
イベント処理を分けておくことで
あとからコードが再利用てきる
つまり、ライブラリができる
data-xxxxxで指定した値は
dataメソッドで
data(‘xxxxx’)
というようにして取得できる
data(‘data-xxxxx’)
ではないので、注意
以下は検証パラメータの例
data-pattern
フォーマットチェックに利用する正規表現パターン
data-length
許可する最大の文字列の長さ
data-max
許可する数値の上限
data-min
許可する数値の下限
data-option
許可する候補リスト
空白区切りで指定する

Jqueryの入力値の検証

Jqueryの入力値の検証
適用する検証機能の種類は
class属性て定義する
required
必須検証
これは
値が入力されているかチェック
regexp
フォーマット検証
これは
正規表現パターンに合致するかチェック
length
文字列長検証
文字列の長さが指定の長さを
超えてないかチェック
range
範囲検証
数値が指定の範囲に収まっているかチェック
inarray
候補値検証
入力値が候補リストの中にあるかチェック
使い方は
<input type=”text” id=”isbn” size=”20″ class=”valid required regexp”/>
というように
クラス名 検証機能
というようにする
つまり今回なら
validクラスへ
requiredで必須検証
regexpでフォーマット検証
の2つを検証している
class属性は
スタイル設定だけではなく
要素分類のキーとしても使える

Ask Ubuntuに参加してトロフィーを獲得しよう!
を見て、興味をもちましたので、早速登録してみました
すべて英語ですが
スキルアップするにはよいと思います
まず
http://askubuntu.com/
へアクセスし
画面の上にある
log in をクリックします
Screenshot-2012-08-01 20:14:42
次に、
click here to sign up
をクリックします
下にある
click here to recover your account は、
ログイン情報を忘れたときにクリックします
Screenshot-2012-08-01 20:16:15
次に、登録画面になります
Screenshot-2012-08-01 20:18:46
name@example.com
の所には
メール・アドレス
John Smith (optional)
にはユーザ名
Password
にはパスワード
パスワードを入力するとき
英数字だけだと
Add upper case, or special characters.
と警告がでます
これはパスワードが弱いため
大文字、特殊文字を追加してください
という意味です
例えば
ttlm90g
だとダメですが
Ttlm#09G
というように、いろいろと組み合わせを行います
その下には、認証のため
ちょっと歪んだ文字を入力します
これは、マシンで自動でアカウントをつくらせないようにするための措置です
Create Stack Exchange Account
をクリックすれば
アカウントを作成できます
アカウントを作成すると
Complete Registration on askubuntu.com
というメールがくるので
Click here to complete your registration on askubuntu.com
をクリックすれば登録完了となります

ISW13HTの設定

ようやくバッテリーと
バッテリー充電機が到着したので
設定開始です
すでに
microSDも32GBのものを用意し
準備は万全です
まず設定そのものは
最初にIS04購入したときと同じように
au one ID

Googleアカウントの設定ぐらいです
追加で
メーカーのユーザー登録などが
でまずが、これはスキップしました
いくつかアプリの設定をしますが
個人情報取得関連は拒否しても
普通にスマートフォンは使えます
次に、テザリングとWiMAXの検証です
自宅では
イーモバイルが圏外のため
最悪の場合つながらないことも覚悟しましが
つながることができたので
一安心
新しく、IS04から
機種変して
アプリはどうなるかみてみました
どうやら最初からインストールしていくしかないようです
たたし、以前購入した有料アプリは
使用するGoogleアカウントが
同じなら
すでに支払いが済んでいるなら
そのまま使えますので
再度課金されません
あと、すでに機種変した端末でも
SIMカードを差し替えれば
使えますし
Wifi接続すれば
メールの送受信やインターネット閲覧はできます
たたし、通話はできません
SIMカードがささっていないと
上にエラーがでたままになります
また、Googleアカウントが重複するためか
エラーがでるので
一度ログインしないと
Gmailの送受信ができません
毎回パスワード入力は面倒なので
パスワード管理アプリ
keepassDroid
を使ってます
現在、サブバッテリー充電していますのて
テザリングの連続稼働時間もみてみようと思います