今朝、首都高は一台も車走ってませんでした。
curlコマンドでAPIサーバにJSONでPOSTリクエストする方法
APIサーバへcurlコマンドでPOSTリクエストし、そのリクエストBODYに任意のJSON文字列を指定したい場合の方法を2回調べたのでメモしておく。
curl -X POST -d '{"url":"http://remp.jp"}' http://hoge.jp/api/registration
いい加減覚えよう…。
日本酒を呑みに行った
なのに写真が締めのご飯しか撮っていなかった。
日本酒からじゃこ飯への最高のコンボ。
ChromeでYoutube動画が再生できない場合の対処法
昨日の19時過ぎぐらいから突如Youtubeの動画が再生できなくなった。
(プレイヤーの画面が真っ黒になって動画が表示されない)
ChromeのJavaScriptコンソールを見ると
stopUsingAppNameForBrowserSniffingItsBad
というエラーが表示されていてどうにも解決できないな。Youtube側の問題なのかな?と思っていて以下の様なつぶやきをtwitterに行ったところ...
まさかの海外から返信頂いた!!
@hideack Try disabling User-Agent Switcher for Chrome. Their latest update is causing the issue.
2013-01-10 23:22:49 via Echofon to @hideack
Chromeに入れていたUserAgentを切り替える拡張機能(User-Agent Switcher for Chrome)がYoutubeのJSとぶつかってたんですね…。
ということで、一旦無効化すると解決しました。
とりあえずつぶやいてみるもんですね。すぐにmentionが飛んできて驚きでした。
REMPその後(その1)
REMPとは?
そもそもREMPとはなんぞや?という話もあるので簡単にご説明。
REMPは@hika69がChromeアプリとして作成していたYoutube動画でプレイリストを作成して連続再生することができるアプリをfacebook連携する様にしたWebサービスです。
Youtube動画をプレイヤー上から検索することが出来て、その結果から好きな動画だけを自分のプレイリストとして作成することもできます。
(1) http://remp.rockf.es/ でfacebookログインしてプレイヤーを開く
(2) プレイヤー画面右上にある検索窓で検索したい動画のキーワードを入力
(3) 検索結果が「ライブラリ」の列に追加
このままでも十分使えるのですが、自分の好きな動画だけを集めたプレイリストを作ることもできます。
(4) プレイリストを作成
(5) 検索結果のプレイリストから自分がオリジナルで作成したいプレイリストに動画をドラッグ&ドロップ
こういった形で「検索」→「プレイリストへの追加」を繰り返すことで自分のお気に入り動画だけを集めたプレイリストが作成できます。
その他機能いろいろあるのですが詳しくは http://remp.rockf.es/hello をご参照ください。
最近の更新内容
そんなREMPですが、昨年暮れから新年早々いくつか機能追加しましたのでご案内。
プレイリスト名の編集対応
作成したプレイリストの名称編集ができる様になりました!!
(いままでプレイリスト名が直せなかったのです…)
facebookページを作りました
今更ながらfacebookページを作成しました。
サーバをSqaleに移行&フレームワークをPadrinoに移行
ストーリーボードと同様に今まではVPS上で独自に運用していましたが、サービス本体をpaperboy&co.のSqaleに移行しました。
そのタイミングに併せてREMPの実装を行ったフレームワークをSinatraからPadrinoへ移行しました。このあたりはまた詳しく…。
といった具合で、年末年始からいろいろやってますよ。というお話でした。
2012年振り返り
今年も残り6時間ぐらいということで今年の振り返り。
年初に社内SNSの日報では以下の様なことを目標として掲げていました。
- ブログ等々でのアウトプットを増やす
- 個人的にWebアプリ新しく1本作る
- 体重が増え始めたので抑える。抑える。抑える。これ以上増やさない。
- (上記以外に業務に関連した目標数本)
それぞれ見ていくと…。
ブログ等々でのアウトプットを増やす
これは正直イマイチだった反省。
twitter等々ではボチボチつぶやいていたけどあまりストックできていないし、来年は改善したいところ。こまめに自分の整理の意味でもブログは書いたほうがよいですね。
個人的にWebアプリ新しく1本作る
これはアウトプットできた。個人というよりは @hika69 と @getsukikyu と一緒にストーリーボード(STORYBOARDS)という一つしっかりしたアプリを作れたことは本当によかった。むしろ一人で作るよりもチームで進められたことがよかったのではないかと思っていたり。
技術的にもここで新しい試みいくつかできたし、何より今も開発・改良続けていく体制になっていることが本当にうれしい。
体重が増え始めたので抑える。抑える。抑える。これ以上増やさない。
7割方達成かな。6月位まで増え続けていたのですが、そこから見事に減量に成功したのでこれは年越し継続して目標体重に達したい。
といったところで、達成率50〜70%といったぐらいでしょうか…。
目標以外のこと
技術的なところ
- ストーリーボードでPadrinoを使ったアプリを作ってそれとなくRubyでWebアプリ作り始めたので来年はもう少し踏み込んで中身まで追える様になりたい。
- ガジェットとWebアプリを組み合わせた何か面白いもの作ってみたい
- 折角違う意味で幅広いレイヤのあれこれを(薄く)知識があるので生かしてみたい感
といった感じで思いつきをつらつら書いてしまいましたが、来年もよろしくお願い致します。
2012年12月読んだ本
今月は8冊。
中でも一番印象に残っているのは、
- 作者: 岩谷徹
- 出版社/メーカー: エンターブレイン
- 発売日: 2005/09/17
- メディア: 単行本
- 購入: 6人 クリック: 126回
- この商品を含むブログ (40件) を見る
ゲームのバランスのとり方や、チームとしてゲーム開発する際の調整の仕方等、とても具体的でわかりやすかったし、ヒット作はこうやって生まれるんだとと知ることができました。
ストーリーボードその後(3)
地味にあれこれ活動していますよ。
技術のかんたんなまとめ記事をブログに書きました!
昨日のブログ記事です。あらためて見返すと結構あれこれ使ったなぁ。と我ながら思ってしまいました。もっと、使ってもらえる様に便利に使いやすくしていきたいと思います。
ストーリーボードのバックエンド等々のお話
ストーリーボードをSqale(http://sqale.jp )へ運用を移管したのは以前簡単にここにも書きましたが、一度どういった技術を使っているのかまとめがてら整理してみます。
実装
現在、実装周りでは、
- アプリケーションフレームワーク: Padrino
- データベース: MongoDB
- JavaScriptフレームワーク: BACKBONE.JS
- サーバ
- アプリケーションサーバ: Sqale
- 画像ストレージ: ヘテムル
- Weboscketサーバ: PUSHER
などを利用しています。
Youtubeの動画を連続して再生することができるYoutubeプレイヤー REMP(http://remp.rockf.es/ )のころからのスタイルでサーバ再度側は基本的にAPIが主体となる様な設計になっており、WebUI上からの操作をJSが吸収して、サーバサイドのAPIを叩き、その応答をJSが再びUIへ反映させるといった構成になっています。
私が担当したサーバサイド側の実装では、大きく分けて、
- 最低限必要なページの生成
- 編集されたプレゼンテーションドキュメントの保管
- プレゼンテーションに利用する画像の保管
- プレゼンテーション操作(ページめくり等)が行われた際のページめくり情報のWebsocket配信
等を行なっています。
プレゼンテーション自体のデータ(=Markdown記述)は現在Sqaleでは共用MySQLサーバは提供されていますが、今回はMongoDBを利用しているため、ここのみ外出ししたMongoDBに接続し保管しています。
また、プレゼンテーション用にアップロードされた画像はヘテムル(http://heteml.jp )へAmazonS3互換の動きをするfS3を導入してアップロードされた画像をストーリーボードのサーバーサイドプログラム側からS3プロトコルで画像をストアしています。
更にストーリーボードの一つの特徴であるページめくり等を同じ時間にプレゼンテーションページを閲覧しているユーザにページめくり操作をマルチキャストしたり、閲覧中のプレゼンテーションに対してリアルタイムで"いいね!"をすることができる機能を実現するためにWebsocketを導入していますが、ここは現在Websocket ASPサービスであるPUSHERを使っています*1
監視サービス
監視サービスですが、Pingdomを使っています。
基本有償サービスですが、1サイトのみであれば無償で利用できます。
HTTP疎通の死活監視を行なってくれるので、最低限の状況は把握できるので役になっています。
利用状況解析
お約束感がありますが、mixpanelとgoogle analyticsを使っています。
RubygemsにmixpanelというGemがあるので、これを利用してストーリーボード上のAPIが呼び出される度にログを記録する様にしています。
基本、ストーリーボード上で何らかの操作が行われるとストーリボードのサーバサイドAPIが叩かれるので、ページめくりAPIが多いとどこかのプレゼンテーションの発表に利用されたかな。とか利用状況がわかったりします。
こんなかんじです
以上大雑把ではありますが、ストーリーボードの実装概要をまとめてみました。
今後も機能をどんどん足していくし(と思うし)、新しい技術も今後積極的に入れていきたいのでまたある程度溜まったら記事を書こうかと思います。
*1:いつか自前で実装するといつつ、すごく気楽に利用できるので使い続けてます…
久しぶりに焼肉
焼肉を食べに行く。
隣にいた男性二人組がひたすらメロンソーダとコーラを交互に注文しながら肉を食べていたのが印象的であった。


















最近のコメント