タグ

2017年9月3日のブックマーク (8件)

  • SPA に特化した http.FileServer — KaoriYa

    SPA の紹介に特化した http.FileServer (http.Handler) を作っていたので紹介します。 Single Page Application (以下 SPA) の特徴の1つとして、 クライアント側でルーティングを行うことがあります。 これは端的に言うと /foo/ というパスに SPA を配置した場合、 Web サーバーは /foo/bar や /foo/bar/quux/ など /foo/ 以下のパスに対しては /foo/ と同じコンテンツを返さなければならないことを意味します。 先日 tyru さんが Gonet/http で Vue.js / Angular 1 などの HTML5 history mode に対応する において、それに対応する方法を記事にしていました。 実は私も似たようなことをするけど設計思想が少し違うパッケージ koron/go-sp

    tyru
    tyru 2017/09/03
    おおー良さそう。自分の記事のは(正規表現使ったり)大分カジュアルに書いてしまったのでこれに乗り換える手もあるかな。go-assets みたいにインメモリにすれば懸念してる速度も良くなりそうだし
  • デレステ運営に物申す

    日、アイドルマスターシンデレラガールズ スターライトステージが二周年を迎えた。 プロデューサーとしては非常に喜ばしいことであるが、一つの告知を見て我が目を疑った。 LIVE PARTYの常設化、これは別に良かったのだが……その報酬に過去イベントの目玉となったアイドルが登場することが告知されたのである。 特に衝撃的だったのは、[アタシポンコツアンドロイド]安部菜々――長いので以下アタポンウサミンと呼ぶ――がデカデカと表示されていることであった。 なるほど、確かにこのカードの復刻を望む声は多かっただろう。 しかし、こうして実際に復刻が決定したことで、私がアタポンウサミンを所持していることはもはや自慢に値しなくなった。 アタポンウサミンは、デレステにおける一番最初のイベントランキング報酬であった。 モバマス時代から菜々さんのファンであった私は苦手な音ゲーに四苦八苦しながら取り組み、熱暴走するス

    デレステ運営に物申す
    tyru
    tyru 2017/09/03
  • もうBabelじゃない - Bubleだ。 - Qiita

    JavaScript を書くとき、もはや新しい ES でないとストレスではないでしょうか。 だからこそ僕らは新しい ES で開発してから、ブラウザ対応のために Babel を使って ES5 にトランスパイルするというのが定石となっていました。 しかし、必要最小限の機能に絞って高速なトランスパイルを実現する Buble 1 が登場しました。 TL;DR Buble は、 Babel やその他のトランスパイラと比べて以下の点で異なります。 仕様への準拠ではなくブラウザで動くことを目指す 設定ファイルは不要 高速なトランスパイル Babel は新しい ES で書かれたコードを ES5 ( など )の仕様に準拠したコードにトランスパイルすることが目的です。一方で、新しい ES から ES5 への “完全” な変換は不可能です。 そこで Buble の取ったアプローチは、他仕様へのトランスパイルでは

    もうBabelじゃない - Bubleだ。 - Qiita
    tyru
    tyru 2017/09/03
    バブるだとバブみっぽくて開発者が赤ちゃん化してるイメージしか思い浮かばなかった
  • https://docs.npmjs.com/getting-started/fixing-npm-permissions/

    tyru
    tyru 2017/09/03
    npm install -g でインストールされるディレクトリを変える方法
  • Elm のパイプ |> の良さ - ジンジャー研究室

    小ネタ。 JavaScript の [1,2,3].map(a => a + 1) が、 Elm だと [1,2,3] |> List.map (\a -> a + 1) で、両方とも左から右に読めるからそんなに変わらないなーと思ってたんだけど、一つ違う点に気づいた。JavaScript で Promise を気持ちよく連鎖してて書いてて、いざ並列実行しようとなった時に const promises = [1,2,3].map(a => a + 1).map(toPromise) Promise.all(promises) のように少し回りくどくなり、なぜ promises.all() と書けないのかと考えたら「配列にメソッドを追加するのが微妙だから」と気づいた(prototype 拡張で不可能ではない)。一般的に言うと既存の型に何か関数を追加できない。 Elm のパイプを使う場合、その制

    Elm のパイプ |> の良さ - ジンジャー研究室
    tyru
    tyru 2017/09/03
  • Goでnet/httpを使う時のこまごまとした注意 - Qiita

    resp, err := http.DefaultClient.Do(req) if err != nil { return err } defer resp.Body.Close() HTTPレスポンスを受け取ったとき、err != nilのときresp.Bodyは常に非nilである(たとえBodyが0バイトであっても)。このresp.Body を Close するのは呼び出し側の責務である。Body.Close を怠ると、Keep-Alive(デフォルトで有効)のためにTCPコネクションが再利用されない。…ということが ドキュメントに口を酸っぱくして書いてある。 同一ホストへのコネクション数はデフォルトで最大2に制限されている 同一ホストへのコネクション数はhttp.DefaultMaxIdleConnsPerHost定数によりデフォルトで2に制限されている。 // DefaultMa

    Goでnet/httpを使う時のこまごまとした注意 - Qiita
    tyru
    tyru 2017/09/03
  • SEGV探偵が往く - なるせにっき

    人は誰しも108つの夢を持つと言いますが、読者の皆さんにも探偵を夢見た人は多いことでしょう。実際問題として探偵業をやろうと思ったら地道な聞き込み&張り込みの日々でしょうし、逆に派手な探偵業は陰謀&殺人で恐ろしい。わたしも自分の命は大事ですからどうするか。そう、探偵ごっこをするわけですね。 というわけでSEGV探偵です。死ぬのはプロセスなので安心。Rubyを使っていればSEGVなんて見慣れたものですが、いざ捜査しようと思うと意外とその辺には転がっていないもの。(むかしはつかみ取り出来るくらいいたそうですよ)とはいえ今でもいわゆる「バグ鉱脈」みたいなものはありまして、その一つが「最新のコンパイラでビルドしてみる」です。 今日はGCCの開発版であるGCC8を試してみましょう。FreeBSDだとsudo pkg install lang/gcc8-develで簡単に入れられるのですが、他の環境だと

    SEGV探偵が往く - なるせにっき
    tyru
    tyru 2017/09/03
  • JuNest Linux

    The lightweight Arch Linux based distro that runs upon any Linux distros without root access. JuNest The lightweight Arch Linux based distro that runs upon any Linux distros without root access. Star Project Status Donation Communication Description JuNest (Jailed User NEST) is a lightweight Arch Linux based distribution that allows to have an isolated GNU/Linux environment inside any generic host

    tyru
    tyru 2017/09/03