Plack::Middleware::Static::Range が使えない問題の解決方法
Plackを用いてHTTP pseudo-streamingを行いたい場合には、Plack::Middleware::Static::Range を用いれば良いという情報がよく書かれています。 しかしながらPerl 5.22.1のような新しいバージョンを利用している場合、依存している PerlIO::subfile というモジュールのインストールに失敗するため、インストールすることができません。
Plackとhtmlのvideoタグを一緒に使う場合に気をつける事 - Qiita
上記記事では開発版のPerlを用いていないことが原因とされていますが、本当の原因は、Perl 5.20あたりからusesfioというビルドオプションが無くなってしまったためです。
forkして修正しようかと思ったんですが、すでに作られていた方がいたのでそちらを利用しましょう。
$ cpanm https://github.com/nqounet/PerlIO-subfile/archive/master.tar.gz
こんな感じでインストールしてから、もう一度Plack::Middleware::Static::Rangeをインストールすると上手くいきます。
3ヶ月ぶりに松屋に行きました
この記事は、松屋 Advent Calendar 2015 18日目の記事です。
3ヶ月ぶり(正確には2ヶ月と21日ぶり)に松屋に行きました。 なぜ3ヶ月もブランクが空いたのかと言えば、外食などという贅沢をする余裕がないためです。 貧乏学生たるもの、身の丈にあった食生活というものを送らざるを得ないのであります。 そんなことはさておき、久しぶりの松屋ですから楽しんでいきましょう!
17:16 - 到着
昼間にやらなければならないことは終えたので松屋にやって参りました。 いつも通りの佇まいです。
17:17 - 食券購入
大好きな塩ビ丼(ネギたっぷり ネギ塩豚カルビ丼)を購入。
同刻 - 着席
今日はいい席に座れました。 あまり席にこだわりはなく適当に座ってしまいますが、空調の風が直撃する場所だったり、店員さんが目の前でずっと作業をしていたりすると、少しテンションが下がります。
17:19 - Swarm チェックイン
残念ながらメイヤーは取られてしまっているようです。 しかし200回目の松屋 西千葉店でのチェックインだったらしく、ボーナスポイントがもらえました! 人間とは画面に数字が出てくるだけで喜ぶ生き物なのです。
17:25 - 塩ビ丼 到着
ギリギリワンオペの時間帯で、お弁当のお客さんの扱いに少し手間取っていたため、若干時間がかかりました。 いただきます!
17:38 - 完食
ごちそうさまでした。
おまけ:松屋遍歴
店舗別
- 202回 松屋 西千葉店 (2011/07/13 23:06)
- 5回 松屋 秋葉原店 (2011/06/12 18:38)
- 3回 松屋 稲毛店 (2011/12/18 06:28)
- 2回 松屋 秋葉原中央通り店 (2011/07/23 08:58)
- 1回 松屋 蒲田東口店 (2011/10/08 12:54)
- 1回 松屋 千葉幸町店 (2011/06/19 21:30)
- 1回 松屋 渋谷並木橋店 (2011/09/23 14:17)
- 1回 松屋 仲御徒町店 (2012/07/01 13:29)
- 1回 松屋 渋谷道玄坂上店 (2011/05/08 14:55)
- 1回 松屋 横浜西口店 (2013/01/15 11:52)
- 1回 松屋 穴川オーツーパーク店 (2013/10/23 20:54)
- 1回 松屋 大井町店 (2011/08/12 07:37)
約 5 年間で 12 店舗に 220 回行っているようです。 (チェックインしていないものもあるので、実際にはもう少し多いです)
あと、Swarm のアプリには 200 回目のチェックインって言われたんですが 202 回目だそうです。
時間帯
17 時が最も多く、2,3,4,8 時が最も少ないようです。 行ったことがない時間帯がないというのはどうかと思いました。
Swarm から松屋遍歴を集計するPerlスクリプト
今回の記事を書くために使ったスクリプトです。 Check-in Feeds から ics をダウンロードして、以下のスクリプトに投げるといい感じに整形します。
ちなみに
そして
明日の 松屋 Advent Calendar 2015 は rakugou さんです。
Haxe+OpenFL+Box2Dについていろいろ
先月末くらいから Haxe + OpenFL + Box2D でよくわからないものを作ってみたりしました。 そのときに思ったことをつらつらと書いてみます。
- flash ターゲットはもちろん、windows や mac ターゲットも普通に動く
- 画像、音、キーボード、マウスは完璧
- TextField がかなり怪しい
- フォントサイズ指定しても、環境によって大きさが違って崩れる
- ttfフォント指定してもだめだし、同じフォントなのに高さが違ったりする
- wrapping も挙動不審
- mobile系のターゲットだとそもそも表示されないこともある
- Asset がすこし不安
- 動作自体は全く問題ないんですが、いざ配布するというときに中身が丸見えでそれに対応する方法がなさそう
- ネイティブのファイルIOがあるので、それを使って自前で用意する必要がありそう
- ドキュメント少なすぎて最悪
- 頻繁にソース読みにいったりした
- よく見たドキュメント
- ソースからドキュメント生成してるらしいけど、改行とかの扱いが雑でひたすら読みづらい
- 鵜呑みにしてはいけないけど Haxe2 の古いドキュメントも役に立つ
- Haxe 言語リファレンス - Haxe
- Haxe の enum 最高!!!!!!
- 貴重な日本語情報
- fukuokahaxe / Haxe勉強会 / wiki / Home — Bitbucket
- たまにリンク切れてたりしてちょっと不便なので fukuokahaxe / Haxe勉強会 — Bitbucket からみるといいかも
- iOSターゲットが割と動いて楽しい
- ただしビルドとデバッグがひたすら苦痛
- マルチタッチも簡単
- frosty/NME-Multitouch-Example
- NME時代のコードなので適宜OpenFLに読み替えてください
- Box2D が悪いのかひたすらメモリを食いつぶすバグが出来て困ってます
- Instruments とか使ってみたけどC++のコードを元に情報が表示されるので、なにがなんだかわからない
- OpenFL版Box2Dは、本家をどれくらい追いかけられてるのかが不明
- 確か本家の新しいバージョンだとBodyからContactが取れなかったはずだけど、OpenFL版は取れる
- 困ったらソース読みましょう
- openfl/box2d
- samples/TestBed は非常に役に立ちますが、なかなかエグい実装
- 最初は HaxeFlixel も使っていたんですが、それについていた Nape という物理エンジンの機能が少なすぎてやりたいことができなかったため、HaxeFlixel を諦めて OpenFL + Box2D という形になりました
- OpenFL + HaxeFlixel + Box2D だと世界が3つになって管理が非常に難しい
- OpenFL + Box2D だと2つの世界の橋渡しをするだけなのでまだ楽
- Mac で開発する場合は Atom を入れるとよさげ
- Haxe 向けのパッケージが充実
- language-haxe
- linter
- autocomplete-plus
- haxe
- とりあえずこれだけ入れればOK
- lint と autocomplete を動かすためには、プロジェクトディレクトリに
hoge.hxml
が必要openfl display flash > hoge.hxml
みたいな感じにすると生成できます- atom の tree view で
hoge.hxml
を右クリックするとSet as active HXML file
という項目があるはずなので、それをクリックするとよい
- 【完全な余談】
- Contributors | Box2D にいる "Motokimi Kuzume" さんが気になる
2D でマルチプラットフォームなゲームを作りたければ Haxe + OpenFL は割とありな選択肢だと思います。 特にWindows + Mac + Linux みたいな感じだったらソース書き換える必要すらないかと。
ガリガリ気張って書かなければいけないこともなく、かといって果てしないブラックボックスということもないこのバランス感が好きです。
Office for MacをインストールするとMS ゴシック等がWebサイトの表示に使用されてしまう問題を回避する方法
Office for Macをインストールすると、WordやExcel、PowerPointが利用出来るかわりに、一部の 無能な Webエンジニアが書いたCSSによって、Webサイトの表示にMS ゴシックやメイリオといったフォントが使用されてしまいます。
美しいヒラギノフォントが使われないのはもったいないですし、なによりOS XのフォントレンダラによってレンダリングされたMS ゴシックほど醜いものはないので、一刻も早くユーザースタイルを適用しましょう。
方法
1. Stylish を導入する
上記Webサイトからインストールできます。FirefoxやChrome以外はよくわかりません。
2. ユーザースタイルを適用する
Firefoxでは、アドオンマネージャから追加できます。それ以外の環境は調べてください。
3. 完了
醜いフォントが排除された快適なWebが待っています。
参考にしたサイト
Firefoxでエクスポートしたブックマークに自動でタイトルを付ける
タイトルの通りです。
「すべてのタブをブックマーク」で追加した場合や、「Bookmark All」を使用して追加した場合に、タイトルが付加されずURLで表示されるブックマークをどうにかするために作りました。
1ページ1ページ丁寧にクロールして、title要素の中身をタイトルとして追加していきます。 並列処理は面倒なのでしていません。
いくつかのCPANモジュールに依存しているので、適当にインストールしてください。
Appleの電話サポートでなるべく喋らないようにする方法
先日iPhone6を購入した際、契約の都合で分割のAppleCareに加入できなかったため、Appleから直接AppleCareを購入することになりました。 AppleStoreでも購入できますが、交通費をかけたくなかったので、仕方がなく電話で購入手続きをすることにしました。
……したんですが、シリアル番号などを口頭で伝えなければいけないことが嫌で、AppleCareの加入期限ギリギリまでずっと先延ばしにしてしまっていました。 しかし、いざ手続きをしてみると、Web上であらかじめ情報を伝えられるシステムがあり、電話嫌いの方にもやさしいサポート体制になっていて最高でした。
嫌なことをしなくてよかったのが嬉しすぎたので方法をまとめておきます。 電話嫌いの方は参考にしてみてください。
手順
Apple IDでログインしておく
Apple IDを持っていて、住所を登録してあることが必要です。
「自分の製品を表示する」というリンクからログインができます。 ログインやらサインインのようなありがちな文言からログインできないのはダメだと思います。
AppleCareを購入する場合は、ログイン後の画面で「すべての製品とサービスを表示する」をクリックすると手続きを進められます。
サポート対象の端末かどうか確認しておく
「詳細情報を表示および編集」をクリックすると、どの製品に対しどんなサポートを希望するかといった内容が表示されます。 どの製品に対してかは登録されていないはずなので、シリアル番号を入力して登録します。
登録するとサポート対象の期間に含まれているかどうかがチェックされます。
結果
以上の手順を踏んだ結果、口頭で伝えた情報は、
- 郵便番号
- 住所の町名以降
- メールアドレス
のみです。 残りはサポートの方からの確認に対して「はい」やら「いいえ」と答えるだけです。
まとめ
シリアル番号のような長い英数字の羅列を口頭で伝えるのは苦痛でしかないので、他社のサポートもこれくらいできるようになってほしい。