つまづいた石ころ、ぶつかった壁

問題(と解消)の記録

新人WEBプログラマーを研修する2年目君へのお勧め書籍1選

あと十日ほどでフレッシュなニューカマーたちがやってきますが、うちの会社では未経験者を含む彼らの研修には
2年目の新人君らがあたります。

そんな彼ら2年目の、ある程度いろいろやってきたあとで、一度読んでもらいたい。

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)


HTTPだけでいいから。

自分で読んで、見え方変わったところです。

iphone webアプリ 開発ツールをつかう

iPhone用のサイトをデバッグする際、user-agentを変更して見るのがお手軽ですが、
今や実機で見ながらMacからインスペクタを起動していろいろいじれちゃうみたいです。

必要なもの

手順

  1. iPhoneの設定 → safari → 詳細 → WEBインスペクタ をオンにします
  2. Macsafari → 環境設定 を開きます
  3. 詳細(右端)タブの「メニューバーに"開発"メニューを表示」にチェックします
  4. iPhonesafariを起動し、Macに接続します
  5. 開発メニューでiPhoneを選択できる用になっているので、選択します。


これでWEBインスペクタが立ち上がって、いつも通りhtml,cssを書き換えてみたり、コンソールからjavascriptも実行できちゃいます。
ちゃんとiPhonesafari上でも選択したエレメントが反転してたり、しっかりわかりやすくて思いのまま!
便利ですね!!

秀丸 デフォルトの文字コードの設定方法

nodeを触っていて、どうも日本語が文字化けするなと、ヘッダやらなんやら
いじってみていたのですが、そもそもファイルのエンコードSJISでした、というお話。

参考

秀丸でデフォルトのエンコードをSJISからUTF-8に変更
まんま検索、まんまの方法が見つかりました。

変更方法

  1. その他⇒動作環境を開く
  2. ファイルのエンコード1を選択
  3. 標準のエンコードの種類でUTF8を選択

エンコード1は左下の「上級者向け設定」にチェックを入れると表示されます。

IEタブプロセスをすぐに終了させる方法

IEのプロセス「iexplore.exe」、タブを閉じたくらいでは退く気配を見せませんが、
レジストリの設定で立ち退き時間を決められるようです。

手順

  1. Win + R
  2. regeditと入力
  3. HKEY_CURRENT_USER、Software、MicrosoftInternet Explorer、Mainの順にたどる
  4. Mainを右クリックして、新規、DWORD(32ビット)値
  5. 名称を「TabShutdownDelay」にする
  6. TabShutdownDelayをダブルクリック
  7. 10進数を選択、終了までの時間(ミリ秒)を入力

参考

IE8 ではタブを閉じても対応するプロセスがすぐに終了しない


firefoxもしばらく残るので、設定があるかと思ったのですが、特に見つかりませんでした。
最近ほとんど使ってないですが、気がついたらにメモリ1GB以上を食ってる、かわいいやつですよね。

コマンドプロンプトの開始ディレクトリを変更する

コマンドプロンプトを開くたびに変更していた自分が馬鹿すぎました。
一瞬で設定完了しました。

方法

  1. コマンドプロンプトのプロパティを開く
  2. 作業フォルダを任意の場所に変更する
  3. 好きなタイミングでOKを押す

socket.io/socke.io.jsが404を返してどうにも動かない

socket.ioのサンプルを動かしてみたのですが、クライアント側でsocket.io/socke.io.jsのリクエストに404が返されてしまい、
どうにも動きません。

予備知識ゼロでサンプルコピペでやっていたので、何をどうしていいか皆目見当がつかないまま、
とりあえずググって見ると、それらしい回答がありました。

環境

  • node 0.8.4
  • socket.io 0.9.11
  • express 3.0.1

Before

//listenする
http.createServer(app).listen(app.get('port'), function(){
  console.log("Express server listening on port " + app.get('port'));
});

//listenしているサーバーに後付け
var io = require('socket.io').listen(app);

io.sockets.on('connection', function(socket) {
  //do something
});

After

//まだlistenしない
var server = http.createServer(app);

var io = require('socket.io').listen(server);
io.sockets.on('connection', function(socket) {
  //do something
});

//socket.ioの準備をしてからlistenする
server.listen(app.get('port'), function(){
  console.log("Express server listening on port " + app.get('port'));
});

理解が正しいかわかりませんが、
StackOverflowに書かれていることそのままやったら解決しました。