Home

ma38su.org

fatboy

  • 2008-10-27 (Mon)
  • Days
  • hatena count

夏前にエミレーツ航空でロンドンまで行ったら、なんかキャンペーン中だったらしくて、しかも3等当選したらしくて、30,000円まで、エミレーツのショッピングサイトで買い物していいよっていわれてました。棚からぼた餅。

結構悩ましかったものの、fatboyというオランダのおおきなクッションを選んでみました。はてなで過ごして、おっきなクッションがほしくなっていたというのもあって。

で、今日届きました。なぜか着払いで。1000円強なのでたいした額ではないですけど、そんな話は聞いていなかった。とりあえず、箱からして超でかい。箱から出しても超でかい。ただでさえ狭い部屋がもっと狭くなる。失敗だったかなぁと箱から出しながら、そんなことを考えていたのですが、実際使ってみると超快適です。テントみたいな生地のナイロンの袋に、発砲スチロールが入ってるだけのクッションですが、立てると椅子っぽくつかえて、寝かせるとベッドっぽくもなります。んー、ただ真剣に部屋のレイアウトを考えないと、今夜布団を敷く場所がありませんorz

ちなみにこのfatboy、日本国内で購入することは難しいみたいです。オランダのfatboyのオンラインショップをのぞいてみましたが、日本への発送はしてくれないみたいで、marimekko柄がかわいくていいなぁと思ったりしたんですけど、まれに物好きな業者が仕入れて楽天で売られているのを狙うしかなさそうです。

Double Array

高速なTrie実装として知られているDouble ArrayをRubyで実装してみた。インターンで実装したハッシュのTrieとの速度を比較してみるとおもしろそう。配列しか使ってないし、1byte単位で枝葉を構成していくので、メモリ効率は確実にいいと思うんだけど。まだ改良の余地はいろいろとありますが。

うまくコードが貼付けられない><

#!/usr/bin/ruby

class Trie
	def encode(char)
		l = 0
		u = @code.length - 1
		while (l  char
				u = m - 1
			elsif @code < char
				l = m + 1
			else
				return m + 1
			end
		end
		return -1
	end

	def initialize(file)
		@base = <1>
		@check = <0>
		@code = Array.new
		words = Array.new
		io = open(file)
		while line = io.gets
			line.chomp!
			words.push(line)
			line.each_byte {|c| @code = c }
		end
		io.close
		words.sort!
		@code.compact!
		_search(0, 0, words.length, 0, words)
	end

	def match(word)
		check = 0
		base = @base
		word.each_byte do |c|
			i = base + encode(c)
			if (@check != check)
				break
			end
			base = @base
			check = i
		end
		return @check == check
	end

	def _search(i, l, u, parent, words)
		stack = Array.new
		tmp = Array.new
		sons = Array.new
		j = l
		p = nil
		while j < u
			word = words
			if i  0)
			base = 0
			flag = 0
			begin
				base += 1
				tmp.each do |c|
					break if (@check != nil)
					flag += 1
				end
			end while flag != tmp.length
			tmp.each do |c|
				@base
 = base
				son = base + c
				@check = parent
				@base = - 1 if c == 0
				sons.push(son)
			end
		end
		stack.push(j)
		l = stack.shift
		if stack.length > 0
			i += 1
			(stack.length).times do
				u = stack.shift
				son = sons.shift
				_search(i, l, u, son, words)
				l = u
			end
		end
	end
end

構築部分にバグがありそうな感じです。

TeXのためのMakefile

Previewだと,pdfでもxdviと同じように一度開いたファイルを自動更新してくれるので,pdfまで変換してしまうのもありかと思ってTeXのためのMakefileを書いた.

追記
依存関係を抽出するdep.plを書いたので,普通はDOCとBIBを設定すれば使えると思う.

DOC     = paper    # メインのTeXファイル名(拡張子不要)
BIB     = ref.bib  # BibTeXファイル名(拡張子必須)
SOURECE = $(shell perl dep.pl $(DOC).tex)

LATEX   = platex
DVIPDFM = dvipdfmx
BIBTEX  = jbibtex
RM      = rm
.SUFFIXES: .tex .dvi .pdf

$(DOC).dvi: $(DOC).aux $(DOC).bbl $(SOURECE)
	$(LATEX) $(DOC)
	$(LATEX) $(DOC)

.dvi.pdf: $(DOC).dvi
	$(DVIPDFM) $<

$(DOC).aux: $(DOC).tex
	$(LATEX) $(DOC)

$(DOC).bbl: $(DOC).tex $(BIB)
	$(BIBTEX) $(DOC)

pdf: $(DOC).pdf

clean:
	$(RM) -f $(DOC).dvi $(DOC).toc $(DOC).aux $(DOC).blg $(DOC).bbl $(DOC).log $(DOC).pdf *~

dep.pl : 依存関係を抽出するためのスクリプト

use strict;
use warnings;

parse_tex($ARGV<0>);

sub parse_tex {
	my ($file) = @_;
	my $fp;
	open($fp, $file) or die "IOError: ". $file;
	while () {
		chomp;
		if (/^<^%>*<\\¥>includegraphics\*?(?:\<[^\[\>]+\])?\{(<^\{\}>+)\}/o) {
			printf("%s ", $1);
		} elsif (/^<^%>*\\input{(<^\{\}>+)}/) {
			my $texfile = sprintf("%s.tex ", $1);
			parse_tex($texfile);
			printf("%s ", $texfile);
		}
	}
	close($fp);
}

exit(0);

あんまり賢くないけど、これで大体の画像ファイルなんかの依存関係も把握できるんじゃないかな.

Google東京オフィスにお邪魔させてもらった。

先週月曜のデベロッパー交流会は、たまたま都合が合ったので参加したのだけど、そこで金曜日のGoogle Maps API Hackathonも人数的に余裕があると聞きつけて勢いで参加してきた。金曜日まで一部ネットカフェ難民してた。そんなわけで東京オフィスに御邪魔させていただいた。

ハッカソンは勢いだけに任せて参加してこともあって、不慣れなJavascriptが不安だったけどid:secondlifeさんの講義を受けたとこなのでjavascriptは結構なんとかなった。でもAPIもクラシックなとこしか使わなくて、Googleオフィスでコーディングさせてもらうっていうメリットを全然生かせてない、ちょっともったいなかった。

オフィスランチをいただいて、Google Tシャツとかもらった。オフィスを少しみせてもらって、アンドロイドフォンまで触らせてもらったよ。Googleのパメラさんとか参加者のひととカラオケに行ったり。(夜行バスの時間とか野都合で途中で抜けさせてもらったけど)

せっかくなので、ちょこっとはてなとグーグルについて比較してみる。Googleははてなっぽいと思った。逆なのかもしれないけど、はてなを先にみてるからそうなった。Googleは本当の意味でグローバルで、そこらへんは日本の会社とはだいぶ違うけど、あんまりベンチャーっぽさはないかもなぁと感じた(ベンチャーとかいう言葉でお茶を濁すけど)。オフィスはほんの少し見学させてもらっただけなので、ほとんど何も分からないけどね。

Google東京オフィスのランチはビッフェ的な感じで品数が多かった。id:r_kurainみたいに食べられないものが多い人にはいいかも。はてなはみんなでご飯みたいな感じがよかったけど、Googleは意外と普通の食堂という感じだったかな。ご飯は、どっちもすごく美味しかったけどね。イメージわかない人はZDNetとかの写真をみてください。

ひがやすを飲み会も少なかったけど、今回は学生が僕だけでしたよ。もうちょっといた方がねぇ。

第1回ひがやすを飲み会

  • 2008-10-09 (Thu)
  • Days
  • hatena count

予定合ったのでid:higayasuoさん主催の飲み会に行ってきた。最近いろいろと面白いほど予定が合うよ。合わせてるのもあるけど。

僕は名刺を持ってなかったりで、id:hyoshiokさんに怒られてた学生です。

手抜きだけど感想は簡単に箇条書きにしてしまう。

  • SIの人とオープンソースの人が多かった。
  • 技術的な話というよりマーケ的な話とか、戦略みたいな話が面白かった。
  • やっぱり、はてなとはだいぶ空気が違うなぁ。
  • まだGoogleの人達のほうが近い部分があったかも。(月曜日飲んだ)

確かに水曜日はノー残業デーの会社ということになってるような会社も多いのかもしれないけど、忙しいはずの社会人の人がたくさん来られてるのに、学生すげー少ないよ。もっと多いかと思ってたのに。

いろんな人と話せるのはやっぱり楽しいので、なかなか予定とかうまく合わないと行けないけど、機会を作ってまた行きたいです。ありがとうございました。> 皆様

Home

Return to page top