2012-08-01から1ヶ月間の記事一覧

初めてのredis

環境:Ubuntu Server 12.04 LTS 32bit / redis 2.4.17 ダウンロード $ wget http://redis.googlecode.com/files/redis-2.4.17.tar.gz $ tar xvfz redis-2.4.17.tar.gz $ cd redis-2.4.17 普通にダウンロード、展開します。 インストール $ less README $ mak…

data-sectionで1スクリプトhttpサーバ

httpサーバのレスポンスをdata-sectionモジュール使って返すようにしただけのコードです…… var http = require('http'), dataSection = require('data-section'), server = http.createServer(); dataSection.get('index.html', function (err, data) { if (…

node.jsでヒアドキュメントとかデータセクション(?)とか

JavaScriptを書いているとたまにヒアドキュメントで文字列を書きたくなったり、Rubyのように__END__以下に書きたくなったりしますが、JavaScriptではできないので、ぐぬぬ、という顔をしてしかたなく文字列を行ごとにArrayに入れ、それをjoin('\n')するか、…

いつぞやのメモ

謎のメモをここにまとめ。 $ vim Gemfile source :rubygems gem 'sinatra' $ bundle install --path vendor/bundle $ vim app.rb require 'sinatra' get '/' do 'Hello, World!' end $ bundle exec ruby app.rb 多分……bundlerでプロジェクトローカルなgemを…

最近買ったもの

Spending all my timeアーティスト: Perfume出版社/メーカー: ユニバーサルJ発売日: 2012/08/15メディア: CD購入: 2人 クリック: 17回この商品を含むブログ (26件) を見るSpending all my timeをやっと買った。3曲とも良いけど、ポイントが特にお気に入り。

Connectのリクエストハンドラ的なもの??? その2

前回の続きというか改良版?というか。 app.js var http = require('http'), server = http.createServer(); function RequestHandler() { this._fn = []; } RequestHandler.prototype.use = function () { var that = this; Array.prototype.slice.call(arg…

Connectのリクエストハンドラ的なもの???

ExpressとかConnectって var connect = require('connect'); connect() .use(connect.favicon()) .use(connect.static('public')) .use(connect.directory('public')) .listen(3000); とか書くじゃないですか。これをちょっと真似てみたくて以下のようなもの…

herokuコマンドが正常に動作しなくなったら

環境:MacOS 10.7.4 heroku appsを実行したら、新しいのが出てるからheroku updateで新しくしてね、というので新しくしたらheroku appsでエラーが出て何も出来ない!バグ!?とか思って数日。 ほかのコマンドを試してみても以下のようなエラーメッセージが。 …

OS情報の出力

var os = require('os'), key; for (key in os) { if (typeof os[key] !== 'function') { continue; } console.log('%s: %s', key, os[key]()); } cpus, networkInterfacesがちょっと残念な感じ。

gzipで圧縮されたファイルを展開してコンソールに出力する

以下のファイルをgzipで圧縮したものを、node.jsで展開してコンソールに出力するまでのメモ。 環境:WindowsXP SP3 / node.js 0.8.2 index.html <meta charset="utf-8"> <title>インターネット</title> <style> p { text-align: center; font-size: 5em; color: #00f; } </style> <p>インターネット</p> gzipを作る $ gz</meta>…

gzip圧縮したファイルをレスポンスとして返す

node.jsでgzipのファイルを返したりするメモ。というかまあ、普通にファイルを返すのとあまりかわらないのだけど。 環境:WindowsXP SP3 / node.js 0.8.2 index.html <meta charset="utf-8"> <title>インターネット</title> <style> p { color: #00f; font-size: 2em; text-align: center; } </style> <p>インターネ</p></meta>…

Content-LengthとString#lengthとUTF-8

node.jsでレスポンスヘッダにContent-Lengthを指定してレスポンスを返してやろう、と思って以下のようなコードを書きました。 var data = [ '', '<meta charset="utf-8">', '<title>test</title>', '<style>', ' p {text-align: center;}', '</style>', '<p>インターネット</p>' ].join('\n'); res.writeHead(200, { 'Con</meta>…

ユーザ一覧を見る

postgres=# SELECT * FROM pg_user;で見れるみたい。システムカタログ(とか言うみたい)の一つらしい。 PostgreSQL 9.1.4 文書 第45章システムカタログに一覧があったりとか。ここ読むと良いかも。 PostgreSQL 9.1.4 文書 第45章システムカタログ 目次なん…

VirtualBoxにインストールしたUbuntuのPostgreSQLにnode.jsからアクセスするまで

基本的にPostgreSQLの設定のメモなお話。RDB苦手っぷりを発揮しております。 環境:Ubuntu 12.04 LTS 64bit / node.js 0.8.7 / npm 1.1.52? node.jsからpgモジュールでアクセスするコード node.jsからpgでPostgreSQLにアクセスするコードを書いて実行したの…

久しぶりのCoffeeScript

Herokuでこんにちは世界3回目 - 四角革命前夜のJavaScriptをCoffeeScriptに書きなおしてみたり。 http = require 'http' server = http.createServer() server.on 'request', (req, res) -> res.writeHead 200, 'Content-Type': 'text/html; charset=utf-8' …

Herokuでこんにちは世界3回目

HerokuでExpressを使ったHello, Worldアプリのレスポンスが悪かった(初回の表示に妙に時間がかかる)ので、Expressを使わないで作ってみたらどうなんだろうと思ってまた試してみたのでした。 でも体感速度しか測ってないから余り意味無し。 環境:MacOS 10.…

標準モジュールでHTTPサーバ的な

node.jsの標準モジュールだけでHTTPサーバ的なものを書いてみた。 コードは以下。だいぶ読み難いコードだけど…… #!/usr/bin/env node // app.js var fs = require('fs'), http = require('http'), path = require('path'), url = require('url'), server = h…

EventEmitterとかfsとかutilとか

書いておかないと忘れるのでメモメモ。 var events = require('events'), fs = require('fs'), util = require('util'); function Finder(path) { this._path = path; } util.inherits(Finder, events.EventEmitter); Finder.prototype.find = function () {…

netモジュールとdnsモジュールを使ってtelnetからHTTPを直に叩く的なことをやってみる

前回のエントリで鬱鬱してる、とか書いておきながら「あーやっぱりサーバサイドやらないとこれから生きて行けないなー、でも基礎わからないしなー、node.jsだったらHTTPからかなー」とか考えてちょっと触ってみたらなかなか楽しかったので記事を書いてみるの…

スランプ/鬱気味な近頃

そろそろHerokuとかで自作ウェブアプリ作りたい!と思っていろいろやってたのですが。 Perl/PHP/Python/Ruby書けない node.jsならJavaScript得意だから書ける ExpressとConnect慣れてなくて難しい てか普通のウェブアプリはnode.js向いてない 扱えるRDBが一…

リーダブルコード 第1部 1章〜6章 第2部 7章〜9章 第3部 10章〜13章 第4部 14章〜15章

ずっと前にちょっと読んでから放置してたけど、やっと読み終わった! 大分間が空いたので最初から読み直してみたけど、既に実践してることもあれば、驚くようなことも書いてあったりとか。 でも一度読んだだけだとまだまだだと思うから、これから機会を見て…

bitbucketにブランチでなくブックマークを

Mercurialの拡張としてbookmarkというのがあります。 Gitと違ってMercurialのブランチは完全には消せず、閉じるだけですよね。それを解決するための拡張(?)がbookmark拡張で、これは後から削除できます。 で、何故か勘違いしていたのですが拡張なのでbitb…

ConnectでディレクトリをServeする

node.jsのモジュール、Connectを使ってみたのです。Expressとかが乗っかってるやつですな。 でもこれ、そのまま生で使うもんじゃないね…… 環境:MacOS 10.7.4 / node.js 0.8.6 / npm 1.1.48 Connectのインストール おもむろに以下のコマンドを。 $ npm insta…

ConnectのRouterはどこへ行った?

最近、Expressを使わないでConnectでごにょごにょしております。 で、海外のコードサンプルなんかを見ると var conenct = require('connect'); connect.router(/*なんかコード*/); みたいなのがあるんですが、試してみるとrouterってのがないのですよ。 Conn…

tmuxをpbcopy/pbpaste対応にする

tmuxってMacだとpbcopy/pbpasteでクリップボード使えないじゃないですか。で、tmux-MacOSX-pasteboard使いましょうとかってなるんですが。 .tmux.confのdefault-commandに直に設定しちゃうとUbuntuで動かなくなると思うので試行錯誤をしてみました。 環境:M…

rbenv + ruby-buildをインストールしてからSinatraで"Hello, World"するまで

久しぶりにRubyを触ってみたくなって、いろいろ触ってみたのです。 環境:Ubuntu 12.04 LTS 32bit server rbenv + ruby-buidのインストール perlbrew + cpanm + local::lib環境を整えるつもりが入らなかったのでrbenv + ruby-build環境を整えたよ - 四角革命…

tigのMercurial版みたいなのはないのかい?

Gitのテキストベースリポジトリブラウザにtigというのがあるじゃないですか。これのMercurial版はないのかなーと探してみたのでした。 で、探してみたらメーリングリストらしきものが見つかりました。 tigのMercurial版みたいなのない? Anything like tig f…

node.jsのpgモジュールをインストール

node.jsからPostgreSQLを扱うモジュールである、pgをインストールしてみようとしたのですが。 そのままではインストールできないようなのでメモメモ。 環境:Ubuntu 12.04 LTS 32bit server / node.js 0.8.6 / npm 1.1.48 インストール 普通にpgモジュールを…

UbuntuでPostgreSQLを扱う

UbuntuでPostgreSQLをインストール、psqlが扱えるようになるところまで。 環境:Ubuntu 12.04 LTS 64bit Server インストール $ sudo apt-get install -y postgresql aptさまさま。 ユーザ設定 postgresユーザのパスワードを設定するのです。 $ sudo passwd …

ファイヤーウォールのせいだと思った?残念!SSHの設定でした!

VirtualBoxにインストールしたUbuntuのネットワーク設定をNATにしてポートフォーワーディングの設定でホストポートを2222に、ゲストポートを22にして設定したのにホストから $ ssh -p 2222 sasaplus1@127.0.0.1 Received disconnect from Too many authentic…