両面テープ式のフック(100均)でワイヤーラティス(100均)を固定して、それにいろいろくくりつけるようにした。

最初、突っ張り棒でワイヤーラティスを固定しようと考えていたけど、フックでも十分な耐荷重を得られそうなのでこっちにした。ただ、経年劣化が心配。

天板裏に貼り付けると殆ど視界に入ることがなくなるので良い。

買ったワイヤーラティスでは案外狭くてごちゃごちゃしてるけど、とりあえず見えない部分については考えないことにした。

固定にマジックテープのやつを使ってみたけど、結構便利。ただ、値段の割にあんまり長くないので、ケーブルタイと併用せざるを得ない…

TRUSCO(トラスコ) マジックバンド結束テープ 両面 黒 10mm×1.5m MKT1015BK - トラスコ中山(TRUSCO)

トラスコ中山(TRUSCO)

3.0 / 5.0

  1. トップ
  2. tech
  3. 100均グッズを使ってデスクの天板裏でケーブルの整理



届いてから、一通り使いはじめることができたので、感想を記録しておく。やはりケーブルの処理が難しい。ケーブル自体になにか工夫がいりそう。

DELL U2713H は SD カードリーダーがついているのが地味に便利で、既に結構使っている。USB 3.0 のハブがついている点も嬉しいと思う。

ColorMunki Photo と付属のソフトウェアでキャリブレーションしたら以下のようになった。(ディスプレイ側の設定は Preset Color Space -> AdobeRGB) 灰色は AdobeRGB の色域。

ディスプレイアームはエルゴトロンのやつで、買う前は本当に必要だろうか?と思ったけど、結果的に買って良かった。というのも、普通にデスクに座ってディスプレイを見る、という用途と、完全に反転させて位置を下げて、床 (ホットカーペットをしいてる) に横になったままディスプレイをダラ見する、というのが両立できて捗るのです。

最初ディスプレイの重さでアームが下がってくる現象があったけど、説明書に従って調整したらいい感じになった。スムーズに動くし、よくできてるなあと思った。

エルゴトロン LX デスク モニターアーム アルミニウム 34インチ(3.2~11.3kg)まで VESA規格対応 45-241-026 - エルゴトロン

エルゴトロン

5.0 / 5.0

ディスプレイフードもだいたいできたけど、内側のフェルト貼る作業が微妙に残ってる。

前書いた通りだけど、コストパフォーマンスは十分に良いと思う。

  1. トップ
  2. tech
  3. DELL U2713H 使用感とディスプレイアーム

手元にあったACアダプタが突然死したため、代わりのを探しているけど、いいのが本当にない。不思議

  • アダプタ内で D+ D- ショート(急速充電)
  • 1ポートで2A出せること

という条件だけなのだけれど、びっくりするほど存在しない。

 -

3.0 / 5.0

これは Android ポートとやらが 2A 出せて D+ D- ショートっぽいけど、無駄に高いし、iPhone も iPad も持っていないので、Apple 側のポートは使いようがない。

 -

3.0 / 5.0

これは一個既に持っている。充電用ケーブルを介して使っているけど、そもそも充電用ケーブルというのを持ちたくないので、できれば買いたくない。充電用ケーブルって短いのしかないので、とにかく不便。それに買うとしても1ポートしか使わないし、以下のやつでいい……

 -

3.0 / 5.0

ほかに

 -

3.0 / 5.0

というのもあるけど、D+ D- の処理がわからない。

これらには当て嵌まらけど、そもそも 2A 対応とか表示してあっても実際は2ポートそれぞれで1Aずつ (合計2A) という意味の場合が多くて、商品を探すこと自体困難。

あるいは最悪、充電ケーブルで 2m 程度のやつがあればいいんだけど、無駄に巻取式だったりして、普通のがない。

結局、au 共通 AC アダプター 04 (1.8A 1.5m ケーブル) というのを買った。最初から一個買っておけばよかった。急速充電にも対応している。

  1. トップ
  2. tech
  3. 急速充電用の USB ACアダプタでいいのがない。

「仕様変更」という言葉はプログラム書く人じゃないと、そのイメージが掴めないと思う。イメージが掴めない人に対してそれを説明するとしたら何がいいだろう? と思った。

とりあえず、料理に例えたらいいのではないかと思ったので、それに例えて考えてみる。

仕様とはレシピのことであり、最終的には具体的に「食べることができる美味しい料理」すなわち「うまく動くプログラム」を作ることを目的としている。

仕様というのは、最初は「イタリア料理」「日本料理」「中華料理」程度しか示されない。当然この時点では方針程度しか考えることができない。食材を買うこともできない。せいぜい使う調味料を揃えるぐらいしかできない。

もう少し進むと、料理名まで具体化される。スパゲティを作りましょうとか、ピザを作りましょうとかだ。とりあえずここまできたら小麦粉を買おうとかまではできるかもしれない。でも実際に作りはじめることはできない。

さらに進むと、ペペロンチーノを作りましょうとか決まってくる。ここまできたらさすがに作りはじめることができる。ペペロンチーノ用にパスタを作って、どんな風味のペペロンチーノにするか決めながらソースを作るぐらいできる。もはや完成間近になる。

しかしここで「仕様変更」が入る。やっぱりペペロンチーノは止めましょう。ナポリタンにしましょう、となる。そうなったらソースは捨ててパスタは作りなおしになる。パスタのことをよく知らない人は「パスタは再利用できるでしょ?」と言ったりする。悪夢である。そして「じゃあ再利用しましょうか、時間もないですし」ということで、今度は今あるものにナポリタンソースでどういう味つけにするかを考えて作ることになる。

しかしここでまた仕様変更が入る。しかも今度はやっぱりペンネにしましょうとか言わたりする。そうですか。小麦粉は無駄にはなりませんが、他のものは全て無駄になりますね。でも仕方ないですね、としかプログラマは言いようがない。でもここでも「パスタは再利用できますよね」「スパゲティを使ったペンネですか? それはペンネではないような…… とにかくわかりませんが、わかりました」

この繰替えしが何度もある。一度止めたけど、やっぱりそっちにしましょうとか、悪いプロジェクトではそれこそ、そもそも日本料理にしましょうとか言いだすこともある。

結果として、下手に再利用することで不味い料理ができたり、そもそもいつまで経ってもできなかったりする。

また、時間は有限で、例えばお昼までに使える時間というのは限られている。でも11時50分になって「やっぱりナポリタンにしましょう」なんてのはよくあることである。いずれにせよ、このプロセスで最終的にできるものはスパゲティである。

  1. トップ
  2. tech
  3. プログラムが書けない人に「仕様変更」について説明するには

引き出しのどれがどれだかわからなくなり、間違えていれてしまって困ることが多々あったので、ラベリングシートを買って、適当にプリントして貼り付けた。

透明なシートなので、綺麗に出ないだろうなあと思ったけど、この程度のやつなら十分な感じだった。よくよく見るとインクが流れている部分もある。耐久性に疑問があるけど、ちょっと擦ったぐらいでは消えたりしない。

これはグレアな感じなので、地とあってない。マットなタイプがあれば買いたい。

エーワン ラベルシール 光沢フィルム 透明 ノーカット 10枚 28791 - エーワン(A-one)

エーワン(A-one)

3.0 / 5.0

あとからふと思いたって検索してみたけど、マットなのも売ってた。次買うときはこれ使ってみる (だいぶ先そう)

コクヨ インクジェット用 ラベルシール フィルム ノーカット 10枚 KJ-2210 - コクヨ(KOKUYO)

コクヨ(KOKUYO)

3.0 / 5.0

こんな感じで壁に背を向けて座る感じでデスクを設置したので、普通に部屋に入ってくるとき、デスクの裏側が見えるようになってる。

ケーブル自体はデスク裏に貼り付けることで殆ど気にならないようになったけど、ディスプレイアームのクランプ部分がちょっとみっともないって感じだったので工夫して隠した。

クランプ部分は机の厚さによって3段階に調整できるようになっている関係で、1段2穴、3段分 (うち1段は本体の固定用に使用) のネジ穴があるので、余っている穴をうまく利用して隠す板を取り付けようと思った。

ディスプレイアーム自体はデスクに対して取り付け位置が可変なので、完全に固定するような取り付けをするとあとで困るかなと思い、大きな一枚板をそのまま貼り付けるわけではなく、小さな板をまず一枚取り付けて、その上に軽い素材の板 (プラスチックダンボール) を机の幅分、両面テープで貼り付けるという形にした。

最終的に、

  1. クランプ金具 (デスクに固定済み)
  2. ワッシャーx3 (ゲタ)
  3. 木製の15cm四方程度の板
  4. 同じサイズのプラスチックダンボール (ネジ山埋める用)
  5. M6のネジ (クランプ金具のネジ穴まで貫通)
  6. 机の幅分の板

の順になる感じに。


クランプ金具にはM6のネジが切ってあった。金具の中央にちょっと盛り上がりがあって、そのまま板をつけると板がしなってしまうので、ワッシャーでオフセットした。あとネジの頭が隠れるように小さめのプラスチックダンボールを挟んで、ネジ頭をそれにめり込ませるようにした (木にあさりをつけるのは大変なので…)。

机の幅分の化粧板についてはプラスチックダンボールを140cm x 15cmぐらいで切り出して、木目シートを貼ってそれっぽくしてある。本物の木を使ったほうが綺麗にいくと思うけど、このサイズの木だとそこそこ重量があって不安だし、加工するのが面倒なのでこうしてある。ただやっぱりプラスチックダンボールだとしなってしまうので、硬い針金を通すとか、もうちょっと工夫がいりそう。

木目シートは以下のをホームセンターで見てから買った。あんまり置いてなかったけど、これは質感がよくてよかった。あんまり安くはないけど、もっと安いやつは変な光沢があって、あからさまに塩ビって感じがしてひどかったので、これぐらいは仕方ないっぽい。突板を貼るっていうのも考えたけど、突板のほうが圧倒的に高いのでやめた。

アサヒペン 木目調装飾シート REALA(リアラ) RL-15 30cm×90cm - アサヒペン(Asahipen)

アサヒペン(Asahipen)

5.0 / 5.0


  1. トップ
  2. tech
  3. デスク裏の整理

プレビュー

申請して承認されないと表示されないという仕様なので、大量のユーザーがいるASPサービス向けなんだろうなー と思いつつ、一応申請をしたら、忘れたころに承認メールがきた。

だいたい3週間ぐらいかかったようだ。「Twitter Cards - Your submission has been approved!」というメールがくる。

  1. トップ
  2. tech
  3. Twitter Card が承認された

ウェブアプリケーションを書くとき、最近はだいたい Plack::Request なりなんなりを継承して、そのプロジェクト専用のリクエスト/レスポンスオブジェクトを作ることにしている。

特にリクエストオブジェクトは、リクエストのパラメータを適切に変換して返すようなメソッドを生やすことが多い。例えば以下の例:

sub number_param {
	my ($self, $key, $limit) = @_;
	$limit ||= 'inf';

	my $val = $self->param($key) // "";
	if ($val =~ /^\d+(.\d+)?$/) {
		my $ret = $val + 0;
		if ($ret <= $limit) {
			$ret;
		} else {
			$limit;
		}
	} else {
		undef;
	}
}

この number_param() メソッドは、$key と $limit という引数をとって、$key という名前のパラメータを数値にして返す。もし数値として評価できないもの、あるいは指定されていなければ、undef を返す。$limit が指定されている場合、$limit を上限とした数値を返す。

同じように、

sub string_param {
	my ($self, $key, $limit) = @_;
	$limit ||= 'inf';

	my $val = decode_utf8 $self->param($key) // "";
	length $val > $limit ? substr($val, 0, $limit) : $val;
}

と、string_param というメソッドを定義したりしている。これも $key と $limit を引数にとり、$key という名前のパラメータを文字列にして返す。$limit が指定されている場合、$limit 長で制限される。

このようなメソッドをリクエストオブジェクトに生やす利点は、

  • 型を明示することで予期せぬバグを防げる
  • パラメータ値のような信頼できない値を事前にチェックできる
  • 全体で統一した型変換アルゴリズムを設定できる
  • コントローラなどでコードの可読性が向上する

あたりがあると思っている。

文字列化まわりは、フラグまわりでハマったりするので、明確に「これは文字列である」というのをコード上でわかりやすくしたほうがバグが出難いと思う。

数値変換も、ページャを素朴に実装すると、巨大な数字を指定されてほぼテーブルフルスキャンかかっちゃいました、みたいなことが起きたりするので、数値に制限をかけたりするのが簡単にできると捗ると思う。

param() を直接使うのはできるだけ避けるべきだと思う。

  1. トップ
  2. tech
  3. リクエストオブジェクトへ、型を明示するメソッドの追加

アイリスオーヤマ LED電球 口金直径26mm 50W形相当 電球色 下方向タイプ 人感センサー エコハイルクス LDA8LHS1 - アイリスオーヤマ(IRIS OHYAMA)

アイリスオーヤマ(IRIS OHYAMA)

4.0 / 5.0

これを、玄関と廊下用に2つ買った。650lm は結構明るいなあという印象。

消灯までの時間が5分で、ちょっと長く感じる。廊下につけると、つけっぱなしだと思って無意識に消してしまうことがあるようだ。玄関では全く問題ないけど、あんまり人感センサー付きは用途がないかもしれない。とりあえず廊下ではなく洗面所につけなおした。

結局、洗面所もやめて、トイレにつけた。

Mac でファイルとして実体のある mp3 オーディオファイルを再生しようと思うと、普通 iTunes だろうと思う。別にこだわりもないし、まともに使えるならiTunes でいいんだけど、まともに使うことができない。

代替のものを探している。ただ mp3 ファイルを再生したいというだけなのに、ちょうどいいものが不思議とない…… 理想としては foobar2000 なんだけどなあ。

iTunes

上記の通りだけど全然使えない。DAAP を使うなら問題なかったんだけど……

  • mp3 ファイルのタグをちゃんと読んでくれない
  • 再生するためにライブラリに追加しないといけない
    • しかも追加するプロセスがブロッキングかつクソ遅く、途中で止まる……

VLC

よく知られたメディアプレイヤーだけど、mp3 ファイルを再生すると、確率的に出力にクリッピングノイズのようなものが乗る。まじでただのバグにしか思えないけど、設定をいろいろ変えても回避できない……

Songbird

Mozilla が昔つくってたやつ。iTunes コピーみたいな感じ。全く使えなかった。

  • 再生するためにライブラリに追加しないといけない
  • 外付けHDDを勝手にスキャンするうえにディスクアクセスでブロックして応答なしになる

Google Chrome

最近のブラウザは audio 要素対応とかの関係でプレイヤー機能がついている。普通にブラウザにドラッグ・ドロップしたらその曲が普通に再生できる。

  • 1曲ずつしか再生できない
  • 他のタブで負荷をかけると音が止まることがある

連続再生するやつは適当にでっちあげればできる。ほんとにキューに入れて再生するだけなら簡単に書けるので書いた。実際使うかっていうと、ちゃんと作りこまないとだめだなあという感じ……

Play Mac OS

Play あとで試す。同じ作者がDecibelというのを売ってるが、これの前身になるようなプロジェクトのようだ。4年ぐらい更新されていないしインターフェイスは微妙……

不愉快なやつがエントリを書くと、バカな人たちがよってたかって不愉快なやつのエントリを拡散する。不愉快なやつは広告で儲かる。不愉快なやつは不愉快なほどひたすら儲かる。金によって価値を評価すると、不愉快なやつほど価値を生んでることになる。話題・ネタの提供の対価なんだろうけど、納得がいかない。

何か自分で作って価値があるものを仕事以外でできないかなあと考えてる。そもそもが浅慮な人間なのでまぁほとんどないんだけど……

これまで基本的にマウスは有線のものを使っていたのだけれど、配線が鬱陶しいので無線のものが欲しくなった。

ちなみに Magic Trackpad は持っているのだけれど、精密な作業には全く向いていないし、メインで使っている MacBook Air はそもそも Trackpad ついているし、殆ど使っていない……

Apple Magic Trackpad MC380J/A - Apple(アップル)

Apple(アップル)

3.0 / 5.0

でもって、いわゆるマウスの候補を探してみようと思った。条件としては

  • 無線
    • Bluetooth 対応のほうがいいんだけど、選択肢があまりにも狭くなる
  • ノーマルサイズ (コンパクトサイズは嫌だ)
    • 作業を正確にする用途なので、コンパクトは選択肢に入れない
  • 鏡面加工されてない
    • 気持ち悪いので…

まずマウスにおいては大きな信頼をおいているMicrosoft 製から探した。

マイクロソフト ワイヤレス ブルートラック マウス Explorer Touch mouse ブラック U5K-00021 - マイクロソフト

マイクロソフト

3.0 / 5.0

マイクロソフト ワイヤレス ブルートラック マウス Wireless Mouse 2000 グレー 36D-00007 - マイクロソフト

マイクロソフト

3.0 / 5.0

あたりが候補かなーと思ったけど、Explorer Touch Mouse は鏡面加工されているのでやめた。Wireless Mouse 2000 はホイールにクリック感がないがちょっと微妙な気がしてやめた。

で、ほかに Microsoft 製だと選択肢が全然ないので、他のメーカーのを探すと

LOGICOOL ワイヤレス レーザー式 3ボタン T400BK - Logicool(ロジクール)

Logicool(ロジクール)

3.0 / 5.0

LOGICOOL ワイヤレス レーザー式 3ボタン シルバー M310SV - Logicool(ロジクール)

Logicool(ロジクール)

4.0 / 5.0

あたりが良さそうだと思った。Zone Touch Mouse は持った感じがすごくよくて、本当はこれにしたかったんだけど、Mac 用のドライバが提供されてない。

マウスなのでドライバがなくても大丈夫じゃないかと思って検索をかけてみたところ、Zone Touch T400 with a Mac?というスレがヒットした。iMac で使ってみたという人によると「動くことは動く」「スクロールがガクガクで Mighty Mouse のようにはいかない」「ドラッグ操作がキャンセルされることがある」「ボタンアサインが変えれない」らしい。

価格的にも安いってわけではないし、冒険するようなものでもないので、結局 M310 を買った。かなり安いし、バッテリも公称1年持つようなので、コストパフォーマンスは高そう。

マウスパッドは安心と信頼の SteelSeries QcK (4年前から使ってる。会社用にも買ってある)

LOGICOOL ワイヤレス レーザー式 3ボタン シルバー M310SV - Logicool(ロジクール)

Logicool(ロジクール)

4.0 / 5.0

SteelSeries ゲーミングマウスパッド ノンスリップラバーベース 32cm×27cm×0.2cm QcK 63004 ブラック - SteelSeries

SteelSeries

5.0 / 5.0

cube ケーブルホルダー ブラック CU-102BK - イデアインターナショナル

イデアインターナショナル

3.0 / 5.0

これを買ってみた。マットな感じを期待して買ったけど、テカテカだった……

用途としてはケーブルがデスクの下に落ちないように、という感じだと思う。長い場合巻きつけられるのがいいかな、と思った。display port ケーブルとか USB ケーブルとかは固いので巻きつけられない。

ほかに

Bluelounge CableDrop ケーブルドロップ ミュートカラーセット BLD-CD-MU - BlueLounge

BlueLounge

3.0 / 5.0

Bluelounge ヘビーウェイトケーブルホルダー Sumo スモウ ブラック BLD-SUMO-BK - BlueLounge

BlueLounge

3.0 / 5.0

あたりを検討したけど、上のやつは1本しか挟めないので微妙。下のやつはよさそうだけど、ロゴがなければなあと思った。

 -

3.0 / 5.0

あまりない10個口だとこれが一番良さそう。1個持ってて、口数が多いことに安心感がある。あと四角いのでおさまりが良い。

引き抜け防止がついてるやつだと

 -

3.0 / 5.0

これがコスパ良い。7個口。ケーブルが太いことに安心感がある。太ければ抵抗値も低いはずで発熱がすくなそう。