NEC からこないだ出たばかりの、Draft 11n, GbE, コンパクトなルーター。
一時期はセンチュリーシステムズのルーターが欲しいと思っていましたが、スパゲッティ配線をどうにかするという目的の元、民生機から選択。
以前の環境
ルーター: BRL-04FMX
ギガビットスイッチングハブ: FXG-05IMV
無線アクセスポイント: 無し
新しい環境
ルーター/ギガビットスイッチングハブ/無線アクセスポイント Draft n 対応: WR8500N
最近になってようやく GbE ルータがいくつか出てきたおかげで、ワイヤレスも含めた全部入りまで出てきました。
電源ケーブル3本を1本にできるのが一番大きいと思います。
あと、先日購入したノート PC が Draft n のワイヤレス対応と、Bluetooth 内蔵していることも含め、今後はできる限りのデバイスをワイヤレスにする予定。
電源タップもコンパクトなものに変更してみました。
通常電気店でよく見かける一列に並んだ6口のものを使っていましたが、あの形状もスパゲッティの要因の一つな気がしてきて。
理想は、TAP BOX のようなインテリアを兼ねたタップがもう少し出てきてくれると嬉しいです。
モデムとルーターの接続や、ストレージサーバ、キューブマシンの接続は有線 LAN でつなぐのですが、これも線が余るので、一番短い 0.5m のものに変更。頼めば長さを調節してくれる店も秋葉にいけばありそうな気がしますが、どうでしょう。
# きっとなくても、はづきさんが作ってくれるに違いない。
実際にはもう少しデバイスがありますし、各種ケーブルが複雑にスパゲッティしてますが、電源タップはあっという間に埋まります。
ワイヤレスアクセスポイントが入ったら、さらに電源ケーブルが必要になっていました。
電源ケーブルの数が減るのはかなり効果が大きいと思います。線もあまりがちでしたし。
スピーカーとマウスは Bluetooth 対応品が出てきたら交換していきたいところ。
キューブマシンは今後、録画サーバーになりそうなので、そうしたらマウスもキーボードもいりませんし、外付けキャプチャーデバイスの USB と電源ケーブルもなくせそうです。
今後は有線でつなぐデバイスは極力買わず、Bluetooth 対応、せめて有線でもバスパワー駆動のものを選択したいと思います。
あとは電気が無線で飛ぶ世界にならないでしょうか。
胃カメラのことです。まずは感想。予想以上に疲れるものでした。
若いうちにやるものじゃなかったかもしれませんが(若いと検査時の反射が強くてツラい)、結果的には症状がはっきりしたし、胃が綺麗なこともわかったので、やっぱりよかったのだろうと思います。
キッカケ
数年前から、外で誰かとご飯を食べに行ったりすると、苦しくなることがありました。
喉に何かが詰まったようになり、ゲップをしても解消されず何回でも出せる状態。
しかも単純な時間経過じゃ治らず、いっそのこと吐いてしまうと多少楽になるかんじ。
空気を吸うのもつらいくらい苦しくなることもあるので、そろそろ真面目に対処を考えたほうがよいと調べてみると、症状から見て、おそらく逆流性食道炎なのではないかとあたりをつけました。
逆流性食道炎 – Wikipedia
さっそく胃カメラの設備が整った病院を探し、予約をとった次第。
自分から胃カメラお願いしますなんてどんな物好きかと周りからも言われましたが、気になる芽はすぐに刈り取るにこしたことはありません。
検査前準備
予約時にアレルギー検査のための採血は終わっています。
朝は何も食べません。当然ですが。これは問題ありません。
濡れることがあるとのことで、上だけ着替えました。
部屋に通されると、まず胃の泡を消して見やすくなる飲み薬を1口。甘いです。
次に、麻酔のための注射を肩にします。「採血とかよりちょっと痛いですけど我慢してくださいね」と言われたものは、終わった後から鈍痛のようなものがきます。
さらに喉に麻酔をかけるための液を喉に留めておきます。5分です。長いです。舌が痺れて苦いです。
検査開始
担当は女性が二人です。
ベッドに横になります。
女医さん「若いから反射が強いと思いますが頑張ってください。目を閉じたりすると喉が閉まるので、壁を見るかんじで。」
女医さん「最初の喉に入れる部分が一番つらいですけど、ここはもう、我慢してください。つらいのはここだけです!」
カメラが通っていってるみたいです。喉を通るかんじはわかりませんが、さっそく反射が起こり、オエッというものが連続で起こります。このあたりで予想以上。ちょっと気持ち悪くなる程度だと思ってましたが甘すぎました。
女医さん「通りました!よく頑張りましたね、ここが一番ツライところだったので、あとはこれよりツラくなることはありません。保障します。」
もうグッタリ。喉に何かあるような違和感などはないのですが、気持ち悪さとダルさが検査中続きます。
女医さん「ゆっくり息を吸ってください、吐いてください、そう、ウマイですね。120点をあげたい!」
女医さん「今胃の中に入りました、今胃の出口が見えます。」
実況しながら入れてくれますが、ここでも何度も反射が起こります。もう一人の女性が背中をさすりながら息を吸うタイミングを教えてくれますが、何度も反射を起こしながら、「胃って遠いなあ…」ともう疲れたよパトラッシュ。
女医さん「最後に胃の空気を抜きます。」
確かに何か抜かれるのを感じます。そしてゲップのようなものが喉で何回も鳴ります。ここまでくるともうツラくないです。
女医さん「おつかれさまでした!」
カメラを抜くときはなんともありません。やっぱり、入れるときに何度も反射と戦いながら息を吸ったり吐いたりしてるときがツライかな。
検査後
女医さんがカメラの写真を見ながら説明してくれます。このときはもう体力をかなり持っていかれています。
女医さん「若いから喉の締りがいいですね。胃も大変綺麗です。若いっていいですね。」
と言われながら、最後に一点だけ、ちょっと穴が普通より大きくなっている部分があって、やっぱり逆流性食道炎になるタイプだろうということです。それ以外は健康。
感想
検査時間は10分くらいだったのでしょうか。喉に異物を通すというものは、やはり体が拒否するようです。若い人は反射が強く起こってツラいということなので、必要なければ歳をとってからでよさそうですね。
疲れました。胃が綺麗で何よりです。写真をもらいました。
届きました!新型モバイルノート VAIO VGN-TZ92NS。
超低電圧版 Core 2 Duo U7700 (1.33 GHz) が発表されたタイミング。
VAIO は中古で買って使っていた PCG-C1MRX 以来。
あれは名機でしたよね。Crusoe の遅さも凄まじかったですが。
「バイオC1」 PCG-C1MRX・C1MR/BP
この薄さ、小ささでハイスペック。基本的にモバイルノートはサブ PC として使われることが多いと思われますが、現在ウチに存在する計算機の中で最高性能を持ってしまっています。
軽さだけ見ると薄くて大きいノートもいくつかありますが、片手で持てる、これ重要。
モバイルで液晶が綺麗なノートを選ぶと VAIO が選択肢に上がってきました。
使う人の用途はプログラムを書いたり Linux を動かしたりする程度。以後そんな人のレビューになると思います。
メモリが 2GB しか載せることができないので不安だったのですが、なんか Photoshop や Gimp を動かしても大丈夫に思えてきました。CPU と SSD が強力。
近々外付けの GPU も出てくる等の噂もありますし、最終的に目指したいのはモバイル1台だけの配線のない生活。
外で優雅にコーヒーを飲みながらコンソールを叩きたいですね。
BNF をパースできるパーサを作成しました。
JavaCC を利用して実装しています。
EBNF にはまだ対応していません。
使用用途として、BNF に従って何かしたい、何かを生成したいときに利用します。
例えば、インタプリタやコンパイラ、オブジェクトの生成、アクションの追加等。
図は BNF ファイルを構文木で表し XML へ変換するコンパイラを作成する際に利用した例。
BNF (exp.bnf)
$start input
input ::= line
;
line ::= exp
;
exp ::= NUM
| ADD exp exp
| SUB exp exp
| MULTI exp exp
| DIV exp exp
;
Grammar.java
/*****************************************************************
* Grammar.java
* Created on 2008/02/16
*
* 文法を表すクラスです。
* 文法は、初期シンボルと生成規則の2つから成ります。
* 生成規則は複数存在するため、リスト形式で管理されます。
****************************************************************/
package net.apribase.bnfparser;
import java.util.ArrayList;
import java.util.List;
public class Grammar {
/* 初期シンボルを表します。 */
private final String startSymbol;
/* 生成規則のリストを表します。 */
private final List<ProductionRule> productionRules;
/**
* Grammar インスタンスを生成します。
* インスタンス生成時に初期シンボルを決めます。
* 生成規則は文法ファイルを読みながら追加していきます。
* @param startSymbol
*/
public Grammar(String startSymbol) {
super();
this.startSymbol = startSymbol;
this.productionRules = new ArrayList<ProductionRule>();
}
/**
* 生成規則を追加します。
* @param productionRule
*/
public void addProduction(ProductionRule productionRule) {
productionRules.add(productionRule);
}
/**
* 初期シンボルを取得します。
*/
public String getStartSymbol() {
return this.startSymbol;
}
/**
* 生成規則を取得します。
*/
public List<ProductionRule> getProductionRules() {
return this.productionRules;
}
}
ProductionRules.java
/*****************************************************************
* ProductionRule.java
* Created on 2008/02/16
*
* 生成規則を表すクラスです。
* lhs ::= rhs のように表されます。
* rhs は複数の文字列から成るためリスト形式で管理されます。
****************************************************************/
package net.apribase.bnfparser;
import java.util.List;
public class ProductionRule {
private String lhs; // leftHandSide
private List<String> rhs; // rightHandSideList
/**
* Creates a new instance of ProductionRule.
* @param lhs Left-Hand Side
* @param rhs Right-Hand Side
*/
public ProductionRule(String lhs, List<String> rhs) {
super();
this.lhs = lhs;
this.rhs = rhs;
}
/**
* Get Left-Hand Side.
*/
public String getLhs() {
return this.lhs;
}
/**
* Get Right-Hand Side.
*/
public List<String> getRhs() {
return this.rhs;
}
}
BnfParser.jj
/*****************************************************************
* BnfParser.jj
* Created on 2008/02/16
*
* BNF で記述された文法をパースできる JavaCC 用のプログラムです。
* 文法と生成規則を知ることができます。
****************************************************************/
PARSER_BEGIN(BnfParser)
package net.apribase.bnfparser;
import java.util.ArrayList;
import java.util.List;
public class BnfParser {
}
PARSER_END(BnfParser)
SKIP : {
" "
| "\t"
| "\r"
| "\n"
}
TOKEN : {
<START: "$start">
| <VOCABULARY: (["A"-"Z","a"-"z","0"-"9","'", "+", "-", "*", "/", "^"])+>
}
Grammar grammar() :
{
Grammar grammar;
List<ProductionRule> productionRules;
}
{
<START> <VOCABULARY>
{
grammar = new Grammar(token.image);
}
(
productionRules = productionRule()
{
for(ProductionRule productionRule : productionRules) {
grammar.addProduction(productionRule);
}
}
)*
<EOF>
{
return grammar;
}
}
List<ProductionRule> productionRule() :
{
String nonTerminal;
List<ProductionRule> productionRules = new ArrayList<ProductionRule>();
List<String> rhs;
}
{
<VOCABULARY>
{
nonTerminal = token.image;
}
"::="
rhs = rhs()
{
productionRules.add(new ProductionRule(nonTerminal, rhs)); // nonTerminal ::= rhs
}
(
"|"
rhs = rhs()
{
productionRules.add(new ProductionRule(nonTerminal, rhs));
}
)*
";"
{
return productionRules;
}
}
List<String> rhs() :
{
List<String> vocabularys = new ArrayList<String>();
}
{
(
<VOCABULARY>
{
vocabularys.add(token.image);
}
)*
{
return vocabularys;
}
}
ここまで長かったですね。約6年。
YURIA 1st. LIVE おつかれさまでした。
ムリだろうなあとダメ元でリクエストを送った「リトル・フォーティーンズ・スイング」がきて大歓喜。
そして恋チューを待ち望んだめれんげさん涙目ってうわさ。
「リトル・フォーティーンズ・スイング」が流れたときには全力で手をふりましたよ。
初めて、夏コミの狭いブースでサングラスで顔を隠しながら現れた頃が懐かしいですね。
「この曲知ってる人ー! ふるい!」
あの頃のメンバーと今もお世話になっているわけですが、本当にふるい。
「baby kiss」で涙した YURIA さんも印象的でした。
曲は多いのに今まで YURIA さんが主役のライブがなかったのが寂しかったのですが、初めてのライブのとき以来に楽しめました。いろいろと感慨深いものがー。
そして、ご結婚、おめでとうございます。
ライブ後はみんなでごはんへ。いつものメンバメモ。
神楽さん, 真さん, もんちゃさん, 毒犬さん, 緑一色さん, みやびぃさん, ヒロさん, はづきさん, しゅるさん, 白磁さん, あかりん, めれんげさん, さりあん。
写真に撮った四角いやつ。餃子なんですよ。不思議な形。
ライブ前に皆さんに1つずつ配られたイカリング…いえリストバンド。
今手元に10個くらいある件。欲しい方へ渡したほうがイカリングも喜んでくれる気がします。
楽しかったですねー。次はお誕生日会で。
















