Computerカテゴリの記事
HDL-AAX2 シャットダウンスクリプト
自宅NASのIO-DATA HDL-AAX2ですが、リモートでシャットダウンする必要があり、方法を検討しました。少し古い機種のHDL2-Aのシャットダウンスクリプトが見つかったのですが、それをそのまま適用することはできなかったので、少し改造して使うことにしました。
出来上がったのが以下のRubyスクリプトです。
mechanizeというwebの自動巡回を可能とするgem(クローラ)を使うことで実現しています。少し古いRuby(< 2.6.0)でも簡潔に書けるよう、Kernel#thenがない場合に備えて自己定義しています(古いRubyに最新の機能を入れ込むbackports gemのKernel#yield_selfのコードを参考にしました)。
曜日を求める(8bit範囲で)
マイコンを使って年月日から曜日を求めたいケースがありました。普通の環境ならC言語を前提とすれば<time.h>にあるmktime関数とlocaltime関数を使うことで実現できます。
裏では曜日を求めるアルゴリズム(色々あります)のどれかを使って求めていると思います。
今回は対象がマイコンということもあり、機能を限定することでコンパクトなアルゴリズムに改変してみました。
sakamoto's methodを元にしました。日時範囲はGPS時刻を前提とすることで1980年以降とし、また2099年まで使えればよい割り切りをしています。すると、うるう年の計算が100で割り切れて400で割り切れない年を考慮する必要がなくなり、簡略化されました。また型を最小のunsigned charで統一してみました。
検証はRubyのRspecでやってみています。
上記CコードとRubyでのDate#wdayとの一致を見ています。なおテストの実装にあたっては、RubyInlineを使ってRubyの中でC言語コードを直接扱ってみました。
HDL-AAX2の修理
自宅NASのIO-DATA HDL-AAX2から少し異音がしていたので確認してみたところ、ファンから異音が出ていました。そこで修理をしてみることにしました。
元々ついていたファンはSunonのHA40101V4-1Q01C-F99というファンでした。残念ながら全く同じ型番のファンを見つけることができませんでしたが、DC12Vで40mm角の10mm厚、回転パルス出力付きのものであれば交換可能だろうということで、違うものに変えてみました。選んだのはAINEX CFY-40SAです。
ぴったりはまりました。コネクタだけは加工する必要があって、秋月電子や千石電商などで買えるJST XHシリーズの3ピンコネクタ(ハウジング:XHP-3, コンタクト:SXH-001T-P0.6)に付け替えています。
ExcelでMarkdownの表を編集
先日boost::math::distributionsのRuby gemを公開しましたが、その時にboostのバージョンによって含まれている分布の違いの一覧表を作りました。Markdownで作ったのですが、編集は元情報のExcelでやって、そこに便利なExcelアドインCopyToMarkdownAddInでMarkdownの表形式にコピペ(エクスポート)をしていました。逆コピペ(Excelにインポート)もできる優れものです。便利なツールがあって助かりました。
またハイパーリンクを付けても機能するようにしたかっので、少し改修して使いました。現在PRしたので、もしかしたらそのうちまーどされるかもしれません。
Rubyで確率分布の性質を求めるgem
Rubyで確率分布の性質、例えば標準偏差が1、平均が0の正規分布において50%点はどこかというと0、といったことを求められるようにgemを作ってみました。boost_distributionsというgemで、名前が示す通りC++の標準的なライブラリであるboostの1パッケージとして確率分布を扱っているboost::math::distributionsを呼び出せるようにしてみました。
Githubのレポジトリでコードを公開しています。インストール方法(gemの前にboost本体のインストールが必要)や、使い方概要もそちらご参照ください。
実は2020年に書いていたコードがようやくgem化された形になります。gem化するにあたって、一緒にコンパイルするboostのバージョン依存性を吸収するなどの細工(ラッパーC++コードを生成するためのswigインターフェイスファイル BoostDistributions.i参照)をしています。
Windowsのcygwin/MSYS2/RでSSL証明書問題の解消
ネットワークの制限の関係で、中間者傍受を許容する設定での運用になっていたとします。そこでのWindowsの設定は、いわゆるオレオレ証明書を『信頼されたルート証明機関』に配置をすることになります。Win
boost::math::distributions
boost::math::distributions便利ですね。いろいろな確率分布があります。Rubyから使えるようにしたかったので、SWIGでラップしてみました。 Rubyからだと requ
E-MailRelay本体更新(ver 2.0)に伴う対応
随分昔の話ですが、E-MailRelayというSMTP Proxyを使って、自前のメールアドレスフィルタを作ったことがありました。随分更新をさぼっていて最近最新のものに置き換えてみたついでに、昔のスク
RinRuby (Ruby gem for R)
プログラミング言語Rubyと統計に強いRをブリッジさせるRuby gemのRinRubyというものがあるのですが、ここ数か月でかなり手を入れさせてもらいました。github上でコードが公開されているの
RSpecでのexample間共用のインスタンス生成
Rubyのコードをいじっていて、とうとうRSpec(テスト)を書く羽目になったのですが、そこでのメモです。 テスト対象になるインスタンスが、ソケットを生成していろいろ下準備をしてはじめて使えるようにな
GPD Pocketに増設したストレージの速度
前回の記事でGPD PocketにUSBハブ、MicroSDリーダ、MicroSDを改造で仕込んでみたことを書きましたが、速度を確認してみました。USB 2.0接続なので、遅いだろうなー、と予期してい
MacOSX 10.5.8 に clamav
かなり古いMac mini (2007年のCore 2 Duo)のメンテをして、ウイルス対策をほどこすことにしました。といってもMac mini自体のウイルス対策をするというよりは、プロキシと組み合わ
ThinkPad X40 BIOS電池の交換
軽いデモをするときに使っているノートPC ThinkPad X40のBIOSの電池(FRU 92P1004)が切れてしまったので、交換しました。ネットを探ると、コネクタがついていて差し替えるだけで交換
require 'win32ole' で終了コードが0xc0000005 (対処療法)
前回の記事でE-MailRelayを使ったメールアドレスの送信直前チェック方法を書きましたが、一部の環境でエラーがでることがわかりました。チェックするRubyスクリプトの終了コードがアドレスチェックに
E-MailRelayでメール送信中にアドレス確認
最近ボケてきていて、ついうっかりメールを誤送信してしまうことがありました。そんなボケ予防ツールを導入してみました、というお話です。メールアドレスが完全に送信される前にメールアドレスを再チェックする体制
モバイルサイトへの自動転送 mod_rewrite
ブログを久しぶりにメンテして、モバイル向けサイトを作ってみました。デバイスの画面サイズ等に応じてデザインが調整されるレスポンシブルデザインとなっています。 構築にあたってはこのブログのContent
『有効なWin32アプリケーションではありません』に対処
先日MFT2014というイベントがありまして、多くの方にあらちょっとすごいロガー、もうちょっとすごいロガー、ちょっとすごいロガーをお披露目させていただきました。その節はありがとうございます。実は展示開
eclipse egitでgithub clone元fetch
githubで公開されているコードをcloneして、追加的な実装をしているのですが、clone元が更新された場合、それをどうやってclone後の自分のリポジトリに反映すればよいのか、試行錯誤をしていま
eclipse egitでgithubパスワードの再設定
最近バージョン管理システムとしてgitを使うようになり、githubでコードを公開するようになりました。その中で起きたトラブルの対処方法をメモとして残しておきたいと思います。 トラブルが起きたのはe
TeXで往復はがき(横書、枠付)
必要に迫られて往復はがき(横書、枠付)を作っていました。せっかくなのでTeXのテンプレートを公開します。枠はFrame Designさんからお借りしました。イラストレータai形式で配布されていたものを
Xperia Active ST17i を買ったよ!
最近のマイブームはAndroidのアプリを作ることなのですが、それのデバッグ用に端末を一台購入しました。Sony EricssonのXperia Active (ST17i) という国内未発売のモデル
Super Sylphide 進捗状況(50) -- Sylphideデータ形式
前回の進捗記事ではオートパイロットシステムSuper SylphideおよびTinyFeatherの通信プロトコルについて紹介しましたが、今回はそのペイロードとして載ってくるデータの形式について記事を
Windows 7 / Office 2010 になってやったこと
仕事用PCが新しくなった関係で、ユーザインタフェイスの変更というM$の暴挙に打ちひしがれています。少しでもWindows 7 / Office 2010を以前のWindows XP / Office
newで作った複数種類のリソースを自動deleteしたい
楽しいプログラミング言語は? と聞かれたら迷わずC++をあげたくなるこの頃ですが、ハードウェアが絡むプログラムをC++で組んでいる際に、表題の問題に出くわしました。すなわち、様々なリソースを新規作成(
HEX形式を std::iterator で
バイナリイメージを扱う単純なフォーマットとして、HEX形式というものがあります。起源はとても古いのですが、現在でもマイコンの書き込み形式としてなとで使われています。最近、ROMへの書き込みといった少々
東京電力の電力の使用状況グラフが使いにくい 改め にくかった
先日の大震災の影響で関東地方では電力の供給不足という状況に陥っていますが、それに関連して、東京電力には電力の消費状況をモニタするサイト『電力の使用状況グラフ(当社サービスエリア内)』があります。このサ
TeXで『節タイトルだけ大文字』、『トンボをつける』
原稿を書いていると、指定のフォーマットに沿っていることを要求されることが多々あるのですが、今回遭遇した2つの問題におけるTeXでの解決方法をまとめておこうと思います。1つは、節のタイトルを英文字の大文
Matlabが出力したepsを編集して一部の線を破線にする
Matlabをグラフの出力として使うことがありますが、そのグラフをちょっとばかり編集したいということがあります。特に今回は、図が白黒でしか出せないために、図の線の一部を破線にしたいという事態に見舞われ
3Dプリンタでケースを打ち出してみた
猫カメラでお世話になっている@rkmt先生より『3Dプリンタ、使います?』という素晴らしいお誘いをいただきました。ということで前回のエントリで紹介したケースを3Dプリンタで打ち出してきました。使ったの
Google SketchUpでケース作り
猫カメラをまじめに展示しようという計画が進んでいるのですが、その一環としてケースをつくることにしました。どのような工程を踏むかは色々と思案中ですが、いずれにせよ図面の作成は避けて通れないので書くことに
Ruby open-zip.rb
テキスト処理などにとっても便利に使っているRubyですが、Rubyにはopen-uri.rbというライブラリがあります。使い方はrequire 'open-uri'をしておくと、ファイルを開くopen
CygwinのRubyからMatlabを扱う
とあるデータファイルがMatlabのフォーマット(*.mat)だったのですが、それをRubyから読み込めたらいいなぁ、という事態に遭遇しました。王道としてはMatlabを起動してデータファイルを読み込
ビット逆転をC++テンプレートで
ちょっとビットの逆転をする必要があったので、コードを書いてみました。ビットの逆転とは、例えば入力が0b10010101なら、出力を0b10101001とすることです。せっかくなのでC++でテンプレート
ローカルに流れるTCPパケットを見る
ちょっとした事情がありまして、以前記事を書いた『Amontec JTAGkey-Tiny (FT2232) を Xilinx iMPACTから使う』のメンテナンスをしています。これはXIlinxの純正
TeXで綺麗なアスペクト比の記号
TeXで飛行機関係の文章を書く最近なのですが、飛行機の大きさや重さといった緒元を表にしようと思っていました。そこで遭遇したのが、翼の細長さを表現するアスペクト比(Aspect Ratio)です。アスペ
Twitterでつぶやくと数式の画像のURLが返ってくる
Twitterでぶつぶつ言っていると急に数式を書きたくなりませんか? 僕は勿論のこと、皆さんもそうなりますよね(笑)。そこでTwitter上でTeXの数式をつぶやくと、画像のURLを返してくれるサービ
TeXlipseとdvioutの連携
最近、大型の文章作業をしているのですが、統合開発環境eclipse上でtexの文章をやりくりしたいと考えるようになりました。今まではTeXの作業をするにあたっては、WinShellというエディタと、d
24インチのある風景
年度末に向けて色々と処理しなければならない文章作業があるので、ディスプレイ環境を増強することにしました。そこでUWXGA(1920x1200ドット)表示が可能なNANAOの24インチワイド液晶S241
C++でビット列の性質を求める
あまり需要のある話ではないと思いますが、プログラムでビット列を意識しなければならなくなることがありました。ある数がビット列で表現されており、そのうちの一番右にある'1'の位置を求めたいというでした。例
Ruby::PTYで外部コマンドの起動終了の制御
Rubyでちょっとした処理プログラムを作ったときの話です。プログラムの構造として、Ruby以外の言語で書かれた実行バイナリが既に複数あり、それを起動したり、終了したりしながら制御をするというものでした
地球シミュレータ
ちょっと前にスーパーコンピュータの『地球シミュレータ』を見てきました。海洋研究開発機構(JAMSTEC)にある、主に地球温暖化などの気候変動をシミュレーションするための凄いコンピュータです。せっかくな
Redmineに対してオレオレ証明書httpsのsubversionを認めさせる
複数の作業を効果的にこなすために、Redmineというプロジェクト管理ツールを導入しているのですが、このツールはソースコードを管理するためのSubversionやgitといった別のツールと連動すること
勇者Twitter Bot作りました
ドラクエ9の発売に伴い色々な動きがあるようですが、それに便乗してみることにしました。ミニブログ的なサービスであるTwitter上でメッセージをやり取りしながら、ドラクエを象徴する敵であるスライムと対戦
SWIGでiostreamを引数にとる関数のラップ(Rubyの場合)
とあるC++プログラムをRubyから使いたいということになりました。こんな時はCまたはC++のプログラムを、スクリプト言語から呼び出せるよう、ほぼ全自動でラッパーを生成してくれるSWIGの出番です。こ
シリアルポートをstd::iostreamと同等にMacOSXでも扱う
以前、Windowsでのシリアルポートの読み書きを、C++で標準的な入出力インターフェイスであるiostreamと等価的に扱うためのヘッダを『シリアルポートをstd::iostreamと同等に扱う』と
シリアルポートをstd::iostreamと同等に扱う
マイコンを扱っているとシリアルポートで通信を扱う機会がよくあるのですが、標準入出力やファイルと同等にシリアルポートを扱いたいという要望があります。例えば何かの入力を拾ってきて、それを加工し出力するC+
HandBrakeのビルド用パッチ
iPodなどの携帯プレーヤ買いたいと思ったのが半年前で、なかなか踏ん切りがつかず月日が流れていったのですが、この度ようやくiPod touchを購入しました。Apple storeに行って弄ったのがき
フライトログの可視化
珍しく飛行機の話題です。飛行機を飛ばして実験をしていると、どのように飛んだかを記録したフライトログが多く溜まるのですが、数値データをプロットしただけのグラフを見たところで何が起きているのか瞬時に理解す
Eclipseでgitプラグインの使い方
統合開発環境Eclipseを使って、gitで運用しているプロジェクトを扱っているのですが、gitプラグインの使い方がよくわからなかったので、一連の動作について試行錯誤した結果をメモとして残しておこうと
RFPDFの高速化、StringIOを使う
RubyでPDFを生成したいと思い、RubyのPDFライブラリを物色していました。結果、プロジェクト管理ツールRedmineのプラグインとして開発されているRFPDFが、使いやすそう、かつ、日本語もあ
C++でリフレクションもどき
物理法則に関係するプログラミングをしていると、変数に人間にわかる名前をつけておかないと大変な事態になります。特にその変数が配列であるときは悲劇で、インデックスが直打ちされている残念なコードを時たま見か
自作行列ライブラリのGSL化
僕は車輪の再発明は大の得意(笑)で、『自作行列ライブラリ』などというものをこさえて使ってきました。しかしこの度、計算が怪しい(固有値分解で、対象が対角行列に近いと収束しないケースがある)や、計算速度を
Rails 2.2以降 + PassengerでRailsBaseURIが機能しない
某プロジェクトの関係でソースコードを共有する仕組みを考えていたのですが、最近はgithubを使うのがはやりのようです。これまではsubversionを使っていたのですが、よい機会だと思いgitに手をだ
車輪の再発明、もといmatrix.hの更新
行列演算を使うことが多いため、勉強がてら自作のC++行列ライブラリ matrix.hを作っています。このたびUnscented Kalman Filterを実装する必要があり(kalman.h)、そこ
RedMineの導入等
正月ということで集中的にやりためたことをやってみました。忘れっぽいので何をしたか、備忘録として箇条書きを残しておこうと思います。 (1) Ruby(Rails)で動くプロジェクト管理ツール Redm
Arduino serproxyをFlash XMLSocketで使う
目覚まし時計デバイスChumbyにArduinoをつなげてChumby上のFlashからコントロール(詳しくは以前の記事『ChumbyでArduino等をFlashからコントロールする方法 (XMLS
Thinkpad X60s HDDの換装 (移行ソフトにお金かけない)
ノートPCでThinkpad X60sを使っているのですが、この度HDDがパンク寸前になったので、大きな容量のものに換装してみることにしました。最終的にはまるごとコピーで移行作業を完了できたのですが、
Tracにガントチャートプラグインを導入
某所で新プロジェクトの立ち上げをした都合、Wikiやリポジトリビューワを統合した包括的コミュニケーションツールとでも呼べばよいのでしょうか、Tracを導入しました。その際にガントチャート、いわゆる線表
fonを導入してみたが繋がらない orz
ブームに乗り遅れた感がありますが、fonが楽しそうだったのでこの度導入してみることにしました。La Fonera+をamazonで購入し、設置したネットワークにあわせて設定を行った後、登録作業までかこ
FTDIチップ経由でマイコン等と通信するためのCGI
Linux時計ガジェットChumbyからFTDIのUSBシリアル変換チップでマイコンをコントロールしようと企んでいます。そこで、大本のコントロールはChumby上で実行できるFlashを考えているので
EBNFをRacc形式に変換
前回の記事『VHDLの可視化ができないものかと』のコメント欄に少し書きましたが、VHDLを可視化できないものかと思案中です。とりあえずプログラミング系のスキル向上も兼ねて、VHDLのパーサくらいこさえ
秋月USBオーディオ
PCのサウンドカードが壊れてしまっていたので、秋月の新商品『USBオーディオモジュール』を組み立ててみました。ケースには同じく秋月の『ポリカーボネイトケース』を使っています。 なかなかいい音でな
RubyでアップローダCGI
ファイルをネット上でやり取りしなければならない事情がでてきまして、せっかくなので自習がてらCGIで動作するアップローダを作成してみました。前回web系のプログラミングをしたのは実に1年以上前のことなの
cvs2svnで文字コードが混在するcharsetを設定する
サーバを移行した際に、ファイルのバージョン管理システムをCVSからより便利なSubversionに移行しました。僕の近辺ではバージョン管理システムを導入している方というのがほとんどいないのが現状ですが
fsck_hfs Invalid extent entry
サーバが昨日より故障していました。アクセスして戴いた皆様におかれましてはご不便をおかけしました、この度ようやく復活できたようです。 サーバはPowerMac G3(350MHz) + MacOSXの
SWIGによる行列/複素数 C++ライブラリのRubyへの移植
プログラミングの練習がて作成しているC++の行列ライブラリ(matrix.h)、並びに複素数ライブラリ(complex.h)があります。このような標準的なライブラリはどの言語においても先達が素晴らしい
operator=()と継承
拙作のC++行列ライブラリmatrix.hのメンテナンスを久しぶりにやってみているのですが、部分行列の代入の解釈で少し考えることがありました。簡易的なコードで書くと以下のような問題です。 Matri
pow(x, 2) vs (x * x) どっちが速いか
プログラムを書いていて少し気になることがありました。べき乗を求めるpowという関数がありますが、二乗の場合はpow(x, 2)と書くのと(x * x)と書くので、どちらが速く実行されるのでしょうか。早
gnuplotで飛行機
最近訳あってgnuplotでグラフを大量生産しています。その中でちょっとした力作ができたので、紹介したいと思います。下のグラフをご覧ください。 飛行機を書いてみました。 背景となっている飛行機の
ビットマップ画像をベクトル化するVector Magic
長めの文章を書いていると、本からスキャンしたフローチャートのような図を載せたくなることがよくあります。しかしスキャナで取り込んだ画像というのは所詮ビットマップなので、拡大するとそのクオリティがいまいち
『GPSのための実用プログラミング』
最近このサイトへアクセスしてくださる方の傾向を観ると、GPS関係のキーワードで検索エンジンから来られる方が多いようで、特に自作GPSロガーは大人気となっています。そのような流れを受けて、今後もできるだ
MacOSX(10.5) launchd
Mac miniでサーバをしようと内部を分解したりしていましたが、最近は様々なサーバ系ソフトのインストールに追われています。世の中便利なパッケージがあるようですが、やはりトラブルの際には色々とわかって
Othelloプログラム(強化学習による実装)
少し前に、昔Ruby書いたオセロのプログラムをC++に書き直した、という記事を書きましたが、その続きを書きたいと思います。ようやくコンピュータ側のルーチンの実装が完了、ないし、メモリが漏れるバグ取りが
Mac mini オープナー
サーバとして使っているMacマシン(G3 350MHz)がそろそろへたれてきたので、新たなサーバに仕立てようとMac miniを購入しました。購入したのは所謂Intel MacのCore 2 Duo
Othelloプログラム再び(RubyからC++へ)
そろそろ年が明けてしまいますが、決して年末で更新をサボっていたわけではありません。ちょっと悪性の風邪を引いてしまいまして、ここ1週間体調が非常に悪い状況が続いています。元気に年を越したいものですが…。
MyRemixによるブログRSSの統合
先日の記事では、学生による室内飛行機のコンテストがあるよ、という紹介をしましたが、その中で各チームが進捗状況をブログにするルールについて触れました。その進捗状況は気になるところなので、是非とも欠かさず
完成済みPDFにヘッダを埋め込む
とある事情で40個くらいの完成済みPDF全ての1ページ目のみにヘッダを入れる必要がでてきました。このような編集機能を総称するとアノテーションというそうで、製品版のAdobe Acobat(無償のRea
7bits エンコーダ/デコーダ
最近、以前PC接続用基板を作ったXBeeを用いて、シリアル通信(より正確にはUART)をしていますが、少し困ったことがありました。当然やり取りされるデータは1byte単位なので、複数バイトで意味を持つ
memcpyによるクラスのコピー
C++の話です。オリジナルのQueue、すなわちFIFO(First In First Out)といった方がわかりやすいでしょうか、を実装することになりました。基本的なアルゴリズムなので、車輪の再発明
ビープ音で『カエルの歌』 (Windows版)
最近『どう書く.org』を見るのが面白いです。 そこで目にとまったのがビープ音で、カエルの歌を演奏するというもの。皆さん、様々な言語で挑戦されています。Rubyで音をどう鳴らしているのか興味があった
Matlabが吐くepsをdvipdfmxで処理すると切れる
タイトルのとおりの現象が発生しました。最近諸事情によりMatlabを本格的に使い出したのですが、文章を書くのはやはりTeXなので、Matlabで作成した図はeps形式で保存し取り込んでいます。しかし、
Rubyでメールの仕分け
とある事情で大量のメールの仕分けをする必要がでてきました。仕分けといってもメーラーによって行われる単純なルール(例えばアドレスがhogeだったらadaフォルダに保存する)で解決できればよかったのですが
epsをまとめてPDFにするRubyスクリプト
表題のとおりの内容です。最近epsで作ったグラフが氾濫するようになりました。この管理方法について頭を悩ませているところです。というのも細かな違いしかないファイルが大量に生産されている故で、これではコン
RubyによるHEXフォーマットの読み書き
組込み系の開発をしているとROMにデータを書き込むためのバイナリを扱うことになりますが、そのフォーマットの一つにHEXフォーマット(正式名称?)というのがあります。バイナリを0からFまでの16進文字で
行列+複素数 (C言語)
少し前の記事『mallocは関数の中ですべきか』で、C言語の行列ライブラリの話を出しましたが、ようやく内部的な事情が解消したので公開します。ソース中の『埋めてね』というので、事情を察していただけるかと
mallocは関数の中ですべきか
C言語の行列ライブラリを訳あって書いていました。その中でふと思ったのが、今回の記事の表題にあるとおりで、結果を引数として指定されたポインタを通じて返す関数では、関数内でmallocするべきか否かという
GPartedでHDD丸ごとコピー
年度の切り替わりということもあり、パソコンが新調されました。そのため旧PCのHDDの重要なファイルを新PCに移し変えるという作業が発生したのですが、いちいち必要なファイルを探して、新HDDに移すとなる
Ajaxでdocument.writeするJavaScriptへの対策
最近サイトをAjax化、つまり非同期通信をすることによってアクセス時の体感速度を向上させようとしています。JavaScriptライブラリのサイズを小さくするという内容の記事にも書いたとおり、Ajaxの
ApacheのMultiViewsで拡張子が有るリクエストでもgzが働くようにする
タイトルが呪文のようになっていますが、これ以上わかりやすいタイトルは思いつきませんでした。結局何の話かというと、Apacheのコンテントネゴシエーション(Content Negotiaion)機能、つ
Doxygenと戯れる日々
現在せっせと某プログラムのドキュメント作りに励んでいます。といっても僕は『ソースを読めば全て書いてあるでしょう、バグも含めて(by まつもとひろゆき氏)』で思考停止してしまっているので、ドキュメントと
TeXの論文テンプレート
TeXの論文テンプレートを作ってみました。TeXはM$の某ワードの100倍くらいいいと信じ込んでいる(半ば宗教じみています、笑)ので、その布教活動の一環としてです。 パッケージが足りない場合はctan
Eclipseのナビゲーターのフィルターパターン追加
仕事に遊びに大活躍の統合開発環境eclipseを愛用しています。もともとはJavaの開発ツールなのですが、自由にカスタマイズ可能なので、Java以外にもC++やRuby、ActionScript(Fl
VC6 MFCをVC2005で
Visual Studio 6で作成したWindowsアプリケーション(MFC使用)をVisual Studio 2005 Express Editionでコンパイルできるように移植するという用件がや
Thinkpad Access Connectionsにやられる
Dual Coreの登場にあわせてノートパソコンを新装してから、かれこれ数ヶ月が経とうとしています。購入したのはCore Duoを搭載したThinkpad X60s(最新のX60sはCore 2 Du
無償PDFライフ(作成と結合)
PDFを作ることが多くなってきたこの頃です。しかもTeXでPDFを作るだけでは用が足りなくなってきました。例えば、元ファイルがM$のワードでなければいけないという指定がある場合や、自分が作成したPDF
Matlab mexでCygwin gccやg77を使う(gnumex)
最近Matlabを使うようになってきました。お金がかかるツールはできる限り使わないポリシーなのですが、効率をあげるためにはやむを得ません。Matlabよくできていますね、何でもコマンド一発だし。そうい
TeXで請求書
PDFで請求書を作る必要があったのでTeXで作ってみました。 画像をクリックするとPDFファイルが見られます TeXなので凝ればひたすら凝ることができますが、今回はこの程度で許しておきましょう(
makeでソースとバイナリを違うディレクトリに
先日、室内飛行機の自律飛行プロジェクトの成果物としてH8/3694のフレームワークを公開しましたが、その際、自動コンパイル(ビルド)をどのように構成するかで少し悩みました。 オープンソース系の大きな
ワードをTeX化するテクニック(位置あわせ編)
最近、提出する文章の最終出力がPDFで要求されることが多くなりました。そういうわけで、文章は品質にこだわってTeXで作成、dvipdfmxで出力するようにし、M$のワードからは卒業しました。単にAdo
Flashで組版
Eclipseで作業中。 FDocがらみの話です。FlashもといActionScriptで組版をしてみています。ActionScriptは浮動小数点の扱いや画面上の文字サイズの扱いが微妙なので、
Boost::SpiritでCMS計画 (3)
Boost::spiritという変態的なライブラリを用いてWIkiライクなContents Management System(CMS)を作ろうという計画、前回の記事からかなり間があいてしまいましたが
トラックバックでBus Error (10)
久しぶりのサーバやサイトの管理をしてみました。Webサーバのバージョンをあげてみたりとか、リンク切れを修正してみたりとか、見た目的には何も変わらないので非常に報われない作業です。そんな中でWebサーバ
Death March
最近第2版が発売されたのを機に、タイトルが気になった本『デスマーチ ~ ソフトウェア開発はなぜ混乱するのか』を読んでみました。デスマーチというのは、プログラマとかSEとか、コンピュータ関係の職業に就
ThinkPadのスクロール機能
ThinkPad X60sを買ってから2ヶ月近く経とうとしているのですが、ThinkPadのスクロール機能で不満が出てきました。なんと、特定のアプリケーションでスクロール機能が効かないのです。 Th
Ruby Debug Injection
Rubyでプログラムをよく書くのですが、メソッドの入出力を監視したい、つまりメソッドの引数と返り値が何であるか知りたくなることがあります。 こんなとき、いちいち当該メソッドにいわゆるprintfを仕込
Thinkpad X60s
ここ2週間前くらいの話なのですが、メインで使用しているノートパソコンを替えました。Lenovo製IBMブランドのThinkpad X60sです。ようやく使い慣れてきた感じなので、思っていることを書いて
プロポとPCの接続完了
プロポとPCを接続する話ですが、コンパイラのバグに遭遇するなど不運な事態に遭遇したものの、ようやく完成しました。回路図(EPS版)と使用したPIC(16F648A)に焼きこむためのバイナリ(HEX
MeCab-0.91をCygwin Rubyで
日本語の文章をコンピュータで解析する形態素解析というツールがあります。ちょっと使う用途がでてきたので色々と触ってみているのですが、そのツールをRubyから使うためのバィンディングがうまく動いてくれませ
プロポとPCの接続
室内飛行機の航法系を検討していましたが、その中でビデオカメラを用いて位置や姿勢の同定を行うというプランがあります。 ところで、実際に室内飛行機を飛ばすためには航法系の上位にある制御系を構築し、画像処理
Rubyでgnuplot
最近グラフを書く機会が多いのですが、ただ単純にデータファイルをプロットすればいいという単純な作業はむしろ少なく、データファイルを読み込んでそれから何がしかの計算をした結果をグラフとして出力するという少
Rubyでディープコピー
Rubyでディープコピーをするのに目から鱗な技があります。deep_copied = Marshal::load(Marshal::dump(target_object))こんなことができるのもRub
OthelloAI その2
オセロをコンピュータで解く課題ですが、前の記事のルールの実装に続き、コンピュータが自分の手筋を決定するためのアルゴリズムの作りこみを行いました。 アルゴリズムとしては、盤面の状態が自分にとって有利かど
OthelloAI
オセロをコンピュータで解く課題をこなしています。提出期限まで時間がないので、実装はRubyで行うことにしました。まだコンピュータ側のアルゴリズムを実装していないのですが、とりあえずオセロを実行するため
MacOSX(10.2.8)でgcc 3.4.5のコンパイル
Boost::SpiritでCMSを作ろうという企画ですが、サーバで動かなければ企画倒れですので、とりあえずサーバ機のPowerMac G3(@350MHz そろそろ引退?)でコンパイルしてみました。
Boost::SpiritでCMS計画 (2)
WikiライクなCMSをBoost::Spiritという変態的なC++ライブラリを用いてつくろうという企画の『Boost::SpiritでCMS計画』。ある程度形ができてきたので、進捗状況の報告といき
Boost::SpiritでCMS計画
このサイトも長く続けているもので、だんだんとコンテンツが増えてきたため、ブログスタイルのみでの運営には多少無理がでてきたように感じています。アクセスログを見ていると、Google大先生にも嫌われ始めま
USB-ADC DLL化
USB接続できるAD変換機USB-ADCですが、デモをするときにAD変換結果をリアルタイムでグラフに表示できれば何をしているのかわかりやすいと思い、色々と考えてみました。前の記事に『リアルタイム gn
リアルタイム gnuplot
計算結果を結果が出次第、流れるようなグラフにしたい、そんなことがありました。そこでプログラムとグラフ描画ソフトのgnuplotをつないで、リアルタイムでグラフをかけないかということを考えてみました。
新たな無償コンパイラ
以前、マイクロソフトの無償コンパイラVisual C++ Toolkit 2003を『コンパイラの入れ替え』という記事で紹介しましたが、今度はVisual Studioの無償版、Visual Stud
吉野家のイメージカラーは?
色々とネタはあるのですが、最近多忙でなかなかブログを更新できずにいます。ということで今回は軽めのネタ、というか使っていて便利だと思ったフリーウェアの紹介をしたいと思います。 以前、友人A氏からいきな
Google Maps APIでプロット
少し前に巷で話題を独占していた"動く地図"ことGoogle Mapsですが、実験データのプロットに使ってみました。 実験の内容は、コードネーム『199まん』のCrossbow製GPS/INS慣性航法
Cygwinでln
ファイルを参照したいけど、コピーは作りたくない。そのなときにシンボリックリンクを張るというのは*NIXを使っているとよくやることです。$ ln -s source_file dist_symbolic
configure; make; make install
最近インストールしまくっています。一つは自分の研究のため、もう一つは自宅のサーバの機能拡張のためです。インストールしたソフトを忘れないように書いておこうと思います。 Boost @ Cygwin言わ
Ruby extend
Rubyの話です。 Rubyでは機能をあらかじめModuleで宣言しておき、Classに対してextendすることによって、その機能をクラスのスコープとして組み込むことが可能です。例えば Module
継承とコピーコンストラクタ
C++の話です。C++には通常のコンストラクタのほかに、コピーコンストラクタというコピーをつくるためのコンストラクタがあります。 コピーコンストラクタは以下のように使います。 class SomeCl
CppTest
ライブラリを拡張する都合があってC++を書いています。そろそろコードのテストをしなければならなくなったので、CppTestというテストツールを使ってみることにしました。 C++のテストツールというと
MacOSXでPPPoEマルチセッション (ルータ不要)
MacOSXで光ファイバーやADSLでプロードバンドルータなどをかまさずに直接インターネットに接続されている方はどれくらいいるのでしょうか?僕もその一人です。 今回はそのMacOSXから複数のISP
ロボットのプログラム
よく読む機械屋大学生さんのブログにロボットのプログラムで『switch~caseで条件分岐を書いてうまくいかない』という記事が書いてあったので、それについて思うことがあるので語ってみようと思います。
RubyでFFT
レポートでフーリエ変換をどうたらしなければならないので、FFTをRubyで実装してみることにしました。といってもRubyという時点で金持ちプログラミング決定なので効率無視です。 Cooley-Tuk
Google Toolbar 3β
最近気づいたのですが、Google Toolbarの新しいのがでていたみたいです。といってもまだベータ版ですが。 『マウスオーバー辞書』といういけている機能がつきました。マウスをわからない英単語の上
IPMessenger
研究室内で使っている、というか一方的に僕がみんなに布教しているツールがあります。IPMessengerというやつです。 何をするツールなのかというと、LAN内で使えるメッセンジャーみたいなもので、メ
Trackback Auto-Discovery (Ruby編)
blogのエントリからTrackbackのURLを捜し求める方法がBlog Hacksという本に書いてあったのですが、自分でもRubyで実装してみました。テストスクリプト。 要は記事中にあるRDFを
Cygwin 1.5.15-1 + Apache
某cgiの開発をしているのですが、いちいちターゲットサーバにコードを移して実行するのが面倒なので、CygwinとCygwin上で動くApacheを開発環境としてやっています。しかしながら、ある日cgi
JavaなRuby
最近Rubyでcgiを書いています。で、Rubyで外部モジュールを読み込む方法について思うことがあるので記事にしてみます。 Rubyでは外部ファイルを読み込む方法がrequireとautoloadの
morph3の脳みそ
この間、用があって秋葉原の『ツクモ ロボット王国』にいってきました。サーボとかメカメカしたものがいっぱいあるのですが、そこで物欲を掻き立てるものを見つけてしまいました。morph3の脳みそです。 m
PukiWiki RSSの文字化け
PukiWikiを某サイトで構築したのですが、なぜかRSSが文字化けして読めない(IEのXMLプロセッサが『無効な文字です』エラーを吐く)、なんてことがあったので、どうすれば直るかを調べてみました。
GMail
//-->今時メールボックスの容量が1GBなんていうのは珍しくもないかもしれませんが、Googleがやっている閉鎖系メールサービス(Betaバージョンで招待状がもらえないと使えないサービス)のGMa
画像認識
このごろは画像認識の仕事で忙しいです。実は未踏がらみだったりするのですが。 画像にあるとおり具体的には枠の認識をやっていました。アルゴリズム的には迷路探索法(正確にどのように呼ぶのかわからないで
Apple I Replica Creation
洋書を買いました。タイトルはApple I Replica Creation。 この本、現在のPCの先祖ともいえるApple Iというコンピュータを自作してしまおうぜ、それを通じてコンピュータの仕
Subclipse
EclipseでとうとうCVSからSubversionを使わなければならない日がきてしまいました。 うちのサーバはApache 1.3系なのでWebDAどまり(Version管理がないのでWebDA
Mac mini を買ったら(妄想編)
AppleよりMac miniが発売されましたが、実は僕はこんな製品を心より待っていたのです。ということで、Mac miniを買ってしまったという事態を想定して(残念ながらまだ実現していません)、その
iPodからPCに曲を転送
iPodを使っていますが複数台のPCでiPod繋げているので、iTunesで自動更新をONにしていると入っている曲が消されてしまったりとか…。この状況を改善するにはiPodベースで音楽を管理するソフト
mallocしない正規表現
H8のようなマイコンで動く、mallocしない、つまり思わぬところからメモリを確保することのない正規表現ライブラリをこしらえてみました。動機はH8でもネットワークと直結できる今のご時世、HTTPのヘッ
PSP : NetBSD ?
Play Station PortableことPSPが発売されましたが、中身はNetBSDの技術を使っているらしい?という話(元ネタ)を目にしました。 非常に興味があるので、どなたか詳しい方は教えて
コンパイラの入れ替え
コンパイラを入れ替えたら数値計算が速くなりました。今までCygwinのgcc3.3.2で-O3 -march=i686 -malign-doubleで1分程度かかっていた計算が、Microsoft V
フラッシュメモリいかれる
USBフラッシュメモリがお亡くなりになりそうになりました。症状としては、通常の状態で認識しないが、USBに取り付けた状態でスティックを強く傾けると認識する、という感じでした。 とりあえず、まずはUS
Apache 1.3.31 にWebDAVを
旅先での写真を共有したいと思ったので、いろいろと方法を考えてみました。思いついたのは、次の3つ。FTPおそらく一番スタンダートな方法。ただし標準でダイジェスト認証やSSLに対応しているものは少なく、セ
FlexScan S170
買いました、EIZOのFlexScan S170。とにかく、黒がすばらしいです。 いままでは同じくEIZOのL360を使っていたのですが、こいつを里子に出すことになったので、今回の購入に踏み切りまし
最近のCygwin
いつのまにかCygwinに便利なコマンドが追加されていることを最近知りました。2つほど紹介したいと思います。 まず、以前、Cygwinでもopenという記事を書きました。これはMacOSXなどでお馴
AirH"を少しでも快適に
鎌倉に2週間ほど滞在なので、AirH"を借りてきました。で、AirH"を使用しての更新です。 それにしても、光ファイバの100M(実質40Mくらいですが)に一度でも慣れてしまうと、AirH"の32K
スパムフィルタ導入
最近メールにスパムが増えてきたので、スパムフィルタを導入することにしました。調べたところスパムフィルタには2タイプあって、メーラに搭載されている搭載タイプと、メーラの間にかませるプロキシタイプがありま
ノーパソ、うんちく
某社との共同研究の為に、研究室でノートパソコンを1台、新規導入する許可がおりました。ということで機種の選定にあたったのですが、最近のノートパソコンは機種が充実しているのですね。 驚いたのが、軽量モバ
ダイアグラム エディタ
卒論の中間発表用の資料を作るときに切実に思ったこと。ブロック線図を手早くかけるソフトが欲しい!! ブロック線図というのは制御用の一種のフローチャートのことです。つまりは、フローチャートが書ければいい
究極のコマンド~その名はsl
UNIX系のOSを使うならlsというコマンドは日に10回以上は打ち込みますよね。で、たまに間違えてslと打ち込んでしまうとどうなるか…。 こんな画面になって焦ったことはありませんか? そう、なに
Apache 1.3.31へ移行
今までApacheの1.3.28を使ってきたのですが、ここのところApacheの調子がよくなかったので、1.3系で最新のものに入れ替えてみました。調べてみると、どうやら1.3.29以前で重大なバグが存
coLinux
巷でうわさのcoLinuxを使ってみました。coLinuxというのはWindowsの特権モードでLinuxを動かすという少々強引なソフトですが、APIのエミュレーションレベルでLinuxを実現している
Ruby Marshal
Rubyを1.8にしてからしばらく経ちますが、なんとCGIは1.6.8で実行されていたことが発覚。で、1.8にパスを修正してなおしました。 そうしたら、カウンタが壊れた!!原因は1.8と1.6.8の
鶏が先だと思われ
C++には演算子のオーバーロードという便利な機能があって、+(プラス)や-(マイナス)なども関数として定義することが可能な言語仕様になっています。この前の行列ライブラリ作成の際もこの機能にはお世話にな
ハウスホルダー変換経由、ダブルQR法
『8×8行列の固有値、固有ベクトルを求めよ、しかも固有値は複素数じゃ!!』とのことでしたので、C++でハウスホルダー(householder)変換、ダブルQR法を実装をしました。 大変でしたが、なん
Numerical Recipes
現在、固有値、固有ベクトルを求める課題に取り組まされているのですが、いいのを見つけました。Numerical Recipesという本ですが、なんとオンラインで公開されています。 Cのコードがのっている
Regnessem
MSN Messengerを使っていたのですが、やめました。理由は呼んでもいない相手にいきなり話はじめられるのがイヤだから(嘘です)。本当の理由はOutlook Expressを起動すると同時に立ち上
定義済み実体
XMLの処理をJavaでやっているわけですが、定義済み実体参照はデフォルトで解決してくれるみたいです。調べた限りどこにもドキュメントがなかったので、自分でテストクラスをつくって試してみました。解決され
RSS出力機能つけました
ほったらかしにしておいたTrackback機能付き掲示板。RSSの出力機能をつけてみした。ソースはここに置いておきます。 以前の情報はこのページを参考にどうぞ。結局、いつものパターンでboard.e
『エキスパート C プログラミング』
今日から大学生協の書籍部でアスキー出版の本が15%オフでした。これに乗じてアスキー出版からでている『エキスパート C プログラミング』という本を買いました。 この本、いいです。今まで断片的にしかな
Rubyネタ
『Ruby ソースコード完全解説』がオンラインで全文公開されています。Rubyは非常に興味深いので、そのうちソースコード本を読むつもりでしたが、オンラインで公開とは、なんともうれしいことです。 次に
3時間で作る携帯向けCGI
今度、学科で見学旅行があるのですが、その日程の確認のために協力して欲しいとのことだったので、携帯から見られるサイトを急造しました。というわけでタイトルにあるとおり、いかに素早く携帯向けCGIを作るかに
Octave導入
課題で18×18の行列の固有値、固有ベクトル問題を解かなければならなくなったので、行列計算ソフトを導入することにしました。このような類のソフトにはMatlabとかがありますが、ソフトにお金をかけたくな
FortranをCに変換 @ Cygwin
cygwinでfortranのソースをコンパイルするにはg77コンパイラをいれればいい話ですが(やり方はここ)、fortranのソースをCにコンバートしてくれるf2cというものがあるので、それを使って
無線LAN化
自宅を無線LAN化しました。理由は単純、『寝ながらインターネットしたい』から。 無線LAN化するのに使用した機材はPLANEXという会社のGW-PK54G。内容は11g、11b対応の無線LANのAP(
TrackBackできる掲示板
TrackBackできる掲示板を作成しました。現在公開中です。 機能としては、普通の掲示板にトラックバックの機能を足した程度なので期待しないでください。前回の予告では再編集機能は次期バージョンとかいっ
ポケモンにみるオブジェクト指向
『ポケモンって長くやっているわりには、インスタンスの区別していないんですよね』とA氏。確かにそうですね、さとし君(もう古い??)もピカチューのことをピカチューとよんでいるだけで、名前をつけていないです
rand()はいけてない!?
C言語の標準rand()(rand()はその名前が表すとおり乱数を生成する関数です)はいけていないらしいです。課題で正規分布の乱数を発生させる方法を調べていたところ、そのような話に出会いました。くわし
Cygwinでもopen!!
MacOSXとかだとターミナルからファイルに関連づけられたアプリケーションを起動するのにopenというコマンドを使用して、ファイルを開くことが出来ますよね。実はcygwinでも以下のコードで実装できる
実体 vs ポインタ
仕事の関係でC++を書いています。疑問に引っかかりました。 class Hoge{ private: vector spool; public: >vector *getSearchRe
OS本
現在、H8マイコンでの開発に某所で関わっていまして、来年こそはOSを作ろうと思っています。そんな野望にむけて本を一冊買いました。ピアソンの『OSの基礎と応用』という本。コードばっかりではなく、読み物
constだらけのC++
バイトの関係で、C++を最近使い始めました。一週間が経ちSTLぐらいまでは速習で使いこなせるようになったみたいですが、ここで問題発生。C++特有のconstで混乱しました。 もともとがJavaプログ
拝啓 ネットワーク管理者殿
拝啓 ネットワーク管理者殿 今日からあなたの職場では、IPアドレスの枯渇になやまされることはありません。洗濯バサミが救世主となることでしょう。 Hoge文化でスオミさんがJokeRFC(RFCという
Hoge文化
ふと思ったこと。プログラミングの本とか見ると、任意の変数名とかって色々な流儀がありますね。洋モノだとfooとかbarがメジャーみたいです。和モノだとhogeが多いみたい。 この任意な変数名というのが
RubyでHashのsort
アクセスログをとっているのですが、そろそろどんな感じか整理してみようということで、Rubyでスクリプトを書いてみました。データの保管にはPStoreを使っているので、プログラムにはHashをいじってい
イテレーション比較
プログラミング言語といえばイテレータの使いやすさだと最近自分の中では思っているんですが、どれがいいですかね。その比較をやってみたいと思います。最近マイブームの言語で比較。 JAVA Enumerat
PC98受注打ち切り
ASCII11月号の表紙に『さらばPC-98よ!』。PC98の受注が9/30に打ち切られたようです(情報遅い??)。 PC98といえば、自分がはじめてコンピュータなるものに触ったのがPC9821 CS
Perl正規表現
MTMacroプラグインを使用しているのでPerlの正規表現を勉強。でも以前Rubyの正規表現をやったことがあったので、違いだけ把握すればOKでした。で、Googleったところ、けっこういいサイトを発
XML Schema
XMLの定義言語。W3C参照のこと。このサイト用のCMS(COntents Management System)を自作しようと考えているんだけど、内部的にはすべてXMLでやろうという魂胆なので、現在X
音楽プレイヤー、どうよ??
パソコンで、MP3とかCDとか聞くときに、どんなプレイヤー使っていますか?僕はLilithというプレイヤーを使っています。 このソフトは標準でMP3やWave、CDのほかに、音楽CDの可逆圧縮でよく用
VBAで泣かないために
バイトで現在、VBA(Visual Basic for Applications)っていうのを書いてます。いわゆる、あれですよ、ExcelのMacroとか。で、やっていることはデータをグラフィカルに表
Rubyはすばらしい!!
コードをHTMLにするにあたり問題になるのが改行やタブ文字。そんな悩みをRubyは一発&数行のコードで解決してくれましたとさ。 例えばtabを4つのスペースの変換するコードは次のとおり。 tab2s
web Radio
B Flet'sに入ってせっかくの高バンド幅を何に使おうかと考えたところ、ストリーミングでもそのうちやってみようかと思ってます。思っているんだけど、今は忙しいのでとりあえず聞くだけ。でも最近のストリー
登山届をXML化
サークルには登山届の過去の資料が大量にあるのですが、これを今度、電子情報化しようという動きがありまして、そこで提案。『XMLでやってみたらどうでしょう??』 例えばこんな風に ほげ 2003/8