タグ kazuho
人気順 5 users 10 users 50 users 500 users 1000 usersKazuho's Weblog: 海賊版サイトのブロッキングについてアンケートをとってみたら興味深い結果が出た
政府がISPに対し対し海賊版サイトのブロッキングを要請し、議論になっています。あなたは以下のどの対策が正しいと思いますか? — Kazuho Oku (@kazuho) April 25, 2018 832票もの回答をいただきました。ありがとうございます。結果をみて、いくつか感想を述べさせていただきたいと思います。 ▪️海賊版サイトに対し、なんらかの新たな対策が必要かどうかについて 83%の方々が... 続きを読む
Kazuho's Weblog: 雑なツイートをしてしまったばかりにrubyを高速化するはめになった俺たちは!
雑なツイートをしてしまったばかりにrubyを高速化するはめになった俺たちは! 逆に言うと、Rubyの文字列型の内部実装がropeになれば、freezeしてもしなくても変わらない速度が出るようになって、結局freezeする必要なんてなかったんやーで丸く収まるんじゃないの?と思いました #雑な感想— Kazuho Oku (@kazuho) October 6, 2015とツイートしたところ、処理系の... 続きを読む
Kazuho's Weblog: 雑なツイートをしてしまったばかりにrubyを高速化するはめになった俺たちは!
Thursday, October 8, 2015 雑なツイートをしてしまったばかりにrubyを高速化するはめになった俺たちは! 逆に言うと、Rubyの文字列型の内部実装がropeになれば、freezeしてもしなくても変わらない速度が出るようになって、結局freezeする必要なんてなかったんやーで丸く収まるんじゃないの?と思いました #雑な感想— Kazuho Oku (@kazuho) Octo... 続きを読む
HTTP/2時代のウェブサイト設計
Transcript of "HTTP/2時代のウェブサイト設計" 1. Copyright (C) 2015 DeNA Co.,Ltd. All Rights Reserved. HTTP/2時代のウェブサイト設計 DeNA Co., Ltd. Kazuho Oku 1 2. Copyright (C) 2015 DeNA Co.,Ltd. All Rights Reserved. ウェブ... 続きを読む
Linux 上で5秒で chroot jail を使えるコマンド「jailing」が凄い! - blog.64p.org
https://github.com/kazuho/jailing/ kazuhoさんがやってくれました。 ずいぶん前からlinuxでchroot jailを作るのに簡単な方法ないかなーと思ってました。個人的にはsystemd-spawnというのを使ってたのですが、幾らか気に入らない所があったり構築に時間がかかったり、ディスク容量を消費していました。簡単に使えて、ディスク容量を消費しないやつがほし... 続きを読む
DRY(don't repeat yourself)するかしないか、その判断基準について - kazuhoのメモ置き場
「過剰なDRYが技術的負債を生む」みたいな内容の記事を書きたいが、うまく言語化できない。「過剰な食事制限が健康を損なう」程度の内容に成り下がりそうだけど、そんなんじゃないんだよ…@methane 実装におけるDRYみたいなものを考えていて、そうすると前者のDRYというのがどこに位置づけられるかはわからないんですが、とにかく暗黙知みたいなものを過剰に増やすDRYは良くないよね、というような話なんです... 続きを読む
テストファーストなGitワークフローについて - kazuhoのメモ置き場
Gitのワークフローに関する話題が、また盛り上がっているようなので、僕が好んで使っているGitワークフローについて書きます。対象となるソフトウェアは、GitHubやGitHub Enterprise等を使って開発されている、リリースブランチを切らずにmasterにリリースタグを打っていくだけで十分な程度の、ウェブサービス(の部品)やオープンソースプロジェクトです。まず、以下の2点を原則として考えて... 続きを読む
WebSocket(RFC 6455)上で使用するプロトコル設計についての備忘録 - kazuhoのメモ置き場
一般論として、全二重の通信プロトコルを実装するにあたっては、いくつか注意すべき点があって、具体的には、到達確認と切断シーケンスについて定めておかないと、送達されたはずのメッセージがロストしていたり、切断タイミングによってエラーが発生*1したりする。具体例をあげると、たとえばTCP/IPにおいてshutdown(2)を用いずに、いきなりclose(2)を呼んでいると、read(2)やwrite(2)... 続きを読む
「今日使われているプログラミング言語の多くは、なぜ1990年前後に誕生したものなのか」に関する一考察 - kazuhoのメモ置き場
若い人たちは、「文字列型」があるプログラミング言語しか知らないかもしれない。だが、汎用的な文字列型が一般的になったのは、プログラミング言語の歴史の中でも比較的最近のことである。たとえば、1972年に誕生したC言語には文字列型がない。1980年代に良く使われていたPascalの文字列型は最大255文字しか格納できなかった。なぜか? それはメモリが貴重なリソースだったから。1980年代のPCの搭載メモ... 続きを読む
ソフトウェアのアップデートとウェブサービス運用における継続性リスクについて - kazuhoのメモ置き場
Webサービスのようなプロダクトについての議論について教えて下さい - delirious thoughts で呼ばれたような気がしてたけど放置してた。でも今日、express という node.js 上で動作するメジャーなウェブアプリケーションフレームワークを作っているチームが、次世代の製品に取り組み始めたと聞いたので、メモを以下に貼ります。 --------------------------... 続きを読む
パスワードをソルトつきハッシュ化してDBに保存するのがベストプラクティス…とは限らないという話 - kazuhoのメモ置き場
フレームワークの責務とセキュリティ - MugeSoの日記についての感想文です。世の中にはたくさんの通信プロトコルが存在し、中には、特定の条件でパスワードを含む文字列をハッシュ化した値を検証しなければならないものも含まれています。例えば、HTTP Digest認証の場合は、MD5("realm:user:password")を保存しておく必要がありますし、APOPの場合は生のパスワードを、CRAM... 続きを読む
サーバサイドからクライアントサイドのJavaScriptを呼び出す際のベストプラクティス - kazuhoのメモ置き場
はてなブックマーク - JavaScript文字列のエスケープ あたりで盛り上がっていた件、僕も、そもそもそういうことはやめたがいい派ですが、一方で、 タグ内に動的生成したデータを埋め込むのは、それほど難しいことではないかと思います。というのは、元のエントリではエスケープ関数を自作していますが、実際はありもののエスケープ関数を組み合わせるだけで、タグ内に正しくエンコードされたデータを埋め込むことが... 続きを読む
mmapのほうがreadより速いという迷信について - kazuhoのメモ置き場
@ITに以下のような記事が出て、 今回からしばらくの間は、まったく逆の例、つまり使うとプログラムの処理性能が上がるというシステムコールを紹介していく。システムコールを呼ぶ回数は少ない方が処理性能は高くなるという原則は変わらないが、呼び出しておくと処理性能が向上するシステムコールというものが存在するのだ。こうしたシステムコールを使わないでいることは、とてももったいない。 今回紹介するシステムコールは... 続きを読む
30秒でわかるオープンソースライセンスまとめ - kazuhoのメモ置き場
「よくわかるFOSSライセンスまとめなんてないよねー」と煽られたので3分で書く。代表的なライセンス改変部分のソースコードの開示が必要リンクして使う、他のソフトウェアのソースコード開示が必要GPL (コピーレフト型)○○LGPL /MPL (準コピーレフト型)○×BSDL / MITL (非コピーレフト型)××自作のソフトウェアをオープンソースで公開する場合、コピーレフト型にする場合は「GPLv2以... 続きを読む
MySQL用にランキング専用ストレージエンジンを作る話 - kazuhoのメモ置き場
前提: ゲームに限らずランキング機能が必要になるケースは多い つまり需要はある だが、MySQLで高速なランキング表示は難しい 具体的に言うと、以下の要件を満たすのが不可能 1行の更新コストが要素数Nに対して O(log N) 以下任意のランキング位置周辺のSELECTコストが O(log N) 以下 ならば、専用のストレージエンジンを作ればいいのではないかいつやるの? 今でしょ! 以下理由MyS... 続きを読む
巨大な bookmarklet を信頼できる形で配布する方法 - kazuhoのメモ置き場
Twitter で聞いてみたところ @hasegawayosuke さんいわく、Bookmarklet の文字数制限は最短だと約2,000文字らしいです。でも、その長さで bookmarklet を書くのって難しいですよね。かといって、別のサーバから JavaScript をダウンロードして実行するとなると、そのダウンロードされたスクリプトが安全か、という問題が出てきます。ならば、暗号学的ハッシュ... 続きを読む
なぜPHPでrequire("http://...")したらセキュリティホールなのに、Goならいいのか - kazuhoのメモ置き場
go言語なんか import "http://github.com/mattn/xxx " だったりする。rubyもそういうの面白いかもしれない。require "http://github.com/mattn/xxx "みたいな。Twitter / mattn_jp: go言語なんか import ...@mattn_jp それコンパイル型言語なら許されるけどスクリプト型だとセキュリティホールと... 続きを読む
LTSV のもうひとつのメリット、あるいは、プログラムでログを出力する際に気をつけるべきこと - kazuhoのメモ置き場
Labeled Tab-separated Values (LTSV) がブームのようです。LTSV については、ラベルをつけることで柔軟に拡張できるという点が、その特徴として取り上げられますが、もう一点、タブをセパレータに使うことでログのパースが簡単になった、という点を忘れるべきではないでしょう。特に httpd のログは NCSA httpd という HTTP/0.9 時代のWebサーバのログ... 続きを読む
Mac OS Xで、再起動せずにスワップを解放する方法 - kazuhoのメモ置き場
Mac を使っていて、だんだん動きがもっさりしてきたなー*1と思って /private/var/vm/ 下を見ると、案の定スワップファイルが溜まっていることがある。こういうケースでの対策としては、・スワップ禁止にする、・/usr/sbin/purgeする、・再起動する、といった手があるけど、スワップ禁止にするのは本当にメモリ不足になる可能性を考えると怖いし、purgeはスワップアウトしたデータを回... 続きを読む
Xcode を使わずに iOS 向けのコードをコンパイルする方法 - kazuhoのメモ置き場
# armv7 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Develo... 続きを読む
JavaScript(V8)で避けるべき(だった)クロージャの使い方 - kazuhoのメモ置き場
Grokking V8 closures for fun (and profit?) に、ほんの少しだけ触れられている話なんですが。ごく最近まで V8 には、オブジェクトリテラルの中で関数リテラルを使った場合に非常に遅くなる(というかGCが多発する)問題があった。たとえば、 function doit() { for (var i = 0; i < 1000; ++i) { for (var j ... 続きを読む
JSX はなぜ「速い」のか - kazuhoのメモ置き場
なぜ「速い」のか、について JSX 開発者の立場から。シューティングゲームで一番重たい処理は何か。言うまでもなく衝突判定。多数の弾や敵機の衝突判定を毎フレームごとに行う必要があり、この演算が重たい。JSX に同梱されている web/example/shooting.jsx には衝突判定のコードが複数あるが、一番重たいのは Bullet#update 関数で、その処理は以下のようになっている*1。 ... 続きを読む
node.js におけるエラー処理のコーディングパターン (もしくは非同期 JavaScript における例外処理) - kazuhoのメモ置き場
node.js を代表とする JavaScript を用いた非同期プログラミング環境においては、コーディングパターンのベストプラクティスが共有されておらず、結果として品質の低いコードが多くなるという問題があるように思います。そこで、特にエラー処理をどう書くべきか、既存のライブラリを使う方法を紹介してみることにしました。いきなりですが、ファイルの文字数を返す関数を作ることを考えてみます。Java だ... 続きを読む
徳丸浩の日記: 処理開始後の例外処理では「サニタイズ」が有効な場合もある
このエントリでは、脆弱性対処における例外処理について、奥一穂氏(@kazuho)との会話から私が学んだことを共有いたします。セキュアプログラミングの心得として、異常が起これば直ちにプログラムを終了することが推奨される場合がありますが、必ずしもそうではないというのが結論です。 はじめに Webアプリケーションの脆弱性対策では、脆弱性が発生するのはデータを使うところであるので、データを使う際の適切なエ... 続きを読む
徳丸浩の日記: 処理開始後の例外処理では「サニタイズ」が有効な場合もある
2012年3月30日金曜日 処理開始後の例外処理では「サニタイズ」が有効な場合もある このエントリでは、脆弱性対処における例外処理について、奥一穂氏(@kazuho)との会話から私が学んだことを共有いたします。セキュアプログラミングの心得として、異常が起これば直ちにプログラムを終了することが推奨される場合がありますが、必ずしもそうではないというのが結論です。 はじめに Webアプリケーションの脆弱... 続きを読む