RewriteRule クエリーストリングがないときにリライトする

Apache

反対のケースはよくやりたいと思いますが、今回は、クエリーストリングがないときに、違うページを表示させたい、というケースです。

例をあげると

 http://hogehoge.jp/index.php
 http://hogehoge.jp
 

の場合のみ

 http://hogehoge.jp/test/

で表示させたいというときですね。

しかし、ググってもなかなか、逆のパターンしか出てきません…(つД`)
逆のパターンというのは、

 http://hogehoge.jp/index.php?type=ugaga

 http://hogehoge.jp/ugaga/

にしたい、というやつですね。SEO対策のために、このようにする人が多いのかと思います。

しかし、英語でググったら、Stack Overflowさんにありました!
いつもながら、ありがとう!
StackOverflow!
http://stackoverflow.com/questions/3630853/rewrite-for-an-empty-query-string

サンプルを書いておくと、次の通りです。

 RewriteCond %{QUERY_STRING} ^$
 RewriteRule ^index\.php$ /test/

Resource is not public. (at icon with value @android drawable/ic_menu_star)

Android

Resource is not public. (at ‘icon’ with value ‘@android:drawable/ic_menu_star’)

Androidのメニューのアイコンなどに使う画像を、下記のようなサイトで調べて

http://androiddrawables.com/Menu.html

Androidに組み込みのアイコンを組み込もうと思っても、上記のようなエラーが出て、アイコン画像が読み込めません。

そのエラーの通り、画像がPublicではないから、ということだそうです。
残念。
なので、自分でダウンロードして、/res/drawableの中に入れないといけません。

Androidのデベロッパーサイトで配布してくれています。

http://developer.android.com/design/downloads/index.html

なので、これをダウンロードして、おめあての画像を見つけて、drawableに入れます。

もうひとつ注意が。

publicになっている画像ならば

 <item
   android:id="@+id/account"
   android:icon="@android:drawable/ic_menu_manage"
   android:title="@string/account">
 </item>

で読み込めますが自分で追加したアイコンは下記のようにしないと

 <item
    android:id="@+id/word_of_mouth"
    android:icon="@drawable/ic_action_chat"
    android:title="@string/post_word_of_mouth">
 </item>
 error: Error: No resource found that matches the given name

というエラーになってしまいます。

違いは、画像の指定の時に

 android:icon="@android:drawable/ic_menu_manage"

なのか

 android:icon="@drawable/ic_action_chat"

ということです。

Reject to launch for broadcast …App Op 64

Android

ある日AndroidのPush通知を試していて、スマホの電源が切れているうちに送られたPush通知が受け取れないことに気が付きました。

「あれ??前は動いていたのに ヽ(゚○゚ ;ヽ)三(ノ; ゚□゚)ノ ぁゎゎ」

となって、色々調べたりAndroidManifestの設定などを見直したりしてました。

下記のWarningが出ていたので

 W/GCM-DMM: broadcast intent callback: result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE pkg=…

パーミッションとかでサービスが立ち上がらないのかな?って思ってたのです。

ですが、上記の警告以前に下記のエラーが色々と出ていました。

 Reject to launch for broadcast …App Op 64

で、こちらを調べていたら、ASUSのアプリの自動起動を制御するアプリのせいで、該当のアプリが起動できなかったみたいです。

https://stackoverflow.com/questions/34842659/cannot-autostart-app-on-boot-got-broadcastqueue-reject-to-launch-app

ああああ 実は、以前もASUS Zenpad使っていて、この問題に引っかかったこともあったのに!!
本当に時間を無駄にしてしまった!!(/□≦、)エーン!!

ちなみにZenPadでの自動起動の許可の仕方です。

  • モバイルマネージャーというアプリがある場合、モバイルマネージャーを開く

 ↓

  • パーミッション(2ページ目にあります)→自動起動マネージャー→ダウンロード済み をタップ

 ↓

  • Smart動態管理があり、ONになっていなければ、ONにする

Redmineインストール

システム開発

Redmine 1.2.2をCentOSサーバーにインストールしました。

下記URLの手順でほぼ問題なくインストールできますが、1つ注意事項があります。
http://blog.redmine.jp/articles/redmine-1_2-installation_centos/

Redmine 1.2系は最新版gemでは正常に動作しません。
gemのパージョン1.7.0以降では不具合が発生するので、動作確認が取れている最新パージョンの1.6.2をインストールすると良いと思います。

gemは下記URLからダウンロードできます。
http://rubyforge.org/frs/?group_id=126

参考
http://www.redmine.org/projects/redmine/wiki/RedmineInstall