lxyuma BLOG

開発関係のメモ

centos7でunix domain socketが読めない

最近、goji(golang web framework)触り始めていて、 centos7のnginxからunix domain socket経由で、 gojiに繋ごうとしても繋がらなかった。 原因はすごい下らない単純な理由だったが、メモ。 ※ちなみに、よくあるsocketファイルのuser/権限の話ではない。sys…

varcharとtextの違い(mysql innodb)

mysqlの可変長文字列を扱う、varchar型とtext型の違いの話。 古い情報が混在していたので、ちょっと整理してメモ。 myisamの頃の話 sizeが違う 行の中身がdataか(varchar)、dataへのポインタか(text) 参照挟むので、performanceの違いがあった(varcharが早い…

androidのcanvasのCORSが動かない

経緯 canvasを画像に変換したかった。(toDataURL) しかし、canvas内の画像をCDN経由にすると、 後述のとおり、ブラウザのsecrity policyにひっかかり画像に変換できない。 そこで、Cross Origin Resource Sharing(CORS)を使って、これを回避したかった。 こ…

createjs,canvasでハマるところ2014

経緯 先日、初めてcreatejs使ったスマホ向けwebアプリ作ってリリースした。 まあ、予想通り、createjs、canvasにいろいろハマった。 はまったところは、gistにメモしておいたので、ここにも整理して乗っけておく。 なお、類似blog記事多数あり、俺もほとんど…

isucon4予選やってきた

isucon isucon4予選やった。 言語は、せっかくの機会なので勉強して、Goで。 初めのscoreは1223点で、 最終的に、26631点まで伸ばして、2日目の17位で終わった。 つまり、予選通過ならず、敗退してしまった。 ここまでやった事でlog等から思い出せるだけを記…

Server-Sent Eventsまとめ。ハイパフォーマンスブラウザネットワーキング16章

まだ、社内でO'Reillyのハイパフォーマンスブラウザネットワーキングの読書会をやっていて、 自分が、16章のserver sent eventsやるので、その下書き。(前の資料もいつかblogにupする) ※ちなみに、書いてる事を単にまとめてるわけではないので、ご注意を。…

digital oceanにspdy付きのnginx構築する

経緯 spdyをちょっと試してみたい。 digital ocean使って、spdy付きのnginx構築してみた。 これは、そのメモ。 前提 digital ocean CentOS 6.5 x64 を選んだ nginxインストール yum install wget gcc pcre-devel gd-devel perl cd /usr/local/src/ wget http…

androidでHTML5 audio使ったHLS形式のストリーミング再生が上手くいかない

スマホのブラウザ上で、音声のstreaming配信がしたい。 そこでhtml5 audioでHLS形式のURL(*.m3u8)指定して再生した時に 動かないandroid端末が一部あった。その対応した話。 結論は、単に、audio.type指定すれば良かったというだけの話だけど、 せっかくなの…

Marionetteからractiveへ

昨日、天下一クライアントサイドJS MV*フレームワーク武道会で話してきた。 以下、そのスライドです。 今日は 自分が現場で使ってきた FWの変遷の軽ーい話をする 元々 Marionette.js使ってた 振り返ると、実装が冗長になってしまった 何を言ってるか?という…

IT勉強会の会場探し

もう、長い事、jsCafeというjavascriptの勉強会をやっていて、 最近、お世話になってた会場がオフィスになってしまったので、 改めて、会場を探した。 IT勉強会の会場探しは、結構、面倒くさいし、大変。 他に会場探してる方の役に立つかもしれないので、そ…

coffeescriptの使いどころ

最近、普通の現場で、coffeescriptの使いどころが分かってきた。 今日は、そのメモと、最後に設定(また、gulpとkarmaの話)を軽く書いておく。 railsとcoffee 自分は、ずっと、rails環境にいたので、coffeescriptで書いてた。 通常のコードも、テストコードも…

最近のjsテスト/ビルド環境

最近のテスト環境 最近、ブログ書かないうちに、また、 自分のjs周りのテストやビルド環境が変わってきた。 具体的には、karmaとかgulpとかに変わった。 今日は、 その環境にしてどうだったか?とか、 設定ファイル(gulpfile)とか書いてみる。 去年と今年と …

1章レイテンシと帯域幅:ハイパフォーマンスブラウザネットワーキング

今、社内でO'Reillyの 「ハイパフォーマンスブラウザネットワーキング」 ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化作者: Ilya Grigorik,和田祐一郎/株式会社プログラミングシステム社出版社/…

gulp vs Grunt

概要 gulpの入門記事を以下に書いて行きます。 目次 gulpとは gulp sample gulp支える技術(Streamと並行性) grunt vs gulp どっち使う? gulp.jsとは いわゆるフロントエンド周りの task runner build tool Gruntあるでしょ その通り いわば、Gruntの簡易版 …

Ractive.js入門

これは、jsCafe18で話したSlideです。 概要 これから、「Ractive.js」という js上でReactiveなUIを とてもsimpleにbuildするためのlibraryの話をします 目次 reactive programming ractive.js 他のframeworkとの比較 Backboneに入れてみる そもそもReactive …

Backbone.jsとMarionette.jsで発表してきた

BackboneとMarionetteの発表してきた。 実践Backbone.Marionette 現場の悩みと解決まで from Ryuma Tsukano 結構現実的な内容で、色々個人的に試行錯誤している所を含んでおり、多分賛否ありそう。 まあ、こういうドロドロした話もたまには有っても良いかと…

linuxカーネルのセマフォについて

アルゴリズムとデータ構造についてOSSから勉強する会 という勉強会に行ってきた。 これは、とある掲示板の書き込みにOSSで使われてるアルゴリズムが書かれている物があって、 これを元に、皆で読み解いて行こうという企画。 カーネル読むという意味でも、ア…

Backbone.jsのテストの悩みとその解決

経緯 Backbone.jsでTDD書く時に、 Model/CollectionはServerSideのようなイメージで書けるのだが、 Viewのテストがfrontend特有の事があり、結構、悩ましい。 ここでは、Backbone.Viewを中心に、 テストで悩ましい所をどう解決していくか、試行錯誤している…

jsでTDD!MochaとChaiとsinon.js入門

※この記事は社内勉強会向けの資料の下書きです。書きなぐりの下書きで見直すと最後の方の文書がヤバいので、いつか書き直します。読み辛い所は申し訳ないです。 概要 TDD テスト自動化とTDDを整理 TDDとBDDの違い Test Framework in javascript QUnit/jasmin…

Rest経由のparseを使うBackbone.Viewを自作する

parse.comはiOS/android/Backbone.js等の各clientが準備されているが、 Restの口も準備されているので、実質、どの言語からも叩く事が出来る。 公式pageの内容をまとめて試してみて、 最後にBackboneのViewに組み込んでPluginにしてみた。 そこまでのメモ メ…

ImageMagickでjpegの縦横(exifのOrientation)情報を元に画像を回転する

やりたい事 元々、iphoneのsafariで、写真uploadできる機能を作りたかった。 ※ちなみに、iOS6からsafariでも画像up可 upする時に、jpegに入ってる重力の方向を元に自動で画像を回転して保存したい。 概要 この記事では以下の話を書いて行く。 jpegのexif情報…

Marionette.jsのCompositeViewって、どこで使えばいいの?問題

ビール飲みながらダラダラ書いてるので、おかしな所は申し訳ない。 CompositeView marionette.jsには、CompositeViewというクラスがある。 CollectionViewを継承していて、 再起的な構造を持ったviewを作れる 親側もtemplateを持つ事が出来る というのが、特…

ie8で画面が真っ白になった

ie

ie8で真っ白画面 とある機能を追加改修してie8で確認したら、 ブラウザの画面が真っ白になった。 特に、エラー等も出力されなかったので、 何が起こったかさっぱり分からなかった 条件 幾つか、付けたり外したりしていくうちに、以下の条件で起きているっぽ…

grunt bower yeoman入門記事

※これは、社内の勉強会の資料の下書きです。 ここ数年で、js環境が整理されてきた。 js開発するなら、これらの知識は必須。無いとめっちゃ不便。 という事で、今日は、gruntとbowerとyeomanの話。 各ツール概説 Yeoman applicationのひな形を作る アプリ構築…

Backbone.View入門

(この資料は、社内のBackbone入門の勉強会の為に作った物の下書きです。) これから、Backbone.Viewについての入門記事を書きます。 内容としては、Backboneを初めて学ぶ人の為の噛み砕いた入門記事にするつもりです。 Backbone.Viewの使い方 基本的な使い…

普通のrailsアプリのBackboneにMarionette付けて思った事

以前書いた記事の反省を元にMarionetteに移行した。 思った以上に快適! 大規模になったらMarionette.js使えとか書いているのは嘘で、普通にBackbone使うときは、初めから使うべき。 Backboneで一番恐ろしいのは、各現場/各開発者毎に異なるオレオレ実装。オ…

Backboneでデータバインディング(stickit)

最近、angularが熱くて、twitter見てると、angular周りが活発に流れて来るのだが、 angularのウリにしてるデータバインディング、Backboneでも同じ様な事がpluginで出来る。 Backbone自体は、非常にミニマルに出来ているので、(おそらく今後も本体にこういう…

和訳:BackboneとAngularを比較する

この記事は、Victor Savkin氏の「Contrasting Backbone and Angular」を翻訳したものです。 ※本人から翻訳の許可も頂きました。 オリジナル http://engineering.nulogy.com/posts/angular-and-backbone/ 和訳自体は自信なく、細かな所は意訳しているので正確…

Marionette.js(Backbone.js)のチュートリアル with yeoman その3(Marionette.View実装編)

チュートリアルの続き。 さんざん伸ばした挙げ句、ようやくここからが、本番。 MarionetteのViewを使う。 これから作るもの 前回、新規作成formを作ったので、 新規作成したtodoを表示するViewを作る。 liタグで、一つずつのTaskを表示する ulタグで、それら…

普通のrailsアプリにbackbone適用して思った事その2

X)誰かと一緒に作業するには、やっぱり、template必要 X)逆引きは公式pageでなくて、生ソース追跡 X)生産性は短期的には高まらない。むしろ改悪する。 X)