MPD~モチドレ

IT技術系のメモやらコピペやら。

コマンドでJavaインストール、アップデート

メモです。
Oracle Javaをアップデートのたびにインストーラーでインストールするのが
毎回毎回めんどうなので、みんなどうしてんだろうと思ってたら
homebrew-caskでコマンドインストールできるんですね。
で、やってみた。

brew install caskroom/cask/brew-cask
brew link brew-cask
brew tap caskroom/versions
brew cask install java

※途中ワーニングとかで余計なコマンドとかあります

楽。
素敵。
しばらく使ってみる。

参考にしたサイト:
みんなhomebrew-caskって知ってるか?
http://qiita.com/ryurock/items/1432578d364985f6cb06

MacbrewOracle Java のバージョンを指定してインストールする方法
http://qiita.com/yu-iskw/items/79d9bddb77efaf2ca255

いつのまにかBフレッツが光ネクストになってるので

ちょっとまえにやった作業を思い出しながら記録。
相変わらず正確性が・・・。

住んでるマンションの回線がもう随分前からBフレッツ(100M)で利用していて、ギガビットの回線欲しいなー、欲しいなーと
稲川淳二風に言っていた時期もありましたが、各部屋に配線されている回線がVDSLなので悲しい思いをしながら諦めてここ数年を過ごしていました。
ここんとこ光卸の話が賑わって、久々にプロバイダとか回線とか見直してみようかなとおもい、「そもそもBフレッツって光卸のサービスに移行できんだっけ?」とNTTに電話で聞いてみたら「お客さんとこBフレッツから自動的に光フレッツに移行してますよ」と回答をいただく。
まじすか。そんな連絡来た記憶ないけど、提供サービスに影響ない客には自動的に移行しているとこのこと。

で、ひょっとしたら以下のサイトでいう「OCN 「フレッツ光」対応 IPv6インターネット接続」で
IPv6アドレス取得できるんじゃと思い、調査。

▪️OCN 「フレッツ光」対応 IPv6インターネット接続
http://service.ocn.ne.jp/ipv6/service/

で、RTX810に以下のような設定をいれて、

ipv6 route default gateway pp 4
ipv6 prefix 4 dhcp-prefix@pp4::/64

provider lan2 name ipv6 "PPPoE/0/5/0/0/0/1:ocn ipv6 flets"

pp select 4
pp name "PRV/2/5/0/0/0/1:ocn ipv6 flets"
pp keepalive interval 30 retry-interval=30 count=12
pp always-on on
pppoe use lan2
pppoe auto disconnect off
pp auth accept pap chap
pp auth myname hogehoge@ipv6.ocn.ne.jp *
ppp lcp mru on 1454
ppp ccp type none
ppp ipv6cp use on
ipv6 pp secure filter in 省略
ipv6 pp secure filter out 省略
ipv6 pp dhcp service client
pp enable 4
provider set 4 "ocn ipv6 flets"
provider dns server pp 4 4

設定しただけではなぜか接続できず、たしかsaveしたのち再起動して

> show status ipv6 dhcp

DHCPv6 status

LAN1 [server]
state: reply
state: reply
state: reply
state: reply

PP[04] [client]
state: established
server:
address: ::
preference: 0
prefix: 2400:省略
duration: 14400
T1: 7200
T2: 11520
preferred lifetime: 14400
valid lifetime: 14400
DNS server[1]: 2001:省略
DNS server[2]: 2001:省略

となり、
http://ipv6-test.com
あたりでもちゃんとIPv6で接続できているのを確認した。
再起動最高。

フレッツ・v6オプション
https://flets.com/v6option/
とか使えば、セキュアに友人宅間とか拠点間とか結べそう。
(これならプロバイダもいらない?)

Pythonメモ

Pythonのパッケージ管理はpipがスタンダード
AWSは今日現在Python2.6がデフォルトだが、Python2.7.8もyumインストール可能
・でも/usr/bin/pythonシンボリックリンクを2.7系に切り替えるとyumが動かなくなる
yumpythonスクリプトで動いているから
・pipは2.7.9で取り込まれた模様(未確認)
https://pip.pypa.io/en/latest/installing.html

iPhoneからVPNでRT57iに接続して名前解決するための設定

以前からiPhoneで自宅のRT57iにVPN接続するところまではやってたものの、DNSで名前解決できないために外に繋がりにいけなかった。
今回、DNSの通知の設定を追加したのでメモ。
これでiPhoneからVPN接続しながら外部のサイトをみれるようになった。

#pp select anonymous
#ppp ipcp msext on
#dns notice order msext me

コマンドリファレンスにはこう書いてあった。

[ 書式]
dns notice order protocol server [server]
no dns notice order protocol[server[server]]

[ 設定値]
○ protocol
dhcp ....................... DHCP による通知
● msext ...................... IPCP MS 拡張による通知
○ server
● none........................ 一切通知しない
● me........................... 本機自身
● server...................... dns server コマンドに設定したサーバ群

[ 説明]
DHCP やIPCP MS 拡張ではDNS サーバを複数通知できるが、それをどのような順序で通知するかを設定する。
none を設定すれば、他の設定に関わらずDNS サーバの通知を行わなくなる。 me は本機自身のDNS リカーシブサーバ機能を使うことを通知する。 server では、 dns server コマンドに設定したサーバ群を通知することになる。IPCP MS 拡張では通知できるサーバの数が最大2 に限定されているので、後ろにmeが続く場合は先頭の1つだけと本機自身を、se rver単独で設定されている場合には先頭の2つだけを通知する。

家の環境ではRT57iをDNS リカーシブサーバにする設定でよいのでdns notice order msext meを指定した。

『TDD Boot Camp 札幌』に行ってきましたヨ

土日は『TDD Boot Camp 札幌』に参加させて頂きました。

http://atnd.org/events/11270
http://atnd.org/events/11271

ざっくりな流れとしては

一日目

二日目

  • @t_wadaさんのセッション。レガシーコードと戦うために
    • 『Emergent Design』
    • 『レガシーコード改善ガイド』…現実と戦う
    • 『データベースリファクタリング』…データと戦う
    • 『XUnit Test Patterns 』

と言った感じ。

TDDBCの感想

今回の参加により「テストコードの作成に自信が付いた」というのが非常に大きな収穫だったように思います。
というのも、いままでテストコードの作成は出来る限りやってきてはいたのですが、

  1. 何が正しいか?どうあるべきなのか?
  2. よりよいテストコードを書くためにはどうすればいいのか?
  3. 深みにハマらないためには?

といったテストコード作成そのものへの不安というのがあったからです。
周りにテスト好きな人間があまりおらず、また自分自信のテストケース作成の理解不足からいつも「これでいいのか?」という思いがあったので、TDDのいう「開発のためのテスト」という目的が理解しづらい状態でした。
TDDの話をネットでみたりすると「TDDは品質を上げるためのものではない」という話がよくでてくるのですが、私のそれまでの理解は「テストをすれば必ず品質が上げるわけではない」と言った話と同系列のように理解していたように思います。
つまり全然間違っていたのですが。
これは@t_wadaさんのいう「TDDは開発のためのもの」「テストは目的ではなく手段→最大の理由は工学的なものでなく心理的な物」という話で理解が進んだような気がします。
また、やっぱり単純に「テスト」というと「品質」というイメージがあって(これが@t_wadaさんの言う「テストという言葉の混乱」の話そのものなのでしょうが)、仕事でTDDを実践しようとする際の説明で非常に困っていたところなのです。
品質を上げるためのテストとしてTDDを理解していると、「品質を上げるために過度な網羅性が要求されたりすると、Mockだらけになって、テストが極端に肥大化して、結局ソースやテストケースを修正する気が起きなくなるのでは?」という疑問から離れらない。
これが「TDDは開発のためのもの」という話で方向性とその範囲が見えたような気がしました。

あとペアプロはいろんな発見があっていいものですね。
人のペアプロを見学するのだけでもかなり勉強になりますし、実践するともっと得られるモノがあります。
職場でも取り入れていこうと思いました。


あと、例のJavaの認定のソースは香しいです。芳醇の時です。


また、ジャンケン大会で『プログラマが知るべき97のこと』を頂きました。(ありがとうございます!)
これも読んで感想をブログにでも書いていきたいです。

最後に

@t_wadaさん、体調が優れない中、二日間に渡りありがとうございました。今後は「act_as_professional」の精神でコードと向きあっていきたいと思います!
また@shuji_w6eさん並びに運営の皆様、参加者の皆様、お疲れ様でした。
得難い良い体験ができ、非常に充実したイベントでした。次回もまたぜひ宜しくお願いいたします。

OSX 10.6(Snow Leopard)でUSB2-SCを経由してスキャナ(GT-7000S)を使う……も、直接は無理?

普段全然つかわないスキャナを使う必要がでたので、一度も使ったこと無い構成で使ってみる。

古すぎてOSX用のドライバが無いIODATAのUSB-SCSIコンバータ USB2-SCですが、SCSIのHDDなんかはドライバ無くてもUSBマスストレージとして認識できたりします。(相性問題はあるとおもいますが、ウチにあるSCSIなHDDはとりあえず全部認識した)

じゃぁスキャナはどうなんだっていうと、ウチにあるスキャナは10年前に購入したEPSONのGT-7000S(SCSI接続)しかないので、これを接続してみる。

結論としてはスキャナをSCSIとして認識できないので、SANEを使っても認識すらされませんでした。
(USBをSCSIとして認識させればいけるのかもしれないけど、OSXってできるのかね?できてもコンバータのドライバが無いからどうしようもないと思うけど)


ここから先は面倒くさいので現実的な解決として『VirtualBox上のWindows XPでお茶を濁す』パターンを使用し、

GT-7000S -> USB2-SC -> Macbook -> VirtualBox -> Windows XP


という構成にしました。
あとはWindows XPにスキャナとコンバータのドライバを入れておけば、スキャナを普通に使用することができます。(大きな画像を取り込もうとしたら、EPSONのTWAINユーティリティが落ちてたけど多分仮想マシンのメモリ不足が原因とおもわれる)
手間を惜しまないのなら、こういう方法でいけます。


今回の教訓:「10年前の機材をあれこれ接続できるように苦労するよりも万札握って新しいスキャナ/複合機を買いに行ったほうが何倍もマシ」

OSX(Snow Leopard)でUC-VRS03を使う

OSX(Snow Leopard)でサンワサプライ USB-RS232C変換ケーブル UC-VRS03を使ってYAMAHA RT57iとシリアルコンソールでお話するためのメモ。
一応設定はしているが実は使うことが無い……。

PL-2303のOSX(10.6)用ドライバをインストール

Prolific

以前はATENのUC232Aドライバを使用していたが、私の環境ではOSXのバージョンを上げる度にドライバが動作しなくなる等の不都合があったため、今回はPL-2303のものを使用した。(ATENのドライバは10.4用からアップデートされていない)

その他、オープンソースPL-2303ドライバがあるが、今回は未試用

kextloadでロード

sudo kextload /System/Library/Extensions/ProlificUsbSerial.kext/

UC-VRS03を接続

USBポートに差し込み

デバイスの追加を確認

ls /dev/tty.usb*

tty.usbserialを確認

RT57iとUC-VRS03を接続

クロスケーブルで接続

screenコマンドで接続

screen /dev/tty.usbserial 9600