まめージェント

Android, GAE, AngularJSの技術ネタ中心。Twitter: @mame01112

Androidで不要な(意図しない)ストレージと連絡先のパーミッションが要求される

発端 去年作っていたAppをGoogle Playにあげようとした際、 何故かストレージと連絡先のパーミッションが要求されていることに気づきました。 でもAndroidManifestに書いているパーミッションは ・INTERNET ・ACCESS_NETWORK_STATE ・WAKE_LOCK ・C2D_MESSAG…

GCM PushのInstanceIDListenerService (onTokenRefresh)を手動でテストする方法

GCMのPush通知を実装しているAndroidアプリであればトークンが切り替わったタイミングを知ることができる InstanceIDListenerServiceを継承したクラスを作ると思いますが、 今回はそのテスト方法に関して。 そもそもの背景 InstanceIDListenerServiceのonTok…

Android Studioでステップ数を数える方法

Android Studioでステップ数を数える方法が(少なくとも日本語のサイトは)あまり見つからなかったので、その方法を記載。ステップ数はコードを書く上でモチベーションを上げる重要な要素の1つだと思うので(笑)、書いておきたいと思います。 1: プラグイン…

CSSのbackground-sizeのオプション

Bootstrapのjumbotronに背景画像を指定する際、background-imageのオプションに関して勉強したので記載。background-imageには、(直接パーセントやピクセル数で指定する以外に)下記3つのオプションがあるようです。 ・auto ・cover ・contain下記が、それぞ…

マテリアルデザインのガイドラインまとめ (その1)

マテリアルデザインのガイドラインを読んでみた。 Androidアプリを作っている中で、そもそもマテリアルデザインって何だっけ?CardやデカいHeaderってどういう風に使うのが正解なんだっけ?を知らないことに気づきました。今まで何となくCardやデカいHeader…

JavaScriptでデザインパターン (その9: Revealing module pattern)

今回は、Javascript独自のパターン ここしばらく他のいろんなことに時間をとられてしまい、なかなかコードを書く時間がとれなかったのですが、久しぶりに時間が空いたので、JavaScriptでデザインパターンシリーズの続き。今回は、Revealing module patternで…

「『つまりこういうことだ!』ブランドの授業」まとめ

ここしばらく、ビジネス系のインプットを続けています。今回読んだのは、「つまりこういうことだ!」ブランドの授業、という本。これも5年くらい本棚で眠っていたのをひっぱり出してきました。何故この本を買ったのか、全く覚えておらず・・・。www.amazon.c…

「イノベーションへの解 利益ある成長に向けて」まとめ(下)

今回で最終回、「イノベーションへの解 利益ある成長に向けて」のまとめです。 上、中は下記のリンクです。「イノベーションへの解 利益ある成長に向けて」まとめ(上) - まめージェント「イノベーションへの解 利益ある成長に向けて」まとめ(中) - まめ…

JavaScriptのホイスティングについて調べてみた

JavaScriptにはどうやら、"ホイスティング (hoisting)"なる仕様があるらしいので、今回はそれを勉強した結果をまとめてみようと思います。 ホイスティングとは? ホイスティングは"hosting"と書くようです。英語で"hoist"は揚げる、持ち上げる、つり上げる、…

「イノベーションへの解 利益ある成長に向けて」まとめ(中)

前回の「イノベーションへの解 利益ある成長に向けて」まとめの続き。mame0112.hatenablog.com 今回は、5章から7章をまとめてあります。 ※だんだんと章ごとの分量が増えてきて、内容も複雑になってきた。。。 第五章: 事業範囲を適切に定める ・何を内部調達…

「イノベーションへの解 利益ある成長に向けて」まとめ(上)

コトラーのマーケティング3.0を読んだ前回( 「コトラーのマーケティング3.0 ソーシャル・メディア時代の新法則」まとめ(前半) - まめージェント )に続き、今回は、クリステンセンの有名な"イノベーションのジレンマ"の続編、「イノベーションの解」を読ん…

「コトラーのマーケティング3.0 ソーシャル・メディア時代の新法則」まとめ(後半)

前回(http://mame0112.hatenablog.com/entry/2015/08/23/132835)に続き、「コトラーのマーケティング3.0 ソーシャル・メディア時代の新法則」のまとめの後半。今回は6章からまとめてあります。個人的には、最後の方(9章、10章あたり)は「まあ、そうだよね…

「コトラーのマーケティング3.0 ソーシャル・メディア時代の新法則」まとめ(前半)

そもそも もうずいぶん前(3, 4年前?)に読んだ「コトラーのマーケティング3.0 ソーシャル・メディア時代の新法則」を再度読んでみたので、そのまとめ。Amazon CAPTCHA ・いろんなところで「マーケティングが・・・」とか言うけど、「そもそもマーケティン…

Javascriptでデザインパターン (その8: Decorator)

今回はDecoratorパターン。 8回目は、Decoratorパターン。compositeパターンとよく似て、中身と外側(今回は中身と装飾)を同一視することで、使う側が中身を意識する必要がなくなるメリットがあります。 そもそもDecoratorパターンは? Wikipediaによれば、…

Javascriptでデザインパターン (その7: Chain of Responsibility)

8回目の今回は、Chain of responsibilityパターン。 日本語に訳すると”責任のたらい回し”。訳すると、響きはかなり悪いです(笑) Chain of Responsibilityとは? Wikipediaによると、"一つの コマンドオブジェクトと一連の 処理オブジェクトから構成される…

Javascriptでデザインパターン (その7: Iterator)

イテレータパターン 7回目の今回は、イテレータパターン。これまで書いたパターンは、下記にあります。 Singleton: http://mame0112.hatenablog.com/entry/2015/07/26/130425 Factory: http://mame0112.hatenablog.com/entry/2015/07/26/195821 Mediator: ht…

Javascriptでデザインパターン (その6: Strategy)

今回はStrategyパターン。 今回で6つ目のデザインパターンです。使ったことのあるデザインパターンを大分出しつくした感があります・・・。苦笑。 そもそもStrategyパターンとは? wikipediaによると、"アルゴリズムを実行時に選択することができるデザイン…

Javascriptでデザインパターン (その5: Builder)

今回はBuilderパターン。 このシリーズも5回目まで来ました。結構いい感じのペースで更新できてる気がします。今回はBuilderパターン。このパターンは、Androidとかを書いてると結構いろんなところで見ますね。DialogBuilderとか。今回は、そのBuilderパター…

Javascriptでデザインパターン (その4: Prototype)

続いてPrototypeパターン。 これで4つ目。 Singleton, Factory, Mediatorに関しては下記参照。 Singleton: http://mame0112.hatenablog.com/entry/2015/07/26/130425 Factory: http://mame0112.hatenablog.com/entry/2015/07/26/195821 Mediator: http://mam…

Javascriptでデザインパターン (その3: Mediator)

今回は、Mediatorパターン 3回目の今回は、Mediatorパターン。仲介者パターンです。 そもそもこのパターンは、Wikipediaによれば、 "オブジェクト間の通信は mediator によってカプセル化され、オブジェクト同士で直接通信せず、mediator を介して行うように…

Javascriptでデザインパターン (その2: Factory)

今回は、Factoryパターン。 前回(http://mame0112.hatenablog.com/entry/2015/07/26/130425)に続き、今回はFactoryパターン。 Factoryパターンとは? Wikipedia的には、"他のクラスのコンストラクタをサブクラスで上書き可能な自分のメソッドに置き換えるこ…

Javascriptでデザインパターン (その1: Singleton)

きっかけ 現状、"prototypeとか即時関数とか、そーいう決まりは分かったけど、じゃあこれって具体的にどんなケースで使うの?どううれしいの?"が分からないので (Javaで言えば、interfaceとabstract classの使い分けタイミングとか、そもそもinterfaceって…

Javascriptのイコール2つと3つの違い (派生してオブジェクトとプリミティブ型)

そもそも もろJavascript初心者な感じですが、ソースコードを読んでいて、if文などで比較をするときにイコール2つと3つのケースがあって、何がどう違うんだ?とモヤモヤしたので記載。Javascriptエキスパートな方は読み飛ばしてくださいませ。 簡単にいうと…

AngularJSのソースコードを読んでみた(その1: 起動シーケンス編)

そもそも AngularJSを使いつつ、”これってどんな感じで動いているんだろう・・・”というのが気になったので、AngularJSのソースコードをざっと眺めてみました。が、僕は特にJavascriptが得意なわけではない上にそこまでしっかり時間をかけられていないので、…

Angularticsでイベントがトラッキングされない

Angularticsについて AngularJSのライブラリで、Google Analyticsを始めとした各種トラッキングサービスを使うためのAngulatics ( http://luisfarzati.github.io/angulartics/ )というライブラリがあり、非常に便利です。 導入方法 導入も非常に簡単で、ペー…

AngularJSでHTML側(特にng-repeat内)からService/Factoryを使う方法

今回は、AngularJSでHTML側(特にng-repeat内)からService/Factoryを使う方法のシェア。 ユースケースは? Controllerで持っているデータをng-repeatでまわしながらHTMLに表示したい! そして表示する文字列の背景の色を、その文字列に応じて動的に変えたい!…

How to make Google Crawler crawl/index your Ajax (AngularJS) based web application

Let Google Crawler index your Ajax-base web application Recently, I have tried to find out a solution to make the Google crawler to crawl and index my SPA (Single Page Application) based on Angular JS. And finally it has indexed my web app…

Ajax(AngularJS)ベースのウェブサービスをクロール/インデックスしてもらう方法

・Ajaxベースのサイトをインデックスしてもらおう! ここ最近、GoogleのSpiderにAngularJSで作ったSPA (Single Page Application)をクロール、インデックスに登録(=Google検索にひっかかるようになる)してもら方法を模索しており、ようやく今日、Google検…

Multiple language support by jquery.localize.js

(This is a test post to check the number of access if I describe post in English) I translated jquery.localize.jsで多言語対応 - まめージェント into English since it is most popular column in my blog.I supported multiple language since I al…

Ajax (AngularJS)のSPAでSEO対策をする (その1: hashbangって何?)

GoogleにAjax(AngularJS)のサイトをクロールさせたーい! というところからいろいろと調べたところ、いろいろなサイトでHashbangという名前を見てそもそもHashbangって何ぞや?をしっかり理解できていなかったので、SEOの一歩目として、Hashbangを勉強するこ…