をつくった。
だいたい、符号って長点短点を可視化して見せてしまっていることが多いんだけど、あれはモールス学び初めの人には害でしかないので、そういったものが一切ない、すなわちそれぞれ音だけ聞けるページが欲しくて、作った。
20wpm 固定で鳴らしてる。Web Audio なので対応ブラウザならスムーズに鳴るし、スマートフォンでも問題なく鳴る。
をつくった。
だいたい、符号って長点短点を可視化して見せてしまっていることが多いんだけど、あれはモールス学び初めの人には害でしかないので、そういったものが一切ない、すなわちそれぞれ音だけ聞けるページが欲しくて、作った。
20wpm 固定で鳴らしてる。Web Audio なので対応ブラウザならスムーズに鳴るし、スマートフォンでも問題なく鳴る。
途中まで作業をしてしまってから気付いたけど、ExFAT のディスクは TimeMachine のバックアップ対象にできないらしい。ひどい…… 以下の方法ではダメ
2TB のディスクが2つ
Backup と Backup2 は基本的に同じもの (ミラーリング) しているつもりだけど、スクリプト以外でバックアップしたものは、めんどうくさくてちょっとずつずれてきてしまっている。これでは意味がない。
また、Backup ディスクは Windows からでも読み書きできるように ExFAT にしているのだけれど、これはジャーナリングができないせいか、USB から不意に外すと確実に fsck を要求されるのでだるい。2つ ExFAT のパーティションがあるだけで、fsck を2本走らせないといけない。アホだ。
なんとなく、Time Machine で外部ディスクもバックアップできないかな、と思ってググったら、それもできるということを知った。なのでバックアップ方法を変えることを考えた。
として、Time Machine のバックアップ対象に Backup (ExFAT) を含めるようにする。これで何も考えなくてもよくなりそう。Backup ディスクの取り扱いさえちゃんとすればよくなるので、今よりはだいぶマシだし、Time Machine に入れこむことで信頼性が上がる。
Time Machine ディスクが死ぬと悲しいけど、それはそもそもそういうものだし、最新の版については必ず2系統存在する感じなのでいいかな。
しかし、現状で Backup2 + Time Machine というパーティションがあり、これを Time Machine パーティション1個にしくても、動かすことができない。別に1本ディスクがあればいいんだけど、あいにくないのでなんとかしないといけない。
23wpm で文字+数字、数字だけ、文字だけ、をそれぞれ90%なんとかとったので24wpmでやりはじめてる。20wpmだと完全ランダムでだいたい90%前後がとれるようになったけど、普通文だとそれほどとれないので辛い。十分単語に慣れた人なら普通文のほうがとれるみたいだけど、単語に慣れていない場合、普通文のほうが短い符号の文字が多いので頭が追いつかない。
これが、実際に交信になると、テンパってしまって速度が遅くてもほぼ聴き覚えがある符号しかとれなくなる。599BK 式で、余計な符号がほぼ入らなければなんとか交信できる。CQ を出して、呼んでもらう場合、18〜20wpm なら2回コールしてもらえばとれる感じ…… CQ を出している局は 22〜30wpm あることが多いので4回〜6回聴かないと確定できない……
599BK で CQ を出している局を呼ぶか、自分で CQ を出して 599BK に付きあってもらうか、どっちもメリットデメリットがあってつらい。
大抵、599BK でやっている局は JCC サービスなので、パイルになってることが多い。この場合、こちらからの電波が相手に十分届いているか、ある程度パイルが捌けるまでわからないので、非常に効率が悪い。
コールサイン、JCC などまで聴きとった状態で呼ぶので、ほぼ聴きとる必要がなくて気は楽だけど、何か想定外のことを打たれた場合、速度が早くて返せないので、その点で緊張する。
まず第一に、相手にメリットがほぼない (こちらのロケーションは政令指定都市なので別に珍しくもないし)。なおかつ、18wpm 程度で CQ を出すと、相手はラバースタンプ程度の長さを期待する (と思われる) ので、599BK で終わらせると偲びない。
ちょっとやった感じだと、相手の QTH が JCC/JCG で送られる場合、案外聴きとれるけど、それ以上に何か送られるとつらい。なのでだんだん申し分けない心持ちになってくる。
とにかく結構辛いんだけど、CQ 出している局を呼んで、自分のコールサインが呼ばれたとき結構嬉しいのがいい。電波届いたのも嬉しいし、「あっおれだ」っていうのが分かるのも嬉しい。
訓練は続けつつ、599BK であっても CQ を出すのに慣れるのがいいかなあとは思ってる…… けどほんとメンタルが弱すぎて聞きとれるものも聞きとれない。メンタルを強くする方法はわからないので、とにかく聞きまくって慣れるしかないかなと思う。それまで続けられるか心配。
交信履歴をつけるツールにいろいろ機能をつけてる。
(というかそもそも記録するという一番大事な部分にバグがあって一部の交信が消えた感じがするけど、ようやく直ったような……)
コールサインのプリフィックスを入力した時点で、どのあたりの地域の人かわかるように。日本の局の場合エリアまで出すようにしてるので便利。慣れてる人は覚えているからこんなのいらなそう。
これは typeahead.js で実装してある。
国内の場合、だいたいの人が JCC/JCG を送っているので、それを補完してどこかわかるようにした。JARL が提供してる .txt (クソフォーマット) をパースして JSON にしてる。取得時にソートしてインデックスを作ってるのでJS側はかなり簡単。
これは jQuery.textcomplete で実装してる。いろいろ補完できそうで夢が広がる。
CW 以外殆ど聞いてない。アパマンハムはやはり厳しいなあという感じ。聞こえてこないぶん、卑屈になる。
深夜以外はだいたい聞こえる。
深夜はDXが聞こえるらしいんだけど、うちのような2m程度のアンテナの環境だと殆ど聞こえない。たまに韓国の局が聞こえてくるけど、あちらはかなりパワー入れてるみたいで、こちらから呼んでもとってくれない感じ (実際 JA の局が呼んでるけど、向こうは一切反応なし、というのを何度か見た)。
その他のDXは聞こえたことがない。
太陽が昇ってる時間だとときどき DX が聞こえる。一方日本の局はあんまり聞こえない。バンド狭いのでちょくちょくコンディションが良さそうなときに聞いてるけど、あんまり聞こえてこない……
ビーコンも殆ど聞こえない。中国のビーコン100Wがかすかに聞こえたことがあるかな〜 程度。せめてビーコンがちゃんと聞こえるぐらいのアンテナを張りたい……
クラスタを見てて 21MHz が多いな〜 と思ったら見る程度で、こっちも昼間たまに DX が聞こえてくる。けど基本殆ど聞こえない。結構バンド広くて、なおかつ慣習がいまいちよくわからないので、どのへんを聞いたらいいのかわからず。
こちらもビーコンがあるけど聞こえてこない。
聞こえたことがない。バンドが広いので探すのも大変。
まだわからない。7MHz は賑やかなので今でもそれなりに聞いてて楽しい。ただ、夜になると全く聞こえなくてつまらない。
18MHz, 21MHz は、うちのようなショボい設備でも DX のチャンスが多そうかもしれない。もっとずっと聞いててもいいかもしれないけど、基本何も聞こえてこないので面倒くさい。アンテナが7MHzに比べたら短いので、モノバンド短縮アンテナを作ってみたら今より良くなるかもしれないし、いずれやってみたい。
まだ聞いたことがないバンド、特にローバンドの1.9MHz, 3.5MHzも聞いてみたい。マイクロバートアンテナなら効率はともかく一応送信もできるのが作って設置できそう。3.5MHz は夜・冬に使えるバンドみたいなので、次 7MHz のアンテナと交換する形で作ってみる。
ベランダなのであんまりいっぱいアンテナを設置すると怪しすぎるので避けたい。4本程度が本当に限度だと思う。なのでマルチバンドホイップ (UHV-6) は大変便利に使ってるし、割と性能もいい感じで気に入ってる。
うちのベランダは本当に狭くて、横方向にも3mぐらいしかないので、ダイポールを上げるのはどんな手を使っても不可能。しばらくは長さに自由度があるマイクロバートアンテナをバンド別に何度も作ってみたい。
ほんと明らかに何もかもに対して度胸というか自信が足りていなくて、どうしようもない。
というのをちょっと前に作ったけど日記に書いていなかった。
デモ (音アリじゃないとよくわからない):
デフォルトだと、信号がありそうなところを適当に追跡してデコードする。上のスペクトラムをクリックで、その周辺の周波数領域のデコードだけをするようになる。一度に1つのデコーダーだけが動く。
何もハッシュをつけない場合マイク入力からになる。あと Chrome でしか見てない。
Web Audio を使って、マイク入力を信号処理しようと思うといくつか躓くところがあった。
モールスのデコードに高いサンプリング周波数は必要ない。しかしサンプリング周波数は Web Audio 側で固定になっているので、自力でダウンサンプリングしている。これは ScriptProcessorNode の onaudioprocess を使い、Float32Array にリングバッファ状に落としこんでる。なんかもっといい方法ありそうだけど、わからなかった。
まだ onaudioprocess の挙動が不安定で、データがこなくなったりすることがある。毎回 onaudioprocess に対してコールバックを代入しなおしたりいろいろやったけど、最近直ったような気がしないでもない。
FFT も AnalyserNode のを使うのではなく、このダウンサンプリングした信号に対し、JS レベルで実行してる。これは dsp.js を使ってる。
それなりに工夫して作った。最初のころ Description of RSCW's algorithms というのを見つけてよく読んでみたけどよくわからないことも多くて、僕でも実装できる程度に落としこんで結局以下のようになってる。
デモのようなホワイトノイズ + それなりの強さの信号でかつ、機械的に綺麗な符号なら、結構いい感じにデコードできるけど、実際の交信だと思ったより厳しい。
なので、なんらかの統計的な、機械学習のような要素を入れこんで (隠れマルコフモデルとか?) やりたいけど、そのような技術力がない。あと、別に全域常時 FFT して全チャンネル同時デコードとかも、ギジュツリョクがあればできるだろうけど、できてない。
なんかエクセルで計算できるのがでまわっているっぽいのだけれど、HTML で計算したいので JavaScript で書きなおした。
自分で書いたら欲しい機能増やせるし便利。特に、計算したパラメータから、必要な材料の長さを出したりしたかったので canvas で全体像をレンダリングしている。
コイルも密巻きの場合を簡単に求められるようにしたりした。ただ、細長いコイルはQ値がさがってよくないらしいので低い周波数では調整する必要があるのかもしれない。でもそれでどの程度効率が変わるのかがわからない。
φ25mm φ22mm のアルミパイプそれぞれを 1m ずつ買ってきて作った。設計上は 1m + 0.85m で 15cm ほど重ねるイメージ。
コイルを設計通りに巻くのがかなり難しく、はじまりとおわりの処理の仕方がよくわからなくて、これはうまくできたとは言い難い。
7MHz だとカウンターポイズが 8.3m 必要だけど、なんとなく買っておいた 10m の 5D-2V があったので頑張って計って切った。コアは 50MHz 用のコブラアンテナを試作したときのを流用した (12ターン 3D-2V がW1JR巻きで FT240 #44 に巻いてある)
ちなみに、設置ロケーションは給電点地上高 2m 程度で、建物からは 30cm 程度しか離すことができないので全く SWR が落ちないような予感がしていた。やってみなければわからない、と自分を励ましつつやったが、案の定全く下がらなかった。
複素インピーダンスを広域で一覧するとだいぶ下 (6.8MHzヘルツぐらい) に同調しているような感じだったのでエレメントを短くしてみたりしたが、なかなかうまくいかず。
カウンターポイズのはわせかたを変えたり、エレメントの長さを変えたりいろいろ試行錯誤しまくったあげく、7MHz 付近でエレメントは共振しているようだが SWR は下がらない (リアクタンスがないけどインピーダンスの実数が低すぎる)、という状態になったので、カウンターポイズを動かし、ようやく 1.5 程度まで下がった。
インピーダンスが低めに出ていたので、カウンターポイズをできるだけエレメントから離すように置いたら効果があった。
エレメントの長さによっては、特定の周波数 (だいたい6.8MHzぐらい) で SWR が 1.0 程度になったりした一方、7MHz 以上では SWR が下がりきらなかった。たぶんコイルの巻きすぎ?だと思うが、ほどくのが大変面倒なので、一度コイルには手をつけずエレメントだけで調整し、7.000〜7.200MHz、すなわち 7MHz 帯全域で SWR 2.0 以下にできた。最低 SWR 点が 1.5 程度なのがちょっと微妙だけど、とりあえず気にしない。
しかしその後一旦コイルの固定やらで取り外すことにしたので、コイルも1ターン巻き戻して再調整したところ、7.0MHz 付近で SWR 1.1〜1.2 ぐらいまで落とすことができた。もう1ターン戻してもよかったかもしれないが、メインで運用しているのはバンド下限あたりなのでこれでよさそう。
帯域が広いのは事前情報で知ってはいたけど、なんとなく信じていなかったので、設計時に 7MHz をターゲットにしたのがよくなかった。今回の場合 7.1MHz ぐらいをターゲットにして作る (計算上はコイルが1ターン減るだけ) と丁度よかったかもしれない。
UHV-6 という 2m 程度の短縮マルチバンドアンテナとの比較しかできないが、今のところ感じるのは以下の通り
ベランダのスペースの関係上、UHV-6 と今回作った MicroVert アンテナは開けている方角が違うので、相手局の位置によって変わりそう。もうすこし耳が良いのを期待したけど、それに関しては少し期待はずれだった。短いアンテナなので、結局その点に関しては短縮ホイップと同じなのかもしれない。
まずやはり終わって思うのは、LTとしてすら発表しなかったのが反省だな〜 と思った。「今年 Perl 関係でおもしろいことしてないし……」と思って応募できなかったけど、わりとみんな Perl 関係ないこと話してるので、堂々と JS の話すればよかったと後悔。他人が話しているのを見ると話したくなる。というか Teng の話があったな!と会期中に思いだした。
結構毎年顔ぶれが変わっているのか、オープニングで今年初めて参加した人として手を上げた数が想像よりもずっと多いことに驚いた。なんとなく印象としては普段 Perl を書きまくっている人というよりは、他のコミュニティの人が Perl 文化を見にきてる感じがした。
Hatena
Github
それぞれのサイトで任意のURLの登録は比較的自由。なので、それらが一致するものを抽出できればある程度アイデンティティが関連づけられそう。ただ、クロールしないとできないのでつらい。
それなりにユニークなのはメールアドレスだけど、表示されないことが多い。なにかいい方法はないか
交信ログの一部を公開するようにした。ずっとやってないと恥ずかしい感じになる。
Windows なら Turbo HAMLOG for Windows というのがあって、大変使いやすいし、それでいいのだれど、Mac だと無料で丁度いいのがない。有料で超高機能、みたいなのはあるけど、そこまで必要がないし、こういう「データ」が主のもので、データ管理とかが実際どうなっているのかもよくわからないソフトウェアに金を払いたいと思わない。
なので、自分に必要最低限の機能を実装しようと、SignalReports というロギングツールを自分で書いて使ってる。ローカルで動くウェブアプリの形式にした。
機能的には大変シンプルでただとにかく記録していくだけの機能がついてる。あえて「機能」と呼べるようなものはコールサインを入れると地域を表示したりするぐらい。この程度でも別に困ってない。QSL カードを発行する人は印刷機能とかいるんだろうけど、当面発行する予定もないのでこれでいい。
データは単に SQLite の DB に入れるようにしてる。プロジェクトディレクトリをまるごと Dropbox に入れているので、DB ファイルも Dropbox 上でバックアップ・履歴管理される。
Dropbox 上に DB ファイルが置いてあるので、Dropbox の API でその DB をダウンロードして、Perl で適当に HTML にして static に吐いている。特に変なことはしていなくて、あとは cron に登録してある。
火曜日の8時〜9時ごろ、出社前にワッチしていたら 21MHz バンドでカナダの局が強力に入っていた。少しきいてるとレポート交換だけのQSOだったので、すぐ呼んでみたら普通に 599 でとってもらえた。かなり嬉しい。
ちょっと満足したあと、21MHz が開けてるときなら 18MHz はもっと良かったりしないのかな?と思って 18MHz バンドをちょっとワッチしていたら、すぐマレーシアの局が弱め 559 程度で聴こえたので呼んでみた。こちらも599で返してくれた。
いつも出社する時間に決めてる時間が迫っていたのでそこでやめたけど、簡単な交信とはいえ短時間に2局もDXできたのですごく満足した。
コンディションと相手の設備さえ良ければ、こちらのロケーションが地上高が殆どないマンション1Fでアンテナが短縮多バンドモービルホイップでもとってもらえることを実感した。
マイコンに一種の憧れを抱きつつも、なかなか本当に手が出ない。とりあえずチップを買ってみたりしたけど、別に Arduino でもいいわけで、積読みたいな感じだ。
開発にうまく専念できない理由がいくつかあって
シミュレータとして simavr というのがあるんだけど、付属するサンプルプログラムでさえ、どうもうまく動いた試しがない。Ubuntu でやってもダメだし、何が悪いのかわからない。
ちょうどいいサイズの問題は大変難しい。今であれば CW インターフェイスを作りたいなあと思っているけど、ハードルが高い。AVR で USB をハンドリングするので VUSB とかライブラリを組込む必要があるし、PC との連携をうまくしないといけない。たぶん Arduino でとりあえず作ってみるほうが良さそう。
Arduino は、開発環境とハードウェアをスペックに落としてパッケージにして名前をつけたのが発明なんだよなあ。
FT-450D には CW ゼロイン時のインジケーターがないので作ってみたくなった。既にやってる人がいたので、それを参考にしつつ、定数だけちょっと変えた。NJM567 の 1pin, 2pin のコンデンサ容量をどちらも 2.2μF にした。ブレッドボードで組んでいくつか定数を試しながらやってから基盤に実装した。
この状態で実際よくよく使ってみると、かなり帯域が狭く (100Hz未満)、ほぼオンフレでないと反応しない感じ。このへんは好みだろうけど、もうちょっと広くてもよかったかもしれない。なんともいえない。帯域が狭いので弱い信号だととれない。
これがあってもなくても、どっちにしろ耳で音程をあわせる必要はあるので、完璧主義的には十分狭いほうがいいかもしれない。ただ、実際の交信では結構ずれて (ずらして?) 交信しているケースもあるので、100Hz〜200Hz ぐらい幅があってもいいような気がした。
もっと便利にするなら、どれぐらいずれているか、を表示するインジケーターにすべきだと思う。単純に考えて、5個ぐらい NJM567 を並べて、それぞれ調整して帯域をもたせたらそういうのは作れそう。しかしそんなに作ってる暇があったら耳を鍛えたほうが早いという感じがする。
仕様通りよりも減衰しているっぽい。普通のケーブルと切り替えながらパワーメーターの値を読んだ結果:
アナログメーターなのでちょっと適当なんだけど、50MHz で 0.39〜0.41dB ほど損失になってる。仕様だと 50MHz は 0.36dB なのでちょっと多い。誤差の範囲かな
外にリレーを置いて内から操作したいけど、そういう製品って売っていないみたいで、しかたなしに自分で作ることにした。別に現時点でアンテナが複数あるわけではないんだけど、作って試すにしてもそれがないとダルすぎるので作ってみることに。
調べてみると HF 帯ぐらいなら、通常のパワーリレーを使ってスイッチしても (つまり高周波リレーを使わなくても)、そこまでひどい特性にはならない、とのことで、一応それで実現してみることに。なにぶん高周波回路とかどういうふうに電流が流れていくのが大変わかりにくいうえ、素人なので全く自信がなく辛い感じだった。
既に解体してしまって写真も何もないけど、とりあえず2回路のものを作ることにした。リレーはパナソニックの廉価リレー AHJ3221 300円ぐらい。あとから気付いたけど、これはダイオードが入ってないタイプなので、面倒がないようにダイオード入りのを買えばよかった気がする。ただ、当面は単のスイッチで駆動するつもりなので問題ない。
グラウンドを共有にしたくなかったのと、オープン側をショートさせておきたかったので、2回路を切り替えるのに 2c 接点のリレーを2つ使うようにした。
結果的にいうと、25MHz で SWR 1.2 54MHz で SWR 1.5 程度になってしまって、あまり良くなかった。
リレーをシールドしてみたり、コネクタ部分のとりまわりを改良してみたりして、54MHz で 1.4 程度まで下がった。しかし、それ以上改良しずらい回路校正にしてしまったのでやめた。
そもそも1個のリレーでかなり単純な回路を組んでやってみた。これだと全体的に試作1から0.1ほどSWRが上がるぐらいだった。
グラウンドは分ける、オープン側はショートさせる、というのは変えず、回路構成を変えて、とりまわししやすいようにしてみた。
最初の同軸が2又になってしまっているのが、素人考えではよくない感じがする (オープンになると単なるコンデンサになってしまう) が結果的には試作1とほぼ同じような結果で、コネクタまわりと丁寧にやったぶんちょっと下がった程度だった。
やったこと、気をつけたことは以下の通り
あと、最初ちょっと長め (8cm ぐらい) の 3D-2V で配線していたけど、最短にしようと思い 5cm 程度 (限界) まで縮めてみたが、これは効果がなかった。
やはり 54MHz で 1.3〜1.4 程度までしか下がらず。本当は 1.2未満ぐらいまで下げたいが、対策が皆目検討つかなくなったのでここで諦めた。
実はリレーを6個ほど買ったので、せっかくなので4回路にしたくなった。そのせいでどれほど特性が悪化するかもわからないので試す。
回路構成は試作3と同じようにし、それを2段にすることで4回路にした。直列に繋いだほうが優先順位がつくれていいかもしれないけど、今回はそうしなかった。
これは正直かなり作るのが大変だったので2度と作りたくない感じ。
ちょくちょく計測しながらやってたけど、記録に残したのがあまりなかった。
まずダミーロード (DL50-A) の SWR を確認すると 54MHz で 1.12 ぐらいまでゆるやかに上がっていく。これはスペック通り。すなわち、これ以下の値に調整することはできない (これ以下に下がったら逆におかしい)
また、挿入地点でのパワーを計っておく。これが基準になる。手持ちのケーブルが足りないので CMF は付けっぱなし。
ポートA (000): 46W (7MHz) 36W (50MHz)
ポートB (010): 46W (7MHz) 36W (50MHz)
ポートC (100): 46W (7MHz) 36W (50MHz)
ポートD (101): 46W (7MHz) 36W (50MHz)
オープン側のアンテナはショートさせているので簡単には計測できず測定できてない。
1.3未満 (7MHz〜28MHz)
1.5未満 (50MHz)
2回路のときより 0.1 ぐらい全体的にあがってる。たぶんオープン側の同軸がキャパシタになってるせいなのかなあ。
HF 帯オンリーであれば、かなり適当に作っても実用に耐えるものはできそうだという感触を得た。しかし、頑張って特性をよくしようとすると泥沼にはまるし、技術力がないと、あるいは運が良くないとうまくいかせることができなそうだと感じた。
当然、こんなものを挿入せずに直結させたほうが、どんな悪影響もないので望ましいことだけれど、いちいち外にあるコネクタを切り替えるぐらいであれば、多少の特性の悪化も許容できるかな、と思う。あるいは、アンテナのテストのときのみ使って、あとははずしておくという使いかたもできるかもしれない。
いずれにせよ、まだ実際に使ってみてはいない。というのも、実際にリレーをコントロールする部分を一切作っていないのと、まともなアンテナ自体が1本しかないからです。
さらに追試をして、もっと SWR を下げられないか? と試行錯誤をした
とやってみて、出力端子に並列して適当なキャパシタを入れてみることにした。全く理論的ではなくて、うーんという感じだけど、同軸ケーブルを10cm程度に切り、これをキャパシタにみたてて出力近くに並列に入れたところ、下がる兆候があった。
短くしていくとどんどんあがっていくので、今度は15cm程度にして再度やってみると、全体で非常に下がった。
結果的に、各出力ポートごとに 15cm 程度の同軸 + 入力ポート直後に 8cm 程度の同軸を並列で繋ぐことで、54MHz まで 1.2以下になるようになった。
この方法が正しいのか、よくわからない。計測した限りでは SWR は下がり、挿入損失もそんなにひどく出ている感じではない。疲れたのであとでもう一度ちゃんと計測する。
ポートA (000): 47W (7MHz) 39W (50MHz)
ポートB (010): 47W (7MHz) 39W (50MHz)
ポートC (100): 47W (7MHz) 39W (50MHz)
ポートD (101): 47W (7MHz) 39W (50MHz)
すごい便利なのに誰も褒めてくれないので、応用例を紹介します。
もろもろの事情でアカウントが共有のサーバで、自分だけの環境を構築するためのメモです
以下は普通にインストール済みの前提 (インストールされてなくても入れればいいけど)
screen 初回時
SHELL=$(which zsh) HOME=$HOME/cho45/ script -c "cd $HOME/cho45/ && screen -S main" /dev/null
アタッチ
SHELL=$(which zsh) HOME=$HOME/cho45/ script -c "cd $HOME/cho45/ && screen -r main" /dev/null
これで $HOME が ~/cho45/ 以下になるので、だいぶ自由になる。SHELL も指定して screen を起動しとくと面倒くさくない。script -c してるのは、su してログインユーザと別のユーザから起動するときのため。
このまま、~/cho45/dotfiles とかに dotfiles を clone し、~/cho45/.zshrc とかをつくれば特に問題なく環境ができる。
vim はシステム既存のものだとバージョンが古くてイラっとするので、自分でビルドして ~/app (元の HOME においては ~/cho45/app) とかに入れてパスを通してる。その他、node とかもそのへんに入れてパスを通してる。