2008-10-23

英辞郎を Linux デスクトップで

Windows では PDIC で、MacOSX では英辞郎ビューアでお世話になっている英辞郎。

伝統的には Un*x で辞書っつったら EPWING 形式なんじゃねーかなぁと思うんだけど、以前一度だけ FreeBSD 上で英辞郎を EPWING で利用できるように変換しようとして挫折した思い出があって、もしかしたらついに英辞郎を諦めなきゃダメかもなぁと考えていた。でも EPWING にこだわらなければ方法はあった。

の二つ。rdic は Ruby で書かれていて、おぉと思ったけど Ubuntu パッケージになっていなかったので今回は sdic の方を使うことにした。Emacs ユーザーじゃなきゃわざわざ辞書のために Emacs を立ち上げようとは思わないけどね。

インストールは他のアプリと同様 aptitude でできるんだけど、このときいきなり CD-ROM 上に英辞郎の辞書があることを前提に、sdic で利用する suffix array の構築に取りかかろうとする。辞書の取り込み用の UI はないのかな?と思ったけど、まぁ取り込もうとしているパスは分かるので、そのディレクトリを作ってご所望通りに辞書データを置いてから aptitude を叩いてインストールした。

機械が遅くて suffix array の構築にものすごく時間が掛かったけど、実際に辞書を引く動作自体は比較的軽い。これでかなり快適になった。やっぱインターネット越しにしか辞書がないなんて考えられない。もっと速く引けないと。

Wedata のお勉強

以前から名前だけは知っていたけれどイマイチ実体のつかめないというか、イメージをつかめないでいた Wedata について調べてみた。

結論から言うと下のリンク先を読め。以上。

さすがにあんまりなので自分の言葉で簡単にまとめ直すと、

  • データベースとアイテムという単位があり、これは一般的な RDBMS で言うところのテーブルとレコード(名前がついている)のようなものに相当する
  • 読むのは自由、書くには OpenID での認証が必要
  • アイテムに key と value の組み合わせからなるデータを保存できる。ここは DBM 風。
  • ブラウザからも API からもこれらを CRUD できる

で、このアイテムの key と value の組み合わせに自分なりのルールを作って API から叩くと、Web 上にデータベースがあるように使えるというもの。それが Wedata、のはず。

ただデータベースと書くのは語弊があって、API からは内容で検索とかはできない。あくまでデータベースの一覧やアイテムの一覧が取得できるだけ。Web 上ではデータベースの description で検索したりアイテムの名前で検索とかできるけど、これも API ではできないんじゃないかなぁ。やってみてないけど。で、検索なんかは結局ローカルというかクライアント側で実装する必要がある。

Wedata はもともと AutoPagerize という Firefox extension で利用する情報を Web 上に保存する目的で Wiki の代わりに作られている。Wiki には基本的に Wiki 記法以外に構造を表す手段がなく、この構造も文書に特化している。自分も Wiki は好きで比較的なんでも Wiki にすればいいじゃんと思ってしまうが Wiki は Wiki で不便だよなぁとも思っていた。それがこの構造の部分。Wedata はそこをうまいこと DBM 風にして解決しようとする試みなのだな、きっと。

About

例によって個人のなんちゃらです

Recent Posts

Categories

Tool 日々 Web Biz Net Apple MS ことば News Unix howto Food PHP Movie Edu Community Book Security Text TV Perl Ruby Music Pdoc 生き方 RDoc ViewCVS CVS Rsync Disk Mail FreeBSD Cygwin PDF Photo Zebedee Debian OSX Comic Cron Sysadmin Font Analog iCal Sunbird DNS Linux Wiki Emacs Thunderbird Sitecopy Terminal Drawing tDiary AppleScript Life Money Omni PukiWiki Xen XREA Zsh Screen CASL Firefox Fink zsh haXe Ecmascript PATH_INFO SQLite PEAR Lighttpd FastCGI Subversion au prototype.js jsUnit Apache Trac Template Java Rhino Mochikit Feed Bloglines CSS del.icio.us SBS qwikWeb gettext Ajax JSDoc Rails HTML CHM EPWING NDTP EB IE CLI ck ThinkPad Toy WSH RFC readline rlwrap ImageMagick epeg Frenzy sysprep Ubuntu MeCab DTP ERD DBMS eclipse Eclipse Awk RD Diigo XAMPP RubyGems PHPDoc iCab DOM YAML Camino Geekmonkey w3m Scheme Gauche Lisp JSAN Google VMware DSL SLAX Safari Markdown Textile IRC Jabber Fastladder MacPorts LLSpirit CPAN Mozilla Twitter OpenFL Rswatch ITS NTP GUI Pragger Yapra XML Mobile Git Study JSON VirtualBox Samba Pear Growl Mercurial Rack Capistrano Rake Win RSS Mechanize Sitemaps Android JavaScript Python RTM OOo iPod Yahoo Unicode Github iTunes God SBM friendfeed Friendfeed HokuUn Sinatra TDD Test Project Evernote iPad Geohash Location Map Search Simplenote Image WebKit RSpec Phone CSV WiMAX USB Chrome RubyKaigi RubyKaigi2011 Space CoffeeScript Nokogiri Hpricot Rubygems jQuery Node GTD CI UX Design VCS Kanazawa.rb Kindle Amazon Agile Vagrant Chef Windows Composer Dotenv PaaS Itamae SaaS Docker Swagger Grape WebAPI Microservices OmniAuth HTTP 分析基盤 CDN Terraform IaaS HCL Webpack Vue.js BigQuery Middleman CMS AWS PNG Laravel Selenium OAuth OpenAPI GitHub UML GCP TypeScript SQL Hanami Document SVG AsciiDoc Pandoc DocBook Develop Jekyll macOS Node.js Vite Heroku Transformer AI Data Cloud Wasm