どうも、俺です。
Xcodeでビルドしようとした際に
「Xcode cannot run using the selected device」というエラーが出てビルド出来ないあなたへ。
"Xcode cannot run using the selected device"に苦しんだ数日間 - マキシぐんだんの中の人のブログ
に同様の問題の対応方法がありますが、僕の場合は少し違いました。
Info.plistの"Target Membership"にチェックが入ってしまっていたことが原因。
チェックを外して解決しました。
以上でぇぇぇぇぇぇす。
2014年1月15日水曜日
2013年12月4日水曜日
[cocos2d-x] CCSpriteの画像を切替える
どうも、俺@眠いです。
CCSpriteのテクスチャ画像をA→Bへ切り替える方法をメモ。
もしCCSpriteFrameCacheやCCSpriteBatchNodeを使っている場合は、
以上でぇぇぇぇぇす。
CCSpriteのテクスチャ画像をA→Bへ切り替える方法をメモ。
// まず最初の画像 a.png CCSprite *aSprite = CCSprite::create(“a.png”); // b.pngへ切り替える aSprite->setTexture(CCTextureCache::sharedTextureCache()->addImage(“b.png”)); aSprite->setTextureRect(CCRectMake(0,0,aSprite->getContentSize().width, aSprite->getContentSize().height));
もしCCSpriteFrameCacheやCCSpriteBatchNodeを使っている場合は、
// 何らかのスプライトシート CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile(“a.plist”, “a.png"); // 最初の画像 a.png CCSprite *aSprite = CCSprite::createWithSpriteFrameName(“a.png”); // b.pngへ変える CCSpriteFrame *spriteFrame = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(“b.png”); aSprite->setDisplayFrame(spriteFrame);
以上でぇぇぇぇぇす。
2013年11月17日日曜日
L7ロードバランサHaproxyを使う(その3 syslogの設定とコマンドラインツール)
どうも、俺@眠いす。
今日は「L7ロードバランサHaproxyを使う(その2 設定から起動)」の続きです。
前回では、haproxy.cfgを編集してリクエストに応じて
バックエンドサーバを切り替える(Proxyする)ところまでやりました。
※サーバはCentOS6.xです。
今日はその設定にあった
1)ログ出力
2)haproxy状態を確認するコマンドラインツール
の使い方を書きます。
1)ログ出力
前回の説明で、haproxy.cfg設定に
というのがありました。
これはHaproxyのログを書き出す設定、というところまで説明しましたが、
今回はもう少し具体的に解説します。
syslogにログを出力させるために、まず /etc/syslog.confを開き、
facility(local6)に設定した出力を/var/log/haproxy_logに書き出す、という意味です。
この書式は
(facility).(priority) (action)
です。
上の場合は、local6ファシリティの全てのpriorityを/var/log/haproxy_logに出力となりますが、
もし出力レベルを変えて「警告以上のみを出力」としたい場合などは
または、haproxy.cfgの「debug」を「warn」に変えるという方法でも良いです。
次に、/etc/sysconfig/syslogを編集します。
2)haproxy状態を確認するコマンドラインツール
コマンドラインからhaproxyのステータス情報を確認できるようになります。
まず、socatというツールをインストールします。
あとは、socatを使い情報を取得します。
hastats(ステータスページ)では確認できないような詳細なデータを見ることが出来ます。
以上でぇぇぇぇぇす。
今日は「L7ロードバランサHaproxyを使う(その2 設定から起動)」の続きです。
前回では、haproxy.cfgを編集してリクエストに応じて
バックエンドサーバを切り替える(Proxyする)ところまでやりました。
※サーバはCentOS6.xです。
今日はその設定にあった
1)ログ出力
2)haproxy状態を確認するコマンドラインツール
の使い方を書きます。
1)ログ出力
前回の説明で、haproxy.cfg設定に
log 127.0.0.1 local6 debug
というのがありました。
これはHaproxyのログを書き出す設定、というところまで説明しましたが、
今回はもう少し具体的に解説します。
syslogにログを出力させるために、まず /etc/syslog.confを開き、
# add haproxy setting local6.* /var/log/haproxy_logを追加します。
facility(local6)に設定した出力を/var/log/haproxy_logに書き出す、という意味です。
この書式は
(facility).(priority) (action)
です。
上の場合は、local6ファシリティの全てのpriorityを/var/log/haproxy_logに出力となりますが、
もし出力レベルを変えて「警告以上のみを出力」としたい場合などは
# add haproxy setting local6.warn /var/log/haproxy_logとすると良いでしょう。
または、haproxy.cfgの「debug」を「warn」に変えるという方法でも良いです。
次に、/etc/sysconfig/syslogを編集します。
SYSLOGD_OPTIONS="-m 0 -r"そしてsyslogdを再起動。
service syslogd restartこれでログ出力完了(のはず)です。
2)haproxy状態を確認するコマンドラインツール
これは前回haproxy.cfgに設定した、
# 統計情報が見れる。※ただし要設定!次回説明します。。 stats socket /var/run/haproxy/stats.socket uid 105 gid 105の部分です。
コマンドラインからhaproxyのステータス情報を確認できるようになります。
まず、socatというツールをインストールします。
yum install --enablerepo=epel socathaproxyを再起動します。
service haproxy restart
あとは、socatを使い情報を取得します。
// 一般的な情報を出力 echo "show info" | socat unix-connect:/var/run/haproxy/stats.socket stdio // エラー情報を出力 echo "show errors" | socat unix-connect:/var/run/haproxy/stats.socket stdio // 統計情報を出力 echo "show stats" | socat unix-connect:/var/run/haproxy/stats.socket stdioのような感じです。
hastats(ステータスページ)では確認できないような詳細なデータを見ることが出来ます。
以上でぇぇぇぇぇす。
2013年11月7日木曜日
L7ロードバランサHaproxyを使う(その2 設定から起動)
どうも、俺@仕事中です。
「L7ロードバランサHaproxyを使う(その1 インストールまで)」の続きです。
前回では、
Haproxyのインストール
起動スクリプトの設置
起動確認
デフォルトの設定ファイル(ひな形)のコピー
まで行いました。
今回は設定ファイルを編集して、ロードバランサ(またはProxy)として動かしてみます。
では、設定ファイルを開きます。
設定ファイルは大きく分けて5つのセクションから成っています。
1.globalセクション
全体の挙動に関する設定を行う。
2.defaultsセクション
以下の「listen」「frontend」「backend」に関するデフォルトの設定を行う。
3.listenセクション ※必須ではない
frontendやbackendの設定をこのセクションでまとめて行える。
または、hastatsというステータス情報を出力するページの設定を行う。
4.frontendセクション
クライアントからのパケット受け入れに関する設定を行う。
5.backendセクション
ロードバランス(またはProxy)するサーバ(群)に対する設定を行う。
では、簡単に見ていきます。
次はlistenセクション。僕はhastats(ステータスページ)で使っています。
次にfrontendセクション。
※ACLについては「HAProxyのACLとCriteria」が詳しかったです。またはここのGoogle Docs。
URLやIPアドレス、ポート、HTTPヘッダなどを見て振り分けられます。
次にbackendセクション
これで起動させてみましょう。
ちょっと長くなったのでログ出力と'stats socket'についてはまた次回書きます。
以上でぇぇえっぇぇぇぇす。
※2013.11.16追記
「L7ロードバランサHaproxyを使う(その3 syslogの設定とコマンドラインツール)」書きました。
「L7ロードバランサHaproxyを使う(その1 インストールまで)」の続きです。
前回では、
Haproxyのインストール
起動スクリプトの設置
起動確認
デフォルトの設定ファイル(ひな形)のコピー
まで行いました。
今回は設定ファイルを編集して、ロードバランサ(またはProxy)として動かしてみます。
では、設定ファイルを開きます。
vim /etc/haproxy/haproxy.cfgひな形としてすでに何か書かれていると思います。
設定ファイルは大きく分けて5つのセクションから成っています。
1.globalセクション
全体の挙動に関する設定を行う。
2.defaultsセクション
以下の「listen」「frontend」「backend」に関するデフォルトの設定を行う。
3.listenセクション ※必須ではない
frontendやbackendの設定をこのセクションでまとめて行える。
または、hastatsというステータス情報を出力するページの設定を行う。
4.frontendセクション
クライアントからのパケット受け入れに関する設定を行う。
5.backendセクション
ロードバランス(またはProxy)するサーバ(群)に対する設定を行う。
では、簡単に見ていきます。
#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
# ログの出力 ※次回説明します。。
log 127.0.0.1 local6 debug
# pidファイルのパス
pidfile /var/run/haproxy.pid
# 1プロセスに対する最大接続数
maxconn 4096
# 実行ユーザとグループ
user haproxy
group haproxy
# 起動プロセスはバックグラウンドで動作します。。
daemon
# 起動するプロセス数。公式には'1'のままで良いとのことですが、16コアCPUだと4くらいが最もパフォーマンスが出た。。
nbproc 2
# プロセスごとの最大ファイルディスクリプタを設定。書かなくても自動で設定されるらしい。
ulimit-n 12000
# 統計情報が見れる。※ただし要設定!次回説明します。。
stats socket /var/run/haproxy/stats.socket uid 105 gid 105
次に、defaultsセクション。
#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
# L7でロードバランス。'mode tcp'とすればTCPレベル(L4)でロードバランスするので処理速度の向上が見込める。
mode http
# globalセクションでの設定が引き継がれる。
log global
# このオプションよう分からん。。NULLなコネクションのログを書き出さない?
option dontlognull
# ヘルスチェックのログを書き出す。
option log-health-checks
# backendサーバに接続できない時のタイムアウト秒数(ミリ秒)
timeout connect 10000 # default 10 second time out if a backend is not found
# クライアントサイドでのタイムアウト秒数。' timeout server 'と同じ値が推奨とのこと。
timeout client 30000
# サーバサイドのタイムアウト秒数
timeout server 30000
# 接続に失敗した際のリトライ回数
retries 3
次はlistenセクション。僕はhastats(ステータスページ)で使っています。
# 8088ポートで待受ける
listen hastats *:8088
mode http
maxconn 64
contimeout 5000
clitimeout 10000
srvtimeout 10000
stats enable
stats show-legends
stats uri /haproxy?hastats
# IDとパスワード
stats auth username:yourpassword
これで、http://example.com/haproxy?hastatsを入力するとHaproxyのステータスが表示される。次にfrontendセクション。
# 80番ポートで待ち受ける。
frontend all 0.0.0.0:80
# URLの最初に/static /images /javascript /stylesheetsがあれば url_static をTRUEに設定する。
acl url_static path_beg -i /static /images /javascript /stylesheets
# URLの最後が .jpg .gif .png .css .jsだったら url_static をTRUEに設定する。
acl url_static path_end -i .jpg .gif .png .css .js
# もし url_staticがTRUEだったら、バックエンドは static を使う。
use_backend static if url_static
# デフォルトのバックエンドは app を使う。
default_backend app
このACLがhaproxyの強みで、いろんな条件に応じてバックエンドサーバを振り分けることが可能です。※ACLについては「HAProxyのACLとCriteria」が詳しかったです。またはここのGoogle Docs。
URLやIPアドレス、ポート、HTTPヘッダなどを見て振り分けられます。
次にbackendセクション
#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
# static というバックエンドサーバ
backend static
# ラウンドロビンでの振り分け(デフォルト)。比重の設定も可能。
balance roundrobin
# 127.0.0.1:4331で起動。IPを変えて他サーバにすることが可能。
# checkでヘルスチェックを有効にする。
server static 127.0.0.1:4331 check
#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
# app というバックエンドサーバ群
backend app
# ラウンドロビンで振り分け。
balance roundrobin
# サーバは以下の4台でラウンドロビン。ちなみに weight '数値' とすることで振り分けの比重を設定できる。
server app1 127.0.0.1:5001 check
server app2 127.0.0.1:5002 check
server app3 127.0.0.1:5003 check
server app4 127.0.0.1:5004 check
こんな感じです。これで起動させてみましょう。
service haproxy startURLの末尾が xxx.jpg とかだと、きっと127.0.0.1:4331へProxyされるはずです。
ちょっと長くなったのでログ出力と'stats socket'についてはまた次回書きます。
以上でぇぇえっぇぇぇぇす。
※2013.11.16追記
「L7ロードバランサHaproxyを使う(その3 syslogの設定とコマンドラインツール)」書きました。
2013年10月24日木曜日
[cocos2d-x] 画面サイズ、ウインドウサイズについて
どうも、俺@昼休みです。
cocos2d-xでは画面の表示領域を取得するメソッドがいくつかありますが、
いつも混乱するのでまとめておきます。
・端末の解像度ごとのサイズを取得する(フレームサイズ)
例えば縦型(ポートレイト)の場合、heightはそれぞれ、、
iPhone4S...960
iPhone5...1136
iPhone5S...1136
iPad(非retina)...1024
iPad(retina)...2048
となります。
Android端末の場合は、それぞれの端末ごとの解像度になります。
・setDesignResolutionSize()している時の表示サイズを取得する(ウインドウサイズ)
以上でぇぇぇぇぇえす。
cocos2d-xでは画面の表示領域を取得するメソッドがいくつかありますが、
いつも混乱するのでまとめておきます。
・端末の解像度ごとのサイズを取得する(フレームサイズ)
// 幅 float width = CCEGLView::sharedOpenGLView()->getFrameSize().width; // 高さ float height = CCEGLView::sharedOpenGLView()->getFrameSize().height;これで、実際の端末解像度の値が取得できます。
例えば縦型(ポートレイト)の場合、heightはそれぞれ、、
iPhone4S...960
iPhone5...1136
iPhone5S...1136
iPad(非retina)...1024
iPad(retina)...2048
となります。
Android端末の場合は、それぞれの端末ごとの解像度になります。
・setDesignResolutionSize()している時の表示サイズを取得する(ウインドウサイズ)
// 幅 float width = CCDirector::sharedDirector()->getWinSize().width; // 高さ float height = CCDirector::sharedDirector()->getWinSize().height; // または // 幅 float width = CCEGLView::sharedOpenGLView()->getDesignResolutionSize().width // 高さ float height = CCEGLView::sharedOpenGLView()->getDesignResolutionSize().height;これで、解像度に合わせて画面サイズを設定している場合の幅、高さが取得できます。
以上でぇぇぇぇぇえす。
登録:
投稿 (Atom)