
Its not clear for newbies that using `time.Sleep` internally calls `runtime.Gosched()` Its better to use it directly, moreover on my machine it shows x175 improvement in speed (7m requests per second vs 40k).
Go by Example
Content, toolchain, and web server for Go by Example.
Overview
The Go by Example site is built by extracting code &
comments from source files in examples
and rendering
that data via the site templates
. The programs
implementing this build process are in tools
.
The build process produces a directory of static files -
public
- suitable for serving by any modern HTTP server.
We include a lightweight Go server in server.go
.
Building
To build the site:
$ tools/build
$ open public/index.html
To build continuously in a loop:
$ tools/build-loop
Local Deploy
$ mkdir -p $GOPATH/src/github.com/mmcgrana
$ cd $GOPATH/src/github.com/mmcgrana
$ git clone git@github.com:mmcgrana/gobyexample.git
$ cd gobyexample
$ go get
$ foreman start
$ foreman open
Platform Deploy
Basic setup:
$ export DEPLOY=$USER
$ export APP=gobyexample-$USER
$ heroku create $APP -r $DEPLOY
$ heroku config:add -a $APP
BUILDPACK_URL=https://github.com/mmcgrana/buildpack-go.git
CANONICAL_HOST=$APP.herokuapp.com \
FORCE_HTTPS=1 \
AUTH=go:byexample
$ heroku labs:enable dot-profile-d -a $APP
$ git push $DEPLOY master
$ heroku open -a $APP
Add a domain + SSL:
$ heroku domains:add $DOMAIN
$ heroku addons:add ssl -r $DEPLOY
# order ssl cert for domain
$ cat > /tmp/server.key
$ cat > /tmp/server.crt.orig
$ curl https://knowledge.rapidssl.com/library/VERISIGN/ALL_OTHER/RapidSSL%20Intermediate/RapidSSL_CA_bundle.pem > /tmp/rapidssl_bundle.pem
$ cat /tmp/server.crt.orig /tmp/rapidssl_bundle.pem > /tmp/server.crt
$ heroku certs:add /tmp/server.crt /tmp/server.key -r $DEPLOY
# add ALIAS record from domain to ssl endpoint dns
$ heroku config:add CANONICAL_HOST=$DOMAIN -r $DEPLOY
$ heroku open -r $DEPLOY
License
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Thanks
Thanks to Jeremy Ashkenas for Docco, which inspired this project.
Description
Languages
Go
59.8%
CSS
31.6%
Shell
8.6%