text:
[![Build Status](https://travis-ci.org/akhenda/cp1a.svg?branch=master)](https://travis-ci.org/akhenda/cp1a)
[![Coverage Status](https://coveralls.io/repos/github/andela-akhenda/cp1a/badge.svg?branch=master&update=4)](https://coveralls.io/github/andela-akhenda/cp1a?branch=master)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/867bd5023ec34cf6973af2d12ccfba28)](https://www.codacy.com/app/joseph-akhenda/cp1a?utm_source=github.com&utm_medium=referral&utm_content=andela-akhenda/cp1a&utm_campaign=Badge_Grade)
[![Code Health](https://landscape.io/github/akhenda/cp1a/master/landscape.svg?style=flat)](https://landscape.io/github/akhenda/cp1a/master)
[![license](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/akhenda/cp1a/blob/master/LICENSE)
[![PyPI](https://img.shields.io/badge/Python-2.7-blue.svg)](https://www.python.org/downloads/release/python-2712/)

# Amity Space Allocation

Amity is a Python Console Application for one of Andela's facilities called Amity. Amity creates rooms which can be offices or living spaces. An office can occupy a maximum of 6 people. A living space can inhabit a maximum of 4 people. It also creates and allocates a person rooms. A person to be allocated could be a fellow or staff. Staff cannot be allocated living spaces. Fellows have a choice to choose a living space or not. This system will be used to automatically allocate spaces to people at random.

## Installation

Clone this repo:
```
$ git clone https://github.com/andela-akhenda/cp1a.git
```

Navigate to the `cp1a` directory:
```
$ cd cp1a
```

Create a vitual environment:
> Use [this guide](http://docs.python-guide.org/en/latest/dev/virtualenvs/) to create and activate a virtual environment.

Install the required packages:
```
$ pip install -r requirements.txt
```

## Testing

Run tests using one of the following commands:
```
$ python setup.py test

running pytest
running egg_info
writing amity.egg-info/PKG-INFO
writing top-level names to amity.egg-info/top_level.txt
writing dependency_links to amity.egg-info/dependency_links.txt
reading manifest file 'amity.egg-info/SOURCES.txt'
writing manifest file 'amity.egg-info/SOURCES.txt'
running build_ext
================================================================================ test session starts ================================================================================
platform darwin -- Python 2.7.12, pytest-3.0.4, py-1.4.31, pluggy-0.4.0 -- /Users/hendaz/.virtualenvs/amity-venv/bin/python
cachedir: .cache
rootdir: /Users/hendaz/Projects/cp1a, inifile: setup.cfg
plugins: mock-1.4.0, cov-2.4.0
collected 40 items

tests/test_amity.py::TestAmity::test_add_person PASSED
tests/test_amity.py::TestAmity::test_add_to_fully_occupied_rooms PASSED
tests/test_amity.py::TestAmity::test_amity_class_instance PASSED
tests/test_amity.py::TestAmity::test_cannot_add_duplicate_room PASSED
tests/test_amity.py::TestAmity::test_create_multiple_rooms PASSED
tests/test_amity.py::TestAmity::test_create_room PASSED
tests/test_amity.py::TestAmity::test_create_room_receives_list PASSED
tests/test_amity.py::TestAmity::test_get_empty_rooms PASSED
tests/test_amity.py::TestAmity::test_get_person_details_and_person_id PASSED
tests/test_amity.py::TestAmity::test_if_a_person_is_fellow_or_staff PASSED
tests/test_amity.py::TestAmity::test_load_people_from_file PASSED
tests/test_amity.py::TestAmity::test_load_state PASSED
tests/test_amity.py::TestAmity::test_load_state_from_non_conforming_db PASSED
tests/test_amity.py::TestAmity::test_occupants_after_allocation PASSED
tests/test_amity.py::TestAmity::test_occupants_increment_on_allocation PASSED
tests/test_amity.py::TestAmity::test_person_cannot_be_allocated_room_when_no_rooms_exist PASSED
tests/test_amity.py::TestAmity::test_print_allocations PASSED
tests/test_amity.py::TestAmity::test_print_allocations_with_no_previous_file PASSED
tests/test_amity.py::TestAmity::test_print_empty_room PASSED
tests/test_amity.py::TestAmity::test_print_room PASSED
tests/test_amity.py::TestAmity::test_print_unallocated PASSED
tests/test_amity.py::TestAmity::test_print_unallocated_with_no_previous_file PASSED
tests/test_amity.py::TestAmity::test_reallocate_non_existent_person_id PASSED
tests/test_amity.py::TestAmity::test_reallocate_person_accepts_strings_only PASSED
tests/test_amity.py::TestAmity::test_reallocate_person_to_an_office PASSED
tests/test_amity.py::TestAmity::test_response_on_no_rooms PASSED
tests/test_amity.py::TestAmity::test_save_state PASSED
tests/test_person.py::TestPerson::test_add_person PASSED
tests/test_person.py::TestPerson::test_child_class_instance PASSED
tests/test_person.py::TestPerson::test_get_person PASSED
tests/test_person.py::TestPerson::test_get_person_only_accepts_strings PASSED
tests/test_person.py::TestPerson::test_get_person_with_invalid_uuid PASSED
tests/test_person.py::TestPerson::test_if_a_person_is_fellow_or_staff PASSED
tests/test_person.py::TestPerson::test_number_of_persons_increment_after_addition PASSED
tests/test_room.py::TestRoom::test_add_to_fully_occupied_rooms PASSED
tests/test_room.py::TestRoom::test_child_class_instance PASSED
tests/test_room.py::TestRoom::test_create_duplicate_room PASSED
tests/test_room.py::TestRoom::test_create_room PASSED
tests/test_room.py::TestRoom::test_occupants_after_reallocation PASSED
tests/test_room.py::TestRoom::test_occupants_increment_on_allocation PASSED
```
or
```
$ nosetests --verbose

test_add_person (tests.test_amity.TestAmity) ... ok
test_add_to_fully_occupied_rooms (tests.test_amity.TestAmity) ... ok
test_amity_class_instance (tests.test_amity.TestAmity) ... ok
test_cannot_add_duplicate_room (tests.test_amity.TestAmity) ... ok
test_create_multiple_rooms (tests.test_amity.TestAmity) ... ok
test_create_room (tests.test_amity.TestAmity) ... ok
test_create_room_receives_list (tests.test_amity.TestAmity) ... ok
test_get_empty_rooms (tests.test_amity.TestAmity) ... ok
test_get_person_details_and_person_id (tests.test_amity.TestAmity) ... ok
test_if_a_person_is_fellow_or_staff (tests.test_amity.TestAmity) ... ok
test_load_people_from_file (tests.test_amity.TestAmity) ... ok
test_load_state (tests.test_amity.TestAmity) ... ok
test_load_state_from_non_conforming_db (tests.test_amity.TestAmity) ... ok
test_occupants_after_allocation (tests.test_amity.TestAmity) ... ok
test_occupants_increment_on_allocation (tests.test_amity.TestAmity) ... ok
test_person_cannot_be_allocated_room_when_no_rooms_exist (tests.test_amity.TestAmity) ... ok
test_print_allocations (tests.test_amity.TestAmity) ... ok
test_print_allocations_with_no_previous_file (tests.test_amity.TestAmity) ... ok
test_print_empty_room (tests.test_amity.TestAmity) ... ok
test_print_room (tests.test_amity.TestAmity) ... ok
test_print_unallocated (tests.test_amity.TestAmity) ... ok
test_print_unallocated_with_no_previous_file (tests.test_amity.TestAmity) ... ok
test_reallocate_non_existent_person_id (tests.test_amity.TestAmity) ... ok
test_reallocate_person_accepts_strings_only (tests.test_amity.TestAmity) ... ok
test_reallocate_person_to_an_office (tests.test_amity.TestAmity) ... ok
test_response_on_no_rooms (tests.test_amity.TestAmity) ... ok
test_save_state (tests.test_amity.TestAmity) ... ok
test_add_person (tests.test_person.TestPerson) ... ok
test_child_class_instance (tests.test_person.TestPerson) ... ok
test_get_person (tests.test_person.TestPerson) ... ok
test_get_person_only_accepts_strings (tests.test_person.TestPerson) ... ok
test_get_person_with_invalid_person_id (tests.test_person.TestPerson) ... ok
test_if_a_person_is_fellow_or_staff (tests.test_person.TestPerson) ... ok
test_number_of_persons_increment_after_addition (tests.test_person.TestPerson) ... ok
test_add_to_fully_occupied_rooms (tests.test_room.TestRoom) ... ok
test_child_class_instance (tests.test_room.TestRoom) ... ok
test_create_duplicate_room (tests.test_room.TestRoom) ... ok
test_create_room (tests.test_room.TestRoom) ... ok
test_occupants_after_reallocation (tests.test_room.TestRoom) ... ok
test_occupants_increment_on_allocation (tests.test_room.TestRoom) ... ok

----------------------------------------------------------------------
Ran 40 tests in 0.057s

OK
```

## Usage

Launch the app in interactive mode:
```
$ python app.py -i

New to the system? Type 'help' to see a list of commands

Amity >
```

### Help
To get started, type 'help' to see a list of available commands
```
Amity > help

Documented commands (type help <topic>):
========================================
add_person     help         print_allocations  quit
create_room    load_people  print_room         reallocate_person
get_person_id  load_state   print_unallocated  save_state
```
To see individual command documentation, type 'help' followed by the command:
```
Amity > help create_room

        This command creates rooms in Amity.

        You can create multiple rooms by specifying multiple room names
        after the create_room command. By default, this method will create an
        office/offices unless '--ls' is specified after the room name or list
        of room names. The '--of' option can be specified but it's not
        necessary.

        Usage: create_room <room_name>... [--ls | --of]
```

### Create Room
```
create_room <room_name>... [--ls | --of]
```
This command creates rooms in Amity.
By default, this method will create an office/offices unless '--ls' is specified after the room name or list of room names. The '--of' option can be specified but it's not necessary:
```
Amity > create_room Abydos

The Office has been successfully created

```
You can create multiple rooms by specifying multiple room names after the create_room command:
```
Amity > create_room Dakara Daedalus --ls

Your 2 Living Spaces have been successfully created

```

### Add Person
```
add_person <first_name> <last_name> <job_type> [<wants_accommodation>]
```
The ```<job_type>``` argument specifies the role of the person being added which can either be 'Fellow' or 'Staff'.

The ```<wants_accommodation>``` argument tells the system whether or not the person being added wants a room or not. It only accepts 'Y' or 'N' characters which stand for 'Yes' or 'No' respectively. It is an optional argument and its default value is 'N'.

Adding a Fellow:
```
Amity > add_person Ronon Dex Fellow Y

The Fellow, Ronon Dex has been added successfuly and given the following rooms:-
1. Office       --> Abydos
2. Living Space --> Daedalus

```
Adding a Staff:
```
Amity > add_person Samantha Carter Staff

The Staff, Samantha Carter has been added successfuly and given the following room:-
1. Office       --> Abydos

```

### Get Person's ID
```
get_person_id <first_name> <last_name>
```
This command gets a person's ID from the Amity database.
The ```<first_name>``` and ```<last_name>``` arguments are required to successfuly fetch the person's ID. It should be noted that in some situations, more than one Person ID may be returned when we have people with identical names.
```
Amity > get_person_id Rodney McKay

Rodney Mckay's ID is: s2

```

### Reallocate Person
```
reallocate_person <person_identifier> <new_room_name>
```
This command reallocates a person to another room.
It takes thes person's ID which can be gotten from the list of allocations in a particular room when print_room is run so it is highly recommended that you first get the person's ID from the print_room command.
The second argument it takes is the name of the room to which you want to allocate the person to.
```
Amity > reallocate_person f4 daedalus

Mari Lawrence has been successfuly re-allocated from Dakara to Daedalus

```

### Load People
```
load_people <filename>
```
This commands loads people to the Amity System from a text file.
It simply takes the name of the file to load a list of people from as the argument.

***NB:*** All input files are located in the 'data/inputs' directory.
```
Amity > load_people test_people.txt

The Fellow, Oluwafemi Sule has been added successfuly and given the following rooms:-
1. Office       --> Argos
2. Living Space --> Dakara

The Staff, Dominic Walters has been added successfuly and given the following room:-
1. Office       --> Argos

The Fellow, Simon Patterson has been added successfuly and given the following rooms:-
1. Office       --> Argos
2. Living Space --> Dakara

The Fellow, Mari Lawrence has been added successfuly and given the following rooms:-
1. Office       --> Argos
2. Living Space --> Dakara

The Staff, Leigh Riley has been added successfuly and given the following room:-
1. Office       --> Abydos

The Fellow, Tana Lopez has been added successfuly and given the following rooms:-
1. Office       --> Abydos
2. Living Space --> Dakara

The Staff, Kelly Mcguire has been added successfuly and given the following room:-
1. Office       --> Argos

People have been successfuly added to the system.

```

### Print Allocations
```
print_allocations [--o=FILENAME]
```
This commands prints all of Amity's allocation to the screen and also saves the printout to a text file if provided with a file name.
It simply takes the name of the file to save the allocations printout as an option argument after '--o='. This argument is optional. If not provided, the printout will not be saved to a file.

***NB:*** All allocations files are saved in the 'data/outputs/allocations' directory.
```
Amity > print_allocations
==============================
         Offices
==============================

ABYDOS
-----------------------------------------------------------------
RONON DEX, SAMANTHA CARTER, RODNEY MCKAY, LEIGH RILEY, TANA LOPEZ

ARGOS
------------------------------------------------------------------------------
OLUWAFEMI SULE, DOMINIC WALTERS, SIMON PATTERSON, MARI LAWRENCE, KELLY MCGUIRE

==============================
         Living Spaces
==============================

DAKARA
-------------------------------------------
OLUWAFEMI SULE, SIMON PATTERSON, TANA LOPEZ

DAEDALUS
------------------------
RONON DEX, MARI LAWRENCE

```

### Print unallocated
```
print_unallocated [--o=FILENAME]
```
This commands prints all of Amity's unallocated people to the screen and also saves the printout to a text file if provided with a filename.
It simply takes the name of the file to save the unallocated persons printout as an option argument after '--o='. This argument is optional. If not provided, the printout will not be saved to a file.

***NB:*** All unallocated persons files are saved in the 'data/outputs/unallocations' directory.
```
Amity > print_unallocated
==============================
Without Offices
==============================

F4  TANA LOPEZ

S3  KELLY MCGUIRE

S2  LEIGH RILEY

S1  DOMINIC WALTERS

==============================
Without Living Spaces
==============================

F3 (Y)  MARI LAWRENCE

F4 (Y)  TANA LOPEZ

```

### Print Room
```
print_room <room_name>
```
This commands prints room details.
It accepts a room name then querries Amity System and returns information about the room given.
```
Amity > print_room Dakara

DAKARA
-------------------------
F1  Y   OLUWAFEMI SULE
F2  Y   SIMON PATTERSON
F4  Y   TANA LOPEZ

```

### Save State
```
save_state [--db=sqlite_database]
```
This command persists the current state of the system to an SQLite Database.
It takes an option '--db=' which specifies the name to give the database file which we will use to save the state of the applicaion. If no DB name is given, the state is saved in a file named 'latest.db'

***NB:*** All DB files are saved in the 'data/states' directory.
```
Amity > save_state
Opened database successfully
Table created successfully

You have successfuly persisted the state of the Application.
The state was saved to 'latest.db' file in the 'data/states' directory.

```
```
Amity > save_state --db=December_2016.db
Opened database successfully
Table created successfully

You have successfuly persisted the state of the Application.
The state was saved to 'December_2016.db' file in the 'data/states' directory.

```

### Load State
```
load_state [<sqlite_database>]
```
This command loads a previously saved state from an SQLite database to the Amity System.
It takes an argument, ```<sqlite_database>``` which specifies the name of the SQLite database file to load the state from. This argument is optional. If no argument is provided, 'latest.db' will be loaded.

***NB:*** All DB files are loaded from the 'data/states' directory.
```
Amity > load_state December_2016.db
Opened database successfully
Operation done successfully

You have successfuly loaded a previously saved state.
The state was loaded from 'December_2016.db' file in the 'data/states' directory.

```

> Watch the following screencast to get the full usage:

[![asciicast](https://asciinema.org/a/0djbwzd9b6anhjwv7okxb42iy.png)](https://asciinema.org/a/0djbwzd9b6anhjwv7okxb42iy?speed=2)

## Credits

1. [@andela-akhenda](https://github.com/andela-akhenda)

2. [@kimobrian](https://github.com/kimobrian)

3. [@andela-mochieng](https://github.com/andela-mochieng)

4. The [Andela](https://www.andela.com) Community.

## License

### The MIT License (MIT)

Copyright (c) 2016 [Joseph Akhenda](https://github.com/andela-akhenda).

> Permission is hereby granted, free of charge, to any person obtaining a copy
> of this software and associated documentation files (the "Software"), to deal
> in the Software without restriction, including without limitation the rights
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
> copies of the Software, and to permit persons to whom the Software is
> furnished to do so, subject to the following conditions:
>
> The above copyright notice and this permission notice shall be included in
> all copies or substantial portions of the Software.
>
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
> THE SOFTWARE.

redpajama_set_name: RedPajamaGithub


EXCLUSIVELY AT NEIMAN MARCUS Blush Oro Bello soup bowls. Beautifully hued blush glass with hand-painted 24-kt. gold detail. Handcrafted set of 4. Approximately 8.625"Dia.; holds 20.28 ounces. Hand wash. Made in Italy.
Exclusively ours. Blush Oro Bello soup bowls. Beautifully hued blush glass with hand-painted 24-kt. gold detail. Handcrafted set of 4. Approximately 8.625"Dia.; holds 20.28 ounces. Hand wash. Made in Italy.
EXCLUSIVELY OURS. Handcrafted soup bowls. Glass with hand-painted 24-kt. gold decoration. Set of four. Each, approximately 8.625"Dia.; holds 20.28 ounces. Hand wash. Made in Italy.
EXCLUSIVELY AT NEIMAN MARCUS Handcrafted soup bowls. Glass with hand-painted 24-kt. gold decoration. Set of four. Each, approximately 8.625"Dia.; holds 20.28 ounces. Hand wash. Made in Italy.
EXCLUSIVELY AT NEIMAN MARCUS Blush Oro Bello dinner plates. Beautifully hued blush glass with hand-painted 24-kt. gold detail. Handcrafted set of 4. Approximately 10.25"Dia. Hand wash. Made in Italy.
EXCLUSIVELY AT NEIMAN MARCUS Blush Oro Bello salad plates. Beautifully hued blush glass with hand-painted 24-kt. gold detail. Handcrafted set of 4. Approximately 8.25"Dia. Hand wash. Made in Italy.
EXCLUSIVELY AT NEIMAN MARCUS Blush Oro Bello charger plates. Beautifully hued blush glass with hand-painted 24-kt. gold detail. Handcrafted set of 4. Approximately 13.75"Dia. Hand wash. Made in Italy.
Exclusively ours. Blush Oro Bello salad plates. Beautifully hued blush glass with hand-painted 24-kt. gold detail. Handcrafted set of 4. Approximately 8.25"Dia. Hand wash. Made in Italy.
EXCLUSIVELY AT NEIMAN MARCUS Handcrafted dessert plates. Glass with hand-painted 24-kt. gold decoration. Set of four. Each, approximately 8.25"Dia. Hand wash. Made in Italy.
EXCLUSIVELY AT NEIMAN MARCUS Handcrafted dinner plates. Glass with hand-painted 24-kt. gold decoration. Set of four. Each, approximately 10.25"Dia. Hand wash. Made in Italy.
EXCLUSIVELY OURS. Handcrafted dinner plates. Glass with hand-painted 24-kt. gold decoration. Set of four. Each, approximately 10.25"Dia. Hand wash. Made in Italy.
EXCLUSIVELY OURS. Handcrafted glass dinner plates. Four-piece set. 24-karat gold accents painted by hand. 13.8"Dia. x 0.7"T. Hand wash. Made in Italy.
EXCLUSIVELY OURS. Handcrafted water goblets. Glass with hand-painted 24-kt. gold decoration. Set of four. Each, approximately 3.75"Dia. x 8.5"T; holds 8.79 ounces. Hand wash. Made in Italy.
EXCLUSIVELY AT NEIMAN MARCUS Handcrafted glass dessert plates. 24-karat gold painted by hand. Four-piece set. 7.6"Dia. Hand wash. Made in Italy.
EXCLUSIVELY AT NEIMAN MARCUS Handcrafted glass dinner plates. 24-karat gold painted by hand. Four-piece set. 10.2"Dia. Hand wash. Made in Italy.
EXCLUSIVELY OURS. Handcrafted glass dessert plates. 24-karat gold painted by hand. Four-piece set. 7.6"Dia. Hand wash. Made in Italy.
EXCLUSIVELY AT NEIMAN MARCUS Handcrafted glass tea cups and saucers. 24-karat gold painted by hand. Four-piece set. Holds 5.4 ounces. Cup, 2.6"Dia. x 3.5"T. Saucer, 5.9"Dia. x 0.6"T. Hand wash. Made in Italy.
EXCLUSIVELY OURS. Handcrafted glass tea cups and saucers. 24-karat gold painted by hand. Four-piece set. Holds 5.4 ounces. Cup, 2.6"Dia. x 3.5"T. Saucer, 5.9"Dia. x 0.6"T. Hand wash. Made in Italy.


The nation's largest police unions and a national coalition of police chiefs agreed Thursday to mandatory use of body armor and seat belts for all law enforcement agencies.
The accord, the first of its kind between labor and law enforcement leaders, comes amid persistent reports that large numbers of officers die in shootings and traffic accidents without the basic protection afforded by bulletproof vests and seat restraints, USA Today reports.
Although traffic-related incidents were the leading cause of officer deaths in 13 of the past 15 years, according to the National Law Enforcement Officers Memorial Fund, which closely tracks police fatalities, about half of officers do not regularly wear seat belts.
During the past three decades, 42% of police killed in auto accidents were not wearing seat belts, according to a National Highway Traffic Safety Administration review. Law enforcement estimates of seat belt compliance hover around 50%, well below the 86% rate of compliance among the general public.
In fatal shootings, 36% of officers killed from 2003 to 2012 were not wearing body armor, according to FBI statistics.


Ida Sellers Warner enlisted in the WAC (Women's Army Corps) in 1943 and served until 1945 in the Ninth Air Corps. Interviewed by Carolyn Sayler on Jan 1, 1901, Warner talked about military experiences in the Second World War. This transcript was for a newspaper article to be written by Carolyn Sayler for the Lyons Daily News in October 1981. It was collected as part of this oral history project. The 2005 Kansas Legislature passed a bill funding the WWII Veterans Oral History grant program. This transcript is from one of the community institutions receiving grants. The transcript of the interview is presented here; the original video copy of the interview is available through the Rice County Historical Society (Lyons) and through the Kansas State Historical Society.


Tomorrow night, The Dixie Narcos (a newer group from Jacksonville, Illinois formed by some members of previous band "Flamingo) will be headlining the Black Sheep 13 Year Anniversary show. The band's debut full length album, Neurotic Satanic came out close to three months ago now and we've been meaning to make a post about it! You can find the 15-track album streaming on the player below. Head over to the band's bandcamp page where you can support the band and download the album. The album is also available on cassette over at Dumb Records.
The Black Sheep 13 Year Anniversary show kicks off tomorrow at 7:00 pm. Find a facebook event for it right here. There will also be our annual drawing for Black Sheep band lotto at the end of the show.
This entry was posted in releases by blacksheepspringfield. Bookmark the permalink.


This is just one of the many recipes from Julie Gabriel's new book, The Green Beauty Guide.
May 5, 2009, 11:11 a.m.
A. Yes! Well, no, not off the top of our heads, but natural beauty connoisseur Julie Gabriel has got dozens of delicious-sounding recipes. Sweet Tea Balm, Tea Tree Healing Oil, Spicy Tea Poultice, Mediterranean Garden Preshampoo Hair Butter—by the time you're done, your mom won't know what hit her, and your kitchen will look like a flash flood just came through. In a good way.
Gabriel's all about skin and hair, and finding non-toxic ways to help them keep their healthy luster. If you can get through the mammoth title of her new book—The Green Beauty Guide: The effects synthetic products have on you; Organic makeup, moisturizers, and hair care; Shortcuts to going green without going broke; How to spot organic frauds and gimmicks—you'll find a treasure trove of info on natural beauty techniques and tricks.
Story by Tobin Hack. This article originally appeared in Plenty in September 2008.


don Miguel Ruiz's wisdom book, The Four Agreements, is something to pay attention to. But you can't be impatient with it. He talks simply and succinctly about concepts that when you actually apply them to daily life, are as difficult as making a good sushi roll. Your metaphorical self-knife must be sharp, your attention delicate but firm.
In this post I will be talking about the way the first agreement,"Be impeccable with your word," helps forge real connections in relationship, how being in touch with what is true for you is a self-loving act, and how these go together to vitalize your life and relationships.
This agreement can ground you in a moment of conversation. The delay that it takes to think about what you mean is a kind of holding yourself, as if you matter. And you do.
This is not about saying something and just going through with it blindly, or just doing what you said you are going to do. It's definitely not about being nice, because in many ways "nice" is just a "nice" way of talking about the way that people lie. It is about holding a position within you that your truth matters, and trusting that by bringing it forth you will have something of value to offer.
If you want to build trust in your relationships, then holding this agreement for yourself will help you say what you mean to say, be more accountable to your word, and also, gives you the courage to take the risk of being honest with your loved ones about what you are thinking. Not about them – but honest about what is going on within you.
Personally, I am in recovery from being a yes-sayer and an over-extender. Despite what I have needed in a situation at hand, I have learned through my own self-discovery process that I can negate myself in the "service" of others. This pattern causes resentment and trouble in relationships in the long run. I am serving no one if I am negating myself along the way. And the mess of cleaning up this kind of self-negation can feel like cleaning up a never ending spill. But holding this agreement with myself continues to bring strength and calm to the process.
What this means is that in each moment – even as things change – I am present with what is happening and attempt to find words to match that. I don't just say "yes" before pausing anymore, because "yes" can be a habitual response of someone who got taught that "pleasing" others is the highest value. I must pause and listen, trust myself and take the risk to bring that truth forward in order to live in integrity.
Being "nice" now means a way that I block myself, and that ultimately is me not being nice to me. It is different to stop yourself from being mean, impulsive, or spouting out something without reason or with an intensity that is unwarranted. But to hide your truth in the attempt to avoid conflict is a distortion. This distortion is not self-loving, and thus can not be a loving act in a relationship.
Your truth is your love. What is true tends to settle like the end of a wave at the tip of the shore. Its clear, still, and settling to our nervous systems. It can take a certain stillness to tap into, but when you do, love is also there. You are being self-loving when you listen to yourself.
When you lie or cover up by beating around the bush instead of just talking about the bush, no one understands each other. If we offer distortion to our lives, others then get tangled in it, and thus your distortion causes havoc in the lives of those around you. This is not generating love within your life or others. It is generating confusion, and most likely frustration as well – both of which are signals that what is alive is being negated instead of allowed to move forward into completion.
"Pleasing" others, for example, is a distortion that may fool your friend for a second that she is getting what they want, but when you get irritated later, or flake out as a result of not taking care of your own needs, that first moment is completely meaningless. This scenario is a relational tangle that takes more time to clear up than if you had taken a moment to pause when making the plan. Then you may have said, "I can't (or don't want to) meet that early" instead of stressing yourself in attempts to give your friend the meeting time that she wants. Denying the relationship the chance to show you that you can negotiate together – or that you can actually have a truthful friendship – is not a self-loving act, nor is it a loving act in relationship to one another. Accommodation of another's needs is only loving if you can truly mean that you are letting go of your own. Resentment nor irritation follows such an act.
According to Ruiz, your word carries a power that either connects you to you and you to others, or it disconnects you and can cause harm. The agreement is to use the power of your word for the creative and interconnecting force of love.
Holding yourself in and with love is all part of embodying yourself in a way that stands in that clarity. Clarity in you offers clarity to others.
And believe me – there is a little part of me that shuns those words in disgust when I read them because they seem so disconnected to how I can experience life sometimes. Life can feel murky and confusing, hard and annoying. Truth and love? How can I find that amidst all the distortion? The frustration I feel, however, is only signal that there is something alive waiting to be found. And it takes a slowing down, a trust, and an intent towards love in order to do so.
"Fine, I'll breathe," says my old, habitual self.
Of course, to feel into yourself in a way that finds your truth, while connected to love, takes being present in any particular moment. Being present is opposed to being in the future or past, or above yourself in a concept like "I should act or say…." It is about noticing the dirt and distortion, and standing in an intention to find what is clear, true, and simply loving. In the practice of it, it isn't so hard. In a moment where there is pressure to perform or fear of being rejected, it takes some bravery to follow the agreement and see what happens. I am finding that it is worth it every time. The sense of vitality I get when I find the truth of a matter is the sign I look for.
Truth can be multifaceted which makes holding this agreement a creative act. If you choose to speak in the direction of truth and love, you will find words that fit that intention, and bring it into your relationships. One truth, but many ways of expressing it. Some are more clear than others. Follow the current of what creates a sense of aliveness – A sense of excitement that feels good.
Let's be careful here – because this agreement is not about just changing your mind, or suddenly and spontaneously having some truth that you must live out after making a plan with someone. That is called being flaky. This is about in each moment, knowing what is true for you and saying what you mean. If you do this all of the time, than there should be no change of plans, because the truth is actually something pretty consistent.
The sense data of our bodies send guiding signals to orient to – this is primarily for our survival, but also helps to tune into the environment and to listen to our feelings and thoughts as they run the course of our nervous systems. Sometimes signals can be maladaptive – you want to run, or shut down, and that is the loudest thing you can hear.Perhaps, you may look and listen, and find that you are not experiencing really anything (yet). But that is where an intention to find your truth is important (and Ruiz does not talk about the difficulties of this). Many of us need time and support in order to learn to listen amidst all the messages that we have picked up that have told us that our truth is not correct by the environment around us.
All of this can be territory that somatic psychotherapy can help with in order to gain clarity and some new ways to body yourself so that you have more tolerance, and the capacity, to feel and speak at the same time. These are learned skills that anyone can develop.
I think us humans need more education as to how to find our meaning, our truth, and to make the connection from our body's to the world in a very real way. Our bodies can betray us, our minds can trick us – to get closer, to lean in, to find what is true and loving takes serious attention.
To hold your truth as if it matters and up for those to see can be a loving act, but it is not always comfortable. In fact in many ways our bodies will say to run or shut down in these moments. This is why pausing is so important – not not just speak from the habitual, but to find where you are and what you mean in the present situation.
When we hide our truths in order to keep the "peace," this can be seen as an aggression against love. To be in relationship in a real way, we must make contact. Peace is only peace if it is truly without conflict. When we lie to ourselves and distort our truth, this causes an inner conflict that is ultimately not self-loving, and thus cannot be a loving act within any relationship. Loving myself and my truth builds a bridge towards another in a real and concrete way. It takes practice to be more alive – to not only tolerate, but allow the current of vitality through you into action and words.
If you are interested in my Somatic Psychotherapy practice, communication help within relationships, or in taking the risk to know and live your truth, contact me here.


text:
Q: Google Compute Engine REST API - filter list by null value In GCP REST API, is there a way to filter out results based on null field value? More specifically, I would want to list non-deprecated images via this API: https://cloud.google.com/sdk/gcloud/reference/compute/images/list
A list item (image) can contain following attribute (non-deprecated image is missing this attribute).
      "deprecated": {
        "state": "DEPRECATED",
        "replacement": "https://www.googleapis.com/compute/beta/projects/debian-cloud/global/images/debian-8-jessie-v20151104"
      }

I have tried following ?filter values: deprecated=null, deprecated.state=null, deprecated.state="". The last one yields an empty list, former two do not work (400 bad request). I have also tried ?filter=deprecated.state="DEPRECATED" which yields DEPRECATED images. I would neet a complement list. Is there a way to filter by null value?
Thanks

A: I think filter="(deprecated.state != "DEPRECATED" OR "OBSOLETE")" will fulfil your needs

redpajama_set_name: RedPajamaStackExchange


text:
#!/usr/bin/env php
<?php

require_once 'abstract.php';

/**
 * Mageflow_Connect_Media_Indexer
 * MageFlow Media Indexer script
 *
 * @category   MFX
 * @package    Mageflow_Connect
 * @subpackage Shell
 * @author     Prototypely Ltd, Estonia <info@prototypely.com>
 * @copyright  Copyright © 2017 Prototypely Ltd, Estonia (http://prototypely.com)
 * @license MIT Copyright (c) 2017 Prototypely Ltd
 * @link       http://mageflow.com/
 */
class Mageflow_Connect_Reindex_Changeitems extends Mage_Shell_Abstract
{

    /**
     * @var Mageflow_Connect_Helper_Type
     */
    private $typeHelper;

    /**
     * Run script
     *
     * @return int
     */
    public function run()
    {
        set_time_limit(0);
        $options = 'a:t:m:ihlv';
        $longOptions = array(
            'all:',
            'type:',
            'limit:',
            'info',
            'help',
            'longhelp',
            'verbose'
        );
        $verbose = $this->getArg('v') | $this->getArg('verbose') | false;
        $retval = 1;
        try {

            $opt = getopt($options, $longOptions);

            $limit = -1;
            $shortLimit = isset($opt['m']) ? $opt['m'] : -1;
            $longLimit = isset($opt['limit']) ? $opt['limit'] : -1;

            $limit = $shortLimit > $limit ? $shortLimit : $longLimit > $limit ? $longLimit : -1;

            $allTypes = (isset($opt['all']) || isset($opt['a'])) ? true : false;

            $shortType = isset($opt['t']) ? $opt['t'] : null;
            $longType = isset($opt['type']) ? $opt['type'] : null;

            if ($verbose) {
                printf("Limit:\t%s\n", $limit);
            }

            if (
                null !== $shortType || null !== $longType || $allTypes
            ) {

                $typeList = array_merge(
                    is_array($shortType) ? $shortType : array($shortType),
                    is_array($longType) ? $longType : array($longType)
                );

                if ($allTypes) {
                    $typeList = $this->getSupportedDataTypes();
                    if ($verbose) {
                        echo "Re-indexing of ALL data types was requested. Grab a coffee, it may take a while ...\n";
                    }
                }

                if ($verbose) {
                    printf("Data types:\n%s\n", trim(implode('; ', $typeList)));
                }

                foreach ($typeList as $typeName) {
                    if ('' != trim($typeName)) {
                        $type = $this->getTypeHelper()->getType($typeName);
                        if ($type instanceof stdClass && null !== $type->handler) {
                            $dataHandlerClass = $this->getTypeHelper()->getHandlerClass($type->short);
                            $dataHandler = Mage::getModel($dataHandlerClass);
                            if ($dataHandler instanceof Mageflow_Connect_Model_Interfaces_Dataprocessor) {
                                if ($verbose) {
                                    echo sprintf("Started re-indexing items of type %s ...\n", $typeName);
                                }

                                $count = $dataHandler->reindex($type, $limit);

                                if ($verbose) {
                                    echo sprintf("Re-indexed %s items\n", $count);
                                }
                            }
                        }
                    }
                }
            }

            if ($this->getArg('info') || $this->getArg('i')) {
                echo $this->getSupportedDataTypesAsString();
                return 0;
            }
            $retval = 0;
        } catch (Exception $ex) {
            echo $ex->getMessage() . "\n";
        }

        if ($this->getArg('help') || sizeof($this->_args) < 1) {
            echo $this->usageHelp();
            return;
        } elseif ($this->getArg('longhelp') || $this->getArg('l')) {
            echo $this->longHelp();
            return;
        }

        if ($verbose) {
            echo "Done.\n";
        }
        return $retval;
    }

    /**
     * @return Mageflow_Connect_Helper_Type
     */
    private function getTypeHelper()
    {
        if (null === $this->typeHelper) {
            $this->typeHelper = Mage::helper('mageflow_connect/type');
        }
        return $this->typeHelper;
    }

    /**
     * Returns list of MageFlow supported data types as string
     *
     * @return string
     */
    private function getSupportedDataTypesAsString()
    {
        $out = '';
        foreach ($this->getSupportedDataTypes() as $typeName) {
            $out .= sprintf("%s\n", $typeName);
        }
        return $out;
    }

    /**
     * Returns list of MageFlow supported and index_enabled
     * data types as array
     *
     * @return array
     */
    private function getSupportedDataTypes()
    {
        $out = array();
        $typeHelper = $this->getTypeHelper();
        foreach ($typeHelper->getSupportedTypes() as $typeName) {
            $type = $typeHelper->getType($typeName);
            if ('' != $type->handler && $type->index_enabled) {
                $out [] = $typeName;
            }
        }
        return $out;
    }

    /**
     * Return help text
     *
     * @return string
     */
    public function usageHelp()
    {
        $program = basename(__FILE__);
        return <<< USAGE
    USAGE
        Usage: php $program <options>
        Options are:
        --all, -a           Reindex ALL items of ALL supported data types in Magento database
        --type, -t          Reindex items of specified type. Multiple --type arguments can be added
        --limit, -m         Limit indexing to <limit> items of specified type (or all).
        --info, -i          Display supported data types
        --help, -h          Display information about usage
        --longhelp, -l      Display long help and license info
        --verbose, -v       Be verbose

USAGE;
    }

    /**
     * Return longer vesion of help text
     *
     * @return string
     */
    public function longHelp()
    {
        $longHelp
            = <<<LONGHELP
  __  __                  _____ _
 |  \/  | __ _  __ _  ___|  ___| | _____      __
 | |\/| |/ _` |/ _` |/ _ \ |_  | |/ _ \ \ /\ / /
 | |  | | (_| | (_| |  __/  _| | | (_) \ V  V /
 |_|  |_|\__,_|\__, |\___|_|   |_|\___/ \_/\_/
  ____      _  |___/    _
 |  _ \ ___(_)_ __   __| | _____  __
 | |_) / _ \ | '_ \ / _` |/ _ \ \/ /
 |  _ <  __/ | | | | (_| |  __/>  <
 |_|_\_\___|_|_| |_|\__,_|\___/_/\_\ _ _
  / ___| |__   __ _ _ __   __ _  ___(_) |_ ___ _ __ ___  ___
 | |   | '_ \ / _` | '_ \ / _` |/ _ \ | __/ _ \ '_ ` _ \/ __|
 | |___| | | | (_| | | | | (_| |  __/ | ||  __/ | | | | \__ \
  \____|_| |_|\__,_|_| |_|\__, |\___|_|\__\___|_| |_| |_|___/
                          |___/

    LICENSE AND COPYRIGHT NOTICE

        PLEASE READ THIS SOFTWARE LICENSE AGREEMENT ("LICENSE") CAREFULLY
        BEFORE USING THE SOFTWARE. BY USING THE SOFTWARE, YOU ARE AGREEING
        TO BE BOUND BY THE TERMS OF THIS LICENSE.
        IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENSE, DO NOT USE THE SOFTWARE.

        Full text of this license is available @license

        @author     Prototypely Ltd, Estonia <info@prototypely.com>
        @copyright  Copyright © 2017 Prototypely Ltd, Estonia (http://prototypely.com)
        @license MIT Copyright (c) 2017 Prototypely Ltd
        @link       http://mageflow.com/

    GENERAL INFO

        This script will create or update Media Index. Media Index is an up-to-date list of
        all media files under WYSIWYG folder in Magento media folder.

    LIMITING NUMBER OF REINDEXED ITEMS

        Sometimes reindexing is a very lengthy process. For example there may be thousands of products in the database.
        In order to limit number of items to reindexed at once use --limit N parameter where N is an integer > 0.
        Program would then reindex N *unindexed and unchanged items*. Because a checksum is calculated for each change item
        the program will reindex only those items that haven't been indexed yet.

LONGHELP;
        return $longHelp . $this->usageHelp() . "\n";
    }
}

$shell = new Mageflow_Connect_Reindex_Changeitems();
$retval = $shell->run();
exit($retval);


If you are approved, then your refund will be processed, and a credit will automatically be applied to your credit card or original method of payment, you may expect return services to be completed within three to seven days after we receive the returned merchandise.
If you've done all of this and you still have not received your refund yet, please contact us at info@thegreathighway.com.
We only replace items if they are defective or damaged and if they are not a 1 of a kind piece. If you need to exchange it for the same item, send us an email at info@thegreathighway.com and send your item to: 3649 Lawton St San Francisco CA USA 94122.
To return your product, you should mail your product to: 3649 Lawton St San Francisco CA USA 94122.
You will be responsible for paying for your own shipping costs and insuring the item for its purchase value when returning your item. Shipping costs are non-refundable. If you receive a refund, the cost of return shipping will be deducted from your refund.


text:
Q: How to read an html table into an array of objects? In my angular protractor e2e tests, I want to do assertions on a html fragment like this:

            Name
            Age
            Gender

            Joe
            23
            M

            Mary
            26
            W

        ...

How can I convert that into a JavaScript object like this?
[
    {Name: 'Joe', Age: 23, Gender: 'M'},
    {Name: 'Mary', Age: 25, Gender: 'W'},
    ...
]

I tried this, but it gives me one dimensional array:
const row = element.all(by.css('tr'));
const cells = row.all(by.tagName('td'));
return cells.map(function (elm) {
  return elm.getText();
});

A: For your specific example, you can convert the HTML into a simple array of objects that match your needs:
function isHTMLTableElement(elem: HTMLTableElement | HTMLElement) : elem is HTMLTableElement {
    return elem.tagName === 'TABLE';
}

const table = document.getElementById('test');
const result: {name: string, age: number, gender: string}[] = [];

if (isHTMLTableElement(table)) {
    const rows: HTMLElement[] = [].slice.call(table.querySelectorAll('tbody tr'));
    for (const row of rows) {
        const cells: HTMLElement[] = [].slice.call(row.querySelectorAll('td'));
        const [name, age, gender] = cells.map(c => c.innerText);
        result.push({
            name: name,
            age: +age,
            gender: gender
        });
    }

    console.log(JSON.stringify(result));
}

You could collapse this further by replacing for loops with array methods, but I left it like this as it is probably more understandable.


Just want help right now?
By sending Digital Recovery Ltd your device, you are indicating that you have read and agreed with these terms and conditions. Please check them carefully. We have written them in plain English rather than legalese, and they are not overly long.
hold a copy of any recovered data on our computer system for 10 working days, in case there are mishaps with data transfer at your end (after this time we will delete your recovered data from our system).
We undertake due diligence by attempting all data recovery procedures. 80% or more recovered data is a fair and reasonable job, given the technical limitations and realities of data loss, and carries the expectation of full payment as per your authorised quote.
You're the legal owner (or the authorised representative of the legal owner) for the specified storage device(s), and all data thereon.
You, as the owner/authorised representative of the data we're trying to recover, are responsible for its loss. If your device has already failed, or fails while we're trying to get data off it, or if we can't recover some or all of your data for any reason, we cannot be held responsible for this. Nor are we liable for any damages which may result to you or your business. Our liability is limited to the agreed price for the services you've authorised us to perform.
You're aware that in any data recovery operation there's an inherent risk of further damage to the storage device(s) being worked on. This means there's a possibility that trying to recover data from your device(s) will render some or all such recovery impossible. We take every reasonable precaution to ensure your data remains intact, and your storage device(s) operational, but we cannot offer any kind of warranty.
An attempted recovery may void any manufacturer's warranty; we will assume a device is out of warranty unless otherwise advised.
Once a job is complete, you must make arrangements to collect your data and/or storage device(s), or have them returned to you, within 90 days. After this period, we may dispose of them without liability.
You must authorise via email any quote we provide before we can commence work (we may also, at our discretion, require a deposit, or a 15% surcharge if you request an urgent recovery).
You will pay us promptly and in full on completion of work, and prior to our delivering any recovered data to you.
You will inspect any data we recover and notify us by email if it is unsatisfactory (as defined in section 2.1 above), within 48 hours of receiving it. We then reserve the right to attempt a further recovery using other options. Should this prove unsuccessful, we will refund the cost of the recovery, less our labour and parts costs.
You will not be required to pay for an unsuccessful recovery. However, your quote may indicate specific parts required for the recovery operation. Should the operation prove unsuccessful, we may still need to invoice you for these parts, simply to cover costs. In the same way, should you need your device returned afterwards, we may need to charge for our assembly work and courier fees.
Payment of an inspection fee will be required in the event that we determine we can recover your data, quote you on this recovery, and you then elect not to proceed.
Should you make no attempt to pay for our services, or arrange a payment plan (at our discretion), after 30 days from invoice date we will take ownership of your device, and we may seek legal remedy to pursue the outstanding payment and any incurred legal costs.
We will not disclose any information or data files supplied with, stored on, or removed from your storage device(s), except to our own employees or agents, and subject to confidentiality agreements—or as required by New Zealand law.
If you'd prefer a real person to walk you through this, call us on 0800 77 77 22 and Darren will help you out.
I've read and accepted the terms & conditions and understand that you'll email me instructions on how to get my device to you.


On 18 September 1809, Covent Garden Theatre reopened, lavishly decorated after the devastating fire of the previous year. Far from being an occasion of celebration, an increase in prices and the architectural redistribution raised the ire of London's theatregoers, sparking months of sustained protest. Known as the Old Price riots, these protests received widespread attention in the metropolitan press. They also prompted various responses from London's satirical print trade. This article will explore the output of these two publicly facing media with respect to the Old Price riots as means of examining the differing processes of reportage they functioned within. It will argue that despite operating on a 'virtual' plane of reportage, that during the Old Price riots graphic satire escaped the confines of its virtuality and became an active agent in Georgian anti-authoritarian protest.


The Social Security System ( SSS ) announced that their 94 branches with Automated Tellering System (ATS) nationwide are now accepting contributions from employers and individually-paying members under the Enhanced Contribution Collection System (e-CS) using their Payment Reference Numbers (PRNs).
Starting January 16, 2018, self-employed, voluntary and OFW members should present their PRN when making contribution payments to enable real time posting of their contributions (RTPC).
"Individual members who have registered their mobile numbers with the SSS receive their PRN through SMS. Those who have registered in our My.SSS facility at the SSS web site can access their statement of account with the corresponding PRN. On the other hand, members who have not yet registered in the My.SSS facility will be redirected to the SSS branch's e-center or the Member Services Section for assistance," SSS President and Chief Executive Officer Emmanuel F. Dooc said.
There is also a special lane in all SSS branches for those who want to access their My.SSS account to edit or verify their SSS records.
The RTPC aims to make the processing of claims faster and prevent the disqualification of members for loans and benefits due to delayed posting of contributions. Every month, SSS receives thousands of requests regarding manual verification and updating of contribution records. These incidents stemmed from submission of incorrect collection reports or late document submission from employers.
Members are reminded to ready their PRN upon payment of contribution to avoid delays. Nonetheless, they can get their PRN from SSS tellers. They just need to present their UMID or SSS ID. If they have no IDs, they can inform the teller of their birthdates to get their PRN.
In lieu to this progress, SSS collection partners are also updating their systems so they can accept payments using PRN to make RTPC possible.
Collection partners who would not be able to update their system on the set date will be temporarily suspended as collecting partners until their compliance.
Bayad Center Inc., SkyFreight, Bank of Commerce, Security Bank Corporation, i-Remit, Asia United Bank, Ventaja Inc., and UnionBank of the Philippines are among the SSS collection partners who already complied with RTPC.


This chowder has been a family fav for years. Cambria Corn Chowder. Named Cambria after the little coastal town in California where my grandma and aunt used to go and paint. They are both amazing artists. This is one of my Nana's paintings from one of those trips.
Now imagine yourself sitting in a little cafe near this beach, the cool salty air blowing, and nice warm bowl of this soup to comfort you. Mmmm… heaven.
It wasn't until I started making it myself that I realized it's super easy, too.
One pot, is all it takes.
The first step here is cook chicken with butter and some seasonings. Cook chicken in butter?! I'm in love already.
When the chicken is fully cooked you can add the remaining ingredients (except the toppings).
I use milk and broth for the base of this chowder. The sweetness of the creamed corn goes great with the rich, tasty chicken. And just wait til add all those yummy toppings. Seriously, so good.
These are my favorite toppings. Jack cheese, or pepper jack cheese, green onions, cilantro, tomatoes, sour cream, and tortilla chips.
Mmmmm, so good on these chilly fall/ wintry days. This is also great for lunch with your gal pals. A fun new soup that is still hearty and flavorful.
In a large pot, partially saute chicken, then add butter, garlic, oregano, and parsley. Saute until chicken is cooked thoroughly.
Add to the pot the creamed corn, chicken broth, milk, and green chiles. Stir occasionally, and allow mixture to come to a boil. Then simmer until ready to serve.
Top with tortilla chips, grated cheese, diced tomatoes, green onions, cilantro, and sour cream.


text:
Archive | JEAN PAUL GAULTIER RSS feed for this section
Final Stop: Jean Paul Gaultier at the de Young Museum
This is the final stop for the critical acclaimed exhibit "The Fashion World of Jean Paul Gaultier: From the Sidewalk to the Catwalk". This amazing exhibit will be featured at the de Young Museum in San Francisco from March 24th – August 19th. Mr. Gaultier is a genius when it comes to avant-garde fashion. He's the brain behind all of Madonna's cutting edge costumes. Who could forget the now iconic "cone bra" Madonna wore in her "Vogue" video. This will be a once in lifetime experience to see Jean Paul Gaultier's brilliant work in person. Ten more days and counting before the exhibit opens!
The brilliant Jean Paul Gaultier
Categories JEAN PAUL GAULTIER

redpajama_set_name: RedPajamaCommonCrawl


text:
Anthony Eyton
Royal Academician Anthony Eyton has, over the course of a lengthy and distinguished career, established himself as one of Britain's leading figurative painters. Born in Middlesex, his mother Phyllis Eyton was herself a talented painter whose career was cut tragically short when she died in a riding accident aged 29.
Anthony studied at Camberwell School of Art and upon graduating was offered the Abbey Major scholarship to study in Italy. He is an elected member of the London Group, a senior Royal Academician and a member of the Royal Watercolour Society. His works are held in major public collections, including the Arts Council of Great Britain and the Tate Collection. He lives and works in Brixton, London.
Selected One Man Exhibitions
1959, '61, '68 New Art Centre, London
1971 Boswells Gallery, Kingston, Ontario
1973 New Grafton Gallery, London
1975 William Darby Gallery, London
1978, '81, '85, '87, '90, '93, '96, '00, '06, '09, '13, '16 Browse & Darby, London
1980 Retrospective – South London Art Gallery, Towner Art Gallery, Eastbourne, and Plymouth Art Gallery
1983 Imperial War Museum, Hong Kong and the New Territories
1986 Royal Leicester Infirmary, Surrey University, touring exhibition
1997 Explorations, A T Kearney, London
2009-10 Evolutions of a Cornish clay pit, Eden Project, Cornwall
2011 Spitalfields Paintings:1968-1984, Revisited, Eleven Spitalfields, London
2012 Built, Mall Galleries, London
2014-15 Drawing on Hawksmoor, Eleven Spitalfields, London
1976 Drawings of People at the Serpentine Gallery
1977 British Painting 1952 to 1977 at the Royal Academy, London
1979 Arts Council's British Art Show
1982 Hayward Gallery Annual
1984 The Hard Won Image, Tate Gallery
1998 Artists in National Parks – Exmoor, Victoria & Albert Museum, London
2006 Drawing Inspiration, Abbot Hall Art Gallery, Kendal,
2006 Kunst Galerie, Zell Am See, Austria
2007 The Discerning Eye, Prizewinner, Mall Galleries, London
1951-52 Abbey Major Scholorship to work in Italy
1958 Elected Member of the London Group
1971 Kingston Whig-Standard Award, Ontario
1972 John Moores Competition prize winner
1973 Grocers Company Fellowship to work in Italy
1975 Second British International Drawing Biennale, Middlesborough, First Prize
1976 Elected Associate of the Royal Academy
1984 Elected Member of the Royal West of England Academy
1985 Elected Royal Academician
1988 Elected Member of the Royal Watercolour Society
1989 Charles Wollaston Award, Royal Academy Summer Exhibition
1999-2001 Resident Artist, Eden Project, Cornwall
Work in Public Collections
Arts Council of Great Britain
Bristol, Royal West of England Academy
Carlisle Art Gallery
Centrica plc
Contemporary Arts Society
Government Picture Collection
Guildhall Art Gallery
Leicester Royal Infirmary
Middlesborough Art Gallery
Plymouth Art Gallery


I grew up in San Francisco and live in San Jose, California, two relatively-old cities – for the American west. SF was founded in 1776; SJ was founded in 1777. Both were incorporated in 1850. I have recently returned from an Everwise business trip to run a Mentoring Design Workshop in Brasilia (Brazil). Brasilia was founded in 1960 and had a population of 2.8 million in 2013. A few years ago, I worked for Huawei in Shenzhen (China). Shenzhen was founded in 1979 and had a population of 10.4 million in 2010.
Besides being new cities, Brasilia and Shenzhen have in common that their quick creation is associated with a great leader. I was last in Shenzhen in 2010, the 30th anniversary of the Shenzhen Special Economic Zone. During that time, there was much honoring of Deng Xiaoping. Deng lead China 1978-1992. In Brasilia, we stayed at the Kubitschek Plaza hotel – whose name honors Juscelino Kubitschek de Oliveira, Brazil's President 1956-1961.
Both Brasilia and Shenzhen are still in a skeletal stage of civic development. That is, I saw big buildings and well-developed districts like good bones providing form and identity but also large areas of open land that were marked with actual or virtual/mental "Under Development" signs.
My son and son-in-law like to play the virtual land development game Minecraft together. Minecraft in multi-player survival mode has the concept of identification/ownership "waypoints" to mark areas someone plans to build on – even if nothing is there now. I think Brasilia and Shenzhen are full of waypoints where development is under long-term consideration. It will be fascinating to watch the flesh of mature cities grow up over the coming decades around their lovely young bones.


text:
Kopno zajema kopne (suhe) dele zemeljskega površja (celine in otoki); nasprotje so vodne površine (morja, jezera). Kopno zajema približno 30 % Zemlje.

Površina kopno znaša 148,9 milijona kvadratnih kilometrov, kar znaša 29,2 %. Morske in kopne površine so na severni in južni polobli neenakomerno razporejene. Na južni polobli je le 19 % kopnih in 81 % morskih površin, na severni pa je 39 % kopnih in 61 % morskih površin. Največ kopnih površin severne poloble je v zmernih geografskih širinah.

Sklici

Fizična geografija

redpajama_set_name: RedPajamaWikipedia


text:
CCK Successfully Argues that Board Erred in Denial of Service Connection for Squamous Cell Carcinoma
The Veteran served in the United States Army from April 1966 to April 1968, and was diagnosed with squamous cell carcinoma on the right side of his neck in 2003. He filed a claim for service connection for his cancer and related conditions in December 2007. In July 2008, the Regional Office (RO) denied his claim, and the Veteran filed a Notice of Disagreement in August 2008. Following his appeal two physicians opined that the Veteran's cancer was thought to have originated in his upper respiratory tract, and was likely due to exposure to Agent Orange.
In May 2013, the Board of Veterans' Appeals remanded the Veteran's case in order to obtain a medical opinion from a VA oncologist to determine if it was at least as likely as not that the Veteran's cancer was a respiratory cancer. In September 2015, the VA examiner opined that it was not likely that the Veteran's squamous cell carcinoma was caused by herbicide exposure, and that the location of the Veteran's cancer was not considered to be part of the respiratory system.
In March 2017, the Board denied the Veteran's claim for service connection for squamous cell carcinoma of the throat and residuals, relying on the examiner's opinion.
CCK Appeals Squamous Cell Carcinoma Denial to Court
CCK appealed the March 2017 Board decision denying the Veteran service connection for squamous cell carcinoma of the throat and residuals, claimed as due to exposure to herbicides, to the Court of Appeals for Veterans Claims (CAVC). CCK argued that the examination on which the Board to deny the Veteran was inadequate because the examiner relied on an inadequate factual premise, and provided incomplete reasoning for her opinion that the Veteran's cancer was likely caused by other risk factors such as smoking, alcohol consumption, and human papillomavirus.
Court Agrees with CCK that Examination was Inadequate on Multiple Counts
The Court agreed with CCK that the Board erred in relying on the September 2015 examination to deny the Veteran service connection for squamous cell carcinoma and residuals. The Court held that the examination was inadequate in multiple ways. First, the VA examiner mischaracterized the conclusions of the two favorable medical opinions in the file by restricting the understanding of where the Veteran's cancer likely originated.
Second, the Board had previously held that the two favorable medical opinions held no probative weight because their conclusions of where the Veteran's cancer originated were statements "of mere possibility and not probability." As the VA examiner relied on the two favorable opinions in her conclusion, the VA examiner's opinion should also be deemed to be of no probative value.
Third, the VA examiner noted that tobacco use, alcohol consumption, human papillomavirus and Epstein Barr virus are the four most common causes of pharyngeal cancers. However, she noted that the Veteran's alcohol consumption and "Epstein Barr status" were not known, and did not address how many packs a day the veteran smoked. When discussing human papillomavirus, the examiner noted that the Veteran had a sexually transmitted disease during service, and it was "not out of the realm of possibility that [he] could have been exposed to other [sexually transmitted diseases] during his life time." However, she provided no evidence on which she based her conclusion.
And finally, the examiner stated that she "did not see Agent Orange exposure listed in the literature review as what is possibly thought to be a risk factor for pharyngeal cancer." The examiner did not provide the Board with a description of the current medical research, and it is unclear if the research does not exist, or if the research suggests that there is no link between the Veteran's cancer and herbicide exposure.
Based on the findings that the VA examination was inadequate, the Court vacated the Board's decision and remanded the Veteran's claim back to the Board for readjudication consistent with its decision.
ArticleBoard Erred in Denial of Service Connection for Hepatitis C, Non-Hodgkin's Lymphoma, and Diabetes


text:
<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/cloud/compute/v1/compute.proto

namespace Google\Cloud\Compute\V1;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * MetadataFilter label name value pairs that are expected to match corresponding labels presented as metadata to the load balancer.
 *
 * Generated from protobuf message google.cloud.compute.v1.MetadataFilterLabelMatch
 */
class MetadataFilterLabelMatch extends \Google\Protobuf\Internal\Message
{
    /**
     * Name of metadata label. The name can have a maximum length of 1024 characters and must be at least 1 character long.
     *
     * Generated from protobuf field optional string name = 3373707;
     */
    private $name = null;
    /**
     * The value of the label must match the specified value. value can have a maximum length of 1024 characters.
     *
     * Generated from protobuf field optional string value = 111972721;
     */
    private $value = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $name
     *           Name of metadata label. The name can have a maximum length of 1024 characters and must be at least 1 character long.
     *     @type string $value
     *           The value of the label must match the specified value. value can have a maximum length of 1024 characters.
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Google\Cloud\Compute\V1\Compute::initOnce();
        parent::__construct($data);
    }

    /**
     * Name of metadata label. The name can have a maximum length of 1024 characters and must be at least 1 character long.
     *
     * Generated from protobuf field optional string name = 3373707;
     * @return string
     */
    public function getName()
    {
        return isset($this->name) ? $this->name : '';
    }

    public function hasName()
    {
        return isset($this->name);
    }

    public function clearName()
    {
        unset($this->name);
    }

    /**
     * Name of metadata label. The name can have a maximum length of 1024 characters and must be at least 1 character long.
     *
     * Generated from protobuf field optional string name = 3373707;
     * @param string $var
     * @return $this
     */
    public function setName($var)
    {
        GPBUtil::checkString($var, True);
        $this->name = $var;

        return $this;
    }

    /**
     * The value of the label must match the specified value. value can have a maximum length of 1024 characters.
     *
     * Generated from protobuf field optional string value = 111972721;
     * @return string
     */
    public function getValue()
    {
        return isset($this->value) ? $this->value : '';
    }

    public function hasValue()
    {
        return isset($this->value);
    }

    public function clearValue()
    {
        unset($this->value);
    }

    /**
     * The value of the label must match the specified value. value can have a maximum length of 1024 characters.
     *
     * Generated from protobuf field optional string value = 111972721;
     * @param string $var
     * @return $this
     */
    public function setValue($var)
    {
        GPBUtil::checkString($var, True);
        $this->value = $var;

        return $this;
    }

}


text:
Q: How to display count of notifications in app launcher icon samsung galaxy note 2 android version 4.1.2
I know that this question was asked before and the reply was not possible

How to display balloon counter over application launcher icon on
  android

Nevertheless yesterday I updated the facebook app and it started to show a counter of unread messages private messages. How come facebook app can and I cant do so for my app?

samsung galaxy note 2 android version 4.1.2

A: It works in samsung touchwiz launcher
public static void setBadge(Context context, int count) {
    String launcherClassName = getLauncherClassName(context);
    if (launcherClassName == null) {
        return;
    }
    Intent intent = new Intent("android.intent.action.BADGE_COUNT_UPDATE");
    intent.putExtra("badge_count", count);
    intent.putExtra("badge_count_package_name", context.getPackageName());
    intent.putExtra("badge_count_class_name", launcherClassName);
    context.sendBroadcast(intent);
}

public static String getLauncherClassName(Context context) {

    PackageManager pm = context.getPackageManager();

    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);

    List<ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, 0);
    for (ResolveInfo resolveInfo : resolveInfos) {
        String pkgName = resolveInfo.activityInfo.applicationInfo.packageName;
        if (pkgName.equalsIgnoreCase(context.getPackageName())) {
            String className = resolveInfo.activityInfo.name;
            return className;
        }
    }
    return null;
}

A: ShortcutBadger is a library that adds an abstraction layer over the device brand and current launcher and offers a great result. Works with LG, Sony, Samsung, HTC and other custom Launchers.
It even has a way to display Badge Count in Pure Android devices desktop.
Updating the Badge Count in the application icon is as easy as calling:
int badgeCount = 1;
ShortcutBadger.applyCount(context, badgeCount);

It includes a demo application that allows you to test its behavior.

A: Android ("vanilla" android without custom launchers and touch interfaces) does not allow changing of the application icon, because it is sealed in the .apk tightly once the program is compiled. There is no way to change it to a 'drawable' programmatically using standard APIs. You may achieve your goal by using a widget instead of an icon. Widgets are customisable. Please read this :http://www.cnet.com/8301-19736_1-10278814-251.html and this http://developer.android.com/guide/topics/appwidgets/index.html.
Also look here: https://github.com/jgilfelt/android-viewbadger. It can help you.
As for badge numbers. As I said before - there is no standard way for doing this. But we all know that Android is an open operating system and we can do everything we want with it, so the only way to add a badge number - is either to use some 3-rd party apps or custom launchers, or front-end touch interfaces: Samsung TouchWiz or Sony Xperia's interface. Other answers use this capabilities and you can search for this on stackoverflow, e.g. here. But I will repeat one more time: there is no standard API for this and I want to say it is a bad practice. App's icon notification badge is an iOS pattern and it should not be used in Android apps anyway. In Andrioid there is a status bar notifications for these purposes:http://developer.android.com/guide/topics/ui/notifiers/notifications.html
So, if Facebook or someone other use this - it is not a common pattern or trend we should consider. But if you insist anyway and don't want to use home screen widgets then look here, please:
How does Facebook add badge numbers on app icon in Android?
As you see this is not an actual Facebook app it's TouchWiz. In vanilla android this can be achieved with Nova Launcher http://forums.androidcentral.com/android-applications/199709-how-guide-global-badge-notifications.html
So if you will see icon badges somewhere, be sure it is either a 3-rd party launcher or touch interface (frontend wrapper). May be sometime Google will add this capability to the standard Android API.

A: I have figured out how this is done for Sony devices.
I've blogged about it here. I've also posted a seperate SO question about this here.

Sony devices use a class named BadgeReciever.

*

*Declare the com.sonyericsson.home.permission.BROADCAST_BADGE permission in your manifest file:

*Broadcast an Intent to the BadgeReceiver:
Intent intent = new Intent();

intent.setAction("com.sonyericsson.home.action.UPDATE_BADGE");
intent.putExtra("com.sonyericsson.home.intent.extra.badge.ACTIVITY_NAME", "com.yourdomain.yourapp.MainActivity");
intent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", true);
intent.putExtra("com.sonyericsson.home.intent.extra.badge.MESSAGE", "99");
intent.putExtra("com.sonyericsson.home.intent.extra.badge.PACKAGE_NAME", "com.yourdomain.yourapp");

sendBroadcast(intent);

*Done. Once this Intent is broadcast the launcher should show a badge on your application icon.

*To remove the badge again, simply send a new broadcast, this time with SHOW_MESSAGE set to false:
intent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", false);

I've excluded details on how I found this to keep the answer short, but it's all available in the blog. Might be an interesting read for someone.

A: This is sample and best way for showing badge on notification launcher icon.
Add This Class in your application
public class BadgeUtils {

    public static void setBadge(Context context, int count) {
        setBadgeSamsung(context, count);
        setBadgeSony(context, count);
    }

    public static void clearBadge(Context context) {
        setBadgeSamsung(context, 0);
        clearBadgeSony(context);
    }

    private static void setBadgeSamsung(Context context, int count) {
        String launcherClassName = getLauncherClassName(context);
        if (launcherClassName == null) {
            return;
        }
        Intent intent = new Intent("android.intent.action.BADGE_COUNT_UPDATE");
        intent.putExtra("badge_count", count);
        intent.putExtra("badge_count_package_name", context.getPackageName());
        intent.putExtra("badge_count_class_name", launcherClassName);
        context.sendBroadcast(intent);
    }

    private static void setBadgeSony(Context context, int count) {
        String launcherClassName = getLauncherClassName(context);
        if (launcherClassName == null) {
            return;
        }

        Intent intent = new Intent();
        intent.setAction("com.sonyericsson.home.action.UPDATE_BADGE");
        intent.putExtra("com.sonyericsson.home.intent.extra.badge.ACTIVITY_NAME", launcherClassName);
        intent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", true);
        intent.putExtra("com.sonyericsson.home.intent.extra.badge.MESSAGE", String.valueOf(count));
        intent.putExtra("com.sonyericsson.home.intent.extra.badge.PACKAGE_NAME", context.getPackageName());

        context.sendBroadcast(intent);
    }

    private static void clearBadgeSony(Context context) {
        String launcherClassName = getLauncherClassName(context);
        if (launcherClassName == null) {
            return;
        }

        Intent intent = new Intent();
        intent.setAction("com.sonyericsson.home.action.UPDATE_BADGE");
        intent.putExtra("com.sonyericsson.home.intent.extra.badge.ACTIVITY_NAME", launcherClassName);
        intent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", false);
        intent.putExtra("com.sonyericsson.home.intent.extra.badge.MESSAGE", String.valueOf(0));
        intent.putExtra("com.sonyericsson.home.intent.extra.badge.PACKAGE_NAME", context.getPackageName());

        context.sendBroadcast(intent);
    }

    private static String getLauncherClassName(Context context) {

        PackageManager pm = context.getPackageManager();

        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_LAUNCHER);

        List<ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, 0);
        for (ResolveInfo resolveInfo : resolveInfos) {
            String pkgName = resolveInfo.activityInfo.applicationInfo.packageName;
            if (pkgName.equalsIgnoreCase(context.getPackageName())) {
                String className = resolveInfo.activityInfo.name;
                return className;
            }
        }
        return null;
    }

}

==> MyGcmListenerService.java
Use BadgeUtils  class when notification comes.
public class MyGcmListenerService extends GcmListenerService {

    private static final String TAG = "MyGcmListenerService";
    @Override
    public void onMessageReceived(String from, Bundle data) {

            String message = data.getString("Msg");
            String Type = data.getString("Type");
            Intent intent = new Intent(this, SplashActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
                    PendingIntent.FLAG_ONE_SHOT);

            Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

            NotificationCompat.BigTextStyle bigTextStyle= new NotificationCompat.BigTextStyle();

            bigTextStyle .setBigContentTitle(getString(R.string.app_name))
                    .bigText(message);
            NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
                    .setSmallIcon(getNotificationIcon())
                    .setContentTitle(getString(R.string.app_name))
                    .setContentText(message)
                    .setStyle(bigTextStyle)
                    .setAutoCancel(true)
                    .setSound(defaultSoundUri)
                    .setContentIntent(pendingIntent);

            int color = getResources().getColor(R.color.appColor);
            notificationBuilder.setColor(color);
            NotificationManager notificationManager =
                    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

            int unOpenCount=AppUtill.getPreferenceInt("NOTICOUNT",this);
            unOpenCount=unOpenCount+1;

            AppUtill.savePreferenceLong("NOTICOUNT",unOpenCount,this);
            notificationManager.notify(unOpenCount /* ID of notification */, notificationBuilder.build());

// This is for bladge on home icon
        BadgeUtils.setBadge(MyGcmListenerService.this,(int)unOpenCount);

    }

    private int getNotificationIcon() {
        boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP);
        return useWhiteIcon ? R.drawable.notification_small_icon : R.drawable.icon_launcher;
    }
}

And clear notification from preference and also with badge count
 public class SplashActivity extends AppCompatActivity {
                @Override
                protected void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.activity_splash);

                    AppUtill.savePreferenceLong("NOTICOUNT",0,this);
                    BadgeUtils.clearBadge(this);
            }
    }

<uses-permission android:name="com.sonyericsson.home.permission.BROADCAST_BADGE" />


text:
John L. Shuey (1942-2020)
by Kreamer Funeral Home February 16, 2020 Updated February 21, 2020
John L. Shuey, 77, of Jonestown, passed away on Sunday, February 16, 2020, at the WellSpan Good Samaritan Hospital. He was the husband of Susan L. Ligon Shuey. On January 6th, they celebrated their 50th wedding anniversary.
Born in Lickdale on March 3, 1942, he was the son of the late Herbert and Florence Kohr Shuey. He was the owner/operator of the former Johnny's Restaurant in Indiantown Gap. He then began his career at Indiantown Gap in security. In the 80's he became the Supv. of Reservation Maintenance and retired in 2003. For several years he also worked at the water treatment plant at the former Sherwood Hall. He was a member of the Emmanuel United Methodist Church, where he had served as a trustee for many years. He enjoyed helping with the Northern Lebanon Marching Band and also going to NL sporting events.
In addition to his wife, he is survived by his sons Johnathan R. and his wife Laura Shuey of Lebanon, Shawn L. and his wife Jessica Shuey of Newmanstown and Steven Marks of Dublin, VA; daughters Michelle L. wife of Charles Trout of Wyandotte, OK, Dawn S. wife of Donald Raiger of Jonestown and Debra DeCarlo of Edinborough, VA; brother Ernest Shuey of Jonestown; and nine grandchildren.
He was preceded in death by his brother Thomas Shuey.
Funeral services will be held on Friday, February 21, 2020, at 11:00 a.m. at the Emmanuel United Methodist Church, 6 Boundary Rd., Indiantown Gap. A viewing will be held on Thursday evening from 6:00-8:00 p.m. at the Kreamer & Lum Funeral Home & Crematory, Rt. 72 & Camp Meeting Rd., Jonestown, and one hour prior to the service. Interment will be at Lemberger's Cemetery at the convenience of the family.
In lieu of flowers, memorial contributions may be made to the American Heart Assn., 4250 Crums Mill Rd., Ste. 100, Harrisburg, PA 17112.


text:
Q: Site.com Studio Web to case Form I am creating Site.com Studio form, where I have selected 2 picklist ( one is dependent on other) which is working fine in Case object record.
But when I create form in site.com studio where I add these picklist fields, controlling of picklist values doesnot happen.
UI shows correct picklist values:

Site.com Studio Preview below which shows all the option in "Purpose" field.

Can you please help how can we achieve that on Site.com studio.


You can make online donations by clicking the 'donate' button below. We are using Paypal for secure online donations, you do not need to have a Paypal account to donate.
If you would like to set up a standing order with us please contact us via the form on the » Contact Page.
You may also make a donation when you join us at our weekly services.


text:
Q: Restar dos SUM de tablas diferentes en Mysql Tengo 2 tablas(Productos y Abonos), de la tabla Productos hago un SUM de la columna Precio, este resultado se lo resto a otro SUM de la columna Abono de la tabla Abonos.Pero no me esta dando los resultados correctos (es decir, si el SUM de precios es 52 y el SUM de abono es 10, el resultado me da 116).
SELECT SUM(productos.precio)-SUM(abono.Abono) AS resta
FROM productos,abono
WHERE productos.Id_cliente=2 and abono.Id_cliente=2;

Tomando en cuenta el id del cliente en ambas tablas para indicar que cliente Abona a su cuenta.
Intentè de esta otra manera:
SELECT (SUM(productos.precio)-SUM(abono.Abono)) AS resta
FROM productos
INNER JOIN abono ON productos.Id_cliente=abono.Id_cliente
WHERE productos.Id_cliente=2;


text:
INTRONAUT: Another New Song Available For Download
A new INTRONAUT track entitled "The Literal Black Cloud" is available for free download from BrooklynVegan.com. The song comes off the Southern California band's new album, "Prehistoricisms", which is scheduled for release on September 16 via Century Media Records. The drums for the CD were tracked at Opera Studios in North Hollywood and guitars and bass were laid down at Castle Oaks Studios in Calabasas. Vocals were completed at Clearlake Audio in North Hollywood, and the whole process was engineered by Josh Newell (JANE'S ADDICTION). A video for "Australopithecus" is being helmed by director Sera Timms (ISIS) and will be available shortly.
"Prehistoricisms" track listing:
01. Primordial Soup
02. The Literal Black Cloud
03. Cavernous Den Of Shame
04. Prehistoricisms
05. Any Port
06. Sundial
07. Australopithecus
08. The Reptilian Brain
I. Sleep
II. Eat
III. Shit
IV. Fight
V. Fuck
The group has been critics' darlings, receiving numerous accolades from such major publications as Decibel, Metal Maniacs, Outburn and Revolver, among a slew of others. Decibel even listed "Prehistoricisms" as "One of the most anticipated releases of 2008." In October 2007, INTRONAUT released "The Challenger" EP, but this will be the band's first set of recordings with new guitarist and longtime friend Dave Timnick, with whom they have only recorded one PINK FLOYD cover ("Arnold Layne") for a Syd Barrett tribute disc up until now.
"Prehistoricisms" cover art:


Deeper Into Movies presents a selection of rarely seen documentaries on the life of cult photographer Nan Goldin.
Few photographers can boast a body of work as deep and uncompromisingly honest as that of Nan Goldin. Internationally renowned for her documentation of love, fluid sexuality, glamour, beauty, death, intoxication and pain, Goldin's photographs feature her life and those in it. Her visual language and "social portraiture" approach not only rejects the conventional limits of the medium of photography, it creates something unique: a mirror of herself, as well as the world.


text:
Home Science A potential super-Earth in the habitable zone of a twin of the...
A potential super-Earth in the habitable zone of a twin of the Sun
The star Kepler-160, similar to the Sun, was already known to be accompanied by two overheated planets. In a new study, two new planets are revealed in this system, including a potential super-Earth located in the habitable zone of the star.
More than 4,000 exoplanets are known to date, but few of these are Earth-sized planets in the habitable zone of a Sun-like star. Kepler-160 is, as such, a notable system which is the subject of a new study conducted by René Heller and published this June 4 in Astronomy & Astrophysics.
The central star of the Kepler-160 system is similar to the Sun: its diameter is 1.12 times that of the Sun and its surface temperature is 5.200 ° C, compared to 5.500 of the Sun, which means that the two stars have almost identical luminosities. This star, also known under the designations KIC 7269974 and KOI-456, was observed by the Kepler space telescope between 2009 and 2013.
Thanks to their transits, two first planets were then discovered very close to this star: Kepler-160 b, a super-Earth (1.7 times the diameter of the Earth) which goes around the star in 3.4 days , and Kepler-160 c, a planet probably similar to Neptune (3.1 terrestrial diameters) which goes around it in 13.7 days. In comparison, Mercury orbits the Sun in 88 days. The periodicity of Kepler-160 c transits seemed however modulated by the presence of a third planet which does not transit.
Two new planets…
René Heller, astrophysicist at the Max-Planck Institute for Research on the Solar System (MPS), in Göttingen (Germany), and his collaborators were able to confirm the existence of this disruptive planet. The physical and orbital characteristics of this object designated Kepler-160 d, however, remain relatively unconstrained: a mass between 1 and 100 times that of Earth and an orbital period between 7 and 50 days. In any case, this planet would therefore also be very hot, like its two neighbors above.
What is this near perfect ultraviolet arc in the Big Dipper?
However, Heller and his colleagues discovered a potential other planet in the system that would be more "terrestrial". Indeed, this possible fourth companion, provisionally designated KOI-456.04, would have a diameter of 1.9 times that of the Earth and would circle its star in 378 days, which would place it within the habitable zone of its star. The researchers remain cautious for the moment by considering this object only as a candidate, but report that it is all the same a promising candidate with 85% probability that it is really a planet and not of an instrumental artifact.
… Including a big cousin from Earth
If KOI-456.04 is really a planet, then it would be one of the few known planets of relatively terrestrial size to be in the habitable zone of a star similar to the Sun. Indeed, most of the known exoplanets less than twice the diameter of the Earth, with potentially lenient surface temperatures, are in orbit around a red dwarf star, while hot planets are more typically detected Neptunian size around stars similar to the Sun.
The surface conditions on KOI-456.04 could therefore be similar to those known on Earth, provided that its atmosphere is not too massive and does not resemble that of Earth. The amount of light received from its host star represents about 93% of the sunlight received on Earth. If KOI-456.04 has an essentially inert atmosphere with a moderate greenhouse effect similar to that of Earth, its surface temperature would average +5 degrees Celsius, about ten degrees lower than the average temperature on Earth.
Additional observations should confirm or not the existence of this fourth planet. This confirmation could come from some of the most powerful terrestrial telescopes or from ESA's Plato space mission, which is scheduled to launch in 2026.
Previous articleWeird patient: he survives a huge stake driven through the skull
Next articleNASA and SpaceX reacted to Trump's election ad
Scientists create enzyme that can remove CO2
NASA Detects Earthquakes In The Sun's Inner Layers
57,000-year-old baby wolf fossil discovered in canada
May be a 'super world' orbiting the star closest to the...
An Interesting Augmented Reality Project That You Can See Your Impact...


To support people towards achieving their optimum in spiritual, emotional, physical, and intellectual health in order that they can live their life to its full potential and share their gifts with the world.
Crossing The Bridge takes courage of heart, wisdom of soul, and vulnerability of emotions.
See more of our videos and hear from past attendees on our YouTube channel.
The Bridge Retreat is a highly cathartic six-day personal development experience that offers life transformation through deep healing. Led by highly trained facilitators, it takes place regularly throughout the year at 42 Acres, a luxury retreat centre in Somerset.
The Bridge offers an emotional detox with a chance to rediscover your zest for life. People are supported to grieve their losses and painful betrayals in order to heal old wounds and traumas.
The Bridge experience allows people to reconnect with their true self and leave with a fresh and positive outlook and tools to support themselves to sustain positive change.
Prices start at £2,750. The fee includes all pre and post-retreat support, tuition, accommodation and food. A non-refundable deposit of £500 is due upon booking.
We regularly hold Information Evenings about The Bridge Retreat in London, which are free to attend and all are welcome. These evenings run from 7.00pm — 8.15pm and provide an informal opportunity to meet a member of The Bridge Retreat Team, ask any questions you might have and also hear from past participants about their experiences on the retreat.
Our one-day workshops offer you the chance to find out more about yourself, how you 'tick' and offer tools to take away to support you in your everyday life. All of our workshops are run by highly trained and experienced facilitators from The Bridge Retreat and offer valuable personal development opportunities. You will also have the chance to find out more about The Bridge Retreat whilst there if you wish.


Do you remember when kids used to go outside and play? With sticks and stuff? Neither do we. Online gaming has redefined the game industry and opened up the market to span all age groups and geographic locations by connecting all players online. To better hook into this global, burgeoning market sector, secure a place in the .GAME world. .GAME offers a new niche TLD option for all gaming services, review sites, forums, blogs and more.


Keep the little ones entertained and let them adventure through our dedicated soft play areas at The Dome & Adwick Leisure Complex.
Playzone offers an exciting and safe play environment catering for children 0-12 years old with a dedicated toddler play area.
Grab a bite to eat, maybe a few drinks and catch up with your friends while the kids play away. The Strikes Bar at Adwick and the onsite café at Playzone at the Dome offer a wide range of delicious meals and drinks. There is something for everyone.
Already a Fitness, Swimming or Ice skating Lessons member?


2 bed semi-detached bungalow located in Trinity Gardens, Drogheda, Co. Louth. This property offers huge appeal and is situated at the heart of Drogheda Town Centre in a small cul-de-sac setting. Central to all amenities Drogheda has to offer, the property is within easy reach for regular services to and from Dublin City Centre, while for motorists, the M1 Motorway is only a 5 minute drive away. Viewing Is Highly Advised.


text:
SET(CMAKE_DEPENDS_LANGUAGES
  )
# The set of files for implicit dependencies of each language:

# Targets to which this target links.
SET(CMAKE_TARGET_LINKED_INFO_FILES
  )

# The include file search paths:
SET(CMAKE_C_TARGET_INCLUDE_PATH
  "lib/THC"
  "/root/torch/install/include"
  "/root/torch/install/include/TH"
  "/usr/local/cuda/include"
  "../lib/THC"
  "../torch"
  "."
  ".."
  )
SET(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})
SET(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})
SET(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})


text:
Dick Cheney Is Ready To Start A War With Russia
Gary Bentley
Speaking at a business summit this past weekend, former vice president Dick Cheney told the crowd that Russia's alleged election hacking should be viewed as "an act of war." This man has never met a conflict that he didn't like, and with Democratic support, we could see a war with Russia in our very near future. Ring of Fire's Farron Cousins discusses this.
Transcript of the above video:
Everyone's favorite war criminal Dick Cheney is back in the news telling us that, "What Russia did in the US election could be considered an act of war." Dick Cheney made that statement at the Economic Times Global Business Summit in New Delhi over the weekend, basically saying that yeah we know for certain, "We know for certain that the Russian government interfered with the US election. They used cyber warfare tactics," this is what Dick Cheney said, "To get in there and undermine Hillary Clinton's campaign, and this is what helped elect Donald Trump, but I'm still a Trump supporter. I'm proud to be a Trump supporter," Dick Cheney tells us, "But, what Russia did was clearly an act of war."
Now, there are so many crazy things in Dick Cheney's speech that he gave at this Economic Summit, that I don't even know where to begin, but let's start with the first one. This act of war, as you call it Dick Cheney, is still under investigation. For the love of God man, you already got thousands of American soldiers, and hundreds of thousands of Iraqis killed because you didn't wait for proper intelligence. Will you just relax on the calls to war against Russia right now?
Furthermore, if we do find evidence that they did interfere and that it was directed by the Russian government do you really think a ground war or an air war against a country that has as many nuclear weapons as we do, is a smart idea? I agree that if it turns out Russia did this there need to be consequences, but those can not be military consequences, because we're dealing with a military that's likely as strong as ours, and it will not end well for anyone.
Dick Cheney doesn't care. All Dick Cheney sees an opportunity for more war. By the way, do you know what Russia has a lot of? Maybe not as much as Saudi Arabia, but they've got a hell of a lot of oil. That's why Dick Cheney's pushing for a war with Russia. Furthermore, we still have to wait for the results of all of these investigations. We do not know for sure who hacked in, who directed that person to hack in, who they communicated with, what members of the Trump administration met with them, were they aware of it. There are too many questions that remain to be answered, so let's just shut up with the calls to go to war.
Then you get into the fact that Cheney says, "I'm still a proud Trump supporter." You've already admitted that he kind of stole the election with the help of a foreign government, in your statement, according to you Mister Cheney, but you still support him. If what you said earlier in your statement is true, that Russia did this, helped Trump win, but you still support him do you support treason, because by your own statement, by definition that's what that would be.
It's a little confusing there Dick Cheney. I hope maybe you can clarify that for the rest of the American public, but everybody has to calm down with this Russia mania. Is it likely that this happened? Yeah. You'd have to be pretty thick to not be willing to admit that at this point. We know there was a hacking, we know it's linked to a Russian, but we don't know what the role of that person was. Was it an individual? Was it a government operative? Was it a rogue government operative?
Yeah, we know that it happened, but we have to find all of the connections there. Once we do we can not just launch a war. There will be consequences. Not under Donald Trump obviously, but we get the information maybe we can remove him from office, but we have to figure something out that doesn't involve any kind of retaliatory strike from Russia on the United States. We have to be smart about this, because they are, but stop calling for war. Stop acting like we can solve all of our problems with guns and missiles because we can't.
Dick Cheney, you and your administration prove that. You lost a massive war in the Middle East, and yeah you did lose. What did you gain from that? You idiots couldn't even take out Osama bin Laden. You had to wait for Obama to come into the office and clean up that mess for you. I suggest that Dick Cheney just go away. Nobody wants to hear your calls for war. We know why you want to go in there, to get that Russian oil for your pals at Halliburton, and we know that we don't know enough to really implicate the Russian government at this point.
We need more information and everybody needs to take a step back, take a deep breath, and realize that we still have a lot of investigating to do here.
Gary Bentley is a Video Producer for Ring of Fire.