 together to keep things under control.
Time to start your garden?
4/27—Once again, I drove the 68 miles round-trip to Costco. Their prices are so good and they sell quality merchandise, so it is well worth it.
4/28—In the bunny hutch we had put up some 8-foot wooden poles to hold up the tarp on top. Today I built a support system that is keeping the tarp up well—a roof it is. I love projects like this and this one turned out magnificent. I built this with leftover pallet boards, at no cost. You will see photos.
Still enjoy the horses next door.
Just today Jemma was after something, we could not tell what. Beth is very scared of snakes, that is what Jemma found. Being a baby serpent, it was quite small.
Take a trip, even for a day, to a local city or park.
Then make it a part of your life.
You will learn how my gardens are coming along.
Great Blog this week Kit and super great job with the garden boxes! I love them! Maybe I should bring over some stuff to plant in there too!!! You are putting in a lot of hard work over there so good to see. I love watching the Summers Rescue and Rehab facility and all the critters. Thank you!Optical fibre sensors and networks for environmental monitoringFull text not available in this repository.Request a copy from the Strathclyde author
Abstract
Describes the author's work on the development of fibre sensors and networks for monitoring trace gases such as methane, acetylene, carbon dioxide, carbon monoxide, hydrogen sulphide and for detection of spills of gasoline, diesel and organic solvents, all of which are important in environmental and safety management. As an example, a 45-point fibre optic sensor network has been installed on a landfill site to assess the distribution of methane generation across the site. System operation is based on near-IR absorption and is currently being extended to monitor other gases such as carbon dioxide and hydrogen sulphide. Concurrently, research is being conducted on fibre lasers for the realisation of multi-point, multi-gas monitoring systems. Based on other principles (periodic micro-bending loss effects), detection of hydrocarbon fuel spills has been demonstrated at multiple locations along the length of a specially designed fibre optic cable using standard optical time domain reflectometry (OTDR) measurements.HomeCan the Pyramids make you money??
Can the Pyramids make you money??
Fibonacci, Elliot wave, cycles and Phi all correlate. Leonardo Fibonacci was a 13th century accountant who worked for the royal families of Italy. In 1242 he published a paper entitled "liber abaci." The basis of the work came from a two-year study of the pyramids at Gizeh.
Fibonacci found that the dimensions of the pyramid were almost exactly the same as the golden mean or (.618).
The Fibonacci Summation Series takes 0 and adds 1. Succeeding numbers in the series adds the previous two numbers and thus we have 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 to infinity. At the eighth series, by dividing 55 by 89, you have the golden mean:.618. If you divide 89 by 55 you have 1.618.
Do you see the pattern? 1+1=2, 1+2=3, 2+3=5, 3+5=8, 5+8=13.....
These ratios, and several others derived from them, appear in nature everywhere, and in the financial markets they often indicate levels at which strong resistance and support will be found. They are easily seen in nature (seashell spirals, flower petals, structure of tree branches, etc.), art, geometry, architecture and music.
Why are they important to the financial markets? Because the markets tend to reverse right at levels that coincide with the Fibonacci ratios.
Elliot Wave Patterns, in short, are usually a three or five wave series of advances, or declines, that define a trend. They are the result of crowd psychology, and thus are usually more reliable when found in broader based indices, such as the S&P 500 Index, Nasdaq Composite Index, etc.
Typically, if the S&P 500 Index moves higher in a 5 wave pattern, and then falls below the top of wave 3, it signals the start of a retracement that normally consists of 3 waves.
In a bear market it works the other way. A five wave pattern defining a declining trend, which is then reversed by a 3 wave rally, which eventually reverses and another five wave pattern begins to the downside.
Finding a wave pattern that completes at a strong Fibonacci support or resistance level can be a very reliable indicator of a change in trend.
By having an Elliott Wave pattern complete right "at" a Fibonacci support or resistance level, you in essence have increased the probabilities of being correct.
An excellent book on such patterns is, "Profitable Patterns for Stock Trading" by Larry Pesavento. Larry is an authority on trading patterns, and I studied with him at his home in Arizona some years ago.
Although both Fibonacci support and resistance levels and Elliott Wave theory are good tools, they fail too many times to be used for market timing. Many would disagree with this statement, but research shows that over the years they will give accurate forecasts only about 50% of the time.''' MDPDistributionClass.py: Contains the MDP Distribution Class. '''

# Python imports.
from __future__ import print_function
import numpy as np
from collections import defaultdict

class MDPDistribution(object):
    ''' Class for distributions over MDPs. '''

    def __init__(self, mdp_prob_dict, horizon=0):
        '''
        Args:
            mdp_prob_dict (dict):
                Key (MDP)
                Val (float): Represents the probability with which the MDP is sampled.

        Notes:
            @mdp_prob_dict can also be a list, in which case the uniform distribution is used.
        '''
        if type(mdp_prob_dict) == list or len(mdp_prob_dict.values()) == 0:
            # Assume uniform if no probabilities are provided.
            mdp_prob = 1.0 / len(mdp_prob_dict.keys())
            new_dict = defaultdict(float)
            for mdp in mdp_prob_dict:
                new_dict[mdp] = mdp_prob
            mdp_prob_dict = new_dict

        self.horizon = horizon
        self.mdp_prob_dict = mdp_prob_dict
        self.index = 1

    def remove_mdps(self, mdp_list):
        '''
        Args:
            (list): Contains MDP instances.

        Summary:
            Removes each mdp in @mdp_list from self.mdp_prob_dict and recomputes the distribution.
        '''
        for mdp in mdp_list:
            try:
                self.mdp_prob_dict.pop(mdp)
            except KeyError:
                raise ValueError("(simple-rl Error): Trying to remove MDP (" + str(mdp) + ") from MDP Distribution that doesn't contain it.")

        self._normalize()

    def remove_mdp(self, mdp):
        '''
        Args:
            (MDP)

        Summary:
            Removes @mdp from self.mdp_prob_dict and recomputes the distribution.
        '''
        try:
            self.mdp_prob_dict.pop(mdp)
        except KeyError:
            raise ValueError("(simple-rl Error): Trying to remove MDP (" + str(mdp) + ") from MDP Distribution that doesn't contain it.")

        self._normalize()

    def _normalize(self):
        total = sum(self.mdp_prob_dict.values())
        for mdp in self.mdp_prob_dict.keys():
            self.mdp_prob_dict[mdp] = self.mdp_prob_dict[mdp] / total

    def get_all_mdps(self, prob_threshold=0):
        '''
        Args:
            prob_threshold (float)

        Returns:
            (list): Contains all mdps in the distribution with Pr. > @prob_threshold.
        '''
        return [mdp for mdp in self.mdp_prob_dict.keys() if self.mdp_prob_dict[mdp] > prob_threshold]

    def get_horizon(self):
        return self.horizon

    def get_actions(self):
        return list(self.mdp_prob_dict.keys())[0].get_actions()

    def get_gamma(self):
        '''
        Notes:
            Not all MDPs in the distribution are guaranteed to share gamma.
        '''
        return list(self.mdp_prob_dict.keys())[0].get_gamma()

    def get_reward_func(self, avg=True):
        if avg