Akenshoのブックマーク (13)

  • PHP の壊れた mt_rand の品質を統計的に検証した - iwiwiの日記

    メルセンヌ・ツイスターと似て非なるアルゴリズムが実装されていたことが発覚して話題の PHP の mt_rand 関数の品質を統計的に検証しました.果たして,PHP の「壊れた」mt_rand は安心して使うことができるのでしょうか……? ちなみに,結論から言うと,PHP の壊れた mt_rand は,(少なくともこのテストの範囲では)家メルセンヌ・ツイスターと遜色ない品質を持っているようです.ただし,最後に PHP の乱数の別の懸念点についても紹介します. 壊れた mt_rand とは PHP の mt_rand は,ドキュメントによると,有名な乱数生成アルゴリズム「メルセンヌ・ツイスター」を利用して高品質の乱数を生成する関数です.ところが,どうやら一部では知られていたこととして,PHP の mt_rand の実装にはバグがあり,家メルセンヌ・ツイスターと挙動が一致していませんでした.

    PHP の壊れた mt_rand の品質を統計的に検証した - iwiwiの日記
    Akensho
    Akensho 2016/02/22
  • Webシステムにおけるデータベース接続アーキテクチャ概論 - ゆううきブログ

    先月投稿した2015年Webサーバアーキテクチャ序論では、Webサーバアーキテクチャを学ぶ道のりと代表的な実装モデルの概要を紹介しました。 今回は、前回同様、主に新卒Webエンジニア向けに、Webアプリケーションサーバとデータベースサーバ間の接続管理モデルと運用事情について紹介します。 データベース接続の永続化やコネクションプーリングとは何なのか、なぜ必要なのかといったことが主な話題です。 背景 データベース接続の永続化とはなにか データベース接続のオーバヘッド データベース接続の永続化手法 コネクションプーリングとはなにか コネクションプーリング: ドライバ型 コネクションプーリング: プロキシ型 コネクションプーリング全体について PostgreSQLMySQL 参考資料 まとめ 背景 2015年Webサーバアーキテクチャ序論では、Webサーバアーキテクチャの話とWebアプリケーショ

    Webシステムにおけるデータベース接続アーキテクチャ概論 - ゆううきブログ
    Akensho
    Akensho 2015/06/30
  • 2015年Webサーバアーキテクチャ序論 - ゆううきブログ

    2023年03月31日追記:この記事を基に、@sadnessOjisanさんより、コードレベルにより踏み込んだ、かつ、グリーンスレッドベースの新しいWebサーバアーキテクチャも含めて整理された記事 Webサーバーアーキテクチャ進化論2023 | blog.ojisan.io が公開されました。 主に新卒のWebエンジニア向けに、古典的なWebサーバアーキテクチャを学ぶ道のりと代表的な実装モデルの概要を紹介します。 この辺りの話題がWeb界隈で流行っていたのは数年以上前というイメージですが、Webサービスは相変わらずWebサーバの上で動いているので、流行り廃り関係なく学ぶべき内容だと思っています。 また、HTTP/2がいよいよRFC化し、既にh2oやtrusterdなどのHTTP/2のサーバ実装があり、今後Webサーバアーキテクチャを再訪することが増えるような気がしています。 ところが、We

    2015年Webサーバアーキテクチャ序論 - ゆううきブログ
    Akensho
    Akensho 2015/05/28
  • AtCoder 株式会社に入社しました - iwiwiの日記

    5 月より AtCoder 株式会社に入社しました.主となる勤務先は国立情報学研究所のままで,兼任としての入社になります. AtCoder とは? AtCoder はプログラミングコンテストの開催を主な業務とするスタートアップ企業です.設立からそろそろ 3 年で,私を入れてメンバーは現在 3 人になります.社長は書籍「最強最速アルゴリズマー養成講座」などで有名な @chokudai です.ICFP Programming Contest で優勝を果たした際のチームメイトでもあります. オンラインのコンテスト AtCoder Regular Contest (ARC), AtCoder Beginner Contest (ABC) を土曜日にほぼ毎週開催しています.また,宣伝と採用を兼ねた企業のプログラミングコンテストを,システムのレンタル,問題の作成代行,集客,開催のコンサルティングなどの

    AtCoder 株式会社に入社しました - iwiwiの日記
    Akensho
    Akensho 2015/05/12
  • 安定したリリースを継続するためのテストとテストレベルの話 - クックパッド開発者ブログ

    こんにちは。技術部の松尾(@Kazu_cocoa)です。 安定したリリースを継続して回す為には、開発プロセスや実装も大事ですが、その中でどのような確認、テストを継続して行うかも大切になります。そこで、開発プロセスにおけるテストをどのように切り分けて、構築していくかという考え方に関して少し整理してみようと思います。 これにより、実施されているテストによって検出できる/できない不具合がどのようなものか、それが開発中のどこで防ぐことができるのかを整理できるようになってくると思います。また、安定したリリースを実現するためのボトルネック解消に向けて、どのレベルでテストを充実させると効率的にそれが達成できるかという所も考えることができるようになります。 テストレベルによるテストの区分け テストレベルという言葉にも様々な定義がありますが、ここではざっくりとテスト対象となる範囲や領域を意味することにします

    安定したリリースを継続するためのテストとテストレベルの話 - クックパッド開発者ブログ
    Akensho
    Akensho 2015/04/13
  • クックパッドの課金を支える技術 - クックパッド開発者ブログ

    こんにちは、技術部の大石です。開発基盤グループで課金システムの担当をしています。 インターネットサービスの決済・課金システムの開発や運用は、サービスの根幹を支えるために正確性と機能性を満たさなくてはなりません。また同時に、価格や料金体系、決済手段のバリエーションでユーザーに利便性を提供する必要もあります。「堅牢性」「信頼性」と「柔軟性」「開発スピード」という相反する要素の両立が求められます。 その結果、決済・課金システムは適切な設計や運用を意識しないと複雑になってしまいがちです。 課金システムの開発、運用でよくある問題 複数の決済方法を同じサービスの上で共存させる難しさ 例えば、最初にクレジットカード決済を導入して、その後にコンビニ決済、キャリア決済やアプリ内決済と決済方法が増えていくことはよくあることです。 最初の導入の際にクレジットカード決済への設計だけでなく、その後に増えていく決済を

    クックパッドの課金を支える技術 - クックパッド開発者ブログ
    Akensho
    Akensho 2015/04/13
  • Linuxでロードバランサやキャッシュサーバをマルチコアスケールさせるためのカーネルチューニング - ゆううきブログ

    記事の公開後の2016年7月にはてなにおけるチューニング事例を紹介した。 はてなにおけるLinuxネットワークスタックパフォーマンス改善 / Linux network performance improvement at hatena - Speaker Deck HAProxy や nginx などのソフトウェアロードバランサやリバースプロキシ、memcached などの KVS のような高パケットレートになりやすいネットワークアプリケーションにおいて、単一の CPU コアに負荷が偏り、マルチコアスケールしないことがあります。 今回は、このようなネットワークアプリケーションにおいて CPU 負荷がマルチコアスケールしない理由と、マルチコアスケールさせるための Linux カーネルのネットワークスタックのチューニング手法として RFS (Receive Flow Steering) を

    Linuxでロードバランサやキャッシュサーバをマルチコアスケールさせるためのカーネルチューニング - ゆううきブログ
    Akensho
    Akensho 2015/03/31
  • とあるスタートアップを抜け、CTOを辞めた話。 - nobkzのブログ

    とあるスタートアップを抜け、CTOを辞めた話。 辞めると来まって、1週間ぐらい立ちいろいろ整理してきたので、そろそろこのことについて書く。前々から書かなければ、ならないという謎の使命感を持っていた。 僕は、Technical RockstarsのCTOだった。このスタートアップで、リアルタイムBaaSサービスと等、いろいろなサービスを提供していた。スタートアップ自体は、2013年の11月あたりから、CTOの就任して、大体1年と、半年ぐらいか?そのぐらいの期間CTOだった。 そして、これから、なぜCTOを辞めたのか?というのと、日のスタートアップ、とくにエンジニアスタートアップの問題点、何を学習したのか? 何を得たのか? そして僕はこれからどうするか?というのを、つらつらと書いていきたいと思っている。 スタートアップとは? ここで、スタートアップがどういうものか?というのを知らない人の為に

    とあるスタートアップを抜け、CTOを辞めた話。 - nobkzのブログ
    Akensho
    Akensho 2015/03/18
    「僕達は、日本で、創業し、日本で、スタートアップをし、日本で、資金調達をしたが、日本の、VCや投資家が技術が全く分かってないのだ 。」悲しい話。元エンジニアの投資家を未だに出会ったとこがない
  • ScalaでWebアプリケーションのエラー処理を綺麗に書く - はこべにっき ♨

    Play Frameworkにおいて、POSTリクエストから得られたbody中のパラメータをもとに何か処理をするというよくあるコードを、ちょっと整理して見やすくする方法を学んだのでメモがてら御シェアさせていただきます。Playのリクエストハンドラを書くときに頻繁に現れたので、例がPlayのコードになっているけど、内容的にはScala全般的な話だと思う。Scalaプロみたいな人にはまったく新しいことはないと思う。 題と関係ないけど、YAPCScalaの話をするかもしれません。言語自体の話よりかは採用理由とか開発フローの話を、これまでのPerlでのWeb開発を踏まえて話す感じになりそう。Scala In Perl Company : Hatena - YAPC::Asia Tokyo 2014 さて、題ですが、話題の対象になるのは以下の様なPlayFrameworkのコードです。 def

    ScalaでWebアプリケーションのエラー処理を綺麗に書く - はこべにっき ♨
    Akensho
    Akensho 2015/03/16
  • 羽田の飛行機に乗るために間違えて成田に行ってしまった人の話 - iwiwi 備忘録

    I 田さんが間違えて行ってしまったが起死回生したので有用なメモとしてその時の記録を残す 14:20 成田着 → 爆速でタクシーに乗る 15:20 羽田 国内線第二ターミナルに何故か降ろされる(ANA は国内線ですら第一なので完全に謎) → バスで移動 15:40 羽田 国際線ターミナル 15:55 合流 16:20 発,15:55 搭乗の ANA の飛行機で,14:20 頃に待ち合わせしていた 2万円程度の予算が必要です

    羽田の飛行機に乗るために間違えて成田に行ってしまった人の話 - iwiwi 備忘録
    Akensho
    Akensho 2014/04/06
  • CSSのカスケーディングを禁止する - morishitter blog

    rework-rule-bindingという、CSSのカスケーディングを禁止する構文を追加するReworkプラグインを書いた。 Rework Reworkは、@tjholowaychukや@necolasらが立ち上げているプロジェクト。Reworkのプラグインを書くことによって、開発者は独自のCSSのプリプロセスを定義することができる。Twitter社は、twitter.comでReworkで作ったプリプロセッサーを使用しているらしい。 rework-rule-binding rework-rule-bindingは、CSSにカスケーディングを禁止する構文を提供する。 (.bind-rule) { padding: 15px; border: 1px solid #999; } /* error */ .bind-rule { padding: 0px; } /* error */ (.b

    CSSのカスケーディングを禁止する - morishitter blog
    Akensho
    Akensho 2014/04/04
  • 「実践・最強最速のアルゴリズム勉強会」開催します! - chokudaiのブログ

    実践・最強最速のアルゴリズム勉強会 AtCoderを利用した、実践アルゴリズム講座を開催します! 概要とかは上に書いてありますが、無料講座で、3/9(日)から5週連続で開催します! 教育関係のをやりたくて会社を立ち上げたのもあるので、こうして勉強会を開けるのは凄い嬉しいです! どんなことをやるの? アルゴリズムの勉強、というのは、理論を学んでも、実践までするのはなかなか難しいし、実際コードにする機会というのは、なかなか少ないんじゃないかな、と思います。 例えば、「クイックソート」とか「マージソート」とか、「バブルソート」とか、名前は知っていても、仕組みは知らない人が多いと思うし、知っていても実装したことがある人は少ないんじゃないかなー?と思ってます。 とまぁ、アルゴリズムって、「自分で実装が出来る」か、「中身はよく知らなくても、ツールとして利用できる」のどっちかの状態にならないと、仕方ない

    「実践・最強最速のアルゴリズム勉強会」開催します! - chokudaiのブログ
    Akensho
    Akensho 2014/02/28
  • 1