タグ kazuho
新着順 10 users 50 users 100 users 500 users 1000 users30秒でわかるオープンソースライセンスまとめ - kazuhoのメモ置き場
「よくわかるFOSSライセンスまとめなんてないよねー」と煽られたので3分で書く。代表的なライセンス改変部分のソースコードの開示が必要リンクして使う、他のソフトウェアのソースコード開示が必要GPL (コピーレフト型)○○LGPL /MPL (準コピーレフト型)○×BSDL / MITL (非コピーレフト型)××自作のソフトウェアをオープンソースで公開する場合、コピーレフト型にする場合は「GPLv2以... 続きを読む
「Linux-DBシステム構築/運用入門」がすごい - あなたのシステム、ガラパゴス化していませんか? - kazuhoのメモ置き場
松信さんがやってくれました。ずいぶん前からデータベースの「正しい」構築と運用方法についてまとめた本はないかなーと思ってました。自分はこれまで、様々なネットワークアプリケーションのプログラミングやデータベースの設計、チューニングを行ってきています*1が、問題が解決できたようには見えても、果たしてそれが最適な解決策だったのか不安に感じることがありました。それは、体系的な知識に欠けているからです。だから... 続きを読む
(特にMyISAMを使っていた)ウェブ屋さんがInnoDBを使う場合の設定項目 - kazuhoのメモ置き場
InnoDBはMyISAMと比較して安全(OSクラッシュや電源断が発生してもテーブルが壊れない)分、書き込みが遅い。データベース屋さんからすると、それは当然のことでMyISAMがおかしいんだ、ということになり、だからバッテリバックアップ機能のついたRAIDカードを使うんだ、という話になる。でも、MyISAMを使っているウェブ屋さんの現場では、場合によって多少データが消えてもかまわないから、安いハー... 続きを読む
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. ウェブ... 続きを読む
「今日使われているプログラミング言語の多くは、なぜ1990年前後に誕生したものなのか」に関する一考察 - kazuhoのメモ置き場
若い人たちは、「文字列型」があるプログラミング言語しか知らないかもしれない。だが、汎用的な文字列型が一般的になったのは、プログラミング言語の歴史の中でも比較的最近のことである。たとえば、1972年に誕生したC言語には文字列型がない。1980年代に良く使われていたPascalの文字列型は最大255文字しか格納できなかった。なぜか? それはメモリが貴重なリソースだったから。1980年代のPCの搭載メモ... 続きを読む
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... 続きを読む
node.js におけるエラー処理のコーディングパターン (もしくは非同期 JavaScript における例外処理) - kazuhoのメモ置き場
node.js を代表とする JavaScript を用いた非同期プログラミング環境においては、コーディングパターンのベストプラクティスが共有されておらず、結果として品質の低いコードが多くなるという問題があるように思います。そこで、特にエラー処理をどう書くべきか、既存のライブラリを使う方法を紹介してみることにしました。いきなりですが、ファイルの文字数を返す関数を作ることを考えてみます。Java だ... 続きを読む
テストファーストなGitワークフローについて - kazuhoのメモ置き場
Gitのワークフローに関する話題が、また盛り上がっているようなので、僕が好んで使っているGitワークフローについて書きます。対象となるソフトウェアは、GitHubやGitHub Enterprise等を使って開発されている、リリースブランチを切らずにmasterにリリースタグを打っていくだけで十分な程度の、ウェブサービス(の部品)やオープンソースプロジェクトです。まず、以下の2点を原則として考えて... 続きを読む
Mac OS Xで、再起動せずにスワップを解放する方法 - kazuhoのメモ置き場
Mac を使っていて、だんだん動きがもっさりしてきたなー*1と思って /private/var/vm/ 下を見ると、案の定スワップファイルが溜まっていることがある。こういうケースでの対策としては、・スワップ禁止にする、・/usr/sbin/purgeする、・再起動する、といった手があるけど、スワップ禁止にするのは本当にメモリ不足になる可能性を考えると怖いし、purgeはスワップアウトしたデータを回... 続きを読む
JSX はなぜ「速い」のか - kazuhoのメモ置き場
なぜ「速い」のか、について JSX 開発者の立場から。シューティングゲームで一番重たい処理は何か。言うまでもなく衝突判定。多数の弾や敵機の衝突判定を毎フレームごとに行う必要があり、この演算が重たい。JSX に同梱されている web/example/shooting.jsx には衝突判定のコードが複数あるが、一番重たいのは Bullet#update 関数で、その処理は以下のようになっている*1。 ... 続きを読む
ウェブアプリケーションサーバを複数台構成とか2010年代には流行らない - kazuhoのメモ置き場
タイトルは煽り入ってますが。仮に動的ページを生成するのにかかる時間が1秒、そのうちデータベースやmemcached等リモートサーバへの問い合わせ時間を除くいたCPUの処理時間が0.1秒とする。また、ピークのリクエスト処理量は、平均の2倍とする。そうすると、クアッドコアのアプリケーションサーバで処理できるリクエストは、4 core * 10 reqs/sec * 86,400 sec/day * 3... 続きを読む
2010年代には Apache の mpm_prefork とか流行らない (もしくは HTTP keep-alive のメリットとデメリット) - kazuhoのメモ置き場
HTTP の持続的接続の功罪についてはじめに、HTTP の持続的接続 (keep-alive) のメリットについて。持続的接続を使うメリットは、以下の2点。TCP 接続の確立にかかる時間の節約*1TCP の接続と切断に必要な資源 (CPUとネットワーク) の節約ウェブブラウザ〜データセンタ間の通信で、持続的接続を使う理由は、このうちの前者。特に太平洋を超えるようなケースだと、TCP 接続に0.2秒... 続きを読む
徳丸浩の日記: 処理開始後の例外処理では「サニタイズ」が有効な場合もある
このエントリでは、脆弱性対処における例外処理について、奥一穂氏(@kazuho)との会話から私が学んだことを共有いたします。セキュアプログラミングの心得として、異常が起これば直ちにプログラムを終了することが推奨される場合がありますが、必ずしもそうではないというのが結論です。 はじめに Webアプリケーションの脆弱性対策では、脆弱性が発生するのはデータを使うところであるので、データを使う際の適切なエ... 続きを読む
徳丸浩の日記: 処理開始後の例外処理では「サニタイズ」が有効な場合もある
2012年3月30日金曜日 処理開始後の例外処理では「サニタイズ」が有効な場合もある このエントリでは、脆弱性対処における例外処理について、奥一穂氏(@kazuho)との会話から私が学んだことを共有いたします。セキュアプログラミングの心得として、異常が起これば直ちにプログラムを終了することが推奨される場合がありますが、必ずしもそうではないというのが結論です。 はじめに Webアプリケーションの脆弱... 続きを読む
サーバサイドからクライアントサイドのJavaScriptを呼び出す際のベストプラクティス - kazuhoのメモ置き場
はてなブックマーク - JavaScript文字列のエスケープ あたりで盛り上がっていた件、僕も、そもそもそういうことはやめたがいい派ですが、一方で、 タグ内に動的生成したデータを埋め込むのは、それほど難しいことではないかと思います。というのは、元のエントリではエスケープ関数を自作していますが、実際はありもののエスケープ関数を組み合わせるだけで、タグ内に正しくエンコードされたデータを埋め込むことが... 続きを読む
mmapのほうがreadより速いという迷信について - kazuhoのメモ置き場
@ITに以下のような記事が出て、 今回からしばらくの間は、まったく逆の例、つまり使うとプログラムの処理性能が上がるというシステムコールを紹介していく。システムコールを呼ぶ回数は少ない方が処理性能は高くなるという原則は変わらないが、呼び出しておくと処理性能が向上するシステムコールというものが存在するのだ。こうしたシステムコールを使わないでいることは、とてももったいない。 今回紹介するシステムコールは... 続きを読む
Re: @kazuho: handlersocket plugin や mycached を使えば memcached は不要か、それとも使うべきケースがあるか。考察せよ [10点] - blog.nomadscafe.jp
handlersocket plugin や mycached を使えば memcached は不要か、それとも使うべきケースがあるか。考察せよ [10点] kazuho (Kazuho Oku) http://twitter.com/kazuho/status/21477219149 考えて答えてみる。 HandlerSocketやmycachedを利用し、MySQLへの接続数が数万単位で行える... 続きを読む
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... 続きを読む
Kazuho's Weblog: 海賊版サイトのブロッキングについてアンケートをとってみたら興味深い結果が出た
政府がISPに対し対し海賊版サイトのブロッキングを要請し、議論になっています。あなたは以下のどの対策が正しいと思いますか? — Kazuho Oku (@kazuho) April 25, 2018 832票もの回答をいただきました。ありがとうございます。結果をみて、いくつか感想を述べさせていただきたいと思います。 ▪️海賊版サイトに対し、なんらかの新たな対策が必要かどうかについて 83%の方々が... 続きを読む
C++ のヘッダファイルを #include するだけで使える GC 書いてみた - kazuhoのメモ置き場
そういえば C++ のヘッダファイルを #include するだけで使える GC を書きました。使い方は下のサンプルコードを見てもらえばいいとして、特徴としては、 ヘッダファイルを #include するだけで使えるC++ の標準機能だけを使っているのでポータブル*1 mark-and-sweep, precise GCってなあたりでしょうか。コードは kazuho/picogc ? GitHub... 続きを読む
巨大な 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 それコンパイル型言語なら許されるけどスクリプト型だとセキュリティホールと... 続きを読む
DRY(don't repeat yourself)するかしないか、その判断基準について - kazuhoのメモ置き場
「過剰なDRYが技術的負債を生む」みたいな内容の記事を書きたいが、うまく言語化できない。「過剰な食事制限が健康を損なう」程度の内容に成り下がりそうだけど、そんなんじゃないんだよ…@methane 実装におけるDRYみたいなものを考えていて、そうすると前者のDRYというのがどこに位置づけられるかはわからないんですが、とにかく暗黙知みたいなものを過剰に増やすDRYは良くないよね、というような話なんです... 続きを読む
Linux 上で5秒で chroot jail を使えるコマンド「jailing」が凄い! - blog.64p.org
https://github.com/kazuho/jailing/ kazuhoさんがやってくれました。 ずいぶん前からlinuxでchroot jailを作るのに簡単な方法ないかなーと思ってました。個人的にはsystemd-spawnというのを使ってたのですが、幾らか気に入らない所があったり構築に時間がかかったり、ディスク容量を消費していました。簡単に使えて、ディスク容量を消費しないやつがほし... 続きを読む