waxworlds.org http://www.waxworlds.org/atom.xml 2017-12-18T10:00:01+00:00 Planet/2.0 +http://www.planetplanet.org Spamassassin http://www.waxworlds.org/news/2017-12-12 2017-12-12T00:00:01+00:00 <p>Apologies for any spam received over the past couple of days. Due to a power failure, <code>oak</code> was restarted and Spamassassin didn't come back up. It is now running again and the issue preventing it restarting is resolved. I will be monitoring it next time <code>oak</code> restarts.</p> waxworlds.org http://www.waxworlds.org/news waxworlds.org http://www.waxworlds.org/news/feed/atom 2017-12-18T10:00:01+00:00 Procmail fixed http://www.waxworlds.org/news/2017-10-28 2017-10-28T01:00:01+00:00 <p>There was an issue on <code>mail.waxworlds.org</code> that was preventing <code>procmail</code> from running. This is now fixed.</p> <p>Procmail is probably configured, amongst other things, to send your mail to SpamAssassin to be checked. So appologies to those of you who were receiving more spam.</p> waxworlds.org http://www.waxworlds.org/news waxworlds.org http://www.waxworlds.org/news/feed/atom 2017-12-18T10:00:01+00:00 Scheduled maintenance http://www.waxworlds.org/news/2017-10-22 2017-10-22T01:00:01+00:00 <p><code>oak.waxworlds.org</code> will be down for approximately 30 minutes on the evening of Tuesday 24th October somewhere between 7pm and 11pm whilst work is carried out on electrical systems.</p> <p>This will briefly affect mail.</p> <p><strong>Update:</strong> oak is now down... [2017-10-24 9:00pm]</p> <p><strong>Update:</strong> oak is back. All maintenance is finished. [2017-10-24 9:22pm]</p> waxworlds.org http://www.waxworlds.org/news waxworlds.org http://www.waxworlds.org/news/feed/atom 2017-12-18T10:00:01+00:00 SSH password two-factor authentication http://www.waxworlds.org/news/2017-10-04 2017-10-04T01:00:01+00:00 <p>Anyone SSH-ing in to theor accounts on <code>oak.waxworlds.org</code> with a password will now also find that they need to enter a verification code in addition to their password.</p> <p>We're using <a href="https://en.wikipedia.org/wiki/Google_Authenticator">Google Authenticator</a> (which is a procedure to perform time-based one-time password authentication, not a Google service).</p> <p>If you use SSH with keys, these will continue to work as before. Two-factor authentication is only used alongside password authentication.</p> <p>ol { list-style-type: lower-alpha; }</p> <p>Users wanting to be able to SSH in with a password will need to <em>either</em></p> <ol> <li><p>contact me, and I will set up a secret key for your account, <em>or</em></p></li> <li><p>run <code>google-authenticator</code> from the command line on <code>oak</code> to set it up for themselves. The command will generate your secret key, ask you a few questions and then save a local <code>~/.google_authenticator</code> configuration file.</p></li> </ol> <p>You will probably want to install the <a href="https://f-droid.org/packages/com.google.android.apps.authenticator2/">Google Authenticator app</a> on your phone/tablet/watch (it is free/libre and open source and available on F-Droid). There are also several other FOSS OTP authenticator apps that are compatible.</p> waxworlds.org http://www.waxworlds.org/news waxworlds.org http://www.waxworlds.org/news/feed/atom 2017-12-18T10:00:01+00:00 Server update http://www.waxworlds.org/news/2017-07-31 2017-07-31T01:00:01+00:00 <p><code>oak</code> and <code>ash</code> have both been updated to latest stable version of Debian (stretch). This should mark a big improvement over the software that was running on them, which was becoming quite dated.</p> <p>As a result, several services have been affected by the update and have required some maintenance. These are:</p> <ul> <li>Web services</li> <li>MySQL</li> <li>Matrix</li> <li>mail (and spam filtering)</li> <li>SSH</li> <li>XMPP (jabber)</li> </ul> <p>Outstanding issues are:</p> <ul> <li><strong>The XMPP server is down and will require some work to fix.</strong></li> </ul> <p>I will update below as and when problems are resolved. If you notice anything awry, please let me know immediately.</p> <hr /> <p><strong>UPDATE:</strong> Web services are working again (they were only down briefly) [2017-07-31]</p> <p><strong>UPDATE:</strong> MySQL has been migrated to Maria and there was briefly an authentication, which has been resolved. [2017-07-31]</p> <p><strong>UPDATE:</strong> The Matrix server is now working again. [2017-07-31]</p> <p><strong>UPDATE:</strong> Mail is working again and should start to come through. No mail should have been lost. [2016-07-31]</p> <p><strong>UPDATE:</strong> The issue with SSH keys has been resolved. [2016-08-01]</p> <p><strong>UPDATE:</strong> The remaining issue with URL rewriting has been resolved. [2016-08-01]</p> <p><strong>UPDATE:</strong> The spam filter (spamassassin) works again. [2016-08-01]</p> waxworlds.org http://www.waxworlds.org/news waxworlds.org http://www.waxworlds.org/news/feed/atom 2017-12-18T10:00:01+00:00 Matrix server http://www.waxworlds.org/news/2017-07-03 2017-07-03T01:00:01+00:00 <p>The matrix server, running at <code>matrix.waxworlds.org</code>, will probably be intermittent for a couple of days while I upgrade it.</p> <p>If anyone isn't using <a href="https://matrix.org/docs/projects/client/riot.html">Riot</a>, you can get a client for <a href="https://play.google.com/store/apps/details?id=im.vector.alpha">Android</a>, <a href="https://itunes.apple.com/us/app/riot-open-source-team-collaboration-via-matrix/id1083446067?mt=8">iOS</a>, the <a href="https://matrix.waxworlds.org">web</a> and your <a href="https://riot.im/desktop.html">desktop</a> (although the desktop client is a bit shoddy, so I use the website, which integrates well with desktop notifications, sounds, etc).</p> <p>If you want an account adding at <code>matrix.waxworlds.org</code>, please <a href="https://www.waxworlds.org/contact">email me</a>.</p> waxworlds.org http://www.waxworlds.org/news waxworlds.org http://www.waxworlds.org/news/feed/atom 2017-12-18T10:00:01+00:00 Major server failure http://www.waxworlds.org/news/2017-06-15 2017-06-15T01:00:01+00:00 <p><code>oak.waxworlds.org</code> died rather unexpectedly last night. I have not yet had a chance to make a propper analyisys of the problem, but it looks as though the disk might be toast and a complete reinstall might be on the cards.</p> <p>The upshot of the situation is that mail, jabber and access to the Central network are unavailable until I am able to resolve the problm.</p> <p>I will update here as things unfolds or when I find out more.</p> <p><strong>Update:</strong> <code>oak</code> has been up and running this evening and has been catching up with mail. All services are restored. However there will be intermittent downtime over the next few days as hardware is replaced. [2017-06-15]</p> waxworlds.org http://www.waxworlds.org/news waxworlds.org http://www.waxworlds.org/news/feed/atom 2017-12-18T10:00:01+00:00 Service disruption to ash http://www.waxworlds.org/news/2016-12-08 2016-12-08T00:00:01+00:00 <p><code>ash.waxworlds.org</code> will be down for maintenance for approximately 1 hour tomorrow evening at 9pm GMT, after which time it will have more RAM.</p> <p><strong>Update:</strong> all done. [2016-12-09]</p> waxworlds.org http://www.waxworlds.org/news waxworlds.org http://www.waxworlds.org/news/feed/atom 2017-12-18T10:00:01+00:00 Service disruption to oak http://www.waxworlds.org/news/2016-12-06 2016-12-06T00:00:01+00:00 <p><code>oak.waxworlds.org</code> will be down for approximately 2 hours tomorrow evening at 6pm GMT while work is undertaken on the power.</p> <p><strong>Update:</strong> work has been completed on schedule. [2016-12-07]</p> waxworlds.org http://www.waxworlds.org/news waxworlds.org http://www.waxworlds.org/news/feed/atom 2017-12-18T10:00:01+00:00 Spaces within parenthesis in emacs http://ed.am/?p=1327 2016-11-25T11:33:41+00:00 <p>There&#8217;s lots of opinion about coding styles and which is best. I prefer one that helps you read the code. And, to that end, I prefer to have spaces inside parenthesis, like this:</p> <div class="codecolorer-container cpp default"><div class="cpp codecolorer"><span>for</span><span>&#40;</span> <span>int</span> a <span>=</span> <span>0</span><span>;</span> a <span>&lt;</span> <span>20</span><span>;</span> a<span>++</span> <span>&#41;</span> <span>&#123;</span><br /> &nbsp; &nbsp; dump<span>&#40;</span> data<span>&#91;</span> a <span>&#93;</span> <span>&#41;</span><span>;</span><br /> <span>&#125;</span></div></div> <p>Call me a heathen if you like, but it&#8217;s how I roll!</p> <p>And it&#8217;s how I set out to configure emails to help me roll&#8230;<span id="more-1327"></span></p> <p>Unfortunately, emacs&#8217;s <code>electric-pair-mode</code> doesn&#8217;t do this sort of thing and can&#8217;t be configured to, either. There are two problems. The first is that <code>electric-pair-mode</code> doesn&#8217;t allow for conditions as to when it will insert a pair. So, I could add a pair of spaces, <code>(?\s . ?\s)</code>, to <code>electric-pair-pairs</code> so that it would automatically insert a second space, but it would do this for every space I typed. The second problem is that <code>electric-pair-mode</code> does some white-space skipping internally, which I think would be problematic. :(</p> <p>So I did it the old-fashioned way and added my own functions:</p> <div class="codecolorer-container lisp default"><div class="lisp codecolorer"><span>&#40;</span><span>defun</span> my/c-mode-insert-space <span>&#40;</span>arg<span>&#41;</span><br /> &nbsp; <span>&#40;</span>interactive <span>&quot;*P&quot;</span><span>&#41;</span><br /> &nbsp; <span>&#40;</span><span>let</span> <span>&#40;</span><span>&#40;</span>prev <span>&#40;</span>char-before<span>&#41;</span><span>&#41;</span><br /> &nbsp; &nbsp; &nbsp; &nbsp; <span>&#40;</span>next <span>&#40;</span>char-after<span>&#41;</span><span>&#41;</span><span>&#41;</span><br /> &nbsp; &nbsp; <span>&#40;</span>self-insert-command <span>&#40;</span>prefix-numeric-value arg<span>&#41;</span><span>&#41;</span><br /> &nbsp; &nbsp; <span>&#40;</span><span>if</span> <span>&#40;</span><span>and</span> prev next<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span>&#40;</span>string-match-p <span>&quot;[[({]&quot;</span> <span>&#40;</span>string prev<span>&#41;</span><span>&#41;</span><br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span>&#40;</span>string-match-p <span>&quot;[])}]&quot;</span> <span>&#40;</span>string next<span>&#41;</span><span>&#41;</span><span>&#41;</span><br /> &nbsp; &nbsp; &nbsp; &nbsp; <span>&#40;</span>save-excursion <span>&#40;</span>self-insert-command <span>1</span><span>&#41;</span><span>&#41;</span><span>&#41;</span><span>&#41;</span><span>&#41;</span><br /> <br /> <span>&#40;</span><span>defun</span> my/c-mode-delete-space <span>&#40;</span>arg <span>&amp;</span>amp<span>;optional killp)</span><br /> &nbsp; <span>&#40;</span>interactive <span>&quot;*p<span>\n</span>P&quot;</span><span>&#41;</span><br /> &nbsp; <span>&#40;</span><span>let</span> <span>&#40;</span><span>&#40;</span>prev <span>&#40;</span>char-before<span>&#41;</span><span>&#41;</span><br /> &nbsp; &nbsp; &nbsp; &nbsp; <span>&#40;</span>next <span>&#40;</span>char-after<span>&#41;</span><span>&#41;</span><br /> &nbsp; &nbsp; &nbsp; &nbsp; <span>&#40;</span>pprev <span>&#40;</span>char-before <span>&#40;</span>- <span>&#40;</span>point<span>&#41;</span> <span>1</span><span>&#41;</span><span>&#41;</span><span>&#41;</span><span>&#41;</span><br /> &nbsp; &nbsp; <span>&#40;</span><span>if</span> <span>&#40;</span><span>and</span> prev next pprev<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span>&#40;</span>char-equal prev ?\s<span>&#41;</span> <span>&#40;</span>char-equal next ?\s<span>&#41;</span><br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span>&#40;</span>string-match <span>&quot;[[({]&quot;</span> <span>&#40;</span>string pprev<span>&#41;</span><span>&#41;</span><span>&#41;</span><br /> &nbsp; &nbsp; &nbsp; &nbsp; <span>&#40;</span>delete-char <span>1</span><span>&#41;</span><span>&#41;</span><br /> &nbsp; &nbsp; <span>&#40;</span>backward-delete-char-untabify arg killp<span>&#41;</span><span>&#41;</span><span>&#41;</span></div></div> <p>They can be bound in <code>c-mode</code> and <code>c-mode</code> derivatives like this:</p> <div class="codecolorer-container lisp default"><div class="lisp codecolorer"><span>&#40;</span>add-hook 'c-mode-common-hook<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span>&#40;</span><span>lambda</span> <span>&#40;</span><span>&#41;</span><br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span>&#40;</span>local-set-key <span>&quot; &quot;</span> 'my/c-mode-insert-space<span>&#41;</span><br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span>&#40;</span>local-set-key <span>&quot;<span>\1</span>77&quot;</span> 'my/c-mode-delete-space<span>&#41;</span><span>&#41;</span><span>&#41;</span></div></div> edam http://ed.am ::[ edam ]:: the adventures of edam http://ed.am/feed/atom 2017-10-23T08:00:02+00:00