I have an EmonPi which I am using in conjunction with 2x EmonTX (one with 6 DS18B20 temperatures and one with 4x CTs) and 4x EmonTH around the house. This system has been running well for 3 or 4 weeks. However, over the last couple of days the Pi keeps losing the connections to the TXs and THs - this typically happens after it has been running for 6 or 7 hours. The EmonPi itself is still logging the wired connections to its own 2x CTs and 1x DS18B20. The only way I have found to restart the wireless connections is to reboot the EmonPi. Any ideas? - Have I overloaded the EmonPi with too much to do? Or is it something more sinister such as signal interference? I have loaded the latest version of emoncms but that hasn't helped.
Jez
Re: EmonPi losing connection to EmonTX and EmonTH
Update - I have tried a few things such as turning off each of the EmonTX in turn to see what happens. I still find that with just the emonTH transmitting to the Pi the connection to these is lost after a few hours running. Is this some sort of hardware failure of the wireless module on the board?
Jez
Re: EmonPi losing connection to EmonTX and EmonTH
Can you confirm where you are seeing the fault?
Have you checked the emonhub.log?
The Pi it self is totally up to the job, the 6 devices, 2 of which will have very long payloads will put the RF network under load and there is a
possibilityprobability of clashes etc, you may need to implement some traffic calming and/or control but these things are not just setttings they will involve coding changes (manly configurations), sketch uploads and abit of trial and error.There may be a particular issue that is the biggest culprit so debugging may find a single solution that makes the error level of that much traffic a little more palatable,
Paul
Re: EmonPi losing connection to EmonTX and EmonTH
Paul
All I can see on the emonhub.log is that the the data from the transmitter nodes just disappear from the log. No sign of any errors.
I have gone back to a transmitter configuration that previously had been working with no problem - so the 2 CTs connected to the emonPi, one TX with 4 xCTs and 1 x TH. This configuration worked longer than the full set of transmitters, but eventually it lost the connection to both. The red LED on the TX is still flashing - so presumably still transmitting. Turning the power on the TX on and off to restart it does not re-establish the connection to the emonPi. This is what makes me think it is a hardware issue rather than software.
Jez
Re: EmonPi losing connection to EmonTX and EmonTH
"All I can see on the emonhub.log is that the the data from the transmitter nodes just disappear from the log. No sign of any errors."
Is there any other data arriving via the rfm2pi? are there any "rfm2pi errors" prior to the packets ceasing?
Paul
Re: EmonPi losing connection to EmonTX and EmonTH
Paul
There are no errors on the log. Is there a way to view the historic emonhub log to see if I can spot where the TX data stop? I have tried using $ tail -f /var/log/emonhub/emonhub.log in putty but that just gives the same live log feed as the log viewer. Current log view below
Jez
2015-09-23 05:35:35,235 DEBUG RFM2Pi 121112 Timestamp :<PHONE_NUMBER>.23
2015-09-23 05:35:35,235 DEBUG RFM2Pi 121112 From Node : 5
2015-09-23 05:35:35,236 DEBUG RFM2Pi 121112 Values : [154, 5, 159, 235.82, 17.3, 0, 0, 0, 0, 0, 0]
2015-09-23 05:35:35,237 INFO RFM2Pi Publishing: emonhub/rx/5/values 154,5,159,235.82,17.3,0,0,0,0,0,0
2015-09-23 05:35:35,240 DEBUG RFM2Pi 121112 adding frame to buffer => [1442986535, 5, 154, 5, 159, 235.82, 17.3, 0, 0, 0, 0, 0, 0]
2015-09-23 05:35:35,241 DEBUG RFM2Pi 121112 Sent to channel' : ToEmonCMS
2015-09-23 05:35:40,296 DEBUG RFM2Pi 121113 NEW FRAME : OK 5 151 0 7 0 158 0 221 91 173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (-0)
2015-09-23 05:35:40,300 DEBUG RFM2Pi 121113 Timestamp :<PHONE_NUMBER>.3
2015-09-23 05:35:40,301 DEBUG RFM2Pi 121113 From Node : 5
2015-09-23 05:35:40,302 DEBUG RFM2Pi 121113 Values : [151, 7, 158,<PHONE_NUMBER>0000002, 17.3, 0, 0, 0, 0, 0, 0]
2015-09-23 05:35:40,303 INFO RFM2Pi Publishing: emonhub/rx/5/values 151,7,158,235.17,17.3,0,0,0,0,0,0
2015-09-23 05:35:40,305 DEBUG RFM2Pi 121113 adding frame to buffer => [1442986540, 5, 151, 7, 158,<PHONE_NUMBER>0000002, 17.3, 0, 0, 0, 0, 0, 0]
2015-09-23 05:35:40,306 DEBUG RFM2Pi 121113 Sent to channel' : ToEmonCMS
2015-09-23 05:35:41,859 INFO emoncmsorg sending: http://emoncms.org/input/bulk.json?apikey=E-M-O-N-C-M-S-A-P-I-K-E-Y&data=[[1442986515,5,154,6,160,235.77,17.3,0,0,0,0,0,0],[1442986520,5,186,5,191,235,17.3,0,0,0,0,0,0],[1442986525,5,154,4,158,235.9,17.3,0,0,0,0,0,0],[1442986530,5,143,5,148,235.09,17.3,0,0,0,0,0,0],[1442986535,5,154,5,159,235.82,17.3,0,0,0,0,0,0],[1442986540,5,151,7,158,235.17000000000002,17.3,0,0,0,0,0,0]]&sentat=1442986541
2015-09-23 05:35:42,634 DEBUG emoncmsorg acknowledged receipt with 'ok' from http://emoncms.org
2015-09-23 05:35:45,243 DEBUG RFM2Pi 121114 NEW FRAME : OK 5 149 0 6 0 155 0 62 92 173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (-0)
2015-09-23 05:35:45,246 DEBUG RFM2Pi 121114 Timestamp :<PHONE_NUMBER>.24
2015-09-23 05:35:45,247 DEBUG RFM2Pi 121114 From Node : 5
2015-09-23 05:35:45,248 DEBUG RFM2Pi 121114 Values : [149, 6, 155,<PHONE_NUMBER>0000001, 17.3, 0, 0, 0, 0, 0, 0]
2015-09-23 05:35:45,249 INFO RFM2Pi Publishing: emonhub/rx/5/values 149,6,155,236.14,17.3,0,0,0,0,0,0
2015-09-23 05:35:45,251 DEBUG RFM2Pi 121114 adding frame to buffer => [1442986545, 5, 149, 6, 155,<PHONE_NUMBER>0000001, 17.3, 0, 0, 0, 0, 0, 0]
2015-09-23 05:35:45,252 DEBUG RFM2Pi 121114 Sent to channel' : ToEmonCMS
2015-09-23 05:35:45,842 INFO emoncmsorg sending: http://emoncms.org/myip/set.json?apikey=E-M-O-N-C-M-S-A-P-I-K-E-Y
2015-09-23 05:35:50,277 DEBUG RFM2Pi 121115 NEW FRAME : OK 5 156 0 6 0 162 0 222 91 173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (-0)
2015-09-23 05:35:50,317 DEBUG RFM2Pi 121115 Timestamp :<PHONE_NUMBER>.28
2015-09-23 05:35:50,319 DEBUG RFM2Pi 121115 From Node : 5
2015-09-23 05:35:50,320 DEBUG RFM2Pi 121115 Values : [156, 6, 162, 235.18, 17.3, 0, 0, 0, 0, 0, 0]
2015-09-23 05:35:50,321 INFO RFM2Pi Publishing: emonhub/rx/5/values 156,6,162,235.18,17.3,0,0,0,0,0,0
2015-09-23 05:35:50,323 DEBUG RFM2Pi 121115 adding frame to buffer => [1442986550, 5, 156, 6, 162, 235.18, 17.3, 0, 0, 0, 0, 0, 0]
2015-09-23 05:35:50,324 DEBUG RFM2Pi 121115 Sent to channel' : ToEmonCMS
Re: EmonPi losing connection to EmonTX and EmonTH
emonhub.log is just a text file and can be opened with a normal editor such as vi or nano, however the files can get quite bulky (5mb) and slow to handle on the PI, You can also use cat, echo, more or probably the better one is the"less" command.
less /var/log/emonhub/emonhub.log
gives you a page by page view, then "G" will take you to the end of the file
? From Node : 10 should search out that "From Node : 10" string working backwards, ie find the last occurrence, this only works when it is in a failed state,
You mat find it easier to either copy the log to a PC to dissect or reboot the Pi to clear the logs and monitor closely for the 1st fail, grabbing the logs then will minimise the log size and place the area of interest right at the very end.
To be honest with you I'm not convinced there will be any useful info but cannot be 100% sure. It looks like the emonpi board continues to report data but not from the rf devices, so there may be nothing than an absence of data to be seen.
Something else to try next time it occurs is to change the group to something else in the rfm2pi section of emonhub.conf, save the file and then change it back to your current group. I recall an issue Glyn had some time ago where the emonPi was forgetting the rf settings and forcing a "reload config" would kick start the reporting again, maybe the same, maybe not but worth a try!!
Paul
Re: EmonPi losing connection to EmonTX and EmonTH
Is that (-0) in the tail of NEW FRAME meant to be the RSSI value, or just some reporting artefact?
Re: EmonPi losing connection to EmonTX and EmonTH
The "(-0)" has no purpose, it's hard-coded in the emonPi sketch to "match" the rfm69 packet appearance.
Paul
Re: EmonPi losing connection to EmonTX and EmonTH
Paul
I have rebooted the EmonPi - and it then started to receive data from the emonTX again (node 9). The connection only lasted 20 minutes this time. I have downloaded the emonhub.log file (using WinSCP) and identified the last transmission in the log but can find no associated errors. The log at the point of disconnection is below. I will try your suggestion of temporarily changing the group and then back to 210 in the rfm2Pi config.
cheers
Jez
2015-09-23 19:44:36,045 DEBUG RFM2Pi 951 NEW FRAME : OK 9 8 0 0 0 0 0 5 0 213 94 0 0 0 0 0 0 0 0 0 0 0 0 9 0 (-28)
2015-09-23 19:44:36,048 DEBUG RFM2Pi 951 Timestamp :<PHONE_NUMBER>.04
2015-09-23 19:44:36,049 DEBUG RFM2Pi 951 From Node : 9
2015-09-23 19:44:36,050 DEBUG RFM2Pi 951 Values : [8, 0, 0, 5, 242.77, 0, 0, 0, 0, 0, 0, 9]
2015-09-23 19:44:36,050 DEBUG RFM2Pi 951 RSSI : -28
2015-09-23 19:44:36,052 INFO RFM2Pi Publishing: emonhub/rx/9/values 8,0,0,5,242.77,0,0,0,0,0,0,9
2015-09-23 19:44:36,053 DEBUG RFM2Pi 951 adding frame to buffer => [1443037476, 9, 8, 0, 0, 5, 242.77, 0, 0, 0, 0, 0, 0, 9, -28]
2015-09-23 19:44:36,054 DEBUG RFM2Pi 951 Sent to channel' : ToEmonCMS
2015-09-23 19:44:36,249 INFO emoncmsorg sending: http://emoncms.org/myip/set.json?apikey=E-M-O-N-C-M-S-A-P-I-K-E-Y
2015-09-23 19:44:40,829 DEBUG RFM2Pi 952 NEW FRAME : OK 5 199 0 5 0 204 0 216 91 190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (-0)
2015-09-23 19:44:40,833 DEBUG RFM2Pi 952 Timestamp :<PHONE_NUMBER>.83
2015-09-23 19:44:40,834 DEBUG RFM2Pi 952 From Node : 5
2015-09-23 19:44:40,835 DEBUG RFM2Pi 952 Values : [199, 5, 204, 235.12, 19, 0, 0, 0, 0, 0, 0]
2015-09-23 19:44:40,836 INFO RFM2Pi Publishing: emonhub/rx/5/values 199,5,204,235.12,19,0,0,0,0,0,0
2015-09-23 19:44:40,838 DEBUG RFM2Pi 952 adding frame to buffer => [1443037480, 5, 199, 5, 204, 235.12, 19, 0, 0, 0, 0, 0, 0]
2015-09-23 19:44:40,839 DEBUG RFM2Pi 952 Sent to channel' : ToEmonCMS
2015-09-23 19:44:45,906 DEBUG RFM2Pi 953 NEW FRAME : OK 5 195 0 5 0 200 0 120 91 190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (-0)
2015-09-23 19:44:45,910 DEBUG RFM2Pi 953 Timestamp :<PHONE_NUMBER>.91
2015-09-23 19:44:45,910 DEBUG RFM2Pi 953 From Node : 5
2015-09-23 19:44:45,911 DEBUG RFM2Pi 953 Values : [195, 5, 200, 234.16, 19, 0, 0, 0, 0, 0, 0]
2015-09-23 19:44:45,912 INFO RFM2Pi Publishing: emonhub/rx/5/values 195,5,200,234.16,19,0,0,0,0,0,0
2015-09-23 19:44:45,915 DEBUG RFM2Pi 953 adding frame to buffer => [1443037485, 5, 195, 5, 200, 234.16, 19, 0, 0, 0, 0, 0, 0]
2015-09-23 19:44:45,916 DEBUG RFM2Pi 953 Sent to channel' : ToEmonCMS
2015-09-23 19:44:50,867 DEBUG RFM2Pi 954 NEW FRAME : OK 5 195 0 4 0 199 0 137 91 190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (-0)
2015-09-23 19:44:50,871 DEBUG RFM2Pi 954 Timestamp :<PHONE_NUMBER>.87
2015-09-23 19:44:50,872 DEBUG RFM2Pi 954 From Node : 5
2015-09-23 19:44:50,872 DEBUG RFM2Pi 954 Values : [195, 4, 199, 234.33, 19, 0, 0, 0, 0, 0, 0]
2015-09-23 19:44:50,874 INFO RFM2Pi Publishing: emonhub/rx/5/values 195,4,199,234.33,19,0,0,0,0,0,0
2015-09-23 19:44:50,876 DEBUG RFM2Pi 954 adding frame to buffer => [1443037490, 5, 195, 4, 199, 234.33, 19, 0, 0, 0, 0, 0, 0]
2015-09-23 19:44:50,877 DEBUG RFM2Pi 954 Sent to channel' : ToEmonCMS
2015-09-23 19:44:53,775 INFO emoncmsorg sending: http://emoncms.org/input/bulk.json?apikey=E-M-O-N-C-M-S-A-P-I-K-E-Y&data=[[1443037470,5,200,5,205,234.66,19,0,0,0,0,0,0],[1443037475,5,197,5,202,235.21,19,0,0,0,0,0,0],[1443037476,9,8,0,0,5,242.77,0,0,0,0,0,0,9,-28],[1443037480,5,199,5,204,235.12,19,0,0,0,0,0,0],[1443037485,5,195,5,200,234.16,19,0,0,0,0,0,0],[1443037490,5,195,4,199,234.33,19,0,0,0,0,0,0]]&sentat=1443037493
2015-09-23 19:44:54,838 DEBUG emoncmsorg acknowledged receipt with 'ok' from http://emoncms.org
Re: EmonPi losing connection to EmonTX and EmonTH
Temporarily changing the group in the rfm2Pi config did not help - the connection went again after an hour.
Jez
Re: EmonPi losing connection to EmonTX and EmonTH
Hi Jez unfortunately the logs show very little except that node9 is a very likely candidate for the "run of zeros issue" discussed in the "Data loss due to RF packets getting corrupted" thread, if it's not the cause now it could well be a problem at anytime (including the same time ie more than one problem).
Leading up to node9 stopping were there any other intermittent packets missing or was it perfect and then just stopped dead?
Where are the other nodes? are they connected? do all the nodes (except node5) definitely stop together?
Do your emonTH's have dht22's fitted? there is another unrelated issue that can effect them discussed in the "emonTH Unreliable reading timing?" thread, but if they (tx's and th's) all stop together it could be something completely different.
"the connection went again after an hour." Does that mean it did bring it back but reoccured after an hour, this isn't intended to fix the issue but if the settings "nudge" restore a lost signal for any amount of time is is significant.
Debugging is hampered somewhat by the emonpi sketch being permanently in "quiet-mode", we cannot see the problematic packets, we can only the ones there is nothing wrong with.
Whether diagnosing or fixing I think you will be altering some code as I suspect this is very much a software issue rather than a hardware one, but I wouldn't rule it out completely yet, do you have a programmer?
Another route which is an additional cost but IMO very much worth considering (in fact I would probably recommend it) is to invest in a second receiver, this will allow you to "snoop" on the network without interfering, give you an alternative place to tinker and test if you wish to experiment with expanding your sysytem.
A jeelink is a perfect little device for this as it is a usb dongle that can be plugged into any pc/laptop (or for that matter the emonPi as a second reciever) the JeeLink (v3c) is just over 30 euros and maybe the simplest way to find the issue.
Paul
Re: EmonPi losing connection to EmonTX and EmonTH
Paul
answers as follows:
Leading up to node 9 stopping were there any other intermittent packets missing or was it perfect and then just stopped dead? Where are the other nodes? are they connected? do all the nodes (except node5) definitely stop together? As far as I can tell it looked fine up to the point of losing the connection. For this test, to simplify issues I just had the one TX (node 9) and one TH (node 21) - the data frm both stopped within a minute of each other - the TH slightly before as the data is less frequent.
Do your emonTH's have dht22's fitted? 3 of my 4 THs have DHT22s - one of these was the one used in the test yesterday. However, in my original set-up I had the Pi plus 2 x the THs running for over a month with no problems.
"the connection went again after an hour." Does that mean it did bring it back but reoccured after an hour, this isn't intended to fix the issue but if the settings "nudge" restore a lost signal for any amount of time is is significant. In my test I first tried changing the group while the transmissions were being received OK - about an hour after this was when the connection was lost - I then tried changing the group again - but this did not restore the connection - so "nudging" doesn't seem to work. Only way to get them back was to reboot the Pi.
Debugging is hampered somewhat by the emonpi sketch being permanently in "quiet-mode", we cannot see the problematic packets, we can only the ones there is nothing wrong with. - Can I change this setting in emonhub config?
do you have a programmer? Yes - I have the USB to serial programmer - but haven't had the courage to use it.
One more thing that might be worth mentioning in case it helps is that in the past I have seen spurious nodes appear in the input list. Only happened very occasionally and I haven't seen any for a while. I do have other wireless kit in the house - in particular a Honeywell Evohome zoned heating/hot water controller - but this is on 868MHz not 433 so this shouldn't be a problem.
I have now set up my system back to it's original configuration with just the Pi and 2 xTH - and pulled the batteries and turned off the power from everything else. Will see how this goes.
Jez
Re: EmonPi losing connection to EmonTX and EmonTH
The set-up in original configuration (Pi + 2xTH) lasted just 1 1/2 hours before the connection to both THs was lost (at the same time give or take a minute). Tried changing the group from 210 to 0 and back again - but like last time this had no effect. So the question is why is this simple set up not working now, when it ran for weeks with no problem before? Hence my suspicion this is a hardware issue.
Jez
Re: EmonPi losing connection to EmonTX and EmonTH
Any reason to think the Pi may be running warmer than previously?
There are clearly packets still flying that the Pi side is ignoring. Really need that 'quiet mode' off and/or an independent 'listener' as Paul suggested to debug further.
Re: EmonPi losing connection to EmonTX and EmonTH
Any reason to think the Pi may be running warmer than previously?
You can check that with either of these two commands, not entirely sure why they give slightly different readings, perhaps there's more than one sensor buried in there.
pi@raspberrypi1 ~ $ vcgencmd measure_temp
temp=51.9'C
pi@raspberrypi1 ~ $ cat /sys/class/thermal/thermal_zone0/temp
51382
pi@raspberrypi1 ~ $
Re: EmonPi losing connection to EmonTX and EmonTH
Hi Jez, If you are convinced it is hardware you can contact the shop support and refer to this thread, at this point the fact the hardware is normally sound and most issues get resolved in the software that leads me to explore those avenues first, but you have the advantage of seeing the issue first hand so don't let me sway you if you want to contact the shop.
There are other options to try, we could use a very small script to reset the receiver from the command line as currently rebooting the Pi when there is possibly a problem with the rfm2pi part is a bit like throwing the main breaker to you house when your PC won't connect to the web.
We could go ahead and install the previously successful fixes to your devices, we know they can be problematic and since the symtoms are not always permanently displayed the fact it previously worked isn't 100% conclusive it's not the problem now. Installing sketches isn't difficult, once you've done a couple you'll be fine.
Debugging is only difficult in this instance because of the lack of quiet mode, unfortunately it's missing from the sketch so although the setting is available and processed by emonhub, the "rfm2pi" part has no non-quiet mode to activate. I have no idea why it was removed so cannot say how easy it would be to add it back in to a sketch, and then loading a modified sketch is not quite as straightforward as pressing the update button either.
The alternative as I mentioned, is to use a JeeLink which comes pre-installed with receiver software so should be plug and play to expose all the stuff you currently cannot see. bear in mind the devices you have on your network could be subject to the 2 issues I've mentioned independent of any potential issue with the emonPi.so a jeelink could still be a valuable asset even when the emonPi itself is behaving.
The choice is yours :-)
Paul
Re: EmonPi losing connection to EmonTX and EmonTH
I don't think there's anything to stop you using a (for the moment, spare) emonTH with your programmer as a receiver! It needs a sketch writing, but you have the hardware. I think Robin's PV diverter page has a receiver sketch that would be a good starting point - otherwise one of the GLCD sketches.
Re: EmonPi losing connection to EmonTX and EmonTH
That is actually a really good idea, the RFdemo12 (or an rfm2pi) sketch will load straight up (set the COMPAT mode 1st) and the group, frequency and quiet mode can be set in the Arduino IDE using commands afterwards. I have a emonTx v3.4 right here testing a modified "rfm2pi" sketch, not sure why it didn't occur to me!
The pins used by the RFdemo12 sketch are the same for both the (non-RFu) emonTH and emonTx so you could use a emonTH since they are more abundant (and will need the revised sketches anyway).
Good call Robert! Would you prefer to try that Jez?
Paul
Re: EmonPi losing connection to EmonTX and EmonTH
I have checked the pi temp with just the wired sensors running and then after a reboot to get the pi to see the THs. In both cases the temp was quite stable ranging from37.9degC to 38.5degC. So doesn't look like the processor is getting hot
Jez
Re: EmonPi losing connection to EmonTX and EmonTH
@Jez - try downloading and running this little reset script next time it fails. all it does is pulses the reset pin to the emonPi board causing it to restart without restarting the Pi. this may narrow the field a little.
rpi-rw
sudo wget -O /usr/bin/reset_rfm2pi http://openenergymonitor.org/emon/sites/default/files/reset_rfm2pi.txt
sudo chmod +x /usr/bin/reset_rfm2pi
sudo reset_rfm2pi
you can view the script here or in the "RFM12PI receiver goes hard down sometimes" thread.
Paul


Iterations – the job center of HpBandster¶
-
class
hpbandster.core.base_iteration.
BaseIteration
(HPB_iter, num_configs, budgets, config_sampler, logger=None, result_logger=None)[source]¶ Base class for various iteration possibilities. This decides what configuration should be run on what budget next. Typical choices are e.g. successive halving. Results from runs are processed and (depending on the implementations) determine the further development.
Parameters: - HPB_iter (int) – The current HPBandSter iteration index.
- num_configs (list of ints) – the number of configurations in each stage of SH
- budgets (list of floats) – the budget associated with each stage
- config_sample (callable) – a function that returns a valid configuration. Its only argument should be the budget that this config is first scheduled for. This might be used to pick configurations that perform best after this particular budget is exhausted to build a better autoML system.
- logger (a logger) –
- result_logger (hpbandster.api.results.util.json_result_logger object) – a result logger that writes live results to disk
-
add_configuration
(config=None, config_info={})[source]¶ function to add a new configuration to the current iteration
Parameters: - config (valid configuration) – The configuration to add. If None, a configuration is sampled from the config_sampler
- config_info (dict) – Some information about the configuration that will be stored in the results
-
get_next_run
()[source]¶ function to return the next configuration and budget to run.
This function is called from HB_master, don’t call this from your script.
It returns None if this run of SH is finished or there are pending jobs that need to finish to progress to the next stage.
If there are empty slots to be filled in the current SH stage (which never happens in the original SH version), a new configuration will be sampled and scheduled to run next.
-
process_results
()[source]¶ function that is called when a stage is completed and needs to be analyzed befor further computations.
The code here implements the original SH algorithms by advancing the k-best (lowest loss) configurations at the current budget. k is defined by the num_configs list (see __init__) and the current stage value.
For more advanced methods like resampling after each stage, overload this function only.


Michael's test web page
lots of subjects to learn in history
even things you thought never happened before and some boring history as well
swords
- viking swords
- Chinese swords
History photo by: Chesterfield Learning Center
more US history can be found at Chesterfield Learning Center
Qualities of this web-page - from an armature HTML hacker's viewpoint:
- clear what the site is about, who sponsors the site, and contact info
- side table to show other available services (such as learning algebra)
- easy to read AND navigate - rather than trying to be fancy
- list of specific topics covered in this website
source code of this web-page:
- clear what the site is about, who sponsors the site, and contact info
- Uses "meta properties" for web links
- Uses "meta links", i think for pix and icons
- uses "div id" for different parts of the extensive footer
- lots of 'script type="text/javascript" - i look forward to learning more about that
| Hist People |
Hist USA |
Hist Documents |
| World Leaders |
Constitution |
| Kings/National Leaders |
|
Bible |
| Presidents |
Writers |


I wrote this a while ago, exploring first-person, present-tense, non-linear story telling. That wasn’t the intent, but when the story came to me, it was there and it wouldn’t go away. I don’t say it’s a great piece, but I’m proud of it. I also find that first-person, present-tense makes it easier for me to avoid filter words . I have no idea why. I have a chapter from my novel that’s written in first-person, present tense, and it still gives me chills to read it. Narcissism is fun!
It’s worth noting that the main character is based on a friend. We worked together and he told me what it was like growing up black, in a gang, in Portland, Oregon. I’ve taken a few liberties, but his voice rings strongly in my mind and I think I’ve been faithful to it, though I’ve toned it down. A white author writing about black experience cannot use the n-word.
The "now" and "then" are recent additions by me because some early readers complained it was too difficult to follow the non-linear story line. However, I can’t simply re-arrange the story in a linear fashion because that destroys it. Hence, my added cues for the reader. If they don’t help or distract, let me know in the comments. In fact, I’d be grateful for any feedback you care to leave. I want to be a better writer.
Also, I know it’s the US Marshals who handle the witness protection program. I wrote “FBI” because I wasn’t sure most people would know who the US Marshals are.
The Names We Never Say
Now.
“Parents died in a house fire when I was a kid, so no, I don’t have no childhood photos.”
That shuts ‘em up. It always does. I roll up my left sleeve. A mess of white scar tissue on black skin.
“That’s my childhood photo.”
I got that from a night drinking and messing with a barbecue, but I didn’t tell them that. Heck, I shouldn’t even have shown them the scar, but lying always made me nervous and I felt like I had to back it up.
“James, I’m so sorry.” Frank’s squeeze—don’t even remember her name and there’s no point because she’ll be gone next week—goes beet red with embarrassment. I feel sorry for her.  It was the only thing we argued about. I’ve found God now. I think. Not sure if he’s found me.
“No worries, girl. You didn’t know. Gonna get another beer and if you two ain’t drinkin' with me, I’m gonna be mighty offended.”
Middle of a Saturday afternoon and Frank’s here to watch the game with me. My wife and daughter are out on a mother/daughter field trip and I have a day off to watch LeBron destroy Miami. It’s a hot summer day and a few Coronas with lime go down a treat. I’m in the kitchen, reaching in the refrigerator when I hear the clang of the mail slot in the front door.
I walk back into the living room and there’s Frank, reading an envelope.
“Who’s Jamal?”
With that innocent question, my life is over for the third time.
Then.
You have no idea what it’s like growing up near Martin Luther King Avenue in Portland, Oregon. I had the luxury of traveling a lot before I got busted the second time and every place that has an “MLK” Boulevard/Avenue/Promenade—nothing ever as pedestrian as “Street”—is always through a poor black neighborhood and that’s where I grew up. That’s where I dealt. That’s where I joined a gang. That’s where I lost my virginity and, as a result, acquired my first scar. A stab in the gut courtesy of her boyfriend.
 I didn’t brag to nobody, but one night hanging out, there he was. His name was Aaron and he walked up, smiled, and said “‘Sup, Jamal?”
I just nodded and he slid a knife in my gut like it was the most natural thing in the world. To him, I suppose it was. People were screaming and Aaron just walked away.
I told the cops I didn’t know who it was.  Course they sent a black cop round. Like I’m gonna trust one of them. I went looking for Aaron later. I thought I sort of deserved what I got, but you gotta save face, right? Everybody said Aaron disappeared. No idea where he went off to.
Then.
I didn’t plan to grow up dealing; I wanted to go to college and study literature. Momma didn’t have much, but she loved books. Naturally, I loved books too, but lettin' on that I huddled under the blanket, switching from Heinlein to Faulkner to “Poets of the Nuyorican Café” made me a joke.
But nobody hired boys named “Jamal.” At least not good jobs. At least not in the whitest major city in the good ol' US of A, love her or leave her. Which is how I got busted the first time, dealing while working at a car wash.  The undercovers dropped a name and asked if they could score.  There was no entrapment; I offered it to them. Guilty.
But I never grassed on no one. You don’t get two years for a first offense, but with a name like “Jamal” and refusing to cooperate, I had a DA in a bad mood. Got out six months early for good behavior, hit the streets and life was over.
I tried to go straight. I really did. But when you have to explain time in prison, you don’t get no real jobs, which is why I felt real lucky to have Christine. She was Aaron’s ex, the one I slept with. He left her a broken nose as a parting gift, but she was lucky and it healed sort of upturned. It was cute, but I hated Aaron.  No way.
Christine was a receptionist at a car dealership and got me a job as a salesman.  They just want to know if you can make them money.
Christine was special. For the first time in my life, I felt like things were going good. I didn’t feel too comfortable round her mom, though. She didn’t care about my past—too many good boys get caught up in bad things—but she creeped me out. I was sitting there, sippin' iced tea, waiting for Christine and talking to Christine’s mom, Gisele. “Gee-seh-luh.” What sort of name is that?
You didn’t lie to Gisele. I learned that early on. I never felt good about lyin'. I could lie when I had to, but not with Gisele.  I once told her I sold 18 cars last month. I just wanted her to know I could take care of Christine. That’s exactly what I was thinking. Gisele just looked at me and said “I know you’ll take care of Christine, but you didn’t sell no 18 cars last month, Jamal.”
 I never lied to her again.
So there we were, drinking iced tea, and I said Clinton was going to crush Trump in the election. Gisele looked sad and said, “no, she’s not.”
And just like that, I knew Clinton would lose. Gisele did that to you.
When Christine got home that night from college, she stepped into the living room and plunked herself down on the old, ratty sofa and curled up next to me. I wrapped my arms around Christine and knew with dead certainty that I loved her. Probably the only reason Gisele let me in the house. She knew.
And then she didn’t let me in no more. I wasn’t a great salesman, but the other guys knew my past and kept asking if I could hook ‘em up. That’s how I got back in. I wanted to make money for Christine and here it was. Just one look at her big, brown eyes and I’d have given her the world if I could. So I lied and said I was making good commission on my cars, when really I was hooking up the other salesmen. And then I started hooking up more than other salesman. That’s how it is.
Now.
“Jamal? He’s my cousin in San Francisco. Don’t know why I’d be getting mail from him.”
Frank hands me the envelope and I look at the address. “Jamal, c/o James Hillman.” I’m still Jamal inside, but Frank and everybody else knows I’m James. Except for my wife, Angela, née Christine. Even our daughter, Sarah, don’t know our real names. I hated lying to her about it, but I love her as much as Christine.
I put the envelope aside and Frank forgets about it. Every nerve in my body is screaming, but I wander back to the TV, acting like nothing was wrong. I still don’t know who won that game.
Then.
New apartment. New king size bed. Mind wandering.
“What sort of name is Gisele? I never heard no name like that.”
Christine was lying in my arms, our bodies still covered with sweat, and whispered to me, “her name’s not Gisele.”
“What the hell does that mean?”
“She has this thing about names and won’t tell anyone her real one. Says it gives people power over you. And stop talking that way, you’re better than that.”
“So what’s her name?”
Christine sat up and looked down on me.
“No, Jamal,” she said. “She maybe has weird ideas, but she’s my mother. I won’t dishonor her.”
Christine was sort of a Christian and honoring her mother and father (God rest his soul) was important to her. I say “sort of a Christian” because she knew I was making more money than selling cars could provide, but she never asked. I liked to think it’s because she loved me, but I never asked, either.
I sat up and wrapped my arms around Christine. I knew not to press about Gisele’s name and hugged Christine tightly, but this bothered me. Everything about Gisele gave me the willies and at this point in my life, anything I didn’t understand was a threat. Except I didn’t understand Gisele and she didn’t feel like no threat.
Then.
A couple of years before that, I got some really bad good news. I was a small-time dealer, now selling cars and coke and my supplier invited me to dinner on a night Christine was in school. I went round to the restaurant, but my supplier wasn’t there. Lamonte was. Lamonte was my supplier when I went to prison. I never dropped his name, but maybe he didn’t know that. But when he saw me, he smiled, and waved me over. “Sit down, Jamal. It’s time to talk about your future.”
I looked round, but no one in the restaurant said “cop” to me. Not even Lamonte. A waiter walked up and smiled, so I sat. I ordered a beer, took a menu, and waited for the bad news.
“I hear you play straight. And I know you do. You could have sent me up, but you went to jail rather than drop my name.”
“Prison.
Lamonte nodded; he knew what I meant. You don’t, but he does.  You’re bored stiff. In prison, you’re there for a long time, so they have weight rooms, college classes, libraries, you name it. Jail doesn’t have shit, but in prison, they give you a chance to better yourself. Maybe you’ll come out with a degree.
The waiter came by and I ordered. When he left, Lamonte leaned forward and said “You had my back when you didn’t have to. Now I got yours.  I’m doing good and I want people I can trust. I trust you.”
 Christine looked the other way about the extra cash I was earning, but that’s only because I had a job.  That’s what I told Lamonte.
“You’re a good man, Jamal. I appreciate what a good woman can do for a man, but what can you do for her? You’re a felon. You know you’re never going to get a real job. Oh, you might be a sales manager some day, earn whatever small bit of green the man wants to toss your way, but you really want to take care of her? I can offer you that. It’s a real job. I start you at five grand a month and you run some dealers. I won’t lie to you. I ain’t promisin' nothin' bad’ll ever happen, but if it does, we got each other’s backs. And you treat us right, we treat you right. You can keep Christine in college and have nice things.”
And that’s how life ended the second time, but at least it paid well.
Now.
It’s two days before I open that envelope.   Christine—excuse me—Angela probably knows something is up but I tell her it’s just work. With the economy the way it is, she accepts that. I hate to lie to her, but I’m really thinking about Sarah. When she was born, she brought joy to our lives like we had never experienced. Oh, we were as happy as our circumstances could allow, but this felt like it was for real this time. Past sins were absolved and beautiful Sarah laughed and cried and hiccoughed and I even started going to church. My life was almost complete. Even changing diapers had made me smile.
Sarah had never known any life but what we had. I didn’t want to take her out of school, but there’s an envelope in my hand. Hell, I like going to PTA meetings. I want Sarah to have everything I didn’t. And so did Angela. We have the life we always wanted. It isn’t perfect, but it’s stable. And always with that tinge of fear. Now I know I should call the FBI and I know they will take away our life and give us a new one. Sarah will cry for her friends in school and I have no idea what to say to her.
I don’t know what to expect when I open that envelope, but I certainly don’t expect what I find.
I unfold the paper and read. Or at least I thought I would. The paper is blank. I turn it over, but nothing is there. Paranoid, I look in the envelope for weird powder or whatever the hell anthrax looks like, but I see nothing. I sniff the air. Nothing. I sit. I wait.
I have tears running down my face when I notice the writing on the back of the envelope.
“Gisele.”
And then the mail slot clanged. There was another envelope on the floor.
Then.
Life working for Lamonte was good. Lamonte was careful and if a dealer started using, they were out. You couldn’t trust them. I was one of several “account managers” and we were a tight group. We knew Lamonte’s star was rising and we along with it. Because I talked proper when I needed to and didn’t mind wearing a suit, I soon found myself working directly with several favored customers. You’d probably even know the names of a couple of them, but you won’t hear them from me. When I landed a narc as a customer, we had a nice celebration. Portland cops had worked real hard to clean up, so getting inside news was a real score.
That’s how, when Lamonte got busted, I had his job. Lamonte was true to his word and didn’t name names. And Christine didn’t ask questions about my import/export business and cried when she thought I wasn’t looking. I was a “district manager” and the account managers reported directly to me. I didn’t change nothin'. What worked for Lamonte worked for me.
Now.
I open the envelope right away this time. A single sheet of paper. A single word. “Aaron.” Written on the back of the envelope was “Gisele,” in Gisele’s handwriting.
Of course it wasn’t Gisele. She died years ago.
I’m staring at the envelope and I dimly remember that like Angela and myself, she had a different name. How many people knew that? Sure, she had different reasons, but still. She was buried years ago and now I have this envelope in my hand and a sheet of paper which reads “Aaron.”
Then.
I met Aaron again shortly before my second bust. I was pulling down a cool seven grand a month. I never skimmed, I didn’t cut the dope too much and when I fired a dealer for using, I gave them severance pay out of the expense account. Then I told ‘em to get lost.
One day on an exchange, Big Boss told me to carry. We were dealing with some new boys. They were unknown, but they had lots to move. Normally I don’t hold no truck with guns, but when the big boss trusts you to watch his back and you’re looking to move up, you do what you’re told. So I carried. And there, in an old warehouse, was Aaron providing muscle for the new boys.
I slowed down. I guess the big boss sensed something was up and he slowed down, too. Then they slowed down. All of a sudden, a clean exchange became real tense. I could see Aaron’s eyes moving from man to man, doing the math. I wanted to hurt Aaron bad. Not for what he did to me—I could forgive that—but for what he did to Christine. But I can do math too and the numbers didn’t add up. Aaron and I just stared at each other, hatred in our eyes, but the deal went down.
Big Boss later asked me what happened but I told him I just had a bad vibe. I stuck to the story. No sense worrying the man.  You don’t need to tell me twice.
When Aaron finally came looking for me, he shot the big boss and I killed Aaron. Or at least I tried to. Lucky shot got him in the leg. The Feds offered a deal: it was self defense if I testified, Christine and I would get the Witness Protection Program, provided I kept myself clean. If I didn’t testify, I’d go down.
I don’t grass, but I had Christine to think about. It was a hard decision. I tried to keep my account managers out of it, but no deal. And I had to point out the big bosses. Mine survived being shot and Aaron’s boss went down, too.  Well, everybody except Aaron.  He took down his side, I took down mine.
So Christine and I live in hiding. New ID cards. New social security numbers. I’m a district manager of a snack vending company—yeah, I get the irony—and Christine, bless her, didn’t leave my side. She was just happy I was out.
And then we had Sarah.
Now.
You’d be surprised how many people die in the Witness Protection Program. The FBI drilled this into us repeatedly. All it takes is one moment of homesickness, one quick phone call, and if the people who want you want you bad enough, you’re dead.
Christine and I knew the score. Neither of us had anything to go back to. Christine became Angela and I became James. We were moved to a new city in another state. The FBI got me a job, a small house, and a phone number for emergency use only. No friends. No social circle. No way back.
But we had each other. That’s enough.
Then.
Gisele died unexpectedly. She was in great health and whenever Christine wasn’t with me or at school, she was with her mom. So when one day Gisele didn’t answer her door, Christine panicked. She just knew something was wrong. Shortly after, we were at Gisele’s funeral. Brain hemorrhage. The doctor promised us it was painless and looking at her in the casket, she looked peaceful, but then, I guess that’s the mortician’s job.
Now.
I’m looking at the sheet of paper and know I have to go to the FBI now, but then there’s Sarah. What do I do about her? She’s not old enough to know what’s going on and there’s no way she’ll understand if we call her a different name. She won’t know why she has to leave her friends at school and Angela’s going to be terrified. So I do what I have to do. I buy a gun.
Normally, ex-cons don’t get to buy guns but James Hillman is not an ex-con. I buy a shotgun to avoid the waiting period and I go home and head down to the basement. I turn on the light bulb and ignore the damp, musty smell. I open my toolbox and a few strokes of a hacksaw removes most of the barrel. A bit of work with some files and cutting down the stock and I have a nasty short-range weapon. A nasty short-range weapon that’s pretty easy to hide. Pretty illegal, too, even if James Hillman isn’t an ex-con. I’m going to have some trouble explaining this when I get caught.
I will get caught. I know that, but I don’t care. But Christine and Sarah will be safe. I really have no choice.
I think about this a lot and I figure that if Aaron’s after me, he’s a lone nut. Otherwise, Gisele would have said something different, right? But no, Gisele’s dead.
Aaron’s Lee Harvey Oswald and I’m John F-in' Kennedy. Except JFK wasn’t married to Oswald’s ex. JFK didn’t know Oswald was coming to seek revenge for JFK being with Jackie.  That’s all I care about.
Now.
I stop staying late in the office and bring my paperwork home with me. Christine—or is she Angela?—asks what’s going on and I tell her I just want to spend more time with her, even if I have to work. I thought I caught her crying once. She knows something is wrong just as she always does.
Sarah likes to crawl into my lap. I kiss her forehead and keep working, my mind trying not to think of the sawed-off shotgun in my briefcase. On a hot Saturday, I’m not surprised when the third envelope falls through the slot. They always arrive when Angela/Christine and Sarah/Sarah are out.
I open it and read two words, “Tomorrow Night.” On the back of the envelope was a single name, “Lizbeth.”
That night, curled up next to Christine/Angela, I ask her a simple question.
“Her name was Lizbeth”, Christine murmurs.
But by now, I already knew that.
Now.
Sunday. Sarah’s best friend was always asking her to sleep over and, for the first time, I said it was a good idea. I am over-protective of Sarah. Christine thought Sarah staying with a friend was wonderful and had already started to plan a romantic evening but an emergency phone call from work took me away.
And an emergency phone call from Frank took Angela away, too. He says he’s broken up with his girlfriend and is upset, but since I’m not there, will Christine come? I told him to keep her away the entire night, whatever it took. I’ll be happy if she’s mad. Dead people don’t get mad. As she drives off, I huddle down further in the bushes, the shotgun in one hand and a cell phone in my pocket.
Aaron shows up just before midnight. The lights are off and as he limps to the front of the house, I watch him, quiet as the names we never repeat any more. He walks up to the front door and feels under the mat for a key. That’s good because I left one for him. If he breaks in, maybe I can get away with shooting him in the back. As he carefully turns the key in the knob, I raise the shotgun.
And then I put it down again. Good people might do bad things, but I couldn’t do this. Aaron tiptoes inside and I lift the cell phone and call the special number the FBI gave me for situations just like this. And that’s when Christine pulls back into the driveway. And that’s when Aaron steps outside. And that’s when Aaron pulls a gun and points it at Angela.
Or is she Christine? I’m confused. Gisele’s in my mind telling me I’m a good man who does bad things. I’m not. I’m a bad man trying to do good things.
 Christine is screaming.
Now.
You might think I’d get in trouble with that shotgun, but when you’re in the Witness Protection Program, some problems go away. “Brave Homeowner Kills Intruder Threatening Wife” read the headline. Any publicity usually means you need to leave. Publicity and knowing someone has found you guarantees it. I don’t know what we’ll tell Sarah, but the FBI tells me they already have a plan for that.
When we move into our new house, there’s an envelope lying on the floor in the foyer. There’s no name on it, but it has a single piece of paper with two words, “Thank you.”


Toggle navigation
Interests
My Profile
Requests
About
Search
Conversations
Edit Profile
Sign Out
Add To Favourite
Remove From Favorites
Message Me
Interests


--- title: Remove Safari Extension category: Hidden order: 59 ---
To remove the unofficial DuckDuckGo Safari extension, go to Preferences -> Extensions -> DuckDuckGo For Safari -> Uninstall.


{% extends 'pageWrapper.html' %}
{% import "macros.html" as macros %}
{% block head %}
Multiworld {{ room.id|suuid }}
{% endblock %}
{% block body %}
{% include 'header/grassHeader.html' %}
{% if room.owner == session["_id"] %}
Room created from Seed #{{ room.seed.id|suuid }}
{% endif %}
{% if room.tracker %}
This room has a Multiworld Tracker enabled.
{% endif %}
This room will be closed after {{ room.timeout//60//60 }} hours of inactivity. Should you wish to continue
later,
you can simply refresh this page and the server will be started again.
{% if room.last_port %}
You can connect to this room by using '/connect archipelago.gg:{{ room.last_port }}'
in the client. {% endif %}
{{ macros.list_patches_room(room) }}
{% if room.owner == session["_id"] %}
Log:
{% endif %}


Second half goals from Andy Spencer - his 5th in as many league games - Jason Burnham (another pen) and Dennis Bailey , who comes and goes almost as often as Evran Wright Wright Wright, kept us on the top of the table .
With Chippenham beating Clevedon and Weston also winning there's no real change at the top, other than I think there really are only 4 teams in contention for the two promotion spots.
Tuesday brings Blues to The Grove in a B'ham Senior Cup tie. According to the ever reliable Halesowen News Brendan will try and give a few non-regulars a run out, which is completely the right thing to do as all that matters this year (any year?) is the league. Be nice to keep our winning run going all the same. After that, we've got a trip down to Gloucester next Saturday where we've had some "interesting" visits before.
Also there is a meeting for all supporters on Thursday 17th in the Yeltz Bar from 7.30 to 8.45pm - a meet the players evening. Also, it may provide a springboard to launch a proper Supporters Club and produce proper links between the club and supporters.
Halesowen Town: Clarke; Colwell, Burnham, N. Smith, L. Collins, Skidmore, Spencer, Bailey, May, Taylor, Hines. Subs: G. Smith, Gray, Newall
Bilston Town: Bryan; Townsend, Read, Meredith (Walters 68), Stone, Daley, Ball (Bytheway 85), Grosvenor, Bullimore, Blakemore (Craven 76), Coates
Referee: H. Singh (West Bromwich) Attendance: 619 Booked: Ball (64) Sponsors Man of the Match : Lee Collins
Halesowen hit three goals in the final half-hour to break the Steelmen's resistance and eventually notch a comfortable victory.
Spencer should have opened the scoring with the first attack in the 2nd minute when a flowing move ended with Leroy May finding Spencer unmarked eight yards out but, after turning, his shot dribbled agonisingly wide. The influential Mark Taylor then put May free but his effort was cleared for a corner. Bilston were much changed from the team the Yeltz played in Nove mber and started on the back-foot although the ageing Charlie Blakemore saw his 8th minute shot blocked.
The Yeltz continued to apply the first half pressure and in the 17th minute Stuart Skidmore had a shot cleared off the line by Quentin Townsend after Dennis Bailey had weaved through the Bilston defence. Taylor then lofted a free-kick from the edge of the area just high and Spencer volleyed wide when Bailey had headed down. After 32 minutes Bailey then laid off a long goalkick from Tim Clarke to Spencer again but the Bilston defence blocked as he charged towards goal. A minute later Bailey headed a Taylor corner just wide and 8 minutes before the break Jason Burnham fired in a 20 yard shot which was well held by goalkeeper Simon Bryan. Man of the match Lee Collins received lengthy treatment to a cut head just before the interval after being caught by Lee Bullimore.
An exciting second half started with Spencer just off target again with a header after both Bailey and May had headed on. The visitors then missed a golden opportunity to snatch the lead in the 51st minute when Clarke failed to gather a Danny Coates corner, but Stuart Grosvenor headed over from just 3 yards out when unmarked.
At the Shed End, Les Hines fired a 20-yard shot onto the top of the net and a delightful 55th minute cross from Taylor was met with a Bailey header, but the ball struck the post and rebounded into safety. Bilston then missed another great chance when Lee Bullimore could only glance a free header wide from another Coates cross.
Halesowen finally broke through on the hour when Taylor played the ball out to Hines on the left wing and his cross was met with a firm downwards header by SPENCER rushing into the box to record his 4th goal in three games. Just two minutes later Hines was brought down in the area by Steve Ball, and after Hines received treatment, BURNHAM stepped up to stroke the penalty home in the 64th minute.
Hard working Bilston never looked likely to stage a recovery although substitute Greg Walters saw a shot drift wide after 73 minutes. With Halesowen seeking more goals, a corner from Hines after 76 minutes saw the ball cleared off the line in a goalmouth scramble. A minute from time, Halesowen hit a third goal in a fine move started in midfield by Taylor setting Hines free on the left to deliver an inch-perfect cross for BAILEY to tap home.


Chris Pathsworth, a full-time professional magician based in Ottawa, Ontario, Canada, has been providing magical entertainment to audiences for over twenty years.
Canada's premier Amazement Specialist, Chris specializes in performing for:You won't find a more enjoyable experience anywhere in the world, and you won't
Be prepared to leave all laws of nature behind as Chris short-circuits the logical brain cells of your mind. You will swoon in wonder at the impossible made possible! You will tremble in awe as the very foundations of reality teeter on the brink!
Chris has been amazing and amusing audiences for well over 38.7 years now, and has performed more than 3000 magic shows, and that's no illusion!
He's been called engaging, original and unexpected. You'll soon agree - he was "Born To Amaze"!


Instagram Insights
Upload likes.json here
Upload comments.json here
Upload messages.json here
Upload saved.json here


Home
The Academic Personnel Recruit System (AP Recruit) is a part of the Academic Personnel Systems for the University of California, Riverside. AP Recruit is a secure online academic employment recruitment management system, supporting the entire recruitment workflow from creation of a recruitment plan, application, reference gathering, reviewing by the search committee, and, finally, selecting a hired candidate. In 2011, as part of the UC Working Smarter Initiative, the University of California selected UCI's AP Recruit system for system-wide deployment at all 10 UC campuses. UCR will deploy APRecruit in the Fall of 2013.
At its core, the system will create a standard, paperless process for all academic searches. Some of the major features include:
- Applicants can manage and monitor their application progress
- References can log in and securely upload their letters of reference
- Recruit analysts can easily set up search plans for review and approval
- Recruit analysts can easily set up new recruitments
- Faculty search committees can quickly review applicants
- Approvers can easily review and approve search plans, shortlists and search reports
- Self-reported diversity data is available to the appropriate groups (roles)
More information about the UC Recruit System wide Initiative may be accessed on the UCI UCRecruit Project Site.
UCR Campus Deployment
The UCR campus will go live with a mandatory deployment of the AP Recruit System for all 2014-2015 academic recruitment plans covered in the Affirmative Action Recruitment Guidelines. Beginning August 8, 2014, all academic recruitment plans must be entered and approved in the AP Recruit System. A copy of the campus announcement from John Trumble, Interim Vice Provost for Academic Personnel is available here.
AP Recruit does not currently support search waivers, or other exceptions forms.
Last year, UCR launched a successful pilot deployment of the AP Recruit system in the 2013-2014AY which took place from September 2013 through June 2014. During that time, our campus managed 121 senate and non-senate recruitment plans in the AP Recruit online system.
To login to the AP Recruit system, visit https://aprecruit.ucr.edu/ after your department has granted you access.
For questions, send an email to aprecruit@ucr.edu.


3 'Jeopardy' greats to participate in ultimate primetime showdown
by Justin BoggsJust three days after James Holzhauer won Jeopardy's 2019 Tournament of Champions, he along with two other past Jeopardy champs have been invited back to participate in an ultimate showdown.
Holzhauer will be joined by Ken Jennings, who owns Jeopardy's longest winning streak at 74 games. They will be opposed by Brad Rutter, who has won the most money in Jeopardy history due to his number of tournament wins. Rutter first appeared on Jeopardy in 2000, when Jeopardy limited returning champions to five games. Rutter has since won a number of major Jeopardy tournaments, including the Ultimate Tournament of Champions.
Unlike new episodes of Jeopardy which are syndicated, these episodes will air on ABC during primetime.
The format will be a multi-, consecutive-night event, with the first contestant to wins three games being declared the champion.
Here is the schedule:
· TUESDAY, JANUARY 7 (8-9 p.m. EST)
· WEDNESDAY, JANUARY 8 (8-9 p.m. EST)
· THURSDAY, JANUARY 9 (8-9 p.m. EST)
· *FRIDAY, JANUARY 10 (8-9 p.m. EST)
· *TUESDAY, JANUARY 14 (8-9 p.m. EST)
· *WEDNESDAY, JANUARY 15 (8-9 p.m. EST)
· *THURSDAY, JANUARY 16 (8-9 p.m. EST)
*If necessary.
“Based on their previous performances, these three are already the ‘greatest,’ but you can’t help wondering: Who is the best of the best?” host Alex Trebek said.


The OnePlus site has been hacked again
Watch out for phoney phone emails
by Alan MartinCHINESE PHONE PUSHERS OnePlus seems to have a new winter tradition, right up there with Z-list pantomimes and overpriced Advent calendars: when it gets a bit parky out, watch out for phishing attempts.
Yep, it seems the January 2018 hack has a sequel, though like most Hollywood blockbusters, the follow-up is comparatively underwhelming. While the 2018 hack exposed credit card numbers, this time it's just customer names, contact numbers, email addresses and shipping information. There's no financial data or passwords, mercifully.
"Last week while monitoring our systems, our security team discovered that some of our users' order information was accessed by an unauthorised party," OnePlus wrote in a FAQ about the leak.
"We took immediate steps to stop the intruder and reinforce security, making sure there are no similar vulnerabilities. Before making this public, we informed our impacted users by email. Right now, we are working with the relevant authorities to further investigate this incident."
If this is the first you're hearing about any data leak, then you can probably relax. OnePlus says it has emailed everybody affected, and "if you don't get an email from us today, rest assured that your order information is safe." (Well, unless you were caught in the hack last time, but we're being a bit pedantic.)
Generally, nothing good comes out of data breach stories, but it looks like the embarrassment of being caught lacking twice in two years has shamed OnePlus into action. "We are continually upgrading our security program - we are partnering with a world-renowned security platform next month, and will launch an official bug bounty program by the end of December," the company wrote.
That likely won't be much consolation to you if you've received one of the emails from OnePlus today, of course, but hopefully it means we won't be writing about an unbelievable third hack in December 2020. µ
Further reading
OnePlus 8 Pro sketches confirm quad-cams and punch-hole display
- 20 Nov 2019
OnePlus 7T Pro release date, specs and price: OnePlus 7T series goes on sale
- 17 Oct 2019
- 10 Oct 2019
- 26 Sep 2019


|
Graphitti
A toolkit/software architecture to ease creating high-performance neural network simulators
|
A factory class for creating Vertices objects. More...
#include "VerticiesFactory.h"
#include "AllLIFNeurons.h"
#include "AllIZHNeurons.h"
#include "All911Vertices.h"
Go to the source code of this file.


--- layout: post title: Nullable references in C# 8.0 date: 2019-08-14 15:00:00 keywords: front dotnet teaser: There are a few aspects of C# 8.0 nullable references that may seem surprising, but I like my compiler to complain about potential problems, so I am enthusiastic about using this feature more. ---
Let's start with some background. Recall that the CLR supports value types and reference types.
Value types include primitive types like int
and double
,
but also struct
types:
struct Point { public double x; public double y; } Point p1 = new Point { x = 3, y = 5 }; Point p2 = p1; // copy the whole struct Point p3 = null; // error -- not allowed
Like all value types, structs have "copy" semantics (shown in the p2 = p1
assignment above) and they do not allow null as a value.
But if we simply change the definition keyword from struct
to class
, then variables of type Point
become references, and the semantics are different:
class Point { public double x; public double y; } Point p1 = new Point { x = 3, y = 5 }; Point p2 = p1; // multiple refs to same object Point p3 = null; // reference to nothing
Now when we assign p2 = p1
, the object is not copied, but rather, we end up with two references to the same object.
Also a reference can refer to nothing, represented with the value null.
And this can cause problems.
Consider the following (pre C# 8.0) method, a member of some sort of class which has fields _x
and _y
that represent a location. The method is used to determine the distance from its coordinates to a given point, represented by the class
form of Point
shown above.
double DistanceTo(Point p) { var dx = _x - p.x; var dy = _y - p.y; return Math.Sqrt(dx * dx + dy * dy); }
What should we do if parameter p
is null? In this implementation, a NullReferenceException
will be thrown at runtime. We want to do better. But what options do we have?
The first thing that comes to mind is to check for null before we use the reference. But then what?
This function is supposed to return a value representing the distance between two points. It MUST either return a value or throw an exception. Inserting a null check merely offers us a chance to return a different value or throw a different exception.
To throw a different exception, I suppose we could do this:
double DistanceTo(Point p) { if (p != null) { var dx = _x - p.x; var dy = _y - p.y; return Math.Sqrt(dx * dx + dy * dy); } else { throw new InvalidArgumentException(); } }
But that's really not much better than just letting the NullReferenceException
happen.
And the only option I see for returning a different value is something like this:
double DistanceTo(Point p) { if (p != null) { var dx = _x - p.x; var dy = _y - p.y; return Math.Sqrt(dx * dx + dy * dy); } else { return 42 * new System.Random().NextDouble(); } }
Which would be absurd.
So the truth is that once we have arrived in this method with a null reference, it's too late to do anything useful. If we want to "do better", we need to prevent that from happening.
Ideally, any attempt to call DistanceTo()
with a null value should be caught at compile time:
double DistanceTo(Point p) { // p should never be null here var dx = _x - p.x; var dy = _y - p.y; return Math.Sqrt(dx * dx + dy * dy); } // ... somewhere else ... // fail HERE, at compile time, not at run time var dist = p2.DistanceTo(null);
We could accomplish that by checking every call to the method and making sure that the argument cannot be null. But that's the sort of tedious work that we should expect the compiler to help with. And C# (pre-8.0) doesn't have a way to express that p
should never be null, so what do we do?.
This kind of problem is what motivated the design of the nullable references feature for C# 8.0. The designers of the feature probably continued by next asking themselves: "What kind of special syntax could we use to specify that a reference type should not be null?"
And before going very far down that line of thinking, they remembered that we already have a syntax for nullable value types. The syntax for that is to just append a ?
to the type name:
int? x = null;
That's the inverse of what we need for reference types, which are already nullable, and we need a way to make them not so. But it's a syntactic pattern that is already in the language, and consistency is important.
Bottom line, C# 8.0 uses the same syntax for nullability of reference types that we have been using for value types:
string x; // not nullable string? y; // nullable
And yes, that means that the meaning of a type declaration like string
(without the ?
) has changed.
Whoa, isn't that a massive break in compatibility? Actually no. In fact, although this feature looks like a huge breaking change, the entire thing was carefully designed to preserve backward compatibility.
 Second, all it really does is generate warnings.
For example, if you explicitly mark a reference as nullable and then dereference it, you will get a warning:
double DistanceTo(Point? p) { // p can be null, so // the compiler will complain about this: var dx = _x - p.x; var dy = _y - p.y; return Math.Sqrt(dx * dx + dy * dy); }
Note that the compiler uses flow analysis to figure out a lot of stuff. For example, it won't fuss at you about dereferencing that nullable reference if you check it for null first:
double DistanceTo(Point? p) { if (p != null) { // no warning here var dx = _x - p.x; var dy = _y - p.y; return Math.Sqrt(dx * dx + dy * dy); } else { // TODO whatever } }
In addition (and returning to the problem we initially set out to solve here), the compiler will give a warning if you do anything which might store a null value in a non-nullable reference:
double DistanceTo(Point p) { // p is not nullable, so no // warnings here var dx = _x - p.x; var dy = _y - p.y; return Math.Sqrt(dx * dx + dy * dy); } // ... somewhere else ... // but HERE, the compiler will complain: var dist = p2.DistanceTo(null);
So there is cause for optimism here. This feature can help us catch null problems earlier, before much damage is done.
Before I go on, please permit me a brief digression to ramble about how cars are different from clocks.
A clock doesn't really expect me to know anything about how it works. Clocks can have lots of cool technology inside, but generally speaking, knowing how a clock works does not help me tell time any better.
In contrast, people who know how cars work "under the hood" have a generally better experience driving and owning a vehicle. I know this because I don't know much about cars, but I know folks who do, and their lives seem to have less misery than mine.
(And it's not just cars. I also have two lawn mowers, a string trimmer, a power washer, a garden tiller, an ATV, two generators, and a snow thrower. All of them have an internal combustion engine, and because I don't know much about how such things work, I hate them all.)
But to be fair, cars mostly do function for people who don't understand them. When I get in my car, I nearly always end up where I wanted to go.
But some things are even worse than cars.
I don't have a 3D printer, but I've heard they are basically unusable without gaining a fair amount of knowledge about how they work.
Returning to the world of software, another example is C# async/await, which really doesn't work well until you understand its internals.
Finally, and getting back to the subject at hand, I'm going to claim that the C# 8.0 nullable references feature is in this bucket as well. I reserve the right to change my mind later, but right now it looks to me like C# nullable references cannot be used effectively without knowing how they work "under the hood".
It's all fake.
(kinda)
Consider the following two methods:
void Foo(string s) { // whatever } void Bar(string? s) { // whatever }
The first thing to understand is that at the CIL level, looking at the output of the C# compiler, these two methods have the same type signature. Both of them accept a parameter of type string. The code generated for these two methods will be the same. The only thing different about them is their annotations.
When Roslyn (the compiler) compiles these two methods, it will generate a C# attribute called Nullable
, and it will use that attribute to annotate things.
For Foo()
, it will include an attribute saying that the parameter should not be null.
For Bar()
, it will include an attribute saying that the parameter might be null.
And these attributes will make no difference in the behavior of the methods or in the code generated for them.
So now let us pause and observe that (as I mentioned earlier) the syntax of this feature was designed to be consistent with the way nullability is expressed for value types, but that consistency is very shallow.
In both cases, the presence or absence of the question mark is the difference between nullable or not:
// not nullable int x; string a; // nullable int? y; string? b;
So the syntax is the same, but under the hood, things are very, very different.
For value types, nullability is implemented using the CLR type system. A type declaration like int?
is just shorthand for System.Nullable<int>
, which is an actual CLR type.
But for a reference type, a declaration like string?
is just an annotation to help the compiler complain. There is no such thing as System.Nullable<string>
.
Earlier I said that the nullable references feature is turned off by default and has to be explicitly activated. This makes it sound like there is a switch that needs to be flipped, but actually it's more like two switches.
Relevant to the nullable references feature, the Roslyn compiler has two different "contexts" which can be activated. It may help to think of these contexts as "modes" which can be turned on or off.
Annotations. When annotations are turned on, then Roslyn is generating attributes to annotate nullability of things.
Warnings. When warnings are turned on, then Roslyn is paying attention to the attributes and using them to generate warnings accordingly.
These two things can be turned on or off independently, at the project level, at the file level, or even line-by-line.
The result of these annotations is a "nullability" for each relevant expression in the code, and there are four possible nullabilities:
Oblivious. This is the result when code is compiled with annotations turned off. All code compiled with C# 7.x or earlier has this nullability. It is the absence of attributes.
Nullable. The code was compiled with annotations turned on, and the type declaration was explicitly nullable. For example: string?
Not-nullable. Annotations were turned on, and the type declaration did not specify nullable. For example: string
Unknown. None of the above. Annotations were turned on, but the intent was not clearly expressed. This happens in odd cases, dark corners of the C# language where the nullable references feature isn't fully figured out yet. I mention it here only for completeness. Don't worry about it.
An important part of understanding how this feature works is understanding how to "defeat" it.
#nullable enable // turn on annotations double DistanceTo(Point p) { var dx = _x - p.x; var dy = _y - p.y; return Math.Sqrt(dx * dx + dy * dy); } #nullable restore // reset annotations back to project default // ... somewhere else ... #pragma warning disable nullable var dist = p2.DistanceTo(null); // let's tell a lie #pragma warning restore nullable
In the code snippet above, the DistanceTo()
method is being compiled with annotations turned on (see the #nullable
directives), so the parameter will get attributes saying that it is not-nullable.
However, the call to DistanceTo()
is compiled with the corresponding warnings turned off (see the #pragma warning
directives), so the nullability feature isn't giving any benefit for that call site.
At runtime, DistanceTo()
will end up throwing a NullReferenceException
in this case.
Another (more convenient) way to bend the rules is to use the so-called "null-forgiving" operator:
#nullable enable // turn on annotations double DistanceTo(Point p) { var dx = _x - p.x; var dy = _y - p.y; return Math.Sqrt(dx * dx + dy * dy); } #nullable restore // reset annotations back to project default // ... somewhere else ... Point q = null; var dist = p2.DistanceTo(q!); // another way to lie
The intent of this operator is to provide convenient syntax for cases where Roslyn believes an expression might be null but we believe it cannot be, so we want Roslyn to "trust us and be quiet about it". This operator is unofficially known as the "damn it" operator.
Finally, it is worth noting that because all these nullability annotations
are implemented in the compiler and not in the CLR's type system, another way
to store null in a not-nullable thing is to do so from another language like F#.
(Yes, given that F# has its own aversion to nulls, that's a poor choice of example,
but you get the idea. There are dozens of niche languages that can compile for
the Common Language Runtime, and any of them not based on Roslyn will probably
offer no objection if you call DistanceTo()
with a null argument.)
So, the C# 8 nullable reference feature can't actually make any strong assurances about things being null or not. This raises questions.
Is this feature even useful? (I think so)
Will we end up forced to include null checks all over the place anyway? (Probably not)
At the time of this writing, it is best to think of this feature as taking a few steps down a possibly long road which is headed vaguely in the direction of "better null handling for C#". I don't think anybody knows exactly what things will look like at the place where the road ends. Experience will tell.
Even the folks at Microsoft don't seem to have a clear vision of this yet. Apparently the Microsoft libraries are only about 20% annotated, and that effort has produced a lot of questions, plus a number of enhancements.
For example, annotation of System.Collections.Generic
highlighted that
Dictionary<TKey,TValue>
should have the ability to specify that
TKey
should not be a nullable type. So they added a notnull
generic constraint
(which looks like it'll be pretty handy).
I recommend this recent blog entry by Phillip Carter which gives mention to several other new-ish aspects of the feature that I am not going to discuss in detail here:
Nullable preconditions: AllowNull
, DisallowNull
Nullable postconditions: MaybeNull
, NotNull
Conditional postconditions: MaybeNotNullWhen(bool)
, NotNullWhen(bool)
Dependent null-ness: NotNullIfNotNull
Flow attributes: DoesNotReturn
, DoesNotReturnIf(bool)
Personally, I look forward to using this feature more, and despite my whimsical use of words like "fake" and "lie", I am not trying to criticize the work of those who designed it. Given a requirement of preserving backward compatibility, the design looks solid to me.
I am merely saying that (1) it is critical to know what the feature will or will not do for us, and (2) this feature involves a lot of complexity, and there are costs associated with that.
But overall, I am a big fan of strict compilers and static analysis, so I see this feature as a great step.


{% extends '_layouts/site' %}
{% set id = 'index' %}
{% set title = 'Terms of Service' %}
{% set content %}
{{ "# Terms of Service (\"Terms\")
_Last updated: February 05, 2017_
Please read these Terms of Service (\"Terms\", \"Terms of Service\") carefully before using the https://craftx.io website (the \"Service\") operated by CraftX (\"us\", \"we\", or \"our\").
Your access to and use of the Service is conditioned on your acceptance of and compliance with these Terms. These Terms apply to all visitors, users and others who access or use the Service.
By accessing or using the Service you agree to be bound by these Terms. If you disagree with any part of the terms then you may not access the Service.
## Links To Other Web Sites
Our Service may contain links to third-party web sites or services that are not owned or controlled by CraftX.
CraftX has no control over, and assumes no responsibility for, the content, privacy policies, or practices of any third party web sites or services. You further acknowledge and agree that CraftX shall not be responsible or liable, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with use of or reliance on any such content, goods or services available on or through any such web sites or services.
We strongly advise you to read the terms and conditions and privacy policies of any third-party web sites or services that you visit.
## Termination
We may terminate or suspend access to our Service immediately, without prior notice or liability, for any reason whatsoever, including without limitation if you breach the Terms.
All provisions of the Terms which by their nature should survive termination shall survive termination, including, without limitation, ownership provisions, warranty disclaimers, indemnity and limitations of liability.
## Governing Law
These Terms shall be governed and construed in accordance with the laws of Minnesota, United States, without regard to its conflict of law provisions.
Our failure to enforce any right or provision of these Terms will not be considered a waiver of those rights. If any provision of these Terms is held to be invalid or unenforceable by a court, the remaining provisions of these Terms will remain in effect. These Terms constitute the entire agreement between us regarding our Service, and supersede and replace any prior agreements we might have between us regarding the Service.
## Changes
We reserve the right, at our sole discretion, to modify or replace these Terms at any time. If a revision is material we will try to provide at least 30 days notice prior to any new terms taking effect. What constitutes a material change will be determined at our sole discretion.
By continuing to access or use our Service after those revisions become effective, you agree to be bound by the revised terms. If you do not agree to the new terms, please stop using the Service.
## Contact Us
If you have any questions about these Terms, please contact us.
---
CraftX
https://craftx.io
<EMAIL_ADDRESS>Minneapolis, MN, USA.
"|doxter({addHeaderAnchorsTo: ['h2', 'h3']}) }}


I am proficient in HTML5, CSS3, Bootstrap and jQuery for Front-End. I also know how to make CSS and JavaScript Animations.
Proficient in JavaScript Back-End.I can do both Functional and Object Oriented Programming.
I can do both Blog and Article writing with a basic knowledge in Content SEO, eCommerce, WordPress and Social Media.


SEARCH BY KEYWORD
Search for Shortlet Apartments around the world. It's simple, on EasySearch enter the name of a restaurant you are looking for and click on search. Alternatively, click on the search link on the top menu to view the list of all Apartments
Get to see where the apartment is located by clicking on the apartment's profile. It's even more exciting. You can get the directions from anywhere in the country.
Make a reservation for the apartment of your choice. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nulla accusamus amet numquam tempora. Consequatur incidunt laboriosam , nemo quam commodi tempora!
Contact Host to confirm your booking and to protect your payment. Lorem ipsum dolor sit amet consectetur adipisicing elit. Nulla accusamus amet numquam tempora. Consequatur incidunt laboriosam , nemo quam commodi tempora!
Find an apartment by using our filtered search engine.
Just press or click on the search button and you are all set.
Designed for convenient use on all platforms including our mobile ready web app and our mobile app coming soon to your app store


UI components sprint
Avatar design
Button design
Write story
Start now
Dropdown design
Profile
Dashboard
Logout
Card design
POPULAR
Some stuff
Very cool stuff, useful and smart
POPULAR
Some stuff
Very cool stuff, useful and smart
POPULAR
Some stuff
Very cool stuff, useful and smart
Badge design
15
8
NEW
Banner design
Stripe
A cool payment API
Start now
Full height banner
Stripe
A cool payment API
Start now
Tabs design
250
Followers
250
Followers
250
Followers
250
Followers
250
Followers
List design
77
A great product
This product is great because.
77
A great product
This product is great because.
77
A great product
This product is great because.


Home
(current)
Products
(current)
About Us
(current)
Contact Us
(current)
Cart
(current)
Place Order Next


Pomodoro Clock
A Pomodoro Clock is a productivity and time management tool used to structure work flow. Also, the user gains a sense of achievement by simply finishing a
session. Pomodoro translates to TOMATO from its Italian origin
Instructions
- Adjust 'Work Time' slider to desired length of work period (in minutes)
- Set 'Break Time' slider to desired break period
- Click 'Controls'
- 'Play' begins your session
- At anytime you may 'Pause' or 'Reset' your session by pressing the coresponding button
- Remember: You must set your times before hitting play
- Enjoy the show
Set 1min & 1min for site functionality


« CSS « CSS Reference « CSS Reference:Mozilla Extensions
The ::-moz-progress-bar
pseudo-element applies to the area of an HTML
<progress>
element that represents the amount of progress that has happened so far. This lets you, for example, change the color of progress bars.
You have pretty broad capabilities to style the bar. This can be especially useful with indeterminate bars (via the
:indeterminate
pseudo-class), where you may wish to substantially change the default appearance; you can change the width and positioning of the bar, for example. (By which we probably mean the whole element's dimensions and position, not just the painted part of the element, as featured in the screen shot below.)
This example styles the progress meter portion of the progress bar with ID redbar
with the color red.
#redbar::-moz-progress-bar { background-color: red; }
A bar using this style might look something like this:


|
Unity Texture Paint
v2.1.1
3D realtime painter for Unity
|
Class managing brush information. More...
Public Types | |
| enum | ColorBlendType { ColorBlendType.UseColor, ColorBlendType.UseBrush, ColorBlendType.Neutral, ColorBlendType.AlphaOnly } |
| Color synthesis method. More... | |
| enum | NormalBlendType { NormalBlendType.UseBrush, NormalBlendType.Add, NormalBlendType.Sub, NormalBlendType.Min, NormalBlendType.Max } |
| Brush normal information synthesis method. More... | |
| enum | HeightBlendType { HeightBlendType.UseBrush, HeightBlendType.Add, HeightBlendType.Sub, HeightBlendType.Min, HeightBlendType.Max, HeightBlendType.ColorRGB_HeightA } |
| Brush height information synthesis method. More... | |
Public Member Functions | |
| PaintBrush (Texture brushTex, float scale, Color color) | |
| PaintBrush (Texture brushTex, float scale, Color color, Texture normalTex, float normalBlend) | |
| PaintBrush (Texture brushTex, float scale, Color color, Texture normalTex, float normalBlend, ColorBlendType colorBlending, NormalBlendType normalBlending) | |
| PaintBrush (Texture brushTex, float scale, Color color, Texture normalTex, float normalBlend, Texture heightTex, float heightBlend, ColorBlendType colorBlending, NormalBlendType normalBlending, HeightBlendType heightBlending) | |
| object | Clone () |
Properties | |
| Texture | BrushTexture [get, set] |
| Brush texture. More... | |
| Texture | BrushNormalTexture [get, set] |
| Brush's normal texture More... | |
| Texture | BrushHeightTexture [get, set] |
| Brush height texture. More... | |
| float | Scale [get, set] |
| The size of the brush. It takes a range from 0 to 1. More... | |
| float | NormalBlend [get, set] |
| Blending coefficient of normal information. It takes a range from 0 to 1. More... | |
| float | HeightBlend [get, set] |
| Blending factor of height information. It takes a range from 0 to 1. More... | |
| Color | Color [get, set] |
| The color of the brush. More... | |
| ColorBlendType | ColorBlending [get, set] |
| Color synthesis method. More... | |
| NormalBlendType | NormalBlending [get, set] |
| Brush normal information synthesis method. More... | |
| HeightBlendType | HeightBlending [get, set] |
| Brush height information synthesis method. More... | |
Class managing brush information.
|
strong |
|
strong |
|
strong |
|
getset |
Brush height texture.
|
getset |
Brush's normal texture
|
getset |
Brush texture.
|
getset |
The color of the brush.
|
getset |
Color synthesis method.
|
getset |
Blending factor of height information. It takes a range from 0 to 1.
|
getset |
Brush height information synthesis method.
|
getset |
Blending coefficient of normal information. It takes a range from 0 to 1.
|
getset |
Brush normal information synthesis method.
|
getset |
The size of the brush. It takes a range from 0 to 1.


Katie Stadler
I am a fourth-year at the University of Virginia double majoring in Commerce and Computer Science with a minor in Chinese Language and Literature. I have experience in web development, database design and implementation, as well as cybersecurity. Through my coursework and my time abroad I have developed interests in software development and cybersecurity.


What's up?
just another semantic template
JAST is a boilerplate template for HTML5, it uses CSS3 for styling and jQuery for interactions and complex rendering.
The mark-up is as much as possible semantic, it means that:
JAST uses semantic HTML5 tags & makes a semantic use of classes for CSS3/JS


Botinator V1.0
Add the following scripts to your Domain
Client Manager - 1 Copy:
https://hifi-content.s3.amazonaws.com/Experiences/Releases/usefulUtilities/botinator/2019-03-30_22-37-48/assignmentClientManager.js
https://hifi-content.s3.amazonaws.com/Experiences/Releases/usefulUtilities/botinator/2019-03-30_22-37-48/assignmentClientManager.js
Assignment Client Player - Total Bots Needed:
https://hifi-content.s3.amazonaws.com/Experiences/Releases/usefulUtilities/botinator/2019-03-30_22-37-48/assignmentClientPlayer.js
https://hifi-content.s3.amazonaws.com/Experiences/Releases/usefulUtilities/botinator/2019-03-30_22-37-48/assignmentClientPlayer.js
More information can be found in the readme here:
https://github.com/highfidelity/hifi-content/tree/65ade116f7de12217875f46b90c37c9382272ba4/usefulUtilities/botinator/README.md
https://github.com/highfidelity/hifi-content/tree/65ade116f7de12217875f46b90c37c9382272ba4/usefulUtilities/botinator/README.md


Recharge Pending
Withdraw Pending
Address
Rate
Logout
Account
Rate
Exchange rate setting
Exchange rate setting
Margin Balance
:
BTC
Current Recharge Rate
:
1
=
10
BTC
Effective Time
:
Maximum Recharge Amount
:
Minimum Recharge Amount
:
Recharge Rate Is Not Set
Recharge Rate
1
mini limit
:
max limit
:
password
:
setLevel
Deadline
:
Confirm
Current Withdraw Rate
:
1
=
0.001
Effective Time
:
Maximum Withdrawal Amount
:
Minimum Withdrawal Amount
:
Withdraw Rate Is Not Set
Withdraw Rate
1
The minimum limit
:
The biggest limit
:
password
:
setLevel
Deadline
:
Confirm
Base currency agents do not need to set exchange rates


* If you want a badge on the segment-item then you add a badge object in the SegmentItem array. See the interface here.


The Carnival Sensation Cruise
The Carnival Sensation is one of the many Cruises in the Carnival line of cruises. The Sensation Left port from Miami, Florida and went to The Cayman Islands, Jamaica, and back within a span of 6 days.
The ship has a total of 13 decks. These decks Have:
You can sign up for Excursions which are activites on the islands, or you can choose to freeely explore them on your own. Some of these excursions include swimming with dolphins, swimming with stingrays, and sky lift tours among many many more.


File API & FileReader API not supported
Drag a text file from your desktop on to the drop zone above to see the browser read the contents of the file - without uploading the file to any servers.
File API & FileReader API not supported
Drag a text file from your desktop on to the drop zone above to see the browser read the contents of the file - without uploading the file to any servers.


---
title: "20+ 2009 Penny With Man Sitting On Log
Background"
description: "Lincoln penny 2009 log cabin (kentucky birth and childhood penny)."
date: "2020-07-25"
categories:
- "Logo"
images:
- "https://www.coinnews.net/wp-content/uploads/2008/09/2009-Lincoln-Penny-Reverse-Design-Images.jpg"
featuredImage: "https://www.thesprucecrafts.com/thmb/y8jZ3bA7KpLz9COnpwnoavyUzP4=/735x0/2009-lincoln-pennies-4071198_FINAL-806e223b081e4a1584c5c216436519cd.png"
featured_image: "https://www.coincommunity.com/forum/uploaded/Newbie234/20161209_DSC00286.jpg"
image: "https://i.ytimg.com/vi/nXCkUYoCPOg/maxresdefault.jpg"
---
20+ 2009 Penny With Man Sitting On Log
Background. Lincoln was born in 1809, so any object showing him sitting on a log, with an 1809 date is, at best, some commemorative trinket. 2009 lincoln cent design #1 the 2009 lincoln penny, or cent features the log cabin design symbolic of abraham lincoln's.
The other side has a lumberjack sitting on a log. What is the face value of a 1934 penny coin? Penny lane is in my ears and in my eyes.
Now answer your partner's questions.
4 sally green was a _. Man sitting near a campfire at a campsite. Definition of penny in the idioms dictionary. The letters under the dates are mint marks.some.


Syntax:
assoc item alist &key key test test-not => entry
assoc-if predicate alist &key key => entry
assoc-if-not predicate alist &key key => entry
Arguments and Values:
item---an object.
alist---an association list.
predicate---a designator for a function of one argument that returns a generalized boolean.
test---a designator for a function of two arguments that returns a generalized boolean.
test-not---a designator for a function of two arguments that returns a generalized boolean.
key---a designator for a function of one argument, or nil.
entry---a cons that is an element of alist, or nil.
Description:
assoc, assoc-if, and assoc-if-not return the first cons in alist whose car satisfies the test, or nil if no such cons is found.
For assoc, assoc-if, and assoc-if-not, if nil appears in alist in place of a pair, it is ignored.
Examples:
(setq values '((x . 100) (y . 200) (z . 50))) => ((X . 100) (Y . 200) (Z . 50)) (assoc 'y values) => (Y . 200) (rplacd (assoc 'y values) 201) => (Y . 201) (assoc 'y values) => (Y . 201) (setq alist '((1 . "one")(2 . "two")(3 . "three"))) => ((1 . "one") (2 . "two") (3 . "three")) (assoc 2 alist) => (2 . "two") (assoc-if #'evenp alist) => (2 . "two") (assoc-if-not #'(lambda(x) (< x 3)) alist) => (3 . "three") (setq alist '(("one" . 1)("two" . 2))) => (("one" . 1) ("two" . 2)) (assoc "one" alist) => NIL (assoc "one" alist :test #'equalp) => ("one" . 1) (assoc "two" alist :key #'(lambda(x) (char x 2))) => NIL (assoc #\o alist :key #'(lambda(x) (char x 2))) => ("two" . 2) (assoc 'r '((a . b) (c . d) (r . x) (s . y) (r . z))) => (R . X) (assoc 'goo '((foo . bar) (zoo . goo))) => NIL (assoc '2 '((1 a b c) (2 b c d) (-7 x y z))) => (2 B C D) (setq alist '(("one" . 1) ("2" . 2) ("three" . 3))) => (("one" . 1) ("2" . 2) ("three" . 3)) (assoc-if-not #'alpha-char-p alist :key #'(lambda (x) (char x 0))) => ("2" . 2)
Affected By: None.
Exceptional Situations:
Should be prepared to signal an error of type type-error if alist is not an association list.
See Also:
rassoc, find, member, position, Section 3.6 (Traversal Rules and Side Effects)
Notes:
The :test-not parameter is deprecated.
The function assoc-if-not is deprecated.
It is possible to rplacd the result of assoc, provided that it is not nil, in order to ``update'' alist.
The two expressions
(assoc item list :test fn)and
(find item list :test fn :key #'car)are equivalent in meaning with one exception: if nil appears in alist in place of a pair, and item is nil, find will compute the car of the nil in alist, find that it is equal to item, and return nil, whereas assoc will ignore the nil in alist and continue to search for an actual cons whose car is nil.


Condé Nast to Rethink Plastic Packaging
Magazines wrapping to explore alternatives like recycled plastic from PCR waste, biodegradable bio-based content, paper or naked mailing.
by Kaley RoshitshCondé Nast has pledged to the UN’s Fashion Industry Charter for Climate Action, becoming what the UN claims is the first media outlet to do so.
Although it’s been a trying year for media, print is not dead, but it can be made more sustainable. The media company, with titles such as Vogue, The New Yorker, GQ, Glamour, Wired and Vanity Fair, touts print distribution to more than 84 million consumers.
Francois Souchet, lead of the Make Fashion Circular initiative at the Ellen MacArthur Foundation, said the announcement is an “important signal” to many industries, including fashion.
Working closely with the foundation as part of its New Plastics Economy Global Commitment, the company aims to carve a more sustainable roadmap to 2025, starting with its packaging. Over the last year, more than half of Condé Nast’s “owned operations began phasing out fossil-based, non-recyclable plastic wrapping in subscription or newsstand uses, or both, seeking to eliminate the use of plastics altogether or to opt instead for recycled and bio-based alternatives.”
Fashion media are vying to lead environmentally. Earlier this month, fashion editors joined together in preparation for the holiday season to boycott, opt-out or selectively reduce p.r. gifting activities.
Asked if recyclable plastic is still to be used, a Condé Nast spokesperson said tests are running in a majority of its markets to uncover the best alternative, with options ranging from recycled plastics made from post-consumer recycled waste, biodegradable bio-based content, paper or naked mailing.
But where the latter three options are not feasible, the company will be working with suppliers “to ensure that magazines wrapping contains at least 30 percent PCR content.”
The spokesperson outlined the importance of sustainability to Condé Nast’s employees and its customers, even referencing market research done on Vogue’s audience that found that three in four readers consider the environmental impact of fashion as “important to them.”
Condé Nast’s first assessment report in early 2020 will outline the company’s global sustainability strategy, including targets for greenhouse gases, with an additional internal audit that covers plastic and paper.
For More Sustainability News, See:
Fashion Editors to PR Firms: Don’t Send Swag, Save the Planet
Fresh Takes on ‘Sustainability’ – Except Call It Ecology
There’s an ‘Alarming Inability to Overcome Trade-offs,’ Disparity in Sustainable Development


Reports boolean expressions that can be simplified.
Example:
true || false
After the quick-fix is applied:
true


SADB phosphorylation of gamma-tubulin regulates centrosome duplication.
Symmetrical cell division requires duplication of DNA and protein content to generate two daughter cells. Centrosomes also duplicate during cell division, but the mechanism controlling this process is incompletely understood. We describe an alternative splice form of SadB encoding a short SADB Ser/Thr kinase whose activity fluctuates during the cell cycle, localizes to centrosomes, and controls centrosome duplication. Reduction of endogenous SADB levels diminished centrosome numbers, whereas enhanced SADB expression induced centrosome amplification. SADB exerted this action through phosphorylation of gamma-tubulin on Ser 131, as expression of a phosphomimetic Ser 131-to-Asp gamma-tubulin mutant alone increased centrosome numbers, whereas non-phosphorylatable Ala 131-gamma-tubulin impaired centrosome duplication. We propose that SADB kinase activity controls centrosome homeostasis by regulating phosphorylation of gamma-tubulin.


{% extends 'base.html' %} {% block content %} {% if error %}
I was listening to random songs on Spotify while working. Jess Gillam's cover of Bowie's "Where are we now?" caught my attention. I thought there must be other great covers of the song. I created that1song to make playlists of covers of songs.


Enjoy limousine rides from experienced and talented drivers in the most exquisite cars you have ever seen. Book your ride today by filling out a short form below!
We have a plethera of experienced and superior drivers who will ensure your satisfaction for the duration of your ride.
Her Specialty is driving our Pink Limo.
Her Specialty is driving our Lambourghini Limo.
Her Specialty is driving our Truck Limo.
Her specialty is driving our Wedding Limo.
Our world renowned cars will give you a once-in-a-lifetime experience from vintage to futuristic styles, we have it all.
For any further questions or inquries, fill out this form.