After cloning the repo I did the following
$ export GOROOT=$HOME/go
$ export GOPATH=$PATH:$GOROOT/bin
$ go get code.google.com/p/go.crypto/bcrypt github.com/codegangsta/martini github.com/martini-contrib/sessions
$ go version
go version go1.2.1 linux/386
$ cd lesson9
$ go run main.go
and I get this in the browser. What am I missing or doing wrong ?
interface conversion: *martini.responseWriter is not martini.ResponseWriter: missing method Before
/usr/local/go/src/pkg/runtime/iface.c:116 (0x805112a)
itab: runtime·panic(err);
/usr/local/go/src/pkg/runtime/iface.c:437 (0x8051a19)
ifaceI2I: ret->tab = itab(inter, tab->type, 0);
/usr/local/go/src/pkg/runtime/iface.c:444 (0x8051a73)
assertI2I: runtime·ifaceI2I(inter, i, &ret);
/home/ankur/bin/src/github.com/martini-contrib/sessions/sessions.go:84 (0x80b0fda)
func.002: rw := res.(martini.ResponseWriter)
/usr/local/go/src/pkg/runtime/asm_386.s:360 (0x8069d35)
call32: CALLFN(call32, 32)
/usr/local/go/src/pkg/reflect/value.go:474 (0x80c9c68)
Value.call: call(fn, ptr, uint32(size))
/usr/local/go/src/pkg/reflect/value.go:345 (0x80c90e4)
Value.Call: return v.call("Call", in)
/home/ankur/bin/src/github.com/codegangsta/inject/inject.go:102 (0x8164b88)
(_injector).Invoke: return reflect.ValueOf(f).Call(in), nil
/home/ankur/bin/src/github.com/codegangsta/martini/martini.go:165 (0x8098e5a)
(_context).run: _, err := c.Invoke(c.handler())
/home/ankur/bin/src/github.com/codegangsta/martini/martini.go:156 (0x8098db8)
(_context).Next: c.run()
/home/ankur/bin/src/github.com/codegangsta/martini/recovery.go:140 (0x809c520)
func.004: c.Next()
/usr/local/go/src/pkg/runtime/asm_386.s:359 (0x8069cd5)
call16: CALLFN(call16, 16)
/usr/local/go/src/pkg/reflect/value.go:474 (0x80c9c68)
Value.call: call(fn, ptr, uint32(size))
/usr/local/go/src/pkg/reflect/value.go:345 (0x80c90e4)
Value.Call: return v.call("Call", in)
/home/ankur/bin/src/github.com/codegangsta/inject/inject.go:102 (0x8164b88)
(_injector).Invoke: return reflect.ValueOf(f).Call(in), nil
/home/ankur/bin/src/github.com/codegangsta/martini/martini.go:165 (0x8098e5a)
(_context).run: _, err := c.Invoke(c.handler())
/home/ankur/bin/src/github.com/codegangsta/martini/martini.go:156 (0x8098db8)
(_context).Next: c.run()
/home/ankur/bin/src/github.com/codegangsta/martini/logger.go:25 (0x809bf2d)
func.001: c.Next()
/usr/local/go/src/pkg/runtime/asm_386.s:360 (0x8069d35)
call32: CALLFN(call32, 32)
/usr/local/go/src/pkg/reflect/value.go:474 (0x80c9c68)
Value.call: call(fn, ptr, uint32(size))
/usr/local/go/src/pkg/reflect/value.go:345 (0x80c90e4)
Value.Call: return v.call("Call", in)
/home/ankur/bin/src/github.com/codegangsta/inject/inject.go:102 (0x8164b88)
(_injector).Invoke: return reflect.ValueOf(f).Call(in), nil
/home/ankur/bin/src/github.com/codegangsta/martini/martini.go:165 (0x8098e5a)
(_context).run: _, err := c.Invoke(c.handler())
/home/ankur/bin/src/github.com/codegangsta/martini/martini.go:69 (0x80983df)
(_Martini).ServeHTTP: m.createContext(res, req).run()
/usr/local/go/src/pkg/net/http/server.go:1597 (0x80857e3)
serverHandler.ServeHTTP: handler.ServeHTTP(rw, req)
/usr/local/go/src/pkg/net/http/server.go:1167 (0x8083e61)
(_conn).serve: serverHandler{c.server}.ServeHTTP(w, w.req)
/usr/local/go/src/pkg/runtime/proc.c:1394 (0x805e090)
goexit: runtime·goexit(void)