Pages

2012年11月29日木曜日

スッキリしないけどZF2でモジュール別にデフォルトLayoutを変える方法はこれなんだろう。。

昨日投稿したZend Framework 2でのモジュール毎にデフォルトLayoutを変更させる方法なんだけど、リファレンスに載ってた。

どうもモジュール以下のconfigはマージして利用するみたいな事だからやっぱり自分が想定してる目的とはちょっと違うみたいだな。。 でも何か気にいらないけど。。
とりあえずリファレンスに載ってる位だからこれが想定されてるんだろう。。


namespace Content;

class Module
{
    public function onBootstrap($e)
    {
        // Register a dispatch event
        $app = $e->getParam('application');
        $app->getEventManager()->attach('dispatch', array($this, 'setLayout'));
    }

    public function setLayout($e)
    {
        $matches    = $e->getRouteMatch();
        $controller = $matches->getParam('controller');
        if (false !== strpos($controller, __NAMESPACE__)) {
            // not a controller from this module
            return;
        }

        // Set the layout template
        $viewModel = $e->getViewModel();
        $viewModel->setTemplate('content/layout');
    }
}



        if (false !== strpos($controller, __NAMESPACE__)) {
ここ
        if (0 !== strpos($controller, __NAMESPACE__ . '/')) {
の方がよくないのかな。。

2012年11月28日水曜日

Module別にデフォルトLayoutを指定したいができない。。

/index と /admin などモジュール別にデフォルトLayoutを設定したいと思って、モジュール内のmodule.config.phpに

view_manager=>layout

view_manager=>template_map

を設定したが、ダメだ。。 反映されない。。
どうも/adminの方だけが読み込まれているような。。

どうやら application.config.php のmodulesの上から順番に読んで上書きされているみたい。
そんな仕様ならtemplate_mapなんかもapplication.config.php書きそうだけど。。
絶対方法が用意されてそうなんだけどな。。

template_path_stack はモジュール毎に上書きされてるみたいやのに。。

とりあえず、今は
module.config.php の 'view_manager' => 'template_map' に名前が被らないように追加
してそれをコントローラーの方で


$layout = $this->layout();
$layout->setTemplate('admin/layout/layout');

って感じで呼び出すようにした。。


本屋さん行ったけどまだZF2の書籍は出てないみたい。。
公式サイトのリファレンスも英語のみ。。

くそ~ 早く使いたい。。

2012年11月13日火曜日

Zend Framework2 の勉強を始めた

Zend Framework2 の勉強を最近始めたがどうもスムーズに進まない。。
まず日本語マニュアルが無い。。 書籍がない。。(笑)

というのはこの業界じゃよくある事なので、諦めるとしてまずはSkeleton(サンプルみたいなもの)が配布されているので、そこから勉強する事になる。

このSkeletonが自分にとってはなかなか曲者。。

Zend Framework1の時にあったQuick Start(サンプルみたいなもの)と作り方が全然違う。。
コントローラーまでの流れ(ルーター?)に変更があるのは良いとして、Validatorの記述場所などがどうもしっくりこない。。

なんでAlbum.phpに記述なんだろう。。 自分的にはFormの方がしっくり来るんだけどな。。
デコレーターの使い方もかなり変わってるみたいや。。

今月中に一通り理解できるかな。。

2012年11月2日金曜日

Windows 8 の Metro 版 IE 10 で Flash を再生させるには CV リストに登録する必要があるらしい

友達と話をしているとどうやらWindows8のメトロ版に入っているIE10ではFlashが申請を出したサイトしか見れないらしい。と聞いた。

そんなバカな事しないだろう。。 って思って調べたら
どうやら以下サイトなどを見ていると聞いた噂は本当だったようだ。。

Windows 8 の Metro 版 IE 10 で Flash を再生させるには CV リストに登録する必要があるらしい: あるSEのつぶやき:

2012年9月26日水曜日

Facebook API アカウント認証に2種類合った

やっとスッキリした♪
ずっと何でApp secretがあるのに使って何で使ってないんだって思ってたけど、このサイト見てスッキリした♪

アカウント認証(アクセストークンの取得)には2種類あった。
・サーバーから通信する場合
・クライアントから通信する場合

そしてApp secretはサーバーから通信する場合にのみ仕様するようです。
あ~ スッキリ♪ これでやっとサクサク作って行ける!

サーバーから通信する場合
http://socialmedia.project0884.com/facebook/get_token_server.php

クライアントから通信する場合
http://socialmedia.project0884.com/facebook/get_token_client.php

2012年9月21日金曜日

Facebookアプリ について整理

Facebookが好きじゃないので、避けてきたけど今更ならが仕方ないのでやるか。。
って事で、下記サイトを参考に勉強しました。 間違ってるかもしれないけど。。

まずFacebookアプリとFacebookページアプリの違いについて自分は気になっていたので、これについて調べてみた。

ん~ 中々ハッキリとイメージできない。。
でこんなサイトを発見した。


Herokuで作るFacebookアプリ:第5回 Facebook APIを学ぼう|gihyo.jp … 技術評論社:


ここを見るとスッキリした気がした。
Facebookアプリとは何だ?ってところから考えなければならない。

そしてこのサイトを見て思ったのはみんなが言うFacebookアプリとはつまりFacebook APIを利用したシステム全般の事を言うんだろう。。 って思った。

そしてそのFacebook APIは下記3種類からの利用を想定しているみたいです。


  • iFrame/別ウインドウポップアップ
  • JavaScript SDK
  • Graph API
名前からしてGraph API以外は想像できそうな感じ。
で、そこからしてGraph APIはその他用って感じだなと。。

で、ここで思ったのはようするにFacebookページアプリとはFacebookページ上で実装したアプリの事をみんな言っているんだな。。 と。

うんうん恐らくそうなんだろう。。
あとは実装しながら考える事にしよう。。


2012年6月18日月曜日

Android WebViewで1枚の画像を画面いっぱいに表示

1.アプリ側 onCreate に下記を記述する。
View v = findViewById(R.id.viewer);
String url = "http://example.com/image.png";
if (v != null) {
 viewer = (WebView)v;
 viewer.clearCache(true);
 viewer.setVerticalScrollbarOverlay(true);
 viewer.setWebViewClient(new ImageWebViewClient());
 WebSettings ws = viewer.getSettings();
 ws.setBuiltInZoomControls(true);
 ws.setSupportZoom(true);
 ws.setJavaScriptEnabled(true);
 viewer.addJavascriptInterface(new forJs(), "android");
 viewer.loadUrl(url);
}
クラスを追加
public class ImageWebViewClient extends WebViewClient {
 //ページの読み込み完了
 @Override
 public void onPageFinished(WebView view, String url) {
  viewer.loadUrl("javascript:void(myprj.resize("+viewer.getWidth()+","+viewer.getHeight()+"))");
 }
}
ポイント スクロールバー分のスペースを削除する viewer.setVerticalScrollbarOverlay(true); JavaScriptを利用可能にする。 ws.setJavaScriptEnabled(true); JavaScriptからアプリ側の関数をコールするために設定 viewer.addJavascriptInterface(new forJs(), "android"); 2.CSSには以下を記載
html, body {
  margin:0;
  padding:0;
}

img {
  border: 0;
  vertical-align:text-bottom;
}
3.JavaScript
resize : function (w, h) {
 var fixW = 320;
 this.width = fixW;
 this.height = (h * fixW) / w;

 var main = document.getElementById("main");
 var menu1 = document.getElementById("menu1");

 this.fitImage();
 this.setButtonEvents();
 menu1.innerHTML = "width: " + main.width + " end";
}
4.HTML
<!DOCTYPE html>
<html lang="ja">
 <head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=initial-scale=1">
  <link rel="stylesheet" href="inc/common.css" type="text/css" media="all">
  <script src="inc/common.js"></script>
 </head>
 <body>
  <img id="main" src="img/sample.png">
 </body>
</html>
5.アプリ側 assetsディレクトリにimgディレクトリ作成してその中にsample.pngを保存。 以上で自分と同じく画像1枚表示で、WebViewのスクロールや拡大昨日が利用できる画像ビューアーが簡単に作成できるはずです。

2012年6月6日水曜日

Android WebView内で画面やウィンドウサイズが取得できない

今回レイアウトXMLにWebViewを記載して、アプリ内のHTMLファイル読み込ませたかった。
そしてそのHTML内ではJavaScriptを利用して画面サイズを合わせて最適なサイズにしたいという課題でした。

ところが実験中はうまくできたのに作りこんでいくと急にJavaScript内で画面サイズが0になってしまった。。

何故。。
で、しばらく調査してて気づいたのが、どうやらonCreateの中でloadUrlなどをしているとダメっっぽい。。

調査の時は偶然onWindowFocusChangedから設定していたので、大丈夫というオチでした。。

2012年5月7日月曜日

デバイスに合わせてCSSを振り分ける「Media Queries」

レスポンシブWebデザイン ってのをちょっと作ってみるかと思ったつい最近です。
今度の休みにでも試しにUNLAXのページ作ってみようかなとふと思いました。


デバイスに合わせてCSSを振り分ける「Media Queries」

2012年4月3日火曜日

Windowsで Tortoise Git セットアップ方法

まずは下記ファイルのダウンロード

TortoiseGit + 日本語化ファイル + msysGit
http://sourceforge.jp/projects/tortoisegit/releases/

TortoiseGitにはもっと最新があるんですが、バージョン違いだと正しく日本語化されない可能性があるので、とりあえず一式ここからダウンロードしました。


  1. TortoiseGitをインストール。
  2. 日本語化ファイルを「Languages」内に、TortoiseMerge1041.dllおよびTortoiseProc1041.dllをコピー。
  3. msysGitをインストール。
  4. TortoiseGitの設定、Languageから日本語を選択。

2012年3月30日金曜日

XCode ArchiveしたらShareボタンが表示されてない。。

アプリ作成してAdHocのためのファイル出力しようとしたらShareボタンが無い。。

Vlidateの下に出るはずなんだが。。

2台目の場合は証明書コピーしろとか色々あった中、 環境構築の際にキーチェーンアクセスでユーザリセットしたり色々したからそのせいかな。。 どんなに検索してもこの事例にヒットしない。。 どうしよう。。 再セットアップかな。。 面倒だな。。

その後。。
どうやらXCodeのバージョンの問題じゃないかと思えてきました。。
というかSubmitじゃなくてDistributeボタンを押すとできたからきっとこれなんだろう。。
てかこれですよね。。 無駄な時間が。。
やっぱりApple好きになれないな。。

2012年3月29日木曜日

Objective-c 画像をセピア調にする

結局今回は利用しなかったけどせっかく調べたのでメモ。 セピア調にするかは解らないけど以後使いそうな気がするから。 今回はこのサイトに助けられました。 OneWorldの開発ブログ http://oneworld-inc.jp/blog/?p=148 まずはライブラリの追加です。

たどり着き方は下記
TARGETS -> Build Phases -> Link Binary With Libraries

※画面キャプチャでは既に追加しています。

ここで下の「+」ボタンをクリックすると下のような画面が出るので検索してAddボタンで追加。
※画面キャプチャでは既に検索しています。

ライブラリの追加が終わったら次にインポートしてソース書いて終わりです。

何故キャプチャ撮ったのか謎ですが、
 #import <CoreImage/CoreImage.h>
と書いています。

調査の際に書いたソースは下記みたいな感じです。

CIImage *ciImage = [[CIImage alloc] initWithImage:[UIImage imageNamed:@"fromImage.png"]];
CIFilter *ciFilter = [CIFilter filterWithName:@"CISepiaTone" keysAndValues:kCIInputImageKey, ciImage, @"inputIntensity", [NSNumber numberWithFloat:0.8f], nil];
CIContext *ciContext = [CIContext contextWithOptions:nil];
CGImageRef cgimg = [ciContext createCGImage:[ciFilter outputImage] fromRect:[[ciFilter outputImage] extent]];
UIImage* toImage = [UIImage imageWithCGImage:cgimg scale:1.0f orientation:UIImageOrientationUp];
CGImageRelease(cgimg);
screenImageView.image = toImage;

Objective-c AnimationCurveの種類と意味

アニメーションさせる時の加速状態を指定する際の値の種類と意味。
きっと忘れるはず。。 メモっておく。


UIViewAnimationCurveEaseInOut
-> 加速して減速していく

UIViewAnimationCurveEaseIn
-> 加速

UIViewAnimationCurveEaseOut
-> 減速

UIViewAnimationCurveLinear
-> 等速

2012年3月28日水曜日

Objective-c addSubviewで画面遷移すると20下にずれる現象

addSubViewをするとどうしても20px(?)下にずれてしまう現象の改善策をメモ。
最初NavigationBarとかなのかなとか思ったけど全然違った。。

Storyboard から View Controller のレイアウトを調整したら改善されました♪
具体的にはstoryboardを選択して消えてほしい画面のView Controller を選択して右のところで図2のように「Wants Full Screen」にチェックを入れたらOK!


図1 ViewControllerを選択したところ

図2 「Wants Full Screen」にチェックを入れたところ

2012年3月27日火曜日

Android プロジェクト開いたらエラー出まくりで困った。。

以前作ったアプリのソースを見たくて久しぶりにSVNでチェックアウトしてプロジェクトをインポートした。

すると。。

下記エラーを初めてとしてエラー出まくり!!!!!!

java.lang.Object を解決できません。必要な .class ファイルから間接的に参照されています

しばらく探検した結果下記ブログに当たった♪
よかった~ 本当に良かった~~~

ぽつりぽつり: サンプルImportしたらターゲットが無いとか言われた:

以前から数回発生してたこの現象だけど今回はごちゃごちゃしても治らなかったので、焦ったよ。。

2012年3月23日金曜日

2012年3月21日水曜日

1つのApple Developer IDを複数Mac PCで共有して開発する

下記サイトを参考に進めた。
http://d.hatena.ne.jp/paraches/20120314

ようするに台数分Certificateを登録するのではなく、まず1台から発行した署名書を登録してその証明書を他のPCで共有するという事になるようです。


出力と取り込みはキーチェーンアクセスから簡単に操作ができ、Devアカウントとの紐付けはXcodeのOrganizerからリフレッシュ操作によってできる。


ただ、このリフレッシュでちょっとハマった。。
My Macや端末のProvisioning Profilesを確認してもRefreshボタンが無いのにひたすらそこを確認して無いよ〜と悲しんでいた。。
くれぐれもLIBRARY直下のProvisioning ProfilesにしかRefreshボタンは無いので以後注意で。。

2012年3月16日金曜日

Android タブレットでタイトルバーを非表示にするとメニューボタンが消える。。

Androidのタイトルバーなんてデザインもいけてないし、基本的には不要なものと思ってた。
そしていつも通り癖で消していた。。

で、タブレットアプリ開発を進めていて気づいた。。
メニューボタンどこだ。。

あれ??
検索してみると左下に表示されている。。はず。。ない。。

試しにGoogle Playアプリを起動してみた。
右上にそれらしきものが。。

もしかして、タイトルバー消したから。。??
で、タイトルバー表示させたら出てきた!!

って事はタイトルバー必要だな。。 タブレットの時はタイトルバーありきで作ってる方が無難だな。。

2012年3月15日木曜日

Android くっ またやっちまった。。

また権限宣言にやられた。。(笑)

IOExceptionjava.net.SocketException: Permission denied

AndroidManifest.xml の許可 > 追加 > User Permission で android.permission.INTERNET を追加する。。
ほぼ毎回ひっかかってる気がするな。。

Android HTTPリクエストをする

お知らせ情報をサイト情報XMLから取得するようにしようと思って、まずは簡単にメインスレッドにGETリクエストの処理を書いたらエラー。。

android.os.NetworkOnMainThreadException

どうやら3.0以降? メインスレッドでHTTPリクエストするとエラーらしい。。
最終的にはそうする事になるけどさ。。 紛らわしいんだよ。。って思いましたとさ。


2012年3月1日木曜日

Galaxy S2不具合

また再発してきた。。
SDカードが認識できない不具合。。

これまた厄介な事にたまに発生して日に日に頻度が増していくという流れ。。

前回は出荷状態にリセットする事によって改善された。。
え~またするん。。めっちゃ面倒やねんけど。。

2012年1月29日日曜日

Zend Framework Minimal PackageをにZend_Loaderが含まれてない。。

久しぶりに新規環境構築のため、公式サイトから「Zend Framework Minimal Package」ダウンロードした。
そしてQuick Startを利用してセットアップしたんだけど、エラーが出る。。
どうやらZend/Loader.phpが参照できないというエラーだった。
実際確認しても含まれてないし、なぜ。。

とりあえずFull版をダウンロードして解決した。

Zend Framework






2012年1月18日水曜日

Eee Pad Transformer Prime TF201が総務省の技適を通過


Eee Pad Transformer Prime TF201が総務省の技適を通過、日本での発売の可能性がさらに高まる

この記事は熱い!
これを待ってた♪

やっとタブレットが買える~
ジップロックしてお風呂がさらに快適に♪

でも最近iOSアプリの開発をやらなければいけなくなってMac Miniを購入予定。。
あ~ 買いたくも無いもの買うのは本当に嫌やな。。

2012年1月11日水曜日

クリックイベントをセットした時の奇妙な動作について

<td>タグの中に<select>を設置した。
そして<td>にclickイベント、<select>にchangeイベントを設定。
すると<select>から<option>を選択した時にclickイベントまで発生してしまう。

ま~それは納得できるとして、問題はその対策として<td>をクリックした時だけ<select>を表示するようにして<td>をクリックした時はunbindするようにしてchangeイベント完了時にtdへclickイベントを再設定するようにした。

それでもchangeイベントの後にclickイベントが発生する。。 なぜ。。

テキストエリアをオートリサイズしてくれる jQuery Autosize

テキストエリアの属性追加してブラウザで対応されてもよさそうなこの機能。

jQuery Autosize for textarea elements

Followers