2009-01-01から1年間の記事一覧

Luaを使う

Luaがおもしろそう。使う場面がないか考え中。

開発者の都合

Windows Update後の再起動を促すメッセージがしつこい。再起動にはそれなりに時間がかかるのに,「今すぐやれ」と何度も言ってくる。しかもポップアップで。こっちは手を止めたくないから,後でやるって言ってるのに。 自分の作るインターフェイスが,あんな…

子供の誕生日

誕生日プレゼントにと,絵本+ブロックをAmazonで注文。 ブロックはさんざん迷ってレゴの青バケツに決定。喜んでくれるといいのだけど。

実るほど頭を垂れる

今日は嫁実家の稲刈りをお手伝い。 体動かした後の風呂&ビール最高。

pomeraアクセサリー

こちらの記事を参考に,pomera用のケースと液晶保護シートを買おうと近所の家電量販店に行くも,記事の品が見つからず。 ところで,家電量販店ではpomera扱ってないのかな?

JGAS2009

JGAS2009@東京ビッグサイトに来ました。

pomera

pomeraがきました。 早速入力テスト。 キーピッチ、当然狭いけど、これは気にならない。 ストロークは浅め。意識しすぎると、たまに押し込めてないことがある。 スペースキーが若干左寄りなのが気になる。 慣れないうちは、これで議事録とかとるのは少しきつ…

pomera購入

KING JIMのpomera。前から欲しかったのですが,値段で二の足を踏んでいました。 今日,ふとAmazonでチェックしてみると,なんと41%OFF! 脊髄反射で注文してしまいました。届くのが楽しみ。

exifrを使ってデジカメの画像をリネーム

JPEGファイルのEXIF情報を取得するライブラリ「exifr」を使って,デジカメ画像のファイル名をリネームするスクリプトを書いてみました。 まずはexifrのインストール > gem install exifrスクリプト #!ruby -Ks $KCODE='s' require 'exifr' # Timeから新しい…

バイトオーダーについてメモ

KconvはBOMなしUTF16を既定でビッグエンディアン(BE)とみなします。 Windows(Intel)はリトルエンディアン(LE)なので,BOMなしUTF16(LE)のデータを読み込み,SJIS変換する場合は, str = "\xff\xfe" + str のようにLEのBOMを付加するか,Uconvを使って requir…

Rangeオブジェクト上の行(列)範囲指定

Rangeオブジェクト上の行(列)範囲を,「○行目〜△行目」「○列目〜△列目」で指定する関数です。 Function GetRowRange(rng As Range, b_r As Long, e_r As Long) As Range Set GetRowRange = rng.Worksheet.Range(rng.Rows(b_r), rng.Rows(e_r)) End Functio…

Rubyで『集合知プログラミング』(7)

第3章「グループを見つけ出す」 3.8 データを2次元で見る "clusters.rb"の続きです。 書籍のサンプルでは座標を配列で表現していましたが,今回は座標を表現するPointクラスを作成しました。 class Point def initialize(x = 0.0, y = 0.0); @x, @y = x, y; …

Rubyで『集合知プログラミング』(6)

第3章「グループを見つけ出す」 3.7 嗜好のクラスタ "clusters.rb"の続きです。 Zeboからのデータ取得は省略。データはこちらを使いました。 def tanimoto(clust1, clust2) c1 = c2 = shr = 0 clust1.vec.zip(clust2.vec) do |v1, v2| c1 += 1 if v1 != 0 c2…

HTMLで指定された属性のみ取得(IE)

IEでHTMLタグに直接指定されている属性のみを取得する <html> <head> <script type="text/javascript"> window.onload = function(){ var node = document.getElementById("img1"); var s = ""; for ( prop in node ){ var attr = node.getAttributeNode(prop); if ( attr && attr.specified ){ s += pro</head></html>…

時刻の丸め

時刻をそれ以前で直近の15分単位に丸める。 =INT(A1*24*4)/(24*4)[A1]に元の時刻を入力。例 時刻 丸め ---------- 1:00 1:00 1:10 1:00 1:20 1:15 1:30 1:30 1:40 1:30 1:50 1:45 2:00 2:00

Rubyで『集合知プログラミング』(5)

第3章「グループを見つけ出す」 3.6 K平均法によるクラスタリング "clusters.rb"の続きです。K平均法によりクラスタを求めるメソッドです。 def kcluster(rows, k=4, calc_distance=method(:pearson)) # それぞれのポイントの最小値と最大値を求める # == デ…

繰返し構造をグループ化

繰返しの構造をもつ次のようなXML <root> <title>title1</title> <div>div1-1</div> <div>div1-2</div> <title>title2</title> <div>div2-1</div> <div>div2-2</div> <div>div2-3</div> <title>title3</title> <div>div3-1</div> <div>div3-2</div> </root> を,繰返しの単位ごと(ここでは,<title>ノードごと)にグループ化 <root> <group> <title>title1</title>

createDocumentFragmentの使い方

<html> <head> <script type="text/javascript"> window.onload = function(){ var fragment = document.createDocumentFragment(); var spanNode = fragment.appendChild(document.createElement("span")); spanNode.appendChild(document.createTextNode("test")); document.getElementById("target").</head></html>…

nodeType定数(IE)

DOM nodeTypeの定数定義(IE用 FireFoxなどでは定義されている)HTMLのnodeTypeのみ if ( !window.Node ){ var Node = { ELEMENT_NODE: 1, ATTRIBUTE_NODE: 2, TEXT_NODE: 3, COMMENT_NODE: 8, DOCUMENT_NODE: 9, DOCUMENT_FRAGMENT_NODE: 11 }; }

Excel書式をHTMLタグに変換

Excelのセル内文字書式(上付き/下付き)をHTMLタグに変換するマクロ。 対象範囲を選択して実行 空白セルに当たると,そこで中止 変換が行われたセルはピンクに着色 Sub Macro1() Dim rng_all As Range, rng As Range Set rng_all = Application.Selection …

WSHのXMLでXPathを使う

XML

WSH/JScriptのDOMでXPathを使うには,SelectionLanguageを設定する。 var objXML = new ActiveXObject("MSXML.DOMDocument"); objXML.setProperty("SelectionLanguage", "XPath");

Rubyで『集合知プログラミング』(4)

第3章「グループを見つけ出す」 3.4 デンドログラムを描く "clusters.rb"の続きです。描画ライブラリにはcairoを使用します。cairoのインストールはgem i cairoで行いました。クラスタの高さを計算します。ここで言う「高さ」は,文字通り画像のy軸方向の高…

Rubyで『集合知プログラミング』(3)

第3章「グループを見つけ出す」 3.3 階層的クラスタリング "clusters.rb"を実装してみます。まずはread_file。 def read_file(filename) lines = nil open(filename) do |f| lines = f.readlines.map{|l| l.chomp.split(/\t/)} end # 最初の行は列タイトル c…

CppUnitの使い方

メインルーチン #include <cppunit/ui/text/TestRunner.h> #include <cppunit/TextOutputter.h> #include <cppunit/extensions/TestFactoryRegistry.h> int main(int argc, char* argv[]) { CppUnit::TextUi::TestRunner runner; runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() ); CppUnit::Outputter* …</cppunit/extensions/testfactoryregistry.h></cppunit/textoutputter.h></cppunit/ui/text/testrunner.h>

サンプリング

要素数未知の集合から1個を取り出す ユーザー入力など,要素数が未知の集合から,1要素をランダムに取り出す。(Ruby) selected = "" i = 0 while line = gets i += 1 selected = line if rand(i) == 0 end puts selected

サンプリング

n個の集合からm個を取り出す n要素の集合から,重複しないm要素をランダムに取り出す。 取り出された要素は,もとの集合と同じ並び。(C++) void sampling(int n, int m) { int select = m; int remain = n; for ( int i = 0; i < n; ++i ) { if ( (rand() % …

Rubyで『集合知プログラミング』(2)

第3章「グループを見つけ出す」 3.2 単語ベクトル "generatefeedvector.rb"を実装してみます。 RSSの解析にはRSS Parserを使います。RSSフィードのタイトルと,単語のカウントを返すメソッドから。 require 'rss' def get_word_counts(url) # RSSをParse rss…

Rubyで『集合知プログラミング』(1)

『集合知プログラミング』を読了しました。大変勉強になりました。 Pythonによる書籍内サンプルコードをRubyで書いてみたいと思います。 書籍掲載のサンプルコードはこちらの"Examples"からダウンロードできます。 第2章「推薦を行う」 "recommendations.rb"…

XSLTで複数のファイルを生成

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:redirect="org.apache.xalan.xslt.extensions.Redirect" extension-element-prefixes="redirect"> <xsl:output method="html" encoding="Shift_JIS"/> <xsl:template match="product"> …</xsl:template></xsl:output></xsl:stylesheet>

URL抽出

正規表現でURL抽出(Perl) while(<>){ my $Html = $_; while( $Html =~ m{<a\b([^>]+)>(.*?)</a>}ig) { my $Guts = $1; my $Link = $2; if ($Guts =~ m{ \b HREF \s* = \s* (?: "([^"]*)" | '([^']*)' | ([^'">\s]+) ) }xi) { my $Url = $+; if ($Url =~ m{^https?:}i){ p…