2013-06-20

キーボードとマウスをMac - Windows間で共有するSynergyの設定+REALFORCE(windowsキーボード)をmacで使う設定

最近この設定やってないけど、やり方忘れてしまうのでメモ。
Synergyを使えばmacとwindowsで片方のキーボード、マウスを共有して、OSをまたいで操作することができます!

Synergyインストール

synergyKM Mac日本語キーボード対応版を入れる。(WindowsはSynergy 1.3.1: ?下記リンクに詳細あり。ちゃんと対応したバージョンでないと、お互いに機能しない。)



キーボードの設定

初めてRealforceキーボードをつないだらJISを設定。

Macでrealforceを使う設定としてPCKeybordHackをインストールし、

1. PCKeyboardHackのFor Japaneseを全てチェック。
2. Command Lが初期のままだとWindowsキーになっているので、macでいうoptionとcommandLを入れ替える。(PCKeyboardHack)

・参考
PCKeyboardHackを設定する。
CapsLockはMacの機能でCtrlに出来る?(KeyRemapだかPCKey~の方でやった気がする。)
上記の派生記事(こっちのが分かるかも)

KeyRemap4MacBookてのもあるけど、PCKeyboardHackでいろいろ変えればなんとかなる!


SANWA SUPPLY ドラッグ&ドロップ対応USB2.0リンクケーブル(Mac/Win対応) 1.8m KB-USB-LINK3M

これを使えば、WindowsとMacをUSBでつなぐだけでSynergyと同様のことができます!
絶対便利なので、面倒くさい方は是非。


2013-06-19

nvmでNode.jsバージョン管理した時の苦労話

macでNode.jsのv.0.10.11を使おうと、homebrewでインストールしたnodeを消して、nvm経由でNode.jsを管理しようと色々やってたら悲しくなったのでメモ。

TypeError: Arguments to path.resolve must be strings

↑というエラーがnpmを使った時に起こりました。
nvmはnpmもまとめて簡単インストール☆してくれるので、npmが悪いわけない…原因はほかにあるはずだ……しかし、これがいけなかったのです。。路頭に迷い、作業時間をかなり削ってしまいました。。


原因

npmのversion違いでした。
調べるとpath.resolveの変更がNode.jsのv.0.9.xくらいにあったみたいで、v.0.8.xの時に動いたnpmではv.0.10.xの作りだと動かないみたい。

npm -vしたら、1.1.xでした。Node.js v.0.10.xでは、npm 1.2.x以上でないと動かないっぽいです。


えっ、でもnvm使ってるんじゃないの?

使ってますが、/usr/local/bin/npmに、最初にnode.jsインストールしたときのnpmが残っていました(・ω<)テヘペロ
だから、npm使うと$PATHの順番的に古いほうが優先されて上記エラーが出てたんですね。

削除して、~/.nvm上の該当versionのnpmを使うように.bashrcを書き換えて糸冬了。


今回の件から私が得るべき教訓は

・アンインストールは徹底的に。
・動かなかったらpathをまず調べろ。

でした。

2013-06-11

Node.jsでオレオレフレームワーク(スケルトン)作った

社内ニートとしての地位を確立しつつある79です。こんにちは。

Node.jsでプロジェクト作るときは大体expressコマンドでえいやっと作るのがほとんどですが、それだけだと結局欲しい機能が色々足りなかったりするので最低限もうちょっと実装してあるフレームワーク的なのを作ってみました。

Node Framework 79

nf-79 - https://github.com/79yuuki/nf-79


なにができるの?


環境ごとに設定ファイルを指定

そもそもconfigモジュールみたいのが無くて、毎回作るのも面倒くさいし、環境ごとにDeploy出来るようになってると便利!なのでそういう機能がついています。

routing設定が出来る

expressで作っていくと基本的に app.get(), app.post()とかを沢山書かなきゃいけないのは、機能が増えていくとごちゃごちゃしがちです。
なので、configファイルにrouterの実装をしたモジュールのpathとurlをセットにして書いておくことでスッキリさせてみた。

testを書く準備が出来ている

「テストがないコードは成果物でなく、負債である」だそうです。準備はした。

loggerモジュールがある

エラーハンドリングした時にどうしよってなるので、log4jsでaccess_logとかsystem_logをファイルに出せるようにしてある。

validation使う準備がしてある

express-validationを使えるようにしてある。

viewまわり(おまけ)

ejsを使ってます。layout.ejsをベースに、bodyだけ書けば良い様にしてあります。
おまけでtwitter bootstrapのデザインをフラットデザインにしただけのflatstrapっていうのを使っています。


今後

Node.jsでなんかさくっと作りたいときにはコレ使えば面倒な実装減らせるので、こういうスケルトン作っておくのはいい事ですね。こいつが使いやすいかどうかは置いておいて。

もっとキレイにしたり、データストアとの連携部分も書いておくといいんだろうか。
何使うか決まったりしたら、追加するのもいいかも。