タグ

ブックマーク / secondlife.hatenablog.jp (21)

  • 【追記あり】モバイルインターネット環境の通信速度を TCP BBR が有効な ShadowsocksR で10倍速にする - 2nd life

    追記 kazuho さんからの指摘いただいた通り、TCP BBRアルゴリズムがモバイル環境の通信速度向上に影響を与えているわけでは無く、キャリア/ISPが制御している回線(記事ではIIJmio回線)を、BBR+SSRという特殊なコネクションにより、トラフィックシェイピングの挙動を変えてしまい*1、そのため帯域幅が増えたと推測されます。この利用方法では、TCPの公平性に悪影響を与えてしまう行為になる可能性があり、一般良識の範囲内で試すなど、定常的な利用は控えた方が良いでしょう。 さらに追記 IIUC同僚氏いわく、kernelのtcp実装ならBBRv1。モバイルキャリア内にありがちなユーザ毎のキューがボトルネックか、同一ユーザが並行ダウンロードを行なって確認すればいい(バンド幅の総和が不変ならユーザ毎のキューあり)。キューがあってそこがボトルネックなら輻輳制御間の公平性の懸念はない— Kaz

    【追記あり】モバイルインターネット環境の通信速度を TCP BBR が有効な ShadowsocksR で10倍速にする - 2nd life
  • 継続的インテグレーションについて、Ruby勉強会@札幌-18 で発表しました - 2nd life (移転しました)

    先日行われたRuby勉強会@札幌-18で、Ruby勉強会にもかかわらず空気を読まず、継続的インテグレーションについて発表しました。 継続的インテグレーション - Ruby勉強会@札幌-18 View more presentations from hotchpotch 継続的インテグレーションは複数人開発ではやるべき価値がある手法だと思ってますが、実際に実践してみないと価値をなかなか体験できない物だと思っています。 継続的インテグレーションについて語る際に、言葉で伝えにくい部分がある。それは、継続的インテグレーションは開発全体に関わる「パターン」への移行をもたらすものだということであり、こればかりは、実地で体験してみないと理解しがたいのだ。 継続的インテグレーションの恩恵 スライドの中では、実際にクックパッドで継続的インテグレーションを行っていて感じた価値、その結果変わった開発サイクル・プ

    継続的インテグレーションについて、Ruby勉強会@札幌-18 で発表しました - 2nd life (移転しました)
  • はてな退職しました - 2nd life (移転しました)

    7/16 が最終出社日*1となり、はてな退職しました。はてなブックマークでのチュートリアル機能がはてなでの最後の仕事となりました。 はてなに入ってからを振り返ってみると2006年1月にはてなに15番目の社員として入社し、4年7ヶ月はてなのメンバーと一緒に働いてきました。当時はまだ誰も辞めていなかったため、過去はてなで働いた人すべて一緒に仕事をしてきたことになります。入社時はまだオフィスが東京にあり、毎日全員が朝会でディスカッション、時には数時間も熱く語るというエキサイティングな職場だったのがとても印象的でした。 当時は当に自由な環境でいろいろな事を試行錯誤していた日々でした。入社約2ヶ月で、会社のフレームワークに DI の概念を実装したころで Perl もう無理と投げ出して Perl を書かない仕事ばっかりやっていたのも今となっては良い(?)思い出です。今だったらあり得ないですねほんと

    はてな退職しました - 2nd life (移転しました)
  • デブサミ2009 はてなの開発戦略 - 2nd life (移転しました)

    先日のデブサミ2009で発表した、はてなの開発戦略 (すごい名前だ…) のプレゼン資料を公開します。前半は主に git の話で、後半ははてなブックマークリニューアルの、Perl 層の開発をどんな感じで行っていったか、という話です。 デブサミ2009 はてなの開発戦略View more presentations from hotchpotch. はてなの git では、中央のマスタレポジトリサーバがあって、そこから各自 clone / fetch して開発を行ってるので、完全に github のような分散のメリットを生かしているわけではありません。 しかし完全に分散を生かさずとも、git に移行したメリットは十分にあって、資料の中でもふれていますが、やはり一番便利なのが git のブランチ機能です。もうこれ無しでの開発は考えられないなぁ、ぐらいで、さくっとブランチ切って開発、ブランチの切り

    デブサミ2009 はてなの開発戦略 - 2nd life (移転しました)
  • github に gem を公開する - 2nd life (移転しました)

    http://github.com/ 最近一部で話題沸騰の githubgithubRails で作られたアプリケーションでは、自分が知りうる限り一番の完成度と使いやすさを誇るんじゃないか、と思っています。 ソースコードツリーの見やすさ、(g)zipでくれ機能、各種 git の情報へのアクセスしやすさ、最初に git レポジトリを作ったとき表示されるチュートリアルと云った基的なことはもちろんですが、オープンソースプロジェクト・コミュニティを加速させるであろう、分散レポジトリを利用した様々な機能がすばらしいですね。 誰かが公開してるレポジトリを fork ボタン一つで自分のレポジトリにクローンし、いろいろ変更を加え、大に取り込んで欲しいなぁ、と思ったら pull request。大のコミッタは気に入れば pull で取り込めばよいし、もし気に入らなかったとしても、変更者がそのフ

    github に gem を公開する - 2nd life (移転しました)
    se-mi
    se-mi 2008/05/20
    はてなはgit移行したのか
  • 昔話 - 川o・-・)<2nd life

    昔話でもしようか。 自分は6年前はプログラミングが全くできなかった。プログラム書ける人は一部の天才だと思っていた。プログラミングができないことに劣等感を覚えた自分は、Linux が使えると格好いいんじゃと思い、Debian で自宅サーバを構築し、アンテナ*1や tDiary で日記サイトを運営したり始めた。 そんなとき、id:antipop と出会った*2。島に住んで、特にITもなにも関係ない仕事をしていた彼が、全く知識が無いところから勉強し Linux で自宅サーバを動かし、php + postgres で blog っぽいシステムを日々バージョンアップさせ、Button Maker for Japanese などのツールを作っていくのを blog 経由でリアルタイムで見ていて、プログラミングもやれば誰でもできるんじゃないかと感じ、自分の日記ツールが tDiary ということもあって、R

    昔話 - 川o・-・)<2nd life
    se-mi
    se-mi 2008/05/12
    はてな世代交代のお話
  • ruby のスクレイピングツールキット scrAPI - 川o・-・)<2nd life

    http://blog.labnotes.org/category/scrapi/ rubyスクレイピングして web の情報を取得するのには、今まで正規表現か xpath でやってたので、わりと面倒でした。で、ふと scrAPI というスクレイピングツールキットを知ったのですが、これがかなり便利そう。 このツールキットを使うと、CSS3 なセレクタを記述することで、要素を取得することができます。たとえばとあるサイトのリンクを全部取得したければ、 require 'rubygems' require 'scrapi' require 'open-uri' require 'nkf' require 'pp' $KCODE = 'u' links = Scraper.define do process "a[href]", "urls[]"=>"@href" result :urls e

    ruby のスクレイピングツールキット scrAPI - 川o・-・)<2nd life
    se-mi
    se-mi 2008/02/29
    あとで
  • crossdomain.xml と CSRF 脆弱性について - 2nd life (移転しました)

    crossdomain.xml を安易に設置すると CSRF 脆弱性を引き起こす可能性があります。というのも、ここ数が月、それなりの数の crossdomain.xml による CSRF 脆弱性を発見し(現在、それらのサイトでは対策がなされています)、まだまだ Web プログラマに脆弱性を引き起こす可能性がある、という考え方が浸透してないんじゃないか、と思ったので。 先月、Life is beautiful: ウェブサービスAPIにおける『成りすまし問題』に関する一考察にも crossdomain.xml について書かれてたのですが、その後もいくつかのサービスで crossdomain.xml を許可ドメインすべてにしているサービスがあったので、注意喚起としてエントリーに書き起こします。 自分も一年半ぐらい前は、crossdomain.xml を許可ドメインすべて ('*') にして設置し

    crossdomain.xml と CSRF 脆弱性について - 2nd life (移転しました)
  • Shibuya.JS 運営について - 2nd life (移転しました)

    なにやら運営(費)について書くのがブームなようで、Shibuya.JS のテクニカルトークなどの開催をどんな感じで行っているかを書いてみます。 主に100人強の、大きくはない規模のイベントですが、今後イベントを開こうと思ってる人の参考になれば幸いです。 運営・企画 初回はスピーカを集めるところからでした。自分の知り合いや、この人にしゃべってもらえたら面白そう!という方々に連絡しました。そしてミーティング。ミーティング会場は、会社の会議室を貸してもらって行いました。そこでホワイトボードに自分の話したいこと、誰かに話してもらいたいこと、むしろ誰かこれについて喋って!のようなことを書きます。それをたたき台として、その後は qwik.jp の ML + Wiki を活用し、誰が何分、どんなことについて話すかを決めていきます。 二回目からのトークは、qwik にこれぐらいの時期にイベント開こうと思う

    Shibuya.JS 運営について - 2nd life (移転しました)
  • 川o・-・)<2nd life - モテる Ruby! - Ruby会議 2007

    先日の Ruby 会議、参加者・スピーカ・スタッフの皆さんお疲れ様でした。非常に楽しめたイベントで、企画運営などさまざまなことを行ってくださったスタッフの方々にはほんと感謝です。 また久しぶりに Rubyist な方々といろいろ話ができて楽しかったです。人見知りなので、話しかけてくださった方々、ありがとうございます:D というわけで、以下発表資料。 モテる Ruby! 舘野祐一 ( id:secondlife ) 自己紹介 舘野祐一 id:secondlife 株式会社はてなエンジニア Shibuya.js 企画・運営 自己紹介 好きなの Ruby が好き vim が好き アイドr Ruby はモテ? Ruby は昨年から世間で大ブレイク でも Ruby を使えてもモテる気配がしない… Ruby の集まりはほぼ男性ばかり マーティン・ファウラー曰く 「Rubyコミュニティでは、女性を一切見

  • fcwrap を使ったAS3オールドタイプ開発 - Shibuya.es 発表資料 - 川o・-・)<2nd life

    昨日の Shibuya.js Technical Talk #3 - Shibuya.es で LT をしてきました。関係者、来場者のみなさん、お疲れ様でした。 どの発表も面白かったです。技術的な面では omo さんのはじめてのABCでの、AVM2/JIT の話が大変面白かったです。なんで型を定義すると速くなるのかなど、「へーこう実行されるからなのかー」と解りやすかったです。 また会場では一斉を風靡するであろう、kushigahamaメソッドが生まれました。あのインパクトは正直高橋メソッドを初めて見たとき以上でした。今年は高橋メソッド以上にkushigahamaメソッドが流行る予感…。 また、fcwrap のデモも撮ったので置いておきます。 http://rails2u.com/misc/fcwrap_demo/fcwrap.htm このように保存するだけで即座に結果を表示/リロードしつつ

    fcwrap を使ったAS3オールドタイプ開発 - Shibuya.es 発表資料 - 川o・-・)<2nd life
  • 価格.com API for ruby - 川o・-・)<2nd life

    価格.com WEBサービス API マニュアル http://rails2u.com/misc/kakaku_com_api.rb.txt 価格.com WEBサービス APIがリリースされた!というわけで作ってみました。ほぼ RakuAPI ライブラリのコピペですんだ、という…。これはオフィシャルなサービスなのでそのうち rubyforge に上げる…かも(コペ)。ひょっとしたらインターフェイス周り変えるかも。id:naoya が作った naoyaのはてなダイアリー - WebService::KakakuCom で使ってる Data::Page がなにやら便利そうなのでそれっぽいページャクラス作るかもー。 使い方は require 'kakaku_com_api' require 'pp' $KCODE = 'u' k = KakakuComAPI.new results = k.s

    価格.com API for ruby - 川o・-・)<2nd life
    se-mi
    se-mi 2006/09/28
    仕事はええな
  • TDD で作る RakuAPI ライブラリ - 2nd life (移転しました)

    RakuAPI - 楽天市場 非公式ウェブサービス という楽天の非公式 API のライブラリを作るのが流行みたいなので作ってみました。ただそれだけでは面白くないので、最近自分が TDD でライブラリ作るときの方法も軽くご紹介します。 まずはインターフェイスの構想 何はともあれ、どんなインターフェイスを定義して、どんな結果が返ってくるのかがイメージできないとライブラリは作りにくいです。というわけでざっくり最初に構想を練ります。 RakuAPI の場合は WebAPI がシンプルに使えて良い感じなので、構想を練るのに考え込む、というのはありませんでした。 そんなんで、RakuAPI.new でインスタンスを取得して、search メソッドで第一引数に検索文字列、第二引数はオプションでジャンルやプライスを渡せるように、結果は配列にStruct が格納されてる感じにしよう。と考えました。 テストを

    TDD で作る RakuAPI ライブラリ - 2nd life (移転しました)
    se-mi
    se-mi 2006/09/27
  • 川o・-・)<2nd life script.aculo.usのファイルサイズを軽減

    http://www.goodpic.com/mt/archives2/2006/02/ajax.html で紹介されてる通り、script.aculo.usは通常のロードではファイルサイズが100KBを超えます。しかし、それはフルでロードしたときの容量なのです。script.aculo.usはロードするパッケージを選ぶことができる*1ので必要な機能だけを選べば良いのです。例えば、たいていの場合はscript.aculo.usのeffects.jsだけしか使わなかったりするので <script src="/js/scriptaculous.js?load=effects" type="text/javascript"></script> とすればOK。これでファイルサイズは34KBに収まります。また、二つ以上のパッケージを選択したい場合は <script src="/js/scriptac

    川o・-・)<2nd life script.aculo.usのファイルサイズを軽減
    se-mi
    se-mi 2006/08/31
    script.aculo.us
  • はてな認証API PHP 版ライブラリ作りました - 2nd life (移転しました)

    ということで PHP 版も作りました。 http://auth.hatena.ne.jp/sources/Hatena_API_Auth.php.txt http://auth.hatena.ne.jp/sources/Hatena_API_Auth_example.php.txt http://rails2u.com/misc/hatenaapiauth.php (動作サンプル) どうぞご利用下さい(コペ)。JSON を使っているので、php-json もしくは Services_JSON が必要になります。動作は 4.4.x と 5.1.x で確認したましたが php 4.2 以上ならたぶん動くような気がします。 久しぶりに php のコード書いたのでめちゃ変なことしてるかも、、、。

    はてな認証API PHP 版ライブラリ作りました - 2nd life (移転しました)
    se-mi
    se-mi 2006/04/26
    あら素敵
  • 川o・-・)<2nd life

    このサイトは移転しました。 https://secon.dev/ https://secon.dev/feed 心のざわめきを無くして日記を書くということ / secon.dev への移転 - A Day in the Life alias open="pwsh.exe /c start" pwsh.exe を入れてない人は alias open="powershell.exe /c start" すると、open foobar がいい感じに開かれる。 # explorer が開く open . # デフォルトブラウザが開く open https://example.com/ # jpg に関連付けられているビュアーで開かれる open ./foo.jpg 先日、メインの開発環境を MacOS から Windows 10 Professional へと移しました。理由としては主に2点で、現

    川o・-・)<2nd life
    se-mi
    se-mi 2006/04/20
    prototype.js
  • 川o・-・)<2nd life - オブLOVE夜会第2弾「イマドキのJavaScript」

    http://kakutani.com/20051222.html#p01 http://rails2u.com/misc/imadoki/ (資料、キーボードのs, wでプレゼン操作可能) でゲスト講師してきました。参加者の皆さん、セッティングマネージャ兼幹事1.0の角谷さん、お疲れ様でした。 というわけでJavaScript, Ajax, prototype.js そしてGiza(オレオレJavaScript Framework inspired by しょこたん)について放談ということで緩い感じにだらだらとお話しをしてきました。その中でとりわけGiza.Eventsについて関心を持たれた方が多かったようなので、Giza.Eventsについての説明をちょっと。 Giza.Eventsは主に三つの機能があります。 giza:a, giza:c などのgiza: 接頭辞つきの拡張属性を利用

    川o・-・)<2nd life - オブLOVE夜会第2弾「イマドキのJavaScript」
  • 第八回 XML開発者の日 - 2nd life (移転しました)

    でRESTful Wikiな実装、という題目で発表してきました。長時間のプレゼンが初めてだったり、緊張しまくって「なんかなんか」云いまくってました。あとおもいっきり実装に偏った話で聴衆置いてきぼり、とかいろいろと…。今回の反省点をふまえて、次回のプレゼンに生かそうと思います。 内容は他の方々が詳細な感想などを書かれてるのでそちらを参考に。たぶん発表者の中じゃ一番RESTの知識が少なかったので、他の方々の発表は大変刺激的で、参考になりました。 発表資料は以下の場所に置いておくので、良かったらどうぞ。 http://rails2u.com/tmp/ppt/rest051124.ppt

    第八回 XML開発者の日 - 2nd life (移転しました)
  • webアプリケーションテストツール seleniumがヤバすぎる

    http://selenium.thoughtworks.com/index.html JavaScriptを使い実際のブラウザを介してテストするseleniumがヤバすぎる。便利すぎ。Web案件なんつーのはほんと最終フェイズになってもMVCで云うモデルに当たる部分が「仕様変更」の一言によって変更されることも多々あって、そんなときは各種testが書き直しになったりする。んで最終で時間がない状態じゃtest書き直せる訳もなく人海戦術で無理矢理なんとか仕上げる、つーのがいまのWeb案件の大概の末路の気がするんだけどそれはおいといて。 このseleniumを使えば、簡単な記述で人間が実際にブラウザを操作してテストしている部分の大半である画面遷移、フォームの入力、ヴァリデーションの正否がなどが行える。つまりインターフェイスの仕様が変わらなければ延々とテストし続けられるわけだ。最後の受け入れテストの

    webアプリケーションテストツール seleniumがヤバすぎる
  • prototype.js 1.4.0 pre6 でのJSONサポート - 2nd life (移転しました)

    http://dev.conio.net/repos/prototype/pkg/ JSONサポートしたよ!つってたので期待して見たらダメダメだった。 普通xmlhttprequest(xhr)のresponseTextで取得した文字列からJavaScriptで使えるオブジェクトにしたい場合、 eval('var result = ' + result.responseText); とやる必要があった。ここら辺をライブラリでラッピングしてくれてんのかなと思ってソースみたらevalJSONって関数が定義してあってキタコレ!と思ったら全然用途違ったよ! evalJSON: function() { var json = this.transport.getResponseHeader('X-JSON'), object; if (json) { try { object = eval(json

    prototype.js 1.4.0 pre6 でのJSONサポート - 2nd life (移転しました)
    se-mi
    se-mi 2005/09/28
    prototype.jsべんきょうしないとー