タグ

2017年4月27日のブックマーク (6件)

  • Go言語のリアルタイムGC 理論と実践 | POSTD

    (編注:誤訳、意味の分かりづらい訳を修正しました。リクエストありがとうございました。) 毎日、Pusherは数十億のメッセージをリアルタイム、つまり送り元から宛先まで100ms未満で送信しています。どのようにしてそれを可能にしているのでしょうか。重要となる要因はGoの低レイテンシのガベージコレクタです。 ガベージコレクタはプログラムを一時停止させるものであり、リアルタイムシステムの悩みの種です。そのため、新しいメッセージバスを設計する際には慎重に言語を選びました。Goは 低レイテンシを強調している ものの、私たちは懐疑的でした。「当にGoを使えば実現できるのか? もしできるならどうやって?」 このブログ記事ではGoのガベージコレクタを、どのように機能し(トリコロールアルゴリズム)、なぜ機能し(こんなに短いGCによる一時停止時間の実現)、そして何よりも、それが機能するのかどうか(GCによる

    Go言語のリアルタイムGC 理論と実践 | POSTD
    tyru
    tyru 2017/04/27
    Haskell(GHC) のガベージコレクションで数百ミリ秒の一時停止時間が起きるようになったので Go へ。関数型はこういうパフォーマンス上の問題が起きたら小手先じゃ解決できなさそうだな…
  • 昔の話だけど、後に夫になる人と付き合いだしたとき、はじめて一緒に見た..

    昔の話だけど、後に夫になる人と付き合いだしたとき、はじめて一緒に見た映画は彼のチョイスで「マトリックス リローデッド」だった。私は前作の話もうろ覚えだったこともあり、さっぱり面白くなかったのだけど、彼はあれが良かっただとかあのシーンはなんたらの映画のオマージュでこれこれな意味だろうとか、とにかく楽しげに感想を話していた。 こんなにつまんないものを楽しめるとは大した人だなと感心して、一緒にいたらこれからも楽しいかもなとトキメいたのをよく覚えている。 それから10年以上たって、結婚して子供も産まれた最近、BSでマトリックス一挙放送というのがあったので、確か好きだったよなと思い録画しといてあげた。 子供が寝たあとヘッドホンで映画を見るのが我が家の定番だが、夫は久々のマトリックスを見ながら「やっぱ二作目はいまいちだなあ」などというので、子供が寝てることも忘れて、はぁ!?と声を出して驚いてしまった。

    昔の話だけど、後に夫になる人と付き合いだしたとき、はじめて一緒に見た..
    tyru
    tyru 2017/04/27
    うおお
  • Paizaの炎上とIT業界とセックスと緑の自転車 - タオルケット体操

    Paizaといえばいつの間にか雑なSIerDisりのポジショントークで各所から顰蹙を買う炎上芸人系サービスになっていたので、後日読んだときにどれの話だよとなりかねないので念のために書いておくと、女を捕まえて調教して金を稼がせつつハレムを作るゲーム炎上した話です。ようは大悪司を水で薄めたみたいなもんでしょう*1。 そういえば某社の人事が職権を乱用して夜の面接をしていたみたいな話をゴミタブロイド誌がすっぱ抜いていたのでIT業界は実質エロゲだと言って良いでしょう。 でもPaizaって最初は割と志のあるサービスだったと記憶してるんですよね。 競プロっぽい問題を解くことがそのままエンジニアの実力の証明になるかどうかについては正直疑問がなくはないですけど、それでもある意味で現状の最適解と言えなくもないわけですし、コミュ力とかいう面接官の胸先三寸雰囲気で採用が決まるような不健全なマスの転職市場を変えた

    Paizaの炎上とIT業界とセックスと緑の自転車 - タオルケット体操
    tyru
    tyru 2017/04/27
  • Java SE 9のProject Kulla、コンソールアプリケーションのためのJLine

    これまで5回に渡ってProject Kullaが提供しているJShellについて紹介してきました。今回は少し趣向を変えて、JShellが使用しているライブラリーのJLineを紹介します。 JLineはコンソールを制御するためのライブラリーです。Java SEではJShellと、JavaScriptエンジンのNashornがJLineを使用しています。 Javaでコンソールを扱うとすれば、標準入出力であるSystem.inとSystem.outを直接扱うか、Java SE 6で導入されたjava.io.Consoleクラスを使用してきました。しかし、Consoleクラスでさえも、機能は必要最低限しかありません。例えば、履歴を扱うこともできません。 これに対し、JLineはコンソールからの入出力だけでなく、履歴や補完などを扱うことが可能です。Java SE 9に含まれているJLineは、残念な

    Java SE 9のProject Kulla、コンソールアプリケーションのためのJLine
    tyru
    tyru 2017/04/27
    Windows で Ctrl-D を EOF として扱うコンソールアプリっていいんだっけ? Ctrl-Z じゃなかったっけ / 最近?は Cygwin,MinGW アプリだけじゃなくそういうコンソールアプリ多い気がするけど
  • Scala ユーザのためのモナド入門 - Qiita

    対象読者 Scala はそれなりに使える モナドって聞いたことあるけどよくわかってない Scalaz は聞いたことない or 聞いたことあるけど使えない Haskell こわひ モナドの解説記事は星の数ほど出てきますが、ほとんどが Haskell の暗号 で書かれています。筆者が Scala の人で Haskell こわひ勢なので、ちょっとまとめました。 知ってる人にとっては基礎的すぎると思います。また主に自分の思考整理のための記事です。ツッコミ所は多いかと思います。ご了承ください。 基礎事項 Scala をそれなりに使えない人のために、今回使う道具の基礎事項をまとめています。 Scala はそれなりに使える人は飛ばしていただいて問題ありません。 Option 型 Scala には 「あるかもしれないけど、ないかもしれない」 状態を扱うことができる Option 型というものがあります。例

    Scala ユーザのためのモナド入門 - Qiita
    tyru
    tyru 2017/04/27
    モナド則の Scala 版コードと Scala の Either がモナドじゃない話について
  • シェルスクリプトの set -e は罠いっぱい

    ふみやす@シェルまおう(自称でない) FGO:838,149,789 @satoh_fumiyasu Perl では最初に use strict; use warnings すべきなように、シェルでは set -u すべき。「例外処理って何? おいしいの?」って人は set -e もしておけ。 2012-06-25 18:25:20 ふみやす@シェルまおう(自称でない) FGO:838,149,789 @satoh_fumiyasu シェルスクリプトをまともに書けない奴は、それでも書かなければならないときは、とりあえず変数展開するとき必ずダブルクォートで括れよ。$foo じゃなくて "$foo” な。あと最初に set -u; set -e でもしておきな。シェルスクリプトが駄目なんじゃなくて、書けないだけ。 2012-12-22 00:27:38

    シェルスクリプトの set -e は罠いっぱい
    tyru
    tyru 2017/04/27
    個人的に一番 set -e の罠にハマるのは diff コマンドかなぁ。差分が出ると死ぬ。code=0; diff ... || code=$? してわざわざチェックしたりする