tag:blogger.com,1999:blog-12142037602782309632024-03-05T03:12:23.531-08:00Diamonds and RustDavid Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.comBlogger29125tag:blogger.com,1999:blog-1214203760278230963.post-58945385101296656912020-08-17T09:23:00.000-07:002020-08-17T09:23:24.667-07:00The antibody test. Does it work or not? Where are we in immunity?<h2 style="text-align: left;">The almost invisible report </h2><p>On the 13th Of August the UK Government with Imperial College put out a report showing that only 6% of the UK population had been infected with Sars-Cov-2.</p><p>The report is here: <a href="https://www.gov.uk/government/news/largest-home-antibody-testing-programme-for-covid-19-publishes-findings">https://www.gov.uk/government/news/largest-home-antibody-testing-programme-for-covid-19-publishes-findings</a></p><p>You may not have noticed it because it was not heralded with fanfares even though the population infection rate is one of the crucial numbers on the journey to Widespread Acquired Immunity (I refuse to use the term 'herd immunity' it is too contentious.</p><p>The answer Imperial college came up with is 6%.</p><p>It is based on 100,000 volunteers (more on self-selecting samples later) taking a home antibody test. </p><p>This is what the NHS currently say about home antibody tests here <a href="https://www.nhs.uk/conditions/coronavirus-covid-19/testing-and-tracing/antibody-test-to-check-if-youve-had-coronavirus/">https://www.nhs.uk/conditions/coronavirus-covid-19/testing-and-tracing/antibody-test-to-check-if-youve-had-coronavirus/</a>:</p><div style="text-align: left;"><span style="color: #2b00fe; font-family: inherit;">"<span style="background-color: #f0f4f5;">Home antibody test kits are not currently recommended, as it has not been confirmed if they're safe and reliable yet. You can pay for a test to be done at a private clinic if you want to."</span></span></div><div style="text-align: left;"><div><br /></div><div>Here's what Professor Karol Sikora had to say about them <a href="https://www.dailymail.co.uk/news/article-8396195/Professor-says-10-people-coronavirus-develop-antibodies.html">https://www.dailymail.co.uk/news/article-8396195/Professor-says-10-people-coronavirus-develop-antibodies.html</a>:</div><div><br /></div><div><span style="color: #2b00fe; font-family: inherit;">"<span style="background-color: white; letter-spacing: -0.16px;">Only 10 per cent of people who are infected with the </span><a href="https://www.dailymail.co.uk/news/coronavirus/index.html" id="mol-f18c5990-a8b7-11ea-b688-0f9305bf702c" style="background-color: white; cursor: pointer; font-weight: bold; letter-spacing: -0.16px; margin: 0px; min-height: 1px; padding: 0px; text-decoration-line: none;">coronavirus</a><span style="background-color: white; letter-spacing: -0.16px;"> develop antibodies, a professor claims. "</span></span></div><div><span style="color: #2b00fe; font-family: inherit;"><span style="background-color: white; letter-spacing: -0.16px;"><br /></span></span></div></div><div style="text-align: left;"><span style="color: #2b00fe; font-family: inherit;"><span style="background-color: #f0f4f5;"><br /></span></span></div><div style="text-align: left;">So do the home antibody kits work or not? </div><div style="text-align: left;"><br /></div><h2 style="text-align: left;">What does Sweden v the UK suggest?</h2><div style="text-align: left;">Does that mean 6%x10 = 60% are now immune? With T-Cell immunity (or the Professor's words "a different immunity response" we are well into the realms of Widespread Acquired Immunity.</div><div style="text-align: left;"><br /></div><div style="text-align: left;"><br /></div><div style="text-align: left;">A simple empirical* method might give us a clue. Sweden, whatever they did or didn't do are currently living pretty well normal lives. No masks and no restrictions. They have a trickle of deaths but are holding their nerve. Here's what their deaths profile looks like:</div><div style="text-align: left;"><br /></div><div style="text-align: left;"><img alt="" height="318" src="data:image/png;base64,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T/vBbH16S0W9/IKRkGmr2ozeZbmqh+OsZfEbOLVALcWBLe9lRkkiGT+SAAnchQADjrtgZiUkQAIkQAIk8NwEGHA89/ln60mABEiABEjgLgQYcNwFMyshARIgARIggecmwIDjuc8/W08CJEACJEACdyHAgOMumFkJCZAACZAACTw3AQYcz33+2XoSIAESIAESuAsBBhx3wcxKSIAESIAESOC5CTDgeO7zz9aTAAmQAAmQwF0IMOC4C2ZWQgIkQAIkQALPTYABx3Off7aeBEiABEiABO5CgAHHXTCzEhIgARIgARJ4bgIMOJ77/LP1JEACJEACJHAXAoUIOParcTuoRPtDqlYb20m1o02fsOl2pRocj9ZofRc2rIQESIAESIAESMATgQIEHJtxuz0Y9xoScGBbyKC3UPtG7medaG9qqJpjvcG2p3azGBIgARIgARIggTsSKEDAEYbh4bAZngKOw363h0od2Ce7McI+1ct+0J5GW1dHhjf9+288SIAESIAESIAEchN408M3kbgAAYf26CzgiH3czTr11mSLMZZFtxq0Oq1Go95o9WfbYzgSp+NfEiABEiABEiCBYhMobMARbqaderO/iMZRtovJdKnijHA7adeaqtODBwmQAAmQAAmQQGkIFDPgCNfjVr01WrkGUfbTdrU7Zx9HaS4xOkoCJEACJEACh0MRA479oldvjtZGTLGbdpu9ue7s2M27QXOEYRYeJEACJEACJEACpSHw/gHHftat1+tBtYL3Xuv1Rn8RztqVSg1ydDQGS4ykrMedRqB1ze50Y8QipSFNR0mABEiABEjgiQm8f8DxxPDZdBIgARIgARJ4FgIMOJ7lTLOdJEACJEACJPCOBBhwvCN8Vk0CJEACJEACz0KAAceznGm2kwRIgARIgATekQADjneEz6pJgARIgARI4FkIMOB4ljPNdpIACZAACZDAOxJgwPGO8Fk1CZAACZAACTwLAQYcz3Km2U4SIAESIAESeEcCDDjeET6rJgESIAESIIFnIcCA41nONNtJAiRAAiRAAu9IgAHHO8Jn1SRAAiRAAiTwLAQYcDzLmWY7SYAESIAESOAdCTDgeEf4rJoESIAESIAEnoUAA45nOdNsJwmQAAmQAAm8IwEGHO8In1UXgsD/1EdOV7wUktMHZicBEiCBIhNgwFHks0Pf7kHAS6zgpZB7tJZ1kAAJ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CZAACeQhwIAjDz3mJQESIAESIAESuIoAA46rMDERCZAACZAACZBAHgIMOPLQY14SIAESIAESIIGrCDDguAoTE5EACZAACZAACeQhwIAjDz3mJQESIAESIAESuIoAA46rMGVLtFwuf/75554+IPzLv/xLtnKYiwRIgARIgATKToABx03O4H/9138hwvif1gElTDepkoWSAAmQAAmQQIEJMOC4yclxRhtR+AHTxSqXrS8/HI/PPvviq5fvf/q0vZj48OmHLz58ePkZKbYfXz58+OKH3y6njSxvK99d2vbTx5+mfyjb772vP3z4uve7O13BtOHuX/+2mP/jp0//+E//6/ftf/53inv7f118+rRY71OS3MEU/n//69Onf/r9zztUxSouEdAn4ZNxpJ2Q//7733B9/e3vadfWpYr86aOr91/f+er11x6W9FAEGHD4P50YSbG6Ns4USOCuVQcEn7/88NNPvR9b3339OYKPL7+fXnrm/Lmc/vrrb+rZ/6aA4+rynT7+8dPXn33xwydle9eA448//vjnf/7n+XyOgar/+I//cPp6Uobbv80//eNvf1v/6//+228IOv55858nY1IqRsDx33/9+fe//8c+THr3hJ//4R/+Ad+f/8t1QA/rW5n8/vvv//7v/35Frv/eb/81Pv738p8+ffrnf7184RQj4Pg//7n7+993//l/rmjd4yfxfuU8PrIbt5ABh3/AKd0bUdxxsZNDBxxftuJw5I+PL5/FfQh//f/tXD1v4twS/lGpqOhSpUqXii5VqnSpttouVf5AqnSpsk26VOmCiIxQECyLZRSB8EXm2orCBSHuMzPHH9hmcQLJi3jHxa5jjmfOec7Y85yZOe7e/agcgYKUyifnt80Jup2NcLh3uKF88UC/mt8rNxyN4AuLv8hfuE/X58eHpYPS4cmFyF/4dKmMLpSPTi8fEElpXh2HERjIFcJxeXd9dlQqlY5Ory2mRq8Pl6d8V0KSqN/av3AYiVUnna7xH+8jx7aHAa09J31EDmqdcWodOgv6LatWrT43ur1OFOFIxkXsEWCdDprVp1pbVrHzcZd8UJK8BA74zEtv2G1AVq1he8EoPB2LD5gFg07jmUItNatpjxBree83EMswPYpkxhEOI9N1XnBb9bnZ80XSBKKfq9Wq1ez12uhIy10aE0bUrrOi50ZnCD3TIfpebblyN9Mq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" width="576" /></div><div style="text-align: left;">And here are the numbers at the tme of writing:</div><div style="text-align: left;"><br /></div><div style="text-align: left;"><img alt="" height="88" src="data:image/png;base64,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" width="991" /></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><br /></div><div style="text-align: left;">The number I want to concentrate on is deaths per 1m population - 573.</div><div style="text-align: left;"><br /></div><div style="text-align: left;"><img alt="" height="468" src="data:image/png;base64,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" width="718" /></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><br /></div><div style="text-align: left;">Now let's look at the UK. Here's the deaths profile</div><div style="text-align: left;"><br /></div><div style="text-align: left;">And here's the numbers:</div><div style="text-align: left;"><img alt="" src="data:image/png;base64,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" /></div><div style="text-align: left;"><br /></div><div style="text-align: left;">The profile looks similar doesn't it?</div><div style="text-align: left;"><br /></div><div style="text-align: left;">And the deaths per 1m population are a little higher - 609</div><div style="text-align: left;"><br /></div><div style="text-align: left;">They are within 5% after the the 9% downward adjustment by PHE.</div><div style="text-align: left;"><br /></div><div style="text-align: left;">If we can assume the Infection Fatality Rate is similar across UK and Sweden then why is the UK not in the same situation as Sweden.</div><div style="text-align: left;"><br /></div><div style="text-align: left;">Are the Swedes so very different to us?</div><div style="text-align: left;"><br /></div><h2 style="text-align: left;">Usual Disclaimer</h2><div><ul style="text-align: left;"><li>I've tried to give references for the factual information. </li><ul><li>If I've missed any tell me and I'll find them</li><li>If you have arguments with the sources, you need to take them up with them.</li></ul><li>I have no intention of killing anyone's granny.</li><ul><li>My opinion is that there are more deaths to come but they are inevitable and mainly among vulnerable people</li></ul><li>Individual tragedies are that. They are poor determinants for policy. I'm not going to respond to "yeh but this individual..." By their nature if you know individual cases that buck the statistics, they are outliers and not statistically significant.</li></ul></div><div><br /></div><div style="border: 2px solid blue; padding: 5px 5px 5px 5px;"><div style="text-align: left;"><br /></div><h4 style="text-align: left;">*Sidebar on the empirical method</h4><div>A lot of science today is concerned with prediction. It's where tne money is. If you can tell the future then you quids in. It largely concerns forming a hypothesis and then finding information and references to confirm your hypothesis. You can then declare your hypothesis proven and you can publish.</div><div><br /></div><div>There are two methods that are used in retrospect:</div><div><ul style="text-align: left;"><li>heuristics - using a previously successful method to solve the current problem.</li><li>and empiricism which analyses real data that was collected in the past and can be related to events to analyse the real effects of those events.</li></ul></div><div><br /></div><div>With respect to covid-19 we now have nearly 6 months of data from all over the world and we can look back and see when events that should have affected results and what determine what effect they had. This works best in single territories because recording and reporting methods vary when using it to compare territories some caution has to be used.</div></div>David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0tag:blogger.com,1999:blog-1214203760278230963.post-7273344236179103152020-06-01T10:56:00.001-07:002020-06-01T10:56:42.832-07:00ds_utils documentation
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module ds_utils</title>
<meta charset="utf-8">
</head><body bgcolor="#f0f0f8">
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>ds_utils</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/david/Dropbox/PythonCode/ds_utils.py">/home/david/Dropbox/PythonCode/ds_utils.py</a></font></td></tr></table>
<p><tt>ds_utils.py<br>
<br>
A library of miscellaneous utils that I find I use often. <br>
<br>
Version 1.0<br>
<br>
dsinfield6@gmail.com/ Telegram or signal:omotforest <br>
<br>
Released under GPL<br>
<br>
Use at your own risk. Subject to update or change at any time.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
<td colspan=3 valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="getpass.html">getpass</a><br>
</td><td width="25%" valign=top><a href="os.html">os</a><br>
</td><td width="25%" valign=top><a href="platform.html">platform</a><br>
</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
<td width="100%"><dl>
<dt><font face="helvetica, arial"><a href="ds_utils.html#ANSI">ANSI</a>
</font></dt><dt><font face="helvetica, arial"><a href="ds_utils.html#Searches">Searches</a>
</font></dt><dt><font face="helvetica, arial"><a href="ds_utils.html#config">config</a>
</font></dt></dl>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom> <br>
<font color="#000000" face="helvetica, arial"><a name="ANSI">class <strong>ANSI</strong></a></font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
<td colspan=2><tt><a href="#ANSI-GetANSI">GetANSI</a>(text,foreback,colour,style)<br>
text - text to print<br>
forecolour - [black|red|green|yellow|blue|magenta|cyan|white]<br>
backcolour - [black|red|green|yellow|blue|magenta|cyan|white]<br>
style - [normal|bold|italic|underline|inverse|strikethough]<br>
<br>
Returns a string with ansi precursors to set foreground and background<br>
colours and style. Set to normal after printing.<br>
<br>
Most terminals support 8 colours. Some will not understand bold.<br>
<br>
Out of range parameters throw a dictionary error<br>
<br>
Colours supported:<br>
black<br>
red<br>
green<br>
yellow<br>
blue<br>
magenta<br>
cyan<br>
white<br>
Styles supported:<br>
normal<br>
bold<br>
italic<br>
underline<br>
inverse<br>
strikethrough<br>
<br>
Example: set foreground to red<br>
print <a href="#ANSI-GetANSI">GetANSI</a>('this is red text','red','none','none')<br>
Example: set foreground bold red, background cyan<br>
print <a href="#ANSI-GetANSI">GetANSI</a>('set properties','red','cyan','bold')<br> </tt></td></tr>
<tr><td> </td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="ANSI-GetANSI"><strong>GetANSI</strong></a>(self, text, forecolour<font color="#909090">=''</font>, backcolour<font color="#909090">=''</font>, style<font color="#909090">=''</font>)</dt><dd><tt>Constructs an ansi string to create multicoloured terminal display<br>
Parameters<br>
text - the string to be output<br>
forecolour - the colour to set the foreground. Optional. Default=normal<br>
backcolour - the colour to set the background. Optional. Default=normal<br>
style - one of the styles in dictStyle<br>
Returns <br>
A string decorated with ansi codes</tt></dd></dl>
<dl><dt><a name="ANSI-__init__"><strong>__init__</strong></a>(self)</dt></dl>
<hr>
Data and other attributes defined here:<br>
<dl><dt><strong>dictColour</strong> = {'black': 0, 'blue': 4, 'cyan': 6, 'green': 2, 'magenta': 5, 'red': 1, 'white': 7, 'yellow': 3}</dl>
<dl><dt><strong>dictForeBack</strong> = {'back': 4, 'fore': 3}</dl>
<dl><dt><strong>dictStyle</strong> = {'bold': 1, 'inverse': 7, 'italic': 3, 'normal': 0, 'strikethrough': 9, 'underline': 4}</dl>
<dl><dt><strong>post</strong> = 'm'</dl>
<dl><dt><strong>pre</strong> = '<font color="#c040c0">\x1b</font>['</dl>
<dl><dt><strong>tonormal</strong> = '<font color="#c040c0">\x1b</font>[0m'</dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom> <br>
<font color="#000000" face="helvetica, arial"><a name="Searches">class <strong>Searches</strong></a></font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
<td colspan=2><tt>A class to contain search functions.<br>
<br>
Initialisation<br>
<a href="#Searches-__init__">__init__</a>(head, tail,source,start=0,ignorcase=false,inclusivefind=false)<br>
head - string to search from<br>
tail - string to search to<br>
start - integer position to start search. Optional. Default=0<br>
ignorecase - set to true to make case insensitive. Optional. Default=false<br>
inclusivefind - return the string from the start of head the end of tail. Optional.<br>
overlapsearch - if True sets newstart to start+1 <br>
default is to return the string from the end of head to the beginning of tail<br>
NB init calls get head to tail once so results of the first search are available after initialisation<br>
Reading results<br>
newstart - set to the end of the head<br>
result - set tp the string found or "" empty if not found<br>
resultstatus - text description of result of search<br>
resultsuccess - set to True if head and tail were found.<br>
EOF - set to true if the search extends past end of file<br>
listAll[] - set only if getAll has been called<br> </tt></td></tr>
<tr><td> </td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="Searches-__init__"><strong>__init__</strong></a>(self, head, tail, source, start<font color="#909090">=0</font>, ignorecase<font color="#909090">=False</font>, inclusivefind<font color="#909090">=False</font>, overlapsearch<font color="#909090">=False</font>)</dt></dl>
<dl><dt><a name="Searches-getAll"><strong>getAll</strong></a>(self, head, tail)</dt></dl>
<dl><dt><a name="Searches-getHeadtoTail"><strong>getHeadtoTail</strong></a>(self, head, tail, start<font color="#909090">=False</font>)</dt></dl>
<hr>
Data and other attributes defined here:<br>
<dl><dt><strong>EOF</strong> = False</dl>
<dl><dt><strong>head</strong> = ''</dl>
<dl><dt><strong>ignorecase</strong> = False</dl>
<dl><dt><strong>inclusivefind</strong> = False</dl>
<dl><dt><strong>listAll</strong> = []</dl>
<dl><dt><strong>newstart</strong> = 0</dl>
<dl><dt><strong>overlapsearch</strong> = False</dl>
<dl><dt><strong>result</strong> = ''</dl>
<dl><dt><strong>resultstatus</strong> = ''</dl>
<dl><dt><strong>resultsuccess</strong> = False</dl>
<dl><dt><strong>source</strong> = ''</dl>
<dl><dt><strong>start</strong> = 0</dl>
<dl><dt><strong>tail</strong> = ''</dl>
</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom> <br>
<font color="#000000" face="helvetica, arial"><a name="config">class <strong>config</strong></a></font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
<td colspan=2><tt>Config File Helper Class<br>
<br>
Config files are in the format:<br>
#start comments<br>
ParameterName1 value1<br>
ParameterName2 value2<br>
.<br>
.<br>
.<br>
#endcomments<br>
Assumes values are one word when reading. Anything after a second space is ignored.<br>
<br>
Constructor takes 1 arguments<br>
filename - the name of the file only the path will be derived depejding on the operating system<br>
Linux - will be a hidden file the user's home directory<br>
Windows will be a file in the same directory as the application<br>
Other will cause an exception<br> </tt></td></tr>
<tr><td> </td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="config-__init__"><strong>__init__</strong></a>(self, filename)</dt></dl>
<dl><dt><a name="config-getConfigPath"><strong>getConfigPath</strong></a>(self)</dt><dd><tt>Accessor function for file path property<br>
Call with object reference as parameter</tt></dd></dl>
<dl><dt><a name="config-readParameter"><strong>readParameter</strong></a>(self, parametername)</dt><dd><tt>Read the parameter from the file<br>
Returns False if not found</tt></dd></dl>
<dl><dt><a name="config-writeFile"><strong>writeFile</strong></a>(self, dictParams, comments<font color="#909090">=''</font>, endcomments<font color="#909090">=''</font>)</dt><dd><tt>dictParams - a dictionary of parameters e.g {name1 : value1, name2 : value2}<br>
comments - a file header. Optional, default is empty string<br>
endcomments - a footnote. Optional, default is an empty string.<br>
For neatness when doing a cat /n will be appended</tt></dd></dl>
<hr>
Data and other attributes defined here:<br>
<dl><dt><strong>config_file_name</strong> = ''</dl>
<dl><dt><strong>config_file_path</strong> = ''</dl>
<dl><dt><strong>platform_supported</strong> = False</dl>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#eeaa77">
<td colspan=3 valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
<td width="100%"><dl><dt><a name="-InputUntil"><strong>InputUntil</strong></a>(prompt, acceptable, case_sensitive<font color="#909090">=True</font>, tries<font color="#909090">=0</font>)</dt><dd><tt>Usage <a href="#-InputUntil">InputUntil</a>(prompt,acceptable_input,[case sensitive=True],[tries=0])<br>
Parameters:<br>
prompt - Prompt to be displayed (the acceptable terms will be listed)<br>
acceptable_input - String containing acceptable responses<br>
[case_sensitive] if false ignores case.; Default is True<br>
[tries] - Attempts before raisin an error.<br>
Keeps gettin input until one of the terms in acceptable is found. Works best for single characters<br>
See <a href="#-InputUntilList">InputUntilList</a>(prompt, acceptable, tries) for a word version<br>
<br>
You should still check the returned input because in YNC, YN will match.</tt></dd></dl>
<dl><dt><a name="-InputUntilList"><strong>InputUntilList</strong></a>(prompt, acceptable, case_sensitive<font color="#909090">=True</font>, tries<font color="#909090">=0</font>)</dt><dd><tt>Input until one of the items on the list is typed or the number of tries is reached.<br>
Returns the actual answer typed (irrespective of the case sensitive flag.<br>
Raises an error if tries exceeded catch it in your code to handle it.<br>
<br>
For single letter (eg YN), the InputUntil in this module might be what you are looking for<br>
<br>
Usage <a href="#-InputUntil">InputUntil</a>(prompt,acceptable_input, [case_sensitive=True], [tries=0])<br>
Parameters:<br>
prompt - Prompt to be displayed (the acceptable terms will be listed)<br>
acceptable_input - list containing acceptable responses<br>
<br>
case_sensitve - David DAVID, daVid all match david if this is false<br>
tries - Number of attempts until an error is raised. Set to <1 for infnite</tt></dd></dl>
<dl><dt><a name="-getParameterValue"><strong>getParameterValue</strong></a>(parametername, args, unitary<font color="#909090">=False</font>)</dt><dd><tt>Gets the command line parameter wih the name in parametername.<br>
Assumes the parameters are in -name value pairs.<br>
Longname parameters in the form --long_name value are supported but you must supply the --<br>
Parameters with no value are not supported. (Coming soon: Optional argument to specify standalone which returns True/False)<br>
Usage: <a href="#-getParameterValue">getParameterValue</a>(parametername,args)<br>
Parameters:<br>
parametername - the name of the parameter if no - then one is prepended<br>
args - usually sys.argv. If you want to use another string you need a placeholder where the program name would be<br>
e.g ["params", "-p", "param1","-p2"] param2 works as expected<br>
unitary - will not look for, a value just the presence or absence of a parameter</tt></dd></dl>
<dl><dt><a name="-makeDirectory"><strong>makeDirectory</strong></a>(dirPath)</dt><dd><tt>Usage <a href="#-makeDirectory">makeDirectory</a>(directory_path)<br>
<br>
Makes the directory in dirPath if it does not exist<br>
<br>
Throws exception if it fails.</tt></dd></dl>
</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
<td colspan=3 valign=bottom> <br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
<td width="100%"><strong>ARG_NOT_FOUND</strong> = False<br>
<strong>version</strong> = '1.0'</td></tr></table>
</body></html>David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0tag:blogger.com,1999:blog-1214203760278230963.post-64580020749417908702020-05-19T08:32:00.001-07:002020-05-19T08:32:03.645-07:00Robincam setup<link href="https://fortawesome.github.io/Font-Awesome/assets/font-awesome/css/font-awesome.css" rel="stylesheet"></link>
<link href="https://fonts.googleapis.com/css?family=Oswald" rel="stylesheet" type="text/css"></link>
<script type="text/javascript">
//<![CDATA[
//*************TOC plugin by MyBloggerTricks.com
function mbtTOC() {var mbtTOC=i=headlength=gethead=0;
headlength = document.getElementById("post-toc").getElementsByTagName("h2").length;for (i = 0; i < headlength; i++)
{gethead = document.getElementById("post-toc").getElementsByTagName("h2")[i].textContent;document.getElementById("post-toc").getElementsByTagName("h2")[i].setAttribute("id", "point"+i);mbtTOC = "<li><a href='#point"+i+"'>"+gethead+"</a></li>
";document.getElementById("mbtTOC").innerHTML += mbtTOC;}}function mbtToggle() {var mbt = document.getElementById('mbtTOC');if (mbt .style.display === 'none') {mbt .style.display = 'block';} else {mbt .style.display = 'none';}}
//]]>
</script>
<br />
<h1>
Introduction</h1>
I wanted a remote webcam for watching the robin that lives around my apple tree. Trailcams are a bit pricey and I had an old android phone with a half decent camera laying around doing nothing.<br />
<br />
<h2>
The Phone...</h2>
...s a very battered Blu Vivi 6. The screen is broken, the USB C port is loose and the battery lasts about 30 minutes because it has been frozen a few times..<br />
<br />
The USB C port is fixed by gluing in a magnetic connector which also seals the port somewhat against the weather.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjceVNnJIJ_RnXiBF_WsOmGxPyD6b-EG7AGMIl6YLPWZar8cFtGyaP9ELXIqluyr3yR9dNSmo9FdM4yjGENHmNHFVB0OPzqlILvpJyTNspnQyTt4EK4u2zdwPdQ92LnE6MO8SqLITTkNOq/s1600/2020-05-19+12.22.49.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjceVNnJIJ_RnXiBF_WsOmGxPyD6b-EG7AGMIl6YLPWZar8cFtGyaP9ELXIqluyr3yR9dNSmo9FdM4yjGENHmNHFVB0OPzqlILvpJyTNspnQyTt4EK4u2zdwPdQ92LnE6MO8SqLITTkNOq/s320/2020-05-19+12.22.49.jpg" width="240" /></a></div>
<br />
<br />
I've installed IP Webcam on it from the play store. You can find it here <a href="https://play.google.com/store/apps/details?id=com.pas.webcam">https://play.google.com/store/apps/details?id=com.pas.webcam</a><br />
<br />
I've gone for the Pro version but everything here works with the free one. The only limitations are Tasker integration and the ability to customise the UI. We are not going to use either of those here. I upgraded because I think the developer deserved a coffee (or Russian tea) on me.<br />
<br />
Installing it is straightforward and I've also put it on a couple of old HTC mobiles that are being security cams.<br />
<br />
To do everything in this article you are going to need a bit of memory. The Blu has 64GB and I'm using about half of it. That's about 1200 jpgs and several hours of mp4s.<br />
<br />
I'll talk about how to get the images off to a pc and get the memory back later.<br />
<br />
You'll also need a wifi signal where your camera is sited. You can use broadband and access your through the lvideon cloud see here <a href="https://www.ivideon.com/">https://www.ivideon.com/</a><br />
<br />
I haven;t got a sim in the Blu so that's not an option.<br />
<br />
I use this <a href="https://www.amazon.co.uk/NETGEAR-Wi-Fi-Range-Extender-EX2700/dp/B00NIUHAG6/ref=sr_1_5">https://www.amazon.co.uk/NETGEAR-Wi-Fi-Range-Extender-EX2700/dp/B00NIUHAG6/ref=sr_1_5</a> network extender to get to the shed so I have coverage over all of my garden. Cheaper wifi extenders are available but this one works for me.<br />
<br />
<h3>
IP Webcam Setup</h3>
When you start IP Webcam it shows the setup screen. For plain vanilla you can just jump to the last item and it will work.<br />
<br />
Before you set up anything you have to give IP Webcam some permissions to photos and sound.<br />
<br />
<br />
For a start set up the Video Preferences I use the highest resolution possible and lock the camera in Landscape mode.<br />
<br />
The other important settings are the motion and sound detection. I have motion detection on and sound detection off. I was getting a lot of false positives from the wind blowing across the camera. Getting the optimum sensitivity will take trial and error and you can play around with this in the web interface.<br />
<br />
<h3>
Starting the Webcam Server</h3>
IP Webcam comes with its own webserver so you can connect to it with a browser. When you start the server it tells you the web address that you need to type in to your browser.<br />
<br />
The first thing you should do is configure your router to make this a address permanent. I have a BT Home Hub and the important bit of the settings screen looks like this:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw_4SHf1s9l8PFbOJpTB4VTk-KGoNBOvUXNvnX4cq_lOicAvwUuZZf89DrlvOwjZfuT5yFQGigHM1mj59FNg9mI7bejIX62Rrd7_hAsgVQlgYxzl9AwkS-TcXVCeXpmqybKrrS1Df28_x5/s1600/Screenshot+from+2020-05-19+13-56-32.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="56" data-original-width="536" height="33" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw_4SHf1s9l8PFbOJpTB4VTk-KGoNBOvUXNvnX4cq_lOicAvwUuZZf89DrlvOwjZfuT5yFQGigHM1mj59FNg9mI7bejIX62Rrd7_hAsgVQlgYxzl9AwkS-TcXVCeXpmqybKrrS1Df28_x5/s320/Screenshot+from+2020-05-19+13-56-32.png" width="320" /> </a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
If you find this doesn't work and the assigned ip address changes it could be that your phone is registered on the network more than once. Have a look for duplicate names or MAC addresses in your connected devices and remove the ones you are not using.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<h3 class="separator" style="clear: both; text-align: left;">
Power Management</h3>
<div class="separator" style="clear: both; text-align: left;">
Even with the all the power management options available the application is power hungry, especially if you opt for aggressive focusing which keeps the camera focused constantly so you can take a still image instantly. Note that if you want to record stills automatically you are going to need the IP Webcam add in. I'll blog about that later. If I'm out of reach of mains power, I use an external battery pack. A big RAV 280000mah battery pack like this <a href="https://www.amazon.co.uk/RAVPower-Portable-Charger-26800mAh-External-Black/dp/B012V9H3WA/">https://www.amazon.co.uk/RAVPower-Portable-Charger-26800mAh-External-Black/dp/B012V9H3WA/</a> in a margarine tub with a hole for the power cable.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<h3 class="separator" style="clear: both; text-align: left;">
Weatherproofing</h3>
<div class="separator" style="clear: both; text-align: left;">
The Blu comes with a silicone case which is sealed except for the camera, headset and power sockets sealed. I've covered the headphone socket with tape. I wouldn't trust it in a raging storm but it has managed the odd shower without coming to any harm. I'm considering sealing it in a food box with only a hole for the camera lens which I can seal with elefant snot (that really is what Blue Tack is called in Danish)</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
All that is left is to site your camera in an appropriate place and wait for the motion sensors to pick stuff up. The video will record in a local file which you can watch on your phone. Until you get the motion sensitivity fine tuned, expect a lot of false positives. Especially if there is foliage in your camera field. You'll get a video every time the wind blows.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<h3 class="separator" style="clear: both; text-align: left;">
Uploading to cloud storage </h3>
<div class="separator" style="clear: both; text-align: left;">
I use google photos to backup and manage the pictures. You can do this through the IP Webcam web interface but the google photos interface is a bit nicer and when they are on the cloud you can safely delete them from the phone. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
First make sure you have recorded at least one video. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Setting up photos is pretty straightforward.go to Settings -> Backup and Sync --> Backup device folders and you should see a folder called 'modet.' Add that to the folders backed up and that's it. There's a bit of a lag between recording and the videos appearing in in Photos so be patient.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Expect to be clearing out the false positives frequently. The free allowance for original size photos is 50GB. You'll go through that quite quickly. The great thing is that deleting from Photos also deletes on your device so it keeps it cleaned up reasonably cleaned up.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
There is a Dropbox plug in for IP Webcam but I seem to have broken it. I've emailed the developer to see what I've done wrong.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<h2 class="separator" style="clear: both; text-align: left;">
Coming Soon </h2>
<div class="separator" style="clear: both; text-align: left;">
Next article "Setting up IP Webcam to take still images" coming soon.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0tag:blogger.com,1999:blog-1214203760278230963.post-64018711800881529282020-05-12T05:55:00.001-07:002020-10-15T09:01:28.091-07:00Underwhelmed<h2>
Data and Methodology</h2>
<br />
<a href="https://www.blogger.com/blogger.g?tab=wj&blogID=1214203760278230963&pli=1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?tab=wj&blogID=1214203760278230963&pli=1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?tab=wj&blogID=1214203760278230963&pli=1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?tab=wj&blogID=1214203760278230963&pli=1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a>If he lockdown was intended to protect the NHS then it might have worked a bit too well. We were told we had to flatten the curve and we did. But by how much? We've seen the stories of empty hospitals and because elective and non urgent surgery cancelled.<br />
<br />
<a href="https://www.blogger.com/blogger.g?tab=wj&blogID=1214203760278230963&pli=1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?tab=wj&blogID=1214203760278230963&pli=1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?tab=wj&blogID=1214203760278230963&pli=1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?tab=wj&blogID=1214203760278230963&pli=1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a>Here's a chart generated from <a href="https://www.england.nhs.uk/statistics/statistical-work-areas/covid-19-daily-deaths/">https://www.england.nhs.uk/statistics/statistical-work-areas/covid-19-daily-deaths/</a>. I haven't done anything with it except cut and paste the totals of daily deaths by age into <a href="https://www.libreoffice.org/" target="_blank">Libreoffice</a> calc, Transform it from columns to rows and then copy it to<a href="https://www.google.co.uk/sheets/about/" target="_blank"> Google sheets</a>, which I've used for all the other manipulation.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0roveN_AELlYJJU9cAlPKGOMRL6iN4c0g3srtBqTEOsepOhEWqeECwp2sk5EB-7G39Fnm_WHbvgMEWoWlamVSqiplptEn5OBbPUKYpuM3QElEjbG21Wg2RV6aLhyphenhyphen-AEzOOg5QBZknDb0Y/s1600/Screenshot+from+2020-05-12+13-59-56.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="349" data-original-width="590" height="189" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0roveN_AELlYJJU9cAlPKGOMRL6iN4c0g3srtBqTEOsepOhEWqeECwp2sk5EB-7G39Fnm_WHbvgMEWoWlamVSqiplptEn5OBbPUKYpuM3QElEjbG21Wg2RV6aLhyphenhyphen-AEzOOg5QBZknDb0Y/s320/Screenshot+from+2020-05-12+13-59-56.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<br />
And here's a chart I made from publically available data.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUdeIYt_46IFlytzxLVFVOVA6g66-n5zcv4B4TxvLiVCr4_I1dWgHmWsmqNeVpz1tCyppO5xE2EFC1U_U-pvZbGS_7D1przwpy5YnqTNzxW-4D30S4lCE_succYCA7f9DoCQ5QHaXhHUM_/s1600/Screenshot+from+2020-05-12+14-02-25.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="366" data-original-width="599" height="194" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUdeIYt_46IFlytzxLVFVOVA6g66-n5zcv4B4TxvLiVCr4_I1dWgHmWsmqNeVpz1tCyppO5xE2EFC1U_U-pvZbGS_7D1przwpy5YnqTNzxW-4D30S4lCE_succYCA7f9DoCQ5QHaXhHUM_/s320/Screenshot+from+2020-05-12+14-02-25.png" width="320" /></a></div>
<br />
<br />
<br />
<div style="clear: both; text-align: left;">
The blue bars are daily hospitalisations derived from </div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<ul>
<li>Daily deaths as reported on Worldometer (this snapshot was taken when only hospital deaths were reported)</li>
<li>I've applied a 4 day smoothing to account to try to smooth out the weekend reporting systemic errors.</li>
<li>I've multiplied the deaths by 3 as only one third of long term hospitalised patients survive. <a href="https://news.sky.com/story/coronavirus-a-third-of-all-covid-19-hospital-patients-die-with-dementia-and-obesity-carrying-the-highest-risk-11980894">https://news.sky.com/story/coronavirus-a-third-of-all-covid-19-hospital-patients-die-with-dementia-and-obesity-carrying-the-highest-risk-11980894</a></li>
<li>I've assumed that these are the patents that are occupying the critical care beds.</li>
</ul>
<div>
<br /></div>
<div>
The red line is:</div>
<div>
<ul>
<li>On April 12th there were 2295 available NHS critical care beds. <a href="https://www.reuters.com/article/health-coronavirus-britain-nhs-idUSL9N26V04T">https://www.reuters.com/article/health-coronavirus-britain-nhs-idUSL9N26V04T</a></li>
<li>I've added 2295 to the April 12th calculated hospitalisations</li>
<li>this excludes the 4000 beds at the nightingale hospital which were not fully available at the time.</li>
</ul>
<div>
That's all data. I'm now going to step into the realm of models and speculation.</div>
<div>
<a href="https://www.blogger.com/blogger.g?tab=wj&blogID=1214203760278230963&pli=1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?tab=wj&blogID=1214203760278230963&pli=1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?tab=wj&blogID=1214203760278230963&pli=1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?tab=wj&blogID=1214203760278230963&pli=1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><br /></div>
The big surprise came when I came to construct a tall thin bell curve with the same area which just failed to breach the capacity line.<br />
<ul>
</ul>
</div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDwGMamu5dg-RVmHjMh-VNihC9ywQSzYUV4NruCwiEjJUeWqA9OdwskhsJHR9GMUcsDH7mJPnepFMCZw2fSu6yZFqfiPTClzHsSNIwEclCA_VllUZlF5qmWUQyMgY1Ui6suxX3eAb3RE4m/s1600/Screenshot+from+2020-05-12+13-59-10.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="282" data-original-width="593" height="152" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDwGMamu5dg-RVmHjMh-VNihC9ywQSzYUV4NruCwiEjJUeWqA9OdwskhsJHR9GMUcsDH7mJPnepFMCZw2fSu6yZFqfiPTClzHsSNIwEclCA_VllUZlF5qmWUQyMgY1Ui6suxX3eAb3RE4m/s320/Screenshot+from+2020-05-12+13-59-10.png" width="320" /></a><a href="https://www.blogger.com/blogger.g?tab=wj&blogID=1214203760278230963&pli=1" style="margin-left: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?tab=wj&blogID=1214203760278230963&pli=1" style="margin-left: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?tab=wj&blogID=1214203760278230963&pli=1" style="margin-left: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?tab=wj&blogID=1214203760278230963&pli=1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<br /></div>
<div>
</div>
<div>
The tall thin curve came later with a slower incremental part.</div>
<div>
<br /></div>
<div>
I know this can't be right. But as they say, "all models are wrong and some are useful."<br />
<br />
This one is obviously wrong and not very useful. If you think you can improve it please do.<br />
<br />
If I get the time and the inclination I will generate some numbers from my <a href="https://davidsdiamondsandrust.blogspot.com/2020/04/playing-with-reproduceability-value.html" target="_blank">RCalc program</a> to try to make a different shaped curve. I'll need to make a branch of the code so I can add add some fudge factors (something I because the aim of the code was to find the bell curve, not fit it to real life) the results of R0=3 has 70 million people infected in 17 iterations and the opportunity factor doesn't get a chance to pull the curve down. The spreadsheet calculations are obviously crude and somehow wrong. My focus was to get a bell curve with the right shape and the same end total. The fact it had the same width is a mystery to me. It is not designed in to the formula. And I messed up the horizontal axis labels.<br />
<br />
As ever all source data is on github here:<br />
<br />
<a href="https://github.com/davidsinfield/RValue/blob/master/Underwhelmed.ods">https://github.com/davidsinfield/RValue/blob/master/Underwhelmed.ods</a><br />
<br />
It's freely available, do with it what you will.<br />
<br />
<br /></div>
<div>
<h2>
Before you comment</h2>
</div>
<div>
<ul>
<li>There is no doubt that this is a dangerous disease to the vulnerable. I am not trivialising it.</li>
<li>The hospitals have done a grand job and the lack of masks and gowns was a fiasco. I'm not sure what could have been done about it. And I have no intention of being drawn in to a recriminations.</li>
<li>I have no wish to kill you or your granny. I'm a grandad I'm well into the age danger zone with a highish BMI and I would be considered quite vulnerable. </li>
<li>The third chart is very definitely wrong. I don't need to be told I am open to suggestions as to how it can be improved.</li>
</ul>
</div>
<div>
<br /></div>
David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0tag:blogger.com,1999:blog-1214203760278230963.post-40959097193722480692020-05-05T09:14:00.000-07:002020-05-05T09:14:10.011-07:00Covid-19 Correlations<h2>
Where I started</h2>
I was thinking about why there was such a wide spread of values of deaths per million from or of Coronaviris across the 48 countries of Europe so I decided to look at some correlations. It's important to note these are not direct country to country comparisons, I think we all know by now they are very dangerous. Rather they are a statistical method to see what the possibility that a pair of sets of values are somehow linked. The strength of a correlation is measured in the P (for Pearson) value and they range form -1 negative correlation through 0 (no correlation) to +1 positive correlation. A negative correlation means that as one value gets bigger, the other value gets smaller. A positive correlation means that the values increase or decrease together. I used to do rank correlations by hand for my OPen University courses but that is hard work and we now have computers that can do that stuff for us. I used LibreOffice calc and it a matter of fractions of a second to get an answer that would certainly taken hours using the old pen and paper method.<br />
<br />
"Correlation is not causation" is a very important concept. It might be that there is a spurious correlations. There are some great spurious correlations of time series here:<br />
<br />
<a href="https://www.tylervigen.com/spurious-correlations">https://www.tylervigen.com/spurious-correlations</a><br />
<br />
However given a strong correlation of P>.5 it is certainly legitimate to hypothesise for causation.<br />
<br />
<h2>
Population Density</h2>
My first instinct was that it was due to population densities. It seems obvious that if you cram people together the spread of disease will be faster and you may get a higher mortality per capita than more sparsely populated countries. So what does the correlation look like?<br />
<br />
The P value is 0.234105007129706 which represents a weak positive correlation. Not very much above chance. I was surprised.<br />
<br />
That is certainly not a good enough correlation warrant searching to hard for a causation<br />
<h2>
Life Expectancy</h2>
We generally think of Life expectancy as an indicator of the quality if health and social care and general health of the population. The longer the live expectancy the better we were doing. So you'd expect the longer the live expectancy, the better the health and social care available and there should be a negaitive correlation, that is as life expectancy goes up, mortality goes down.<br />
<br />
The European values range from 71.72 to 85.42 a pretty wide range for what we would all expect to be developed industrial countries.<br />
<br />
I tried life expectancy against deaths per million. P value is 0.529. That is certainly more significant. Yes, thats a positive correlation. as life expectancy goes up so does a country's mortality rate for the Chinese Cough.<br />
<br />
It seems therefore that a high life expectancy is a disadvantage where it comes to mortality from this virus. So maybe it is not a good indicator of the quality of health, social care and fitness after all. Maybe it's just an indicator that we can keep sick people alive longer. I'm not that sure that's a good thing when a pandemic strikes.<br />
<br />
There is an alternative explanation. It could be that the reporting in countries with a lower life expectancy is less accurate and they are underreporting deaths from or with to coronavirus.<br />
<br />
I'll let you decide.<br />
<br />
<h2>
Data</h2>
<div>
<br /></div>
<div>
I did this a while ago and the data is from Worldometer from Wednesday 29th April. The Uk has changed its reporting method since then to include non NHS deaths. I don't know whether this has a large effect but I'll do a revision if I get a chance.</div>
<div>
<br /></div>
<div>
The spreadsheet of values I have used is here </div>
<div>
<br /></div>
<div>
<a href="https://github.com/davidsinfield/RValue/blob/master/Correlations1.ods">https://github.com/davidsinfield/RValue/blob/master/Correlations1.ods</a></div>
<br />
<br />
<br />
<br />
<table border="0" cellspacing="0" style="font-family: "Liberation Sans"; font-size: x-small;"><colgroup width="85"></colgroup><tbody>
<tr><td align="right" height="17" sdnum="2057;" sdval="0.234105007129706"><br /></td></tr>
</tbody></table>
<br />David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0tag:blogger.com,1999:blog-1214203760278230963.post-18813227522921281182020-05-05T00:31:00.000-07:002020-07-23T08:21:47.340-07:00Risk takers and risk averseOver the two hundred thousand years of the human race we have evolved a strategy for the survival of the species. It's worked pretty well. One of the cornerstones of the strategy finding a balance between the risk takers and the risk averse. The argument about whether this is nature or nurture is<br>
<br>
Here's a very quickly drawn diagram (I have a love hate relationship with Inkscape.)<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ4oiqB1yRuW0-ORdkhE0R6CPjJI1I70nJXZzKCr-KiCiZ0UkRzY1t3NnSLtsnVUoowo-LKvU2im-Xzgf9urA0MBi4LirCSAg2WSRRRblip4zY5TjGsyZ2faIK3ltBPrJ55j7CcGglo-O7/s1600/risk.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="580" data-original-width="567" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ4oiqB1yRuW0-ORdkhE0R6CPjJI1I70nJXZzKCr-KiCiZ0UkRzY1t3NnSLtsnVUoowo-LKvU2im-Xzgf9urA0MBi4LirCSAg2WSRRRblip4zY5TjGsyZ2faIK3ltBPrJ55j7CcGglo-O7/s400/risk.png" width="390"></a></div>
<span id="goog_243549007"></span><span id="goog_243549008"></span><br>
There's no scale and no attempt at quantifying it. The numbers might be distributed differently but it is what it is.<br>
<br>
The important parts as is very often the case are the two edge cases.<br>
<br>
The red zone are the risk takers, this is where innovation comes from. The first person to tame a horse, Montgolfier, the Wright Brothers, Edmund Hillary are all in the the red zone. So are all all the entrepreneurs and small businesses. This is the source of all innovation. Some fail. But the ones that succeed make the leaps forward that eventually filter up the other groups.<br>
<br>
The green zone are the risk averse. They like the status quo. New ideas and things will only filter down to them after the early adopters and late adopter have proven them. It's very difficult to name them individually because their impact on the species is taken for granted. They take the absolutely safe path. They will survive. They will breed, they will continue the species. Luckily they will breed some a few more risk taker than risk averse because some of the risk takers fail in a spectacular fashion.<br>
<br>
Over most of the 200,000 years of the human race this balance has been maintained successfully. We have thrived. The risk takers have given us innovation and the risk averse have ensured we haven't entirely wiped ourselves out.<br>
<br>
The reason for the balance is that we have been allowed to make our own risk assessments.<br>
<br>
Consider what happens when we are forced by regulation to be come risk averse....<br>
<br>
<br>David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0tag:blogger.com,1999:blog-1214203760278230963.post-42212380119613668722020-04-14T03:02:00.002-07:002020-04-15T02:44:42.979-07:00Playing with Reproduction Value<h2>
Background</h2>
<div>
When the chart of infection spread for CoronaVirus was published it intrigued me that both the tall thin curve representing unrestricted spread and the short fat curve representing controlled spread were <a href="https://healthblog.uofmhealth.org/wellness-prevention/flattening-curve-for-covid-19-what-does-it-mean-and-how-can-you-help" target="_blank">normal distribution bell curves.</a></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMyYSX5LhVYd2ZXzEUrg1G0UeyfllNF_S7reFXBYhXiIJLxiUHfa4qmpXr_WLP8mbXAzlAENKzZ6QllI4BxeoDPLa0i9R7lVgvMcApUZXEWOetZBzoYDLBrVVhDiceXQ26NO2z-WQAOTcO/s1600/BloggerBellcurves.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="373" data-original-width="647" height="184" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMyYSX5LhVYd2ZXzEUrg1G0UeyfllNF_S7reFXBYhXiIJLxiUHfa4qmpXr_WLP8mbXAzlAENKzZ6QllI4BxeoDPLa0i9R7lVgvMcApUZXEWOetZBzoYDLBrVVhDiceXQ26NO2z-WQAOTcO/s320/BloggerBellcurves.png" width="320" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
I wanted to know why the curves rose and fell and in particular what made the curves fall in such a symmetrical way. Particularly what caused them to fall. I decided the best way was to make my own model so I can play with it.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
When I started reading I realised <a href="https://en.wikipedia.org/wiki/Basic_reproduction_number" target="_blank">Basic Reproduction Value</a>, R0 (are-nought) was the most important factor. It's pretty well the only property of the spread of the virus that at this time we are able to control.</div>
<div>
<br /></div>
<div>
The tall thin curve is the number of hospitalisations with time with no intervention. The native property of the virus.</div>
<div>
<br /></div>
<div>
The short fat curve is the number of hospitalisations if the R0 value is attenuated by reducing the opportunity to spread. But why the bell? Why not an ever increasing exponential curve until everyone who will be hospitalised is?</div>
<h2>
Assumptions</h2>
<div>
The charts use hospitalisations. That's so the dotted line (available hospital resources) is relatable to the numbers. I have assumed that infections follow that curve. There is a skewing factor that Is not taken into account in those curves and in my calculations and that is that there should be more hospitalisations (though not infections) in as the more vulnerable will be hospitalised early.</div>
<div>
<br /></div>
<div>
I have used a simple model for the reproduction value iteration time. In reality the virus is infectious for a long period. I have seen number like 7-10 days in the incubation period and up to several weeks in the symptomatic period. I haven't modelled for this. For convenience I've called an iteration period a day.</div>
<div>
<br /></div>
<div>
The model uses a chance or opportunity factor. I have assumed that the opportunity factor is linear with the number of people who have been infected. There has been some talk of a small number of reinfections in South Korea. If infection does not confer immunity in the vast number of cases then all bets are off<b> and we are all dead</b>.<br />
<br />
Population density will have a huge effect on R value (more specifically on oportunity factor.) I haven't even attempted to model how high density areas within the same population affect the overall shape of the curve. My speculation is that there will be a much longer tail as more isolated communities become infected over time.<br />
<br />
The model has no 'fudge factors' to aim to give a preconceived result. The R based calculations are taken directly from the definition of R</div>
<h2>
Method</h2>
<div>
The model is very simple. Day zero there are n infectious cases. Which means on day two there will be n*R. The total infected is n+(n*R)* The next day the infections are the (total infected on the previous day) * RO. They are added to the running total. </div>
<div>
<br /></div>
<div>
I then apply an opportunity factor which is the chance of encountering RO number of people who are do not have acquired immunity. Which is the population/the running total of infected people.</div>
<div>
<br /></div>
<div>
The model runs until the number of new infections is zero or given number of iteraterations or a target number of infections has been reached</div>
<div>
.</div>
<div>
<br /></div>
<div>
I have pasted the code after the footnotes. It runs under Python 3. I use version 3.6 on various versions of Ubuntu. This has been tested on 18.04.</div>
<h2>
Results</h2>
<div>
I'm presenting the results in a standard form:</div>
<div>
<br /></div>
<div>
<ul>
<li>Parameters</li>
<li>Raw output</li>
<li>csv</li>
<li>chart</li>
<li>analysis</li>
</ul>
The charts are created using <a href="https://www.libreoffice.org/" target="_blank">LibreOffice Calc</a><br />
<ul>
</ul>
</div>
<h3>
Run one</h3>
<div>
I wanted a picture of how the tall thin curve might look so I used the profile for infecting the whole population at R0=3.</div>
<div>
<br /></div>
<div>
The parameters for my first run were:</div>
<div>
<br /></div>
<div>
population = 70m</div>
<div>
day zero infections = 1</div>
<div>
iterations 100</div>
<div>
R value = 3</div>
<div>
<br /></div>
<div>
I chose the R0 value because Niall Ferguson had revised his estimate of 200-500k deaths to 20k based on a R) value of "probably greater than 3."</div>
<div>
<br /></div>
<div>
Here are the results. </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsXYtQ9nae_J5oAdB4yS8DDbo-MaY-Bt6zzP4IsyJmh3vMx_zZ85nillurWGV4QVyHCbMMh_6HlxKxjYbfGlQLQLJhODvhxTuL5D5Gdrrpn1tiMq5U7Isd81uGC9cUfpaTj1UiDsmW_WV-/s1600/BloggerRun1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="722" data-original-width="914" height="502" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsXYtQ9nae_J5oAdB4yS8DDbo-MaY-Bt6zzP4IsyJmh3vMx_zZ85nillurWGV4QVyHCbMMh_6HlxKxjYbfGlQLQLJhODvhxTuL5D5Gdrrpn1tiMq5U7Isd81uGC9cUfpaTj1UiDsmW_WV-/s640/BloggerRun1.png" width="640" /></a></div>
<div>
If you want the comma separated values to load into a spreadsheet you can cut and paste these:<br />
<br />
=================================================================</div>
<div>
<br /></div>
<div>
<div style="border-style: solid; border-width: 2;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">day,infected,todaysinfections, opportunityfactor</span></div>
<div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">1,4.0,3.0,1.0</span></div>
<div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">2,12.999999614285715,8.999999614285715,0.9999999571428572</span></div>
<div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">3,39.99999382857178,26.999994214286065,0.9999998285714341</span></div>
<div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">4,120.99993134287536,80.99993751430358,0.999999442857231</span></div>
<div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">5,363.99932731491725,242.9993959720419,0.9999982857152666</span></div>
<div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">6,1092.9937348617311,728.9944075468138,0.999994814295324</span></div>
<div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">7,3279.942840759639,2186.9491058979074,0.999984400089502</span></div>
<div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">8,9840.48283497705,6560.539994217413,0.9999531579594177</span></div>
<div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">9,29519.33628960095,19678.8534546239,0.9998594359595003</span></div>
<div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">10,88531.0014957269,59011.66520612595,0.9995783094815771</span></div>
<div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">11,265342.09842229204,176811.09692656514,0.9987352856929181</span></div>
<div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">12,793764.7356017698,528422.6371794777,0.9962094128796816</span></div>
<div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">13,2361056.530291741,1567291.794689971,0.9886605180628318</span></div>
<div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">14,6904340.644671642,4543284.114379901,0.9662706352815467</span></div>
<div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">15,19189833.989471916,12285493.344800275,0.9013665765046909</span></div>
<div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">16,45942461.21758762,26752627.228115708,0.7258595287218298</span></div>
<div>
<span style="font-family: "arial" , "helvetica" , sans-serif;">17,73525420.95292085,27582959.73533324,0.3436791397487483</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
</div>
<div>
==============================================================</div>
<div>
<br />
The chart of iterations v infections is:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh42hVZB9b8tM3sNjNLP8KYtAz8OvJ1pVif74sPuwnfxP1dxnQ6eUdh1j9-cPpUqCoBnEr_4ypqw11sczqaKDYV4gJT7pjDjjalTNRYmj8kYe8feUwSNa9NJKYSvVYQaCZECeb4NUfcCYaU/s1600/BloggerRun1Chart.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="277" data-original-width="492" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh42hVZB9b8tM3sNjNLP8KYtAz8OvJ1pVif74sPuwnfxP1dxnQ6eUdh1j9-cPpUqCoBnEr_4ypqw11sczqaKDYV4gJT7pjDjjalTNRYmj8kYe8feUwSNa9NJKYSvVYQaCZECeb4NUfcCYaU/s320/BloggerRun1Chart.png" width="320" /></a></div>
<br />
Definitely starting to get a bell curve. The exponential part works. And the opportunity factor starts to kick in but doesn't have chance to pull the curve down before the target infections is reached.<br />
<br />
The code seems to work as expected although I was surprise the opportunity factor didn't get a chance to kick in.<br />
<br />
<h3>
Run 2</h3>
</div>
<div>
For this run I wanted to try to get the full bell curve. And I did with these parameters.</div>
<div>
<br /></div>
<div>
<div>
population = 70m</div>
<div>
day zero infections = 1</div>
<div>
iterations 100</div>
<div>
R value = 2</div>
<div>
<br />
Raw output:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGIhOI6tggV6_W46jGSrZ7jStB_KxslEBBuBA99glsBuF3geEJjZK-OmKYJm8W2MfRoKyQymH8kybKDIaZN3eTF0WGFHIUAVE9uvSAZiwR5AEg8AHQ8RYyYwT0872MQoTA02DkbNnsRogT/s1600/BloggerRun2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="956" data-original-width="914" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGIhOI6tggV6_W46jGSrZ7jStB_KxslEBBuBA99glsBuF3geEJjZK-OmKYJm8W2MfRoKyQymH8kybKDIaZN3eTF0WGFHIUAVE9uvSAZiwR5AEg8AHQ8RYyYwT0872MQoTA02DkbNnsRogT/s640/BloggerRun2.png" width="609" /></a></div>
<br />
I was quite pleased to see the bell in the results.<br />
<br />
If you want to play with them in a spreadsheet, here are the comma separated values:<br />
<br />
=====================================================================<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">day,infected,todaysinfections, opportunityfactor</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">1,3.0,2.0,1.0</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">2,6.999999885714286,3.9999998857142858,0.9999999714285714</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">3,14.999998971428605,7.999999085714319,0.999999914285716</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">4,30.99999394285784,15.999994971429238,0.9999998000000146</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">5,62.99997017143768,31.999976228579836,0.9999995714286578</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">6,126.99986594295245,63.999895771514765,0.9999991142861404</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">7,254.99942708660234,127.99956114364987,0.999998200001915</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">8,510.99762046489644,255.9981933782941,0.999996371436756</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">9,1022.9902769794999,511.9926565146035,0.9999927143197077</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">10,2046.9606399653685,1023.9703629858686,0.9999854001389004</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">11,4094.8415087068443,2047.8808687414755,0.9999707719908576</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">12,8190.363711912501,4095.5222032056563,0.9999415165498757</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">13,16380.449840583464,8190.086128670962,0.9998830090898299</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">14,32756.789266355827,16376.339425772363,0.9997660078594202</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">15,65494.14183438098,32737.35256802515,0.9995320601533376</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">16,130907.58776828786,65413.44593390688,0.9990643836880803</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">17,261489.82103606238,130582.23326777453,0.9981299058890245</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">18,521678.6934508844,260188.87241482205,0.9962644454137707</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">19,1038178.3031141586,516499.6096632741,0.9925474615221302</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">20,2055857.003245857,1017678.7001316986,0.9851688956697977</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">21,4031437.2359366487,1975580.2326907916,0.9706306285250591</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">22,7755042.680259095,3723605.444322446,0.9424080537723336</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">23,14377204.556859408,6622161.876600313,0.8892136902820129</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">24,24901294.90187841,10524090.345019003,0.7946113777591514</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">25,38461947.971023865,13560653.069145458,0.6442672299731655</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">26,50681279.27394551,12219331.302921642,0.4505436146996591</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">27,57425903.87736294,6744624.60341743,0.2759817389436356</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">28,59848977.1579086,2423073.2805456645,0.1796299588948152</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">29,60551739.29053585,702762.1326272473,0.14501462631559137</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">30,60741450.163351946,189710.87281609673,0.13497516727805925</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">31,60791634.38507288,50184.22172093443,0.13226501195211507</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">32,60804837.662555486,13203.277482604371,0.13154809449895885</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">33,60808306.413785264,3468.751229775726,0.13135947624920735</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">34,60809217.37669668,910.9629114187214,0.13130992266021052</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">35,60809456.589925475,239.21322879153985,0.1312969089043331</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">36,60809519.40420555,62.81428007674185,0.1312934915724932</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">37,60809535.898305126,16.494099571382108,0.13129259422563497</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">38,60809540.2294036,4.331098471276219,0.13129235859564106</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">39,60809541.366683334,1.137279731252975,0.1312922967228057</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">40,60809541.665315434,0.29863209891056264,0.13129228047595237</span></div>
</div>
<div>
<br /></div>
<div>
=================================================================</div>
<div>
<br /></div>
<div>
As you can see the run ended because there were no new infections. There were still ~10 million uninfected.<br />
<br />
I had acheived my bell curve:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPmNoPoCZ_F0HgbsZDVPhQlGw0tonAnPhAkVF6HUorYWh6btLzrq33C0dYX_crwOJnIjSxff2svAkcv7CZChE3y39qCRSLG4kkgb3yLUigE2lGiT2QhW-Zuj3HkxnoqjHtQxKIbanwSObu/s1600/BloggerRun2Chart.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="254" data-original-width="554" height="146" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPmNoPoCZ_F0HgbsZDVPhQlGw0tonAnPhAkVF6HUorYWh6btLzrq33C0dYX_crwOJnIjSxff2svAkcv7CZChE3y39qCRSLG4kkgb3yLUigE2lGiT2QhW-Zuj3HkxnoqjHtQxKIbanwSObu/s320/BloggerRun2Chart.png" width="320" /></a></div>
<br />
<h3>
Run 3</h3>
</div>
<div>
For run 3 I wanted to find an R0 value that gave me bell curve and infected every one.</div>
<div>
<br /></div>
<div>
I could have added some goal seeking to my code but decided to do it by hand. I knew the value was greater than 2 and less than 3 so I did increments of 0.1. The sensitivity is greater than I expected so I had to go to a second decimal place.</div>
<div>
<br /></div>
<div>
I won't post all the results, just the the one that got me closest:</div>
<div>
<br /></div>
<div>
<div>
population = 70m</div>
<div>
day zero infections = 1</div>
<div>
iterations 100</div>
<div>
R value = 2.56<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOYsx8YToXK16OCxyfq3RXBxMsixZ3OzkoBmsSZahg0EKJNVhwXFSw961wbdCG1qN_z4wzYZV6udUHDsRFOIiR-hzRvIchLqLJuX5UUyklFx8hXzOzJN2xtHZ1Oz3DfFjmlgUtJiYkXgCk/s1600/BloggerRun3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="704" data-original-width="914" height="307" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOYsx8YToXK16OCxyfq3RXBxMsixZ3OzkoBmsSZahg0EKJNVhwXFSw961wbdCG1qN_z4wzYZV6udUHDsRFOIiR-hzRvIchLqLJuX5UUyklFx8hXzOzJN2xtHZ1Oz3DfFjmlgUtJiYkXgCk/s400/BloggerRun3.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
csv:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
========================================================</div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">day,infected,todaysinfections, opportunityfactor</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">1,3.56,2.56,1.0</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">2,10.113599760325487,6.553599760325486,0.9999999634285714</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">3,26.89081296246121,16.777213202135727,0.9999998698057176</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">4,69.84046287418919,42.949649911727974,0.9999996301312434</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">5,179.79145851842884,109.95099564423965,0.999999016564816</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">6,461.26528843560914,281.4738299171803,0.9999974458363069</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">7,1181.8335550987078,720.5682666630987,0.9999934247815937</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">8,3026.457200181365,1844.6236450826568,0.9999831309492129</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">9,7748.489632671324,4722.032432489959,0.9999567791828545</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">10,19835.55473445807,12087.065101786746,0.9998893215766762</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">11,50769.67370390198,30934.11896944391,0.9997166492180792</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">12,129903.58341521795,79133.90971131597,0.9992747332328012</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">13,332110.4489872361,202206.86557201814,0.998144248808354</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">14,847304.0774886198,515193.6285013837,0.9952555793001824</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">15,2150235.418221515,1302931.3407328953,0.9878956703215912</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">16,5383280.8504639575,3233045.4322424424,0.9692823654539783</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">17,13023373.812327115,7640092.961863157,0.9230960021362292</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">18,28943162.735471915,15919788.9231448,0.8139518169667554</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">19,52846840.87116953,23903678.135697614,0.5865262609218297</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">20,67841990.3561394,14995149.484969873,0.24504514469757815</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">21,69025430.52783662,1183440.1716972135,0.030828723483722762</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">22,69067610.03309497,42179.50525835205,0.013922435316619703</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">23,69069048.30654654,1438.2734515715865,0.01331987095578611</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">24,69069097.27439271,48.96784616825324,0.0132993241921923</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">25,69069098.94147752,1.667084815835123,0.013298624651532727</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">26,69069098.99823245,0.05675493254555362,0.013298600836035396</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span></div>
<div class="separator" style="clear: both;">
<span style="font-family: "arial" , "helvetica" , sans-serif;">=======================================================</span></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghy50ffdunPhAIL5XcUtkChJyUrvuTfQpZC0nN-4L_T6zy02annIAQ1KTIkLbdh6D_mmp82EimjByfu4-h8NkFee3vmENR-Iicr-_ay97ZW_CJXhZZjQvGfHqANqhPB51dnJwJRv95K-ou/s1600/BloggerRun3Chart.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="305" data-original-width="466" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghy50ffdunPhAIL5XcUtkChJyUrvuTfQpZC0nN-4L_T6zy02annIAQ1KTIkLbdh6D_mmp82EimjByfu4-h8NkFee3vmENR-Iicr-_ay97ZW_CJXhZZjQvGfHqANqhPB51dnJwJRv95K-ou/s320/BloggerRun3Chart.png" width="320" /></a></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
This is quite a long post so I'll end the results there. </div>
<br />
<div>
<h2>
Conclusions</h2>
</div>
</div>
</div>
<div>
Whether you call it 'herd immunity' or 'widespread acquired infection' the opportunity factor serves to form the expected bell curve in all cases where R0 is between 1.2 (results not shown here for brevity. No new cases iteration 158, 22602160 infected) and 2.56.</div>
<div>
<br /></div>
<div>
R0 of 2 or less leaves a large population of potential infections if the R0 is increased by removing restrictions unless there are no or very few infections when restrictions are relieved.**</div>
<div>
<br /></div>
<div>
Even with this simple model the theoretical expected and possibly the real world results for cases/deaths (we wont know until at least one country has fully played out their infection.)</div>
<div>
<br /></div>
<div>
Any discussion of comparison with actual infections is futile because there is no way of telling what they are except other models.</div>
<div>
<br /></div>
<div>
A more valid result might be to take the deaths and compare them to infections calculated by this model to get an estimate of mortality. This might become another blog post at some time maybe.</div>
<div>
<br /></div>
<h2>
Comments</h2>
<div>
Most comments are welcome either here or by mentioning me on <a href="http://twitter.com/omotforest" target="_blank">twitter</a>. I will answer as many and as soon as I can.</div>
<div>
<br /></div>
<div>
I will ignore stuff like "my old aunty died of CoronaVirus so you are wrong." Your anecdotes do not interest me.</div>
<div>
<br /></div>
<div>
Or anything which refers to something I didn't actually say.</div>
<div>
<br /></div>
<div>
If you are commenting please be specific. "Cobblers" or any other such stuff will be either ignored or published to show what an idiot I am dealing with.</div>
<div>
<br /></div>
<div>
If you have a set of parameters you wish me to run please send them. Only the parameters show in the results section please.</div>
<div>
<br /></div>
<div>
If you want me to tailor the model or submit change requests then you'd better be ready with some paypal. I might or might not improve, change, remove it at any time. My choice.</div>
<div>
<br /></div>
<div>
You may take what additional inferences from the results. They are not my responsibility.</div>
<div>
<br /></div>
<div>
You use the information here at your own risk. Any decisions you base on it are your problem not mibe.</div>
<div>
<br /></div>
<div>
<br /></div>
<h2>
Footnotes</h2>
<div>
*The brackets are extraneous but I know a lot of people have problems with operated precedence and I didn't want to use RPN although I'm probably one of the last people alive who can.<br />
<br />
** I may revise my model so the R0 value can be changed in the course of the curve. That might show any subsequent peak(s).<br />
<br />
<br />
<h2>
Code:</h2>
<div>
Also available on GitHub <a href="https://github.com/davidsinfield/RValue" target="_blank">here</a></div>
<div>
<br /></div>
<div>
If anyone requires the results files or images I can zip them up and make them available.<br />
<br /></div>
<div>
<br /></div>
=========================================================<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">#---- License ----</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">"""</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">This code is the property of David Sinfield (dsinfield6@gmail.com) It is released under The GNU public license the short version of which is you may copy, </span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">distribute, amend but this section of header should remain intact.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">The long version is at https://www.gnu.org/licenses/gpl-3.0.html</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">"""</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">#------------------------------------------------------------------------------------------------------------------------------</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"># This is a Transmissibility generator V1.0</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"># The parameters are prompted for on the command line. It takes no command line parameters.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">#blog post description is at </span><span style="background-color: #edf4ff; color: #888888; font-family: "arial" , "helvetica" , sans-serif; font-size: 13px;"><a href="https://davidsdiamondsandrust.blogspot.com/2020/04/playing-with-reproduceability-value.html">https://davidsdiamondsandrust.blogspot.com/2020/04/playing-with-reproduceability-value.html</a></span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">#------------------------------------------------------------------------------------------------------------------------------</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">#usage</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">print ("This program models the number of people infected in over a number of days for a given R value.")</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">print ()</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">print ("Day Zero are the number of infections on Day 0")</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">print("The R value is the number of people each infected person can transmit to.")</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">print(" R may be a decimal value. The result on day N will be rounded up to an integer.")</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">print("The program assumes that R declines linearly with the number of infections as the chance of contacting R uninfected declines")</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">print ("the chance parameter calculation may be a little simplistic but is calculated as (population-infected)/population ")</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">print ("The definition of R does not include a time element so this assumes one iteration a day.")</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">#functions</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">#all the get functions require validity checking for input type numeric.</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">def getpopulation():</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> ipopulation=input("Population(default 70m) - ")</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> if len(ipopulation) > 0:</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> population=int(ipopulation)</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> else:</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> print("70m used")</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> population=70000000</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> return population</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> </span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">def getdayzero():</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> idayzero=input("Day Zero infections (default =1) - ")</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> if len(idayzero)>0:</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> dayzero=int(idayzero)</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> else:</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> print ("1 used")</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> dayzero=int(1)</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> return dayzero</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> #ToDo validty check/default</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">def getdays():</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> return int(input("Days - "))</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> #ToDo validty check/default</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">def getrvalue():</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> return float(input("R Value - "))</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">def gettarget():</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> itarget=input("Target value (leave blank for population=target) - ")</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> if len(itarget)>0:</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> target=int(itarget)</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> else:</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> print(str(population)+" used")</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> target=population</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> return target</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">#end functions</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">#start procedural</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">population=getpopulation()</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">dayzero=getdayzero()</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">days=getdays()</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">rvalue=getrvalue()</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">target=gettarget()</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">infected=dayzero</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">newcases=dayzero</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">csv=["day,infected,todaysinfections, opportunityfactor\n"]</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">for day in range (1, days):</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> # calculations</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> chance=((population+1)-infected)/population</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> todayscases=float((newcases*rvalue)*chance)</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> infected=infected+todayscases</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> newcases=float(todayscases)</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> #show results</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> print ("Chance: "+str(chance)+" Day number: " + str(day) + " - Infected: " + str(int(infected))+" Newcases today:"+str(int(todayscases+0.9)))</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> csv.append(str(day)+","+str(infected)+","+str(todayscases)+","+str(chance)+"\n")</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> #exit conditions</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> if target > 0:</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> if infected > target: </span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> break</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> if newcases<1:</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> print("No new cases")</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> break</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">print("Program end")</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "arial" , "helvetica" , sans-serif;">#Option to write a file of data</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">dofile=input("Enter y to write a result file: ")</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;">if dofile=="y" or dofile== "Y":</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> filename=input("Filename (exension .csv will be added): ")</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> if len(filename)==0:</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> print ("No Filename results.csv will be used")</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> f=open("results.csv","a")</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> else:</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> f=open(filename+".csv", "a")</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> print ("Writing "+ f.name)</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> for x in csv:</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> f.write(x)</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"> f.close</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"># end procedural</span><br />
<br />
<br />
===============================================</div>
David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0tag:blogger.com,1999:blog-1214203760278230963.post-64001983161383543502017-03-25T18:13:00.000-07:002017-03-25T18:13:47.675-07:00Optimists, rationalists and pessimistsThing change. It's the only constant.<br />
<br />
And as things change we like to guess outcomes.<br />
<br />
Optimists like to guess things will be fine.<br />
<br />
Pessimists guess at bad outcomes.<br />
<br />
Rationalists recognise that of the outcomes some are better than others.<br />
<br />
On this continuum I sit between rational and optimistic. What steers me from pure rationalism?<br />
<br />
1. Faith in human ingenuity to steer the outcomes towards the good.<br />
<br />
2. The fact that from a historical perspective optimists are more often proved right. Unless you believe a nasty Brutus and short life is better than we have now, overall things improve.<br />
<br />
Tell me I'm wrong.<br />
<br />
<br />David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0tag:blogger.com,1999:blog-1214203760278230963.post-52482286028961595282017-03-14T10:59:00.002-07:002018-04-04T05:32:24.579-07:00ANSI formatter for python<h2>
ANSI formatter</h2>
I have been playing around with python and needed something that formatted the terminal output using the ansi codes as described here:<br />
<br />
<a href="http://pueblo.sourceforge.net/doc/manual/ansi_color_codes.html">http://pueblo.sourceforge.net/doc/manual/ansi_color_codes.html</a><br />
<br />
Except I can't remember all the escape sequences any more. The last time I used them was about 35 years ago when I was working with serial terminals at Philips in Holland.<br />
<br />
I thought it might be useful so here it is. I've put a listing at the end of the post. Feel free do do with it what you will within the terms of the GPL. I'll update this when I get round to putting it on GitHub.<br />
<br />
The code has been tested on LXTerminal and xcfe4 on the pi and xterminal on ubuntu and gives expected results on all of them. It won't work if your terminal doesn't recognise ansi codes.<br />
<br />
Here's the sample output:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN8sCe062ysjn_l-qZ4ndOjuWkdM5CX2-j7Nacyr4uaf89V0zFMWzPOcs6eXICJANa9uXp84vU-IV2HdCxACBz_z_56Q5t3VT9GNPNwMn1O-a_7YdQua-yy-r0_jttyhMEd7Q1TMVHAQ5N/s1600/ansidem.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN8sCe062ysjn_l-qZ4ndOjuWkdM5CX2-j7Nacyr4uaf89V0zFMWzPOcs6eXICJANa9uXp84vU-IV2HdCxACBz_z_56Q5t3VT9GNPNwMn1O-a_7YdQua-yy-r0_jttyhMEd7Q1TMVHAQ5N/s1600/ansidem.png" /></a></div>
<br />
<br />
<b>Update: </b>It's also on GitHub here : <a href="https://github.com/davidsinfield/ansilib" target="_blank">https://github.com/davidsinfield/ansilib</a><br />
<br />
And here's the function and a bit of sample usage:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">#!/usr/bin/env python</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"># -*- coding: utf-8 -*-</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"># ansidemo.py</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"># </span><br />
<span style="font-family: "courier new" , "courier" , monospace;"># </span><br />
<span style="font-family: "courier new" , "courier" , monospace;"># This program is free software; you can redistribute it and/or modify</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"># it under the terms of the GNU General Public License as published by</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"># the Free Software Foundation; either version 2 of the License, or</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"># (at your option) any later version.</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"># https://www.gnu.org/licenses/gpl-3.0.en.html</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"># </span><br />
<span style="font-family: "courier new" , "courier" , monospace;"># This program is distributed in the hope that it will be useful,</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"># but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"># GNU General Public License for more details.</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"># </span><br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace;">dictForeBack={</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">'fore' : 3,</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">'back' : 4</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">}</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">dictColour={</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">'black' : 0,</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">'red' : 1,</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">'green' : 2, </span><br />
<span style="font-family: "courier new" , "courier" , monospace;">'yellow' : 3,</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">'blue' : 4,</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">'magenta' : 5,</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">'cyan' : 6,</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">'white' : 7</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">}</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">dictStyle={</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">'normal' : 0,</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">'bold': 1,</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">'italic' : 3,</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">'underline' :4,</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">'inverse': 7,</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">'strikethough' : 9</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">}</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#========================================================================</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#GetANSI(text,foreback,colour,style)</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#text - text to print</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#forecolour - [black|red|green|yellow|blue|magenta|cyan|white]</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#backcolour - [black|red|green|yellow|blue|magenta|cyan|white]</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#style - [normal|bold|italic|underline|inverse|strikethough]</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#Returns a string with ansi precursors to set foreground and background</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#colours and style. Set to normal after printing.</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#Out of range parameters throw a dictionary error</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#Example: set foreground to red</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#<span class="Apple-tab-span" style="white-space: pre;"> </span>print GetANSI('this is red text','red','none','none')</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#Example: set foreground bold red, background cyan</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#<span class="Apple-tab-span" style="white-space: pre;"> </span>print GetANSI('set properties','red','cyan','bold')</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#Update</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#<span class="Apple-tab-span" style="white-space: pre;"> </span>empty string in a parameter is now the same as none.</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#<span class="Apple-tab-span" style="white-space: pre;"> </span>Example:</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#<span class="Apple-tab-span" style="white-space: pre;"> </span>GetANSI('text','','','bold')</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">#=========================================================================</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">def GetANSI(text,forecolour,backcolour,style):</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>pre="\033["</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>post="m"</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>tonormal=pre+'0m'</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>retval=""</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>if forecolour != 'none' and forecolour != '':</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>retval=retval+pre+str(dictForeBack['fore'])+str(dictColour[forecolour])+post</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>if backcolour != 'none' and backcolour != '':</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>retval=retval+pre+str(dictForeBack['back'])+str(dictColour[backcolour])+post</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>if style != 'none' and style != '':</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>retval=retval+pre+str(dictStyle[style])+post</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>return (retval+text+tonormal)</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace;">def main():<span class="Apple-tab-span" style="white-space: pre;"> </span></span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>print GetANSI('red text','red','none','none')</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>print GetANSI('red text cyan bg bold','red','cyan','bold')</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>print GetANSI('inverse of above','red','cyan','inverse')</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>print GetANSI('black on white','none','none','inverse')</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>print GetANSI('black on green','green','none','inverse')</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>print GetANSI('non explicit green','green','','')</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>print 'normal text'</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>return 0</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace;">if __name__ == '__main__':</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>main()</span><br />
<div>
<br /></div>
David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0tag:blogger.com,1999:blog-1214203760278230963.post-17219368635909274712016-07-08T04:07:00.000-07:002016-07-08T04:07:20.708-07:00Forest Tweetup 26-28 August<span style="font-size: large;">So here's the thing...</span><br />
<span style="font-size: large;"><br /></span>
I posted on twitter some pictures of the events we put on in the woods. We have a bit of a laugh throwing knives, tomahawks and setting fire to things. A couple of people expressed an interest and so I thought I'd throw out an invitation. A sort of open woods weekend.<br />
<br />
The weekend will be wild camping; We do have a composting toilet but otherwise it's a forest. No electricity, no running water. It's near Arundel in West Sussex. I'll give exact location nearer the time.<br />
<br />
I'm thinking:<br />
<br />
<br />
<ul>
<li>Some game prep. I can order a skin on deer to be butchered or get my mate to shoot us some rabbits.</li>
<li>Loads of projectile weapons. Catapults, spears, bows and arrows etc</li>
<li>Fire challenge. One match. One cotton wool ball. Boil a litre of water.</li>
<li>Knife and axe skills. We'll make a spoon or a spatula. We might even take down a small tree for materials.</li>
<li>Make a bow and arrow. We'll do the nepalese/butanese style bamboo bows. These cab be turned out in under a day but will chuck an arrow 100 paces</li>
<li>Campfire cookery. </li>
<li>A few drinks around the fire in the evening</li>
</ul>
<div>
For accommodation we have 5 big wing tarps. 3 of them have slept 9 people. You can get more in if you want to get cosy. Or you can bring a tent. I'll be in my hammock.</div>
<div>
<br /></div>
<div>
All you'll need is some sleep kit, plate, spoon, fork and cup.</div>
<div>
<br /></div>
<div>
Bear in mind everything you bring will have to be carried in and out. It's about 3/4 of a mile down a muddy path.</div>
<div>
<br /></div>
<div>
We usually cater, you eat very well and can get involved with the preparation or chill and be waited on. Menu is usually full cooked breakfast, buffet lunch, proper dinner. The kettle is always on.</div>
<div>
<br /></div>
<div>
I've been thinking hard how to finance it. Getting in a deer costs about £100. The materials for the bowmaking is about £30. I don't intend to charge for my time because I'm planning on having fun. I will be bringing in a couple of the other Forest Knights team and it would be nice to bung them some petrol money and a drink. The fact is that a weekend would normally cost you a couple of hundred quid but for this one I'm interested in having a laugh and meeting with a few like minded people. The way I want to do it is see how many people are interested and sort it out from there. Some might not want to do Friday night...I know some people do proper jobs so we can do something proportionate. </div>
<div>
<br /></div>
<div>
So far I know there are two people interested.</div>
<div>
<br /></div>
<div>
Discuss...</div>
<div>
<br /></div>
<div>
Some pictures. There might be more if I can find where I put them...</div>
<div>
(the royals are to show the type of himalayan bows we make)</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0yJabPYHohv7MV3_WQ81pbRh_0naPYNeGFhG4Uf8_L4FDg6F5kcsk-lS_p3IzdE8c9qlAfmZ1jWosiQl6Ynekvgl2ot0boLW0S5E45PsGagC-tbLcZqY2GEQNUqNVB9SF_E6BXZS8W6LB/s1600/2016-06-19+13.13.35.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0yJabPYHohv7MV3_WQ81pbRh_0naPYNeGFhG4Uf8_L4FDg6F5kcsk-lS_p3IzdE8c9qlAfmZ1jWosiQl6Ynekvgl2ot0boLW0S5E45PsGagC-tbLcZqY2GEQNUqNVB9SF_E6BXZS8W6LB/s320/2016-06-19+13.13.35.jpg" width="180" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoZt807jL4Xm5U0AdCbXqNGLiUimpB6uHKw6BCfOeV3dct_pj33sXzeMnRaqHwOhu6n_ESSh1tvDB7s0ZwDWaRUiHtq6C4SLd4OSDOoIA7huvcWpyyW4csu1b5uynkHgOopN6V483UWRCQ/s1600/2016-06-17+12.42.39.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoZt807jL4Xm5U0AdCbXqNGLiUimpB6uHKw6BCfOeV3dct_pj33sXzeMnRaqHwOhu6n_ESSh1tvDB7s0ZwDWaRUiHtq6C4SLd4OSDOoIA7huvcWpyyW4csu1b5uynkHgOopN6V483UWRCQ/s320/2016-06-17+12.42.39.jpg" width="180" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBzkqWlor4aAz9QCJb5F3tSIzXfNIiQTdn4tbDmQS9_DDqkh5Rjx-P1ciS40Og0r-SKAnBiTVDqEDUO4Es9fWuvTUkqjOOl-k3PtT_qQSK_Ki4IKg2P9AazdZEI5fL9Wl9vpvIn_sNusWN/s1600/2016-06-17+13.29.00.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBzkqWlor4aAz9QCJb5F3tSIzXfNIiQTdn4tbDmQS9_DDqkh5Rjx-P1ciS40Og0r-SKAnBiTVDqEDUO4Es9fWuvTUkqjOOl-k3PtT_qQSK_Ki4IKg2P9AazdZEI5fL9Wl9vpvIn_sNusWN/s320/2016-06-17+13.29.00.jpg" width="180" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsgsn8u-z7g5cnOBxhGD34S-2N-PhrYK4PtsrE8cNjUUD-_v1x28MFq43-kUD8J8I4dKEDKgHvaUiIGk8sCdptkdRPi4QO4GhFtHugqe1_2q9WbnVk8-mR1m-oC_0c5Wk0tF-xkU4689Q5/s1600/2016-06-17+14.05.08.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsgsn8u-z7g5cnOBxhGD34S-2N-PhrYK4PtsrE8cNjUUD-_v1x28MFq43-kUD8J8I4dKEDKgHvaUiIGk8sCdptkdRPi4QO4GhFtHugqe1_2q9WbnVk8-mR1m-oC_0c5Wk0tF-xkU4689Q5/s320/2016-06-17+14.05.08.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXzXEMnBSXj44uttAyjvaZvmSPDdi9iXrOPi4h0BYsEgWo_0I_bPeku39eeYGeHHrjSg5wXAv9eQczduPPGYpxHL5E63MVrPn5JVAQdCiTprFVW6A6wlL-JevbMbyGhUvTZxseWf2-Y4mW/s1600/bamboobow.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="254" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXzXEMnBSXj44uttAyjvaZvmSPDdi9iXrOPi4h0BYsEgWo_0I_bPeku39eeYGeHHrjSg5wXAv9eQczduPPGYpxHL5E63MVrPn5JVAQdCiTprFVW6A6wlL-JevbMbyGhUvTZxseWf2-Y4mW/s320/bamboobow.jpg" width="320" /></a></div>
<div>
<br /></div>
<br />
<br />
<br />David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0tag:blogger.com,1999:blog-1214203760278230963.post-37944251281162933982016-03-23T21:44:00.002-07:002016-03-23T21:44:19.657-07:00Alison Sinfield 15-10-57 to 1-3-2016Any of you that know Alison well know that things haven't always been plain sailing between us.<br />
<br />
But I have to tell you that over the last couple of years I could not have been more proud of her.<br />
<br />
She had her setbacks and we cried together a bit and then she went back to making her plans.<br />
<br />
And talking of plans, most of what has happened here today was planned by Alison a couple of months ago.<br />
<br />
I'll tell you why...because whenever we discussed her funeral, I said I'd put her on a skip, or chuck her off the channel ferry, or feed her to the cats.<br />
<br />
So she thought she'd better make sure she got a proper send-off. I hope she approves as she looks down at us as she takes a break from hoovering her little corner of heaven.<br />
<br />
I'll miss you Alison. Goodbye.David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0tag:blogger.com,1999:blog-1214203760278230963.post-60665441769273593072015-05-23T03:13:00.001-07:002015-05-23T03:23:02.072-07:00Microsoft Dynamics CRM Mindmap (WIP)I'm working on a mindmap to help a customer understand what is inside MS Dynamics CRM 2013. It is coming from multiple sources and the aim is that it becomes a usable reference for describing the possibilities of the product.<br />
<br />
It might help you. Please feel free to share and adapt but I'd ask that the originator and disclaimer attributes remain intact. If you want to feed anything back to me or share your edits, that would be nice.<br />
<br />
Here's jpg preview. I'll try to remember to update it as I change the map.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://dl.dropboxusercontent.com/u/23753334/Dynamics%20CRM2.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://dl.dropboxusercontent.com/u/23753334/Dynamics%20CRM2.jpeg" width="138" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The .mm file is here. <a href="https://dl.dropboxusercontent.com/u/23753334/DynamicsCRM.mm" target="_blank">Mindmap file</a>.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
You will need <a href="http://freemind.sourceforge.net/wiki/index.php/Download" target="_blank">freemind</a>. It's available for windows and linux and there's a viewer for Android. Apple muffins, you are on your own.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
It is very much a work in progress. The sales and marketing nodes a pretty well complete but there is loads more to come. Bookmark it and come back. I'll be updating it as I get time.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0tag:blogger.com,1999:blog-1214203760278230963.post-36944280959083071022015-05-19T02:02:00.002-07:002015-05-19T06:01:05.391-07:00Readable jquery<div>
<br /></div>
<div>
<br /></div>
<div>
I'm doing some JQuery stuff and for a person of simple tastes the readability of nested function() definitions all written on one line is very poor. Debugging is a pain in the arse. So here's some modest proposals for maintanable code:</div>
<div>
<br /></div>
<div>
<ul>
<li>Assign callback functions to variables</li>
<li>Use the variable in place of the function (){...}</li>
<li>Format them as you would if it was a function with all the relevant curly braces and indents</li>
</ul>
<div>
This adds a few characters of 'weight' to the page, but these can be minified away for production code. </div>
</div>
<div>
<br /></div>
<div>
Here's how I would do it:</div>
<div>
<br /></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><html></span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><head></span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script></span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><script></span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;">var showmess="Show";</span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;">var hidemess="Hide";</span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;">var show=function()</span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;">{</span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>$('p').toggle();</span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>if($('#showlink').text()==showmess)</span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>{</span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>$('#showlink').text(hidemess);</span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>}</span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>else </span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>{</span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>$('#showlink').text(showmess);</span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>}<span class="Apple-tab-span" style="white-space: pre;"> </span></span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;">}</span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;">$(document).ready(</span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;">function()</span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;">{</span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>$('p').hide();</span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>$('#showlink').text(showmess);</span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><span class="Apple-tab-span" style="white-space: pre;"> </span>$('a').click(show);</span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;">})</span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"></script></span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"></head></span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><body></span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><h1>Hello</h1></span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><p>You can't see this</p></span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;">But you can see this.</span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><a href="#" id="showlink">&nbsp;</a></span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"></body></span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"></html></span></div>
<div>
<span style="color: blue; font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Times, Times New Roman, serif;">As you can see I'm a bit of a traditionalist with my curly braces. My training manual when I started c programming was <a href="http://www.iups.org/media/meeting_minutes/C.pdf" target="_blank">K&R C Programming Language</a> and I've never really got out of the habit of matching brace indents.</span></div>
David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0tag:blogger.com,1999:blog-1214203760278230963.post-65121195753311124042015-03-02T03:26:00.000-08:002015-03-02T03:26:17.147-08:00Is it time to dump Left and Right in discussing poilitics?The terms left and right are bandied about and arguments still rage about Hitler being extreme right or extreme left. Pol Pot, extreme left or extreme right? Mao? Tsian Kai Check? Ciaucescu<br />
<br />
What if it doesn't matter?<br />
<br />
What if it is not a continuum with left at one end and right at the other? A one dimensional view.<br />
<br />
What if it is more like a circle with extreme left and extreme right pretty well aligned in their dogmatism and desire for control? The two dimensional view.<br />
<br />
So what is the on the other end of the diameter of the circle from extreme left and right? A lack of alignment. Apoliticism. The ultimate freedom from dogma and tribal politics. Once upon a time the distinction could be drawn because the left want state control of commerce. What if the right do to but by a different means. By regulation rather than ownership?<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.blogger.com/blogger.g?blogID=1214203760278230963" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEWkwEhpQlpQmnSbpfnjBMMsLOdSAWwXxYCq9Py5wDiDdYOoZLG1HhVE3Fhiyq5zmNKjK1AaWF6BfCP0Ew7YJzhIXvRIC1VGgxAFdwsNUk3JfUqHhSoNLpygIFJMUkZPCfw9C2GsQN_vYL/s1600/leftright.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEWkwEhpQlpQmnSbpfnjBMMsLOdSAWwXxYCq9Py5wDiDdYOoZLG1HhVE3Fhiyq5zmNKjK1AaWF6BfCP0Ew7YJzhIXvRIC1VGgxAFdwsNUk3JfUqHhSoNLpygIFJMUkZPCfw9C2GsQN_vYL/s1600/leftright.PNG" height="272" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Just saying.</div>
<br />
<br />David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0tag:blogger.com,1999:blog-1214203760278230963.post-50274437483897025772015-01-16T00:46:00.002-08:002015-01-16T00:55:47.972-08:00Learning to pick your fights<span style="font-size: large;">If there is one thing I have learned in life...</span><br />
<span style="font-size: large;"><br /></span>
...it's to learn to pick your fights. I never go into an argument I know I'm going to lose. Concede early and concede graciously.<br />
<br />
I used to play the Japanese game of Go a fair bit. When you start playing you want to play to a conclusion and until there are no moves left. Soon you learn that this is not in the spirit of the game. At some point you will realise that you are playing undefendable stones that have no relevance, This shows no respect for yourself or your opponent. the The mark of a good player is to learn to recognise the outcome early and bow out graciously. Also, to give you opponent the opportunity to do the same, without condescension or malice.<br />
<br />
Player 1:"I think the game has gone stale but I think you might take it by a few stones"<br />
<br />
to which the correct response is something like<br />
<br />
Player 2:"No, you would definitely have won the battle in this corner, my defeat was inevitable by 10 stones."<br />
<br />
Two experienced players will know that there is only a five stone advantage to Player 1 but both exit the game with elegance and neither looses face.<br />
<br />
So, play for the joy of playing. With experience you will recognise when to concede and when to procede. And if your opponent is more experienced than you, listen carefully to what he says, he might be saving you face and time. And when the joy goes out of the game, end it. There will be other games.<br />
<br />
<span style="background-color: white;"><i>Go appeals to the philosopher in any man and Chess to the merchant in him. -</i> Trevannion (Shibumi)</span>David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0tag:blogger.com,1999:blog-1214203760278230963.post-37978640536606380312015-01-11T04:19:00.003-08:002015-01-11T04:19:52.301-08:00Put some fun into politics<span style="font-size: x-large;">Politics isn't much fun is it...</span><br />
<span style="font-size: large;"><br /></span>
<span style="font-size: x-small;">Oh I know we can have a bit of a giggle at the politicians who aren't the sharpest knives in the block and every now and again a belly laugh at on who does something outrageous but there really isn't enough fun being had. We need less dour gloompeddling and and more chaos. I like chaos. Chaos is a state of possibilities. The road to order is just a restriction of those possibilities.</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">We are in a 4 1/2 month drag to the next general election. It's really difficult to get engaged. There's a new series of I'm a Celebrities Failing in Uninteresting Ways starting every week. My prediction is that just over two thirds of the people who can vote will. No one will have a clear majority so some deals will be done in order to form a government. The government will not represent the majority of the populace. And all the promises in the manifestos will be forgotten in the first 3 months when the clear intent will be seen too late. They will dick around for 5 years tinkering here and there and things will be a bit better or a bit worse, depending on how you choose to measure it, than when they started. Then we'll do the same thing all over again and we'll wonder why nothing changes.</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">It's not all doom and gloom though. I think it can be fixed.</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">Do away with general elections and introduce some random churn instead.</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">Every week the names of three MPs will be selected at random. We could use something like the lottery machines. </span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">They will be put on two weeks notice. </span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">One seat will be decided by the traditional democratic method of a by election as a nod to democracy.</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">Another will be decided games designed to see who is best at strategy and thinking. I suggest a GCSE maths paper, chess, Brain of Britain, go, World of Warcraft and It's a Knockout. The overall winner gets the seat. </span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">The last seat would be decided by a random selection from the constituency. Drawing a salary and not turning up would be an option, just as it is for MPs now.</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">That should eventually give us a good churn rate and a good mix of skills. </span><span style="font-size: x-small;">The turnover would be the equivalent of new government every 4 years.</span><br />
<br />
<span style="font-size: x-small;">Deciding who gets to talk and for how long should be on merit. In order to draw their salary each month MPs would be required to submit forecasts of a bunch of indicators 3 months ahead. Off hand I suggest GDP, borrowing requirement, cost of a trolley of shopping, house price index, Number 10 hospitality bill, A&E average waiting times. To introduce a bit of chaos they would also have lottery tickets and a win would count towards their score. Depending on the aggregate score MPs would be given allocated a time to speak and introduce suggestions for new legislation. The person who did worse would have to wear a pink ballerina outfit for the month and the other MPs would be allowed to refer to him as the honourable poohead. The person who had statistically speaking tracked the trends best over a year would be made prime minister at the end of the year and would be able to wear casual clothes on Tuesdays and Fridays. He would select his cabinet from the 100 next top scorers using the time honoured method of eeny meeny miney mo on parliament green.</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">House of commons debating could be replaced with the rules of something like Just a Minute. An MP is given a set time, depending on their predictive skill in the areas above to speak on a current affairs topic and in that time everyone listens, in silence. Interruptions not in the rules of hesitation, deviation and repetition would be penalised by having to sit in silence in a dunces cap for 30 minutes. A successful challenge would mean that you got to talk on the same topic. Until everyone got fed up and no one wanted to say anything else. Then there would be a division but instead of ayes and noes each MP would post on facebook what he thought it was about and the one with the most likes would be taken away by the civil servants and drafted into a law.</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">There would also be set phrases that had to be used in the correct context. These would be changed weekly by randomly selecting phrases posted on social media. I've just done a random scan through a couple of pages my twitter feed (really) here's some we might expect to see:</span><br />
<span style="background-color: #f5f8fa; color: #292f33; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px; white-space: pre-wrap;"><br /></span>
<span style="background-color: #f5f8fa; line-height: 18px; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif; font-size: x-small;">rabid, non-objective, sensationalist</span></span><br />
<span style="background-color: #f5f8fa; line-height: 18px; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif; font-size: x-small;">self-serving buffoons</span></span><br />
<span style="background-color: white; line-height: 18px; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif; font-size: x-small;">just blocked the fat tub of lard</span></span><br />
<span style="background-color: white; line-height: 18px; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif; font-size: x-small;">voluntary deradicalisation programme</span></span><br />
<span style="background-color: white; line-height: 18px; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif; font-size: x-small;"><br /></span></span>
<span style="background-color: white; line-height: 18px; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif; font-size: x-small;">Failure to work in the required phrase means you have to get the next round in in the bar.</span></span><br />
<span style="background-color: #f5f8fa; color: #292f33; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 18px; white-space: pre-wrap;"><br /></span>
<span style="font-size: x-small;">There would still have to be a speaker to keep order. I suggest the job is allocated a bit like jury service and instead of order papers to waive the speaker has a supersoaker filled with ink for minor infractions and taser which he can use if things get really out if hand.</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">The house of lords would be abolished completely. New laws would be posted on twitter and hashtag campaigns would decide which ones were enacted. For every law passed twitter would be allowed to revoke one. Bonus revocations would be awarded every time an MP was caught with their hands in the till.</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;">See, all it takes are some well established gameshow formats, social media and we could put everything right. </span><span style="font-size: x-small;">I'd pay my taxes to watch that.</span><br />
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;"><br /></span>
<span style="font-size: x-small;"><br /></span>
<br />
<br />
<span style="font-size: large;"><br /></span>
<span style="font-size: large;"><br /></span>
<span style="font-size: large;"><br /></span>
<span style="font-size: large;"><br /></span>David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0tag:blogger.com,1999:blog-1214203760278230963.post-33831135306352433342015-01-08T03:11:00.002-08:002015-01-08T03:12:38.594-08:00Grim Day Yesterday<div dir="ltr">
<span style="font-size: large;">So here's the thing...</span></div>
<div dir="ltr">
<span style="font-size: large;"></span> </div>
<div dir="ltr">
Yesterday a whole bunch of people were killed in Paris because of some ink marks on bits of paper. The killers feel justified and righteous because there these ink marks made fun of their beliefs.</div>
<div dir="ltr">
</div>
<div dir="ltr">
It seems there is a bunch of people who are happy to live in old testament times. This is the state that IS, Taliban and Boko Haram are promoting on the African and Asian continents and as brutal as they are the time when the European and North American continents could act as world police dealing out justice abroad is well and truly over as witnessed by the results, or lack of them in the catalogue of recent African and Asian exploits. Imposing our values on other countries is not going to work any more unless we are prepared to admit our aim is to wrest sovereignty from them and become an imperial powers again. That time is past. The crusades were 700 years ago and we live in a different world now.</div>
<div dir="ltr">
</div>
<div dir="ltr">
So what is to be done if they try to export old testament beliefs to more civilised countries? Go into full Christian patriot mode and start a holy war? That is what some keyboard warriors would like to see I am sure. My opinion is that we should unleash the full force of the justice system on them. Becoming as brutalised as they are can never be the answer.</div>
<div dir="ltr">
</div>
<div dir="ltr">
I have no idea how many 'terrorists' the UK is harbouring. I have seen numbers that say 700. Given that more than half of these are gobby kids who have no intention to take up arms we are left with a few hundred in a population of 64 million. </div>
<div dir="ltr">
</div>
<div dir="ltr">
I don't feel terrorised.</div>
<div dir="ltr">
</div>
<div dir="ltr">
So let's take a deep breath, stand back and look at ourselves. Try and stay civilised people. And think for yourselves. Being carried along with the mob is not your only option.</div>
<div dir="ltr">
</div>
David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0tag:blogger.com,1999:blog-1214203760278230963.post-82417020227364211552014-07-06T03:58:00.002-07:002014-07-06T04:13:59.910-07:00Climate ChaosThe arguments about what the right CO2 concentration and global temperature is are getting a bit dull. And to be honest I have spent far too much time on blogs and reading scientific papers on what looks to me like an entirely nugatory exercise. And I hate to see wasted effort. We know that even with supercomputers and some of the best meteorological minds in the country the weather repeatedly fails to listen to what the Met office tells it to do. And despite rising CO2 in the atmosphere the warming is stubbornly failing to materialise. There are explanations like at a certain concentration all the IR that is s going to be absorbed has been absorbed. And there are other negative feebacks in place that kick in when something goes wrong. Another way of saying that that should appeal to the Gaia-ists is that Gaia heals herself. Surprisingly though they all seem to be in the interventionist camp. I might blog about why I think that is another time.<br />
<br />
Suppose the climate is a set of linked chaotic but bounded systems and the past does not accurately predict the future. The climate record and the statistical models that are used to analyse the data for trends are meaningless. In a truly chaotic system any possible outcome has an equal chance of coming to pass. They must be somewhat bounded however because -10 in July in Surrey has to be an edge case. It is not however impossible. I remember vaguely a science fiction book I read many years ago. It might have been Players of Null A where one of the protagonists suffocated when the outside chance of all the O2 molecules in the air, which are constantly in random movement, moved in the same direction, to the other side of the room.<br />
<br />
Most people don't like chaos. It is threatening. So we try to make guesses. Mostly based on prior observation. Some systems are predictable, sunrise and sunset, the movement of the planets and stars for instance for these our guesses are good. Sometimes we just plain get lucky.<br />
<br />
Thousands (millions) of man hours and pretty well bottomless funding has come up with a conclusion that there is a 95% certainty there will be 0.3 to 6.4C of global warming in the next 86 years. For all the work that has gone in to deriving these numbers the error bars are massive compared to the observed temperature anomalies.<br />
<br />
Do you think it is not a chaotic system? Do you think the outcomes are predictable? Want to prove me wrong?<br />
<br />
Here is a challenge for those who presume to tell me what the global temperature anomaly is going to be in about a 100 years to an accuracy of 6C and with a 95% certainty. Take a single land based surface thermometer, one with a good and reliable record, anywhere in the UK or CONUS, I'll let you choose. <b>Look at the raw data record or any adjusted data you want to use and tell me what the temperature on that thermometer will be tomorrow and each day at any given time for the next two weeks to within +/-0.5C</b>. That's a pretty big target to hit from a short distance. I've eliminated the necessity gridding and infilling because that is a fairly contentious issue. We are talking about a single location, although you can use any statistical jiggery pokery that you think it helps your data accuracy. You can use any other data inputs you want including GCMs and satellite data, solar activity. You have a simple series of ~200 years worth of data points. You can manipulate it however you fancy. Just give me 14 temperatures. I don't even want to see your workings. It should be easy.<br />
<br />
Let's make it interesting. For the first person that gives me 14 numbers only, I'll buy you a pint of Timothy Taylors Landlord for every day you hit the mark within the given range.<br />
<br />
And yes, I know the difference between weather and climate. Climate is weather averaged over time and area. But I want keep things easy by specifying over small area and a very short time. That keeps the variables down, right?<br />
<br />David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com1tag:blogger.com,1999:blog-1214203760278230963.post-81432167105454814962014-06-14T02:20:00.002-07:002014-06-14T02:29:05.331-07:00On Labels, Parties and Isms<h2>
</h2>
<span style="font-size: large;"><b>People like labels</b></span> it gathers allows groups of similar beliefs to group together and it allows other groups who have different beliefs to focus their hate easier. So we have isms that tell us what we are and how we should think if we want to stay in the club. Convienient. More recently we have gone into acronyms which amuse me a lot. I have to search on what they mean because there are so many of them and they are so specific we are almost at the point of being able to have one each*. I've never got on with the idea of this kind of tribalism. After 2 visits to the Cubs 50 years ago it was suggested that it was not for me. I guess I don't play well with others.<br />
<br />
This puts me in a good position to observe. Dogmatism is hilarious. You should all try standing outside looking in one day. Shed the beliefs imposed on you by others and think. It is very liberating. It might mean that you can't call on higher authority to support your beliefs and you have to defend them yourself, but it will do you good.<br />
<br />
I'm not trying to say that coming together for a common cause is not a good thing. I belong to the Knife Axe and Tomahawk Throwing Association. And the Surrey and Sussex Coppice Group. As soon as either of them tell me what to think I will be an ex-member.<br />
<br />
I'm not sure what label you would like to stick on me...<span style="font-size: small;"> I choose not to label myself.</span><br />
<span style="font-size: small;"><br /></span>Maybe I do have an ism - individualism.<br />
<br />
<br />
<br />
<hr />
*We only need 7 letters to service all of the 7,000,000,000 or so people on the planet. Let's call it 10 because working in X, Z and J into your acronym is a bit tricky. Get in quick and register yours here. I'm sorry, SPAZ, MONG and CUNT are already taken.David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0tag:blogger.com,1999:blog-1214203760278230963.post-8285737305051990572014-03-23T09:47:00.003-07:002014-03-23T09:47:27.844-07:00Python - the good the bad and the fugly<h2>
Background</h2>
I'm a fairly seasoned programmer. I cut my teeth on Algol 69, Oric Basic, Sinclair Basic, BBC Basic, Hand assembled 6502 code, MASM, QuickBasic C, C++ and Pascal so I think I know a good programming language when I see one.<br />
<br />
Microsoft's .net languages are fairly well thought through but are far more complex than they need to be. I've reviewed a lot of code and had WTF moments where the programmer seems to have been more concerned with obfuscation of his intent than actually making something work.<br />
<br />
And now I have come to Python. I've looked at it a couple of times as a quick and dirty scripting language to get things done. My initial reaction was that it was a total balls-up of a language but now I have my raspberry pi looking at it a little closer and I'm starting to find some redeeming features.<br />
<br />
<h2>
Libraries</h2>
First plus point is the libraries. They are mainly stable and and pretty useful and seem to work across platforms. They are pretty comprehensive and you can get things done with very little code. This weekend I wanted to get a website into a string variable so I could pick it apart. The following three lines did the trick:<br />
<br />
<span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: x-small;">#get a web page in Python</span><br />
<span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: x-small;">import urllib2</span><br />
<span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: x-small;">response=urllib2.urlopen(webaddress)</span><br />
<span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: x-small;">html=response.read()</span><br />
<br />
Easy-peasy <b>but</b> urlopen? What happened to verb-noun naming? I had a cursory glance at some online documentation and and automatically translated it to openurl in my head. If I'd have been the code reviewer I'd have sent that back.<br />
<br />
The pygame library for android does on implement mixer to play sound files and the mixer in the android library doesn't want to work. I need to try some tinkering which may well involve digging in to the library source.<br />
<br />
I have only just got started with the TKinter GUI library, I've managed to put a label and a button on a screen and trap the button event. I feel like I'd achieved something getting that far. I'm reserving judgement.<br />
<br />
<h2>
IDEs</h2>
The IDEs are not bad. On ubuntu I am using Stani's Python Editor (SPE) which allows running a debugging in in the IDE so it's a bit more than just an editor. I'd quite like to use eclipse but it is overweight and a bit picky about whether it wants to run the Python add-in or not on my setup.<br />
<br />
I haven't got around to trying Stani's on Windows yet but most of what I do with Python is on Linux. I have IDLE, which I don't like as much.<br />
<br />
On my Samsung Note 2 I have QPython which has an editor and interpretor. Coding on it is not bad using my little bluetooth keyboard.<br />
<h2>
Pretty code</h2>
<div>
Python forces you to use indents to mark blocks. On the upside this means that your code has to look nice. On the other hand, for me, it is less than intuitive. I have worked with either text block markers or curly braces. It's going to take me a little while to get used to indents.</div>
<div>
<br /></div>
<div>
The other side effect, whether intended or not is, is that, because indenting is a pain it does make you more inclined to break up your code.</div>
<div>
<br /></div>
<div>
And there are rules about mixing spaces and tabs. As you can't see them on the screen, tracking them down is a bit of a mission.</div>
<h2>
Lightweight</h2>
<div>
The interpreter is very small. Good when you are looking at the raspberry pi or a phone. And, while some libraries come as standard, most can be added as needed. </div>
<h2>
Target Audience</h2>
<div>
If the target audience is script kiddies who can quickly knock out a few lines to get things done, it's fine. It's a bit more intuitive than Bash or Powershell I suppose.</div>
<div>
<br /></div>
<div>
If it is for learners I'd have hoped for better support. The base documentation is pretty well limited to documenting the primitives. A bit like someone learning C a copy of Kernighan and Ritchie. It's fine if you have a background in coding but it is a bit daunting. Luckily there is a community out there to working stuff out.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0tag:blogger.com,1999:blog-1214203760278230963.post-11319986849823203492014-02-16T02:00:00.001-08:002014-02-16T02:00:15.496-08:00WeatherHere's a thing...<br />
<br />
Julia Slingo from the Met Office says global warming will make extreme weather more likely in the future.<br />
<br />
David Cameron says money is no object.<br />
<br />
My suggestion is the government give everybody whose house is uninhabitable a million and a half quid (or whatever it costs to get an equivalent property and furnish it) or so to move to higher ground. There are plenty of brownfield sites that can be developed. I see them as I travel up the East Cost Mainline.<br />
<br />
Generate the money by cutting the budget for the EA and the Met Office.<br />
<br />
Surely, long-term that is a more effective and cheaper solution than shoring-up.<br />
<br />
Anyone who doesn't want to move can stay where they are. They still get the cash but they need to use it to make provision to bale themselves out when it floods.<br />
<br />
The problem is, I don't believe either Julia Slingo or David Cameron. And deep down neither do they.<br />
<br />David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0tag:blogger.com,1999:blog-1214203760278230963.post-26981031549758256352014-02-01T11:20:00.001-08:002014-02-01T11:22:00.065-08:00Good and bad, strong and weak, right and wrong.I had an interesting discussion today. It started here:<br />
<br />
<a href="https://twitter.com/andybolton/status/429626053720813568">https://twitter.com/andybolton/status/429626053720813568</a><br />
<br />
It was an interesting debate. Unfortunately it did not end satisfactorily for either of us.<br />
<br />
I may not have being clear. 140 characters is a horrible format for discussing something serious. I do not blame victims. I have taken Surrey police to task several times for their 'lock it or lose it' type campaigns. I do believe that is blaming the victim.<br />
<br />
I don't think suggesting that the world can be a dangerous place too outrageous. Every day the facts bear this out.<br />
<br />
Knowing the dangers exist, I don't think suggesting you take measures to improve your safety is too outrageous.<br />
<br />
I don't think arguing one sex, age group, or any other demographic should not do whatever they can to keep themselves safe is too outrageous.<br />
<br />
Anyway, that aside, and I can agree to differ without ill feelings, it got me thinking about right and wrong, good and bad, strong and weak.<br />
<br />
Good and bad, like all extremes on a continuum are tricky things to argue with. It's the land of differential calculus which words are hopeless at dealing with. Good people can do bad things and bad people can do good things. For the sake of convenience let's take a concrete example and that doing violence to someone weaker than you is inherently bad. Can we all agree on that? It avoids any judgement and noble cause stuff that is subjective.<br />
<br />
So we have a definition of bad. Let's say that good is not doing violence to those weaker than you.<br />
<br />
No diktat or law will stop the strong preying on the weak. 'Twas ever thus. If threats of retribution worked we would all live in some kind of utopia where no one was nasty to anyone else. And perhaps religious belief of a vengeful god would have a use. Now here's the thing: How do good people stop bad people being bad?<br />
<br />
{scroll down}<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
{and down}<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
{and down}<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Become stronger than the bad are and fight back? But now you have become bad by the definition I set out. Which you agreed with, didn't you?<br />
<br />
Funny old world ain't it?<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0tag:blogger.com,1999:blog-1214203760278230963.post-56871538450046043072014-01-16T03:17:00.002-08:002014-01-16T04:07:37.658-08:00Raspberry Pi - Part 1<h2>
PiStories Part 1</h2>
<h3>
Getting up and running</h3>
I finally succumbed and bought a raspberry pi. I went for the Maplin kit <a href="http://www.maplin.co.uk/p/raspberry-pi-advanced-kit-n34qg" target="_blank">n34qg</a>. On unboxing I realised I had probably spent more than I had to in order to get started. The box contains:<br />
<br />
<ul>
<li>Pi Model B</li>
<li>Case</li>
<li>Wireless keyboard</li>
<li>Wifi dongle</li>
<li>4port powered USB hub</li>
</ul>
In fact in my odds and ends drawer I had a wifi dongle that I used to use on an old laptop and an 8 port hub which would work better because the footprint is pretty well the same size and the pi itself and it sits on top of it with a bit of bluetack.<br />
<br />
The keyboard's ok, if a bit small and I wouldn't want to use it for any serious typing. It will come into it's own if I ever get the Pi linked to the TV and want a remote.<br />
<br />
In terms of booting up everything worked pretty well out of the box.<br />
<br />
I am running on a Toshiba TV and a Benq monitor. The monitor only has a DVI port but a cheap adaptor from Amazon sorted that out.<br />
<br />
The sound didn't work on the TV immediately I had to add the line hdmi_drive=2 to the /boot/config.txt and things started working.<br />
<br />
The wifi utility is on the desktop and it connected to the home wifi no problem.<br />
<br />
During the setup I realised that the keyboard wasn't really working for me so I plugged in an old usb keyboard I had. It detected it straight away. I had to remove the wireless kb dongle because it was causing some strange behaviour with missed keys and key repeats.<br />
<br />
One of the first things you should do is fire up raspi-config. Before you use it the first time go to the last menu item and get the update. The other thing you might want to do set the gui to start automatically.<br />
<br />
<h3>
Remoting</h3>
I decided early on that the footprint of yet another keyboard on the desk was not practical so I decided that remote desktop was the way to go.<br />
<br />
The recommended remote server for Raspian is TightVNCServer. The command line to get it is<br />
<br />
sudo apt-get install tightvncserver<br />
<br />
and the instruction to start it is just<br />
<br />
tightvncserver<br />
<br />
The first time you use the password file is not present so it prompts you for a password for read/write access and an optional one for read access only.<br />
<br />
When it starts it tells you it has started but not which port it is listening on or the ip the pi is sitting on. The best way to find out the port is to have a look at the log file like this:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEU0EAiu3OmQU1hvuXoFsdRIK1sfWEJDBPTinDrnXNiW47DRtmJwZ57bsTNdEo9TjABhQBiOLRqnSZiHKsXy43Flov7C3zfUfiJ6LN5z5-7fvQ1FqyVrey_WGUfG42Q2AAaCv07EkzapSL/s1600/tightvnclog.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEU0EAiu3OmQU1hvuXoFsdRIK1sfWEJDBPTinDrnXNiW47DRtmJwZ57bsTNdEo9TjABhQBiOLRqnSZiHKsXy43Flov7C3zfUfiJ6LN5z5-7fvQ1FqyVrey_WGUfG42Q2AAaCv07EkzapSL/s1600/tightvnclog.PNG" height="196" width="640" /></a></div>
<br />
<br />
I haven't quite got to the bottom of the last two errors but it works ok anyway.<br />
<br />
So from that you can see that we are running on port 5901. You can try and connect using the machine name and DNS. That was not working for me so I needed to get the ip address of the Pi like this:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimbPt7dyFDM5WWc7kByR2mrpdDdaf9wxalm78crSitfVIDtYPpM5XH6fO9kYeZ8PGfe_c9zQVMoDd_VK9KnVBAz5Kkng2deUIfWJR07xL60S_vy3HGhSaEWuzTpIgePq-3AS5r1zTq4CDz/s1600/ifconfig.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimbPt7dyFDM5WWc7kByR2mrpdDdaf9wxalm78crSitfVIDtYPpM5XH6fO9kYeZ8PGfe_c9zQVMoDd_VK9KnVBAz5Kkng2deUIfWJR07xL60S_vy3HGhSaEWuzTpIgePq-3AS5r1zTq4CDz/s1600/ifconfig.PNG" height="338" width="640" /></a></div>
<br />
You will see from that that the wired Ethernet (eth0) is not connected. The bit we are interested in is the wlan0 connector and there you can see the internet address that has been assigned by the router. I have a long lease on the addresses so I usually don't bother setting up a fixed IP on the local network.<br />
<br />
Now I have all the information I need to connect. On the laptop I have to run windows for work. I am using the TightVNC client for windows. When you start it up it looks like this:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_hvrvnnXJ4pobexSo9mxx7CqEaYXGDa3Zqb8DQT2moIXrULMDLA3JJhAFZcm8usuhkAKNCh0ddCOMyPi9ALZnTu0w86wuhlCRzQimHP31V5iHrlH_l3nhxdFt_uNWCPzf9iUc6p-fgXW-/s1600/tightvnc1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_hvrvnnXJ4pobexSo9mxx7CqEaYXGDa3Zqb8DQT2moIXrULMDLA3JJhAFZcm8usuhkAKNCh0ddCOMyPi9ALZnTu0w86wuhlCRzQimHP31V5iHrlH_l3nhxdFt_uNWCPzf9iUc6p-fgXW-/s1600/tightvnc1.PNG" height="230" width="320" /></a></div>
<br />
Not the double colon before the port number...that had me guessing for a while.<br />
<br />
When you have a good connection you can enter your password:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3gDAdmTDEjVnIlkX5-POTAIL686bD9MQn7WWdfN9t3RXxg3NOtV0R4nguDNXBa7PaxgNWs-ndJAZlwkcwMt5_tGoN_ilMDq5Qhegne9EuBy2qEiu-V_DeUnPgund5Q2hYDLYPIhSXp186/s1600/tightvnc2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3gDAdmTDEjVnIlkX5-POTAIL686bD9MQn7WWdfN9t3RXxg3NOtV0R4nguDNXBa7PaxgNWs-ndJAZlwkcwMt5_tGoN_ilMDq5Qhegne9EuBy2qEiu-V_DeUnPgund5Q2hYDLYPIhSXp186/s1600/tightvnc2.PNG" /></a></div>
<br />
And bingo you should be connected.<br />
<br />
<h3>
...Coming soon</h3>
<ul>
<li>Connecting with the remmina remote desktop in Linux</li>
<li>ssh remoting</li>
<li>My appraisal of Python</li>
<li>tkinter GUI programming</li>
</ul>
David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0tag:blogger.com,1999:blog-1214203760278230963.post-32339020057129307702014-01-01T12:27:00.001-08:002014-01-02T04:05:58.995-08:00Akademic Shokalsky<div>
<br /></div>
<h2>
If you are going to argue you need facts</h2>
<div>
<span style="background-color: white; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;">There have been lots of words written about </span><a class="twitter-hashtag pretty-link js-nav" data-query-source="hashtag_click" dir="ltr" href="https://twitter.com/search?q=%23AkademikShokalskiy&src=hash" style="background-color: whitesmoke; color: #0084b4; font-family: "Helvetica Neue", Arial, sans-serif; font-size: 14.44px; line-height: 17.98px; text-decoration: none; white-space: pre-wrap;">Akademik Shokalskiy</a><span style="background-color: whitesmoke; color: #333333; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 14.44px; line-height: 17.98px; white-space: pre-wrap;"> </span><span style="background-color: white; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;">These are just facts. I present them to you without comment:</span><br />
<br />
<ul>
<li><span style="background-color: white; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;">There is a ship stranded in ice in the Antarctic. </span></li>
<li><span style="background-color: white; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;">It is mid summer in the southern hemisphere.. </span></li>
<li><span style="background-color: white; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;">The Guardian and the BBC are represented on board. </span></li>
<li><span style="background-color: white; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;">Along with eco-activists and scientists. </span></li>
<li><span style="background-color: white; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;">The mission was a scientific one.</span></li>
<li><span style="background-color: white; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;">They said so when they failed to raise public funds through croudsourcing site (they raised $1000)</span></li>
<li><span style="background-color: white; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;">There were two icebreakers trying to break through to them. </span></li>
<li><span style="background-color: white; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;">One of the icebreakers seems to be stuck itself and the other one is trying to free it but making only around 10 metres an hour. It has about 3 nm to cover</span></li>
<li><span style="background-color: white; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;">The BBC has reported that a third icebreaker is on its way. The USCG has failed to confirm this.</span></li>
<li><span style="background-color: white; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;">The chief scientist on board is claiming the ice that is trapping them is caused by the warming of the Antarctic. </span></li>
<li><span style="background-color: white; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;">The thermometers are showing a cooling trend.</span></li>
<li><span style="background-color: white; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;">The same chap runs a company that seeks to make money by carbon capture</span></li>
<li><span style="color: #333333; font-family: lucida grande, tahoma, verdana, arial, sans-serif; font-size: x-small;"><span style="line-height: 17px;">His family are stockholders</span></span></li>
<li><span style="background-color: white; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;">100 years ago the area they are in was navigable.</span></li>
<li><span style="background-color: white; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;">The BBC and guardian would like you to think it is a cruise ship, they are either not allowing or deleting comments that contradict their view of the world.</span></li>
</ul>
<span class="text_exposed_show" style="background-color: white; color: #333333; display: inline; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;"><br /></span></div>
<div>
<span class="text_exposed_show" style="background-color: white; color: #333333; display: inline; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;">I am not a scientist. But I hope I </span><span style="background-color: white; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;">can think critically and I know where the facts are leading me. </span></div>
<div>
<span style="background-color: white; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;"><br /></span></div>
<div>
<span style="background-color: white; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;">You can refute the facts above present new facts. I have evidence to back all of these. If you want to join the discussion make sure you bring some evidence to the party. </span></div>
<div>
<span class="text_exposed_show" style="background-color: white; color: #333333; display: inline; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;"><br /></span></div>
<span class="text_exposed_show" style="background-color: white; color: #333333; display: inline; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 17px;">The truth will come out when someone has to pay for it all. The finger pointing has started already. Don't hold your breath though maritime insurance claims can go on 20 years or more.</span><br />
<span style="color: #333333; font-family: Tahoma;"></span><br />
<h4>
Update Noon 2nd January</h4>
<ul>
<li>The 52 passengers have been airlifted by Chinese Helicopter to Australian icebreaker.</li>
<li>The crew remains on board. </li>
</ul>
David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com1tag:blogger.com,1999:blog-1214203760278230963.post-5119650919928842152012-01-24T07:37:00.000-08:002012-01-24T07:38:12.652-08:00Wacom Bamboo Fun Pen and Touch CTH-470/S<br />
<span class="Apple-style-span" style="font-size: large;"><b>Intro
</b></span><br />
I've been looking for a decent pen and tablet for a long time but kept putting it off as injustifiable. Well I've been doing some graphics in GIMP and decided that a pressure sensitive input device would be a good idea.<br />
<br />
Following the review here in <a "="" "http:="" 01="" 19="" 2012="" href="http://www.blogger.com/blogger.g?blogID=1214203760278230963" review_wacom_bamboo_fun_s_pen_and_touch_graphics_tablet="" target="_blank_" www.reghardware.com="">The Register</a> I found the item on <a href="http://www.amazon.co.uk/Wacom-Bamboo-FUN-Touch-2011/dp/B005OPKVHI/ref=sr_1_4?s=computers&ie=UTF8&qid=1327407165&sr=1-4" target="_blank_">Amazon</a>. I bought the tablet and wireless kit as a bundle but from different suppliers.<br />
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"><br /></span><br />
The pad works very differently in windows and Ubuntu as some of the features are only available in the installed software so I'll separate them out.<br />
<br />
<span class="Apple-style-span" style="font-size: large;"><b>Features
</b></span><br />
<div>
The tablet works in two modes, Pen and Touch. When the pen is within about 5mm of the surface of the tablet touch mode is turned off. So when using the pen you need to get it in range before you hand hits the tablet.</div>
<br />
<span class="Apple-style-span" style="font-size: large;">Pen Input
</span><br />
<div>
In pen mode the positioning is absolute. That is the tablet is mapped to the screen and when the pen is detected the cursor moves to the corresponding place. Touching the point to the pad is a click so it takes a little while to learn to hover the pen just high enough to be detected but not accidentally drag it which will select everything you wander over. Lift it too high and you will be in touch mode and all sorts of things happen, mostly unexpected zooming.</div>
<div>
<br /></div>
<div>
The pen is a bit chunky for me but I find myself using it more than the touch input.</div>
<div>
<br /></div>
<div>
There is a single rocker button that emulates the left and right mouse buttons. For me it is a little high and a little too sensitive. The right-click is far too high and if you are, for instance cutting and pasting using context menus you need to arrange your hand higher up the pen with your forefinger or thumb over the top of the rocker before you do the select. Adjusting your grip when you have got a selection marked usually means your pen goes out of range and you revert to touch mode. I'd prefer a finger and thumb button with a very positive action. I'd also like some contours in the pen so it located your fingers repeatably<br />
<br />
When I am a bit braver I'll have a look at the config options and perhaps swap the button functions. The left click is in the correct place but superfluous.</div>
<span class="Apple-style-span" style="font-size: large;"><br /></span><br />
<span class="Apple-style-span" style="font-size: large;">Touch Input
</span><br />
<div>
In touch input the cursor reacts like it would with a mouse. Moving one finger on the tablet moves the mouse in that direction. Removing your finger and replacing it does not move the cursor back to the corresponding position but continues from where it left off. A tap is a mouse click and a double tap is a double click, nobody dies.</div>
<div>
<br /></div>
<div>
Multi-touch is the clever bit. Touching with a second finger is a right click. Pinching is zoom in and un-pinching is zoom out. Dragging two fingers up/down or left/right is scroll. Just as you'd expect on a touch screen phone or tablet.</div>
<span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"><br /></span><br />
<span class="Apple-style-span" style="font-size: large;">Buttons</span><br />
<div>
To the left of the tablet there are 4 buttons which can be configured. By default two are the left and right mouse button. I haven't found a use for them yet because the functions are available with both the pen and the touch interfaces. Although the buttons are quite big (2cm x 2cm approx) using them, for me, would mean looking away from the screen.</div>
<br />
<span class="Apple-style-span" style="font-size: large;">Wireless</span><br />
I went for the wireless adaptor because I thought it would be good for remote controlling the laptop when it is being the media player attached to the TV. I haven't tried it yet but I can't see why it can't work and it is a bit handier than balancing a keyboard and mouse on your lap in the armchair.
The wireless kit comprises a rechargeable battery, a wireless plug-in for the tablet and a miniscule usb adaptor for the pc. Unless I keep it plugged in it will be very easy to lose.
Charging is via the USB connection which overrides the wireless when it is connected.
<br />
<br />
<span class="Apple-style-span" style="font-size: large;"><b>Ubuntu 11.04 (Natty Narwhal)</b></span><br />
On Ubuntu Natty Narwhal (11.04) it took a little research and, unusually, a system restart. For Ubuntu techies here are the commands to set up the repository and get the drivers:<br />
<br />
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"><i>sudo add-apt-repository ppa:doctormo/wacom-plus<br />sudo apt-get update</i></span><br />
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"><i>sudo apt-get install wacom-dkms</i></span><br />
<span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"><br /></span><br />
When you have done that and restarted the tablet should just plug 'n' play.<br />
<br />
The package installs a configuration application that allows properties to be set. I've only used it to set the pressure sensitivity.<br />
<br />
For drawing in GIMP (my justification) it works fine. Putting a picture on the pad allows you to trace.<br />
<br />
Some of the multi-touch is only just OK. Scrolling often unexpectedly zooms. To zoom you need to wiggle you fingers a bit to get the driver to recognise you are zooming and then finely adjust when it catches up.<br />
<br />
I haven't tried the wireless adaptor on the Ubuntu box yet. The driver is supposed to support it.<br />
<br />
<span class="Apple-style-span" style="font-size: 24px; font-weight: bold;">Windows</span><br />
Getting the tablet working on Windows Vista Ultimate on the laptop took a few minutes. The accompanying disk loaded up and the plug and play worked first time. Likewise the wireless adaptor.<br />
<br />
The install disks adds a few applications as well as drivers.<br />
<br />
Bamboo doc is an apps management widget that contains the tutorial and a couple of games and a portal to download more stuff. Sumo Image manipulation is pretty well what you'd expect with the usual tools and filters. There's also a handwriting recognition widget and onscreen keyboard which works pretty well. The other apps are pretty trivial, I've never felt the need to deface the Mona Lisa.<br />
<br />
<span class="Apple-style-span" style="font-size: large;"><b>Verdict</b></span><br />
It does what I wanted it to. I'm persevering with it as a complete replacement for the mouse. I'm still doing accidental gestures and selecting and moving text when I don't want to but I think I'm improving. The sensitivity<br />
<br />
<br />
<br />
<br />David Sinfieldhttp://www.blogger.com/profile/05579083338632599449noreply@blogger.com0