Google Apps Script をトリガーから関数に引数がある場合、あるオブジェクトが渡される
最近、KPIをDBやらGoogle Analytics などから値を引っ張ってきて、Google Spreadsheetに値を入れるというお仕事をしている一環で、よく Google Apps Script のトリガーを触ります。
そのトリガーから起動される関数の引数に渡される値が、手動起動の場合と トリガー起動の場合で異なってややはまったのでその挙動の違いをブログに残しておきます。
手動起動
以下のようなPGを書いて、▶️ を押して実行すると
引数は undefined ということがわかります。まぁ何も引数指定していないので当たり前ですね
自動起動
ただ、以下のようなトリガーを設定して実行すると
以下のようなオブジェクトが入っていることがわかります。
この不思議なオブジェクトは
どうも Time-driven events というやつが入っているようで、トリガー実行時に勝手に渡されるようです。
ちなみにトリガー実施日時は以下のようにとれるようです。もっと良い取り方ありそうな気もしますが、、、
targetDay = new Date(event['year'] + '/' + event['month'] + '/' + event['day-of-month']);
このような挙動の違いを把握して、トリガー実行する必要があるので気をつけてトリガー実行しましょう。
様々なブラウザへのPUSH(プッシュ)通知サービス「PushAssist」
一度自分のサイトに訪問したユーザーを、再び自分のサイトを思い出してもらってまた訪問してもらいたい!アプリのように通知できたら、、、と思っている人は結構いるんじゃないかと。
そのような中、ブラウザを開いているとPUSH通知してくれるサービスが最近、どんどん登場しています。
こういったサービスを選ぶときに対応できるブラウザ、端末が多いとより多くの人に通知できるサービスを選びたいものです。いくらブラウザでPUSH通知できるといっても、ChromeではできるけどSafariではできない、といったように限られたブラウザしかできないと威力も半減ですよね。
その中でも、様々な端末に対応可能な「PushAssist」を触ってみました。
対応端末
PC, Mobileそれぞれの以下ブラウザに対応しているようです。
Chrome 42以降
Firefox 44以降
アカウントの違い
特にMobileでのブラウザPushを見てみたいので、Premiumアカウントでトライアルできないか試してみることにした。「Mobile Website Notifications」というやつ。
早速アカウントを作る
アカウントを作成しようとしたら以下エラーメッセージが表示。
Japan じゃダメなのか? とりあえず、よくわからないのでなぜ会員登録できないのか問い合わせをしているので、回答待ち。
とおもったら、電話番号いれてくれということらしいので、電話番号いれたところ先に進んだが、クレジットカード情報いれたくないのでSTAY。
ブログ再開します
誰ももはや自分のブログ見ていないと思いますが、こっそり再開します。
最近、年齢重ねたこともあり求められるスキルも技術的なところよりも、マネージメントやら調整やらのスキルを求められることが多くなってきました。そういうこともやれないことはですが、何かしっくりこなく満足できる結果がここ最近得ることがありませんでした。
以前から決意しようと思ってもなかなか決めきれずいた事があったのですが、状況的にそうもいってられないので決意することから始めようと思います。
「事業グロースハッカー(美)」
ようは事業をグロースするためになんでもやる、美おっさんを目指そうと思います。
(美おっさんめざすのは、今日誕生日の(子会社の方の)社長が美おっさんを目指すといっていたので、負けじと(美)という文字を入れてみたかっただけです)
よ〜し、やるぞぉ!
どこまで続くかなぁ。
Virtualbox上のNginxでホストマシンと共有している静的ファイル(CSSなど)の更新が検知されない
タイトルの問題が発生して、ちょっとはまったのでメモ。
を参考にすると、以下設定を nginx.confにしてやればよいことがわかった。
sendfile off;
これで mac で修正したcssがすぐにゲストOS側のnginxで反映されるようになったー。
sendfileについては
http://heartbeats.jp/hbblog/2012/02/nginx03.html
が参考になる。
nginxのproxy_cacheが効かないと思ったら response headers に Expires とかはいってると駄目なのね
nginxでproxy_cacheさせようと思ったけど、どうも効かない。
nginxのlogに $upstream_cache_status を出力してみたけど MISS ばっかりで HIT にならなかった。
http://wiki.nginx.org/HttpUpstreamModule#.24upstream_cache_status
調べていると、abコマンドでアクセスするとHIT. ブラウザからアクセスすると必ずMISS。
abコマンドは HTTP1.0, ブラウザからアクセスするとHTTP1.1の違いがあるぞ、
このあたりの違いによって何か違うんかなぁと思って調べていたら
--------
http://wiki.nginx.org/HttpProxyModule#proxy_cache
The following response headers flag a response as uncacheable unless they are ignored:
Set-Cookie
Cache-Control containing "no-cache", "no-store", "private", or a "max-age" with a non-numeric or 0 value
Expires with a time in the past
X-Accel-Expires: 0
--------
だって。response header に 特定の条件の値がある場合はキャッシュしないよと。
もう少し調べていったら proxy_ignore_headers を指定すると、これで指定した値は無視してキャッシュしてくれるようになる模様。
http://wiki.nginx.org/HttpProxyModule#proxy_ignore_headers
結局以下のように設定したら、HITしまくりますた。
--------
proxy_ignore_headers Expires;
--------
しばらく様子見てみよう。
gunicornでgraceful reload
gunicorn で graceful な再起動方法を探していたらマニュアルにのってるじゃ、ありませんか。
How do I reload my application in Gunicorn?
You can gracefully reload by sending HUP signal to gunicorn:
$ kill -HUP masterpid
なんで masterpidもとめるのがすぐわからなかったので、pkill つかってリリース時に 実施する事でグレースフルな再起動になりますた。(なったはず
pkill -HUP -f 'run_gunicorn'
ファイルかえて pkill やったら更新が確認でけた。
追記 でも結局挙動が不安定(ソースが反映されたりされなかったり)だったので結局
pkill -f 'run_gunicorn'
しちゃってます。。。
Unity 関連技術まとめ
諸事情でUnity3.4今触ってるのでUnityに関する技術をまとめていきます。
随時更新してきます。
それにしても、Cocos2dとかで一から作るより非常に楽だよねUnityって。
ただ、MacBookAir メモリ2G の開発環境だとちと辛い。。。
unity monodevelop 系
unity monodevelop 文字化け
http://d.hatena.ne.jp/shunsuk/20091027/1256643206
でも、まだところどころで文字化けをまだする
unity ツール系
テラインに配置するオブジェクトのツールキット入手
地形にいろいろ配置するオブジェクトが無料で手に入る。
terrain toolkit download
http://unity3d.com/support/resources/unity-extensions/terrain-toolkit
unity公式サイトから Terrain Assets をダウンロード方法
Window -> Asset Storeでウィンドウを開き「Terrain Assets」で検索し Unity Technologies公式の素材集をDLしてインポート
Tips系
unity コンフィグ画面作成
設定画面はゲームを作る上で必要になるので覚えておいた方がよいな。
http://d.hatena.ne.jp/tueda_wolf/20120110
ライブラリ系
PathFinding 指定した場所に、キャラクターを移動する際のライブラリ
これ便利そう。まだ試してないが今後試していく予定。
http://forum.unity3d.com/threads/67417-A*-Pathfinding-2.9-Is-Released-(Unity-3-Compatible)?highlight=path
http://www.arongranberg.com/unity/a-pathfinding/download/
sample系
SHADOWGUN
ハイクオリティのUnity製ゲーム「SHADOWGUN」のSample Level(サンプルステージ)が公開されてる
http://blogs.unity3d.com/2012/03/23/shadowgun-optimizing-for-mobile-sample-level/
アングリーバード的なゲームをつくる
サンプルもDLできるのでステキです
http://unity.creator.ms/unity-004.html