<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 6, 2015 at 2:24 PM, Donald Stufft <span dir="ltr"><<a href="mailto:donald@stufft.io" target="_blank">donald@stufft.io</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div><div class="h5"><div><br></div></div></div><div>I have very little opinion on what the wiki is or does but I wanted to just say if at some point we do switch software then with my infrastructure team hat on I would ask for two properties to exist in the software (not really specific to the wiki tbh):</div><div><br></div><div>1. Configuration that is able to be handled via config management like salt/chef/puppet etc. Typically this just means that the configuration is handled via a text file and the software itself doesn’t attempt to write to the configuration as part of it’s normal execution.</div></div></blockquote><div><br></div><div>+1</div><div><br></div><div>* <a href="http://psf-salt.readthedocs.org/en/latest/">http://psf-salt.readthedocs.org/en/latest/</a></div><div>* <a href="https://github.com/python/psf-salt">https://github.com/python/psf-salt</a></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div><br></div><div>2. State does not need to be stored on the local file system and instead can be stored in something like a database (preferably PostgreSQL) or an object store (preferably cloudfiles). This allows us to treat the servers running the software as emphereal with all of the state stored elsewhere. This makes it easier to manage the servers, makes it easier to recover from security issues on a server, makes it easier to upgrade the server, and makes it easier to scale the service in general.</div><div><br></div><div>Of the two, the first property is the most important, but the second one is a really good idea too.</div><br></div></blockquote><div><br></div><div>re: persistence</div><div><br></div><div>* difflib</div><div>* hg diff</div><div>* git diff</div><div> </div><div>structured data</div><div><br></div><div>* <a href="http://www.w3.org/2001/sw/wiki/Tools">http://www.w3.org/2001/sw/wiki/Tools</a> (RDF; FreeBase is moving to WikiData)<br></div><div>* <a href="https://westurner.github.io/wiki/tools">https://westurner.github.io/wiki/tools</a></div><div>* <a href="https://westurner.github.io/dotfiles/tools.html#python">https://westurner.github.io/dotfiles/tools.html#python</a></div><div>* <a href="https://westurner.github.io/dotfiles/_sources/tools.txt">https://westurner.github.io/dotfiles/_sources/tools.txt</a> (this is the simplest ReST markup I could think of, a sphinxcontrib-rdf directive/role could be really useful, but wouldn't work w/ GitHub wikis without a Sphinx compile step) :</div><div><br></div><div><blockquote style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex" class="gmail_quote">.. index:: Python<br>.. _python:</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"> </blockquote><blockquote style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex" class="gmail_quote">Python<br>=================<br>| Wikipedia: `<<a href="https://en.wikipedia.org/wiki/Python_(programming_language)">https://en.wikipedia.org/wiki/Python_(programming_language)</a>>`_<br>| Homepage: <a href="https://www.python.org/">https://www.python.org/</a><br>| Docs: <a href="https://docs.python.org/2/">https://docs.python.org/2/</a><br>| Docs: <a href="https://docs.python.org/devguide/">https://docs.python.org/devguide/</a><br>| Docs: <a href="https://docs.python.org/devguide/documenting.html">https://docs.python.org/devguide/documenting.html</a><br>| Docs: <a href="http://learnxinyminutes.com/docs/python/">http://learnxinyminutes.com/docs/python/</a><br>| Source: hg <a href="https://hg.python.org/cpython">https://hg.python.org/cpython</a></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"> </blockquote><blockquote style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex" class="gmail_quote">Python is a dynamically-typed, :ref:`C`-based third-generation<br>programming language.</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"> </blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"> [...]</blockquote></div><div><br></div><div><br></div></div></div></div>