Mae向きなブログ

Mae向きな情報発信を続けていきたいと思います。

3ヶ月研修

正規表現の実現

学生時代、オートマトンとかNFAとかDFAとか習った記憶がありますが、全く身についていないので取り組んでみました。参考にしたのは、学生時代に買った『Cプログラマのためのアルゴリズムとデータ構造〈Part2〉 (SOFTBANK BOOKS)』です。本棚から引っ張り出し…

ナップサック問題

今日は、RubyのStructクラスの練習をかねてナップサック問題に取り組んでみました。品物の大きさと価値は、以下のようになっています。 品 物 0 1 2 3 4 大きさ 2 3 5 7 9 価 値 2 4 7 11 14 knapsack.rb Item = Struct.new(:weight, :value) def knapsack(i…

検索システム2

id:rahaema:20080623に引き続き、「転置インデックスによる検索システムを作ってみよう!」を参考に、学習。学習のポイントは、 QDBMの練習 Marshalの練習 です。index.rb require 'depot' num = 0 idx = Hash.new{|h, key| h[key] = [] } while line = gets…

Picnicクラス

トライステート社のPICNICをJavaで制御するPicnic.javaを http://www.geocities.jp/maehrm/picnic.html で公開しているのですが,getADC()について返り値がときどきおかしいとのご指摘と修正をいただきました。 public int getADC(String ch,byte wait){ byt…

検索システム

今日は、「転置インデックスによる検索システムを作ってみよう!」を参考に、学習。 http://chalow.net/2007-11-26-5.html 検索システムというと難しい印象がありましたが、上記サイトは簡単なサンプルで解説がされており非常に参考になりました。サンプルは…

JSONなど

同僚の先生方とJavaScriptについて学習しているので,今日は,JavaScriptに取り組んでみました。 『JavaScriptプログラミング入門 第2版』という本で学習しているのですが,その中にJSONについて書かれていたので,理解を深めるために,サンプルを作ってみま…

昨日の続き…

昨日に引き続き、「Javaでコンパイラの基礎を理解する*1」に取り組みました。svm1c.rb class Compiler IADD = 96 ISUB = 100 IMUL = 104 IDIV = 108 BIPUSH = 16 PRINT = -48 def compile(filename) scanner = Scanner.new(filename) tokenList = scanner.cr…

仮想スタックマシンの製作

今日は、「Javaでコンパイラの基礎を理解する*1」を読んでみました。 非常に簡単な例で解説されていて分かりやすいです。 読んだだけでは、身についているか怪しいので、Rubyで書いてみました。 今日は、仮想スタックマシンを作っただけです。svm1.rb class …

じっくり勉強

今まで、何種類かのプログラム言語について学んだ(身についてませんが)のですが、最近は、コンパイラとかに興味が湧いてきました。学生時代にも、習った覚えはあるのですが、当時は、「やらされる勉強」かつ「あんまり興味がない」ということで、ほとんど理…

mfcalc

http://d.hatena.ne.jp/rahaema/20080611 でつまずいていた http://www.mi.s.osakafu-u.ac.jp/~kada/course-kitami/j3_03/bison.pdf の「2.5 練習問題」(3)に再チャレンジ。 (3)初期化されていない変数について、値を書き込むのではなく、値を使おうとすると…

mod_ruby

mod_rubyをインストールしてみました。 Debianの/etc/apache2/のディレクトリ構成は整理されていて分かりやすいです。こんな感じで設定しました。/etc/apache2/mods-available/ruby.confを以下のように作成し、 <IfModule mod_ruby.c> RubyRequire apache/ruby-run <Location /home/*/public_html/cgi-bin> SetHandler ru</location></ifmodule>…

mfcalc

昨日に引き続き、bisonを学習。 http://www.mi.s.osakafu-u.ac.jp/~kada/course-kitami/j3_03/bison.pdf の「2.5 練習問題」をやってみました。(1),(2)は解けたのですが、 (3)初期化されていない変数について、値を書き込むのではなく、値を使おうとするとエ…

逆ポーランド記法電卓

今日は、趣を変えてbisonをやってみました。学生時代にやったことはあるのですが、すっかり忘れてしまっています。http://www.mi.s.osakafu-u.ac.jp/~kada/course-kitami/j3_03/bison.pdf を参考に、逆ポーランド記法電卓を作成しました。rpcalc.y /* 逆ポー…

mecab-ruby

mecab-rubyのインストール $ ruby extconf.rb $ make % sudo make installmecab-rubyの今日時点の最新バージョンは、0.97で、最初、これをインストールしようと思ったのですが、mecabのバージョンとそろえる必要があるみたいです。 mmasa@debian:~/$ mecab -…

課題研究の教材作成

午後からは、現在、生徒と取り組んでいる課題研究用の教材を作成。 http://www.atmarkit.co.jp/flinux/rensai/mysql07/mysql07c.html にRubyとMySQL版があったので、SQLite3用に変更しました。 sample1.rb #!/usr/bin/ruby -Ke # -*- coding: euc-jp -*- req…

拡張ライブラリ

昨日の続きです。 もう少し、Rubyの拡張ライブラリの作成の方法について知りたくなったので、以下を読んでいます。 http://i.loveruby.net/w/RubyExtensionProgrammingGuide.html

拡張ライブラリ作成練習

せっかく、PerlからC言語の関数を呼び出す方法が分かったので、同じようなことをRubyでもやってみました。参考にしたのは、以下のサイトです。 http://ruby.gfd-dennou.org/tutorial/ruby-ext/ prime.cを作成 long isprime(long lObj) { long j; for (j = 2;…

XS

「第3回 Apacheのアクセス・ログを解析する*1」という記事の8ページに「XSの利用方法」という面白い記事があった。XSを利用すると、C言語の関数を利用することができるそうですが、Prime_xsの作成手順が概略だけしか示してなかったので、自分で作成してみま…

Flash playerのインストール

せっかくの研修期間なので、Debian GNU/Linux("etch")をインストールして使っています。使い慣れたVine Linuxと違う部分があって、なかなか前へ進みませんが、徐々に慣れていこうと思います。さて、Firefoxでも立ち上げてと思ったのですが、Debianでは、icew…

3ヶ月研修のスタート

今日から職場を離れての3ヶ月研修が始まりました。今日は環境設定で終了。