Kyoto Cabinet 1.2.2から加わったGrassDBは、オンメモリでページ管理を行うB+木を実装してメモリを節約しちゃう仕組みである。それを使ってJava、Python、Ruby、Perlなどのハッシュ(連想配列)機構を鬼のように省メモリにしてみる。頑張ればなんと20分の1になる。 前提 B木やその変種のB+木などは、キーの順序が近いレコード群を「ページ」という単位にまとめてシリアライズしてストレージに書き込むことで、入出力の頻度を減らして高速化することを意図している。メモリに比べて低速なストレージの上で大量のデータを管理するために使われる。多くのRDBMSやいくつかのDBMがB+木をサポートしているのはそれが理由であろう。一方で、メモリ上で検索可能なデータ構造を表現するためには、二分探索木やその特殊例である赤黒木が使われる。STLのstd::mapの実装にも赤黒木を使うのが一
Pythonは最強ですね。文法はチョー簡単、ライブラリも充実度がすごい、それでいてメタプログラミングができる。そのメタプログラミングを使うと末尾再帰最適化までできるそうです…おそろしやNew Tail Recursion Decorator «Python recipes « ActiveState Code class tail_recursive(object): def __init__(self, func): self.func = func self.firstcall = True self.CONTINUE = object() def __call__(self, *args, **kwd): if self.firstcall: func = self.func CONTINUE = self.CONTINUE self.firstcall = False try:
GAEにどんどん機能が追加されていく中、なかなか実装されないのが全文検索。品詞がとれるセグメンターだけでも提供してくれたら全然便利だと思うんだけどそんなアナウンスはまだ有りません。 なきゃ作ればいいじゃんという事で、全文検索もどきを実装してみました。ひとつ前のエントリー通りTriGramです。 以前、恵比寿のイケメン イアンさんと一緒に作ったmisopotetoというモジュールをベースにしています。 今回のポイントは、転置インデックスをredisサーバに送っているところ、GAE(とうかDB全般)は、インサートがめちゃくちゃ遅いので、Ngramでgram毎にエントリーIDをappendしていくというのは辛いです。Twitterの検索結果15個x100文字位をTriGramでインデックスを作ろうとすると、1500個くらいをgetしてappendして、putする必要があります。以前は、TaskQ

プログラムを書いているとき、コードの量がどんどん増えていって規模も内容も訳が分からなくなってしまうことを俗に「スパゲッティ」と言ったりしますが、まさにその状態を視覚化したインフォグラフィックです。ApacheやPythonなど著名なオープンソースソフトウェアについてのものばかりなので図を見て「あーやっぱり」と思うことがあるかもしれません。 これらはカリフォルニア大学デービス校の研究者、マイケル・オガワ氏が制作したもの。それぞれのラインは開発者、横軸は時間を表し、上下のラインが近いほど、関係の深いコードの開発を行っていることを示します。 また対応しているブラウザでは、それぞれのラインの上にカーソルを置くとハイライトされます。 以下、クリックすると元のサイズのSVG画像が表示されます。 Webサーバーのデファクトスタンダード、Apache。最初の2年間はほぼドキュメント作りに費やされ、なかなか

Python勉強し始めて一ヶ月くらいたったんで一度復習を兼ねてまとめてみようと思います。僕が今までPHPとかPerlとかJavaScriptを使っていて、Pythonはこうやるのかーとか、これは便利だなーと思ったところ、開発していてはまったところなどピックアップしてみました。 初めてのPythonを読んで初心者向け勉強会に参加した程度の知識です。とりあえず初めてのPythonがかなりいいのでこれ読むだけで大体基礎は習得できた気がします。基本的な文法の説明だけでなく、大事なことは何回も繰り返し書いてあったり、Pythonの思想などにも触れているのでなぜこういう実装になっているかということも理解できます。これオススメ。 尚、このエントリーではPythonのバージョンは2.5をベースにしてます(主にGoogleAppEngineで使ってるので)。間違えなどあったらツッコミお待ちしてます。 文法、
¶ Tornado is aPython web framework and asynchronousnetworking library, originally developed at FriendFeed. By using non-blockingnetwork I/O, Tornado can scale to tens of thousands of open connections, makingit ideal for long polling, WebSockets, and other applications that require a long-lived connection to each user. Quick links¶ Current version: 6.5.1 (download from PyPI, releasenotes) Sour
個人レベルの簡単なWebサイトであれば、レンタルサーバを借りてPHPのCMSを設置して…というのがこれまでのやり方だった。しかし既にそのようなレベルは脱している。Webサイトは無料で立てる時代になってきている。 カテゴリで区分けされたCMS それを叶えるのがGoogle App Engine(GAE)だ。GAE上で動くCMSを使えば無料でWebサイトを稼働できるようになる。 今回紹介するオープンソース・ソフトウェアはGD-cms、GAE Django CMSの略称を持つCMSだ。 GD-cmsはGoogle App Engine上に設置するのでデプロイが簡単にできる。現状ではテーマ機能などはないが、そうした情報はローカルで変更し、アップロードすれば良いだろう。 記事詳細 機能はカテゴリごとのコンテンツ管理、ゲストボード、リンク、広告管理となっている。指定した値がきた時にはリダイレクトさせる
Webブラウザ上で使えるプログラミング言語は限られたものだけだ。JavaScript、ActionScript、Javaアプレット、ActiveXなどだろうか。それ以外のRubyやPerl、Python、PHPといった言語はサーバサイドで使うしかなかった。HTMLのソース。確かにRubyだ。もちろん実行できる しかしその可能性が広がるかも知れない。HTMLにRubyやPython、そしてXAMLといった言語がそのまま書け、そして実行できるのだ。 今回紹介するオープンソース・ソフトウェアはGestalt、Webブラウザ上でRuby/Python/XAMLを実行可能にするライブラリだ。 種明かしをすれば、使っているのはSilverlightだ。Silverlightは言わずと知れたマイクロソフトの技術であり、.NET系だ。そしてGestaltはIronRubyやIronPythonといった.
すべてのMicrosoft 製品 GlobalMicrosoft 365 Teams CopilotWindows Surface Xbox セール 法人向け サポート ソフトウェアWindows アプリAI OneDriveOutlook SkypeOneNoteMicrosoft TeamsPC とデバイス Xbox を購入する アクセサリVR & 複合現実 エンタメ Xbox Game Pass Ultimate Xbox とゲームPCゲーム 法人向けMicrosoft CloudMicrosoftSecurity Azure Dynamics 365 一般法人向けMicrosoft 365Microsoft IndustryMicrosoft Power PlatformWindows 365 開発者 &ITMicrosoft 開発者 Mi
はてなブックマーク上でのイベントを他のWebアプリにHTTPで通知する、はてなブックマーク Web Hook。遅ればせながら、使ってみました。 (開発者さま向け)はてなブックマーク Web Hook 機能を公開しました -はてなブックマーク日記 - 機能変更、お知らせなどはてなブックマーク Web Hookとは -はてなキーワード naoyaの日記 - naoyaグループ あらかじめ、自作Webアプリ(CGIとか)のURLを登録しておきます。で、はてブしたときに、そのURLに情報をPOSTしてくれるわけですね。 すぐに思いつくのが、Twitterへの投稿。 はてブの Web Hook でTwitter を更新する -IT戦記 さすが、id:amachang。仕事がはやい。 私は、趣向を変えて、こんなのを作ってみました。Error 404 (Page not found)!!1
2009年03月21日06:30 カテゴリLightweight Languages Ajax - Lightweight Languages を実行するAPI 今度はPerlだけではありません。Perl だけではなく.... #!/usr/bin/perl warn time, "\n"; print ''.localtime;PHP も(誰だ、私がPHPを嫌いって言ってるのは:).... #!/usr/bin/php <?php echo date('r') ?>Python に... #!/usr/bin/python import datetime print datetime.datetime.now()Ruby に... #!/usr/bin/ruby puts Time.new Scheme (gauche) に... #!/usr/bin/gosh (use srf

LLEval is nowobsoleted by evalpark. As a matter of fact, llevaljust calls evalpark in the background. #!/usr/local/bin/perl use strict; use warnings; useYAML; use Data::Dumper; my $n=1; print "DATA[",$n++,"]:$_" for <DATA>; print Dumper(\%ENV); printYAML::Dump(\%INC); use Test::More 'no_plan'; is(1,1); is(1,0); __DATA__ use this instead of STDIN like this. What is This? An AJAX service which r
1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く