jQueryの使い方
クラス名の取り方alert($('.class')); alert($('#id'));
SQliteのテーブル構成確認
select * from sqlite_master where type='table' and name='テーブル名';
enchant.js
HTML5やJSでできる面白そうなゲームライブラリenchant.js。参考URL
hamlをRailsで使う
http://haml.ursm.jp/getting-startedjQueryで紙芝居な動き
Rails3上で動かそうと以下のサイトを参考にコード書いたが動かん!→cssも設定せんといけんからだ。
http://www.skuare.net/test/jzindexgal.html
あと、画象は上からではなく下から順に読み取ってるかも?
自分で最小構成を作った。
公式サイトからjQueryをダウンロードする。
「jquery-1.6.1.min.js」恐らくこんな名前
「min」と「そうでない」の2種類あるみたいけど、jQueryを自分で修正しない限りminで大丈夫なはず。
・まずはHTMLファイルを準備 ※juery-1.6.1.min.jsは読み替える
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Demo for - 'Create a unique Gallery by using z-index and jQuery'</title> <link rel="stylesheet" type="text/css" media="screen" href="css/main.css" /> <script type="text/javascript" src="js/jquery-1.6.1.min.js"></script> <script type="text/javascript" src="js/demo.js"></script> </head> <body> <!-- 実際のコード--> <div id="pictures"> <img src="images/picture1.jpeg" alt="" /> <img src="images/picture2.jpeg" alt="" /> <img src="images/picture3.jpeg" alt="" /> <img src="images/picture4.jpeg" alt="" /> <img src="images/picture5.jpeg" alt="" /> </div> <div class="grid_3 alpha" id="prev"> <a href="#previous">« 前へ</a> </div> <div class="grid_3 omega" id="next"> <a href="#next">次へ »</a> </div> <!-- 実際のコード--> </body> </html>
・画象を用意する
→今回はこれらを用意しました。
picture1.jpeg〜picture5.jpeg
※imagesフォルダに入れる
・JavaScriptを用意
jsフォルダを作って、ダウンロードしたjQueryを放り込んで今回のdemo.jsを作りdemo.jsの中には以下を記載
$(document).ready(function() { //perform actions when DOM is ready var z = 0; //for setting the initial z-index's var inAnimation = false; //flag for testing if we are in a animation $('#pictures img').each(function() { //set the initial z-index's z++; //at the end we have the highest z-index value stored in the z variable $(this).css('z-index', z); //apply increased z-index to <img> }); function swapFirstLast(isFirst) { if(inAnimation) return false; //if already swapping pictures just return else inAnimation = true; //set the flag that we process a image var processZindex, direction, newZindex, inDeCrease; //change for previous or next image if(isFirst) { processZindex = z; direction = '-'; newZindex = 1; inDeCrease = 1; } //set variables for "next" action else { processZindex = 1; direction = ''; newZindex = z; inDeCrease = -1; } //set variables for "previous" action $('#pictures img').each(function() { //process each image if($(this).css('z-index') == processZindex) { //if its the image we need to process $(this).animate({ 'top' : direction + $(this).height() + 'px' }, 'fast', function() { //animate the img above/under the gallery (assuming all pictures are equal height) $(this).css('z-index', newZindex) //set new z-index .animate({ 'top' : '0' }, 'fast', function() { //animate the image back to its original position inAnimation = false; //reset the flag }); }); } else { //not the image we need to process, only in/de-crease z-index $(this).animate({ 'top' : '0' }, 'fast', function() { //make sure to wait swapping the z-index when image is above/under the gallery $(this).css('z-index', parseInt($(this).css('z-index')) + inDeCrease); //in/de-crease the z-index by one }); } }); return false; //don't follow the clicked link } $('#next a').click(function() { return swapFirstLast(true); //swap first image to last position }); $('#prev a').click(function() { return swapFirstLast(false); //swap last image to first position }); });
・さらにmain.cssをcssフォルダを作って入れる。
main.cssに以下を記載する
/* relevant for the tutorial - start */ #gallery { position: relative; } #pictures { position: relative; height: 408px; } #pictures img { position: absolute; top: 0; left: 0; } #prev, #next { margin-top: 30px; text-align: center; font-size: 2.0em; } /* relevant for the tutorial - end */||< <h3>BPStudy#45<h3/> Wi-fi 飛んでいる無線から位置を判別 サーバー側にHotSpotのデータベース 必要に応じてダウンロード ・周辺のデータを取得するために、一度はデータ通信が必要 ・iOS3.2から〜 GPS iPadからGPSの精度が上がっている 他のセンサーと併用で精度が上がる デバイスごとの違い iPhone CoreLocationサービスの使い方 CoreLocationフレームワーク CLLocataionManagerオブジェクト Delegateパターンで通知 位置情報の区別はない ・使いこなす上で大事なポイント APIは一つ、GPS CLocationManagerの構成可能なプロパティ ・desiredAccuracy ・必要な制度はどれくらいか? ・この値によって使う方法が変わる delegate側の処理 GLLocationManager Your App Object <CLLocation〜〜〜> 地図を更新したり〜〜 GLocationObject 緯度経度 GLCoodingnate2D ・軽度 latitude 軽度 longitude ・高さ ・横方向精度・縦方向精度 ・スピード・進んでいる方向 、タイムスタンプ サービスの種類 3つ ・標準位置情報サービス ・Significant Location Change だいぶ位置が変わったら知らせる ・Location Region Monitoring 特定の位置に入ったら知らせる ユーザーの承認 :プライバシー 位置情報を使うアプリケーションはユーザーの許可が必要。設定アプリで確認 これまでは、トライしてエラーをdelegateで その他の注意点 エラーが起きた場合、しばらく バッテリーを使いきってしまう Mapkitは独自の〜〜 iPS 4の位置情報アプリ バックグラウンドで動かす サスペンド状態 Infaplstに1行追加するだけ Requested〜〜〜 ・NSTimerを動かさないのが困る 定期的な処理はできない エラーができたら止める。10秒後に試す→来ないかもしれない BGでの動作での注意 バッテリには昇進の注意を 可能ならSignificant Location Changeに切り替える ディスクに保存しすぎない →けどメモリも使いきらない ローメモリ・ワーニングはこない BGでの動作で注意することは? バッテリには細心の注意を 可能ならSignificant Location Changeに切り替える。精度は下げる。 ユーザへの通知にはLocal Notification アプリが殺されることに対処。 永続的な〜〜〜 BGでのでの動作で注意することは? 牧歌的な時代はおしまい アプリ起動時に位置情報サービスを不通に起動しっぱなしは止める サービスの動作を 位置情報アプリのライフサイクル ・BGにいるアプリは殺される ・殺されたアプリでも、一条号を取得すると復活させれる ・位置に変化がない限り復活しない ・アプリは自分で〜〜 位置情報アプリのライフサイクル 。復活するのは、Significant Location Change、およびRegion Management〜〜 位置情報アプリのライフサイクル ・継続的に〜〜 位置情報取得の用途 ・Fetch Location 現在地取得 今との地点にいるか。精度の問題。 Detect Area 現在地域取得 MapViewで最初どこを表示するか Track Location 現在地追跡 過去からの軌跡も参考に Fetch Location 現在地取得 ・現在地を特定する ・ある程度の精度を要求される ・一瞬では絶対におわらない ・非同期処理になる ・精度が足りなくても特定できるあ場合がある 位置情報の注意 ・得られた制度情報にいるわけではない ・精度を半径とした情報は Detect Area 同期で取得がいい Trac Location 現在地追跡 トラッキングの考え方 ・矛盾しない限り精度を下げる必要はない ・速度から次にいきそうな場所を特定できる ・緯度経度の中にいるわけではない 仮想の場所を作って追跡する ■実例:駅ベルに見る位置情報の使い方 アプリ内で複数のCLLocationManagerは必要か? ・あまりよろしくない雰囲気 ・ユーザーの承認もアプリ単位 ・最初に使うLacMgrが変わるとpromptが変わるというのも変 ・モデルがdelegateなのは使いづらい アプリの中にはCLLocationManagerhaが一つだけなのが綺麗。 ・PPGLocationService を生成、管理、delegateを兼ねる。 複数のPPGLocationService ・PPGLocationClient KVO版みたいな感じ ・Tracker 駅ベルのコア。PPGLocationClient 距離によって精度を段階的にアップ 最初は数キロ、近くなったらbest 表示を担当するビューとは分離 表示に必要な値をプロパティに バージョン2で複数駅に対応 工夫&苦労 ・地下鉄にはどうやっても弱い。 ・理論上可能、実際には間に合わない。 ・前の駅を完治したら鳴らすか? ・BGでタイマーが使えない BGで出来ることは少ない 音を鳴らしたければ事前に準備 KVOを使う →サーバサイドで使っているとない 精度を細かく出来る Notificationだと大雑把になりがち 明確なイベントはNotificationでOK 値の変更の監視はKVOで ChangeNotificationみたいなのは怪しい KVOを使う 1:Nの監視ができる 1:1はDelegateでいい 関係を弱くするのに有効 位置情報のデバッグ ・PPGLocationServiceに実装 ・8の字を描きながらウロウロするロジックを実装 ・NSTimerよる議事実装なのでBGでは動作しないのがネック DEBUG HACK ・BGに回るときにタスクを実行すれば10分間の猶予はもらえる ・PingPig 関心空間のiPhoneライブラリ http://basuke.com @basuke 簡単と思ったが開発すると難しい 中国は精度が違う Wi-fiは多い 上海では使えない 10秒間に処理を返さないと殺される ・自己紹介 HNさぼてん 年齢0x1d 出身関西 所属:Java-ja、Wicker-ja 肩書き:Jenkinsコミッタ ■Jenkinsについて何か ・Jenkinsのクラスタリングのすすめ CIとは 継続的インテグレーション(Continous Integration)の略 XOのベストプラクティスの一つ システムのインテグレーション作業を開発の〜〜の 具体的には チェックアウト→コンパイル→UnitTest→インスペクション→パッケージ→結合テスト→デプロイ→システムテスト→チェックアウト・・・・ 繰り返していくのがCI できるだけ頻繁に行う CIを回したときにアラートを上げるのがフィードバックを返す CIを使うメリット 成果物の品質の保証 ビルドやテストが通らない、といった開発時の不具合が先送りになりにくくなり、早期発見しやすく成る 個人定期に考えるメリット ・関心ごとの分離 一度に複数のことを対処することはよくない 全ての予測するのは現実的ではない 人間が行わなければならない仕事に注力できる ・テスト資産 テストを書くようになる テスト戦略について考えるようになる ・リソースの有効活用 ・複数の環境 何から始めればいいか?どうやるか? Jenkinsとは ・OSSのCIツール メインの開発者は川口佳介さん みんながテストをがしがし書いていく ローカルでの実行でも時間がかかる場合は〜〜 スローテスト問題 ・テスト実行に時間がかかりすぎる テスト実行数の増加によるところ 非効率なテスト 依存関係 解消方法 ・テスト自体のパフォーマンスチューニング TODO定期なテストは捨てる DBなどはモック化 ・jobのスケーリング 早く終わる物、価値の高いものを優先 ・Jobを細分化 並列化を上げる ・スケールアップ ・スケールアウト(クラスタリング) やっとクラスタリングに ・マスタ/スレーブ方式 マスタは命令を出す スレーブを命令通りに仕事する マスタはスレーブの結果をすすめる。 ・スレーブの設定はsshがお勧め →公開鍵の設定が VM上にしておけばいい ・スレーブにラベルを付けれる WindowsのみやLinuxのみ、実行環境のバージョンやDBごとなどをグループ化 ・デモ Windows JNLP経由でスレーブ起動 コンソール出力 クラスタリング構成の有用性 ・マシンは人間に比べて安い こき使いましょう 使いこなすのもスキル ・Job単位で並列で実行可能 Jenkingは導入が簡単 ・情報 ・公式Wikiに日本語情報がありまs. クラスタリング ・Twitterでつぶやく ・ブログに〜〜 プラグイン ・自転車 de ダイエット 自転車のウェブサービス Input 炭水化物、タンパク質、脂肪、水分 Output 燃焼 7,000 脂肪の重さ 7000kcal/kg 7000kcal燃焼させれば痩せられる 消費カロリー > 摂取カロリー 運動強度って? 強度が高い=キツイ運動 脂肪 出力(わっと) 心拍数 RPE 主観的運動強度 NO SILVER BULLET ダイエットの心構え ・計測は力なり 食事、間食、飲料の摂取カロリー 基礎代謝、運動量の把握 グリコーゲンと水がいる 1馬力 742ワット 競輪2500ワット 馬・・4馬力 データ解析ソフト C++/Qt ・自転車通勤 #jite2 会社の役員が多い。 ■akisutesama In-App Purchase In-App Building Say "dodai.com" ・サーバーサイドでの保存 レシートを保存 購入履歴 認証デバイス ユーザーの管理 ・レシート Base64のデータがユーザから来る Appleのサーバに投げてJSONが帰ってくる ・重要(レシート) original purchase date transaction id アップルとの product id アイテムをAppleに管理する必要がある 手作業で入れる 販売先や自分でも保存しないとダメ purchase id →足りないもの 誰が買ったか? 誰が入ったかが取れない Androidもとれない notification id いらない product id ・iPhone AppleID →とれない UDID デバイスのID →取れる マックアドレスもとれる ・Android 〜〜〜〜ANDROID_ID 信用できない 使えない ・Inplement ID/Password ・E-mail ・Key generation ・Receipt verification ・API Example モデル ・User -user_id -devices ・Mobile Device -platform -udid ・IAPLog -platform -udid