はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
先日言及した Burrows Wheeler Transform (id:naoya:20081016:1224173077) による変換後のテキストは圧縮に使えたり、全文索引に利用できたりと応用範囲は広いです。 BWT により変換したテキストを圧縮するには、そのまま圧縮するのではなく先頭移動法 (Move-To-Front http://ja.wikipedia.org/wiki/Move_To_Front) を適用することでより情報に偏りを持たせてから圧縮するのがセオリーです。 今日は先頭移動法の Perl 実装を作ってみました。Algoritm::MTF です。 http://github.com/naoya/perl-algorithm-mtf/tree/master に置いています。 use Algorithm::MTF; my $encoder = Algorithm::MTF
前回と前々回では、主にバリデーション処理を解説しました。そのなかで、Struts 2でのバリデーション処理は、Actionメソッドが呼び出される前に自動的に実行されると説明しました。 じつは、自動的に実行される処理こそがインターセプターで、バリデーションもインターセプターの一つなのです。 インターセプターとは アメリカンフットボールの用語に、「インターセプト」があります。パスしたボールが守備側に横取りされることをいうのですが、Struts 2のインターセプターも、アメフトと同じようなイメージです。Actionメソッドが呼び出される前に、複数のインターセプターが割り込み、制御を横取りして実行されます。 図中の、ActionProxy、ActionInvocation、Resultは、Struts 2の核となるオブジェクトです。Servletコンテナからのリクエストがあると、(図ではActio
準備 ダウンロード http://www.ubuntu.com/getubuntu/download Ubuntu 8.04 LTS Server Edition 64bit AMD and Intel computers (64 bit マシンなので) で、ダウンロード CD を焼く ディスクユーティリティとかで インストール CD を入れてブート Language 「日本語」を選択 Ubuntu ロゴが表示される 「Install Ubuntu Server」 ちょっと待つ(数十秒) Ubuntu インストーラメニュー 「Alt+Shift」を選択 ちょっと待つ(数十秒) ホスト名 amachang(適当に) ディスクのパーティショニング 「ガイド - ディスク全体を使う」を選択 「はい」を選択 けっこう待つ(数分) ユーザーとパスワードのセットアップ 名前を入力 ユーザ名を入力 パス
はじめに サムネイルサーバーのようなサービスを作るときには、ウェブサーバー上にブラウザを乗せる必要があります。 問題 ただ、そういった用途でブラウザを使う場合。 JavaScript が無限ループに落ち入らないように配慮する必要があります。 ほとんどの場合は、 JavaScript 自体をオフにすることが多いのですが JavaScript を実行したいような場合もあるでしょう。 解決方法 今回は、 WebKit でその解決方法を紹介します。 1. まず WebKit のソースコードを取得する svn co http://svn.webkit.org/repository/webkit/trunk WebKit 2. 次に、タイマーの時間を短くする WebCore/bindings/js/JSDOMWindowBase.cpp を編集 JSDOMWindowBase::JSDOMWindow
JavaScript はどのように実行されるか Safari*1 の実装を例に JavaScript はどのようにして実行されているかを書く。自分用のメモ。日本語の出来は気にしない 1. ブラウザを起動して以下のようなページを開いたとする <html> <head> <script> var a = 1; var b = 2; alert(a + b); </script> </head> <body> </body> </html> 2. インターネットからデータが到着する そうすると WebCore::FrameLoader::write という関数に生の文字列が渡される。型は char* だ。 http://trac.webkit.org/browser/trunk/WebCore/loader/FrameLoader.cpp#L990 この関数の中では、到着した文字の文字コードを解
第 9 章 cscope: 対話的な C プログラムの検査 cscope は、C、lex、または yacc のソースファイル内のコードの特定の要素を探し出す対話型プログラムです。cscope ブラウザを使用すると、従来のエディタよりも効率的にソースファイルを検索、編集できます。これは、cscope が関数呼び出し (関数がいつ呼び出され、いつその関数を実行するか) についてと、C 言語の識別子と予約語を理解しているためです。本章は cscope ブラウザについて説明します。 この章は、このリリースに付属している cscope ブラウザの使い方を学ぶための資料として利用できます。説明項目は次のとおりです。 「cscope プロセス」 「基本的な使用方法」 「不明な端末タイプのエラー」 cscope プロセス cscope は、C、lex、yacc のソースファイルを読み取り、ファイル内の関
はじめに 「新はてなブックマーク」になったということで、とっても便利になったのですが、ブックマーク一覧ページ*1が若干 JavaScript に時間が掛かっているみたいです。 というわけで 調査してみたいと思います。調査して、改善できそうなところは後で纏めて「はてなアイデア」にでも登録しようと思います。 この日記は調査しながら、過程を書いていくつもりです。 準備 まずは、人のサイトの JavaScript を書き換えて試してみるための環境を作ります。 作業用ディレクトリを作る とりあえず、ホームに HatenaJS というディレクトリを作ります。 $ mkdir HatenaJS $ cd HatenaJS CocProxy をダウンロードしてくる 以下から CocProxy というツールをダウンロードしてきます。 http://coderepos.org/share/wiki/CocPr
CocProxy めんどくさいことしない置換プロキシー 使い方 http://svn.coderepos.org/share/lang/ruby/cocproxy/proxy.rb をダウンロード `files' というディレクトリをつくる 置換したいファイルをてきとうにつっこむ ruby proxy.rb ポートとか表示されるのでブラウザの設定を変える デフォルトだと、 #{File.basename(req.path_info)}", #{req.host}#{req.path_info}", #{req.host}/#{File.basename(req.path_info)}", .#{req.path_info}", がスキャンされ、ヒットしたら置換されます。 例えば、http://example.com/test/foo/bar.css にアクセスすると files/bar.c
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く