Code Archive Skip to content Google About Google Privacy Terms
Wizards of the Coast have taken the irradiated wilds of Fallout’s Wasteland and brought them…
Google Refine 2.0 http://code.google.com/p/google-refine/ Googleのデータクレンジングツール。ローカルwebサーバーで動作するアプリである。なぜローカルで動作するwebサーバにしているかというと、それには理由があるのだ。ほんと、ビックリ。 公開しているデータはタイトルやデータ形式がマチマチで、それを自分のところで統計解析するには、データレンジングをかなりやらなければいけなかった。そのためには、いままでgrepだとかfindだとかのコマンドやPythonスクリプトで半狂乱になって汚れ落としをしていたけれど、このGoogle Refineを使うとそういう問題がアホみたいに簡単に解決する。 例えば、カテゴリカルデータがセルに割り当てられているとする。記入者によってそれが略語だったりフルの名称だったりマチマチである。これを全て一つの文字
Created: Kazuki Ohta, 2006/06/14 Last Update: Kazuki Ohta, 2006/06/14 「write(2)の正しい使い方」と同じく、OS演習でやった事の延長線の記事を書いてみる。お題は「UNIX上で大規模ファイルを最速でコピーする方法」だ。一般的に、UNIXでファイルをcopyする際には以下のような方法が有る。 read -> write read -> write with posix_fadvice mmap -> mmap -> memcpy -> fsync mmap -> mmap -> memcpy -> fsync with madvise mmap -> write mmap -> write with madvise read, write, mmap辺りは良いとして、posix_fadviseというシステムコールが有
過去にもいろいろなブログで何度も取り上げられて話題になりましたが、自分なりの理解で書いてみました。Yコンビネータはシンプルでありながら、不思議で奥が深いので興味をそそる要素があるのでしょう。 JavaScriptも広い意味では関数型言語であり、λ計算とほぼ同等のものが表現できます。λ計算による再帰的関数定義で登場するYコンビネータのJavaScriptでの実装について簡単にメモしておきます。 唐突ですが、JavaScriptで再帰的階乗計算factは以下のように定義されます。 function fact(n) { return n == 0 ? 1 : n * fact(n - 1); } 関数オブジェクトを陽にあらわすと、これは var fact = function (n) { return n === 0 ? 1 : n * fact(n - 1); }; とほぼ同等です。しかし、関
この記事の目的は、Applicative 信者による Applicative スタイルの布教です。 簡潔に結論を述べると、 foo = do a <- m1 b <- m2 return (f a b) のようなコードを書きたくなったら foo = f <$> m1 <*> m2 と書きましょうということ。 合い言葉は、「do と return をなくせ!」です。 FunctorとMonadの間 Functor を特殊化した型クラスがMonadで、Monadの方が強力です。なぜなら、メソッドが増えるからです。 Functorのメソッドはfmapです。fmapの別名を (<$>) といいます。(この記事では、(<$>) と liftM を同一視します。) そして、Monadのメソッドは、ご存知の通り (>>=) と return です。 FunctorとMonadの間にApplicative
分散KVS kumofs のコードは、全体で約2万行です。 そのうち、ネットワークI/Oやプロトコルに関するコードは約1万行で、全体の約半分を占めています。 並列イベント駆動I/Oフレームワーク「mpio」リリース ネットワークアプリケーションを実装する上で、もっとも大きな障壁は、ネットワークI/Oとプロトコルです。 では、それが両方ともフレームワークでサポートされ、コードを書く必要が無くなったらどうでしょうか? 54行で簡単な分散KVSを実装したり、140行で分散リアルタイム検索エンジンを実装することができます。すなわち、インデックス作成サーバ、検索サーバ、DBサーバなど、多数のサーバが連携し、スケールアウトの恩恵を得ることができるネットワークアプリケーションを、1台のホスト上で動作する並列アプリケーションとほぼ同じように書くことができます。 実装上の問題から解放されれば、並列性や耐障害
work around a bug in musl w.r.t to O_SEARCH and use EIO_O_PATH instead, vertifying the semantics against the subset of O_PATH and O_SEARCH (based on a report by Steve Dondley). aio_copy now tries to preallocate the destination file. fexecve configure test used the wrong püointer type (patch by Paul Howarth).
動的型言語の特徴の一つに、配列に色々な型のデータを混ぜられる事があります。いわゆるダックタイピングというやつです。例えば Javascript では ["1", 2, 3.4] のような配列を作る事が出来ます。Haskell のような強い型付けのある言語でこれを実現する方法を勉強したので書きます。 目標として、配列の中にあるデータを文字列として連結する事にします。Javascript で言うと、 append = function (xs) { var result = xs[0]; for (var i = 1; i < xs.length; i++) result += xs[i]; return result; } のような関数 append を作ります。append(["1", 2, 3.4]) の答えは "123.4" になります。 代数データ型を使う Haskell では直接リ
Vmail is a Vim interface to Gmail. Why Vmail? Because some people are 1000 times more productive and happy in Vim than in any web browser or GUI program. Prerequisites a Gmail account a relatively recent version of Vim (Vmail is developed against Vim 7.3) Ruby 1.9.0 or higher with SSL support compiled in (Vmail is developed using Ruby 1.9.2) libsqlite3-dev and sqlite3 (try installing with apt-get,
Swinger Swinger is a couchapp for creating and showing Presentations. Think Keynote, stored in CouchDB, run via Javascript and Sammy.js. A free hosted version of the application lives at http://swinger.quirkey.com !NOTE! The codebase is currently in flux while I'm working out authentication stuff. Unfortunately, the CouchDB's new authentication features are slated for version 0.11 but only availab
こんにちは岡野原です。もう年末になりましたが、私の今年はこれからです。 wat-arrayというC++ライブラリを公開しました。 google code:wat-array wat-arrayはフリーソフトウェアであり、修正BSDライセンスに基づいて利用できます. wat-arrayはwavelet木と呼ばれるデータ構造を利用することにより、配列上の様々な処理を効率的に行うことができるC++ライブラリです。 例えば、 – 任意の連続した範囲内にある最大値 /最小値 / k番目に大きい値, またそれらの出現位置、頻度 – 任意の連続した範囲内にある指定した文字cの出現回数、c未満/より大きい文字の出現回数 – 任意の文字のi番目の出現位置 といったものを求めることが全て範囲長、入力長に対して定数時間で行うことができます。 例えば長さ10億、値の範囲が0から1000万であるような配列A中のA[
昨日の Grand Central Dispatchを使ったアプリ のアイコン画像取得処理ですが、この処理時間の大部分は Twitterサーバーとの通信時間です。しかもこの処理は複数を同時に動かしてもまったく問題がありません (Twitterのサーバーの負荷が上がるかな?)。 ということで、アイコン画像取得キュー(=スレッド)数を増やして実験してみました。 コードの変更はごくわずかで、 キュー用の変数を配列にする キューの生成、解放を複数個にする 画像取得の dispatch_async で複数のキューを使うように指定する です、実際に変更した部分の概要は以下です、ただし、処理時間測定用のコードも入っています。 GCDSampleViewController.h @interface GCDSampleViewController : UITableViewController <UITa
iPhoneでもiOS4以降サポートされたGrand Central Dispatchを使うと、マルチスレッドを使ったプログラムが簡単に作れます。WWDC 2010のビデオ(#206, #211) を見て何となく判った気になったのですが、まだクリアでない点があったので自分でコードを書いてみました。 私の理解では、Grand Central Dispatch(GCD)はには マルチプロセッサを有効に使える、並列プログラムを簡単に書ける 操作性を高める、並行処理を簡単に書ける の2つの目的があると思います。ここでは 2. に付いて書きます。 1.については Wikipediaの The second exampleが参考になると思います。 今回のサンプル ここでは、Twitterのpublic timelineを取得し、つぶやきとアイコンを表示するプログラムを、スレッドをまったく使わないコード
The goal of the userver project is to implement a relatively simple micro web server (userver) that is designed for conducting performance experiments related to Internet server and operating system design and implementation. The server implementation is controlled by a large number of command line options. Latest News Sorry we aren't very good at keeping this page up to date. January 30, 2011 Now
最近流行りのnode.js(と言っても、だいぶん前だが。)をandroidで動かそう。なんとnode.jsは、android1.6であるIS01でも動作した。しかし、そのためには、以下の手順が必要となる。 簡単な手順は以下の通りとなる。 IS01をroot化 qemuを使って、linux on arm 環境を構築 linux on arm 環境で、node.jsをビルド IS01にnode.jsのバイナリをコピー IS01をroot化 androidでnode.jsを動作させるためには、今回の手順では、root権限が必要になる。共有ライブラリを置くためにlibディレクトリを作成する必要があるためだ。 今回は、手っ取り早くroot化するために、MobileHackerz再起動日記: au IS01のroot権限を奪取する(ビルド番号01.00.09版)を使用する。 リンク先の手順に沿って、行
Mega338 merupakan slot deposit pulsa tanpa potongan menerima pulsa telkomsel,xl dan tri dengan minimal deposit hanya 10 ribu akses link alternatif anti-blokir Mega 338. Deposit pulsa tanpa potongan menjadi salah satu daya tarik utama Mega338 adalah kemudahan dalam melakukan transaksi deposit menggunakan pulsa tanpa potongan. Ini memberikan keuntungan bagi para pemain yang ingin menikmati permainan
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く