その他のプログラミング

Haskellっぽいfizzbuzz書けた!

昨晩、突然ひらめいてHaskellでfizzbuzzを書いてみた。

fizzbuzz :: Integer -> Integer -> [String]
fizzbuzz x y | x > y           = []
             | (mod x 15) == 0 = "FizzBuzz" : fizzbuzz (x + 1) y
             | (mod x 3)  == 0 = "Fizz"     : fizzbuzz (x + 1) y
             | (mod x 5)  == 0 = "Buzz"     : fizzbuzz (x + 1) y
             | otherwise       = (show x)   : fizzbuzz (x + 1) y

codepadで実行

なんかすごくHaskellっぽいコードを書けたような気がするんだけどどうだろう?少なくとも、依然書いた↓のfizzbuzzよりは手続き色が抜けてるんじゃないかな?

続きを読む

XREAでMTOS (Movable Type Open Source)を導入してみた

XREAのサーバーにMovable Typeを導入するというのは何回もやってきたことなのだが、今回はSSHを使ってやってみた。シェルをほとんど使ったことがなかったから苦戦したが、以前よりもかなり早く導入できるようになった。

今までは、シェルを知らなかったから、↓のようなすごく非効率的なことをやっていた。

  1. MTOSのダウンロードページからZIPをダウンロードする。
  2. ZIPを展開
  3. FTPでアップロード (2000ファイル近くある上に、しばしば失敗する)
  4. ちまちまと権限を設定

今回はXREAのサーバーにSSHで接続してやってみた。

続きを読む

[Java] こういうときどうすればいいの?

例えば、数値を分数のまま四則演算する有理数クラスが↓のようになっていたとします。

public class Rational {

    private int numerator = 0;
    private int denominator = 1;

    public Rational(int numerator, int denominator) { ... }

    public Rational add(Rational x) { ... }
    public Rational subtract(Rational x) { ... }
    public Rational multiply(Rational x) { ... }
    public Rational divide(Rational x) { ... }

}

当然、このクラスを使う側では↓のようなコードを書くわけですね。

Rational add(Rational x, Rational y) {
    return x.add(y);
}

続きを読む

20年の眠りを醒ましてしまったようだ

コンパイラ関係の本を読んで勉強したくて、大学の図書館で探してみた。

とはいうものの、文系単科大学の図書館だからコンパイラ関係の本など探してもほとんどない。

やっとの思いで見つけたのが↓。

1981年刊行とのことだったが、とりあえず借りてみた。

↓貸出期限票を見たところ、俺は20年の眠りを醒ましてしまったらしい。

DATE DUE: '83.2.19 - '85.9.17 - '08.4.7

しかし、目次を見てみると、用語や内容は現在と大きくは変わらないっぽい。言語処理系の本は古い本ほど良いという話は本当だったんだな。

TeXで新しいフォントを使うためのバッチファイル

TeXでアームド・レモンというフォントを使えるようにするために使ったバッチファイルをメモ。アームド・レモンのTTFファイル(ArmedLemon.TTF)はC:\WINDOWS\Fontsにインストール済み。

@echo off

set FONT=ArmedLemon
set TEXDIR=C:\LaTeX

set FONTDIR=%TEXDIR%\share\texmf\fonts

copy "%FONTDIR%\tfm\ptex\jis.tfm" "%FONTDIR%\tfm\ptex\%FONT%.tfm"

cd "%FONTDIR%\vf\ptex"
"%TEXDIR%\bin\makejvf.exe" "%FONT%" "%FONT%"
move "%FONT%.tfm" "%FONTDIR%\tfm\dvips"

echo %FONT% H %FONT%.ttf>>"%FONTDIR%\map\dvipdfm\base\cid-x.map"

"%TEXDIR%\bin\mktexlsr.exe"

PDFで表示するだけならこれだけで充分っぽい。なぜこれで充分なのかはまだわかっていない。時間と余力があるときに解説エントリを書ければいいなと思っている。

LaTeX で多書体 --- 任意のフォントを扱う方法」というサイトを参考にした。

LaTeXで文系論文を書いてみる

以前、DocBookで文系論文を書いてみるというようなこと言っていたが、結局それは断念してしまった。FOPの日本語組版のレベルが低すぎて使い物にならない上に、DocBook XSLも基本的には英語圏向けであまり日本語環境に向いているとは言えなかったから。なので、結局はTeXを使ってレポートを書くことにした。今さらTeXというのも古臭い感じがして嫌なのだが、他に良い選択肢がないので仕方がない。

ということで、今度はWindows XP上にLaTeX環境を構築するにあたってのメモ書きを残しておこうと思う。

ちなみに、TeXに入門するまでの間に、86世代の人たちにだいぶお世話になった。この場を借りて感謝。

続きを読む

DocBookで文系論文を書いてみる 3日目

前回までで、一応XMLファイルをXSLを使ってPDFに変換できる環境まではできたと思う。だから今日は、DocBook文書をXSLを使ってPDFに変換してみる。

ということで、やるべきことは以下の2点

  • DocBook文書をXSL-FOに変換するためのXSLTを手に入れる
  • XSLTにパラメータを渡して、実際の出力をコントロールするためのXSLTを作成する

ということで、順番に説明していく。

続きを読む

DocBookで文系論文を書いてみる 2日目

前回は、Apache FOPを入れて、簡単なXML文書をPDFにするところまでで終わった。今日は日本語フォントを導入してみようと思う。

日本語ではここのサイトが非常に参考になるが、情報がやや古い。フォントに関しては、Apache FOPのサイトの「Apache FOP: Fonts」に詳しい情報が載っているので、これを参考にした。

導入したフォント

FOPでは、XML形式のFont Metricsファイルというものを用意しないといけない。FOPにはフォントファイルからFont Metricsファイルを生成するツールが同梱されているので、それを使ってfont metricsファイルを作成する。フォント形式はType1とTrueTypeに対応しているとのこと。

続きを読む

DocBookで文系論文を書いてみる 1日目

twitterで何を使って卒論を書こうかと考えていたときに、DocBookが候補にあがった。そこで、DocBookについてはほとんど何も知らないし、DocBookをPDF化する環境も整っていないけど、DocBookに挑戦してみることにした。

日本語でDocBookを使うのは相当面倒らしいけど、途中で心が折れないようにがんばろう。仮に、DocBookが駄目だったとしても、XML → XSL → PDFの変換環境を作ったり、本格的にXSLを勉強しておくのは悪いことではないと思うし。

ということで、がんばってみる。

続きを読む

[WScript][携帯]DoCoMo F902iSでバックアップしたスケジュール表をMS Outlookが読み込めるように変換

DoCoMo F902iSからminiSDにバックアップしたvCalendar形式のスケジュール表を、MS Outlook 2003でインポートしようとしたら失敗した。

なぜか、BEGIN:VCALENDARというキーワードとEND:VCALENDARというキーワードを余計にネストしたり、SUMMARYDESCRIPTIONを逆にしたりしているのが原因っぽい。

ということで、F902iSのvCalendarを変換してOutlookで読み込めるようにするWScriptを書いたので、メモがわりにエントリー化。詳しいことは時間と気力があるときにエントリー化したい。

おそらく、F902iS以外では使うことがないと思うが、もし他の機種でも動くようであれば、コメント欄などで教えてくれるとありがたい。

続きを読む