サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16e
taiyoh.hatenablog.com
最近調査していた内容のメモ。 GraphQLのJSONレスポンスは data と errors の2つのキーに内容が大別される。 基本的に、期待するレスポンスが返せないときは errors にエラー内容が入るというのがGraphQLでやろうとしていることだが、特にMutationにおけるビジネスロジックのエラーはどう記述すればいいだろうか。 恐らくFacebook的には「ダメです!」とエラーダイアログを表示させて終了なのかもしれないが、世の中のサービスが全部それに倣っているということはなく、エラーとなった要素をクライアント側で特定して赤くしたりエラー文言を添えたりしたい、なんてケースはよくある。自分の担当しているサービスもそんな感じだ。 ひとまずRelayのドキュメントを開いてみる→ Mutations · Relay ざっくりと「レスポンスには(追加・削除含め)変更のあったTypeのオブ
作った → taiyoh/p5-radiko · GitHub rtmpdump、swftools、ffmpegがないと動きません。あとPerl側の依存モジュールはFurlとMIME::Base64、Class::Accessor::Lite::Lazyくらいか。 → 簡易Radiko録音ツール。要swftools/rtmpdump/libxml/wget/ffmpeg/lame こちらの方の作ったシェルスクリプトを大いに参考にさせていただきました。 以下、使用例。
(なんか、半年ぶりにここに書くけど今年最後のエントリな気がする) 承前→lirc_webを使ってどこからでも赤外線リモコンの操作ができるようにする - taiyoh's memorandum 表題以上のことはなにも無いんですが、やってみましたよ、ということで。 今IFTTTの僕のアカウントで登録しているレシピです。位置情報にバッチリうちの座標が入ってるので公開できないですが。 そもそもなんですが、本来IFTTTって予め決められたところとしか連携できない、という制約があって、野良サーバにリクエストを送るとかは出来ないので非常に難しいのですが、一つ抜け道があります。IFTTTはwordpressサービスとの連携も行っているのですが、そのwordpressサービスは自分のドメインを登録することができます。つまり、そこの認証さえ通れば、IFTTTから指定したサーバにリクエストを飛ばせるようになると
というメモ。 server { listen 80; server_name example.com; root /path/to/docroot; access_log logs/example.access.log main; location ~ ^/(js/|img/|css/|swf/) { index index.html index.htm; } error_page 404 /404.html; error_page 500 /500.html; error_page 503 /503.html; location ~ /(404|503|500).html { } location / { proxy_intercept_errors on; proxy_set_header Host $host; proxy_pass http://127.0.0.1:5000; }
まあ、タイトルの通りなんですが。 アメッシュの監視ってだけなら他に作ってる人がいるっぽいのですが、僕がやったのは、エリアごとに緊急度を付けて、家に雨雲が近づけば近づくほど緊急度が上がってるというのが分かるようになってます。 これって要は、目標のポイントを中心とした円を何枚か用意しておき、それらの画像を1枚ずつ突き合わせてアメッシュの降水の様子を示した画像を論理積(AND)で重ねた時、ピクセルが残るかどうかによって、画像に応じた緊急度を判別させよう、ってことですね。そして気づいたら、imagemagickを使う場所が全部system関数を叩くようになってて、とても泣きそうです。でも、plenv等でPerlMagick入れるのめんどいし、他の処理をシェルスクリプトで書くのも自信ないんだもん。。。 今になって色々考えてみたらすごい富豪的な探索方法なので、他の人も使えるようなサービスとしての設計に
→ taiyoh/p5-Data-ChangeFinder · GitHub → taiyoh/p5-Data-AnomalyDetect · GitHub fluent-plugin-anomalydetectの動作がかっこよかったので、もうちょっとfluentに頼らずにカジュアルに使えないかな、と思ったのが発端です。 変化点検出のアルゴリズムはいくつかある、というところまではググって分かってきたのですが、じゃあそれらをPerlで1から実装できるのか、というとそこまでの力はないので、謹んでfluent-plugin-anomalydetectに入っていたFluent::ChangeFinderの実装をごっそりPerlに移植させていただきました。内部が理解できてないのに移植できるのかよ、ってのは全くその通りなのですが、とりあえずリファレンスになるruby側の実装を、同梱されてたテストデータ
今更ながら、nginxにmapという機能があることを知った。 → HttpMapModule ということで、以下のことを試してみた。serverブロックの外側に以下のような記述を追加してみる(中に書くと怒られる)。 map $http_user_agent $myindex { default /index.html; ~(iPhone|Android) /index_sp.html; } んで、serverブロックの中のlocationの指定で location / { root /path/to/document/root; index $myindex; } って感じでindexの値をmapで指定した値に変えておくと、UserAgentに「iPhone」とか「Android」って入ってればindex_sp.htmlをインデックスファイルに、そうでなければindex.htmlをインデッ
335先生から「早く書け」とプレッシャーが来てるのでメモっておく。 用意するもの こちらのブログに書いてある部品一式 ブレッドボードあると楽ですね lirc (これはapt-getでインストールできる。上記ブログ参照) lirc_web 特に回路図の載っているこちらのブログは、やることの根幹部分を成しているので、まず書かれていることは全部実行して、動作確認をしておいてほしい。ただ、一つだけ変えたところがあって、この人とほぼ同じ抵抗で設定すると、出力が弱くて肝心のレシーバまで信号が届かなかったので、赤外線LEDの前に置く抵抗は、確か4.7Ωか10Ωくらいに下げている。こうすれば、LEDにより電圧がかかるので、出力は増す。赤外線LEDも、「高輝度」と謳ってるものにしておくとより確実。 そうして組み上がった回路とRaspberry Piはこんな感じになる(一例です) ブレッドボード上の右側の素子
typo氏からも「はよ」とか急かされたので、裏ですったもんだした挙句CPAN Authorになってしまいました。 → http://search.cpan.org/~taiyoh/ どうぞ宜しくお願いします>< さて、本題ですが。 今回Amon2::Web::Dispatcher::RouterSimple::Extendedというモジュールを上げたのですが、エントリ書いた時にgfx氏から「no strict 'refs'の状態でコードをガリガリ書くのはマズい」と指摘を受けました。僕も書いてる時からそれは薄々感じてはいたんですが、有効な策が打ち出せず、お茶を濁すような対応しか出来てなかったわけです。なので、追記の形で泣きついてみたら、翌朝tokuhirom氏からコメントをもらい、「こんなやり方がある」と紹介してもらいました。 → https://github.com/tokuhirom/p
[追記] tokuhirom氏に「よさげ」って言ってもらえたので、調子にのってgithubに上げました(シーパン王サーじゃないので)。Amon2::Web::Dispatcher::RouterSimple::Extendedって名前にしております。::RailsLikeとかも考えたけど、関数名違うから混乱するのでやめ。そして自分の英語がひどすぎて死ぬ。あとモジュール名長すぎる。 https://github.com/taiyoh/p5-Amon2-Web-Dispatcher-RouterSimple-Extended [追記終わり] [追記2] gfx氏から「no strict 'refs';状態でガリガリ書くのはマズイ」という指摘を受けて、確かにそうだよなー、でも、submapperへの出入りでコロコロ切り替わるから、限定するのはムズいよなー、と思ったので、関数はある程度他所で定義す
[追記 5/29] synchronizeというかfiberには以下の問題点があるのでそちらを参照の上、このエントリをご覧ください → node-fiberでライフチェンジングとか煽ったことを若干後悔してる - taiyoh's memorandum [追記 終わり] node.jsをお使いのみなみなさま、コールバック地獄の中をいかがお過ごしでしょうか。 最近になって僕はvmモジュールとsynchronizeモジュールを使い出しまして、これがちょっと尋常じゃないくらい自分の実装方法に影響を与えております。 百聞は一見にしかずということで、実際どんな感じで使っているか、最近作ったユーティリティファイルの一部を載せます。 // util.js var vm = require('vm') , fs = require("fs") , path = require("path") , sync
はてなの方からメールにて招待いただき(ありがとうございます!)、折角だからと体調悪い上に台風近づいてるにも関わらず昨日行って来ました。 口外するな、と書かれていたので、相当やばい情報も話してくれるのか、とか、「活発に」リクルーターが話しかけにきてくれたりするのか、とか、妙な妄想たっぷりで臨んだのですが、その辺は見事に裏切られ、発表内容は「Mobageを支える技術」にほぼ含まれていて、リクルートエージェントについては、基本裏方にいるだけで、最後にアンケート書くだけで終わってしまいました。なんか残念。 以下、発表内容のメモ(他の方の方がより詳しいかも。。。) Mobage 運用技術 Web編 speaker: 樋口さん Mobageのサーバ群構成について 基本的にLAMP HTTPサーバ(Apache)とFastCGIアプリのプロセスが同期 UNIX domain socket ゲームごとに変
このページを最初にブックマークしてみませんか?
『taiyoh.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く