Skip to content

Commit 72b2276

Browse files
committed
first pass at import
1 parent 8fa1292 commit 72b2276

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+13834
-18
lines changed

.env

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
CANONICAL_HOST=127.0.0.1
2+
FORCE_HTTPS=0

Procfile

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
web: gobyexample

README.md

+43-6
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ To build the site:
2222

2323
```console
2424
$ tools/build
25-
$ open site/index.html
25+
$ open public/index.html
2626
```
2727

2828
To build continuously in a loop:
@@ -40,15 +40,52 @@ $ export PATH="$HOME/repos/pygments:$PATH"
4040
```
4141

4242

43-
### Serving
43+
### Local Deploy
4444

45-
The site is served by the [gobyexample-server](https://github.com/mmcgrana/gobyexample-server)
46-
tool. To export to this tool:
45+
```bash
46+
$ mkdir -p $GOPATH/src/github.com/mmcgrana
47+
$ cd $GOPATH/src/github.com/mmcgrana
48+
$ git clone [email protected]:mmcgrana/gobyexaple.git
49+
$ cd gobyexample
50+
$ go get
51+
$ foreman start
52+
$ foreman open
53+
```
4754

48-
```console
49-
$ SITEDIR=../gobyexample-server/public tool/build
55+
56+
### Platform Deploy
57+
58+
Basic setup:
59+
60+
```bash
61+
$ export DEPLOY=$USER
62+
$ heroku create gobyexample-$DEPLOY -r $DEPLOY
63+
$ heroku config:add -r $DEPLOY \
64+
BUILDPACK_URL=https://github.com/kr/heroku-buildpack-go.git -r $DEPLOY \
65+
CANONICAL_HOST=gobyexample-$DEPLOY.herokuapp.com -r $DEPLOY \
66+
FORCE_HTTPS=1 \
67+
AUTH=go:byexample
68+
$ git push $DEPLOY master
69+
$ heroku open -r $DEPLOY
5070
```
5171

72+
Add a domain + SSL:
73+
74+
```bash
75+
$ heroku domains:add $DOMAIN
76+
$ heroku addons:add ssl -r $DEPLOY
77+
# order ssl cert for domain
78+
$ cat > /tmp/server.key
79+
$ cat > /tmp/server.crt.orig
80+
$ cat /tmp/server.crt.orig /tmp/rapidssl_bundle.pem > /tmp/server.crt
81+
$ heroku certs:add /tmp/server.crt /tmp/server.key -r $DEPLOY
82+
# add ALIAS record from domain to ssl endpoint dns
83+
$ heroku config:add CANONICAL_HOST=$DOMAIN -r $DEPLOY
84+
$ heroku open -r $DEPLOY
85+
```
86+
87+
88+
5289

5390
### License
5491

public/404.html

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta http-eqiv="content-type" content="text/html;charset=utf-8">
5+
<title>Go by Example: Not Found</title>
6+
<link rel=stylesheet href="site.css">
7+
</head>
8+
<script type="text/javascript">
9+
if (window.location.host == "gobyexample.com") {
10+
var _gaq = _gaq || [];
11+
_gaq.push(['_setAccount', 'UA-34996217-1']);
12+
_gaq.push(['_trackPageview']);
13+
(function() {
14+
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
15+
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
16+
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
17+
})();
18+
}
19+
</script>
20+
<body>
21+
<div id="intro">
22+
<h2><a href="./">Go by Example</a></h2>
23+
<p>Sorry, we couldn't find that! Check out the <a href="./">home page</a>?</p>
24+
<p class="footer">
25+
<a href="https://twitter.com/gobyexample">@gobyexample</a> | <a href="mailto:[email protected]">feedback</a> | <a href="https://github.com/mmcgrana/gobyexample">source</a> | <a href="https://github.com/mmcgrana/gobyexample#license">license</a>
26+
</p>
27+
</div>
28+
</body>
29+
</html>

public/arrays

+195
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta http-eqiv="content-type" content="text/html;charset=utf-8">
5+
<title>Go by Example: Arrays</title>
6+
<link rel=stylesheet href="site.css">
7+
</head>
8+
<script type="text/javascript">
9+
if (window.location.host == "gobyexample.com") {
10+
var _gaq = _gaq || [];
11+
_gaq.push(['_setAccount', 'UA-34996217-1']);
12+
_gaq.push(['_trackPageview']);
13+
(function() {
14+
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
15+
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
16+
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
17+
})();
18+
}
19+
</script>
20+
<body>
21+
<div class="example" id="arrays">
22+
<h2><a href="./">Go by Example</a>: Arrays</h2>
23+
24+
<table>
25+
26+
<tr>
27+
<td class="docs">
28+
<p>In Go, an <em>array</em> is a numbered sequence of elements of a
29+
specific length.</p>
30+
31+
</td>
32+
<td class="code empty leading">
33+
34+
</td>
35+
</tr>
36+
37+
<tr>
38+
<td class="docs">
39+
40+
</td>
41+
<td class="code leading">
42+
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
43+
</pre></div>
44+
45+
</td>
46+
</tr>
47+
48+
<tr>
49+
<td class="docs">
50+
51+
</td>
52+
<td class="code leading">
53+
<div class="highlight"><pre><span class="kn">import</span> <span class="s">&quot;fmt&quot;</span>
54+
</pre></div>
55+
56+
</td>
57+
</tr>
58+
59+
<tr>
60+
<td class="docs">
61+
62+
</td>
63+
<td class="code leading">
64+
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
65+
</pre></div>
66+
67+
</td>
68+
</tr>
69+
70+
<tr>
71+
<td class="docs">
72+
<p>Here we create an array <code>a</code> that will hold exactly
73+
5 <code>int</code>s. The type of elements and length are both
74+
part of the array&rsquo;s type. By default an array is
75+
zero-valued, which for <code>int</code>s means <code>0</code>s.</p>
76+
77+
</td>
78+
<td class="code leading">
79+
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">a</span> <span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="kt">int</span>
80+
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">&quot;emp:&quot;</span><span class="p">,</span> <span class="nx">a</span><span class="p">)</span>
81+
</pre></div>
82+
83+
</td>
84+
</tr>
85+
86+
<tr>
87+
<td class="docs">
88+
<p>We can set a value at an index using the
89+
<code>array[index] = value</code> syntax, and get a value with
90+
<code>array[index]</code>.</p>
91+
92+
</td>
93+
<td class="code leading">
94+
<div class="highlight"><pre> <span class="nx">a</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span> <span class="p">=</span> <span class="mi">100</span>
95+
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">&quot;set:&quot;</span><span class="p">,</span> <span class="nx">a</span><span class="p">)</span>
96+
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">&quot;get:&quot;</span><span class="p">,</span> <span class="nx">a</span><span class="p">[</span><span class="mi">4</span><span class="p">])</span>
97+
</pre></div>
98+
99+
</td>
100+
</tr>
101+
102+
<tr>
103+
<td class="docs">
104+
<p>The builtin <code>len</code> returns the length of an array.</p>
105+
106+
</td>
107+
<td class="code leading">
108+
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">&quot;len:&quot;</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="nx">a</span><span class="p">))</span>
109+
</pre></div>
110+
111+
</td>
112+
</tr>
113+
114+
<tr>
115+
<td class="docs">
116+
<p>Use this syntax to declare and initalize an array
117+
in one line.</p>
118+
119+
</td>
120+
<td class="code leading">
121+
<div class="highlight"><pre> <span class="nx">b</span> <span class="o">:=</span> <span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="kt">int</span><span class="p">{</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">}</span>
122+
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">&quot;dcl:&quot;</span><span class="p">,</span> <span class="nx">b</span><span class="p">)</span>
123+
</pre></div>
124+
125+
</td>
126+
</tr>
127+
128+
<tr>
129+
<td class="docs">
130+
<p>Array types are one-dimensional, but you can
131+
compose types to build multi-dimensional data
132+
structures.</p>
133+
134+
</td>
135+
<td class="code">
136+
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">twoD</span> <span class="p">[</span><span class="mi">2</span><span class="p">][</span><span class="mi">3</span><span class="p">]</span><span class="kt">int</span>
137+
<span class="k">for</span> <span class="nx">i</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="p">&lt;</span> <span class="mi">2</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span> <span class="p">{</span>
138+
<span class="k">for</span> <span class="nx">j</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">j</span> <span class="p">&lt;</span> <span class="mi">3</span><span class="p">;</span> <span class="nx">j</span><span class="o">++</span> <span class="p">{</span>
139+
<span class="nx">twoD</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="nx">j</span><span class="p">]</span> <span class="p">=</span> <span class="nx">i</span> <span class="o">+</span> <span class="nx">j</span>
140+
<span class="p">}</span>
141+
<span class="p">}</span>
142+
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">&quot;2d: &quot;</span><span class="p">,</span> <span class="nx">twoD</span><span class="p">)</span>
143+
<span class="p">}</span>
144+
</pre></div>
145+
146+
</td>
147+
</tr>
148+
149+
</table>
150+
151+
<table>
152+
153+
<tr>
154+
<td class="docs">
155+
<p>Note that arrays appear in the form <code>[v1 v2 v3 ...]</code>
156+
when printed with <code>fmt.Println</code>.</p>
157+
158+
</td>
159+
<td class="code leading">
160+
<div class="highlight"><pre><span class="gp">$</span> go run arrays.go
161+
<span class="go">emp: [0 0 0 0 0]</span>
162+
<span class="go">set: [0 0 0 0 100]</span>
163+
<span class="go">get: 100</span>
164+
<span class="go">len: 5</span>
165+
<span class="go">dcl: [1 2 3 4 5]</span>
166+
<span class="go">2d: [[0 1 2] [1 2 3]]</span>
167+
</pre></div>
168+
169+
</td>
170+
</tr>
171+
172+
<tr>
173+
<td class="docs">
174+
<p>You&rsquo;ll see <em>slices</em> much more often than arrays in
175+
typical Go. We&rsquo;ll look at slices next.</p>
176+
177+
</td>
178+
<td class="code empty">
179+
180+
</td>
181+
</tr>
182+
183+
</table>
184+
185+
186+
<p class="next">
187+
Next example: <a href="slices">Slices</a>.
188+
</p>
189+
190+
<p class="footer">
191+
<a href="https://twitter.com/gobyexample">@gobyexample</a> | <a href="mailto:[email protected]">feedback</a> | <a href="https://github.com/mmcgrana/gobyexample/blob/master/examples/arrays">source</a> | <a href="https://github.com/mmcgrana/gobyexample#license">license</a>
192+
</p>
193+
</div>
194+
</body>
195+
</html>

0 commit comments

Comments
 (0)