RSS

日々のメモ書き

Debian Developerが綴るメモ

自転車で夜遊び

行きつけのショップのMTBイベントに参加。ラーメン屋を梯子しながらMTBで遊ぶというイベント。自分のMTBはあまり変なことができない仕様なので他の人のを見てるだけ。帰り道にある何箇所かの上り坂でのスプリント勝負だけは頑張る。

大部新しいMTBにも慣れた。乗り方がわかってきたな。踏んだときのかかりが全然違う。ここは剛性の高いフレームのメリット。しかしお尻が多少痛くなるのはデメリット。

MTB: Backfire 50

フレームが折れたアンカーに替わるMTBが完成した。Centurion Backfire 50。

今回はもうあまり高いフレームにするのはやめようと思った。街乗りのMTBでボキボキ折れるのにうんざりした部分もある。選択を考える上で,ブレーキが問題だった。今のVブレーキを使うつもりだったからカンチ台座もついたものというと中途半端な値段設定のものにはない。クロモリで安い単体売りなんてないんだよねー。アルミ完成車でパーツを全部交換する方向で考えてみた。それでも選択肢はそれほど多くはなかった。Giantはなんとなく嫌だったのでやめた。

いよいよ納車だよと思ったら受け取りの日に店主が入院して一週間納品が延びるという驚きの展開もあったが到着。一見してわかったのがパイプ全体のごつさ。重いだろうが,ぎりぎりの設計はしてないだろうなという安心感はあると言えるのだろうか。

さて,完成車状態で家で重さを比較すると今の3kgも違う。これはひどい。

早速全部部品を交換。残ったのはヘッドパーツとワイヤーのアウターとブレーキワイヤーぐらいか。他のパーツはアンカーのMTBから流用…のはずがFDだけ34.9mm対応の関係でFD-M760からFD-M770になった。店に困ったよーと話をしたら偶然にも店頭に不良在庫があったので格安で購入できた。次世代は10スピードになるのでどうかと思ったがまあラッキーと思っとけ。FDなんて1日一回も使わないけどな。あとヘッドの長さが長いせいでフォークコラムの長さがぎりぎりになった。ダストカバーになっているやたら長いカップを外しての装着だからちょっとよろしくない感じ。

さて,苦労した点だが。旧車の作業についていえばBBが固着しかかっていたぐらい工具をプラハンで叩いて緩めなきゃいけなかった。さびついていたとかではなかったが,大部開けてなかったからなあ。あとの部品を外すのは簡単。

新車のほうが苦労するというか。シフターもひどい造作だな。メンテのこと考えてないだろ。ワイヤを外すのに苦労する。RDはワイヤー止めのネジが脱落したら再びはめるのに苦労する。安物パーツは恐しいぜ。もっとひどいのがワイヤ。固定のネジを締めたら1本ぐらいプチっと切れたんですけど。XTのシフターにいれようと曲げたらすぐ癖がつくし。古いXTRのワイヤーのほうがずっと状態がいいぞ。再利用はあきらめた。ヘッドパーツもシールドベアリングじゃなかった。久しぶりにこんなもの見たな。多分1年持たないんじゃないかという覚悟をした。XTRとXTの違いはよくわからないが最下層の部品との違いははっきりとわかった。馬鹿にするわけじゃないが吊るしのMTBなんてよく乗ってられるな。心配になってくる。

作業時間の見積で部品の取り付けなんて楽だし,ワイヤーぐらいのもんでしょと思ったらワイヤーで苦労させられて時間を食ってしまった。あとフロントがどうしても内側に来すぎてさっぱり合わない。調整ってレベルじゃねーぞ。なんでやねんと思ったら…。そうです,シェル幅が73mmだったのです。BBのスペーサーを抜いてから再装着。2.5mm違うと全然駄目なんだな。

一通り組み上がったらあとは調整。FD・RDを調整。ネジをどっちに回すかってのがすぐにわからなくなるから説明書を見ながらごちゃごちゃ。Vブレーキの当たりを調整して走るようになった。あとはサイクルコンピュータのセンサーの配線。次は無線にしたいよ。これで完成。重さは以前より400g重くなっていた。微妙な…。

さて,走ってみての感想。やはりアルミで太いフレームのせいで固い。今までより走ってのショックが大きい。フロントはクロモリフォークで変わってないのにフロントもどこかきつい。しかし,剛性の高いフレームで踏んだときにふにゃっとなるのがないのは感触としていい。街乗りにはこの程度がいいのかなあと思った。持つとなんか実際よりも重い気がするのはなぜか…。走っている分にはそれほど気にはならないが…。BB下がりが変わったのかなんとなく曲がるときの反応に違和感がある。

うまくやっていけるのだろうかという思いを感じながらの付き合い始め。

サイクリーに中古パーツを売ってくる

随分といらない自転車の中古パーツやら未開封のまま使わない部品などが貯まったので初めてサイクリーに行ってパーツを売ってきた。いくつか状態が悪いからと引き取ってもらえなかったものもあったが自分でなんじゃこりゃと思ってるような部品が50円ぐらいでも値段がついたら嬉しいもんだ。いろいろ持っていったらちょっとした小遣いぐらいにはなった。捨てるしかなかった部品なので買取価格に不満はない。ゴミになるより誰かに使ってもらえたほうがうれしい。

残念な点は明細書のコピーは出せないことになっているということ。ちょっとやらしいところだ。だったらもうちょっとじっくり見て値段を覚えてくるんだった。

物の整理したらまたパーツが出てきたのでそのうち売ってこよう。

Chrome Extensionを書いてみた

先日のCSSとXPathのセレクタチェックのツールだが今どきCGIでごちゃごちゃやっとれんわーという思いとともにChrome Extensionで書くことにした。ロジックの多くは再利用できるので怒涛の勢いで一気に書きあげてしまう。

Chrome Extensionのドキュメントをざざっと読む。manifest.jsonを作成してあとごちゃごちゃとやっていけばいいということを把握。ポップアップのHTMLとJavaScriptで書いていく。Tabの中身のコンテキストでJavaScriptを動かすAPIがあったので,そこ中でjQueryを動かして必要なエレメントを抜き出してCSSの変更を行う。デバッグが面倒だな。ポップアップのデバッグをしようとしてChromeのツールを使うとポップアップが閉じると一緒にデバッガも消えてしまう。console.logに書きこむのではちょっと見にくいなあというところ。

手元で動作させるのはいいが配布するには基本的にはGoogle ウェブストアを使わないとダメ。5ドル払って開発者登録をする。円安局面なのに…。謎のアイコンと適当なスナップショットと怪しい説明文とともにアップロード完了。

Windows環境でRubyをexeにするまで

いろいろ思うところがあってRubyのスクリプトをWindowsでRubyをインストールさせずに走らせてみたいとかあって。

  • Ruby Inistallerを使ってRubyをインストール。(ruby-lang.orgにはmswin32がWin32ネイティブのRubyですとか書いてあるがWebサイトの日付が古いんだが…?)
  • 関連付けやらなんやらつけてインストールを進める。
  • gem install ocra を実行。ちなみにorcaと間違えて悩んでいた。
  • 適当なスクリプトを掴まえて ocra script.rb  を実行する。

結構簡単だった。

参考

popup が閉じるときのイベント

Google Chrome Extensionを作っていてPopupが閉じるときのイベントを拾いたかった。windowのunloadとかbeforeunloadやらを試してみたが($(window).bind("beforeunload",...)うまく動かないので調べていたがどうやらバグですか?

5分で終わらせるPerlのユニットテストの説明

めんどくさいので5分で書く。ばばんと次のようなコードを書く。

#!/usr/bin/perl
use strict;
use Test::More;

sub add_func ($$) {
        my $a,$b = @_;
        return ($a + $b);
}

plan tests => 2;
cmp_ok ( add_func(1,2),  'eq', 3);
cmp_ok ( add_func(2,1),  'eq', 3);

はい,こりゃちょろいちょろいと実行してみると。

1..2
not ok 1
#   Failed test at ut_1.pl line 12.
#          got: '2'
#     expected: '3'
not ok 2
#   Failed test at ut_1.pl line 13.
#          got: '2'
#     expected: '3'
# Looks like you failed 2 tests of 2.

ありゃ,なんかおかしいですな。あ,関数の引数の処理の仕方というか配列の受け方を忘れていたよ。

#!/usr/bin/perl
use strict;
use Test::More;

sub add_func ($$) {
#	my $a,$b = @_;
	my ($a,$b) = @_;
	return ($a + $b);
}

plan tests => 2;
cmp_ok ( add_func(1,2),  'eq', 3);
cmp_ok ( add_func(2,1),  'eq', 3);

間違えていたよ。ではこれを実行すると。

1..2
ok 1
ok 2

はいこのようになりました。詳細な使い方は自分で調べよう。筆者も調べていない。適当に他のテストからコピペしているだけである。

selectorview

CSSやXPathのセレクタを確認するツール

いろいろとCSSやらXPathを使う機会が増えたのでブラウザで確認できるツールを作成。githubに入れてあってデモページも作ってあるので動作はそこで確認。基本的には自分でCGIを動かせるサイトが必要。ちゃんと動くデモサイトを用意できればいいが,どう考えても悪いことに使えるので用意できません。

解説

iframeの中に対象のWebページを読み込んで jQuery を使ってCSSかXPathのセレクタを使ってマッチした要素を強調表示させる。ただし,iframeの中身が外部URLだとセキュリティ上操作できないのでプロキシの動作をするCGIをかませて同サイト上のファイルに見せかけている。リンクの変換も試みてはいるが完璧とは行ってない。いちおうこんな感じで動きますねえと。

githubのwebページの作り方

個々のプロジェクトのページを作成するには Setting を開いて Automatic Page Geneartor を辿る。適当に進んでいくとページの雛形が作られて gh-pages ブランチにコミットされる。あとはこれを編集してpush。 URLは username.github.com/projectname。

ユーザーのウェブサイトを作るには username.github.com という名前のプロジェクトを作る。あとは同じようにSettingからAutomatic Page Generator でページを作成。ただし今度はmaster ブランチに作成される。

jQueryでiframeの中の操作

調べりゃすぐに出てくる…が。

$('#iframe').contents().find('a').css('color','red');

でいいですよというような書き方が多いが,

$('#iframe').load(function(){
$(this).contents().find('a').css('color','red');
})

じゃないとダメじゃないかな。二つども$(document).ready の中で書いてます。

< 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 >