僕はよく文章の末尾に「、、、」だとか「。。。」を使うのだけれど、これって正しい日本語ではない。本来なら「・・・」などが正しい手法だろう。
これらを使うようになったのは、パソコン通信時代に、同じ BBS にいた友人が使っていたのを見て、あ、い〜なと思ったのがきっかけ。なんとなく「・・・」よりも「、、、」の方が「間」をうまく表現しているような気がしたのだ。
で、まぁ、社内メールでもこいつらを使っていたのだけれど、いつのまにか同僚が使うようになってきた。
友人から僕へ伝わり、僕から同僚へ伝わる。非常に小さな出来事だけれど、このデキゴト、文化が伝播していくマイクロモデルではないか?(笑)
実は、僕もゴスロリの定義ってどんなん?状態だったんだよ。いままで話題に出たときは、なんとなく話を合わせちゃってたけど(笑)
またしても、きたさんの日記を参考に XEmacs を使いやすく。「機種依存文字があると色付きで表示」とあるけど、色が付かないぞ、、、と思ってソースを見たら、XEmacs 21.1 系ではダメらしい。前に「そろそろ 21.4 系に」と書いたけど、職場ではいまだに 21.1.14。落ち着いたらなんとかしたいんだけど、落ち着くのはいつの日か?
ちうわけで。google イメージで「ゴスロリ」を検索。
ま、世の中完全無欠というわけにはいかないよな
と、izonmoji-mode で色が付かないのが悔しいので、仕事の裏で、XEmacs 21.4.11 のコンパイルをしていた。とりあえず、コンパイルは終わったけど、21.1 系をいきなり消すのはちょっと怖いので、21.4.11 はインストールせず使ってみる。ただ、21.1 系と 21.4 系では、input-method の指定が違うので、初期化ファイルの中で指定している部分を変更せねばならない。まだ、共用にしたいので、こんな感じで分岐してみる。
(if (= 21.4 (string-to-int emacs-version)) (set-input-method 'japanese-egg-wnn) (select-input-method 'japanese-egg-wnn))
などと、やっていたら、XEmacs 本家では、21.4.12 がリリースされているではないか。しかも、Gamma から Stable にステータスがアップされている。こりゃ、21.4.12 でもっかいコンパイルだな。
正しく Web ページが表示されているのかを自動テストするための Perl モジュール。アクセスする URL と送信するパラメータを指定し、帰って来たデータの中に指定の文字列が入っていれば成功。入っていなければ失敗として表示するみたい。いわば Web ページ版 Unit Test ツールってとこか?
ネタ元は PHP-users ML。
iTunes のアルバムイメージを自動でダウンロードしてくれるらしい。後で試してみよっと。ネタ元は、@YumemiyaNEXT WEB SITE。
というわけで試してみた。イメージ検索は、Amazon.(com|uk|jp|de) の他、Google、Walmart、Megasearch、AMG、iTunes Music Store から取得できるようだ。まぁ、日本語対応を考えると、実際に使えるのは Amazon.jp と Google くらいかな?
ま、それでも自分で検索しなくても曲が始まると勝手に画像を探してくれるのは非常に便利。これは常用しても良さそうだ。
で、設定画面によると、検索には Web サービスを使っているみたいなんだけど、Amazon(に限らないけど) の Web サービス検索って、Web アプリでない一般アプリ(?)に組み込んでも良かったんだね。今までの事例だと Web サイト上での利用にフォーカスが当たっていたので、Web アプリ上で使うことしか思いつかなかった。
なんかもう悔しかったので「牛丼作ったるねん!」と、その足で東中野のライフへ行った。牛肉、玉ねぎ、シラタキと赤ワインなんかも買い入れて帰宅。
なんか良いレシピは無いものか?と検索したら「牛丼店の味を家庭で再現 牛丼の作り方」というのがあったので、これに倣って作ってみた。
ちょっと肉が固めになっちゃったけど、なかなか美味しくできた。問題は、もとのレシピで4〜5人前となっているところ、その2倍の量を作ってあるってことだ。明日は一日三食牛丼だな(笑)
ニコ動 → mp4 化した動画を見てみようと思って、N810 の Media player を起動したら、RDZ-D97A の文字が出てきた。RDZ-D97A というのは、オレが使っているソニーのスゴ録の型番。どうやら、N810 標準の Media player は DLNA に対応していたようだ。
スゴ録の DLNA 機能では、アナログ放送から録画されたものしかリストアップされない。ここでも地デジのダメさ加減が出ている訳だが、アナログ放送だけでも見れると良いなと思って試してみた。しかし、残念ながら「File format not supported」と言われてしまって再生できず。惜しいなー。
はてブかどこかからかで『車のベクター素材の決定版!6000車種のベクターデータを収録した「6000 vector Cars」』というエントリを知って、もしや!?と思って「6000 Vector Cars」からダウンロードしてみたところ、あったよ、プントのデータも。
これは良くできてるなー。
maemoCJK では東風フォントが使われているのだが、これを入れ替えることができるとの情報を「N800 IPAフォントとroot権限」と「N800 フォントの件(再)」というエントリで得た。こちらの情報は N800 だったが、この辺は N810 でも同じだろうと思って試してみたところ、アッサリ OK。
利用したフォントは、「M+ と IPAフォントの合成フォント」で公開されているもの。これに決めたのは、公式サイトの画像が風車だったから(笑)
昨年末くらいに「エンジニアサポート新年会 CROSS 2012」の Ustream について「配信しませんか?」とオファーを頂いたので、ちゃっかり参戦してきた。
当初、自分の認識では「撮影だけのお手伝い?」といったところだったんだけど、あまり話が進んでいないところを見つけて、急に出しゃばっていろいろと決めさせて貰ったりも。ちなみに各会場のハッシュタグはオレが提案したものだったり。
今回のイベントは、5会場に分かれていて、それぞれの講演で Ust する計画。1000人規模のイベントで無線 LAN は鬼門なので、Ust は有線 LAN を使った。会場のパーティション等はイベント会社さんが設置してたけど、LAN 配線は Ust 班の仕事になっており、当日の昼頃から配線作業。今回の Ust 班は、インフラ系の勉強会で配信をしてる人達が多かったので、この辺の作業はスムーズに進んだ。
つーか、個人持ち込みのイーサケーブルの充実っぷりが凄かった。プロ(?)は違うなぁと感心するばかり。
配信機材は、イベントスポンサーの Cerevo さんからLive Shellを各会場分5台やビデオカメラ数台もお借りして使用させて頂いた。オレが担当した会場では、Cerevo さんのビデオカメラではなく、先週、ついうっかり買ってしまった NEX-VG20 と Live Shell の組み合わせで配信。
Live Shell を使った本番は、今回が初めて。個人でも持っているので、多少は触っていたけど、本番となるとちょっとドキドキ。ただ、実際に配信を始めてしまうと、機器の操作は何もいらず、極めて安定していた。
こうなると、Ust 担当としてはカメラワークに注力すべきかな?と思って、多少はがんばってみた。一番頑張ったのは「大宴会+LT大会」のサントリーさんの枠。ザ・プレミアムモルツの美味しさを説明しているおねーさんをアップで追い回すカメラワーク、楽しんで貰えただろうか?(笑)
このところ MySQL の CUI であるところの mysql コマンドを利用しているんだけど、テーブル名などの補完機能が PostgreSQL の psql コマンドと違っていてウニャウニャした気持ちになっている。
だったら psql コマンドで MySQL のテーブルを操作できたらいいんじゃね?と思って、mysql_fdw を試してみた。
最近の PostgreSQL には Foreign Data Wrapper(FDW : 外部データラッパ)という機能があって、PostgreSQL の外部に存在するデータベースからデータを引っ張ってきたりできるようになっている。
mysql_fdw というのは、この FDW を使って「PostgreSQL から MySQL を操作しちゃおうぜ」という野心的な拡張。
では、インストールしていく。
MySQL は、dotdeb を使ってこの辺をインストールした。libmysqlclient-dev は、mysql_fdw をコンパイルする際に必要だった。
PostgreSQL は、postgresql.org の Debian 用パッケージを利用して、この辺のバージョンをインストール。
mysql_fdw は GitHub から clone してきた。そしてコンパイルして、インストール。
$ git clone https://github.com/dpage/mysql_fdw.git
$ cd mysql_fdw
$ PATH=/usr/local/pgsql/bin/:/usr/local/mysql/bin:$PATH make USE_PGXS=1
$ sudo PATH=/usr/local/pgsql/bin/:/usr/local/mysql/bin:$PATH make USE_PGXS=1 install
これで準備は完了。
次にデータベース側の設定を行なう。
MySQL 側には次のようなデータベースとテーブルが存在しているとする。
テーブル構造はこんな感じ。これ、何かというと、書籍「効率的なWebアプリケーションの作り方」で解説されているサンプルで使われているテーブル。
mysql> SHOW COLUMNS FROM location;
+------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(255) | NO | | NULL | |
| created_at | datetime | NO | | NULL | |
| updated_at | datetime | NO | | NULL | |
+------------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
そして location テーブルの中身はこちら。神楽坂とか青山とか、いい所だよね。
mysql> SELECT * FROM location;
+----+-----------+-------------------------+-------------------------+
| id | name | created_at | updated_at |
+----+-----------+-------------------------+-------------------------+
| 1 | 神楽坂 | 2013-01-09 10 : 12 : 53 | 2013-01-09 10 : 12 : 53 |
| 2 | 青山 | 2013-01-09 10 : 12 : 53 | 2013-01-09 10 : 12 : 53 |
+----+-----------+-------------------------+-------------------------+
2 rows in set (0.00 sec)
(: と : に挟まれた文字列がアイコンと判定されてしまったので、時刻部分へ意図的にスペース入れてる)
これを PostgreSQL から使えるようにしてみる。PostgreSQL 側のデータベース名などはなんでも良いんだけど、MySQL 側と区別するために、ちょっとだけ変えて次のようにしてみる。
データベースを作る。PostgreSQL のユーザ作成とかその辺は端折る。
$ createdb p_rentacar
psql コマンドで p_rentacar データベースへ入る。
$ psql p_rentacar
ここから psql 上の操作。
まずはデータベースへ mysql_fdw 拡張を読み込む。
p_rentacar=# CREATE EXTENSION mysql_fdw;
CREATE EXTENSION
次に MySQL のサーバ設定をする。127.0.0.1:3306 で稼働している場合の設定。mysql_svr は任意の名前。
p_rentacar=# CREATE SERVER mysql_svr
p_rentacar-# FOREIGN DATA WRAPPER mysql_fdw
p_rentacar-# OPTIONS (address '127.0.0.1', port '3306');
CREATE SERVER
上で設定した mysql_svr へ接続する MySQL 側のユーザを設定する。USERNAME と PASSWORD は自分で使っているアカウントに変更して実行して欲しい。
p_rentacar=# CREATE USER MAPPING FOR PUBLIC
p_rentacar-# SERVER mysql_svr
p_rentacar-# OPTIONS (username 'USERNAME', password 'PASSWORD');
CREATE USER MAPPING
ここまでで準備は完了。では PostgreSQL のテーブルを作成する。id や name などのデータ型は、MySQL 側と合うように定義しておく。
p_rentacar=# CREATE FOREIGN TABLE p_location (
p_rentacar(# id INTEGER NOT NULL,
p_rentacar(# name TEXT NOT NULL,
p_rentacar(# created_at TIMESTAMP NOT NULL,
p_rentacar(# updated_at TIMESTAMP NOT NULL
p_rentacar(# )
p_rentacar-# SERVER mysql_svr
p_rentacar-# OPTIONS (table 'rentacar.location');
CREATE FOREIGN TABLE
「CREATE FOREIGN TABLE」となっているところに注目。SERVER には上記で作成した mysql_svr を指定し、OPTIONS の中で MySQL の rentacar データベースの location テーブルを参照するように指定している。
これで MySQL のデータを PostgreSQL から参照できるようになった。実行してみよう。
p_rentacar=# SELECT * FROM p_location ;
id | name | created_at | updated_at
----+--------+-------------------------+-------------------------
1 | 神楽坂 | 2013-01-09 10 : 12 : 53 | 2013-01-09 10 : 12 : 53
2 | 青山 | 2013-01-09 10 : 12 : 53 | 2013-01-09 10 : 12 : 53
(2 行)
先ほどの MySQL での実行結果を並べておこう。同じ結果だよね。
mysql> SELECT * FROM location;
+----+-----------+-------------------------+-------------------------+
| id | name | created_at | updated_at |
+----+-----------+-------------------------+-------------------------+
| 1 | 神楽坂 | 2013-01-09 10 : 12 : 53 | 2013-01-09 10 : 12 : 53 |
| 2 | 青山 | 2013-01-09 10 : 12 : 53 | 2013-01-09 10 : 12 : 53 |
+----+-----------+-------------------------+-------------------------+
2 rows in set (0.00 sec)
データの追加もできるかな?と思って実行してみたけど、これは対応していない様子。FDW のことは、あまり理解していないのだけど、たぶん参照のみしかできないような。
p_rentacar=# INSERT INTO p_location (id, name, created_at, updated_at)
p_rentacar-# VALUES (3, '中野坂上', now(), now());
ERROR: 外部テーブル "p_location"を変更できません
とはいえ、これで psql の補完機能が使えるわけだ。
ちなみに何が嬉しいかというと、mysql コマンドの場合は、次のように入力したところで TAB キーを2回押すと、補完候補が出てくる。出てきてくれるのはありがたいのだけど、表示されるだけだ。
mysql> SELECT * FROM lo
load data from location location.created_at location.id location.name location.updated_at lock tables
これが psql コマンドの場合、このように入力したところで TAB キーを1回押すと、
p_rentacar=# SELECT * FROM p_lo
このように補完される。
p_rentacar=# SELECT * FROM p_location
これに慣れちゃってるので、mysql コマンドでの補完が物足りないのであった。
【追記】FDW は、次のバージョンから更新も可能になるみたい!!
@suzuki ちなみにFDWは次のバージョンから更新可能になるのではないかと思われます。これで安心ですね!
— Satoshi Nagayasuさん (@snaga) 2013年1月27日
プレミアム会員は月50冊分までなのだけど、「55冊分も送られてきたけど?」と BOOKSCAN から通知が来た。今までここまでオーバーしたことは無かったのに、なにをやっているんだか。。。
そして、与えられた選択肢は5つ。
それぞれ幾ばくかのお金がかかる。
以前は、「超過分は翌月分の冊数で相殺してください」みたいにしてくれたこともあったんだけど、もう古き良き時代は終了ってことなのかなぁ。。。まぁ、5冊分も超えたことは無かったので、これまでもこの対応が普通だったのかも知れないけど。
Emacs に「選択したテキストを Web 検索する」コマンドが搭載されていた。と言っても最新版(git HEAD)でのお話。
昨日、Emacs を最新版に更新した(コンパイルしなおした)ので、さらにその前に HEAD から入れたときからどんな変更点があったのかな?と M-x help n
で NEWS ファイルをつらつら眺めていたら発見した。
The new M-s M-w key binding uses eww to search the web for the text in the region.
つまり、調べたいテキストを選択して M-s M-w
を叩けば、eww を使った Web 検索できるという話。例えば *scratch*
バッファに「雑文発散」と書いて、この部分を選択状態にしておく。
そして、M-s M-w
を叩くと、次のように eww ブラウザで Web 検索の結果が表示された。
ちなみに、検索結果が eww 標準の DuckDuckGo ではなく Google になっているのは、次のような設定をしているから。
(setq eww-search-prefix "https://www.google.co.jp/search?q=")
この辺りの話は「Emacs 24.4 の新機能・内蔵ブラウザ eww.el を調べてみた」に少し書いたので、興味があればそっちも読んでくださいな。
コーディング中にこの Web 検索機能を使うかと言うとどうなんだろう?って思うけど、文章を書いているときには使えるのかな。例えば、この日記みたいなヤツを Emacs で書いている場合とか。。。まぁ、でも、Chrome とかのブラウザで検索するのに慣れちゃってるから、ブラウザを使うかなぁ(笑)
CLI の中で閉じている状態で Emacs を使うなら便利なのかもなぁ。
Before...
▽ キムラ [コミティアやコミケで犬子友(後輩?)が着ていたのはゴスロリコス?]
▽ すずき [そうらしいんだよね>ゴスロリコス]
▽ スズキ@カタカナ [中南米あたりのバンドの名前みたい>ゴスロリコス]
▽ ワッキー [ゴスロリっていいよね]
▽ ワッキー [ゴスロリっていいよね]