text:
import React from 'react';
import ReactDOM from 'react-dom';
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
import { shallow } from 'enzyme';
import sinon from 'sinon';

import muiTheme from '../../../tests/context-mui-theme';
import SpeedDial from './speed-dial.js';
import BubbleList from '../bubble-list/bubble-list.js';
import getDomFromString from '../../../tests/utils/get-dom-from-string';
import getStylesFromDomNode from '../../../tests/utils/get-styles-from-dom-node';
import getStylesFromShallowNode from '../../../tests/utils/get-styles-from-shallow-node';

const context = { muiTheme };
const getShallowNode = props => {
	const defaultProps = {
		children: [

,
		],
	};
	return shallow(<SpeedDial {...Object.assign({}, defaultProps, props)} />, { context });
};

describe('<SpeedDial />', () => {
	describe('renders without crashing', () => {
		it('basic', () => {
			const div = document.createElement('div');
			ReactDOM.render(
				<MuiThemeProvider>
					<SpeedDial>

					</SpeedDial>
				</MuiThemeProvider>,
				div
			);
		});

		it('with BubbleList', () => {
			const div = document.createElement('div');
			ReactDOM.render(
				<MuiThemeProvider>
					<SpeedDial>
						<BubbleList />
					</SpeedDial>
				</MuiThemeProvider>,
				div
			);
		});

		it('with hasBackdrop=false', () => {
			const div = document.createElement('div');
			ReactDOM.render(
				<MuiThemeProvider>
					<SpeedDial hasBackdrop={false}>
						<BubbleList />
					</SpeedDial>
				</MuiThemeProvider>,
				div
			);
		});

		it('with enableMouseActions', () => {
			const div = document.createElement('div');
			ReactDOM.render(
				<MuiThemeProvider>
					<SpeedDial enableMouseActions>
						<BubbleList />
					</SpeedDial>
				</MuiThemeProvider>,
				div
			);
		});
		it('with enableMouseActions top left', () => {
			const div = document.createElement('div');
			ReactDOM.render(
				<MuiThemeProvider>
					<SpeedDial enableMouseActions positionH="left" positionV="top">
						<BubbleList />
					</SpeedDial>
				</MuiThemeProvider>,
				div
			);
		});

		it('with floatingActionButtonProps', () => {
			const div = document.createElement('div');
			const floatingActionButtonProps = {
				backgroundColor: '#fff',
				className: 'className',
				disabled: true,
				iconStyle: {},
				mini: true,
				secondary: true,
				style: {},
				zDepth: 3,
			};
			ReactDOM.render(
				<MuiThemeProvider>
					<SpeedDial floatingActionButtonProps={floatingActionButtonProps}>
						<BubbleList />
					</SpeedDial>
				</MuiThemeProvider>,
				div
			);
		});

		it('with primaryText', () => {
			const div = document.createElement('div');
			ReactDOM.render(
				<MuiThemeProvider>
					<SpeedDial primaryText="primaryText">
						<BubbleList />
					</SpeedDial>
				</MuiThemeProvider>,
				div
			);
		});

		it('with toolbox right', () => {
			const div = document.createElement('div');
			ReactDOM.render(
				<MuiThemeProvider>
					<SpeedDial toolbox={{ className: 'toolbox', height: 56 }}>
						<BubbleList />
					</SpeedDial>
				</MuiThemeProvider>,
				div
			);
		});

		it('with toolbox left', () => {
			const div = document.createElement('div');
			ReactDOM.render(
				<MuiThemeProvider>
					<SpeedDial positionH="left" toolbox={{ className: 'toolbox', height: 56 }}>
						<BubbleList />
					</SpeedDial>
				</MuiThemeProvider>,
				div
			);
		});

		it('with children null', () => {
			const div = document.createElement('div');
			ReactDOM.render(
				<MuiThemeProvider>
					<SpeedDial>

						{null}
					</SpeedDial>
				</MuiThemeProvider>,
				div
			);
		});
	});

	describe('prop positionV', () => {
		it('top => has top=0', () => {
			const div = document.createElement('div');
			ReactDOM.render(
				<MuiThemeProvider>
					<SpeedDial positionV="top">

					</SpeedDial>
				</MuiThemeProvider>,
				div
			);
			const element = getStylesFromDomNode(getDomFromString(div.innerHTML));
			expect(element.top).toEqual('0px');
		});

		it('bottom => has bottom=0', () => {
			const div = document.createElement('div');
			ReactDOM.render(
				<MuiThemeProvider>
					<SpeedDial positionV="bottom">

					</SpeedDial>
				</MuiThemeProvider>,
				div
			);
			const element = getStylesFromDomNode(getDomFromString(div.innerHTML));
			expect(element.bottom).toEqual('0px');
		});
	});

	describe('prop positionH', () => {
		it('top => button wrapper has top=16px', () => {
			const div = document.createElement('div');
			ReactDOM.render(
				<MuiThemeProvider>
					<SpeedDial positionH="top">

					</SpeedDial>
				</MuiThemeProvider>,
				div
			);
			const button = getStylesFromDomNode(
				getDomFromString(div.innerHTML).getElementsByTagName('button')[0].parentNode.parentNode
			);
			expect(button.top).toEqual('16px');
		});

		it('bottom => button wrapper has bottom=16px', () => {
			const div = document.createElement('div');
			ReactDOM.render(
				<MuiThemeProvider>
					<SpeedDial positionH="bottom">

					</SpeedDial>
				</MuiThemeProvider>,
				div
			);
			const button = getStylesFromDomNode(
				getDomFromString(div.innerHTML).getElementsByTagName('button')[0].parentNode.parentNode
			);
			expect(button.bottom).toEqual('16px');
		});
	});

	describe('class props', () => {
		it('find className, classNameBackdrop and classNameButtonWrap', () => {
			const props = {
				children: [

,
				],
				className: 'o-speed-dial',
				classNameBackdrop: 'o-speed-dial__backdrop',
				classNameButtonWrap: 'o-speed-dial__btn-wrap',
			};
			const wrapper = shallow(<SpeedDial {...props} />, { context });
			expect(wrapper.find('.o-speed-dial').length).toEqual(1);
			expect(wrapper.find('.o-speed-dial__backdrop').length).toEqual(1);
			expect(wrapper.find('.o-speed-dial__btn-wrap').length).toEqual(1);
		});

		it('find classNameInTransition', () => {
			const props = {
				children: [

,
				],
				classNameInTransition: 'm-bubble-list--in-transition',
			};
			const wrapper = shallow(<SpeedDial {...props} />, { context });
			wrapper.setState({ isInTransition: true });
			expect(wrapper.find('.m-bubble-list--in-transition').length).toEqual(1);
		});

		it('find classNameOpen', () => {
			const props = {
				children: [

,
				],
				classNameOpen: 'm-bubble-list--open',
			};
			const wrapper = shallow(<SpeedDial {...props} />, { context });
			wrapper.setState({ isOpen: true });
			expect(wrapper.find('.m-bubble-list--open').length).toEqual(1);
		});
	});

	describe('events', () => {
		it('on backdrop keyUp enter will close', () => {
			const props = {
				children: [

,
				],
				classNameBackdrop: 'o-speed-dial__backdrop',
			};
			const wrapper = shallow(<SpeedDial {...props} />, { context });
			const aTag = wrapper.find('.o-speed-dial__backdrop').find('a');

			wrapper.setState({
				isOpen: true,
			});
			aTag.simulate('keyUp', {
				keyCode: 13,
			});
			expect(wrapper.state().isOpen).toEqual(false);
		});

		it('on backdrop keyUp something will not close', () => {
			const props = {
				children: [

,
				],
				classNameBackdrop: 'o-speed-dial__backdrop',
			};
			const wrapper = shallow(<SpeedDial {...props} />, { context });
			wrapper.setState({
				isOpen: true,
			});
			const aTag = wrapper.find('.o-speed-dial__backdrop').find('a');

			aTag.simulate('keyUp', {
				keyCode: 10,
			});
			expect(wrapper.state().isOpen).toEqual(true);
		});

		it('on backdrop focus and blur', () => {
			const props = {
				children: [

,
				],
				classNameBackdrop: 'o-speed-dial__backdrop',
			};
			const wrapper = shallow(<SpeedDial {...props} />, { context });
			const aTag = wrapper.find('.o-speed-dial__backdrop').find('a');

			aTag.simulate('focus');
			expect(wrapper.state().isBackdropFocused).toEqual(true);

			aTag.simulate('blur');
			expect(wrapper.state().isBackdropFocused).toEqual(false);
		});

		it('on focus primary text - focus FloatingActionButton', () => {
			const onFocus = sinon.spy();
			const props = {
				primaryText: 'Hallo',
				children: [

,
				],
				classNameBackdrop: 'o-speed-dial__backdrop',
			};
			const instance = new SpeedDial(props, context);
			instance.refs = {
				btn: {
					refs: {
						container: {
							refs: {
								enhancedButton: {
									focus: onFocus,
								},
							},
						},
					},
				},
			};
			instance.handleFocusPrimaryText();
			expect(onFocus.calledOnce).toEqual(true);
		});

		it('on click open - focus first list item', () => {
			const onFocus = sinon.spy();
			const props = {
				primaryText: 'Hallo',
				children: [

,
				],
			};
			const instance = new SpeedDial(props, context);
			instance.refs = {
				list: {
					refs: {
						listItem0: {
							setFocus: onFocus,
						},
					},
				},
			};
			instance.handleFocusFirstListItem();
			expect(onFocus.calledOnce).toEqual(true);
		});

		it('on click open - focus first list item failed', () => {
			const onFocus = sinon.spy();
			const props = {
				primaryText: 'Hallo',
				children: [

,
				],
			};
			const instance = new SpeedDial(props, context);
			instance.refs = {
				list: {
					refs: {},
				},
			};
			instance.handleFocusFirstListItem();
			expect(onFocus.calledOnce).toEqual(false);
		});

		it('on click ActionButton', () => {
			const props = {
				children: [

,
				],
			};
			const wrapper = shallow(<SpeedDial {...props} />, { context });

			wrapper.find('FloatingActionButton').simulate('click');
			expect(wrapper.state().isOpen).toEqual(true);
		});

		it('on click ActionButton again', () => {
			const onClickPrimaryButton = sinon.spy();
			const props = {
				children: [

,
				],
				onClickPrimaryButton,
			};
			const wrapper = shallow(<SpeedDial {...props} />, { context });
			wrapper.setState({
				isOpen: true,
			});

			wrapper.find('FloatingActionButton').simulate('click');
			expect(wrapper.state().isOpen).toEqual(false);
			expect(onClickPrimaryButton.calledOnce).toEqual(true);
		});
	});

	describe('tabIndex', () => {
		it('primaryText should be 2', () => {
			const props = {
				children: [

,
				],
				primaryText: 'Hello',
				tabIndex: 2,
			};
			const wrapper = shallow(<SpeedDial {...props} />, { context });
			wrapper.setState({
				isOpen: true,
			});
			expect(wrapper.find('BubbleListItem').node.props.tabIndex).toEqual(2);
		});

		it('primaryText should be -1', () => {
			const props = {
				children: [

,
				],
				primaryText: 'Hello',
				tabIndex: 2,
			};
			const wrapper = shallow(<SpeedDial {...props} />, { context });
			expect(wrapper.find('BubbleListItem').node.props.tabIndex).toEqual(-1);
		});
	});

	describe('props closeOnSecondCLick', () => {
		it('false', () => {
			const props = {
				children: [

,
				],
				primaryText: 'Hello',
				closeOnSecondClick: false,
			};
			const wrapper = shallow(<SpeedDial {...props} />, { context });
			wrapper.setState({
				isOpen: true,
			});
			wrapper.find('FloatingActionButton').simulate('click');
			expect(wrapper.state().isOpen).toEqual(true);
		});
	});

	describe('direction', () => {
		it('getDirection by children `BubbleList`', () => {
			const props = {
				primaryText: 'Hallo',
				children: {
					props: {
						direction: 'down',
					},
				},
			};
			const instance = new SpeedDial(props, context);
			expect(instance.getDirection()).toEqual('down');
		});

		it('getDirection by positionV', () => {
			const props = {
				primaryText: 'Hallo',
				positionV: 'bottom',
				children: [

,
				],
			};
			const instance = new SpeedDial(props, context);
			expect(instance.getDirection()).toEqual('up');
		});

		it('renderPrimaryText returns null if direction is left or right', () => {
			const props = {
				primaryText: 'Hallo',
				positionV: 'bottom',
				children: {
					props: {
						direction: 'left',
					},
				},
			};
			const instance = new SpeedDial(props, context);
			expect(instance.renderPrimaryText()).toEqual(null);
		});
	});

	describe('alignment', () => {
		it('getAlignment by children `BubbleList`', () => {
			const props = {
				primaryText: 'Hallo',
				children: {
					props: {
						alignment: 'left',
					},
				},
			};
			const instance = new SpeedDial(props, context);
			expect(instance.getAlignment()).toEqual('left');
		});

		it('getAlignment by positionH', () => {
			const props = {
				primaryText: 'Hallo',
				positionH: 'right',
				children: [

,
				],
			};
			const instance = new SpeedDial(props, context);
			expect(instance.getAlignment()).toEqual('right');
		});
	});

	describe('style props', () => {
		it('prop style is background:red', () => {
			const div = document.createElement('div');
			ReactDOM.render(
				<MuiThemeProvider>
					<SpeedDial style={{ background: 'red' }}>

					</SpeedDial>
				</MuiThemeProvider>,
				div
			);
			const styles = getStylesFromDomNode(getDomFromString(div.innerHTML));
			expect(styles.background).toEqual('red');
		});

		it('prop styleBackdrop is color:red', () => {
			const wrapper = getShallowNode({
				classNameBackdrop: 'backdrop',
				styleBackdrop: {
					color: 'red',
				},
			});
			expect(getStylesFromShallowNode(wrapper.find('.backdrop')).color).toEqual('red');
		});
	});

	describe('states', () => {
		it('state closing', () => {
			const props = {
				children: [

,
				],
				toolbox: {
					className: 'toolbox',
					classNameMorphButton: 'morph-btn',
					height: 56,
				},
			};
			const wrapper = shallow(<SpeedDial {...props} />, { context });
			wrapper.setState({ isInTransition: true, wasOpened: true });
			const attrClass = getDomFromString(wrapper.find('.morph-btn').html()).getAttribute('class');
			expect(attrClass.search('anim-btn-morph-closing') >= 0).toEqual(true);
		});

		it('state opening', () => {
			const props = {
				children: [

,
				],
				toolbox: {
					className: 'toolbox',
					classNameMorphButton: 'morph-btn',
					height: 56,
				},
			};
			const wrapper = shallow(<SpeedDial {...props} />, { context });
			wrapper.setState({ isInTransition: true, isOpen: true, wasOpened: false });
			const attrClass = getDomFromString(wrapper.find('.morph-btn').html()).getAttribute('class');
			expect(attrClass.search('anim-btn-morph') >= 0).toEqual(true);
		});
	});

	describe('methods', () => {
		it('componentWillUnmount', () => {
			const props = {
				primaryText: 'Hallo',
				closeOnScrollDown: false,
				closeOnScrollUp: false,
				children: [

,
				],
			};
			const instance = new SpeedDial(props, context);
			instance.componentWillUnmount();
		});

		it('method: componentWillReceiveProps', done => {
			const _props = {
				isControlled: false,
				isOpen: false,
				primaryText: 'Hallo',
				closeOnScrollDown: false,
				closeOnScrollUp: false,
				onChange() {},
				children: [

,
				],
			};
			// eslint-disable-next-line
			class _SpeedDial extends SpeedDial {
				// eslint-disable-next-line
				setState() {
					done();
				}
			}
			const inst = new _SpeedDial(_props, context);
			inst.isControlled = () => true;
			expect(
				inst.componentWillReceiveProps({
					isOpen: true,
				})
			).toBe(undefined);
		});

		it('componentWillUnmount remove scroll eventListener', () => {
			const props = {
				primaryText: 'Hallo',
				closeOnScrollDown: true,
				closeOnScrollUp: true,
				children: [

,
				],
			};
			const instance = new SpeedDial(props, context);
			instance.componentWillUnmount();
		});

		it('componentWillUnmount remove scroll eventListener (closeOnScrollUp = false)', () => {
			const props = {
				primaryText: 'Hallo',
				closeOnScrollDown: false,
				closeOnScrollUp: true,
				children: [

,
				],
			};
			const instance = new SpeedDial(props, context);
			instance.componentWillUnmount();
		});

		it('componentDidMount add scroll eventListener', () => {
			const props = {
				primaryText: 'Hallo',
				closeOnScrollDown: true,
				closeOnScrollUp: true,
				children: [

,
				],
			};
			const instance = new SpeedDial(props, context);
			instance.componentDidMount();
		});

		it('handleScroll closed', () => {
			const props = {
				primaryText: 'Hallo',
				closeOnScrollDown: true,
				closeOnScrollUp: true,
				children: [

,
				],
				onClickPrimaryButton() {},
			};
			document.body.scrollTop = 40;
			const instance = new SpeedDial(props, context);
			instance.state.isOpen = false;
			instance.state.openedScrollPos = 0;
			instance.handleScroll();
		});

		it('handleScroll close scroll down', () => {
			const props = {
				primaryText: 'Hallo',
				closeOnScrollDown: true,
				closeOnScrollUp: true,
				children: [

,
				],
				onClickPrimaryButton() {},
			};
			document.body.scrollTop = 40;
			const instance = new SpeedDial(props, context);
			instance.state.isOpen = true;
			instance.state.openedScrollPos = 0;
			instance.handleScroll();
		});

		it('handleScroll close scroll up', () => {
			const props = {
				primaryText: 'Hallo',
				closeOnScrollDown: true,
				closeOnScrollUp: true,
				children: [

,
				],
				onClickPrimaryButton() {},
			};
			document.body.scrollTop = 0;
			const instance = new SpeedDial(props, context);
			instance.state.isOpen = true;
			instance.state.openedScrollPos = 100;
			instance.handleScroll();
		});

		it('handleClickCloseToolbox', () => {
			const props = {
				primaryText: 'Hallo',
				children: [

,
				],
				onClickPrimaryButton() {},
				onChangeState() {},
				toolbox: {
					height: 56,
				},
			};
			document.body.scrollTop = 0;
			const instance = new SpeedDial(props, context);
			instance.setState = () => {};
			instance.handleClickCloseToolbox();
		});

		it('updateState', done => {
			const props = {
				primaryText: 'Hallo',
				isOpen: true,
				children: [

,
				],
				onClickPrimaryButton() {},
				onChangeState() {},
				onChange({ isOpen }) {
					expect(isOpen).toEqual(false);
					done();
				},
				toolbox: {
					height: 56,
				},
			};
			document.body.scrollTop = 0;
			const instance = new SpeedDial(props, context);
			instance.setState = () => {};
			instance.updateState({ isOpen: false });
		});
	});
});


Chevron $2.5 Million Contribution a Risk to Shareholder Value?
Chervron Corporation's annual meeting this week was the scene of the most recent attempt by shareholders to get management to say how political contributions from the corporation benefit shareholders. A shareholder resolution called for a stop to the practice.
The tactic of asking the question forces a company to either not answer the question, provide a soft general non-response, or admit that they pay funds to obtain specific government contracts or legislative results, which are a benefit to shareholders. A small seven figure contribution may help bring about a huge multi-million dollar return. Chevron responded "Chevron exercises its fundamental right and responsibility to participate in the political process...advocates positions on proposed polities that will effect the Company's ability to realize strong financial returns while meeting the world's growing demand for energy."
Chevron Corporation had been criticized by some for its $2.5 million contribution the Congressional Leadership Fund, a Republican-aligned super PAC. The contribution was reportedly received on October 7, 2012, just before the 2012 general election. Public Citizen has filed a complaint with the Federal Election Commission regarding this contribution by a federal government contractor.
The Chevron board recommended that shareholders vote against the resolution to stop political sending. The resolution failed to pass, with only 4% shareholder support.
Chevron Corporation does have a federal PAC, Chevron Employees PAC. It has raised and spent $7 million since the 1983-1984 cycle. In the 2011-2012 cycle, the PAC gave out $698,000 with 92% going to Republicans. View the 2011-2012 financial profile.
The largest individual donors at Chevron have been Chairman and CEO John S. Watson who usually maxes out to the National Republican Senatorial Committee, and former chairman and CEO David J. O'Reilly who usually maxes out to the Republican National Committee.
Chevron gave $380,000 to Section 527 organizations in 2011-2012. This included $300,000 to the Republican Governors Association; $50,000 to the Democratic Governors Association; $20,000 to the Republican State Leadership Committee; and $10,000 to the Democratic Attorneys General Association.
Chevron reported spending $9.6 million on lobbying during 2012 and $3,660,000 in the first quarter of 2013. View multi-year lobbying summary.


text:
Q: Python/Pandas: updating a XML-file from pandas DataFrame I'm trying to update a xml-file with data from a pandas DataFrame:
The xml-file looks like this:
<root>
    <NetworkData>
        <Element loadid="23" type="Load" node1="N23">
            <Name>load1</Name>
            <ShortName/>
            <InputState>1027</InputState>
            <x>11</x>
            <y>15</y>
        </Element>
        <Element loadid="24" type="Load" node1="N24">
            <Name>load2</Name>
            <ShortName/>
            <InputState>1027</InputState>
            <x>0.75</x>
            <y>600</y>
        </Element>
        ...

The DataFrame looks like:

ID
x
y

23
17
29

24
123
543

...
...
...

The ID is identical to the loadid in the xml-file. My aim is to update the values x and y in the xml-file with the values from the Dataframe. Is there a easy way do to this because the Dataframe is quite long? By the way all loadids can be found as IDs in the Dataframe.
Output xml-file:
  <root>
    <NetworkData>
        <Element loadid="23" type="Load" node1="N23">
            <Name>load1</Name>
            <ShortName/>
            <InputState>1027</InputState>
            <x>17</x>
            <y>29</y>
        </Element>
        <Element loadid="24" type="Load" node1="N24">
            <Name>load2</Name>
            <ShortName/>
            <InputState>1027</InputState>
            <x>123</x>
            <y>543</y>
        </Element>
        ...

Thank you!

A: import pandas as pd
from lxml import etree

# create test dataframe
df = pd.DataFrame({
    'ID': [23,24,25,26,27],
    'x': [21,22,23,24,25],
    'y': [101,102,103,104,105]
})

# create xml as a string (in your code it could be a file)
text = '''<root>
    <NetworkData>
        <Element loadid="23" type="Load" node1="N23">
            <Name>load1</Name>
            <ShortName/>
            <InputState>1027</InputState>
            <x>11</x>
            <y>15</y>
        </Element>
        <Element loadid="24" type="Load" node1="N24">
            <Name>load2</Name>
            <ShortName/>
            <InputState>1027</InputState>
            <x>0.75</x>
            <y>600</y>
        </Element>
        <Element loadid="99" type="Load" node1="N24">
            <Name>load2</Name>
            <ShortName/>
            <InputState>1027</InputState>
            <x>0.75</x>
            <y>600</y>
        </Element>
    </NetworkData>
  </root>
'''

# convert string to xml
# (in your code it could be read from file instead)
doc = etree.fromstring(text)

# iterate over elements "Element"
for el in doc.xpath(".//NetworkData/Element"):
  # retrieve id from attribute value
  id = el.get('loadid')
  # retrieve appropriate row from dataframe
  row = df[df['ID'] == int(id)]
  # if found, update x and y
  if len(row) == 1:
      # find "x" element
      x = el.find('./x')
      # if found, update
      if x is not None:
        x.text = str(row['x'].item())
      # find "y" element
      y = el.find('./y')
      # if found update
      if y is not None:
        y.text = str(row['y'].item())
  # if there was no match found, update x and y with "0" values
  elif len(row) == 0:
      # find "x" element
      x = el.find('./x')
      # if found, update
      if x is not None:
        x.text = '0'
      # find "y" element
      y = el.find('./y')
      # if found update
      if y is not None:
        y.text = '0'

# save changed XML
# ...

redpajama_set_name: RedPajamaStackExchange


Bottled in April 2016, the 2014 Riesling Uhlen R 'VDP Grosse Lage' opens with a very clear, deep and ripe, stony-flavored Riesling bouquet. On the palate, this is a very finessed and elegant but also rich and intense... Bottled in April 2016, the 2014 Riesling Uhlen R 'VDP Grosse Lage' opens with a very clear, deep and ripe, stony-flavored Riesling bouquet. On the palate, this is a very finessed and elegant but also rich and intense Riesling full of tension and promises. This is great Riesling in the middle of nowhere at the moment. Great purity and salinity. Tasted in October 2016.


Play virus-free Virtual Villagers 4 game, download Free Version here!
By Last Day of Work - Play our safe and virus-free Virtual Villagers 4 game download, have fun!
Continue the story of Isola and its tribe of lost refugees with Virtual Villagers 4 - The Tree of Life. The island's chief is worried that life is slowly diminishing on the island and has selected a group of explorers to find the source of Isola's troubles. Through their travels, they discover, and inevitably populate, the hidden eastern shore of the mysterious island!
Journey to this exciting new area of the isle and find the cause before everything dies off! Find out how it can be solved and why it is affecting all other life. Select your explorers and lead them through all-new challenges. Build homes, gather resources, and create technologies!
With new puzzles, first-time collectibles and a fresh mystery to uncover, the island of Isola will once again captivate your imagination with what critics call "undeniably fun and long-lasting play". Download and play Virtual Villagers 4 - The Tree of Life today!
New puzzles, new collectibles, and new Island Events.
Real-time weather. Clouds, fog, and sudden downpours.
If you're looking for cheats or tips, check our Cheats section to see if there are any available. Click the following link to be taken to the Virtual Villagers 4 cheats page.
If you happen to have some hints or tricks for Virtual Villagers 4, feel free to submit them and they will be published at the above mentioned page. Please click the following link to be taken to the cheats submission form.


text:
Forums > Miami Dolphins Forums > Miami Dolphins Forum >
Breaking: Dolphins hire Dennis Hickey as GM
Discussion in 'Miami Dolphins Forum' started by Phins_Fan_87, Jan 26, 2014.
Jan 26, 2014 #81
Dolfan330 My wein is so chaffed...
ASOT said:
If you didn't notice this power structure was in place last year, and ended up in a disaster for the franchise off the field. But some people are just too blind to see through the bull****.
Last year you had the pieces of the puzzle working against each other. No cohesiveness is bound to end in a disaster. Hickey is coming in knowing his role. Perhaps you should be more vigilant and thoughtful when calling people out.
rdhstlr23 Season Ticket Holder Club Member
brandon27 said:
What does it really matter? Hickey would have still been the GM whether he was the 1st guy offered the job, or the 80th guy offered the job, at the end of the day it's still him. Sure, Ross & company valued others first over Hickey, but they didnt want to come here for whatever reasons we will never know. Christ, at least let the guy work a full season on the job before *****ing about it.
I get it, he's not a top teir guy... He's nowhere near the guy I wanted either... but he's here now. Let's at least see what he's got first...
No thanks. I'm not happy.
I'm tired of giving my trust to a team that doesn't earn it. If Hickey and this team turns it around, then so will I.
It's time the team comes back to me, rather than me always being so gung ho and positive.
ToddPhin likes this.
Alex13 Tua Time !!! Club Member
sure not the sexy pick....but there is no other chance then give him a shot...thats what we as fans need to show....patience...again
Chad Muska Season Ticket Holder Club Member
Even Dawson turned Ross down? They litteraly hired the last man on their list except for Gaine. I hate this hire. The organization he worked for 18 years wanted nothing to do with him as GM, they didn't even interview him by courtesy. Rumors are he was going to be let go after the draft. This is the guy Ross hires? Seriously? Honestly can't ****in believe it right now.
ASOT likes this.
jw3102 season ticket holder
Silverphin said:
To be fair, should we be using the Bucs' decision-making as basis as to why Hickey would not be a good GM?
Right now, I would take the decision makers of the Tampa Bay Bucs over those of the Dolphins and not even think twice about it. Perhaps you forget that Tampa Bay beat the Dolphins this past season and they were smart enough to realize that their former GM and head coach weren't getting the job done. So they replaced these individuals with better men for these two positions.
If your happy with the Dolphins getting a GM no other team has been interested in at that position during his 18 years with the Bucs, so be it. As for me, I hope he works out, but I expect that Ross will have to be making a complete overhaul of the coaching staff and the front office in the next year or two. Unless of course we get extremely lucky and Ross finally sells the team. In that case, I have no doubt the next owner will be quite willing to hire a competent GM and head coach./
fair shake...i think he deserves it...tampa bay has some playmakers at RB, S, LB and also some good players on the oline, all areas of need for us, imo
bigbry Huge Member
Alex13 said:
Agreed, give the guy a shot. lol
Patience has been what has been expected from Dolphin fans for over a decade now. I don't know how other fans might feel about it, but I say to hell with being patient any longer. I expect the Dolphins to make the playoffs next year or else Ross needs to blow it all up and start from scratch again.
If they don't make the playoffs in 2014, Philbin and his coaching staff, along with Tannehill and many of the other players on this team need to be replaced.
Puka-head and ASOT like this.
54Fins "In Gase we trust"
"Stephen (Ross) is a great owner, passionate and wants to win, but the details of the offer didn't align with my vision,'' Dawson told The Tennessean newspaper. "I turned it down because it wasn't an ideal fit for my family and me."
And so goes the reason we can't steal anyone from the Pats organization or anywhere else for that matter.
Had this guy been hired by the Jets last year, this forum would have been dying in laughter for months.
Bpk, ASOT, SkapePhin and 1 other person like this.
2socks Rebuilding Since 1973
djphinfan said:
The guy took the job, he's a personnel guy thru and thru, none of you know his true record, he deserves our support to show us whether he capable or not.
If you vilify the man before he shows you his skillset when you don't know how good he is or bad he is,what does that say about you.
Welcome Dennis Hickey..lets have some consistent drafts for once in a few decades.
Well at least he can get Aponte her morning coffee, that we know he can do
jinx Well-Known Member
54Fins said:
But... but... it's a media driven conspiracy!
jw3102 said:
i'm tired with this patience thing like anybody else on here, but what to do
woody1351 New Member
Macomb Illinois
Its hard to be excited over hiring our 6th choice and someone who couldnt get an interview for his own teams gm position.
Phins_Fan_87 Phins and Heat fan Club Member
the phins
"In scouting community, Hickey has reputation of making a lot of poor evaluations that have led to plethora of busted picks for Bucs"
Same column: "Some sources found it laughable that Hickey was interviewed for the Dolphins general manager position"
"Some in the league view Hickey as a coach and general-manager killer." http://is.gd/CwjG5P
Bpk, ASOT and UCF FINatic like this.
Shamboubou Well-Known Member
Ross should have just cleaned house from the top down. We may have lost out on a good GM to keep a below average coach and a numbers lady.
I'm just over this whole thing, after the way the year ended who gives a crap. At least he will fit right with the rest of the losers we have on this team.
ASOT, ASUFinFan and PhinsRDbest like this.
Phins_Fan_87 said:
If he is a coach killer then eventually we get what some want. Clean House/ fresh start. Hopefully it doesn't take long to get there
Lee2000 Season Ticket Holder Club Member
Pearl, Mississippi
This is a complete failure on Ross's part. If Hickey turns out ok that is what it is. But the process and Ross himself as a leader scored a complete fail here. This is as equally sad as many of us were elated on the day Ireland left. Ross just took all the air out of the ball. I am disappointed, deflated, and have little hope for this organization.
Bpk and ASOT like this.
NYFinFan Member
I'm just curious why all the negativity? He was in charge of the player scouting for the Bucs. They have had some good drafts and have good talent on the roster. I can see this being a good hire.
Jan 26, 2014 #100
ToddPhin RIP Phinsational Luxury Box Club Member
NOOOOO, come back, pasty legs, come back!!
Bpk and bigbry like this.
I would have a lot more respect for Ross if he just came out and said Aponte is the head of the football side and the GM will report to her, which is essentially what is happening. Instead he lied to the media about the reporting structure. Farmer, Caserio and Dawson were not fooled.
Think what you want of Aponte but I would rather have a structure in place that everyone understands than the confusion we currently have. The presence of Carl Peterson only creates more confusion.
NYFinFan said:
Because most wanted Ireland rehired.
We were close
LBsFinest Banned
This team is a complete and utter joke...then again, that pretty much goes without saying at this point
2socks said:
It just baffles me. Almost every single person wants Ireland gone, he's gone and we get a guy that from everything I'm reading was in charge of the drafts for the Bucs. Sure there's been some busts but they've made some really good picks under him.
I mean **** I didn't want Gaine to get the job at all but at this point with everyone turning us down I'd rather he take the job than Hickey...that way you tie his fate to Philbin and Aponte for 2014.
Bpk likes this.
lol Hickey wasn't even the best candidate from his own team...I'd rather hire Mark Dominik than him. This is so embarrassing. Stephen Ross is seriously one of the worst owners in the history of the NFL.
ASOT, UCF FINatic and ToddPhin like this.
What a bunch of Nancey's..you gotta be thick skinned to be Dolphin fan anymore.
Colorado Dolfan and slickj101 like this.
finfansince72 Season Ticket Holder Club Member
Inspired hiring. I mean the Bucs drafting and their organization as a whole is the envy of the entire league.
Fineas Club Member Luxury Box
Vendigo said:
Fret not! It won't take but 24 hours before someone will make a very compelling (as in: totally out of touch with reality) argument as to why Hickey is actually a fantastic choice, very well regarded in league circles and with an outstanding track record of finding quality players in the draft. By April, he'll look like the second coming of Ozzie Newsome, and saying otherwise will get you flogged.
There's no way to really know how much credit or blame to assign for the Bucs drafts, but I think their drafts and FA moves over the last 8-9 years have been pretty respectable. Probably as good as those Farmer, Dawson, Cesario, etc. were part of.
bigbry likes this.
Itsdahumidity X gonna take it from ya
@AdamHBeasley
Mixed reactions around the league. The good, from one plugged in source: "Hickey is actually really good."
Now the bad, from a high-ranking personnel official: "Laughing to myself. ... Good luck Joe."
Another take: "Tampa is psyched. They were going to fire him anyway. Now they don't have to pay him."
Bpk, ASOT and 2socks like this.
I think the negativity is disappointment and putting into words their frustration. We all want to win so bad. This was an opportunity to bring in someone from a winning culture. To right the ship. The way the whole search was conducted. The results. The media slamming the team and process every chance they got. Candidate after candidate turning the job down. The Aponte back stabbing in Cleveland. The questionable moral issues with Bess. The obvious dysfunction in the front office. Ross failing to recognize what was happening and doing nothing to correct it. They settled. It's depressing.
I think people wanted a big name. Someone proven or up and coming. Instead we got what appears to be more of the same old. A guy who comes from a team that isn't good. Rumors had Tampa letting Hickey go after the draft. Nothing against Hickey, he deserves a fair opportunity, most will support him until he messes up. It is a questionable hire because his own team didn't even interview him.
On a side note not sure where this is headed. Noone really know who does what going forward. This does spread around the responsibilities. Maybe next time we get what most wanted : a clean house. JMO
PapaC New Member
daniel3 said:
Some of you guys need emotional help.
I couldn't agree more!
77FinFan likes this.
bigbry said:
With you posting you are absolutely correct.
For once we agree.
Deus ex dolphin Well-Known Member
I'll take a "wait-and-see" approach to our new GM. Not thrilled, but Ireland had shown himself to be a slightly below average GM, so at least we now have some hope we MIGHT have a good GM on our hands.
On the other hand, if Khan has gotten hired as GM, I would have gotten a lot of mileage out of yelling "KHAAAAAAAAAAAAAAAAAAANNNNNNNNNN!!!!!!!" at every draft and free agent signing I didn't like.
MrClean Inglourious Basterd Club Member
The true blue beautiful Beaver State
jim1 said:
This pretty much sums it up:
11 a.m. update: The Dolphins have hired Tampa Bay personnel director Dennis Hickey as their new general manager, as Armando Salguero has reported. Tennessee's Lake Dawson turned the job down a day after New England's Nick Caserio did the same.
Tampa Bay did not consider Hickey for their GM opening, even though he had been with the organization for 18 years. Hickey spent the past three years as the team's director of player personnel, after serving six years as their director of college scouting.
Read more here: http://miamiherald.typepad.com/spor...hurricanes-marlins-chatter.html#storylink=cpy
If he wasn't even considered for the TB job after spending 18 years with the team we know that Miami signed a second tier candidate, at best. Being on shaky ground probably worked to his advantage- the team had to find someone desperate enough to take it in the rear as per Aponte and the toxic power structure. If it turns out that Hickey reports straight to Aponte, I'll just laugh and be done with it. Stephen Ross should be ashamed at how this all went down, once again Miami is a laughing stock. Pathetic.
It does not matter if he was a 2nd tier, 5th tier, 10th tier, or 100th tier candidate. All that matters is the decisions he makes with regards to personnel accrual going forward. I refuse to whine, snivel and cry about the hiring like so many here seem to enjoy doing, until he at least has a chance to prove himself in the role of Miami GM. Before the process began, he wouldn't have been my first choice, but not my last choice either. So I will take a wait and see approach.
Puka-head and slickj101 like this.
slickj101 Is Water
MrClean said:
What is another sad fact here is the Dolphins simply couldn't get anyone from a winning organization to bite. Dawn Aponte is being blamed in some ways for all of this. I am not opposed to a woman being a leader here. But the way this has been set up is putting her in the villain corner already. This is pure Ross. He should be if he isn't named the reason for this big fail. Now in the defending mode for the Dolphins, one could say to the rest of the league. "Shame on you if Dawn Aponte being your boss is the reason". I think the power structure is the reason and it wouldn't matter if it was a woman or man in the vp seat. I want to believe that. But if Dawn is the reason, shame on you.
No you can't just gloss it over. We are disappointed and are expressing it. It's clearly obvious that after Dawson turned it down, Ross said "**** it hire Hickey"....only a team apologist can see this for anything else and put a positive spin on it.
Why does it have to be a positive or a negative spin either one? How about no spin at all? Just wait and see what the man does in the job of Miami GM before either praising him or vilifying him?
Puka-head likes this.
As bad as the Brown situation was, I don't see the general reactions to their actions I see with Miami. I am not sure if Ireland or Ross, or someone else in this organization pissed a bunch of folks off. It seems that way.
I have been all over the emotional rollercoaster on this, and I wouldn't say I am happy. However, from the valley things rise. One thing is clear. If stupid continues in the player assessment situation, we have enough wolves on here to tear a good bite in Hickey's rear end.
As for Ross, he has without question sent a message of no confidence to the fans and it very well may bite him financially with ticket sales. And he has no one to blame but himself.
Bc the media has taught their sheep that every situation is a story and every story needs a spin.
MrClean likes this.

redpajama_set_name: RedPajamaCommonCrawl


Doing this is a smart move when you decide to move in together. It can feel like it's all rainbows and sunshine, but what if things change in the future. You want to protect yourself, so get a cohabitation agreement or a living agreement drawn up by a professional family lawyer.
It is a legally binding document that is drawn up by your family lawyer signed by the judge and entered into the minute of agreement records. It relates to property, children, assets, inheritance, businesses and helps for issues in the future, while you are together and living together. The agreement will not raise its head unless you decide to split up. The cohabitation agreement then is a document to refer to, hopefully making the split easier as you have already agreed things in advance.
If you have property and only 1 name is on the mortgage, don't worry, your cohabitation agreement can detail that because you pay half the bills (or whatever contribution you make) that you have rights. If you have paid a certain sum of money into the household for a period, you do have a personal stake.
If you have children, and not married, you may want to revisit the agreement. Things like the main carer, job income etc need to be documented. This is as much for your protection as the child's.
Ask for recommendations, getting a referral is so much better than just putting the words into Google. You want to deal with someone who is fair and reasonable and who will give you good advice. Check out this network of family lawyers http://helpwithfamilylaw.co.uk/ for great separation law advice or for divorce solicitors advice.


text:
Home News World War ll Veteran Urges FG To Pay His Pension
World War ll Veteran Urges FG To Pay His Pension
104- year-old World War ll Veteran of the Nigerian Army, Adamo Aduku (NAN)
A 104-year-old World War ll Veteran of the Nigerian Army, Adamo Aduku on Saturday urged the Federal Government to pay his pension.
Aduku was one of those conferred with the Chief of Army Staff World War II Veteran Award at the 2019 Army Day Celebration in Lagos.
While speaking to journalists at the event, he lamented that since he was discharged as a Private from the Nigerian Army in 1957 he was yet to receive his pension.
"I joined the Royal West African Frontier Force in 1942 in Markurdi, Benue State. Trained in Laguna and deployed to India during the World War II. I fought at Calacutta.
"I returned to Lagos in 1946 and was of the 4 Brigade Guard Group until I was discharged in that same year.
" I rejoined the Nigerian Army in 1950 in Zaria and was finally discharged in 1957 as a private soldier.
"I'm currently a farmer in Ibejukolo Omala Local Government Area in Kogi State.
"I have not being paid my pension since I was discharged and I'm appealing to the federal government to look into the matter so I can get my pension, " he said.
Oduku thanked the Nigerian Army for the award.
FG To Pay His Pension
World War ll Veteran
Previous articleKebbi College Expels Four Female Students For Alleged Lesbianism
Next articleJUST IN: Nigeria Defeat Cameroon To Reach Quarter-Finals


Title: The Land of the Free Text: 1 Peter 2:16 Today's Takeaway: Don't waste your freedom! 1. Enjoy your freedom 2. Defend your freedom 3. Advocate against ungodliness 4. Maximize your service to God May America be better because we take every advantage of our freedom in Christ!


#highlights – THE HEARTS A-Listed on BBC Radio Wales, playlisted on RADIO X + Huw Stephens airplay!
#highlights – HIDDEN CHARMS aired by Annie Mac & Huw Stephens on BBC R1 & more!
Feb Highlights – ROB BRAVERY performs the BBC 6 Music Festival + drive time Steve Lamacq!
Feb highlights – WHITECLIFF and new single airs on RADIO X, BBC RADIO 2 & more!


Updated Third Generation CO2 Laser Engraving Cutting Machine USB PORT. High Precise & High Speed. This CO2 engraving machine integrates the newest light, machine and electricity mechanical movement to design this high precise and high speed three generation modal CO2 LASER Engraver.
CorelDraw has the ability of both NewlySeal and NewlyDraw and so it can be employeed in both carving and cutting works. The Computerized Mini Laser Engraving and Cutting Machine is suitable for various materials, such as bamboo piece, double-color planks, boulder, horns, leather, crystal, wood, organic plastic, abrics, paper , film, canvas , Acrylic and Plastics. If you want to make sure this laser engraver will engrave on a certain item or cut a certain item, you are welcome to send me a sample of that item and I will test it for you.
Wood, paper, leather, cloth, Plexiglas (cuts rather shallow on normal glass), epoxy resin, density board, double-colored board, marble, plastic, rubber, crystal, bamboo and other nonmetal materials. All laser engraving machines can not carve and cut metal or ceramics. This machine is suitable to seal engraving, advertisement, art gift, garment, leather, toy, building upholster, computerized embroidery, packing and printing, paper product, garments sampling, large width tailoring, shoemaking, furniture, industry, craftwork, nameplates decorations, woodcut and other industries.
Thus lengthen electronic component's life and the higher technical volatility. High Precision Stepping motor makes engraving more precise. Interface to Computer:USB Port. Maximum Item Size to Engrave:10.25W x 8.75L x 2.85H in(260mm x 220mm x 70mm).
Power Supply:110V/60Hz for USA, Canada, Japan etc. 220V250V for other countries all over the world. Resetting Positioning:0.0004 in (0.01mm). Software Supported: CorelDraw software (both NewlyDraw and NewSeal function). Water Cooling:Water Pump include. Recommended Spare Parts/Consumables:Laser Tube, Focal lens, Reflection lens. Product Dimensions:31.4 X 19.6 X 9.8in. 1 x CO2 LASER Engraver. 1 x English User Manual. As a leading and emerging company in manufactory and exporting business, we are specialized in Business and Industrial Products, Sporting Goods, Pet Products, Home and Garden products for more than 10 years. We believe that it is our vision and mission to provide innovative products with best service and competitive price to satisfy you. Our goal is to make sure that you can find exactly what you are looking for and make it easy for you to place your orders. If you have any changes, pls inform us. These charges are the buyers responsibility. If you need to return, please check twice to confirm the item not work and contact our customer service representative, let us know the detailed problem and send us some pictures for confirmation. Please make sure that item has NO man-made sabotage. Used items will not be accepted for return. We are located in Sydney, AU. All emails will be responded to within. You need to change your order ex.
You want to check/help track your package. You Receive a Broken or Incomplete Item. General non-technical questions about items and auctions.
Q: How do I return an item? Please contact our customer service before you return an item. The item "HIGH PRECISE 40W CO2 LASER ENGRAVING CUTTING MACHINE ENGRAVER CUTTER USB PORT" is in sale since Friday, March 01, 2013.
This item is in the category "Business\Printing Equipment\Cutters". The seller is "amazingitem" and is located in SYDNEY. This item can be shipped worldwide.


Five new or recent pieces from composer Jurg Frey, alongside his 1993 work "In Memoriam Cornelius Cardew", all performed by pianist Philip Thomas, presenting slowly unfolding compositions emphasizing the physical space and time within which sounds are situated.
Recorded at St. Paul's Hall, university of Huddersfield, UK, on August 4th and 5th, 2015 by Simon Reynell.
"Jürg Frey the performer is inseparable from Jürg Frey, composer. To understand his music is to know that underlying each event, each phrase, each rest, each relationship, is the beating heart of a performing musician. Frey's sense of pitch is that of someone who knows pitch. That is, someone who knows what it is to make pitch sound, and to make sounds live and breathe, who knows how it feels for two sounds to collide in space and time, and who knows what it is for sounds to appear and then disappear, to be articulated in time. And to hear Frey make those sounds - to hear the clarinet both as an instrument communicating across centuries (how I would love to hear him perform Mozart's clarinet quintet) and as an entirely fresh sound, emerging from nothing, barely present yet imbued with a radiance that makes a nonsense of the reductionist label at times assigned to his music - is to recognise that his composed music is abundantly affirmative.
Like the music of his older friend, American composer Christian Wolff, his music is to be played and to be understood through playing. It is discovered only through the act of performance and through experiencing the sounds made alive. Unlike Wolff, however, whose unique performance strategies result in a strange, at times fragmented music, Frey's flexible treatment of older models, such as canons and chorales, is easily perceptible yet entirely fresh.
To those readers and listeners who know of Frey (born Switzerland, 1953) as part of the 'Wandelweiser' group of composers, and who consequently characterise his music as reductionist, concerned only with silence and minimal sounding events (possibly somewhat austere), the description of Frey's music above may come as something of a surprise. But, as with all groupings and labels, the story is far more muddied than the generalised perception. Frey has been associated with the Wandelweiser group - including founders Antoine Beuger and Burkhard Schlothauer, Eva Maria Houben, Carlo Inderhees, Radu Malfatti, Craig Shepard, Thomas Stiegler, Manfred Werder, Michael Pisaro, and many others, some who have come and gone, and a host of younger composers, many in their 20s and 30s - almost since its inception as a movement (founded in 1992, Frey joined the following year). His music is published by Edition Wandelweiser, which has also released a number of recordings of his music, and he plays with the Wandelweiser Composers Ensemble.
"His music shares with many of these composers an emphasis upon quiet, sometimes extremely quiet, sounds, is generally fairly slow moving, and embraces the totality of the sounding environment, whereby the physical space and time within which sounds are situated and between sounds is fundamental to the musical discourse. Shared influences might include John Cage, Christian Wolff, George Brecht and others within the Fluxus movement. Yet each of the composers listed above pursue their own compositional and aesthetic interests. Pisaro's recent work, for example, is characterised by textural multilayering, field recordings and noise. Werder's work navigates a route between a conceptual, poeticised text-based work, bordering on the non-event, and (live) sound installation. Jürg Frey's own work is diverse, including sound installations, works for electronics and electric instruments, and a number of scores for undetermined instrumentation. Some hcmf// regulars might recall his Un champ de tendresse parsemé d'adieux, premiered by the edges ensemble in 2011, comprising the sounds of falling dried leaves and very small stones and the faint whistling of the performers dispersed around the performing space. At the same time he has written some of the most harmonic and melodic music of all the Wandelweiser composers.
The works which feature in "hcmf// 2015" tend toward pitch-based compositions. There are exceptions, most notably the second string quartet, performed by its dedicatees the Bozzini Quartet. (To hear this live will be a rare treat for those of us who first encountered their recording of it, released in 2006, and were stunned by the extraordinary sonority and intimate physicality of the music.) Often familiar tonal material hovers curiously between the states of being and progressing. But lest the music becomes too familiar, too 'understood', one can sometimes sense the composer consciously rubbing out what's gone before, through repetition or silence, or change, so that what was heard becomes forgotten.


text:
Stone Engravings of Famous Warrior Pharaoh Found in Ancient Egyptian Temple
Part of one of the inscriptions found at Kom Ombo, a temple in southern Egypt. The image at the top of the inscription appears to show the king Seti I with the gods Horus and Sobek.
(Image: © Egyptian Antiquities Ministry)
A giant stone engraving that fits together like a jigsaw puzzle, found in a temple in southern Egypt, may reveal new information about a pharaoh named Seti I, who launched a series of military campaigns in North Africa and the Middle East after he became pharaoh in about 1289 or 1288 B.C., several Egyptologists told Live Science.
The engraving has both drawings and hieroglyphs on it; the engraving mentions an event that happened during the reign of Horemheb, an elite general in King Tut's army who eventually became a pharaoh.
Archaeologists with the Egyptian Ministry of Antiquities discovered the engraving while conducting a groundwater-lowering project in Aswan; inside Kom Ombo, a temple dedicated to the god Horus and a crocodile-headed god named Sobek. The temple dates back 2,300 years; the engraving may have originally been in an earlier temple, now lost, at Kom Ombo that was located on the same spot as the later temple. [The 25 Most Mysterious Archaeological Finds on Earth]
Live Science sent images released by the ministry on Sept. 30 to several Egyptologists who gave their perspectives on what the inscriptions say.
In another inscription discovered at Kom Ombo, Seti I is shown worshiping the gods Horus and a crocodile-headed god named Sobek, according to Egyptologist Peter Brand. (Image credit: Egyptian Antiquities Ministry)
"This is an exciting discovery and may be historically important," said Peter Brand, a professor of ancient history at the University of Memphis in Tennessee. The engraving, which still has yellow paint on it despite the passage of 3,300 years of time, shows Seti I worshipping Sobek and Horus, said Brand, noting that it appears to date to early in Seti I's reign.
"This [inscription] proves that the double cult of these two gods [Horus and Sobek] was already established at Kom Ombo in the 19th Dynasty of the New Kingdom period, more than 1,000 years [before] the later temple was built," Brand told Live Science.
Brand can't tell from the photos precisely what the inscription says but "this was a major royal inscription and likely contains some kind of royal decree about the king's activities in the region, perhaps a dedication to the temple of Horus and Sobek [at] Kom Ombo," Brand said. Another inscription left by Seti I (also spelled Sety I) was discovered in the past at a site called Gebel es-Silsilah, which is located to the north of Kom Ombo. "Perhaps Sety was traveling through his realm in Year One [of his reign] and made stops at Gebel es-Silsilah and then at Kom Ombo on his way south from Thebes, modern Luxor," Brand said.
Another part of the smaller inscription found at Kom Ombo has yellow paint on it despite the passage of about 3,300 years of time. (Image credit: Egyptian Antiquities Ministry)
It "would be wonderful if the text [of the inscription] contains a report on the king's military activity," Brand said, noting that Seti came from a family of military generals, and after he became pharaoh, he launched military campaigns to conquer Libya, Canaan, Syria and Nubia.
The inscription mentions Horemheb, who was pharaoh until around 1293 B.C., according to the statement. Aidan Dodson, an Egyptology professor at the University of Bristol, could tell that it mentions Horemheb on several occasions and appears to discuss an event that happened during Horemheb's reign. Dodson discovered that the giant engraving fits together like a jigsaw puzzle and sent a reconstruction to Live Science. Dodson said he will need to see better quality photos of the inscription to tell precisely what it says.
Rather then two engravings, there is one giant engraving that fits together like a jigsaw puzzle, Aidan Dodson, of the University of Bristol, has determined. (Image credit: Egyptian Antiquities Ministry/Reconstruction by Aidan Dodson)
From General to Pharaoh
Horemheb "was in fact the highest general in King Tut's army during Tut's reign. He became king by marrying into the royal family, and being head of the army probably also didn't hurt his chances of becoming pharaoh, either," Ronald Leprohon, professor of Egyptology at the University of Toronto, told Live Science.
Precisely how long Horemheb's reign as pharaoh lasted is a question that Egyptologists have long debated and the inscription, which Dodson says appears to include a date for an event that happened during Horemheb's reign, may help answer this.
In addition to the giant jigsaw puzzle inscription a statement released by the ministry suggests that another inscription that dates to the reign of Ptolemy IV (reign 222–205 B.C.) was also discovered at Kom Ombo. Pictures of this inscription have not been released.
Editor's Note: This article was updated with new information suggesting the two stone slabs fit together into one giant engraving.


text:
Trump, allies praise Syria strikes as Moscow seethes
6666, United States | April 15, 2018, Sunday @ 09:20 in World » GENERAL | By: AFP | Views: 1289
The UN Security Council meet at United Nations Headquarters in New York, on April 13, 2018. (HECTOR RETAMAL / AFP)
(AFP) - US President Donald Trump and his allies in Britain and France on Saturday hailed their joint surgical strikes in Syria over the regime's alleged use of chemical weapons, and warned Damascus that another such attack would be met with renewed firepower.
Hours later, the allies signaled their resolve to return to diplomacy, launching a new bid at the United Nations to investigate chemical weapons attacks in Syria.
They circulated a joint draft resolution at the Security Council that also calls for unimpeded deliveries of humanitarian aid, enforcing a ceasefire and demands that Syria engage in UN-led peace talks, according to the text obtained by AFP.
The narrowly targeted pre-dawn military operation, which took aim at three chemical weapons facilities, earned quick scorn from Russia, but a push by Moscow for condemnation of the strikes at the UN Security Council fell far short.
Trump and his allies ordered the rapid-fire overnight mission in response to a suspected chemical weapons attack a week ago on the rebel-held town of Douma that left more than 40 people dead.
Washington believes both sarin and chlorine were used in the April 7 attack, a senior US administration official told reporters on Saturday.
Both the regime of Syria's Bashar al-Assad and its ally Russia have denied all responsibility. Moscow slammed the "aggressive actions" of the Western coalition, but has not yet responded militarily.
US Ambassador Nikki Haley warned her UN counterparts that although the mission was designed as a one-off, that did not preclude further action against Assad.
"I spoke to the president this morning and he said: 'If the Syrian regime uses this poisonous gas again, the United States is locked and loaded,'" Haley said at emergency Security Council talks.
"When our president draws a red line, our president enforces the red line."
- Fresh diplomatic push -
Negotiations on the draft resolution put forward by the US, France and Britain are set to begin on Monday.
Among the contentious proposals, it would establish an independent investigation of allegations of toxic gas attacks in Syria with the aim of identifying the perpetrators.
Russia in November used its veto three times to bury a previous UN-led inquiry which found that Syrian forces had dropped sarin on the town of Khan Sheikhun in April last year.
On the humanitarian side, the measure demands medical evacuations and safe passage for aid convoys to be allowed to all areas.
Diplomats said it remained unclear when the council would vote on the proposal, and they were ready to allow time for negotiations to bring Russia aboard.
UN Secretary-General Antonio Guterres earlier called for restraint, asking member states "to act consistently with the charter of the United Nations and with international law, including the norms against chemical weapons."
- 'Perfectly executed' -
Just before dawn on Saturday, the sounds of massive explosions and the roar of warplanes rang out across Damascus for about 45 minutes.
"A perfectly executed strike last night," Trump tweeted early Saturday.
"Could not have had a better result. Mission Accomplished!"
Trump drew some criticism for his choice of words: former president George W. Bush notoriously stood on an aircraft carrier just a few weeks after the initial Iraq invasion in 2003 in front of a "Mission Accomplished" banner.
The targets included a scientific research facility near Damascus, and two chemical weapons facilities outside the city of Homs, the US military said, though reports said the buildings had been evacuated in recent days.
Syrian state media reported only three people injured, while Russia's defense ministry said there were "no victims" among Syrian civilians and military personnel.
According to US officials, the operation involved three US destroyers, a French frigate and a US submarine. The vessels were located in the Red Sea, the Gulf and the eastern Mediterranean.
A top Pentagon official, Lieutenant General Kenneth McKenzie, said the action would set back Syria's chemical weapons program "for years."
- Assad defiant -
The strikes were the biggest foreign military action so far against Syria's regime.
On Saturday, Trump, British Prime Minister Theresa May and French President Emmanuel Macron huddled by telephone to discuss their joint action.
"By working together, in a coordinated fashion, we can definitively prevent the Syrian regime from carrying out chemical attacks against its own people," Macron said on Twitter.
Assad, who has denied ever using chemical weapons against his opponents, responded to the strikes with a defiant vow.
"This aggression will only make Syria and its people more determined to keep fighting and crushing terrorism in every inch of the country," he said.
Assad's key ally Iran also slammed the attack, with supreme leader Ayatollah Ali Khamenei describing Western leaders as "criminals."
The targets appeared to steer well clear of any Russian personnel or equipment in Syria, where Moscow launched a military intervention in support of Assad in 2015.
The Russian military claimed Syrian air defense systems had intercepted 71 Western missiles, though the Pentagon flatly dismissed the claim and said all missiles hit their targets.
- Too little, too late? -
In central Damascus, dozens of Syrians arrived on bicycles, on foot and in cars spray painted with the red, white, and black colors of the Syrian flag, blaring patriotic tunes.
Despite the strikes, the Organisation for the Prohibition of Chemical Weapons said it was still pursuing its investigation into the Douma attack.
Thousands of rebels and civilians have since been bussed out of the town under a Russian-brokered deal. Syrian internal security forces entered Douma on Saturday and later said the town had been fully retaken.
Jaish al-Islam, the group that held Douma, said it only abandoned the town because of the chemical attack.
Ahmad, a 25-year-old mechanic who had been displaced from Douma, told AFP the Western strikes were nevertheless too little, too late.
"Assad won't collapse. They'll bomb for a day or two and then the regime will take it out on us," he said.
General » Be a reporter: Write and send your article » Subscribe for news alert
Tags: Syria, conflict, strikes
More from General →
Blinken urges calm in flaring Israeli-Palestinian conflict
World » General | 7 hours ago
World » General | January 30, 2023, Monday @19:20
UK PM fires Conservative chairman after tax probe: govt
World » General | January 29, 2023, Sunday @13:51
Israel, Gaza militants trade missiles after deadly West Bank raid
World » General | January 27, 2023, Friday @15:25
France recalls its ambassador from Burkina Faso
World » General | January 26, 2023, Thursday @12:34
Pope Francis heads to war-torn DR Congo and South Sudan
Kenyan peacekeepers arrive in DR Congo's volatile east
Ukraine official says '450 graves' found near recaptured Izyum


text:
Q: How can I fill null values with a mean using Pandas? Having a hard time understanding why the apply function isn't working here. I'm trying to fill the null values for SalePrice with the mean sales price of their corresponding quality ratings (OverallQual)
I expected the function to itterate through each row and return the mean SalePrice for the coresponding OverallQual feature where SalePrice is a null, else return the original SalePrice.
sale_price_by_qual = df.groupby('OverallQual').mean()['SalePrice']

def fill_sales_price(SalePrice, OverallQual):
   if np.isnan(SalePrice):
      return sale_price_by_qual[SalePrice]
   else:
      return SalePrice

df[SalePrice] = df.apply(lambda x: fill_sales_price(x['SalePrice], x['OverallQaul]), axis=1)

KeyError: nan

A: could you maybe save the mean value into a variable and then do the .fillna()?
x = your mean value
df[SalePrice] = df[SalePrice].fillna(x)

A: Try this,
def fill_sales_price(SalePrice, OverallQual):
  if np.isnan(SalePrice):
     return sale_price_by_qual[OverallQual]
  else:
     return SalePrice

df['SalePrice'] = df.apply(lambda x: fill_sales_price(x['SalePrice'], x['OverallQual']), axis=1)


text:
Deputy Sheriff Rueben Fox
Anderson County Sheriff's Department
Anderson County Sheriff's Department, Tennessee
End of Watch Friday, August 20, 1943
Rueben Fox
Deputy Sheriff Rueben Fox was shot and killed while attempting to arrest a U.S. Army deserter at the home of the man's mother in Bryceville.
The subject had been handcuffed but requested to get a change of clothes. As Deputy Fox escorted the man into the home the man's mother interfered with the arrest. During the ensuing struggle the man was able to gain control of Deputy Fox's service revolver and shot him in the back several times before fleeing.
The man was arrested by the LaFollette police chief several hours later. He was charged with murder and being AWOL. The man's mother and grandmother were charged as accessories.
Five weeks later the 18-year-old suspect was convicted of manslaughter and sentenced to two to 10 years.
Deputy Fox was survived by his wife.
Weapon Officer's handgun
Offender Sentenced to 10 years
Rest in peace always knowing that your service and sacrifice will be remembered by your law enforcement brethren.
Detective Cpl/3 Steven Rizzo
Delaware State Police (Retired)


text:
The Alliance of Democrats (, SD) is a Polish centrist party.  Initially formed in 1937, the party underwent a revival in 2009, when it was joined by liberal politician Paweł Piskorski, formerly a member of Civic Platform.

History

Formation (1937-1939)
The Alliance of Democrats has its origins in the Democratic Clubs, which were opposed to authoritarian and nationalistic tendencies in the Second Republic of Poland between the two World Wars (1919–1939). The first club was founded in Warsaw in September 1937, and by 1938 there were clubs in all major urban centres, with active participation of the co-founders of Polish independence, whose primary objective was ensuring a fully democratic political system in Poland. The national founding convention of the Alliance of Democrats was held on 15 April 1939. The Declaration of Policy included such issues as improvement of the national economy, a development plan to raise the level of education, and modernisation of the armed forces. Mieczysław Michałowicz, a member of the Senate, was appointed the first party leader of the Alliance.

World War II years (1939-1945)
During World War II, a significant number of Alliance members were involved in the anti-Nazi Polish underground. One of its major leader was active in the Vila Ghetto. It was partly due to their initiative that Żegota, the Council for Aid to Jews, was founded in 1942 as well as the Social Organisation for Self-Defence. The Alliance of Democrats and other political and social organisations set up the Association of Democrats, which then entered the Council of National Unity, the Polish Underground State Parliament. In 1943 SD split into two factions, one of which supported the Polish Government-in-Exile in London, and the second co-operated with the communist Polish Workers' Party and recognized the State Country Council as the actual parliament and the Provisional Government of National Unity as the actual government of Poland. In 1945, following the Red Army seizure of Poland, two members of the Association, Eugeniusz Czarnowski and Stanisław Michałowski, were arrested by the NKVD and tried in the Stalinist-orchestrated Trial of the Sixteen, aimed at eliminating non-communist Polish political leadership.

The London faction ceased to exist in 1945.

During Communism (1946-1988)
In the People's Republic of Poland SD became a "satellite" party of the communist Polish United Workers' Party (PZPR) regime (similar parties existed in East Germany and Czechoslovakia). Even so, the party managed to sustain its non-Marxist orientation.

At their 12th Convention in 1981, the Alliance put forward proposals to establish a Tribunal of State, a Constitutional Tribunal, an Ombudsman Office, and to restore the Senate. Furthermore, the convention suggested that 3 May, the anniversary of the Constitution of 3 May 1791, should become a national holiday, as it had always been for the Alliance of Democrats. After martial law was declared in Poland in 1981, a group of MPs representing the Alliance, Hanna Suchocka, Dorota Simonides and Jan Janowski among them, voted against abolishing the Solidarity Trade Union. Some Alliance members became engaged in the activities of the anti-Communist underground opposition.

Fall of Communism and post-communist era (1989-2009)
In 1989 representatives of the Alliance of Democrats participated actively in the Round Table negotiations. Following the elections of 4 June, the Alliance, with the United People's Party and the Solidarity Civic Parliamentary Club, formed a coalition, supporting the government of Tadeusz Mazowiecki as Prime Minister, the first democratic government since 1939. Three Alliance members were nominated to governmental posts: Jan Jankowski as Deputy Prime Minister, Aleksander Mackiewicz as Domestic Market Minister and as Minister of Communications, Marek Kucharski, who is today the Secretary General of the Alliance. At the motion of the parliamentary party of the Alliance, the anniversary of the Constitution of 3 May was proclaimed a national holiday, the state again assumed "Republic of Poland" as its name, and an eagle wearing a crown was restored as the national emblem.

After 1990, most of the members of the SD joined other parties, such as the Freedom Union. The party continued to exist, but had only a small support base, and was not represented in the Polish parliament.

Rebirth after 2009
Due to the financial considerations required under the Polish political system, parties need to have sufficient funding to finance large-scale campaigns if they are new or have recently obtained under 3% of voters' support. The Democratic Party possessed a large number of properties, which made it possible to finance several political campaigns after sale of these properties. The value of its assets is estimated at PLN 65 to 250 million, as the Rzeczpospolita newspaper calculated.

After 2009 new politicians joined the party, such as centrist-conservative Paweł Piskorski. The party restored their representation in parliament, by taking over of the members of the Democratic Party – demokraci.pl group consisting of three members (including Marian Filar, Bogdan Lis and Jan Widacki). After Paweł Piskorski rise to the leadership of the party many of its old members of party resigned from being members of SD. In the 2009 European Elections, the party's candidates obtained 0.027% of votes because of registration problems and lack of organisation. Since May 2009 the Alliance of Democrats has been a member of the European Democratic Party. SD supported former Minister of Foreign Affairs Andrzej Olechowski's candidature in the 2010 presidential election. In the 2011 parliamentary elections Alliance did not register any lists but three candidates who were enlisted on the Poland Comes First election list but were supported by SD received 0,0031% of votes. The Party was to announce its new political programme at its XXVI Congress.

Before the 2019 European election SD declared its desire to join the European Coalition, however, none of the party members were on its electoral list.
Before the 2019 parliamentary election SD joined the Polish Coalition. Several members were on the PSL list, but they had not won any seats in the Sejm.

Chairmen of the party since 1939
1939–1940 Mieczysław Michałowicz
1940–1942 Stanisław Więckowski
1942–1943 Mieczysław Bilek
1943–1944 Jerzy Makowiecki
1944–1945 Erazm Kulesza
1945–1949 Wincenty Rzymowski
1949–1956 Wacław Barcikowski
1956–1969 Stanisław Kulczyński
1969–1973 Zygmunt Moskwa
1973–1976 Andrzej Benesz
1976–1981 Tadeusz Witold Młyńczak
1981–1985 Edward Kowalczyk (politician)
1985–1989 Tadeusz Witold Młyńczak
1989–1990 Jerzy Jóźwiak
1990–1991 Aleksander Mackiewicz
1991–1992 Zbigniew Adamczyk
1992–1994 Rafał Szymański
1994–1998 Jan Janowski
1998–2002 Jan Klimek
2002–2006 Andrzej Arendarski
2006–2009 Krzysztof Góralczyk
2009–  Paweł Piskorski

Electoral history

Sejm elections

References

External links

1937 establishments in Poland
Centrist parties in Poland
European Democratic Party
Liberal parties in Poland
Political parties established in 1937

redpajama_set_name: RedPajamaWikipedia


A London based FinTech start up are looking for a Senior SRE to join the London based team. As part of a small, agile, high-growth team, the successful SRE will be running and managing a SaaS platform, building automated tools from scratch to improve availability, performance, uptime and response time across London and San Francisco. Working in a continuous release environment, the successful SRE will need strong experience with rapid engineering, tooling and automation development.


Today's Brinjal Curry is a very traditional and authentic recipe prepared on special occasions. In Chennai, especially in Muslim marriages, this brinjal curry is served with biryani and it tastes absolute awesome.
1. Wash and slit brinjals to lengthy slices.
2. Roast peanuts, methi, sesame seeds in a dry pan.
3. Allow to cool and grind it to pwd.
4. Soak tamarind in warm water for 10 mins and extract thick juice out of it.
7. Add the slit brinjals and stir well.
8. Add turmeric pwd, sambar pwd, salt and combine.
9. Keep the flame in simmer and stir for 2 more mins.
10. Now add thick tamarind water and bring it to boil.
11. Cook covered in simmer.
12. Once the brinjal is cooked ( take care brinjal shouldn't turn mashy ) and the curry is thickened, add the freshly grinded masala pwd ( of step 3 ) to the curry.
14. You can alter the spice levels according to your taste.
15. Turn off flame and garnish with fresh coriander leaves.
16. Tangy Brinjal gravy is ready with traditional yumm taste.
17. It makes an excellent combo with hot n spicy biryani's.
Delicious curry it goes with everything.
love eggplants and this looks so delicious and tempting.
Looks delicious. Love the combination of spices.
Wow looks so delicious and inviting brinjal curry.
Thanks for sharing, that's a very much needed recipe !
Looks very tempting. Bookmarked this.
This is a brilliant idea. I am so glad that I happened to stumble upon your blog. This is really useful and thanks you so much for making it so easy to navigate.
Amazing Curry ..got the taste i have been wanting for a long time..super taste..thanks jayaka..
Have to add sambar powder or red chilly powder? U mentioned both.
Hy afrin, its red chilly pwd to be used.


A powerful idea took hold in western culture, in the early and mid-20th century, that domesticity was bad for art. It probably began earlier in France, where all the ideas used to begin: there's Daumier's despised bourgeois paterfamilias, promenading with his pram—or Charles Bovary cleaning his teeth with his tongue after dinner at home, his wife Emma going crazy from tedium and unfulfilled desire. Bourgeois respectability and the domestic are tangled in the same condemnation, the same mocking laughter. Happy endings are for stupid people. At the end of Flaubert's A Sentimental Education Frédéric Moreau and his old friend, disenchanted with love and politics, reminisce tenderly about a youthful visit to a brothel.
In the English-language novel in the 19th century there were probably too many stories celebrating romantic love, culminating in happiness round the domestic hearth. Who isn't grateful for Beckett's grotesques, kicked down the front steps of the family home, expelled from comfort and complacency, outraging all the pieties? Or for Lawrence's wanderers, shaking the dust of England off their shoes, raging against its false consciousness, its salacious prudery? Nobody could want to undo the revolutionary insights of the modernists, stripping away accretions of fakery, building an art out of refusal and disgust. There was a lot to refuse and be disgusted by. The roots of modernism were in the Romantic individualistic rebellion against consensus, against the received idea.
My hunch is that although the novel can do almost anything when it's done right, it's really most at home when it's at home.
So on the one hand the ruthless adventure of art, slamming doors behind it, despising false consolations; on the other hand home and family, daily housework, intimate relations, a private life indoors. After all, somebody had to push the pram, take it out shopping, park it in the hall, cook, care for the baby. The rearing of children and the maintenance of a home exact, if they're done sanely and adequately, some of those elements most antithetical to a Beckett-spirit: routines and affections and consolations—even cheerfulness.
Mournful perhaps to think that those doting mothers and nannies might only have been raising modernists to repudiate them eventually. Or that some of the mothers and nannies might have been modernists too, if only they could have got away: because some women writers, given half a chance, or taking the chance for themselves, could be every bit as ruthless as the men. There's nothing very domesticated, or at least not at first sight, about the novels of Jean Rhys or Elizabeth Bowen.
The novel form, however, has always had a special relationship with the daily transactions of the domestic lives of the middling classes, lived out inside the rooms of their houses. In its very shape and mode—its expansive, meandering formlessness, its sheer extension, the everyday register of its language, its plots made from the real-seeming stories of middling lives—resembles those lives. If aristocratic form is exquisite, exceptional, heightened and stylish, then bourgeois form is everyday, cumulative, prolix. There's an appealing naivety, almost, built into the foundations of the novel form and its efforts at lifelikeness—however sophisticated its superstructures.
My hunch is that although the novel can do almost anything when it's done right, it's really most at home when it's at home. Born in its true shape in the bourgeois 18th century, that era of burgeoning literacy and print and urbanization and social mobility, and written and read from the very beginning by so many women, it side-stepped the traditions of male education. For centuries men had been educated mostly through the classics, trained in conventions of rhetorical address, fixed categories of subject matter and style. In the novel, women took the pen into their hands and wrote about the daily life they knew, in the vernacular language of everyday. And men did too, of course.
You want unsentimental? Women can be so unsentimental it's frightening.
Yes, in the novel there were courtship and adultery again—there had always been courtship and adultery. But now the novel wondered newly—in its literal-minded way, which always risks banality—what was she wearing, when she got his letter? What chores was she busy with when it arrived, or was she reading? What did she do the next day after the letter, and the one after that? What did she eat? How did time pass, while her lover was away adventuring, and while exaltation faded? Slowly, slowly, is probably the answer.
Only a novel could have made actual on page after page, dusty hour after dusty hour, the long days while Balzac's Eugènie Grandet waited for her faithless cousin to return, or Anna Karenina idled away her new life with Vronsky, in which the moral spring was broken because she was ashamed of what she'd done.
Perhaps an element in the brilliant modernist élan was the desire of male writers to seize back the novel from the women whose domesticating agenda they perceived as having controlled it for so long—at least in England and America. You can feel it in Beckett and Lawrence: women are dangerous because they're sentimental, they want to tell a sentimental story, a banal one. Then there are the women writers like Rhys and Bowen, pushing back. You want unsentimental? Women can be so unsentimental it's frightening. Yet their terrain is still recognizably indoors, inside those rooms, wearing those clothes, living through those hours, still measured by the patriarchal clock on the bourgeois mantelpiece.
Do we still think, a hundred years later, that domesticity is bad for art—bad for the novel especially? So much has changed. At least these days no one's dusting the old patriarchal clock. Everyone gets very excited, now, when a man writes about a man doing housework, or changing a nappy. But we may have new doubts, making our material out of family life—especially bourgeois family life —and the intricacies and inwardness of our private selves at home. Isn't this domestic material too small and cosy, too complacent, in a globalized world where we meet on our screens every day the eyes of the ones who don't have homes, or have been forced to leave them?
The novel tends to be parochial because it's so good at representing the particular—this character, here in this place, thinking and feeling now. It's so difficult to open this work of close representation to the range of abstraction and generality that our global politics requires of us. And then, how to put climate change and its implications into a novel? The crisis can seem to dwarf the scale a novel works at.
In the novel, women took the pen into their hands and wrote about the daily life they knew, in the vernacular language of everyday.
Tolstoy late in his life said that he didn't want to write novels about adultery any longer, or fine feelings among the privileged classes; he would dedicate himself from now on to reading the Gospels, writing moral fables for the people. Probably his convulsion of disgust and refusal should haunt us every day, when we sit down to write. And yet I still believe that the best things a novel can do are through its minuteness, its parochialism. This particular character, in this particular landscape or streetscape or interior: the reader's imagination lifts in pleasurable recognition to the truth of the moment as it's caught, exactly right, in the words and sentences—even if this reader is recognizing something they've never seen. A reader in Indonesia, say, coming across a copy of Dubliners, or a reader in Britain picking up a novel set in Nigeria at the time of the Biafran war.
Any novelist now, trying to catch domestic life indoors inside a family in the UK or in America, may also want to mark on their pages the traces of our modern angst, our conscientious unease, that pressure of a globalized awareness. Novelists aren't required to answer the existential questions—how should we live? how can we change? But they can show how this guilty unease might afflict the characters in their stories. Like the women and men in a Chekhov play, apparently so convinced that generations in the future would live more sanely, more purposefully, with grace and meaning. Chekhov wasn't really very interested in asking whether this improvement might come about in reality—how could he know, how could anyone? His business was making a portrait of those characters as they lived then, comical and poignant, submerged in their imperfect present and yet dreaming of change, of something different.
Tessa Hadley is the author of five highly praised novels: Accidents in the Home, which was longlisted for The Guardian First Book Award; Everything Will Be All Right; The Master Bedroom; The London Train, which was a New York Times Notable Book; and Clever Girl. She is also the author of two short story collections, Sunstroke and Married Love, which were New York Times Notable Books as well. Her stories appear regularly in The New Yorker. She lives in London. Her new novel, Late in the Day is available now.


text:
Q: how to check data from 1 multidimensional array in other multidimensional array I have 2 multidimensional array. First one is $voucher_menu will be return to this following array :
this one is print_r :
Array
(
[menu_0] => Array
    (
        [menu_id] => 521
        [qty] => 1
        [choice] => Array
            (
                [0] => 1
                [1] => 6
            )

    )

[menu_1] => Array
    (
        [menu_id] => 525
        [qty] => 2
        [choice] => Array
            (
                [0] => 8
            )

    )

[menu_2] => Array
    (
        [menu_id] => 520
        [qty] => 3
        [choice] => Array
            (
            )

    )

)

And the second one $item_cart will return to this following array :
Array
(
[menu_0] => Array
    (
        [menu_id] => 517
        [qty] => 1
        [choice] => Array
            (
                [0] => 11
                [1] => 12
            )

    )

[menu_1] => Array
    (
        [menu_id] => 525
        [qty] => 1
        [choice] => Array
            (
                [0] => 8
            )

    )

[menu_2] => Array
    (
        [menu_id] => 521
        [qty] => 2
        [choice] => Array
            (
                [0] => 2
                [1] => 6
            )

    )

[menu_3] => Array
    (
        [menu_id] => 520
        [qty] => 3
        [choice] => Array
            (
            )

    )

 )

I want trying to validate all data in $voucher_menu from the menu_id, the value of qty and choice should be haved in $item_cart.
This is my code what i have done :
for($i=0;$i<count($voucher_menu);$i++){
    if(count($voucher_menu["menu_".$i]["choice"]) != 0) {
        $variant_menu[] = $voucher_menu["menu_" . $i]["choice"];
    }
}

    $valid = true;
    foreach($voucher_menu as $row){
        $pass = false;
        foreach($item_cart as $value) {
            if ($row["menu_id"] == $value["menu_id"]) {
                if (isset($variant_menu)) {
                    if(count($row["choice"]) > 0) {
                        $variant = in_array($row["choice"], $value["choice"]);

                    }

                }
                if ($variant == true) {
                    $pass = true;
                    break;
                }
                if ($row["qty"] <= $value["qty"]) {
                    $pass = true;
                    break;
                }

            }
        }

        if(!$pass){
            $valid = false;
            break;
        }
    }

    if($valid == true){
        echo "You got your discount";
    }else{
        echo "You dont get any discount";
    }

I can validate the menu_id and the qty of item but i dont know how to validate the choice.
I want if in $voucher_menu and if the menu_id have choice and the array of choice is not 0, than the value choice should be same in item_cart
guys can you help me how to check the choice? or if you have the other way to validate data from $voucher_menu to $item_cart please show me.
thank you (:
p.s the choice string is id and will be return different id if the menu_id are different
so if menu_id is 521 the choice is 1, 6 in other menu_id will not 1,6

A: Try array_diff or array_intersect
With array_diff you can do the following within your loops:
$variant = count(array_diff($row["choice"], $value["choice"])) == 0;

You might even experiment with doing an array_diff on the whole array of menus and checking if qty was different, simplifying the code greatly.


text:
Review | The Song of Achilles by Madeline Miller
I've been sitting on a review of The Song of Achillesfor some time now. And it's simply another case of me worrying I won't do justice not just to the book, but to (perhaps even more importantly) my feelings for the book. I was attempting to do just that a number of nights ago with a friend, and wound up choked up and slipping the tears from my eyes as I touched on a scene of inevitable sorrow. My emotions continue to ride ever so close to the surface with this book, with Patroclus and Achilles. I stayed away from Madeline Miller's debut novel for awhile for several reasons, among them my fear of said sorrow as well as the usual concern when one comes to a retelling of characters and stories one loves. But eventually that cover—the gold foil, you guys, the glorious gold foil—and the parade of ecstatic reviews got to me enough that I grabbed a copy the next time I was at the library and settled down that night to see.
Patroclus has always led the uneasiest of lives. Di…
Cover Reveal: All for You by Laura Florand
Forget what I said before about pacing ourselves when it comes to upcoming pretties. We are just gonna go ahead and switch over our regular programming to All Covers All The Time. And today's reveal is an absolute delight. You all know how I feel about Laura Florand's Amour et Chocolat books, which is to say roughly how I feel about a box of delicate macarons, a cup of rich hot chocolate, and a plane ticket to Paris—put them in my hands. So that's why I was over the moon to hear Laura is launching a whole new series set in Paris and featuring three young women attempting to make their way in the male-dominated world of French haute cuisine. All for You focuses on Célie who was Dom's chef chocolatier in The Chocolate Touch, which thing fills me with glee. Because snippets of Dom! Some crushes aren't meant to be
When her older brother's best friend left to join the Foreign Legion, eighteen-year-old Célie moved on to make a life for herself as a Paris chocolatier. Now, fi…
A Curious Beginning Cover
Normally, I like to space out the book cover posts a tad. But I simply couldn't wait with this gorgeous cover (her dress . . . the fog . . . gah) just being revealed for A Curious Beginning—the first book in Deanna Raybourn's upcoming Victorian mystery series. The series follows Veronica Speedwell—a scientist with a taste for adventure. There is an enigmatic German baron, a bad-tempered historian named Stoker, murder, mayhem, oh my. A Curious Beginning is due out September 1st. Yippee!
Beastly Bones Cover
I have been on pins and needles ever since finishing Jackabyfor news of the sequel, and now it's finally here! I love this cover, you guys. I love the colors, I especially love that it's Abigail's silhouette, and I can't wait to hold it and admire it on the shelf rubbing shoulders with its predecessor. I'm very much looking forward to finding out what beasties Abigail and Jackaby (and Charlie!) will be tracking this time around. I will confess to having been hoping the next one would be titled simply Rook. But, alas, it was a meager hope at best. Beastly Bonesis due out September 22nd. Until then, we shall have to make do with dreaming.
Review | Carolina Home by Virginia Kantra
Glowing recommendations from my trusty Chachic and the lovely Laura Florand put this book (and series) on my radar awhile back and I proceeded to add it to my ever-growing TBR. And then I just sort of continued to put it off since a copy wasn't readily available at any of the usual sources and the ebook was (and is) a whopping $7.99. Then I hit a sick weekend and nothing, but nothing was hitting the spot. So I bit the bullet and dove in. It's worth pointing out that I'm not a huge connoisseur of small town contemporaries, and I was not a little concerned that it would prove to be (as has happened a number of times in the past) a little too cozy for my taste. But of course the range within that subgenre is as wide as it is with any other, and I think I just hadn't come across the right recipe. Happily, Virginia Kantra's Dare Island series hit just the right spot for this quasi-cozy-phobic reader.
Allison Carter came to Dare Island in the hopes of shedding the scale…
Review | Aristotle and Dante Discover the Secrets of the Universe by Benjamin Alire Sáenz
All right. I can accept that I am coming monumentally late to the party with this one. And I have no excuses for myself. Plenty of you sang its praises, and that many award stickers plastered all over a cover generally indicate there is something of value inside. To say nothing of that ridiculously gorgeous cover declaring to all and sundry that herein lie beautiful things. Basically, everything pointed to win and I just failed to pick up on the signals. To the degree that I didn't even really know what Aristotle and Dante Discover the Secrets of the Universewas about. At all. Fast forward a couple of years to the present day when I run across Forever Young Adult's review and finally have my ah-ha moment. I ran to my local library, snagged their lovely copy, and took it home with me to see how these fancifully-monikered boys and I would get on. Spoilers: SPLENDIDLY.
I had all kinds of tragic reasons for feeling sorry for myself. Being fifteen didn't help. Sometimes I thou…
Bibliocrack Review | Pairing Off by Elizabeth Harmon
I have my pal Li to thank for steering me in the direction of Elizabeth Harmon's debut novel Pairing Off. She clued me in to its existence, pointed out that it featured Olympic figure skaters, and well . . . that was all she wrote, folks. I am a huge figure skating fan. And while I actually haven't read many books that focus on the sport, there was simply no way I was going to not read a book billed as "The Cutting Edge with a Russian twist." I adored that movie as a kid. As you can probably tell, I haven't been so much with the review writing of late. Happily, that is in no way an indication of how my reading has fared, because I have been reading up a storm. But lately I never seem to get around to sitting down and hashing it out. But with the figure skating World Championships coming up in a couple of weeks, I thought it was the perfect time to highlight this little gem.
Carrie Parker is fairly certain life as she knew it is over when her career as a pairs fi…