ドットインストール代表のライフハックブログ

※ 画像は一部公式サイトデモより Web2.0(?)の特徴はCGMや共有と言ったキーワードだ。サイト側から与えられるコンテンツではなく、ユーザが皆で協力してコンテンツを作り上げていく楽しさがある。ブックマーク、ニュース、コミュニティ…様々な要素がシェアされている。 そうした中、これもまた新しい共有の要素になるだろう。それはソースコードだ。 今回紹介するオープンソース・ソフトウェアはReview Board、ソースコードレビュー共有サービスだ。 Review Boardはリポジトリを登録し、そのDiffファイルを使ってReview Board上でソースをグラフィカルに表示する。そして差分に対して皆でコメントしていくのだ。ソースの一部分に対して的確にレビューできるので、分かりやすい。 SubversionやCVS、Perforce、Git、Mercurialのリポジトリに対応している。興味深い
みんな大好きなmemcached。今日はBrian AkerのC言語用クライエントライブラリについて書きたいと思います。日本語の情報がとても少なく、ドキュメンテーションも英語だけという事で興味はあるけど手をつけていないという方のお役に立てれたらなと思います。 本題の前に why libmemcached? 既にlibmemcacheが存在するのに何故、libmemcached?かと言うと理由の一つは最近libmemcacheの開発が止まったからです。本家ではそれが理由でlibmemcacheではなくlibmemcachedを推奨してますね。又、効率的なメモリ使用、Consistent Hashing、様々なハッシュアルゴリズム、新しいオペレータに対応している等という宣伝文句があります。apr_memcacheというライブラリも存在しますが自分は使った事がないためノーコメント。 ただ、推奨さ
Beautify Javascript /* paste in your own code and press Beautify button */ var latest_changes=new Object({'2008-02-22':'Javascript beautifier rewrite in javascript.','... boring history ...','2007-02-08':'Initial release'});var a=b?(c%d):e[f]; Beautify You can always fetch the latest version of the code from subversion repository at svn://edev.uk.to/beautify. If you're writing javascript, JSLint i
メソッドの種類が 533 と予想以上に多いのが驚きですが、最も多く使われているメソッドは「Get」のようです。取得する処理が頻繁にあるということですね。あとこれに日本語訳があればいいのですが、というよりそれが無いとあまり参考にならないので時間があるときにでも追加したいと思います。 今回調査した結果は、公開されている全てのクラスの公開されている全てのメソッド(Protected を含む)を対象にしました。アセンブリは System と名の付くものを全て含めています(やりすぎたかもしれません)。メソッドは先頭の単語のみ(Pascal 形式)を対象としています。このため一文字のメソッド名というおかしな結果もあります。オーバーロードされたメソッドは一つとしてカウントしています。 そして実際に結果を出力したコードがこれです。参考になるソースを見ながら作成したので、今回は C# です。 using S
ドキュメント順とは何か? ドキュメント順とは、簡単に言えば「XML のソース上の前にある順」のこと。 詳しくはこのへんを見てね。 XPath ではこの「ドキュメント順」という概念がよく登場する。 たとえば、ノードを文字列化するときは子孫テキストノードを「ドキュメント順」に文字列として連結しなければならない。とかとか でも、このドキュメント順へのソート 考えただけでもめちゃめちゃ重そうだ・・・。 いろいろ考えてみた。 XPath 実行中はドキュメント順が変わることがないので、DOM アクセスはキャッシュできる。 ノードの集合は木構造で保存したほうが比較回数が少なくてすむ(アルゴリズム初心者なので、実際に早いか検証しないと><) で、今回は DOM アクセスをキャッシュしながらノードを比較する関数を作る 汎用的に作ったので XPath 目的以外でも使えます。 var order = funct
「往年の名作「スーパーマリオブラザーズ」、あの濃い内容でわずか40キロバイト」に載っていたわずか565バイトのテトリス。文字数にして551文字。79文字*7行のプログラミングで、テトリスが動きます。 以下のソースコードをメモ帳に貼り付けて、htmlで保存すればテトリスが動きます。 <body onKeyDown=K=event.keyCode><script>X=[Z=[B=A=12]];h=e=K=t=P=0;function Y() {C=[d=K-38];c=0;for(i=4;i--*K;K-13?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/ A)*145)])p=B[i];!t|c+4?c-4?0:h+=d:B=C;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+B[i++]]=1 if(e=!e){if(f|B){fo
JavaScript で DOM をがしがしいじるのは大変だけど、でかいテンプレートエンジンを使うのはちょっと大げさだ、というときがある。そんなときに気軽に使えるテンプレートエンジンを作ってみた。 ソースは以下の通り。 function applyTemplate(template, f) { try { return template.replace(/#\{[^#{}]+}/g, function(s) { var v = f(s.slice(2, -1)); return v == null ? '' : v.toString().escapeHTML(); }); } catch (e) { return '[' + e.name + '] ' + e.message; } } 使い方は、 <div id="template" style="display:none"> <h2>#
MOONGIFTで紹介されていたJNEXTを使うとブラウザからソケット通信をする事ができます。これを使ってmemcachedにソケット通信するモジュールを作ってみました。 10/9 ソースをcodereposに移しました add,replaceが使えるようになりました(使ってる人なんかいるのかね?)。 cache_memcached.js サンプルコード 使い方 サーバ側 memcachedを起動させるだけです。CGIやスクリプトを置く必要はありません。 memcached -d -m -l 192.168.0.10 -p 11211 -u root クライアント側 JNEXTをインストールします。 インストールが完了したら、auth.txtを編集してJNEXTが実行できるURLとライブラリを追記します。 MSIE → C:\Program Files\Optimistec\JNEXT\A
Jettyのorg.mortbay.servlet.ProxyServletを使うと、リクエスト/レスポンスをそのまま中継するだけのプロキシサーバが簡単に動かせます。(Jetty 6.1.5で確認) 適当なWEBアプリケーションとして、 ProxyServletで全てのリクエストを受けるようにしておけばOKです。 ProxyServletでは、接続先に対してURLConnectionを使って接続し、リクエストの内容をコピー、そして受け取ったレスポンスをコピーして返却するような処理をしています。 ソースのコメントみると、「EXPERIMENTAL Proxy servlet.」となっているので、どこまでちゃんとプロキシとしての処理が実装されているのか不明ですが、私が使ってみた限りでは、特にエラーとなるようなことはありませんでした。 単に中継するだけのプロキシサーバでは使い道があまりなさそうで
Refactor :my => 'code' All Ruby PHP JavaScript ActionScript Java C C++ C# VB.NET Python Perl Lisp Erlang Bash Contoller refactoring Fastest way to get value of pi Exercise: Deaf Grandma Saving multiple models in one action Handling Keyboard Shortcuts in JavaScript How to extend a class properly? Object with Field names as resources How to DRY this up Easier way to do this? AJAX makeRequest Popular
Account Suspended This Account has been suspended. Contact your hosting provider for more information.
Changelog を英語で書く際に参考になるようなテンプレートをまとめてみました.git や svn のコミットログにも使えます. このエントリは今後も逐次更新を続けます(最終更新2018/11/01) リリースノートの英文についてはRelease note のための英文テンプレート集 - pyopyopyo - Linuxとかプログラミングの覚え書き -に分離しました git等のcommit メッセージにも使えます 以下,例文. バグ修正した場合 修正した場合 → fix を使うのが定番です Fixed a performance regression. (パフォーマンスが低下するバグを修正しました) Fix possible memory leak Fixed an issue where some devices would display the wrong image. (いく
Ajaxでぐりぐりやっていると、どうしてもJavaScriptからhtmlを生成する場面が多くなります。一つ一つdocument.createElementして気が狂いそうになったり、script.aculo.usのBuildler.nodeでDOM構築してみたはいいけど、面倒な部分をinnerHTMLで書いたらhtmlがエスケープされてもにょった、なんてことになりがちです。このままだと開発効率も保守性もひどいことになってしまいます。IEでJavaScriptがうまく動かなくて何とか修正した、と思ったらCSSのバグにブチ当たってDOM構成変更、なんてことをやっていると動いた頃には二度と見返したくないソースの出来上がり。JavaScriptコーディングとCSSの分業なんて夢のまた夢です。 そんな状況を打破するためにJemplateやJSmartyといったJavaScriptのテンプレートエン
G. Marsaglia. Xorshift RNGs. Journal of Statistical Software, 8(14) :1 6, 2003 http://www.jstatsoft.org/v08/i14/xorshift.pdf George Marsaglia 氏により 2003 年に考案された、xor とシフトを使うだけの超高速な擬似乱数生成器(Random Number Generator, RNG)です。周期は 2^k-1(k = 32, 64, 96, 128, 160, 192)。ランダム性のテストにも十分合格するとのこと。たとえば、周期が 2^128-1 の場合のルーチンは以下のようになり、乱数値の計算部分はわずか 1 行である。 unsigned long xor128(){ static unsigned long x=123456789,y
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く