2012年11月26日月曜日

.emacs.d晒したので、紹介

 某後輩が見たいって言ってた気もするので、githubにあげてみた。.emacs.dです。

https://github.com/fnobi/emacs.d

 コミットログみると、すごい右往左往してるのが分かると思います。入れたり消したり、elisp書いたり失敗したり…。

 もろもろの末、いまは落ち着いてます。特筆するようなelispは、だいたいauto-completeとmagitくらい?
(multi-termは入れてますがあんまり使ってないです)

 あとinit.elの中で言えば、japaneseの部分大事ね。utf-8もくまなく設定しておかないと、日本語フォントの挙動とかも怪しかったです。これだけ書いておけば、日本語において全く不満ない動作をするのも、emacsのよいところ。

 他にも、backupの保存先を変えるとか、js2-modeのカスタマイズ版使ってるとか、いろいろちまちましたことはあります。そのうち、どこを参考にしたかとかメモしとかないとまずいかなぁ。

 ちなみに。alertについては、前にいちおう書いてましたね。

2012年11月16日金曜日

newを自作してみた件

 ふと、昨日の言語班ミーティングの時に話題に出したので、作ってみた。

 __proto__およびプロトタイプチェーンはおそろしいねという話。

 プロトタイプチェインをちゃんと説明している記事はこちら。↓

JavaScriptのプロトタイプチェインをちゃんと理解する - builder - http://builder.japan.zdnet.com/script/sp_javascript-kickstart-2007/20369792/

nodeの卒論プロジェクトを表に出してみる

 卒論で書いているもの(node製)を、ちゃんとサーバー上で動かしてみたいなーと思ったのでやってみた。

プロキシサーバー

 まずはsugoroku.fnobi.comを作った。ここでnodeアプリを公開したい。

 fnobi.comはいまのところapacheだけで動いてるので、nodeとapacheさんに連携してもらう。

 プロキシサーバーと言えばnginx! というイメージだったけれど、apacheでもぜんぜん簡単なのね。下記の記事読んだらデプロイはすぐ終わりました。

ApacheとNode.jsを連携させる - ZeBeVogue別館 - http://d.hatena.ne.jp/zebevogue/20120822/1345606287

デーモンプロセスとして実行

これもそういえば、やり方を知らなかったので調べました。

デーモンプロセスを作ってみる - みずぴー日記 - http://d.hatena.ne.jp/mzp/20100327/daemon

Linuxコマンド集 - 【 nohup 】 ログアウトした後もコマンドを実行し続ける:ITpro - http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230850/

「ごまかし」らしいですが、とりあえずnohup使っちゃってます。

公開できた

 とりあえず、今作っているビジュアル言語のデモがみれます。よろしければ。

(いまのところ保存機能などなし)

雑なサンプル

じゃんけんサンプル

2012年11月13日火曜日

jQuery.extendわかりづらい

Utilities/jQuery.extend - jQuery Wiki - http://docs.jquery.com/Utilities/jQuery.extend

 jQuery使ってオブジェクトのdeep copyって確かできたよなー何だっけーと思って探してたら、extendでした。っていうそれだけの話なんですが。

 英語版のdocumentをなんとなく読んでいたら、「the JQuery namespace itself is extended」とか書いてあったので、ああそうかjQueryのプラグイン作るとき使ったやつか! となって1回無視してしまいました、と。

jQueryでディープコピー - loiter on the sideroad - http://d.hatena.ne.jp/sideroad/20090812/1250045001

 その後これを見つけて、もういちどdocument読み直したら気付きました。

 target省略するとjQueryの中にコピーしてくれるのねー。おもしろいけど、なんかオブジェクトコピーとは分けてほしいな…。

 アンチjQueryをやめて、けっこう慣れてきたけれど、やっぱりネーミングとかちまちま気に入らない。。

2012年11月6日火曜日

近々つかいそうなnpm

 複数ファイルに分けて書くJavascriptをどうするかってことで悩んでます。

 RequireJSがベストなのかとおもっていたのだけれど、どうもbusterJSでtestする時にうっとおしかったり、そもそもファイル分けたままだと読み込み時間が無駄になりすぎるんじゃ…など気付き始めました。

 そんなわけで、よいライブラリを求めてnpmをうろうろしていたら、(すぐ使うアテがないのも含め)便利そうなものがいろいろ見つかったので、メモしておきます。忘れちゃうからね!

※探したというか、ランキング上位の知らないやつをちゃんと読んだって感じなので、常識なものも多く含まれます。

colors

Marak/colors.js · GitHub - https://github.com/Marak/colors.js

 名前と人気からしてコンソールの文字に色付けるやつなんだろうなぁとは思ってたんですが、Stringへのプロパティ書き足しで実現してたんすね…! これはかっこいい!

var colors = require('./colors');

console.log('hello'.green); // outputs green text
console.log('i like cake and pies'.underline.red) // outputs red underlined text
console.log('inverse the color'.inverse); // inverses the color
console.log('OMG Rainbows!'.rainbow); // rainbow (ignores spaces)

 rainbowとか馬鹿なのがあったり、errorとかwarnとかをカスタムで作れたりするあたりも、かんぺきですね。

glob-whatev

glob-whatev - https://npmjs.org/package/glob-whatev

 うん、たしかにglobなかったねnode。mkdirpとかもしかり、nodeのデフォルトってなんでディレクトリ系fsが手薄なんだろう。

prompt

prompt - https://npmjs.org/package/prompt

 標準入力待ち系のライブラリはそのうち探さなきゃ—と思ってましたが、これでだいたい済みそうですね。

 パスワード系を隠しながら入力するとかも付いてるみたい。どうやるのか全然わからんかったので、中身も読みたい。

clipboard

clipboard - https://npmjs.org/package/clipboard

 linkvってやつでクリップボードの読みこみ自前実装してしまったんですが、ちゃんとこれもライブラリありました。

 Mac以外にも対応してるのかな…。(Macだと、pbcopy・pbpasteというコマンドにパイプとかすれば読み書きができる)

iTunes storeを検索するコマンド

とりあえず、急に欲しくなったのでつくった。

fnobi/itunesq · GitHub - https://github.com/fnobi/itunesq

インストールは、

git clone https://github.com/fnobi/itunesq.git
npm install -g ./itunesq
で入るはず。(gitとnode必須)

1時間もかかってない雑実装なので、これから自分の需要に合わせてアップデートしていきます。

また、githubには他にもnodeで書いたちょろっとしたコマンドが結構置いてあるので、ちゃんとドキュメンテーションしたい…!! そのうち。