swk's log 最新ページ / カテゴリ最新ページ / 1 2 3 4 5 6 7 8 9 次ページ / page 1 (9)

tech - from swk's log

2011-05-21 Sat

* OpenGL sort [tech]

こうですか!? わかりません><

#include <GL/glut.h>

void
drawnum(int n)
{
    glPushMatrix();
    glTranslated(0, 0, n / 100.0);
    glScaled(0.0005, 0.0005, 0.0005);
    do {
        glutStrokeCharacter(GLUT_STROKE_MONO_ROMAN, "0123456789"[n % 10]);
        glTranslated(-200, 0, 0);
    } while ((n /= 10) > 0);
    glPopMatrix();
}

void
display()
{
    int i;
    int d[] = { 52, 23, 132, 5, 98 };
    
    glClear(GL_COLOR_BUFFER_BIT);
    for (i = 0; i < sizeof(d) / sizeof(d[0]); i++) {
        drawnum(d[i]);
    }
    glFlush();
}

int
main(int argc, char *argv[])
{
    glutInitWindowSize(640, 480);
    glutInit(&argc, argv);
    glutCreateWindow("OpenGL Sort");

    glMatrixMode(GL_PROJECTION);
    gluPerspective(60, 1, 0.5, 1000);
    glMatrixMode(GL_MODELVIEW);
    gluLookAt(-1, 1, 2, 0, 0, 0, 0, 1, 0);
    
    glutDisplayFunc(display);
    glutMainLoop();
    /* NOTREACHED */
}

glsort/glsort.png

[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [Мебель] Мебель каталог http://pronews24.ru/ ----... (2017-05-21 19:34:02)

* [Davidbeatt] [url=http... (2017-05-19 01:40:34)

* [Walteredips] АЛКОВЕРИН АКТИВИРУЕТ РЕЖИМ АЛКОГОЛЬНОГО ... (2017-05-17 06:35:32)

* [ShawnfoelI] Perfect instrumental background music fo... (2017-05-17 02:53:25)

* [Donaldetexy] [url=https://mobileapkworld.com/]www apk... (2017-05-15 01:48:53)

* ...

2008-07-28 Mon

* 世界のナベアツ機械 [tech][education] 1 user

期末試験で出してみた (PDF).まあ練習問題 [2008-05-19-2] でもしつこく扱っていたし,授業中にもほのめかしてはいたので予想していた人もいたのではなかろうか.順序回路で来るとは思わなかったかも知れないけど.

なお,問 (2) は,その場で「Q_1^{next},Q_0^{next},a_outをカルノー図で表せ」に訂正しました (不完全定義なので).

[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [asJeprflp15] <a href=http... (2016-09-27 19:45:45)

* [第一工販株式会社] お願いいたします! (2011-03-01 12:37:48)

2008-05-19 Mon

* 世界のナベアツ関数 [tech][education]

正直,問題としてはあまり面白くなかった.あまり論理圧縮が効かないのな.今は反省している.

nabe/nabe1s.png nabe/nabe2s.png

関連記事:
[2008-07-28-1] 世界のナベアツ機械

2008-04-19 Sat

* 世界のナベアツに顔認識で挑戦する [tech] 16 users

世界のナベアツにさまざまな方法で挑戦するのが流行っているようなので,便乗してみる.

入力された画像から認識された顔の数が,3の倍数か3のつく数字のときだけ顔がアホっぽくなります.


CGI の実装言語は Perl,顔認識は Image::ObjectDetectモジュール (OpenCV の cvHaarDetectObjects),画像処理は Imagerモジュール,実装は以下の各サイトを参考にしました.

参考というかほぼ丸パクリなので,むしろ一番大変だったのはレンタルサーバに root 権限無しで OpenCV インストールするところだったかも.その辺の話は気が向いたら書く.

以下ソース:

#!/usr/bin/perl -T

use strict;

use lib "/home/swk/local/lib/perl";
use CGI;
use CGI::Carp qw/fatalsToBrowser/;
use LWP::UserAgent;
use Imager;
use Image::ObjectDetect;

my $tmpdir = "/home/swk/www/nabeatsucv/tmp";
my $cascade = '/home/swk/local/share/opencv/haarcascades/haarcascade_frontalface_alt2.xml';
my $nabeatsu_photo = '/home/swk/www/nabeatsucv/nabeatsu.jpg';

my $q = new CGI;
my $ua = LWP::UserAgent->new(timeout => 15);

my $tmpf = "$tmpdir/$$";

my $uri = $ENV{PATH_INFO};
$uri =~ s/^\///;
$uri .= '?' . $ENV{QUERY_STRING} if $ENV{QUERY_STRING};

my $res = $ua->get($uri, ':content_file' => $tmpf);
die "failed to retrieve $uri: $res->code" unless $res->is_success;
my $type = $res->header('Content-Type');
die 'not a image' unless $type =~ /^image\//;

my $image = Imager->new->read(file => $tmpf);
my $detector = Image::ObjectDetect->new($cascade);
my @faces = $detector->detect($tmpf);
unlink $tmpf;

if (&is_aho(scalar @faces)) {
    my $aho = Imager->new->read(file => $nabeatsu_photo);
    foreach my $face (@faces) {
        my $aho_scaled = 
            $aho->scale(xpixels => $face->{width}, ypixels => $face->{height});
        $image->paste(left => $face->{x}, top => $face->{y},
                      src => $aho_scaled);
    }
} else {
    foreach my $face (@faces) {
        $image->box(
                    xmin => $face->{x},
                    ymin => $face->{y},
                    xmax => $face->{x} + $face->{width},
                    ymax => $face->{y} + $face->{height},
                    color => 'red',
                    filled => 0,
                    );
    }
}

my $jpg;
$image->write(data => \$jpg, type => 'jpeg');
print $q->header(
                 -type => 'image/jpeg',
                 -content_length => length($jpg)
                 );
print $jpg;

sub is_aho
{
    my ($n) = @_;
    return ($n % 3 == 0) || ($n =~ /3/);
}

(追記) せっかくなので元ネタ的なものをリストアップしてみる.

2008-04-08 Tue

* Windows Vista の実装 [tech] 1 user

ためになる.


しかしこれって,中括弧の対応とかがひどいことになっているのはわざとなのか何なのか.

2008-01-12 Sat

* スラッシュドットジャパンのコメント表示方法を変える bookmarklet [tech]

Slashdot でコメントの表示形式を変えるために,イントロのすぐ下にあるフォームまでスクロールしてメニューから選んで「変更」ボタンを押すのがかったるい,と思ったので bookmarklet 化.車輪の再発明気味な気がするけど,まあ別にいいかと.

「threshold = -1,mode = ネストする,commentsort = 古い順」な設定になっているので,違うのがお好みの方は適当に変えて使って下さい.

2008-01-08 Tue

* 「シンボリックリンクのリンク先や絶対パス名を取得したい」 [tech] 4 users

Unix 上でシンボリックリンクのリンク先を取得したい.

(中略)

とりあえず readlink とか realpath とかいうコマンドがまさに使えることがわかった.しかし,手元のマシンにはそんなものは入っていないので,

(中略)

#include <sys/param.h>
#include <stdio.h>
#include <stdlib.h>
int main( int argc, char *argv[] ){
(以下略)

もっとお手軽にこんなんじゃダメでしょうか.

% perl -e 'use Cwd; print Cwd::abs_path($ARGV[0]), "\n"' some_path

2008-01-03 Thu

* camera の語源 [tech]

カメラ・オブスクラ(camera obscura、camerae obscurae、ラテン語で「暗い部屋」の意味。

カメラ・オブスクラ - Wikipedia

つまり「カメラ」はもとをただすと「部屋」の意味.(わりと専門分野のはずなのに)知らなかった….常識?

2007-12-08 Sat

* Windows XP のログオフや終了が異常に遅い場合 [tech] 1 user

WindowsXPのログオフや終了が異常に遅い場合、 Microsoft提供のUser Profile Hive Cleanup Serviceを試してみると良いかもです。

某実験用PCで試してみたら,てき面に作用した.

2007-12-02 Sun

* 5分で何個のHTMLエレメントを列挙できるか [tech]

49個(残り42個).意外と出て来ないもんだ.

[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [Joh] Thanks for the insgiht. It brings light ... (2012-12-31 01:53:14)

2007-10-27 Sat

* ELF ファイルが Linux のものであるか否かを知る方法 [tech] 1 user

【追記】さらにその後,「『7f454c46 01010100 00000000 00000000』の時点でelfファイルであることは判るが,Linuxで作られたかは0x0114バイトは見ないと判らないはず,この人は『バイナリ萌え』ではない!」との突っ込みを頂きました.

Robot.Mとの優雅な平日:バイナリ萌え,再び・・・

0xcafebabe の話を知った大学生の頃,危うくバイナリ萌えの暗黒面に落ちそうになったものの,軽うじて生還して今は普通人として暮らしています.


というわけでバイナリ萌えでない私にとっては,上の「Linuxで作られたかは0x0114バイトは見ないと判らない」はすごく不思議だった.だって ELF って 8 バイト目に OS/ABI あるじゃん.で,ELFOSABI_LINUX (= 0x03) って定義されてるじゃん.そこ見ればいいんじゃないの?

…と思って手近にあった Vine Linux に転がっているバイナリを調べてみると,8 バイト目は軒並 0x00 なのであった.0x00 は ELFOSABI_NONE であり ELFOSABI_SYSV である.で,確かに readelf すると

% readelf -a /bin/ls | grep OS/ABI
  OS/ABI:                            UNIX - System V

と表示されるのであった.むー.

さてそれではどうやって Linux のものだと判定すればよいのか,そしてそれはなぜ「0x0114バイトは見ないと判らない」のか,ちょっと調べてみることにした.

調べたのは file コマンド.

% file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1, for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped

てな感じで Linux だと判定してくれるので,きっと何か手がかりがあるだろう.

というわけで FreeBSD の /usr/src/contrib/file/readelf.c あたりを眺めてみると,donote() の中で判定しているようだ.ELF のプログラムヘッダのうち NOTE タイプのものを探して,その先頭 Elf32_Nhdr サイズ分 (ただし 32 ビット ELF の場合.定義は file/readelf.h の中で,実際のサイズは 12 バイト) スキップしたところに 'G', 'N', 'U', '\0' という 4 バイトがあることを確認し,その次の 1 バイトを調べている.そこが 0x00 だったら GNU/Linux であるという判定をしているようだ.ちなみにそこに出てくる値としては

#define GNU_OS_LINUX    0
#define GNU_OS_HURD     1
#define GNU_OS_SOLARIS  2

が定義されている.ちょwww HURD って単語久々にみたわwwwwwwwww

NOTE タイプのプログラムヘッダがどこにあるかというと,

% readelf -a /bin/ls
(略)
Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
(略)
  NOTE           0x000108 0x08048108 0x08048108 0x00020 0x00020 R   0x4
(略)

てな感じになっていて,先頭からのオフセット 0x108 バイトのところから始まるらしい.ここから Elf32_Nhdr 分の 12 バイト進んだ 0x114 の,さらに 'G', 'N', 'U', '\0' の分の 4 バイト進んだところ,つまりオフセット 0x118 バイトのところを見るとようやく Linux かどうかがわかる,という仕組みのようだ.実際に見てみると,

% hexdump -c /bin/ls | grep ^0000110
0000110 001  \0  \0  \0   G   N   U  \0  \0  \0  \0  \0 002  \0  \0  \0

となる.うーん,なるほど.

ついでに書いとくと,NOTE タイプのプログラムヘッダは必ずしも 0x108 から始まるわけじゃなくて,例えば /bin/rpm なんかは

  NOTE           0x000094 0x08048094 0x08048094 0x00020 0x00020 R   0x4

なのであった.つまりオフセット 0xa4 (= 0x94 + 12 + 4) を見る必要があるってことでいいかな?

% hexdump -c /bin/rpm | grep ^00000a0
00000a0   G   N   U  \0  \0  \0  \0  \0 002  \0  \0  \0 002  \0  \0  \0

よさげである.

というわけで,どうやら「Linuxで作られたかは0x0114バイトは見ないと判らないはず,この人は『バイナリ萌え』ではない!」という突っ込みもバイナリ萌えとしてはまだツメが甘いようです.うーむ,バイナリアン恐るべし.ついて行けん.


で,最初の話に戻るんですが,これらのファイルってどうして OS/ABI に ELFOSABI_LINUX を使わないんでしょう? 逆に言うと ELFOSABI_LINUX ってどういうときに使われてるんでしょう? 教えて偉い人.

[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [baby touch] 『あまり使われないのは、システムコールとかの"実装"に依存し... (2007-11-06 21:15:48)

2007-10-14 Sun

* 高専ロボコン東北地区大会 [tech]

NHK 高専ロボコンの東北地区大会が,名取市民体育館で行われました.主審を務めて来ました.ぐったり.

放送前なので詳しくは書きませんが,いろいろありました.ともかく,高専生の皆さんにはおつかれさまとありがとうを言いたいです.

2007-09-15 Sat

* PC が壊れたので Gmail を使い始めた [tech]

職場でメインで使っているデスクトップ PC (DELL Optiplex SX270) が突然壊れた.なんか本体内からブチュだかブシュだかいう破裂音っぽい音がすると同時にディスプレイが暗転して,本体からファンの音が爆音で鳴り始めた.あとの症状は一年前に故障したとき [2006-05-22-1] と同じ.あー,キャパシタでも破裂しましたかね.

前回 [2006-05-22-1] も書いた通り,この子が壊れるとメール処理系統が壊滅なので大わらわである.

で,衝動的に Gmail に移行した.いや,どうも抵抗があったんですけどね.というかまだ微妙に抵抗あるんですけどね,もういいわ.ふっ切った.

そんなわけで,ちょっとメール関連はしばらくゴタゴタしています.送ったはずなのに返事がないとかいう場合は見失っている可能性があるので,すみませんがもいっかいつついてください.いや,常にそう [2007-06-16-1] なんですが(ぉ


さて,目下の悩みはデスクトップ PC をどうするか.保証期間は切れているので修理する気はさらさらないです.思い起こせばこの子は 1 年に 1 回のペースで故障してくれたんだな.今までこんなに虚弱なマシン見たことない.まあお別れです.

というわけで,新しいデスクトップ PC を買うか,それともノート PC の方にすべて集約することにするか悩み中.ノートですべてを済ますってのも悪くはないかなと思うのだけど,いざそいつが故障したらと思うとこれまた不安でもあります.

2007-09-14 Fri

* 「今の子供達にどうやってプログラミングの楽しさを教えたらいいのか?」 [tech] 1 user

サイン関数を使って放物線の動きを表現したり

放物線じゃねえええええええええ


けど私も小学生の頃それやりましたorz.だって2次関数なんて習ってないもん.三角関数なら BASIC のマニュアルに載ってたもん.

2007-09-10 Mon

* 初音ミクがメタルを歌います [tech]

VOCALOID2 がすごい.

VOCALOIDのリアリティの秘密は、長年にわたってYAMAHA株式会社にて研究開発されてきた“Frequency-domain Singing Articulation Splicing and Shaping”(周波数ドメイン歌唱アーティキュレーション接続法)の最先端技術が採用されています。

これにより、VOCALOIDの歌声(母音/子音)は滑らかにつながり、実際の人間と変わらないような流暢な日本語を発音します。

http://www.crypton.co.jp/mp/pages/prod/vocaloid/

しかし英語は苦手らしい↓

2007-09-08 Sat

* Googleニュース日本語版のAtom/RSSフィード [tech]

フィードが始まった,と思ったらいつの間にか無くなった [2006-04-11-1],と思っていたのだけど,実はこっそりフィードされていたらしい.知らなかった.

便利.

2007-09-07 Fri

* MIPS のシフト命令 [tech]

MIPS の演算命令って,

  • レジスタ-レジスタ間の and に対してレジスタ-即値間は andi
  • 同じく or に対して ori
  • 同じく add に対して addi
  • (略

てな風に,即値を使う命令は後ろに i がつくの場合がほとんどなのだけど,なぜかシフト命令だけはそうなっていません.これってどういう経緯でこうなったんでしょう?

例えば左論理シフトの場合,シフト量を即値で指定する命令が sll (shift left logical) で,シフト量をレジスタで指定する命令が sllv (shift left logical variable) となっています.

歴史的事情なのかなあとも思ったのだけど (sllv とかが後から追加されたとか),命令のビットエンコーディングを見てもあまりそうは思えないし,少なくとも Hennessy らの 1982 年の論文の時点で既にバレルシフタは用意されていたようです.

いや,単に名前の話なのでどうでもいいのですが,授業で扱うときにちょっと面倒です (エンコーディングの説明も面倒).

(参考)

2007-09-06 Thu

* UNIX MAGAZINE Classic with DVD [tech]

UNIX MAGAZINE アーカイブDVD(4枚)創刊号(1986年11月号)から2006年4月号までの記事の99%を、PDFで収録しました。

光の速さで予約した.

アスキー書籍編集部 / UNIX MAGAZINE Classic with DVD(DVD4枚付)
アスキー書籍編集部 / UNIX MAGAZINE Classic with DVD(DVD4枚付)

2007-08-22 Wed

* ディスプレイの高さ [tech] 1 user

最近どうも肩こりっぽいというか首が疲れるというか,集中力が切れる前に頭の重さに耐えられなくなって活動限界に達するというか.もしかしてディスプレイの高さが合ってないのではなかろうか.いっちょ調節し直してみるか.

とか思ったのだけど,

モニターはやや見下ろす位置にすることで、疲れを改善することが出来ます。理想的な位置は、水平視線から、上方5度、下方15度が理想とされています。

目の疲れ・眼精疲労研究室 - 疲れ目改善法

ディスプレイは目の高さより低めにしたほうが目の疲れを軽減できます。

パソコンと肩こり解消法 - Yahoo!知恵袋

首や肩、目の筋肉に疲労をためないためには、ディスプレーの高さも必要です。
負担を少なくするために、ディスプレーを見る視線が水平から上に5度以内の範囲におさまるように設置します。

生活環境の総チェック

肩こりがひどく医者へ行ったところ、「PCの下に電話帳2冊おきなさい」といわれ、忠実に実行してみたらすっかり楽になった、とのこと。

PCのディスプレイの高さというのは、少し気にするだけで随分と身体への負担が違うのですね。

横山彰吾のブログ「雇われ社長日記」

どっちなんすか! わかりません><

多数決で考えるとやや低めがいいのかな.でも現状で既にやや低めなんですけど….

[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [Ferdinan] Thanks for the great info dog I owe you ... (2012-12-30 10:21:50)

2007-08-15 Wed

* LaTeX から PDF を作る際に Times 系フォントを埋め込む方法まとめ [tech] 41 users

一部の学会に原稿を提出するとき,フォントとしては Times を使い,かつそれを提出する PDF ファイルに埋め込め,などと指示される場合がある (IEEE とか IEEE とか IEEE とか).単に指示されるだけでなく,これを守らないと原稿を受け取ってもらえなかったり,ひどい仕上りで収録されてしまったりして悲しいことになる.

ところが,Times は売り物であって普通の PC には入っていないため (Windows に入っているのは Times New で別物),単純に例えば Adobe Distiller で「すべてのフォントを埋め込む」などと設定しても埋め込んではくれないのである (というか存在しないものは埋め込みようがない).

というわけで,LaTeX で原稿を書く場合に限って,Times ファミリのフォントを埋め込む方法,あるいはそれに準ずる方法を,わかる範囲でちょっとまとめてみる.


「どの段階でフォントが埋め込まれるのか」をよく考えないと頭がこんがらかるのであらかじめ整理しておこう.DVI から PDF を作る場合のフローは大別すると

  • dvips などで,いったん PostScript (以下 PS) ファイルを作って,その後 Adobe Distillerなどで PDF に変換する
  • dvipdfmx などでいきなり PDF を作る

の二つがあって,前者の場合は,DVI → PS の時点でフォントを埋め込むか, PS → PDF の時点で埋め込むかの二通りの選択があることに注意する.


本物の Times 系フォントを埋め込む (製品を買って来る)

Times ファミリのフォントは例えば Linotype などが販売している.それを買って来て適当な場所にインストールするというのが正攻法.なのだが,買ったことないので私はよく分からない.

本物の Times 系フォントを埋め込む (Acrobat Reader 3 付属のものを使う)

実は Linotype の Times フォント (など) は,Acrobat Reader のバージョン 3 以前には付属していた.今でも UNIX 用のものは Adobe の ftp サーバに置いてあるので,これを入手すれば本物の Times が手に入ることになる.ただしこれはライセンス的にはグレーっぽいのでおすすめしない.

おすすめはしないが一応手順を書いておくと:-),まず

をダウンロードしてきて展開する.中に READ.TAR があるのでさらに tar で展開すると fonts というディレクトリがあって,その中にいわゆる基本 14フォント (Times,Helvetica など) が pfa と呼ばれる形式で置いてある.

とりあえず Times ファミリだけでよければ,

  • Times-Roman
  • Times-Italic
  • Times-Bold
  • Times-BoldItalic

の 4 つを取り出しておく.これをどこか適当なフォルダにおいて,そのフォルダを Adobe Distiller の [設定]-[フォントの場所] に追加しておく.

以上のようにしておけば,

% dvips -Ppdf hoge.dvi

のようにして普通に作った hoge.ps ファイルを Distiller にかけることで Times が埋め込まれるようになる.-Ppdf オプションで作った PS ファイルには基本14フォントは埋め込まれず,/Times-Roman とか /Times-Italic とかのフォント名だけが書き込まれている.Distiller がこれを見て,必要なフォントを埋め込むことになる.

同様に,dvips とか dvipdfmx とかがこのフォントを使うようにも設定できると思うけど,面倒なのでパス.

(参考) http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/23063.html

Times クローンのフォントを埋め込む (dvips 時)

多くの LaTeX のディストリビューションには,Times のクローンフォントが付属して来る.(URW)++ Design & Development の Nimbus Roman No9 L なるフォントファミリらしい.

teTeX 2.x 以降の場合 (UNIX の場合),

% dvips -Pdownload35 hoge.dvi

とすれば hoge.ps にこれらのフォントが埋め込まれる.W32TeX (Windows) の場合は download35 が無いようなのだけど

> dvips -Pdl hoge.dvi

でよいだろうか.

上記の方法がダメな場合 (インストールされている LaTeX ディストリビューションのバージョンが古い場合など) は,

のようにするとうまく行くかも知れないらしい.

なお,これらの方法で作成した PDF のフォントのプロパティを Acrobat で見ると,フォント名はしっかり NimbusRomNo9L とかになっている.なので, IEEE の指示である「Times を使え」に,厳密には従ってないのではないかという一抹の不安が頭をよぎるが,気にしない方が健康によい.(そもそもクローンを使うという選択をした時点でわかり切ったことである)

Times クローンのフォントを埋め込む (dvipdfmx 時)

W32TeX (Windows) の場合,

> dvipdfmx -f dlbase14.map hoge.dvi

で,Nimbus Roman No9 L が埋め込まれた hoge.pdf ができるようだ.UNIX でこれに対応する方法があるのかどうかはよくわからない.

(追記 2007-08-16) UNIX の場合,

% dvipdfmx -f dvipdfm_dl14.map hoge.dvi

でよさそうです.(追記ここまで)

Times クローンのフォントを埋め込む (distiller 時)

さて,このクローンフォントを PS → PDF 時に埋め込むことはできないのだろうか.これができれば,PS ファイルしか手元にない場合も Times を埋め込んだ PDF を作れるようになるはずだ.

dvips -Ppdf などで普通に作った PS ファイルには,前述のように /Times-Roman とか /Times-Italic とかの名前だけが指定されている.クローンフォントは名前が違うので,そのままでは Distiller は埋め込んでくれない.

じゃあ,名前変えればいいんじゃね?

というのが自然な発想である.手段は二通りあって

  • PS ファイルの中に現れる Times-Roman 等を Nimbus なんとか等にごっそり置換する
  • フォントファイルの中に現れる Nimbus なんとか等を Times-Roman 等に置換する

前者は難しくないと思うので読者にお任せする.(文章本体に「/Times-Roman」とかの文字列が出て来る場合のことを考えなくていいのか? という心配はあるけど…)

で,後者だが,最初は単純にファイルの中に出て来るフォント名を機械的に置き換えればいいのかと思ってやってみたのだが,うまくいかない.もうちょっと真面目にいじる必要があるようだ.

必要なものは,まず Nimbus Roman No9 L のフォントファイルそのもの.多くの LaTeX のディストリビューションに

  • utmr8a.pfb (Times Roman 相当)
  • utmri8a.pfb (Times Italic 相当)
  • utmb8a.pfb (Times Bold 相当)
  • utmbi8a.pfb (Times Bold Italic 相当)

という名前で含まれているのでそれを用意する.手元にない場合,例えば CTAN だと

にある.次に,これらのフォントファイルを操作するために t1utils (http://www.lcdf.org/type/) をインストールしておく.FreeBSD の ports だと print/t1utils にある.

これで準備ができたので,上記の pfb ファイルを t1disasm で逆アセンブルし,フォント名を置き換えて,t1asm で再びアセンブルし直せばよい.例えばこんなスクリプトを用意して

% ./fake_times.pl utmb8a.pfb utmbi8a.pfb utmr8a.pfb utmri8a.pfb

と実行すると,fake_times_utmb8a.pfb などの 4 つのファイルが生成される.これをどこかにおいて Distiller の [設定]-[フォントの場所] に追加してあげればよい.

このようにして作成した PDF ファイルは,Acrobat でフォントのプロパティを見ても Nimbus なんとかの名前が出て来なく,本物の Times が埋め込まれているかのように見えるようになる.

ただし,たぶんこの方法もライセンス的にグレーというか,少なくとも Linotype の商標権は侵害していることになる気がするので,良い子は真似してはいけない.(← じゃあ書くな)

IEEE PDF eXpress を使う

で,長々と述べておきながらちゃぶ台をひっくり返すのだが,投稿先が対応しているのであれば,IEEE PDF eXpress を使うのが一番楽かも知れない.

PS ファイルをアップロードすれば,PDF に自動的に変換してくれる (試したことないけど TeX のソース一式を送ってもよいらしい).フォントのプロパティを見ると Times-Roman とかになって埋め込まれているので,おそらく IEEE が正規にフォントのライセンスを購入しているのだろう (知らんけど).

投稿先の会議とかが対応してくれないと使えないのが難点だが,要するに Conference ID を入れればよいだけなので,その時期に投稿締め切りがありそうな適当な会議のうわなんだおまえやめr


以上,夏休みの自由研究でした.

関連記事:
[2010-09-19-1] PowerPoint から LaTeX 用の EPS ファイルを全自動で生成する
[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [StevenAwaiz] At all times the potency of men played a... (2017-05-27 21:32:11)

* [JustinDag] Вы попали в самую точку. В этом что-то е... (2017-05-27 21:16:02)

* [Jerrywer] Нечего сказать - промолчите, дабы не зас... (2017-05-27 20:29:25)

* [Blakefoumn] Это можно бесконечно обсуждать.. ----- ... (2017-05-27 20:12:54)

* [Blakefoumn] В этом что-то есть. Теперь мне стало всё... (2017-05-27 18:57:05)

* ...

2007-08-07 Tue

* 「なかのひと」にアクセス元の性別・年齢推定機能 [tech]

例えば、A女子大学からのアクセスは98%が女性で18〜22歳、B銀行からのアクセスは70%が男性で平均45歳――など、学校や企業が公表している男女比や年齢データを活用。一般のISPからの接続には、ネットユーザーの男女比・年齢の平均値をあてはめている。

閲覧者を個別に追跡して巡回先の傾向から推定,みたいな危険気味なのを一瞬想像してしまった.(つか Google あたりが既にやってそうでアレだ)

2007-07-16 Mon

* 「自動機械萌え」というジャンル [tech]

スラッシュドット ジャパン「縄と釘でプログラミング?」という記事で アレクサンドリアのヘロンの名前を久しぶりに目にした.

子どもの頃,たぶん学研のひみつシリーズあたりで読んだのだと思うのだけど,ヘロンの発明が大好きだった.特に自動ドア.

ヘロンに限らずこの手の自動機械モノ (って「この手の」の範囲ははっきりしないのだけど,たぶん単純でしかも割と身近な機構の組合せで連鎖的に動作するもの) がかなり好きな子どもだったように自分では記憶している.

似たようなのでよく覚えているものでは,何かのマンガで読んだ,朝になると自動的に朝食とかの準備が始まったりなんかするやつ.今でいうピタゴラ機械みたいな仕組みになっていて,牛乳屋さんが牛乳ビンを置くと,卵が転がりだしてフライパンに割れて落ち,ガスコンロの火が入り…,で途中はさっぱり覚えてないけど,最後はアドバルーンか何かの浮力でカーテンが巻き取られてユーザが目を覚ますという.ああ,誰かコピーとか持ってませんかね.たぶん小学館あたりのなんかの雑誌だと思うのですが.

で,大人になった自分がエンジニアという職業を選んだのって,その頃の刷り込みの影響が大きかったんだろうなと改めて思います.いや,その頃からヲタの片鱗が現れていただけかも知れませんが.


なお,ヘロンの「縄と釘」機械の設定を「プログラミング」と呼ぶのが妥当かどうかについては,id:sumii があとで詳しく書く予定です.ご期待ください.(malaメソッド)

2007-07-10 Tue

* 「ドコモとの協議が不調」,MVNOが総務相に裁定求める [tech]

MVNO(Mobile Virtual Network Operator)の日本通信は,NTTドコモから3G通信網を調達するための両社の協議が難航しているとして,総務大臣に裁定を求める申請をした。

bモバイルで有名な日本通信がドコモともめているらしい.はてさて.

2007-07-09 Mon

* 広い画面やマルチモニタ環境でポインタを見失わないための設定方法 [tech]

最初,Ctrl をプレスしっぱなしにして「あれ? 動かない」とか悩んだ. Ctrl を離す瞬間に出るのか.

しかしマウスをくるくると軽く回すんじゃダメなんですかね.

2007-07-09 Mon

* 自動販売機が受け入れてくれない10円玉 | エキサイトニュース [tech]

自動販売機の内部で機械がどんな風にコインを識別しているか、などの構造については詳しくはお話できないんですが、機械の中で硬貨を飛ばす時に、ギザギザのあるものとないものとでは回転数が違うので、飛距離に差がでるんです。その違いで機械はギザギザのある10円玉を10円玉と認知しないんです

飛距離…! なんだかすごい判定法使ってるんだな.

2007-07-04 Wed

* 小さな USB メモリ各種 [tech]

ソリッドアライアンスから裸のUSBメモリ:

裸(ハダカ):

PCパーツブランド『挑戦者』ET-128M 製品紹介:

A-DATA Technology - Reader Series microSD + micro Reader(microSD+USB interface):

ポケットビットミニ(USM-H):

(追記) コメントで情報を頂いたので追加.

iDisk Diamond 1GB USBメモリー.これもソリッドアライアンス.

[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [baby touch] iDisk Diamondは駄目ですか?http... (2007-07-11 17:10:33)

2007-06-28 Thu

* World Clock いろいろ [tech]

World Clockr (JavaScript.数を自由に増やせる.Google Map から場所を選べる)

Flash Map of World Time Zones Online (Flash.アナログ表示を選べる)

time and date.com (付加情報が豊富.タイムゾーン略称から探したりするのに便利)

海外にいるときとかに,ブラウザのタブに開きっぱなしにしとくと便利です.一度開けばネットワーク切れても大丈夫.あと,海外への論文投稿でギリギリまでねばるときとかにも重宝しますww


ギリギリまでねばるというのがどういうことかというと,例えばついこの間採否通知が来た某会議は,投稿数が「more than 1300」だったらしいのですが,私の投稿番号は 136x でした.ちょwwwwwwww

2007-06-14 Thu

* LED残像ディスプレイ扇風機 [tech]

自転車のタイヤとかでやると面白いかも.


とか思ったら余裕で既出だった.

2007-06-13 Wed

* Image Magick で GIF アニメーションを作る [tech] 1 user

個人的メモ.

% convert -delay 8 -resize 80% hoge???.png output.gif

-delay は 1/100 秒単位.繰り返し回数を指定するなら -loop を使う.指定しなかったらエンドレスになるようだ.


どこで GIF アニメを使っているかは秘密(ぉ.

2007-06-12 Tue

* ハイパー漢字検索を勝手に Ajax 化 [tech] 1 user

pya! filter [2006-08-15-1] に引き続いて「他人のふんどしシリーズ」第2弾.

先日 [2007-06-06-2] ちらっと触れた ハイパー漢字検索 の Ajax 化を,勢いのみでやってみた.怒られたらすぐやめます.

サーバを2 段通していて,しかもキャッシュとか全然してないという状況なのでかなりレスポンスが悪いですが,まあとりあえず.


こういう風に同期型サービスを非同期化するという作業を「汎用的に」提供するメタサービスが実現できたら,ひょっとして需要あるのかもとか思った.そういうのって既にありますかね?

2007-06-06 Wed

* 「HTML Entity Character Lookup」と「ハイパー漢字検索」 [tech]

HTML Entity Character Lookup:

これを見て,ハイパー漢字検索を思い出した.以前よく使ってたのがいつからか使えなくなっていて忘れかけていたけど,リニューアルして復活してたらしい.

ハイパー漢字検索:

これも Ajax 化すると便利なのかも?

関連記事:
[2007-06-12-2] ハイパー漢字検索を勝手に Ajax 化

2007-05-25 Fri

* 英文校正サイト NativeChecker [tech] 1 user

あー,そういえば,こういう作業って毎日のように手動でやってるわ.すばらしい.

2007-05-21 Mon

2007-05-19 Sat

2007-05-18 Fri

* w3m でファイルを強制的に HTML として読む [tech] 1 user

localでみる時に w3m -T text/html しないとだめという問題があります。

w3m で表示してから v でもいいかと思いますし。

おおお.

hoge.html.ja みたいなファイルをローカルで見るのが面倒だといつも思ってたけど,これでちょっと幸せになった.

ローカル用に 拡張子 → MIMEタイプの対応づけを決め打ちできる方法があるともっと嬉しいのだけど.

[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [Noboru] It\'s great to find an epexrt who can ex... (2013-07-04 17:09:16)

2007-05-17 Thu

2007-05-16 Wed

* false positive と false negative [tech] 2 users

どっちがどっちだかよくわからなくなるという話題ですが,そりゃ当たり前です.そのシステムがどちらを positive でどちらを negative であると扱っているかに依存しているので,それが明示されていないか,あるいは文脈上明確になっていないと,混乱するというか不定です.

false positive

  • 「本当はスパムじゃないのにスパムと判定された」

false negative

  • 「本当はスパムなのにスパムじゃないメールとして判別された」

「スパムを検出するシステム」であれば上記の通りですが,「スパムじゃないメールを検出するシステム」について議論するならば positive / negative は逆になります.

そういう意味で,個人的には false accept / false reject とかの言い方の方が誤解の可能性が減るので,好んで使います.

[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [Dennisbyday] With that in mind, project managers and ... (2017-05-27 14:21:55)

* [DavidLar] Of course the cost will have to figure i... (2017-05-27 02:06:55)

* [XRumerTest] Hello. And Bye. (2017-05-26 11:53:46)

* [JesseJaw] One may want to take some chairs to a ca... (2017-05-25 08:05:00)

* [RichardDooke] If you don\'t are training the "sel... (2017-05-23 00:07:26)

* ...

2007-05-03 Thu

* itojun2.0 (RE: IPv6 Type 0 Routing Header issues) [tech]

よくわからないけど大変だということはよくわかった.

2007-05-02 Wed

* 日本初・民営刑務所 囚人が「ソフト開発」 [tech]

2007年05月02日 otsune 「Ruby on Jails」か

http://b.hatena.ne.jp/entry/http%3A//www.j-cast.com/2007/05/01007306.html

誰がうまいこと言(略

2007-05-02 Wed

* 『プレイステーション9は粉末状で鼻から吸引、脳に直接作用』 [tech]

イーガンっぽい.

2007-04-29 Sun

2007-04-26 Thu

* 『2万台の新世代ミドルレンジGPU「GeForce 8600GT」と「GeForce 7600GT」と比較する』 [tech]

GeForce を2万台つないで超並列処理する話かと思ってワクテカしながらページを開いた.がっかりだよ!!

2007-04-24 Tue

* 十条電子、自動的に暗号化されるセキュアUSBメモリ「Disk Key Cipher」 [tech]

利用にあたっては8桁から32桁のパスワードによる本人認証が必要で、3回間違えるとメモリ内のファイルが消去される。

ちょwwww

2007-04-22 Sun

* 正規表現を//で囲む理由 (にぽたん - 正規表現信者の憂鬱) [tech]

大爆笑した.

2007-04-18 Wed

* 熱雑音 [tech] 1 user

私も物理はよくわかってませんが,熱雑音の発生原理自体は「真にランダム」と見なしてよいけど,それを「乱数として使えるように取り出す」系がランダム性を保ってくれているかどうかが問題,なんじゃないかなあなどと思っています.極端な例を挙げると,えらく時定数の大きい読み出し回路をつけて,高レートでサンプリングしたら,もうランダムとは呼べない,みたいな.

では,例えば「放射性崩壊」を利用したようなものとは何が本質的に違うのかというと,それらのように量子力学的現象の結果をそのスケールのまま乱数として取り出すのとは違って,「抵抗の両端に生じる電位差」などの巨視的スケールの現象として読み出さなくてはならない点,なのかなあと.

2007-04-18 Wed

2007-04-17 Tue

* 21大ぽしゃり技術 [tech]

うーん,なんか同列に語れないものが入り混じっている気がする.

[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [Tapas] Call me wind becasue I am absolutely blo... (2013-03-22 07:07:09)

2007-04-06 Fri

* 家電製品ミニレビュー - iRobot「ルンバ・スケジューラー 5510」 [tech]

どうでもいいが「センサリング」とか「センサを発する」とかいう表現はなんとかならないものか,とか思うのは私が既に老人だからなのだろうか.

2007-04-03 Tue

* YouTube+BlogでTVコンテンツの視聴形態が変わりそうなのは若い人だけ...か!? [tech]

先日、DVDレコーダーを作っている部門の偉いさんと話をしていたのだが、「(著作権問題を無視したとすれば)YouTubeとBlog, SNSを組み合わせたTV番組の視聴スタイルって最高だよね!」という話題をちぃいいいいっとも理解してもらえなかったのがものすごくショッキングだった。


ふとこんな言葉を思い出した:

重役の七割が賛成するプランは時すでに遅く,
七割が反対するプランでやっと先手がとれる

松下 幸之助

で,この方の勤務している「某家電メーカー」はどこなんだろうとか下世話なことも思った.

2007-03-11 Sun

* Windows のメッセージボックスのテキストはクリップボードにコピーできる [tech]

ずっとできないもんだと思って不満だった.実は Ctrl-C で普通にコピーできるらしい.ていうかひどいユーザインタフェースの典型例だ.

Firefox はダメらしい.むう.

最終更新時間: 2011-05-21 04:08


Shingo W. Kagami - swk(at)kagami.org