TitaniumのMapViewで使えるイベントまとめ
ちょっとTitaniumをいじっているのですが、地図を扱うmapviewで使えるイベントを調べたのでメモ
click → 地図をクリックしたとき
complete → 地図の読み込みが終わった時
dblclick → 地図をダブルクリックした時
doubletap → 地図をダブルタップした時 ※ クリックとタップの違いは??
error → mapviewでエラーが起きたとき
loading → 地図を読み込んでいるとき
longclick → 地図を長くクリックしているとき ※ 長押しってどれくらいの時間??
longpress → 地図を長く押している時 ※ クリックとの違いは??
pinch → 地図をピンチしたとき
postlayout → 描画がおわったとき?
regionChanged → 地図の表示領域が変わったとき
singletap → 地図の表示領域以外でタップしたとき?
swipe → 地図の表示領域以外でスワイプしたとき?
touchcancel → デバイスによって、イベントがキャンセルされたとき
touchend → イベントが終わったとき
touchmove → 地図上をタッチしながら動かしているとき
touchstart → 地図上をタッチし始めたとき
twofingertap → 2本指タッチしているとき
いっぱいありますね。 実機じゃないとわかりづらいものもあるので、実機に転送して試してみることにします。
参考) 公式ドキュメント
ブログ移転しました
自ドメインで運用してみたくなったので、ブログを移転しました。
移転先は http://blog.ojimac.com になります。
新しいブログもどうぞよろしくお願いします!
2015/09/29 追記
はてなブログ http://ojimac.hatenablog.com/ に戻ってきました。
WordPress、ブログにも使える月1500円以下のVPS、レンタルサーバー料金・スペックまとめ
見つけ次第、どんどん追記していきます。
VPS
名前 | 月額料金 | 初期費用 | メモリ(MB) | HDD(GB) | memo |
---|---|---|---|---|---|
SaaSes Osukiniサーバー LT | 450 | 3,000 | 512 | 30 | http://www.saases.jp/hosting/hos_006.html |
ServersMan@VPS Entry | 490 | 0 | 256 | 10 | http://dream.jp/vps/ バックアップ用途として使用中。ターミナルの反応が遅い... |
KAGOYA VPS | 840 | 0? | 512 | 50 | http://www.kagoya.jp/cloud/vps/ HDDが10G/105円で増やせる |
さくらのVPS 512 | 980 | 0 | 512 | 20 | http://vps.sakura.ad.jp/ 使ったことあり。快適。 |
ServersMan@VPS Standard | 980 | 0 | 512 | 30 | http://dream.jp/vps/ |
SaaSes Osukiniサーバー ST | 980 | 3,000 | 1024 | 100 | http://www.saases.jp/hosting/hos_006.html |
CloudCore VPS | 980 | 0 | 2048 | 100 | http://www.cloudcore.jp/vps/ 2011/11/15に発表されたばかり。キャンペーンかつ1年契約で月980円 |
さくらのVPS 1G | 1480 | 2,980 | 1024 | 30 | http://vps.sakura.ad.jp/ |
レンタルサーバー(sshログインができるもののみにしています)
名前 | 月額料金 | 初期費用 | Disk(GB) | memo |
---|---|---|---|---|
さくらレンタルサーバー スタンダード | 500 | 1,000 | 100 | https://www.sakura.ne.jp/standard.html 使ったことあり。快適。 |
CORE SERVER CORE-MINI | 400 | 0 | 60 | https://www.coreserver.jp/ 年払にすると2,500円(月208円になる) |
CORE SERVER CORE-A | 500 | 0 | 120 | https://www.coreserver.jp |
CORE SERVER CORE-B | 990 | 0 | 240 | https://www.coreserver.jp |
ロリポップ レンタルサーバー チカッパプラン | 500 | 0? | 30 | http://lolipop.jp/service/plan-chicappa/ |
レオサーバー | 525 | 1,050 | 無制限!? | http://www.leosv.jp/ ※1ヶ月契約だと月1,050円、1年契約で月525円 |
KAGOYA 共有サーバー PERSONAL | 840 | 0 | 50 | http://www.kagoya.jp/shared3g/ ※ただしDBはオプション |
heteml | 1500 | 3,950 | 42.195 | http://heteml.jp/service/function/ |
[更新履歴]
MySQLを5.1から5.5にアップグレードしてハマったのでメモ
MySQL5.5からは、/etc/my.cnfの文字列設定の項目名が変わりました。
5.1は
default-character-set = utf8
だった箇所を、
character-set-server=utf8
としないといけませんでした。
/var/log/mysqld.logに、
[ERROR] /usr/libexec/mysqld: unknown variable 'default-character-set=utf8'
と出力されていて気づきました。
ひょんなことからiPhoneアプリ作ることにしたので勉強の過程をメモしていきます
手始めに積ん読にしていた「はじめてのiPhoneプログラミング( http://www.amazon.co.jp/dp/4797354011/ )」を読んでいこうかなとおもってパラパラ読んでいると、まずは公式ドキュメント読もうと書いてあったので従うことにしてみました。
まずは「iOSテクノロジーの概要」から
読んだ感想としては、iOSでどんなことができて、それぞれどのドキュメントを読めば解決できるという道しるべを提供してくれるドキュメントという感じでした。
以下、後で見直せるように気になったところをまとめておきます。
iOSテクノロジーの基礎
- マルチタスクの裏で何が起こっているか
- アプリAを立ち上げつつ、アプリBを立ち上げると、アプリAはメモリ内に保持され、一時停止状態になる
→ バックグラウンドでも動きつづけていると思っていました... ただし、以下のことはアプリ側でハンドリングできるようです。- 一時停止までの時間をアプリ側で制御できる
- 定期的にバックグラウンドで何かしらの処理をする必要があれば、アプリ側で制御して実行できる
- 一時停止中でもユーザーへの通知(Local Notification)を行うことができる
- アプリAを立ち上げつつ、アプリBを立ち上げると、アプリAはメモリ内に保持され、一時停止状態になる
また、マルチタスクに対応するには、開発者側でコードを書く必要があるようです。
→ 「iOS Application Programming Guide」 参照
印刷機能(ワイヤレス対応のプリンタと通信してiPhoneのコンテンツを送信できる)
→ iOS4.2から
→「Drawing and Printing Guide for iOS」 参照
データ暗号化
→ iOS4.0から
→「iOS Application Programming Guide」 の「Implementing Standard Application Behaviors」参照
Apple Push Notification
→ iOS3.0から
いわゆるPush通知。文字での通知、アイコンバッジ、音声による警告の3種類がある。
→「LocalandPushNotification Programming Guide」参照
Local Notification
→ iOS4.0から
- Apple Push Notificationの違いは、ネットワーク的に離れたサーバにプロセスを常駐させるか、ローカル(アプリ内)だけで完結できるか。
Gesture Recognizer
→ iOS3.2から
ジェスチャーのサポートを提供
「Event Handling Guide for iOS」参照
ファイル共有サポート
→ iOS3.2から
「Information Property List Key Reference」参照
ピアツーピアサービス
→ iOS3.2から
Bluetoothを使って、他のデバイスと通信を行う
「GameKitProgrammingGuide」参照 → GameKitについては、「Game Kit Framework」参照
外部ディスプレイのサポート
→ iOS3.2から
Cocoa Touchフレームワーク
Address Book UI
連絡先系
→『Address Book Programming Guide for iOS』および『Address Book UI Framework Reference for iOS』を参照
Event Kit UIフレームワーク
カレンダ関連イベント
→『Event Kit UI Framework Reference』参照
Game Kitフレームワーク
→ iOS3.0から
アプリ間通信
Game Center( Game Kitの拡張 )
→ iOS4.1から
『Game Kit Programming Guide』および『Game Kit Framework Reference』を参照
iAdフレームワーク
→ iOS4.0から
アプリからバナー広告配信
『iAd Programming Guide』参照
Map Kitフレームワーク
→ iOS3.0から
スクロール可能な地図
→ iOS4.0から
ドラッグとオーバーレイ(地図にルート等の情報を重ねる)が可能に
『Location Awareness Programming Guide』参照
Message UIフレームワーク
→ iOS3.0から
Email作成
→ iOS4.0から
SMSメッセージ作成ができるようになった。
UIKitフレームワーク
イベント管理用
『UIKit Framework Reference』参照
Mediaレイヤ
- グラフィックス
- CoreGraphics(Quartz) → 2D画像のレンダリング。『Quartz 2D Programming Guide』、『Core Graphics Framework Reference』参照
- Core Animation → ビューをアニメーション
- OpenGL ES → 2D, 3Dのレンダリング補助
- Core Text → テキストレイアウト、レンダリング
- Image I/O → 画像の読み書き。『Image I/O Reference Collection』参照
- Assets Library → フォトライブラリの写真・ビデオにアクセス。iOS 4.0から。 『Assets Library Framework Reference』 参照
- オーディオ
- ビデオ
- UIKitのUIImagePickerController → カメラでビデオを録画
- Media Player → ムービーを表示。『Media Player Framework Reference』参照
- AV Fundation → ムービーのキャプチャと再生
- Core Media → 上3つのフレームワークよりビデオの細かい制御を行う
AirPlay
- アプリからApple TV、AirPlayスピーカーに音楽をストリーミング配信
→ AV Fundation, Core Audioフレームワークで扱う
『Multimedia Programming Guide』を参照
Core Service
- 上位レベルの機能
- ブロック ≒ クロージャ
- Grand Central Dispatch → アプリ内のタスク管理。非同期処理など。『Concurrency Programming Guide』参照
- In-App Purchase → アプリ内課金。iOS3.0から。『In App Purchase Programming Guide』参照
- SQLite
- XML → NSXMLParseクラス
- Core Services
- Address Book → 連絡先情報にアクセス
- CFNetwork → ネットワーク関連(ソケット、SSL通信、HTTP等)
- Core Data →MVCのMの部分。『Core Data Tutorial for iOS』参照
- Core Fundation → 配列、文字列、日付、URL等の基本的なデータまわり。『Core Foundation Framework Reference』参照
読み終わっての疑問
参考リンク
- iPhone 3G DevWiki http://wiki.sohaya.com/
- iOS Developer Library https://developer.apple.com/jp/devcenter/ios/library/japanese.html
phpmyadminにアクセスできるIPを制限する方法
CentOSの例をメモ。
.
. basic認証設定とか
.Options none
AllowOverride AuthConfigOrder Deny,Allow
Deny from all
# 許可するIP
Allow from xxx.xxx.xxx.xxx
Satisfy AllAlias /phpmyadmin/ /usr/share/phpmyadmin/
Satisfy All
がポイントで、例えばbasic認証&IP制限の2重で防御したい場合、
Satisfy Any
だと、basic認証かIP制限どちらかがOKであれば認証を突破できてしまい、
basic認証のid, passが漏れた際にIP制限の意味がなくなってしまうので注意。
jQueryMobileを使ったチェックボックスの値をJavaScriptで操作するときの覚え書き
Mobile Safari上でjQueryMobileを使って
<fieldset data-role="controlgroup"> <input type="checkbox" id="chk1" name="chk1" value="" class="custom" /> <label for="chk1">checkbox1</label> <input type="checkbox" id="chk2" name="chk2" value="" class="custom" /> <label for="chk2">checkbox2</label> </fieldset>
のようなhtmlがあるとき、片方のチェックボックスがチェックされたら、もう片方のチェックボックスを未チェック状態にしたいとします。
普通だと、
$("input:checkbox").change(function() { var radio_name = $(this).attr('name'); //どっちかにチェック入れると,どっちかのチェックを外す if( radio_name === "chk1" ) { $('#chk2').attr('checked', false); } else if ( radio_name == "chk2" ) { $('#chk1').attr('checked', false); } });
のようなコードでOKなのですが、jQueryMobileの場合、タッチパネルに最適化するために、input要素の上にlabel要素を重ねた状態にしています。
そのため、上記のようなコードでは、チェックボックスのchecked属性の値は変わっても、見た目が変わりません。
よくよくマニュアル( http://jquerymobile.com/demos/1.0a4.1/#docs/forms/forms-checkboxes.html )を読むと以下のようにrefreshメソッドを呼んであげないといけないことが分かりました。
$("input:checkbox").change(function() { var radio_name = $(this).attr('name'); //どっちかにチェック入れると,どっちかのチェックを外す if( radio_name === "calendar_check" ) { $('#chk2').attr('checked', false).checkboxradio('refresh'); } else if ( radio_name == "map_check" ) { $('#chk1').attr('checked', false).checkboxradio('refresh'); } });
jQueryMobileのrefreshメソッドを眺めてみると、
refresh: function( ){ var input = this.element, label = this.label, icon = label.find( ".ui-icon" ); if ( input[0].checked ) { label.addClass( $.mobile.activeBtnClass ); icon.addClass( this.checkedicon ).removeClass( this.uncheckedicon ); } else { label.removeClass( $.mobile.activeBtnClass ); icon.removeClass( this.checkedicon ).addClass( this.uncheckedicon ); } if( input.is( ":disabled" ) ){ this.disable(); } else { this.enable(); } }
のような感じになっていて、label要素やicon含みでスタイルの変更を行っていました。
なるほど〜。