-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathatom.xml
More file actions
executable file
·481 lines (443 loc) · 47.1 KB
/
atom.xml
File metadata and controls
executable file
·481 lines (443 loc) · 47.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title><![CDATA[DrZ.ac]]></title>
<link href="http://drz.ac/atom.xml" rel="self"/>
<link href="http://drz.ac/"/>
<updated>2013-05-29T10:47:49-05:00</updated>
<id>http://drz.ac/</id>
<author>
<name><![CDATA[Zachary T. Harmany, PhD]]></name>
</author>
<generator uri="http://octopress.org/">Octopress</generator>
<entry>
<title type="html"><![CDATA[Octopress Table Styling]]></title>
<link href="http://drz.ac/2013/01/19/octopress-table-styling/"/>
<updated>2013-01-19T02:54:00-06:00</updated>
<id>http://drz.ac/2013/01/19/octopress-table-styling</id>
<content type="html"><![CDATA[<p>It seems that by default, Octopress has very minimal table styling. This post shows you how to tweak the CSS styling. Note that a better place for the CSS code would be to append <code>sass/custom/_styles.scss</code>.</p>]]></content>
</entry>
<entry>
<title type="html"><![CDATA[LaTeX Theorem-like Environments for the Web]]></title>
<link href="http://drz.ac/2013/01/17/latex-theorem-like-environments-for-the-web/"/>
<updated>2013-01-17T06:41:00-06:00</updated>
<id>http://drz.ac/2013/01/17/latex-theorem-like-environments-for-the-web</id>
<content type="html"><![CDATA[<p>Although MathJax offers LaTeX-like mathematical typesetting for the web, there are some other constructs from LaTeX that would be useful for a mathematical blog. For instance, the <code>amsthm</code> package allows you to define environments for theorems, proofs, lemmas, definitions, and so on. However, MathJax doesn’t implement these higher-level formatting features. And rightly so; any formatting on the web should be done with CSS.</p>
<!-- more -->
<p>Looking to see if anyone has attacked this problem, I came across <a href="http://boolesrings.org/scoskey/writing-math-on-the-web/" title="Writing math on the web">Samuel Coskey’s post</a> where he suggests using custom HTML tags as a solution. However, it <a href="http://stackoverflow.com/questions/5970093/using-custom-html-tags" title="Using custom HTML tags">seems to be</a> a <a href="http://stackoverflow.com/questions/211394/when-to-use-custom-html-tags" title="When to use custom HTML tags">bad idea</a> to use custom HTML tags. A more robust solution would be to use custom CSS classes instead.</p>
<p>The CSS I’m using is in <code>theorems.css</code> below. If you prefer an open <a href="http://en.wikipedia.org/wiki/Q.E.D." title="Q.E.D. - Wikipedia">Halmos / QED</a> symbol versus the closed symbol, use <code>\25FB</code> in place of <code>\25FC</code>.</p>
<figure class='code'>
<figcaption>Theorem-like Environments (theorems.css)<a href='http://drz.ac/downloads/code/css/theorems.css'>view raw</a></figcaption>
<table class='highlight'><td class='line-numbers' aria-hidden='true'><div><pre class='line-number'>1</pre><pre class='line-number'>2</pre><pre class='line-number'>3</pre><pre class='line-number'>4</pre><pre class='line-number'>5</pre><pre class='line-number'>6</pre><pre class='line-number'>7</pre><pre class='line-number'>8</pre><pre class='line-number'>9</pre><pre class='line-number'>10</pre><pre class='line-number'>11</pre><pre class='line-number'>12</pre><pre class='line-number'>13</pre><pre class='line-number'>14</pre><pre class='line-number'>15</pre><pre class='line-number'>16</pre><pre class='line-number'>17</pre><pre class='line-number'>18</pre><pre class='line-number'>19</pre><pre class='line-number'>20</pre><pre class='line-number'>21</pre><pre class='line-number'>22</pre><pre class='line-number'>23</pre><pre class='line-number'>24</pre><pre class='line-number'>25</pre><pre class='line-number'>26</pre><pre class='line-number'>27</pre><pre class='line-number'>28</pre><pre class='line-number'>29</pre><pre class='line-number'>30</pre><pre class='line-number'>31</pre><pre class='line-number'>32</pre><pre class='line-number'>33</pre><pre class='line-number'>34</pre><pre class='line-number'>35</pre><pre class='line-number'>36</pre><pre class='line-number'>37</pre><pre class='line-number'>38</pre><pre class='line-number'>39</pre><pre class='line-number'>40</pre><pre class='line-number'>41</pre><pre class='line-number'>42</pre><pre class='line-number'>43</pre><pre class='line-number'>44</pre><pre class='line-number'>45</pre><pre class='line-number'>46</pre></div></td><td class='main css'><div><pre data-line='line 1' class='line'><span class="nc">.theorem</span> <span class="p">{</span>
</pre><pre data-line='line 2' class='line'> <span class="k">display</span><span class="o">:</span> <span class="k">block</span><span class="p">;</span>
</pre><pre data-line='line 3' class='line'> <span class="k">margin</span><span class="o">:</span> <span class="m">12px</span> <span class="m">0</span><span class="p">;</span>
</pre><pre data-line='line 4' class='line'> <span class="k">font-style</span><span class="o">:</span> <span class="k">italic</span><span class="p">;</span>
</pre><pre data-line='line 5' class='line'><span class="p">}</span>
</pre><pre data-line='line 6' class='line'><span class="nc">.theorem</span><span class="nd">:before</span> <span class="p">{</span>
</pre><pre data-line='line 7' class='line'> <span class="k">content</span><span class="o">:</span> <span class="s2">"Theorem."</span><span class="p">;</span>
</pre><pre data-line='line 8' class='line'> <span class="k">font-weight</span><span class="o">:</span> <span class="k">bold</span><span class="p">;</span>
</pre><pre data-line='line 9' class='line'> <span class="k">font-style</span><span class="o">:</span> <span class="k">normal</span><span class="p">;</span>
</pre><pre data-line='line 10' class='line'><span class="p">}</span>
</pre><pre data-line='line 11' class='line'>
</pre><pre data-line='line 12' class='line'><span class="nc">.lemma</span> <span class="p">{</span>
</pre><pre data-line='line 13' class='line'> <span class="k">display</span><span class="o">:</span> <span class="k">block</span><span class="p">;</span>
</pre><pre data-line='line 14' class='line'> <span class="k">margin</span><span class="o">:</span> <span class="m">12px</span> <span class="m">0</span><span class="p">;</span>
</pre><pre data-line='line 15' class='line'> <span class="k">font-style</span><span class="o">:</span> <span class="k">italic</span><span class="p">;</span>
</pre><pre data-line='line 16' class='line'><span class="p">}</span>
</pre><pre data-line='line 17' class='line'><span class="nc">.lemma</span><span class="nd">:before</span> <span class="p">{</span>
</pre><pre data-line='line 18' class='line'> <span class="k">content</span><span class="o">:</span> <span class="s2">"Lemma."</span><span class="p">;</span>
</pre><pre data-line='line 19' class='line'> <span class="k">font-weight</span><span class="o">:</span> <span class="k">bold</span><span class="p">;</span>
</pre><pre data-line='line 20' class='line'> <span class="k">font-style</span><span class="o">:</span> <span class="k">normal</span><span class="p">;</span>
</pre><pre data-line='line 21' class='line'><span class="p">}</span>
</pre><pre data-line='line 22' class='line'>
</pre><pre data-line='line 23' class='line'><span class="nc">.proof</span> <span class="p">{</span>
</pre><pre data-line='line 24' class='line'> <span class="k">display</span><span class="o">:</span> <span class="k">block</span><span class="p">;</span>
</pre><pre data-line='line 25' class='line'> <span class="k">margin</span><span class="o">:</span> <span class="m">12px</span> <span class="m">0</span><span class="p">;</span>
</pre><pre data-line='line 26' class='line'> <span class="k">font-style</span><span class="o">:</span> <span class="k">normal</span><span class="p">;</span>
</pre><pre data-line='line 27' class='line'><span class="p">}</span>
</pre><pre data-line='line 28' class='line'><span class="nc">.proof</span><span class="nd">:before</span> <span class="p">{</span>
</pre><pre data-line='line 29' class='line'> <span class="k">content</span><span class="o">:</span> <span class="s2">"Proof."</span><span class="p">;</span>
</pre><pre data-line='line 30' class='line'> <span class="k">font-style</span><span class="o">:</span> <span class="k">italic</span><span class="p">;</span>
</pre><pre data-line='line 31' class='line'><span class="p">}</span>
</pre><pre data-line='line 32' class='line'><span class="nc">.proof</span><span class="nd">:after</span> <span class="p">{</span>
</pre><pre data-line='line 33' class='line'> <span class="k">content</span><span class="o">:</span> <span class="s2">"\25FC"</span><span class="p">;</span>
</pre><pre data-line='line 34' class='line'> <span class="k">float</span><span class="o">:</span><span class="k">right</span><span class="p">;</span>
</pre><pre data-line='line 35' class='line'><span class="p">}</span>
</pre><pre data-line='line 36' class='line'>
</pre><pre data-line='line 37' class='line'><span class="nc">.definition</span> <span class="p">{</span>
</pre><pre data-line='line 38' class='line'> <span class="k">display</span><span class="o">:</span> <span class="k">block</span><span class="p">;</span>
</pre><pre data-line='line 39' class='line'> <span class="k">margin</span><span class="o">:</span> <span class="m">12px</span> <span class="m">0</span><span class="p">;</span>
</pre><pre data-line='line 40' class='line'> <span class="k">font-style</span><span class="o">:</span> <span class="k">normal</span><span class="p">;</span>
</pre><pre data-line='line 41' class='line'><span class="p">}</span>
</pre><pre data-line='line 42' class='line'><span class="nc">.definition</span><span class="nd">:before</span> <span class="p">{</span>
</pre><pre data-line='line 43' class='line'> <span class="k">content</span><span class="o">:</span> <span class="s2">"Definition."</span><span class="p">;</span>
</pre><pre data-line='line 44' class='line'> <span class="k">font-weight</span><span class="o">:</span> <span class="k">bold</span><span class="p">;</span>
</pre><pre data-line='line 45' class='line'> <span class="k">font-style</span><span class="o">:</span> <span class="k">normal</span><span class="p">;</span>
</pre><pre data-line='line 46' class='line'><span class="p">}</span>
</pre></div></td></tr></table></figure>
<p>If you happen to be using Octopress, which uses <a href="http://sass-lang.com/" title="Sass">Sass</a>, this code can be appended to <code>/sass/custom/_styles.scss</code>.</p>
<p>And now to see this in action. The markdown (with inline HTML)</p>
<figure class='code'>
<figcaption>Definition Example (theoremsexample.md)<a href='http://drz.ac/downloads/code/md/theoremsexample.md'>view raw</a></figcaption>
<table class='highlight'><td class='line-numbers' aria-hidden='true'><div><pre class='line-number'>1</pre><pre class='line-number'>2</pre><pre class='line-number'>3</pre><pre class='line-number'>4</pre><pre class='line-number'>5</pre><pre class='line-number'>6</pre><pre class='line-number'>7</pre><pre class='line-number'>8</pre><pre class='line-number'>9</pre><pre class='line-number'>10</pre><pre class='line-number'>11</pre><pre class='line-number'>12</pre><pre class='line-number'>13</pre><pre class='line-number'>14</pre></div></td><td class='main html'><div><pre data-line='line 1' class='line'><span class="nt"><div</span> <span class="na">class=</span><span class="s">"definition"</span><span class="nt">></span>
</pre><pre data-line='line 2' class='line'>A set $C$ is *convex* if for all
</pre><pre data-line='line 3' class='line'>$x,y \in C$ and for all
</pre><pre data-line='line 4' class='line'>$\alpha \in [0,1]$ the point
</pre><pre data-line='line 5' class='line'>$\alpha x + (1-\alpha) y \in C$.
</pre><pre data-line='line 6' class='line'><span class="nt"></div></span>
</pre><pre data-line='line 7' class='line'>
</pre><pre data-line='line 8' class='line'><span class="nt"><div</span> <span class="na">class=</span><span class="s">"theorem"</span><span class="nt">></span>
</pre><pre data-line='line 9' class='line'>There are no natural numbers
</pre><pre data-line='line 10' class='line'>$\naturals = (1, 2, 3, \ldots)$
</pre><pre data-line='line 11' class='line'>$x$, $y$, and $z$ such that
</pre><pre data-line='line 12' class='line'>$x^n + y^n = z^n$, in which $n$
</pre><pre data-line='line 13' class='line'>is a natural number greater than 2.
</pre><pre data-line='line 14' class='line'><span class="nt"></div></span>
</pre></div></td></tr></table></figure>
<p>will produce the following:</p>
<div class="definition">
A set \(C\) is <em>convex</em> if for all \(x,y \in C\) and for all \(\alpha \in [0,1]\) the point \(\alpha x + (1-\alpha) y \in C\).
</div>
<div class="theorem">
There are no natural numbers \(\naturals = (1, 2, 3, \ldots)\) \(x\), \(y\), and \(z\) such that \(x^n + y^n = z^n\), in which \(n\) is a natural number greater than 2.
</div>
<p>One improvement would be to allow theorem names and numbering (with subsequent referencing), but I think for now this is a nice solution.</p>]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Publication List using BibTeX in Octopress]]></title>
<link href="http://drz.ac/2013/01/15/publication-list-using-bibtex-in-octopress/"/>
<updated>2013-01-15T17:36:00-06:00</updated>
<id>http://drz.ac/2013/01/15/publication-list-using-bibtex-in-octopress</id>
<content type="html"><![CDATA[<p>I was looking for a nice way to use BibTeX within Octopress to generate my <a href="http://drz.ac/publications" title="Publications">list of publications</a>, and came across the <a href="https://github.com/archome/jekyll-citation" title="jekyll-citation">jekyll-citation</a> plugin.</p>
<!-- more -->
<p>It was fairly easy to setup, first simply install <code>citeproc-ruby</code> and <code>bibtex-ruby</code> gems by running</p>
<pre><code>gem install citeproc-ruby
gem install bibtex-ruby</code></pre>
<p>in the terminal, then add them to your <code>Gemfile</code> by adding the two lines:</p>
<pre><code>gem 'bibtex-ruby'
gem 'citeproc-ruby'</code></pre>
<p>then you should be set to use them with Octopress. To configure, I grabbed the IEEE format from <a href="https://github.com/citation-style-language/styles" title="Citation Style Language">the citation style language repository</a> and placed it in <code>plugins/ieee.csl</code>, then I added these lines to <code>_config.yml</code>:</p>
<pre><code># BibTex Citation plugin
citation:
citation_style: plugins/ieee.csl
citation_locale: en</code></pre>
<p>I was getting an error when using <code>citation.rb</code>, and it seems the issue was that it was reading the data as a string and not an array, and hence the <code>.join</code> method was failing. So on Line 31 in <code>citation.rb</code> I simply changed</p>
<pre><code> #content = super.join
content = super</code></pre>
<p>And now it works, no troubles. For instance the example</p>
<p>B. Brothman, <q>Orders of value: probing the theoretical terms of Archival Practice</q>, <i>Archivaria</i>, vol. 32, no. 1, 1991.</p>
<p>was generated using</p>
<pre><code>{% bibtex %}
@article{brothman1991orders,
title={Orders of value: probing the theoretical terms of Archival Practice},
author={Brothman, B.},
journal={Archivaria},
volume={32},
number={1},
year={1991}
}
{% endbibtex %}</code></pre>
<p>Although it seems that to make a longer list I need to enclose each item in it’s own liquid block. So for now, it’s not the greatest solution.</p>]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Matching Content to MathJax]]></title>
<link href="http://drz.ac/2013/01/14/matching-content-to-mathjax/"/>
<updated>2013-01-14T18:15:00-06:00</updated>
<id>http://drz.ac/2013/01/14/matching-content-to-mathjax</id>
<content type="html"><![CDATA[<p><a href="http://www.mathjax.org" title="MathJax">MathJax</a> is great, but one small annoyance is when using plain text within an equation (with the <code>\text{}</code> command), the typeface would not match the surrounding content. If you like the MathJax typeface, the easiest way to solve this subtle problem is to use the MathJax typeface for your content.</p>
<!-- more -->
<p>In <a href="http://octopress.org/" title="Octopress">Octopress</a>, this is fairly straightforward to do, thanks to <a href="https://groups.google.com/forum/?fromgroups=#!topic/mathjax-users/jqQxrmeG48o" title="MathJax Users Google Group">this post</a>, the bit of CSS one needs is</p>
<pre><code>@font-face {
font-family: 'MJX_Main';
src: url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/eot/MathJax_Main-Regular.eot'); /* IE9 Compat Modes */
src: url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/eot/MathJax_Main-Regular.eot?iefix') format('eot'),
url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/woff/MathJax_Main-Regular.woff') format('woff'),
url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/otf/MathJax_Main-Regular.otf') format('opentype'),
url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/svg/MathJax_Main-Regular.svg#MathJax_Main-Regular') format('svg');
}</code></pre>
<p>Since Octopress uses <a href="http://sass-lang.com/" title="Sass">Sass</a>, this is best placed in <code>/sass/custom/_styles.scss</code>. I simply appended the code to the end. This defines a font-family <code>MJX_Main</code>, which we can use for our serif styling by adding</p>
<pre><code>$serif: "MJX_Main", serif;</code></pre>
<p>to <code>/sass/custom/_fonts.scss</code>.</p>
<p>So now the typeface used in this post will match that used in equations. For example, when I define \(\ind{A}\) as the binary indicator function of the event \(A\): \[
\ind{A} = \cases{
1 & if $A$ is true,\cr
0 & otherwise,}
\] the “otherwise’’ here is the same as in the equation. This makes the math a bit more seamless. It seems that going the opposite direction (styling MathJax to match your content) may be a bit more difficult.</p>]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Dropbox Humor]]></title>
<link href="http://drz.ac/2013/01/14/dropbox-humor/"/>
<updated>2013-01-14T10:51:00-06:00</updated>
<id>http://drz.ac/2013/01/14/dropbox-humor</id>
<content type="html"><![CDATA[<p>I love that Dropbox has a sense of humor.</p>
<figure>
<img src="http://drz.ac/images/DropboxHumor.png" alt="Grab a Snickers"><figcaption>Grab a Snickers</figcaption>
</figure>]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Compressorhead]]></title>
<link href="http://drz.ac/2013/01/05/compressorhead/"/>
<updated>2013-01-05T20:03:00-06:00</updated>
<id>http://drz.ac/2013/01/05/compressorhead</id>
<content type="html"><![CDATA[<p>What could be more awesome than a heavy metal band consisting of robots playing Ace of Spades?</p>
<!-- more -->
<p>They have a few more videos on <a href="http://compressorheadband.com/" title="Compressorhead">their website</a>. Their rendition of AC/DC’s TNT is embedded below. Get headbanging, meatbags.</p>
<iframe width="560" height="315" src="http://www.youtube.com/embed/qKAWBNl4MeA" frameborder="0" allowfullscreen></iframe>]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Blogging with Math: Octopress, MathJax, and Pandoc]]></title>
<link href="http://drz.ac/2013/01/03/blogging-with-math/"/>
<updated>2013-01-03T16:12:00-06:00</updated>
<id>http://drz.ac/2013/01/03/blogging-with-math</id>
<content type="html"><![CDATA[<p>I’ve been trying to achieve mathematical writing nirvana, as <a href="http://rousette.org.uk/blog/archives/pandoc-workflow/" title="Pandoc workflow">others</a> have <a href="http://boolesrings.org/krautzberger/2011/08/03/why-markdown-not-latex/" title="Why markdown, not LaTeX?">tried before</a> me. My hope is to eventually use a single system for all my technical writing, be it for the web or print. Being an experienced LaTeX user, I would expect no less in terms of flexibility and typesetting of mathematical expressions. However, making LaTeX play nice on the web can be a challenge. Here’s my solution thus far.</p>
<!-- more -->
<h2 id="configuring-octopress-for-use-with-mathjax">Configuring Octopress for use with MathJax</h2>
<p>There’s two parts here. The first is getting Octopress to work nicely with <a href="http://www.mathjax.org" title="MathJax">MathJax</a>. This is relatively easy. Octopress has a folder for custom html files. On my install, it’s located at</p>
<pre><code>/source/_includes/custom/</code></pre>
<p>In this folder, find the <code>head.html</code> file, and append the following:</p>
<pre><code><!--- MathJax Configuration -->
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML,http://drz.ac/javascripts/MathJaxLocal.js">
</script></code></pre>
<p>This does two things, first it loads MathJax from the MathJax CDN, then loads my custom preferences, which includes a whole slew of macros. <a href="http://drz.ac/javascripts/MathJaxLocal.js" title="MathJaxLocal.js">My custom preferences</a> are placed in the javascript folder,</p>
<pre><code>/source/javascript/</code></pre>
<p>notice that I need to specify the path to my local configuration in <code>head.html</code>, and also at the end of the <code>MathJaxLocal.js</code> script itself:</p>
<pre><code>MathJax.Ajax.loadComplete("http://drz.ac/javascripts/MathJaxLocal.js");</code></pre>
<p>With all this, I should now be able to write some beautiful mathematics, and the result should be rendered with MathJax: \[
F(\omega) = \int_{-\infty}^\infty f(t) e^{-i \omega t} \d t.
\]</p>
<p>Some may be content with this. However, there were a few other things that troubled me, such as some errors that I would get due to the Markdown processing and the ability to preview my content offline.</p>
<h2 id="markdown-with-mathjax-using-pandoc">Markdown with MathJax using Pandoc</h2>
<p>In order to render your Markdown file as HTML, you need a Markdown interpreter. There are several options, rdiscount, kramdown, maruku, multimarkdown, and pandoc are ones that I’ve tried. Out of the box, Octopress can be easily configured to use either rdiscount, kramdown, or maruku. Being resistant to change, my goal was to be able to write equations exactly how I would in LaTeX. That is, by using the dollar sign characters for inline equations, and double dollar signs for display equations. This is specified in the <code>MathJaxLocal.js</code> file. Initially it seemed that maruku handled the interplay with MathJax the best. However, oftentimes things would break. Often if I had an underscore in a math equation, markdown would think the text should be italicized, since that’s part of the markdown spec. At the end of this section, I have a test case which would oftentimes not be converted correctly.</p>
<p>As it turns out, <a href="http://johnmacfarlane.net/pandoc/" title="Pandoc">pandoc</a> is a more robust solution for interpreting markdown with mathjax syntax. However, Octopress is not configured to use pandoc out of the box. The first step is to <a href="http://johnmacfarlane.net/pandoc/installing.html" title="Pandoc - Installing">install the latest version of pandoc</a>. Next, we need to figure out how to use pandoc with Octopress. Thanks to <a href="https://github.com/fauno/jekyll-pandoc-multiple-formats" title="Jekyll pandoc plugin">this jekyll plugin</a>, I was able to get started. Simply place this plugin in your <code>plugins</code> directory. The pdf generation wasn’t working correctly for me, so I simply stripped out that portion of the code. So my <code>pandoc.rb</code> reads</p>
<pre><code>require 'open3'
module Jekyll
# Just return html5
class MarkdownConverter
def convert(content)
flags = @config['pandoc']['flags']
output = ''
Open3::popen3("pandoc -t html5 #{flags}") do |stdin, stdout, stderr|
stdin.puts content
stdin.close
output = stdout.read.strip
end
output
end
end
end</code></pre>
<p>Then I needed to change my <code>_config.yml</code> as follows:</p>
<pre><code>markdown: pandoc
pandoc:
skip: false
flags: '--smart --mathjax'</code></pre>
<p>now using the same rake commands, the markdown files are processed by pandoc. One interesting feature about pandoc, that I may discuss in the future, is that it supports the use of bibliographies using BibTeX.</p>
<h3 id="test-case">Test case</h3>
<p>This is a test case of markdown / MathJax weirdness.</p>
<ul>
<li>The first error is with square brackets. Sometimes they are processed as Markdown and disappear and MathJax incorrectly processes them.</li>
</ul>
<p>Example: \(y = [z > 0]\).</p>
<ul>
<li>The second error is with underscores. Markdown interprets these as adding emphasis, and hence they break.</li>
</ul>
<p>Example:</p>
<p>If I have one integral here: \[
\int_{-\infty}^\infty f(x) \d x,
\] and a second integral here \[
\int_{-\infty}^\infty g(t) \d t,
\] we may introduce an issue.</p>
<p>Hopefully everything is displayed as it should!</p>
<h2 id="offline-editing">Offline editing</h2>
<p>With an internet connection, I can use the Octopress preview web host to check out how my draft is progressing. However, once an internet connection is unavailable, the MathJax typesetting breaks since it is essentially loading the configuration I’ve deployed to render the content I’m previewing. That is, the localhost server loads the MathJax configuration that’s actually located at <code>http://drz.ac/javascripts/MathJaxLocal.js</code>. So once I don’t have wifi available, it can’t find this page, and my maths break.</p>
<p>My ideal solution would be to write my posts in a text editor then preview them offline without requiring the overly complex local webserver. While it’s great to see how things look before deploying a post, it can be distracting to deal with when I’m just trying to get my ideas down.</p>
<p>Enter <a href="http://markedapp.com" title="Marked">Marked</a>, a companion app for previewing Markdown content. Marked looks for changes in your markdown file, upon a change, converts it to HTML, and displays it in a nice preview window. By default, marked uses multimarkdown. Unfortunately, I would encounter similar issues with MathJax equations that I felt that I should just configure Marked to use pandoc instead. This is aided by using a small bash script as a wrapper for pandoc.</p>
<pre><code>#!/bin/bash
# Wrapper for using pandoc with Marked
cat - | pandoc -S -f markdown -t html --mathjax</code></pre>
<p>Simply use this script (making sure to <code>chmod a+x</code>) as the custom markdown processor in the Marked preferences, and everything should work great. Now to get the equation support, I downloaded the latest version of MathJax and simply keep it in my Dropbox folder (<code>~/Dropbox/MathJax/</code>). Within this MathJax folder, I also keep a copy of my <code>MathJaxLocal.js</code> script, however one needs to change the last line to</p>
<pre><code>MathJax.Ajax.loadComplete("file:///users/zac/Dropbox/MathJax/MathJaxLocal.js");</code></pre>
<p>with the appropriate changes for your install. Then when I’m writing offline, I simply include my local MathJax install within the markdown file itself.</p>
<pre><code><script type="text/javascript"
src="file:///users/zac/Dropbox/MathJax/
MathJax.js?config=TeX-AMS-MML_HTMLorMML,
file:///users/zac/Dropbox/MathJax/MathJaxLocal.js">
</script></code></pre>
<p>So far, works great!</p>
<h2 id="markup-nirvana">Markup Nirvana?</h2>
<p>For now I’m going to stick with this solution. The only drawback is that I seem to need to always include the javascript to use my local MathJax configuration. It’s a little inelegant to have to include it every time, but that’s not too much of a headache. On the plus side I now have</p>
<ol type="1">
<li><p>My Octopress blog configured to use MathJax,</p></li>
<li><p>I can seemingly write nearly identically in style to standard LaTeX, and</p></li>
<li><p>Offline composing is made simple by using Marked.</p></li>
</ol>]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Shipping Out]]></title>
<link href="http://drz.ac/2012/12/27/shipping-out/"/>
<updated>2012-12-27T09:16:00-06:00</updated>
<id>http://drz.ac/2012/12/27/shipping-out</id>
<content type="html"><![CDATA[<p>Thanks to <a href="https://twitter.com/mdreid/status/282667051535958016" title="Mark Reid @mdreid">Mark Reid’s tweet</a>, I came across this great piece in Harper’s by David Foster Wallace. My favorite section is when he’s describing his cabin; the toilet in his bathroom in particular:</p>
<blockquote><p>
The toilet’s flush produces a brief but traumatizing sound, a kind of held high-B gargle, as of some gastric disturbance on a cosmic scale. Along with this sound comes a suction so awesomely powerful that it’s both scary and strangely comforting: your waste seems less removed than hurled from you, and with a velocity that lets you feel as though the waste is going to end up someplace so far away that it will have become an abstraction, a kind of existential sewage-treatment system.
</p>
<footer><strong>David Foster Wallace</strong> <cite>Shipping Out</cite></footer>
</blockquote>
<p>Harper’s has other <a href="http://harpers.org/blog/2008/09/david-foster-wallace/" title="David Foster Wallace | Harper's Magazine">articles by David Foster Wallace</a> available online.</p>]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Valid XML Atom Feed on GitHub Pages]]></title>
<link href="http://drz.ac/2012/12/22/valid-xml-atom-feed-on-github-pages/"/>
<updated>2012-12-22T00:59:00-06:00</updated>
<id>http://drz.ac/2012/12/22/valid-xml-atom-feed-on-github-pages</id>
<content type="html"><![CDATA[<p>Attempting to brand my site, I wanted to use <strong>ⓩ</strong> to prepend the title of non-linklog items. This wound up breaking the atom feed in <a href="http://reader.google.com" title="Google Reader">Google Reader</a>, and hence my favorite Google Reader client <a href="http://reederapp.com/" title="Reeder">Reeder</a>. I couldn’t have that.</p>
<!-- more -->
<p>The strange thing was that Firefox displayed everything correctly, but Google Reader and hence Reeder simply showed <code>&#x24e9;</code> in place of the correct unicode symbol. As it turns out, the feed is encoded as <code>utf-8</code>, however <a href="http://pages.github.com" title="GitHub Pages">GitHub Pages</a> was serving the file as <code>US-ASCII</code>, causing the issue.</p>
<p>Thanks to <a href="http://taylor.fausak.me/" title="Taylor Fausak">Taylor Fausak</a>’s <a href="http://taylor.fausak.me/2012/04/26/serving-atom-feeds-with-github-pages/" title="Serving Atom Feeds with GitHub Pages">post on serving atom feeds at GitHub</a>, I was able to come up with a solution. Simply using the extension <code>.atom</code> will make GitHub serve the correct headers. Rather than use the redundant <code>atom.atom</code>, I elected to shoot for <code>feed.atom</code>. To do this in <a href="http://octopress.org/" title="Octopress">Octopress</a> was fairly straightforward.</p>
<ol type="1">
<li><p>In <code>_config.yml</code>, I changed <code>subscribe_rss: /atom.xml</code> to <code>subscribe_rss: /feed.atom</code>. I thought this would be enough. I was wrong.</p></li>
<li><p>In the <code>Rakefile</code>, <code>plugins/category_generator.rb</code>, and <code>sitemap_generator.rb</code>, search and replace <code>atom.xml</code> with <code>feed.atom</code>. (Strange these guys are hard coded).</p></li>
<li><p>In the <code>source</code> directory, rename <code>atom.xml</code> to <code>feed.atom</code>.</p></li>
</ol>
<p>Now I have a <a href="http://feed2.w3.org/check.cgi?url=http%3A//drz.ac/feed.atom" title="Feed Validator Results: http://drz.ac/feed.atom">W3C certified valid feed</a> and everything works splendidly. That is, until I break something new.</p>]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Feed Titles in Octopress Linked Lists]]></title>
<link href="http://drz.ac/2012/12/21/feed-titles-in-octopress-linked-list/"/>
<updated>2012-12-21T22:53:00-06:00</updated>
<id>http://drz.ac/2012/12/21/feed-titles-in-octopress-linked-list</id>
<content type="html"><![CDATA[<p>I’ve been experimenting with <a href="http://octopress.org/docs/blogging/linklog/" title="Linklog Customization">linklog customization</a> using the <code>2.1</code> branch of Octopress. From what I can tell, there’s an error in <code>source/_includes/feed_entry.xml</code>.</p>
<!-- more -->
<p>To get the <code>standard_post_marker</code> to function correctly a la <a href="http://daringfireball.net" title="Daring Fireball">Gruber</a>, where it shows up before the title of his post in the RSS feed, I needed to do some digging.</p>
<p>To fix, I think all that you need to do is switch</p>
<pre><code>{% if linklog and site.linklog_marker_position_feed == 'before' %}
{% unless linklog %}{{ site.standard_post_marker_feed }}{% endunless %}</code></pre>
<p>to</p>
<pre><code>{% unless linklog %}{{ site.standard_post_marker}}{% endunless %}
{% if linklog and site.linklog_marker_position_feed == 'before' %}</code></pre>
<p>or else the 2nd line in the original can never execute.</p>
<p>I opened up an issue on the <a href="https://github.com/imathis/octopress/issues/883" title="Issue #883">Octopress GitHub repository</a>. Yay for <a href="http://en.wikipedia.org/wiki/Open-source_software" title="Open source software - Wikipedia">OSS</a>!</p>]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Cute Road]]></title>
<link href="http://drz.ac/2012/12/21/cute-road/"/>
<updated>2012-12-21T20:42:00-06:00</updated>
<id>http://drz.ac/2012/12/21/cute-road</id>
<content type="html"><![CDATA[<p>I found Lois Lane in Madison.</p>]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Octopress Linked Lists]]></title>
<link href="http://drz.ac/2012/12/21/octopress-linked-lists/"/>
<updated>2012-12-21T17:34:00-06:00</updated>
<id>http://drz.ac/2012/12/21/octopress-linked-lists</id>
<content type="html"><![CDATA[<p>The <a href="http://drz.ac/2012/12/21/multi-column-and-multi-row-cells-in-latex-tables/">previous post</a> was an example of a Linked List / Linklog post. The characteristics being that the post title links to an external page, and the formatting is slightly different.</p>
<!-- more -->
<p>It took me a little while to get this feature working in Octopress, as <a href="https://gist.github.com/1812265" title="How to test Octopress' linklog feature">this post on GitHub</a> seems a bit outdated. Thanks to <a href="http://www.nealsheeran.com" title="Neal Sheeran">Neal Sheeran</a> for <a href="http://www.nealsheeran.com/archives/2012/09/linked-list-posts-mt-to-octopress/" title="Linked List Posts: From Movable Type to Octopress">his post</a> suggesting to use the <code>2.1</code> branch instead of the <code>linklog-test</code> branch. After pulling that branch and merging conflicts I was able to get things working properly.</p>
<p>A last note, there are some <a href="http://octopress.org/docs/blogging/linklog/" title="Writing a Linklog - Octopress">configuration options</a> for changing the style of the linked list posts. At some point I’ll have to decide on what side of the Gruber/Armet line I fall. For now I’ll stick with the defaults.</p>]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Multi-column and multi-row cells in LaTeX tables]]></title>
<link href="http://drz.ac/2012/12/21/multi-column-and-multi-row-cells-in-latex-tables/"/>
<updated>2012-12-21T14:32:00-06:00</updated>
<id>http://drz.ac/2012/12/21/multi-column-and-multi-row-cells-in-latex-tables</id>
<content type="html"><![CDATA[<p>You can make great looking tables in LaTeX by going the extra mile with the formatting. I often use these environments to do so, although infrequently enough that I usually need to look up the syntax. This reference should fix that.</p>]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Blogging with Octopress, Part 2]]></title>
<link href="http://drz.ac/2012/12/20/blogging-with-octopress-part-2/"/>
<updated>2012-12-20T23:29:00-06:00</updated>
<id>http://drz.ac/2012/12/20/blogging-with-octopress-part-2</id>
<content type="html"><![CDATA[<p><a href="http://drz.ac/2012/12/19/blogging-with-octopress/" title="Blogging With Octopress">Last time</a> I discussed the basics of setting up my site using <a href="http://octopress.org/" title="Octopress">Octopress</a>. This time I’m going to go into a bit more detail using some of the Ruby scripts that ship with Octopress.</p>
<!-- more -->
<h2 id="rakefile">Rakefile</h2>
<p>Rakefiles are the Ruby equivalent of Makefiles. As detailed on <a href="http://octopress.org/docs/blogging/" title="Blogging Basics - Octopress">the Octopress site</a>, the Rakefile that ships with Octopress has a number of useful scripts (rake tasks) for generating new posts and deploying your site.</p>
<h3 id="new-posts">New Posts</h3>
<p>Generating a new post is as simple as</p>
<pre><code>rake new_post["title"]</code></pre>
<p>which creates a new Markdown file in your <code>source/_posts</code> directory with filename given by the title, prepended by the date. This will already contain useful metadata that Octopress uses (see the YAML front matter section below). Simply edit this Markdown file to fill your post with content.</p>
<h3 id="new-pages">New Pages</h3>
<p>I haven’t added any new pages quite yet, but there is a rake task for creating new pages easily:</p>
<pre><code>rake new_page[filename]</code></pre>
<p>This will create the file <code>source/filename/index.markdown</code> that will ultimately be served as <code>filename/index.html</code> on your website.</p>
<h3 id="preview-generate-and-deploy">Preview, Generate, and Deploy</h3>
<p>To use a local webserver to serve all your posts (including ones with the <code>published: false</code> flag), simply run</p>
<pre><code>rake preview</code></pre>
<p>and point your browser to <code>http://localhost:4000</code>. One trick that made using this server a bit easier is to use <a href="http://fluidapp.com" title="Fluid">Fluid</a> to create an <q>Octopress Preview</q> app. Note that to get MathJax (the subject of a future post) working correctly, I needed to change the User Agent to Safari, otherwise it didn’t seem that it handled JavaScript correctly.</p>
<p>If you’re satisifed with your site, you can generate the html files and deploy it to GitHub Pages by running</p>
<pre><code>rake generate
rake deploy</code></pre>
<p>Very slick.</p>
<h3 id="dont-forget-to-commit-and-push-your-source">Don’t forget to commit and push your source!</h3>
<p>Lastly, the beauty of having your site as the <code>master</code> branch, and everything else as the <code>source</code> branch is that you can modify your website and use version control without having to publish all your changes. Once you’ve made a new post or page, or some other tweaks to your page source, simply run</p>
<pre><code>git add .
git commit -m 'your message'
git push origin source</code></pre>
<p>and your progress will be saved on GitHub.</p>
<h3 id="yaml-front-matter">YAML front matter</h3>
<p>The special <a href="https://github.com/mojombo/jekyll/wiki/yaml-front-matter" title="YAML Front Matter">YAML Ain’t Markup Language front matter</a> tells Octopress how to process your Markdown files. The <code>new_post</code> script generates this for you. By default the <code>published:</code> line is omitted. Including <code>published: false</code> will prevent the post from being deployed, but will show when you preview your site locally with <code>rake preview</code>. This is useful if you like to preview your post in a browser before deploying.</p>
<h3 id="below-the-fold">Below the fold</h3>
<p>If you want to restrict the amount of a post that is shown in your blog index, simply insert the</p>
<pre><code><!-- more --></code></pre>
<p>tag into your post. The remainder of the post will not be shown in the blog index.</p>
<h2 id="plugins">Plugins</h2>
<p>The <code>plugins</code> directory contains some usful scripts. Here I’ll show a few examples.</p>
<h3 id="blockquotes">Blockquotes</h3>
<p>Standard Markdown blockquotes, coded as</p>
<pre><code>> Don't Panic.
> **Douglas Adams** - The Hitchhiker's Guide to the Galaxy</code></pre>
<p>appears as</p>
<blockquote>
<p>Don’t Panic.<br><strong>Douglas Adams</strong> - The Hitchhiker’s Guide to the Galaxy</p>
</blockquote>
<p>which is perfectly fine. However, using the <code>blockquote</code> script, they appear a bit more fancy:</p>
<blockquote><p>
Don’t Panic.
</p>
<footer><strong>Douglas Adams</strong> <cite>The Hitchhiker’s Guide to the Galaxy</cite></footer>
</blockquote>
<p>This was created using</p>
<pre><code><blockquote><p>Don't Panic.</p><footer><strong>Douglas Adams</strong> <cite>The Hitchhiker's Guide to the Galaxy</cite></footer></blockquote></code></pre>
<p>This environment is especially nice for linking to quotes in articles. <a href="http://octopress.org/docs/plugins/blockquote" title="Blockquote - Octopress">See the documentation</a> for usage details.</p>
<h3 id="internal-post-linking">Internal post linking</h3>
<p>Thanks to <a href="http://kqueue.org" title="Xi Wang">Xi Wang</a>’s post about <a href="http://kqueue.org/blog/2012/01/05/hello-world/#internal-post-linking" title="Internal Post Linking">internal post linking</a>, I was able to use his linked <code>post_url</code> script to more easily make internal links to posts in this blog. Simply download <a href="https://raw.github.com/michael-groble/jekyll/fix_post_url/lib/jekyll/tags/post_url.rb" title="post_url Script">post_url.rb</a> and place it into your <code>plugins</code> directory.</p>
<p>I used this code at the beginning of the post to generate the URL:</p>
<pre><code>/2012/12/19/blogging-with-octopress/</code></pre>
<p>Here <code>2012-12-19-blogging-with-octopress</code> is the name of the Markdown file (sans extension, of course) that I used to generate the previous post. Full disclosure, I used the Markdown syntax:</p>
<pre><code>[Last time][BloggingWithOctopress]
[BloggingWithOctopress]: /2012/12/19/blogging-with-octopress/ "Blogging With Octopress"</code></pre>]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Blogging with Octopress]]></title>
<link href="http://drz.ac/2012/12/19/blogging-with-octopress/"/>
<updated>2012-12-19T13:01:00-06:00</updated>
<id>http://drz.ac/2012/12/19/blogging-with-octopress</id>
<content type="html"><![CDATA[<p>This website is powered by <a href="http://octopress.org/" title="Octopress">Octopress</a>. With a tag line of <q>A blogging framework for hackers</q> it immediately appealed to me.</p>
<!-- more -->
<p>Admittedly, I’m still qutie a neophyte when it comes to assemlbing websites, but I think this is a good list of some of the benefits of Octopress:</p>
<ul>
<li><p>Static site deployment.</p>
<p>This is great because it reduces strain on your server, it just needs to serve up static websites, maybe with some plugins for displaying twitter information, but much less heavy than a Wordpress style site where blog posts are stored in a database and the html is generated dynamically.</p></li>
<li><p>Blog posts are stored as text files.</p>
<p>Maybe, at some unspecified date in the future, I want to migrate my entire website to a different blogging platform. This is easy to do if all the content is simply contained in ASCII text files. Further, any markup is facilitated by using <a href="http://daringfireball.net/projects/markdown/" title="Markdown">Markdown</a>. This makes my content extremely portable and future-proof.</p></li>
<li><p>Easy to work with <a href="http://pages.github.com" title="GitHub Pages">GitHub Pages</a>.</p>
<p>I just discovered this recently, but GitHub essentially lets you host a website that is simply a special repository. In my case, I have a github repo named <a href="https://github.com/zharmany/zharmany.github.com" title="zharmany.github.com Repository">zharmany.github.com</a>. GitHub provides you the subdomain corresponding to your repo name, so my site can be accessed at <a href="http://zharmany.github.com" title="zharmany.github.com">zharmany.github.com</a>. Publishing changes to the site simply entails pushing the my changes to github via git.</p></li>
</ul>
<p>The remainder of this post details how to get started using Octopress with GitHub Pages.</p>
<h2 id="setting-up-github-pages">Setting up GitHub Pages</h2>
<p>This was fairly straightforward. I simply created a repository named <code>harmany.github.com</code>. Since I’m a bit new to using GitHub, I used the web interface. If want to quickly fill your site with a template just to make sure things are working, GitHub provides <a href="https://help.github.com/articles/creating-pages-with-the-automatic-generator" title="GitHub Pages Generator">an automatic page generator</a>. You can alsays</p>
<h2 id="setting-up-octopress">Setting up Octopress</h2>
<p>The first task is to ensure that you have git and Ruby installed. I had a little trouble getting Ruby configured. I was following the <a href="http://octopress.org/docs/setup/rbenv/" title="Ruby Setup">Ruby setup instructions</a> on the Octopress site, but had some difficulty installing <code>1.9.3-p0</code>. So I double checked the latest version number <a href="http://www.ruby-lang.org/en/downloads/" title="Ruby Downloads">on the Ruby site</a>, for example the version I installed was <code>1.9.3-p327</code>. As a result, I needed to also run</p>
<pre><code>rbenv global 1.9.3-p327</code></pre>
<p>for Ruby to be installed correctly.</p>
<p>Then I followed the rest of the <a href="http://octopress.org/docs/setup/" title="Octopress Setup">Octopress install instructions</a>, with the slight modification to the <code>.rbenv-version</code> file to work with version <code>1.9.3-p327</code> that I had installed.</p>
<h2 id="configuring-and-deploying-to-github-pages">Configuring and Deploying to GitHub Pages</h2>
<p>Next, I followed the instructions on <a href="http://octopress.org/docs/configuring/" title="Configuring Octopress">configuring Octopress</a>, and <a href="http://octopress.org/docs/deploying/github/" title="Deploying to GitHub Pages">deploying to GitHub Pages</a>.</p>
<p>Essentially what’s going on is that there will be two branches of your GitHub Pages site. The <code>source</code> branch will contain all of your raw posts, Ruby scripts, etc. The <code>master</code> branch is what gets served on the webpage.</p>
<p>I’ll go into a bit more detail on actually blogging with Octopress in the future, but if everything is setup correctly, you should be able to make some changes to your site and use Ruby scripts to generate your content and deploy the changes to GitHub Pages. This is simply done via</p>
<pre><code>rake generate
rake deploy</code></pre>
<p>and you should see your changes uploaded to your site.</p>
<p>Neat.</p>
<h2 id="update-for-tld-forwarding">Update: For TLD Forwarding</h2>
<p>If you want to use a TLD instead of your default GitHub Pages URL, simply <a href="https://help.github.com/articles/setting-up-a-custom-domain-with-pages" title="Setting up a custom domain with Pages">follow these instructions</a>.</p>]]></content>
</entry>
</feed>