text:
Deploy a CoreOS running Kubernetes environment. This particular guild is made to help those in an OFFLINE system, wither for testing a POC before the real deal, or you are restricted to be totally offline for your applications.

## High Level Design
1. Manage the tftp directory
  * /tftpboot/(coreos)(centos)(RHEL)
  * /tftpboot/pxelinux.0/(MAC) -> linked to Linux image config file
2. Update per install the link for pxelinux
3. Update the DHCP config to reflect the host needing deployment
4. Setup nodes to deploy CoreOS creating a etcd cluster.
5. Have no access to the public [etcd discovery tool](https://discovery.etcd.io/).
6. Installing the CoreOS slaves to become Kubernetes minions.

## Pre-requisites
1. Installed *CentOS 6* for PXE server
2. At least two bare metal nodes to work with

## This Guides variables
| Node Description              | MAC               | IP          |
| :---------------------------- | :---------------: | :---------: |
| CoreOS/etcd/Kubernetes Master | d0:00:67:13:0d:00 | 10.20.30.40 |
| CoreOS Slave 1                | d0:00:67:13:0d:01 | 10.20.30.41 |
| CoreOS Slave 2                | d0:00:67:13:0d:02 | 10.20.30.42 |

## Setup PXELINUX CentOS
To setup CentOS PXELINUX environment there is a complete [guide here](http://docs.fedoraproject.org/en-US/Fedora/7/html/Installation_Guide/ap-pxe-server.html). This section is the abbreviated version.

1. Install packages needed on CentOS

        sudo yum install tftp-server dhcp syslinux

2. ```vi /etc/xinetd.d/tftp``` to enable tftp service and change disable to 'no'
        disable = no

3. Copy over the syslinux images we will need.

        su -
        mkdir -p /tftpboot
        cd /tftpboot
        cp /usr/share/syslinux/pxelinux.0 /tftpboot
        cp /usr/share/syslinux/menu.c32 /tftpboot
        cp /usr/share/syslinux/memdisk /tftpboot
        cp /usr/share/syslinux/mboot.c32 /tftpboot
        cp /usr/share/syslinux/chain.c32 /tftpboot

        /sbin/service dhcpd start
        /sbin/service xinetd start
        /sbin/chkconfig tftp on

4. Setup default boot menu

        mkdir /tftpboot/pxelinux.cfg
        touch /tftpboot/pxelinux.cfg/default

5. Edit the menu ```vi /tftpboot/pxelinux.cfg/default```

        default menu.c32
        prompt 0
        timeout 15
        ONTIMEOUT local
        display boot.msg

        MENU TITLE Main Menu

        LABEL local
                MENU LABEL Boot local hard drive
                LOCALBOOT 0

Now you should have a working PXELINUX setup to image CoreOS nodes. You can verify the services by using VirtualBox locally or with bare metal servers.

## Adding CoreOS to PXE
This section describes how to setup the CoreOS images to live alongside a pre-existing PXELINUX environment.

1. Find or create the TFTP root directory that everything will be based off of.
    * For this document we will assume ```/tftpboot/``` is our root directory.
2. Once we know and have our tftp root directory we will create a new directory structure for our CoreOS images.
3. Download the CoreOS PXE files provided by the CoreOS team.

        MY_TFTPROOT_DIR=/tftpboot
        mkdir -p $MY_TFTPROOT_DIR/images/coreos/
        cd $MY_TFTPROOT_DIR/images/coreos/
        wget http://stable.release.core-os.net/amd64-usr/current/coreos_production_pxe.vmlinuz
        wget http://stable.release.core-os.net/amd64-usr/current/coreos_production_pxe.vmlinuz.sig
        wget http://stable.release.core-os.net/amd64-usr/current/coreos_production_pxe_image.cpio.gz
        wget http://stable.release.core-os.net/amd64-usr/current/coreos_production_pxe_image.cpio.gz.sig
        gpg --verify coreos_production_pxe.vmlinuz.sig
        gpg --verify coreos_production_pxe_image.cpio.gz.sig

4. Edit the menu ```vi /tftpboot/pxelinux.cfg/default``` again

        default menu.c32
        prompt 0
        timeout 300
        ONTIMEOUT local
        display boot.msg

        MENU TITLE Main Menu

        LABEL local
                MENU LABEL Boot local hard drive
                LOCALBOOT 0

        MENU BEGIN CoreOS Menu

            LABEL coreos-master
                MENU LABEL CoreOS Master
                KERNEL images/coreos/coreos_production_pxe.vmlinuz
                APPEND initrd=images/coreos/coreos_production_pxe_image.cpio.gz cloud-config-url=http://<xxx.xxx.xxx.xxx>/pxe-cloud-config-single-master.yml

            LABEL coreos-slave
                MENU LABEL CoreOS Slave
                KERNEL images/coreos/coreos_production_pxe.vmlinuz
                APPEND initrd=images/coreos/coreos_production_pxe_image.cpio.gz cloud-config-url=http://<xxx.xxx.xxx.xxx>/pxe-cloud-config-slave.yml
        MENU END

This configuration file will now boot from local drive but have the option to PXE image CoreOS.

## DHCP configuration
This section covers configuring the DHCP server to hand out our new images. In this case we are assuming that there are other servers that will boot alongside other images.

1. Add the ```filename``` to the _host_ or _subnet_ sections.

        filename "/tftpboot/pxelinux.0";

2. At this point we want to make pxelinux configuration files that will be the templates for the different CoreOS deployments.

        subnet 10.20.30.0 netmask 255.255.255.0 {
                next-server 10.20.30.242;
                option broadcast-address 10.20.30.255;
                filename "<other default image>";

                ...
                # http://www.syslinux.org/wiki/index.php/PXELINUX
                host core_os_master {
                        hardware ethernet d0:00:67:13:0d:00;
                        option routers 10.20.30.1;
                        fixed-address 10.20.30.40;
                        option domain-name-servers 10.20.30.242;
                        filename "/pxelinux.0";
                }
                host core_os_slave {
                        hardware ethernet d0:00:67:13:0d:01;
                        option routers 10.20.30.1;
                        fixed-address 10.20.30.41;
                        option domain-name-servers 10.20.30.242;
                        filename "/pxelinux.0";
                }
                host core_os_slave2 {
                        hardware ethernet d0:00:67:13:0d:02;
                        option routers 10.20.30.1;
                        fixed-address 10.20.30.42;
                        option domain-name-servers 10.20.30.242;
                        filename "/pxelinux.0";
                }
                ...
        }

We will be specifying the node configuration later in the guide.

# Kubernetes
To deploy our configuration we need to create an ```etcd``` master. To do so we want to pxe CoreOS with a specific cloud-config.yml. There are two options we have here.
1. Is to template the cloud config file and programmatically create new static configs for different cluster setups.
2. Have a service discovery protocol running in our stack to do auto discovery.

This demo we just make a static single ```etcd``` server to host our Kubernetes and ```etcd``` master servers.

Since we are OFFLINE here most of the helping processes in CoreOS and Kubernetes are then limited. To do our setup we will then have to download and serve up our binaries for Kubernetes in our local environment.

An easy solution is to host a small web server on the DHCP/TFTP host for all our binaries to make them available to the local CoreOS PXE machines.

To get this up and running we are going to setup a simple ```apache``` server to serve our binaries needed to bootstrap Kubernetes.

This is on the PXE server from the previous section:

    rm /etc/httpd/conf.d/welcome.conf
    cd /var/www/html/
    wget -O kube-register  https://github.com/kelseyhightower/kube-register/releases/download/v0.0.2/kube-register-0.0.2-linux-amd64
    wget -O setup-network-environment https://github.com/kelseyhightower/setup-network-environment/releases/download/v1.0.0/setup-network-environment
    wget https://storage.googleapis.com/kubernetes-release/release/v0.15.0/bin/linux/amd64/kubernetes --no-check-certificate
    wget https://storage.googleapis.com/kubernetes-release/release/v0.15.0/bin/linux/amd64/kube-apiserver --no-check-certificate
    wget https://storage.googleapis.com/kubernetes-release/release/v0.15.0/bin/linux/amd64/kube-controller-manager --no-check-certificate
    wget https://storage.googleapis.com/kubernetes-release/release/v0.15.0/bin/linux/amd64/kube-scheduler --no-check-certificate
    wget https://storage.googleapis.com/kubernetes-release/release/v0.15.0/bin/linux/amd64/kubectl --no-check-certificate
    wget https://storage.googleapis.com/kubernetes-release/release/v0.15.0/bin/linux/amd64/kubecfg --no-check-certificate
    wget https://storage.googleapis.com/kubernetes-release/release/v0.15.0/bin/linux/amd64/kubelet --no-check-certificate
    wget https://storage.googleapis.com/kubernetes-release/release/v0.15.0/bin/linux/amd64/kube-proxy --no-check-certificate
    wget -O flanneld https://storage.googleapis.com/k8s/flanneld --no-check-certificate

This sets up our binaries we need to run Kubernetes. This would need to be enhanced to download from the Internet for updates in the future.

Now for the good stuff!

## Cloud Configs
The following config files are tailored for the OFFLINE version of a Kubernetes deployment.

These are based on the work found here: [master.yml](http://docs.k8s.io/getting-started-guides/coreos/cloud-configs/master.yaml), [node.yml](http://docs.k8s.io/getting-started-guides/coreos/cloud-configs/node.yaml)

To make the setup work, you need to replace a few placeholders:

 - Replace `<PXE_SERVER_IP>` with your PXE server ip address (e.g. 10.20.30.242)
 - Replace `<MASTER_SERVER_IP>` with the kubernetes master ip address (e.g. 10.20.30.40)
 - If you run a private docker registry, replace `rdocker.example.com` with your docker registry dns name.
 - If you use a proxy, replace `rproxy.example.com` with your proxy server (and port)
 - Add your own SSH public key(s) to the cloud config at the end

### master.yml
On the PXE server make and fill in the variables ```vi /var/www/html/coreos/pxe-cloud-config-master.yml```.

    #cloud-config
    ---
    write_files:
      - path: /opt/bin/waiter.sh
        owner: root
        content: |
          #! /usr/bin/bash
          until curl http://127.0.0.1:4001/v2/machines; do sleep 2; done
      - path: /opt/bin/kubernetes-download.sh
        owner: root
        permissions: 0755
        content: |
          #! /usr/bin/bash
          /usr/bin/wget -N -P "/opt/bin" "http://<PXE_SERVER_IP>/kubectl"
          /usr/bin/wget -N -P "/opt/bin" "http://<PXE_SERVER_IP>/kubernetes"
          /usr/bin/wget -N -P "/opt/bin" "http://<PXE_SERVER_IP>/kubecfg"
          chmod +x /opt/bin/*
      - path: /etc/profile.d/opt-path.sh
        owner: root
        permissions: 0755
        content: |
          #! /usr/bin/bash
          PATH=$PATH/opt/bin
    coreos:
      units:
        - name: 10-eno1.network
          runtime: true
          content: |
            [Match]
            Name=eno1
            [Network]
            DHCP=yes
        - name: 20-nodhcp.network
          runtime: true
          content: |
            [Match]
            Name=en*
            [Network]
            DHCP=none
        - name: get-kube-tools.service
          runtime: true
          command: start
          content: |
            [Service]
            ExecStartPre=-/usr/bin/mkdir -p /opt/bin
            ExecStart=/opt/bin/kubernetes-download.sh
            RemainAfterExit=yes
            Type=oneshot
        - name: setup-network-environment.service
          command: start
          content: |
            [Unit]
            Description=Setup Network Environment
            Documentation=https://github.com/kelseyhightower/setup-network-environment
            Requires=network-online.target
            After=network-online.target
            [Service]
            ExecStartPre=-/usr/bin/mkdir -p /opt/bin
            ExecStartPre=/usr/bin/wget -N -P /opt/bin http://<PXE_SERVER_IP>/setup-network-environment
            ExecStartPre=/usr/bin/chmod +x /opt/bin/setup-network-environment
            ExecStart=/opt/bin/setup-network-environment
            RemainAfterExit=yes
            Type=oneshot
        - name: etcd.service
          command: start
          content: |
            [Unit]
            Description=etcd
            Requires=setup-network-environment.service
            After=setup-network-environment.service
            [Service]
            EnvironmentFile=/etc/network-environment
            User=etcd
            PermissionsStartOnly=true
            ExecStart=/usr/bin/etcd \
            --name ${DEFAULT_IPV4} \
            --addr ${DEFAULT_IPV4}:4001 \
            --bind-addr 0.0.0.0 \
            --cluster-active-size 1 \
            --data-dir /var/lib/etcd \
            --http-read-timeout 86400 \
            --peer-addr ${DEFAULT_IPV4}:7001 \
            --snapshot true
            Restart=always
            RestartSec=10s
        - name: fleet.socket
          command: start
          content: |
            [Socket]
            ListenStream=/var/run/fleet.sock
        - name: fleet.service
          command: start
          content: |
            [Unit]
            Description=fleet daemon
            Wants=etcd.service
            After=etcd.service
            Wants=fleet.socket
            After=fleet.socket
            [Service]
            Environment="FLEET_ETCD_SERVERS=http://127.0.0.1:4001"
            Environment="FLEET_METADATA=role=master"
            ExecStart=/usr/bin/fleetd
            Restart=always
            RestartSec=10s
        - name: etcd-waiter.service
          command: start
          content: |
            [Unit]
            Description=etcd waiter
            Wants=network-online.target
            Wants=etcd.service
            After=etcd.service
            After=network-online.target
            Before=flannel.service
            Before=setup-network-environment.service
            [Service]
            ExecStartPre=/usr/bin/chmod +x /opt/bin/waiter.sh
            ExecStart=/usr/bin/bash /opt/bin/waiter.sh
            RemainAfterExit=true
            Type=oneshot
        - name: flannel.service
          command: start
          content: |
            [Unit]
            Wants=etcd-waiter.service
            After=etcd-waiter.service
            Requires=etcd.service
            After=etcd.service
            After=network-online.target
            Wants=network-online.target
            Description=flannel is an etcd backed overlay network for containers
            [Service]
            Type=notify
            ExecStartPre=-/usr/bin/mkdir -p /opt/bin
            ExecStartPre=/usr/bin/wget -N -P /opt/bin http://<PXE_SERVER_IP>/flanneld
            ExecStartPre=/usr/bin/chmod +x /opt/bin/flanneld
            ExecStartPre=-/usr/bin/etcdctl mk /coreos.com/network/config '{"Network":"10.100.0.0/16", "Backend": {"Type": "vxlan"}}'
            ExecStart=/opt/bin/flanneld
        - name: kube-apiserver.service
          command: start
          content: |
            [Unit]
            Description=Kubernetes API Server
            Documentation=https://github.com/GoogleCloudPlatform/kubernetes
            Requires=etcd.service
            After=etcd.service
            [Service]
            ExecStartPre=-/usr/bin/mkdir -p /opt/bin
            ExecStartPre=/usr/bin/wget -N -P /opt/bin http://<PXE_SERVER_IP>/kube-apiserver
            ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-apiserver
            ExecStart=/opt/bin/kube-apiserver \
            --address=0.0.0.0 \
            --port=8080 \
            --portal_net=10.100.0.0/16 \
            --etcd_servers=http://127.0.0.1:4001 \
            --logtostderr=true
            Restart=always
            RestartSec=10
        - name: kube-controller-manager.service
          command: start
          content: |
            [Unit]
            Description=Kubernetes Controller Manager
            Documentation=https://github.com/GoogleCloudPlatform/kubernetes
            Requires=kube-apiserver.service
            After=kube-apiserver.service
            [Service]
            ExecStartPre=/usr/bin/wget -N -P /opt/bin http://<PXE_SERVER_IP>/kube-controller-manager
            ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-controller-manager
            ExecStart=/opt/bin/kube-controller-manager \
            --master=127.0.0.1:8080 \
            --logtostderr=true
            Restart=always
            RestartSec=10
        - name: kube-scheduler.service
          command: start
          content: |
            [Unit]
            Description=Kubernetes Scheduler
            Documentation=https://github.com/GoogleCloudPlatform/kubernetes
            Requires=kube-apiserver.service
            After=kube-apiserver.service
            [Service]
            ExecStartPre=/usr/bin/wget -N -P /opt/bin http://<PXE_SERVER_IP>/kube-scheduler
            ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-scheduler
            ExecStart=/opt/bin/kube-scheduler --master=127.0.0.1:8080
            Restart=always
            RestartSec=10
        - name: kube-register.service
          command: start
          content: |
            [Unit]
            Description=Kubernetes Registration Service
            Documentation=https://github.com/kelseyhightower/kube-register
            Requires=kube-apiserver.service
            After=kube-apiserver.service
            Requires=fleet.service
            After=fleet.service
            [Service]
            ExecStartPre=/usr/bin/wget -N -P /opt/bin http://<PXE_SERVER_IP>/kube-register
            ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-register
            ExecStart=/opt/bin/kube-register \
            --metadata=role=node \
            --fleet-endpoint=unix:///var/run/fleet.sock \
            --healthz-port=10248 \
            --api-endpoint=http://127.0.0.1:8080
            Restart=always
            RestartSec=10
      update:
        group: stable
        reboot-strategy: off
    ssh_authorized_keys:
      - ssh-rsa AAAAB3NzaC1yc2EAAAAD...

### node.yml
On the PXE server make and fill in the variables ```vi /var/www/html/coreos/pxe-cloud-config-slave.yml```.

    #cloud-config
    ---
    write_files:
      - path: /etc/default/docker
        content: |
          DOCKER_EXTRA_OPTS='--insecure-registry="rdocker.example.com:5000"'
    coreos:
      units:
        - name: 10-eno1.network
          runtime: true
          content: |
            [Match]
            Name=eno1
            [Network]
            DHCP=yes
        - name: 20-nodhcp.network
          runtime: true
          content: |
            [Match]
            Name=en*
            [Network]
            DHCP=none
        - name: etcd.service
          mask: true
        - name: docker.service
          drop-ins:
            - name: 50-insecure-registry.conf
              content: |
                [Service]
                Environment="HTTP_PROXY=http://rproxy.example.com:3128/" "NO_PROXY=localhost,127.0.0.0/8,rdocker.example.com"
        - name: fleet.service
          command: start
          content: |
            [Unit]
            Description=fleet daemon
            Wants=fleet.socket
            After=fleet.socket
            [Service]
            Environment="FLEET_ETCD_SERVERS=http://<MASTER_SERVER_IP>:4001"
            Environment="FLEET_METADATA=role=node"
            ExecStart=/usr/bin/fleetd
            Restart=always
            RestartSec=10s
        - name: flannel.service
          command: start
          content: |
            [Unit]
            After=network-online.target
            Wants=network-online.target
            Description=flannel is an etcd backed overlay network for containers
            [Service]
            Type=notify
            ExecStartPre=-/usr/bin/mkdir -p /opt/bin
            ExecStartPre=/usr/bin/wget -N -P /opt/bin http://<PXE_SERVER_IP>/flanneld
            ExecStartPre=/usr/bin/chmod +x /opt/bin/flanneld
            ExecStart=/opt/bin/flanneld -etcd-endpoints http://<MASTER_SERVER_IP>:4001
        - name: docker.service
          command: start
          content: |
            [Unit]
            After=flannel.service
            Wants=flannel.service
            Description=Docker Application Container Engine
            Documentation=http://docs.docker.io
            [Service]
            EnvironmentFile=-/etc/default/docker
            EnvironmentFile=/run/flannel/subnet.env
            ExecStartPre=/bin/mount --make-rprivate /
            ExecStart=/usr/bin/docker -d --bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU} -s=overlay -H fd:// ${DOCKER_EXTRA_OPTS}
            [Install]
            WantedBy=multi-user.target
        - name: setup-network-environment.service
          command: start
          content: |
            [Unit]
            Description=Setup Network Environment
            Documentation=https://github.com/kelseyhightower/setup-network-environment
            Requires=network-online.target
            After=network-online.target
            [Service]
            ExecStartPre=-/usr/bin/mkdir -p /opt/bin
            ExecStartPre=/usr/bin/wget -N -P /opt/bin http://<PXE_SERVER_IP>/setup-network-environment
            ExecStartPre=/usr/bin/chmod +x /opt/bin/setup-network-environment
            ExecStart=/opt/bin/setup-network-environment
            RemainAfterExit=yes
            Type=oneshot
        - name: kube-proxy.service
          command: start
          content: |
            [Unit]
            Description=Kubernetes Proxy
            Documentation=https://github.com/GoogleCloudPlatform/kubernetes
            Requires=setup-network-environment.service
            After=setup-network-environment.service
            [Service]
            ExecStartPre=/usr/bin/wget -N -P /opt/bin http://<PXE_SERVER_IP>/kube-proxy
            ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-proxy
            ExecStart=/opt/bin/kube-proxy \
            --etcd_servers=http://<MASTER_SERVER_IP>:4001 \
            --logtostderr=true
            Restart=always
            RestartSec=10
        - name: kube-kubelet.service
          command: start
          content: |
            [Unit]
            Description=Kubernetes Kubelet
            Documentation=https://github.com/GoogleCloudPlatform/kubernetes
            Requires=setup-network-environment.service
            After=setup-network-environment.service
            [Service]
            EnvironmentFile=/etc/network-environment
            ExecStartPre=/usr/bin/wget -N -P /opt/bin http://<PXE_SERVER_IP>/kubelet
            ExecStartPre=/usr/bin/chmod +x /opt/bin/kubelet
            ExecStart=/opt/bin/kubelet \
            --address=0.0.0.0 \
            --port=10250 \
            --hostname_override=${DEFAULT_IPV4} \
            --api_servers=<MASTER_SERVER_IP>:8080 \
            --healthz_bind_address=0.0.0.0 \
            --healthz_port=10248 \
            --logtostderr=true
            Restart=always
            RestartSec=10
      update:
        group: stable
        reboot-strategy: off
    ssh_authorized_keys:
      - ssh-rsa AAAAB3NzaC1yc2EAAAAD...

## New pxelinux.cfg file
Create a pxelinux target file for a _slave_ node: ```vi /tftpboot/pxelinux.cfg/coreos-node-slave```

    default coreos
    prompt 1
    timeout 15

    display boot.msg

    label coreos
      menu default
      kernel images/coreos/coreos_production_pxe.vmlinuz
      append initrd=images/coreos/coreos_production_pxe_image.cpio.gz cloud-config-url=http://<pxe-host-ip>/coreos/pxe-cloud-config-slave.yml console=tty0 console=ttyS0 coreos.autologin=tty1 coreos.autologin=ttyS0

And one for the _master_ node: ```vi /tftpboot/pxelinux.cfg/coreos-node-master```

    default coreos
    prompt 1
    timeout 15

    display boot.msg

    label coreos
      menu default
      kernel images/coreos/coreos_production_pxe.vmlinuz
      append initrd=images/coreos/coreos_production_pxe_image.cpio.gz cloud-config-url=http://<pxe-host-ip>/coreos/pxe-cloud-config-master.yml console=tty0 console=ttyS0 coreos.autologin=tty1 coreos.autologin=ttyS0

## Specify the pxelinux targets
Now that we have our new targets setup for master and slave we want to configure the specific hosts to those targets. We will do this by using the pxelinux mechanism of setting a specific MAC addresses to a specific pxelinux.cfg file.

Refer to the MAC address table in the beginning of this guide. Documentation for more details can be found [here](http://www.syslinux.org/wiki/index.php/PXELINUX).

    cd /tftpboot/pxelinux.cfg
    ln -s coreos-node-master 01-d0-00-67-13-0d-00
    ln -s coreos-node-slave 01-d0-00-67-13-0d-01
    ln -s coreos-node-slave 01-d0-00-67-13-0d-02

Reboot these servers to get the images PXEd and ready for running containers!

## Creating test pod
Now that the CoreOS with Kubernetes installed is up and running lets spin up some Kubernetes pods to demonstrate the system.

Here is a fork where you can do a full walk through by using [Kubernetes docs](https://github.com/GoogleCloudPlatform/kubernetes/tree/master/examples/walkthrough), or use the following example for a quick test.

On the Kubernetes Master node lets create a '''nginx.yml'''

    apiVersion: v1beta1
    kind: Pod
    id: www
    desiredState:
      manifest:
        version: v1beta1
        id: www
        containers:
          - name: nginx
            image: nginx

Now for the service: ```nginx-service.yml```

    kind: Service
    apiVersion: v1beta1
    # must be a DNS compatible name
    id: nginx-example
    # the port that this service should serve on
    port: 80
    # just like the selector in the replication controller,
    # but this time it identifies the set of pods to load balance
    # traffic to.
    selector:
      name: www
    # the container on each pod to connect to, can be a name
    # (e.g. 'www') or a number (e.g. 80)
    containerPort: 80

Now add the pod to Kubernetes:

     kubectl create -f nginx.yml

This might take a while to download depending on the environment.

## Helping commands for debugging

List all keys in etcd:

     etcdctl ls --recursive

List fleet machines

    fleetctl list-machines

Check system status of services on master node:

    systemctl status kube-apiserver
    systemctl status kube-controller-manager
    systemctl status kube-scheduler
    systemctl status kube-register

Check system status of services on a minion node:

    systemctl status kube-kubelet
    systemctl status docker.service

List Kubernetes

    kubectl get pods
    kubectl get minions

Kill all pods:

    for i in `kubectl get pods | awk '{print $1}'`; do kubectl stop pod $i; done


Please Note that Budmarsh welcomes children over the age of 12.
The cost of accommodation at Budmarsh is not included in Option 2. Please view the accommodation package options available.
The Picnic basket or High Tea may be taken up on any day during your stay. Please advise the preferred date on booking. This is subject to availability.


text:
Q: Ds4 controller, problems connecting to pc Ok, so i have tried literally everything that other forums, other posts, and literally what my witch doctor have told me, so i have taken the messure of going to the gods of the internet myself and try to see if someone can solve my problem.
So i have a DS4 playstation controller (2 in fact, and the same problem consists with them both). When i use them for my playstation, there is not a single thing wrong with them, neither with bluetooth or with USB-wired. But as soon as i want to connect them to my pc, my controller couldn't connect properly. it was just flashing orange, showing it was charging, but no connection.
For a long time, actually many years, i used DS4Windows as my ds4 controller tool, but all of the sudden, it didn't want to get connection. So i tried installing some other software called SCPToolkit. It worked for the most parts, but for some reason it would start vibrating uncontrollable, even with vibration turned off.
I then took to the internet to uncover this uncertain problem of mine, and i found people talking about the HID driver, talking about the unit under Devices and Printers, i saw people talking about blinking blue lights, which all lead to my problems.
I have tried reinstalling drivers, i have tried reinstalling the toolkits, i have tried disabling the driver, and enabling it again, since people said it for some reason was turned off for them, and that fixed everything, but it was never deactivated for me.
Then all of the sudden, my controller under Devices and Printers had gone from a controller device, to a sound device. Now consider me puzzled and i took to the net again, yet the fixes people suggested, which might as well have led to the salvation of the entire world, according to people, did not fix mine. i took to the messure to just delete the whole device itself, and reinstalling it, upon which it again, became a controller device.
Yet upon this, it did not fix my problems at all. Next i did, i tried pressing the reset button on the back of the controller, which now have lead it to just constant blinking its blue delighted light, upon which i have read, "just press the reset button, and that should fix it" which i now have done like 3 times, and was what made me be stuck in this position as i am.
I have read almost every single forum post on every forum talking about this problem with USB-connected controller to pc, but none of the solutions would seem to grant me my wish.
All i want is to play some of my games with my controller, but it seems that the entire world is neglecting this wish.
And now, benevolent gods of the internet, i beg of thee, please soothe this problem of mine with a solution to my problems.

redpajama_set_name: RedPajamaStackExchange


text:
31.01.23 11:36 Members of SCO, BRICS, EAEU invited to CIS International Economic Forum Politics
An orchestral classic
Photo: chinadaily.com.cn
BEIJING, 29 July (BelTA - China Daily). - An epic new musical interpretation of the Song Dynasty painting, A Panorama of Rivers and Mountains, is set to make its global debut, Chen Nan reports.
A Panorama of Rivers and Mountains, the classic artwork by Wang Ximeng, who completed the masterpiece during the Song Dynasty (960-1279) at the age of 18, is widely acknowledged as one of the most important works in the history of Chinese fine art.
Like many artists, Chinese composer Zhao Lin has been inspired by the beautiful painting. He spent over a year working on a symphonic poem, using music to interpret the classic imagery.
On Saturday, Zhao's symphonic poem, titled A Thousand Li of Rivers and Mountains, will have its world premiere in Shanghai. The Shanghai Symphony Orchestra will perform under the baton of conductor Sun Yifan in the closing concert of the city's 2022 Music in the Summer Air festival. Due to the COVID-19 pandemic, the concert will be streamed online.
A nationwide tour will be launched in August with Chinese symphony orchestras, such as the China Philharmonic Orchestra, Guangzhou Symphony Orchestra, Hangzhou Philharmonic Orchestra, and Shenzhen Symphony Orchestra, performing Zhao's symphonic poem in 20 concerts.
The first stop will be Xi'an, Shaanxi province, with a concert performed by the China Philharmonic Orchestra and its artistic director, conductor Yu Long, on Wednesday.
"Since we decided to turn the iconic painting into a musical work, I've put a copy of the painting in my studio," says Zhao. "My studio is very small. I just surrounded myself with the painting in the small room. I looked at it every day and it kept on inspiring me."
The 11-meter-long scroll painting is a record of people's lives and the natural scenery of that time, mixing realism with creative imagination. There are mountains, rivers, villages, ports, temples and pavilions. The painting is housed at the Palace Museum in Beijing.
Like the painting, which has been divided into six parts with portrayals of Chinese mountains, the symphonic poem also consists of six chapters: an overture, one piece for sheng (a wind instrument and one of the oldest musical instruments in China), a piece for pipa, a piece for erhu and a piece for piano, all accompanied by a symphony orchestra. The final piece is written for bamboo flute and soprano, with a song based on the classic Chinese poem, On Pengli Lake Gazing at Lushan Mountain, by Tang Dynasty (618-907) poet Meng Haoran.
Each of the six chapters stands on its own, with different musical instruments, and each chapter portrays its own picture through music.
The composer tries to not only capture the natural scenery portrayed in the painting, but also display the spirit of the countryside, which is rooted deep in traditional Chinese culture, as well as the spirit of Chinese people.
Zhao says there has always been a harmonious relationship between music and art and that he had dreamed about composing such a piece.
"Classic Chinese paintings are renowned for their delicate details. The artists expressed infinite feelings through their works and their paintings usually display a vivid imagination," says Zhao, who was born in Xi'an in a family of artists.
His grandfather Zhao Wangyun (1906-77) was the co-founder of the "Chang'an school of painting" in the 1960s with two other ink-brush artists based in Xi'an. Zhao Wangyun was known for his landscape paintings and those that portray the daily lives of local people.
"Most of my relatives are painters, so I grew up painting. Whenever I go back to my hometown, Xi'an, I join them to paint," says Zhao Lin.
Zhao Lin's father is Chinese composer Zhao Jiping, who is known for producing the score of Zhang Yimou's 1991 film Raise the Red Lantern and director Chen Kaige's 1993 film Farewell My Concubine.
Zhao Lin began learning piano at the age of 5 and studied as a composer at the Central Conservatory of Music in Beijing, where he graduated in 1996. He began his professional career as a composer for the China National Traditional Orchestra. Following in his father's footsteps, Zhao Lin has also produced film scores, including those for Together (2002), directed by Chen, and A Woman, a Gun and a Noodle Shop (2009), directed by Zhang.
In 2004, Zhao Lin also composed for the Silk Road Ensemble, a world-music initiative overseen by cellist Yo-Yo Ma.
Earlier this year, Zhao Lin served as the music director of the opening ceremony for the 2022 Winter Olympics in Beijing.
Zhao Lin notes that the reason why he chose On Pengli Lake Gazing at Lushan Mountain as the basis for the song in the closing chapter of the new musical piece was that "it's believed that Lushan Mountain and Poyang Lake are the main scenic focus of A Panorama of Rivers and Mountains". Poyang Lake was formerly called Pengli Lake. The two natural landmarks were described by Meng in his poem.
The idea of composing a music piece based on A Panorama of Rivers and Mountains started over a year ago when the League of China Orchestras held its annual forum in 2021. Twenty-three Chinese symphony orchestras commissioned the music piece together.
"It's a very exciting project. We have never had so many Chinese symphony orchestras work together to commission one music piece," says Yu Long, a renowned conductor and the president of the League of China Orchestras, which was launched in 2019 by the Chinese Musicians' Association.
"With a combination of traditional Chinese painting, music and poetry, the piece is dedicated to Chinese culture and Chinese people."
During the upcoming national tour, musicians from Hong Kong, Macao, Guangzhou and Shenzhen will perform together at two concerts to be held in Shenzhen on Aug 5 and in Guangzhou on Aug 10, commemorating the 25th anniversary of Hong Kong's return to the motherland.
On Sept 24, the piece will be performed at the capital's Poly Theater as the opening concert of the Beijing Music Festival, one of the largest classical music events in the country, which was founded by conductor Yu in 1998.
More about Partners
Hundreds of rare blossom-headed parakeets silhouetted against sunset in SW China's Yunnan
Syrian equestrian Sham al-Assad wins award at FBMA Int'l Show Jumping Cup
"Spartan Khorfakkan" Championship attracts 2,250 contestants cheered on by more than 3,500 Spectators
New dance drama will fight for success
Remington JPF win U-19 Junior Polo Championship
Turkish culture show held ahead of NBA game
Belarus' National Bank: Economy, banking system handled sanctions well
Visa-free travel program Migrant crisis on the Belarusian-Polish border With Pride in Heart VI Belarusian People's Congress

redpajama_set_name: RedPajamaCommonCrawl


• Wheat-free isn't the same as gluten-free: Wheat-free products may still contain spelt-, rye- or barley-based ingredients that aren't gluten-free.
• Better to be safe than sorry: If you're unable to verify if a particular food is gluten-free, isn't derived from gluten-rich grains or if the ingredients list itself is missing, don't eat it. Even if you eat a small portion of gluten that you weren't able to account for, this can lead to small intestine damage and may trigger symptoms.
• Try one new food at a time: When adding new foods to your diet, introduce them to your system one by one. If your body experiences side effects after the introduction of a new food, you may want to recheck the label or do a "rechallenge" test of the same food, first, before adding another food item.
• What Is Celiac Disease?


text:
The R605 road is a regional road in County Cork, Ireland. It travels from the N71 road at Innishannon to Kinsale, via the village of Dunderrow. The road is  long.

References

Regional roads in the Republic of Ireland
Roads in County Cork

redpajama_set_name: RedPajamaWikipedia


Three days in a row??? SERIOUSLY??? I'm trying to make up for the past couple of weeks! And since it was time to play with the Monday Montage girls again, it worked out pretty well for me!
Ya know how sometimes you completely BYPASS things you see in the catalog ... don't EVEN remember LOOKING at them??? Well, yeah ... that was me with BOTH of the stamp sets I used on this card ... unTIL I saw what OTHER people were making! Then I KNEW they had to be mine!!! SO cute!
Click "Back" for Melissa Stout and "Next" for Amy O'Neill ... No matter WHICH way you go, you will be happy you did!!
It's official!!! Fall IS in the air!!! And the Control Freaks are playing right along!! (Actually, we're doing a Fall/Holiday theme this month based on some cards we recently swapped with one another!) My friend, Margaret Raburn, made some GREAT projects, didn't she??? I'm sharing one card that I used for our fall swap and one card that I didn't!!!
Speaking of BFF's, my bestie Jan Tinklenberg is up next (she will tell you the only reason we became friends is because I STALKED her once she became a Control Freak ... used our association there to call her on the phone and MAKE her be my friend)!!!! BWAHAHAHAHA!!!
Welcome to Fab Friday! Ohmygoodness! Fall is DEFINITELY in the air this week (my footsies have been FREEZING!). I seriously LOVE the fall ... although I will be missing summer ... this summer has been SO dang great ... LOTS of busy, to be sure, but I made some wonderful memories with people I love!
Soooo ... do you remember the HUGE pile of bags I posted on the LAST Fab Friday??? And that is was FULL of laundry that needed doing because of my daughter's .... a-hem ... bedbug problem??? Well, the battle continues!! We have cleaned, wiped down, steamed out, cleaned out, EVERYthing she owns. We ended up moving her into a totally different place (which, by its own right is ADORABLE ... and CLEAN ... and SPACIOUS ... and LOVELY!)! And since they we have been in our own version of World War III with the landlords ... sigh ... the saga continues ... we are hoping for a happy outcome and that my daughter and her friend can be released from their rental contract. Keeping my fingers crossed!
I have ALWAYS loved this color combo!!! Proud to say that this is NOT the first time I have ever used it ... it's pretty classic ... LOVELOVELOVE!
Headed up into the mountains this evening for a girl's night sleepover with some of my besties ... refueling the tank, so to speak!!! Such a blessing in my life!!!
Happy Labor Day!!! Monday Montage is upon us again ... and the girls have been cookin' up some GREAT stuff!! I'm so happy that I actually have Monday AND Tuesday off of work ... NICE long weekend for me!!! Except for the fact that I have done about 20,000 loads of laundry this weekend (thanks to the bedbugs in my daughter's "new" apartment!)!! Good news is that I FINALLY got it all done!!!
Click "Back" for Melissa Stout and "Next" for Amy O'Neill ... enjoy their creations and enjoy your day!!
Yaaaaawwwwnnnnnnn!!! Yep ... I'm ZAPPED!!! But welcome to Fab Friday (and sorry I am so late with my post ...more on that in a minute!)!
I had an AWESOME week last week!!! I spent three days with my sister-in-law, Diann, and my bestie, Cheryl, in Disneyland (yeah-yeah-yeah ... I went AGAIN!)! We played and ate and ran around and ate some more. All in all, it was a GREAT way to spend my big 5-0 birthday week!!
Which brings me to the reason I am SO wiped out (and probably will be for a couple of days) ... see this pile of bags??? They are FULL of clothing ... ALL of my daughter's clothing ... every last STITCH of it. We spent most of yesterday running it all through commercial-laundromat-type dryers. WHY??? Because my daughter's "new" apartment (into which she just moved last week) has too many unWANTED roommates (aka BEDBUGS!!!)!!! I now have to WASH every article of clothing in these bags (figure I am safe from infestation since they have all be zapped in the dryer!)!! And we steam-cleaned shoes and dresser drawers and such ... now if someone would just come and help ME clean up MY house (luckily, I don't have a bug infestation!!)!!
Cute layout ... and I had to work HARD to come up with something that was NOT a doily (because my out-of-the-box brain would NOT let me use one ... too easy!)!!! I made this little accordion-fold flower (kinda miss my Bigz die that did this for me ... need to dig it OUT next time!)!


text:
Figlio del pittore Ortensio, dopo la maturità al Liceo scientifico Marconi si laureò in ingegneria all'Università di Bologna. Nel 1951 venne assunto dalla Cassa di Risparmio di Parma, diventandone poi direttore dell'ufficio immobili e dirigente. Gli sono dovuti molti progetti di agenzie della banca, in città e provincia. Ha seguito i lavori di costruzione del Centro Servizi Cavagnari in via Spezia, inaugurato nel 1986. Tra i progetti eseguiti a Parma vi è la chiesa della parrocchia di Sant'Evasio in via Colli, inaugurata nel 1968.

Ricoprì importanti incarichi, tra cui segretario dell'Ordine degli Ingegneri, membro della Deputazione di Storia Patria per le Province Parmensi, dell'Accademia di belle arti di Parma, di "Italia Nostra" e della Fabbriceria della Cattedrale.

Membro del Rotary Club di Parma, venne insignito del "Paul Harris Fellow", massima onorificenza rotariana che prende il nome da Paul Harris, fondatore del Rotary International e ne fu presidente nell'annata 1983/84, succedendo all'arch. Franco Carpanelli. Nel 1985, assieme a Guido Erluison e Armando Valpondi, realizzò il volume «60 anni del Rotary Club di Parma 1925-1985».

Pubblicazioni
Alcune pubblicazioni di Vincenzo Banzola:
 Il centro storico di Parma. Sue origini e sviluppo, Parma 1967
 Le antiche Misure Parmigiane, La Nazionale, Parma 1968
 Domenico Valmagini, ingegnere ed architetto di Ranuccio II Farnese, Tip. Benedettina, 1972
 Parma la città storica (a cura di), Artegrafica Silva, Parma 1978
 Sessant'anni del Rotary Club di Parma 1925-1985, Rotary Club di Parma, 1985
 La chiesa di San Nicolò a Maiatico, Tip. Litotecnica, 1998

Note

Collegamenti esterni


when you look at other people's Web site, see the ad on the site, you will point?
2: if I knew it was an ad, would you be interested if I were interested in the subject?
13% people will answer me!
after a lapse of half a month, electricity supplier wars tend to ease, but there are many problems of its own, or alerted the government level.
has just disclosed the news of $400 million after financing, the reporter learned exclusively yesterday, Jingdong mall brewing for a long time Jingdong express is also about to debut. In the future, its platform sellers and social sellers are likely to become Jingdong express customers. Previously, this new round of financing Jingdong mall will also be used to improve the logistics construction.
shop boss, always want to consider the following things: what to sell? How to find sources? How to promote the lowest cost?
in order to draw some valuable conclusions, the home network (www.53home.com) combined with the actual experience of more than 2 years of network store made a summary, give newcomers a lesson". The three problem is too big, today on the first question some wise remark of an experienced person.
first, let's look at how others choose to sell what?
news (reporter Zhang Jian) consumers Xia excellent website in the Amazon to buy 3 promotional watches, orders were canceled. Mr. Xia will Amason to court, ask for delivery has been ordered to watch and an apology. Yesterday morning, the case in Chaoyang Court hearing.
recently, my friend started an enterprise website construction company, let me help to receive some customers. Therefore, the business owners often ask me: how much money to do a commercial website can not be cheap, to be honest, for such a problem, I really bad answer. Do a specific site to invest much money, in fact, the need for specific analysis of specific things.
December 12th we set off at six in the morning to Zhengzhou to attend the first meeting of Henan network. To Zhengzhou after a simple breakfast began to decorate the hall.
found a problem: booth repeat. Layout found that someone has occupied our booth.
in the eyes of many entrepreneurs and marketing experts, network marketing is just a lot of marketing theory, it is more and more important marketing tool. People with this idea are doomed to be unable to keep up with and embrace the Internet age, they will be eliminated in the new round of competition.
in the past, the concept of marketing consulting, tools, methods in the era of the Internet need to be updated and not just another new marketing tools.
believe that every one of the people living in the city will see this scene: people who live in the area, the corridor of small ads everywhere and domestic related. These cities, psoriasis repeated, people are very headache. Why is it so annoying things every time will be cleared as springing out of it, I think the main reason is because the residents need these advertising service.
[Abstract] a large Jingdong campus ious business scenarios are college students to buy books.
domestic market competition is fierce to enter the stage of college students, as the stage music, interest installments have announced a new round of financing on the occasion, the electricity supplier predators Jingdong officially reached the market. The financial Jingdong today announced the launch of the campus service.
The new run comprehensive on-line, you run errands housekeeper!
this exciting news, we have zero internal team full out, with the background of managers, businesses and staff, staged a  who run demonstration activities in the area near the Yingbin avenue.
Jingdong June 18th this birthday is not too peaceful. In the promotion of the anniversary, VANCL, Amazon, Gome, Yi Xun network, shop No. 1, dangdang.com and many other competitors have sent a "black gift", jointly released a variety of promotional activities to split consumers.
Oriental May 7th news: according to the labor daily reported that less than a year, the domestic buy site evaporated nearly 2000. Reporters learned yesterday, the latest data show that the current domestic buy site has 3269, and this figure is about 10 months ago, is 5058. The industry believes that the new trend at present is that integration has spread to the comprehensive ranking before the war.
nearly two years after the baptism of e-commerce, consumer online shopping category is from clothes and shoes, mobile home appliances into a car or even a house. Recently, after launched the "66 Car Buying Festival", BITAUTO in Jingdong 618 shopping big lie in the open "BITAUTO panic buying lie, let the car business in June to become the highlight, also allow more consumers to enjoy a convenient and efficient online.


Inpatient rehabilitation is a continuation of medically supervised treatment for those who need an extended amount of time to stabilize from withdrawal symptoms. Our onsite medical team is available 24/7 to help you remain safe and comfortable. Led by board certified medical/psychiatric providers, our multidisciplinary team ensures you receive the continued medical care necessary to fully participate in the therapeutic process.
At the inpatient level of care, you live in a homelike environment – men in The Star and women in The Rose – and receive at least six hours of structured therapy per day.
Additional recovery groups, exercise, wellness activities, and social support meetings round out your schedule.
Medical Detox Safe, 24/7 medically supervised detox for alcohol, opioids, and drugs.
Inpatient Rehabilitation Withdrawal stabilization with continued medical monitoring.
Residential Treatment Inpatient treatment focused on dialing into the components of your individual recovery plan.
Partial Hospitalization Individuals live at home or at a recovery residence while attending full-day treatment at the facility.
Intensive Outpatient Structured programming for support as you practice sobriety skills outside of treatment.
Aftercare We'll help facilitate your transition from treatment into a life of recovery.
Our inpatient facilities have larger communities that are divided into smaller groups. When you participate in in inpatient rehabilitation your primary group includes five to twelve peers, while your larger rehab community will include twenty to twenty-four people. These small primary groups and communities allow you to develop deep connections and form relationships with peers going through similar experiences and working through similar issues. This intimate setting helps you feel at ease communicating openly and honestly in process groups, build self-confidence, develop a strong peer support network, and focus on recovery without unnecessary distractions.
At Lakeview Health, we provide safe, comfortable environments to focus on your whole health – mind, body, and spirit. Our team of experts help you address alcohol and substance use disorders simultaneously with any co-occurring mental health or physical health issues. The evidence-based, comprehensive care helps you begin your recovery with structured support and build skills for long-term sobriety.


PIN Code Surat - Gujarat. List of Post Offices in Surat.
Surat PIN Code - Surat Gujarat The total no of Post Office in Surat is 651. Please click on any Pincode or Postoffice to know the complete pincode details.
List of Pincode in Surat.
How to get Surat pincode?
To know complete list of Surat pincode, select Gujarat and then select Surat. For any information about Surat Pin Code please submit your question.


If you're an employer, it can be tough to attract exceptional talent no matter what your company size. This can be especially true for start-up companies or those with smaller teams or limited budgets. We're here to help.
Contact us for rates and information regarding your recruiting needs.
If you are a candidate who is interested in one of our listed openings, or would like to inquire about other positions that may be of interest to you, feel free to contact us and tell us what your career goals are. We'll see if we can help.


text:
Q: C# - Nested Array/Data structures Recently, I have been getting into C# (ASP.NET) and moving on from PHP. I want to achieve something like this:
mainArray (
   array 1 (
      'name' => 'example'
   ),
   array 2 (
      'name' => 'example2'
   )
);

I know that you can use an Array in C# however, you must indicate the length of the Array before doing so which is where the problem is.
I want to loop through a Database in a Class function which returns an Array of all the columns, ie:
id, username, email.
I have tried:
public Array search_bustype(string match, string forthat)
{
    db = new rkdb_07022016Entities2();
    var tbl = (from c in db.tblbus_business select c).ToArray();
    List<string> List = new List<string>();
    int i = 0;
    foreach (var toCheck in tbl)
    {
        if (toCheck.BusType.ToString() == match)
        {
            if (forthat == "Name")
            {
                List.Add(toCheck.Name);
            }
            if (forthat == "Address")
            {

            }
        }
        i++;
    }
    return List.ToArray();
}

But as you can see, I am having to only return the single column because the List is not multidimensional (can't be nested).
What can I use to solve this issue? I have looked at some links:
C# Arrays
StackOverflow post
But these again are an issue for my structure since I don't know how many index's I need in the Array when declaring it - The Database grows everyday.
Thanks in advance.

A: You can use a list of lists
IList<IList<string>> multiList;

A: Try something like this.  First, define a class for your business model.
public class Person
{
    public string Name {get;set;}
    public string Address {get;set;}
}

Then use a generic list instead of a string list.
public Person[] search_bustype(string match, string forthat)
{
    var db = new rkdb_07022016Entities2();
    List<Person> personList = new List<Person>();
    foreach (var toCheck in db.tblbus_business.Where(b => b.BusType.ToString() == match))
    {
        var model = new Person { Name = toCheck.Name, Address = toCheck.Address };
        personList.Add(model);
   }
   return personList.ToArray();
}

I'm not sure what you are trying to do with the forthat variable.


JRiver Media Center is a multimedia application that allows the user to play and organize various types of media on a computer running Windows. Media Center is a "jukebox"-style media player, like iTunes, which usually uses most of the screen to display a potentially very large library of files. JRiver Media Center is more than a world class player. A Media Network, a whole house music, movie, TV, and photo solution. The leader in audiophile quality sound.
- Meet Arkuda' products family on Mac! 2.5+ millions users worldwide. - The only application to stream all your media from your Mac to HD TV, iPhone, iPad, Mac, PC, AllShare TV, Xbox360, Xbox One, PlayStation 3 and 4 or any other DLNA/UPnP screen.


text:
OSA Publishing > Biomedical Optics Express > Volume 2 > Issue 9 > Page 2532
Christoph Hitzenberger, Editor-in-Chief
Imaging with second-harmonic radiation probes in living tissue
Rachel Grange, Thomas Lanvin, Chia-Lung Hsieh, Ye Pu, and Demetri Psaltis
Rachel Grange,1,2,* Thomas Lanvin,1 Chia-Lung Hsieh,1,3 Ye Pu,1 and Demetri Psaltis1
1Laboratory of Optics, School of Engineering, EPFL, Station 17, 1015 Lausanne, Switzerland
2Multiphoton Laboratory, Institute of Applied Physics, Friedrich Schiller University, Albert-Einstein-Str. 15, 07745 Jena, Germany
3Department of Electrical Engineering, California Institute of Technology, 1200 East California Boulevard, MC 136-93, Pasadena, California 91125, USA
*Corresponding author: rachel.grange@uni-jena.de
R Grange
T Lanvin
C Hsieh
Y Pu
D Psaltis
Vol. 2,
•https://doi.org/10.1364/BOE.2.002532
Rachel Grange, Thomas Lanvin, Chia-Lung Hsieh, Ye Pu, and Demetri Psaltis, "Imaging with second-harmonic radiation probes in living tissue," Biomed. Opt. Express 2, 2532-2539 (2011)
Three-dimensional harmonic holographic microcopy using nanoparticles as probes for cell imaging (OE)
In vivo structural imaging of the cornea by polarization-resolved second harmonic microscopy (BOE)
Optical delineation of human malignant melanoma using second harmonic imaging of collagen (BOE)
Molecular Imaging and Probe Development
Dynamic light scattering
Phase conjugation
Three dimensional imaging
Turbid media imaging
Imaging through turbid media (110.0113)
Nanomaterials (160.4236)
Nonlinear optical materials (160.4330)
Scanning microscopy (180.5810)
Turbid media (290.7050)
Revised Manuscript: July 29, 2011
Manuscript Accepted: July 29, 2011
2. Experimental results
3. Monte Carlo simulation
We demonstrate that second-harmonic radiation imaging probes are efficient biomarkers for imaging in living tissue. We show that 100 nm and 300 nm BaTiO3 nanoparticles used as contrast markers could be detected through 50 μm and 120 μm of mouse tail tissue in vitro or in vivo. Experimental results and Monte-Carlo simulations are in good agreement.
©2011 Optical Society of America
Optical microscopy has been one of the most important tools in biology for almost a century. Images with ever higher resolution or contrast have been achieved over the years either by improving the optical techniques or using markers, such as green fluorescent proteins (GFPs) or quantum dots (QDs). Despite recent advances in the field of imaging through turbid media [1–3], it remains a challenge to optically penetrate tissues and perform in vivo imaging without surgery. Multiphoton microscopy improved the penetration depth by using pulsed near infrared laser light thereby decreasing the scattering and the excitation volume [4,5]. Multiphoton microscopy often relies on the use of fluorescent markers such as GFPs and QDs to specifically enhance the contrast of selected targets [6]. Those fluorophores are small and sensitive but are often limited by photobleaching, emission blinking, and phototoxicity [7].
Recently, a novel class of optical imaging markers have been introduced [8–12], which emit light through the second-harmonic generation (SHG) mechanism rather than the widely used fluorescence. SHG is a nonlinear quadratic process only present in a non-centrosymmetric environment. For example materials with non-centrosymmetric crystal structure generally produce SHG. We refer to this class of biomarkers as Second Harmonic Radiation IMaging Probes (SHRIMPs). SHRIMPs possess several key features, including long-term observation without photobleaching, flexibility in the choice of the excitation wavelength, coherent signals for scanningless 3D imaging [11,13], narrow signal bandwidth for greater noise rejection, ultrafast response time, and excellent biocompatibility [14,15]. These properties offer new modalities that are of interest in cell tracking experiments over long period of time, such as embryo development, or in 3D localization using interferometric detection. Moreover the recent demonstration of enhancement of the SHG signal with core-shell SHRIMPs provides high brightness for optimal contrast [16].
The SHG properties of several kinds of nanocrystals have been recently reported: KTP [8], Fe(IO3)3 [9], ZnO [10], BaTiO3 [11] and organic/inorganic hybrid nanocrystals [12]. Specific labeling of SHG nanocrystals to biological target molecules has been developed with ZnO and BaTiO3 nanoparticles [10,17]. Later on, more specific properties of the SHRIMPs were used such as the coherence of the emitted radiation by imaging through turbid media via digital phase conjugation [3]. SHRIMPs have been demonstrated as efficient biomarkers under 20 μm of in vitro liver tissue [18], and used in vivo in optically transparent zebra fish [19].
In this paper, we study for the first time the efficiency of 100 nm and 300 nm BaTiO3 SHRIMPs in nontransparent tissues. We use in vitro tissues and in vivo tails of rodents. We show that the nanoparticles are clearly detectable even in the presence of strong endogenous SHG from collagen [20], and tissue scattering. We model the experiments with a Monte Carlo simulation to interpret our results.
The in vitro measurements were taken in the simple apparatus shown in Fig. 1 (a) . The excitation light source is a linearly polarized femtosecond laser (Coherent Chameleon Ultra) at a center wavelength of 812 nm. A commercial scanning confocal microscope (Leica, SP5, DM6000) is used to image the samples. The laser was focused by a long working-distance 20x water immersion microscope objective with a large numerical aperture of 1.0. The reflected signal is sent through a band pass (350-680 nm band width) filter filtering out the near infrared light. The SHG signal and the fluorescence are collected in an epi-geometry simultaneously through two independent photomultipliers (PMT) via a dichroic filter with a cutting edge at 470 nm. The transmission through the dichroic filter is collected as the fluorescence signal. In the reflected SHG channel, a filter centered at 406 nm with a 15 nm bandwidth is used. The images are taken with a four times frame averaging for best quality. The pixel dwell time is on the order of microseconds and the incident pulse is not precompensated.
Fig. 1 In vitro sample for SHG imaging. (a) Sample diagram (b) Scanning confocal imaging of 300 nm SHRIMPs embedded 120 μm below an in vitro mouse tail tissue. (The pixel sizes are x and y = 1.52 μm, z = 168 nm).
We choose BaTiO3 nanoparticles because of the high second-order susceptibility tensor, which makes them a good marker for second-harmonic imaging. Moreover, this material is easily available, and its excellent biocompatibility was recently demonstrated [14,15]. The 100 nm particles have been characterized by dynamic light scattering [13]. The 300 nm BaTiO3 nanoparticles were measured by a scanning electron microscope giving an average diameter measurements over 1000 nanoparticles of 280 nm [21]. For the in-vitro experiments, the particles in powder form were suspended in methanol and dispersed on a microscope glass slide. Prior each use, the solution was ultrasonicated to obtain a uniform suspension. For the in vivo experiments, the particles were suspended in deionized water and ultrasonicated before taking a small amount for the injection. No surface coating was used in the present study as compared with previous works in cells [13,17].
The in vitro sample preparation consists of depositing a droplet of the BaTiO3 SHRIMPs (concentration 6 mg/4 ml) diluted in methanol on a glass slide and adding a controlled thickness of mouse tail (20 to 200 μm thick) tissue on top via conventional histology preparation (Fig. 1 (a)). The samples are conserved in phosphate buffered saline (PBS) solution with a cover glass. The laser light is focused through a water immersion lens on the nanoparticles under the mouse tail tissue and the cover glass. The peak intensity at the sample position is 13.2 GW/cm2 nearly 10 times smaller than the cell damage threshold of 100 GW/cm2 [22]. Figure 1 (b) shows the cross section image of the sample where the 300 nm SHRIMPs are readily detectable under 120 μm of mouse tail tissue in the presence of a strong endogenous SHG from the top layer of the sample. The endogenous SHG mainly comes from the dermal collagen present at the upper part of the tissue close to the air interface, which is followed by tissues without endogenous SHG and the SHRIMPs layer on the glass slide [23]. In Fig. 1 (b), the SHRIMPs are shown as elongated bright spots due to the scattering of the turbid medium, the lower axial resolution of the microscope and the aberration caused by the interface between the tissue and the immersion water. Moreover, some SHRIMPs were displaced from the glass slide and did not lie on a single plane as they were before the histology procedure. This is because during the sample preparation some of the SHRIMPs did not stick to the glass due to the pressure applied while positioning the layer of the tissue.
Figure 2 (a-c) show section (x-y plane) images of 300 nm SHRIMPs with no tissue, 20 μm and 120 μm of mouse tail tissue on top of the SHRIMPs. By showing the SHG signal of isolated SHRIMPs, we can better see the effect of the different tissue thicknesses. On these images (Fig. 2 (a-c)), we observe the increase of the background noise with increasing tissue thicknesses. It is worth mentioning that the incident 812 nm light and the measured 406 nm light are scattered differently. This wavelength dependent effect can explain the not so strong alteration of the point spread function at 406 nm on Fig. 2 (a-c).
Fig. 2 SHG confocal section images (x-y plane) of 300 nm SHRIMPs with (a) no tissue, (b) 20 μm (c) 120 μm of in vitro tissue. Scale bar of 2 μm.
To quantify the results of the contrast of the SHRIMPs for different thicknesses of the in vitro tissue, we calculated an averaged signal-to-noise ratio (SNR) of several SHRIMPs in the corresponding section (x-y plane) images. The signal of a SHRIMP is calculated as the average intensity within the bright spot. This averaging of the intensity is needed because the signal of each nanoparticle will vary with the incident laser polarization according to its orientation. Indeed, the SHG signal is polarization and orientation sensitive since SHG is a coherent process [24].The noise is defined as the standard deviation of the fluctuating background. We expect two main sources of noise: the endogenous SHG and the detector noise. For SHG scanning microscopes, the signal mostly takes place at the focal point of the objective due to the optical nonlinearity and therefore, optical sectioning can be achieved [20]. However, when imaging with a sample with significant endogenous SHG at the surface, we noticed that the out-of-focus endogenous SHG sources contribute as additional noise in the image which is considerable compared to the detector noise.
The average SNR for different thicknesses of the tissue are plotted in Fig. 3 . We observe the decay of the averaged SNR that is spanning from 366 for SHRIMPs with no tissue to 9 for SHRIMPs below 120 μm of mouse tail tissue (Fig. 3). The error bars are the standard deviation from up to 60 isolated SHRIMPs SNR measurements. The decrease in SNR is mostly due to the decrease of SHG signal; when the SHRIMP is deep in the scattering tissue, the excitation is scattered before reaching the SHRIMP, and the SHG signal generated from the SHRIMP is also being scattered before being collected by the microscope objective. We will discuss the single exponential decay in SHG signal as a function of tissue thickness later in the text where we use a Monte Carlo simulation to estimate the effect.
Fig. 3 Lin-log plot of the averaged signal-to-noise ratio from several 300 nm SHRIMPs located under in vitro tissue of different thicknesses.
Similarly, we prepared in vitro sample with BaTiO3 SHRIMPs of 100 nm in diameter under 50, 80, 100 μm of mouse tail tissue. We detected few SHRIMPs under 50 μm of tissue as shown on Fig. 4 (a) , and not under thicker tissue. We calculated a SNR of 8 for this limited numbers of SHRIMP. For comparison in Fig. 4 (b), we display the 300 nm SHRIMPs under 120 um of tissue, which has a SNR of 9.
Fig. 4 SHG confocal section images (x-y plane) of (a) 100 nm SHRIMPs under 50 μm of in vitro tissue (the pixel sizes are x and y = 138 nm) and (b) 300 nm SHRIMPs under 120 um of tissue (the pixel sizes are x and y = 168 nm).
For the in vivo experiments, we first anesthetize the mouse by an intraperitoneal injection of xylasine/ketamine. We then used a syringe with a 350 μm needle to inject the 300 nm nanoparticles (2·1010 particles/ml) in distilled water (5 to 10 μl) around the middle of the tail of the living mouse. We bent the needle to inject the particles just under the skin and not in the blood flow. The injection site was marked with a pen for the convenience of relocation under the microscope. The mouse is then placed under the microscope objective with the tail immersed in water for matching the objective requirement (Fig. 5 (a) ). After two hours of imaging experiments and before the animal woke up, the animal was sacrificed by cervical dislocation.
Fig. 5 In vivo sample for SHG imaging. (a) Sample diagram (b) Scanning confocal imaging of SHRIMPs embedded 100 μm below a mouse tail tissue. (The pixel sizes are x and y = 379 nm, z = 881 nm). The arrows show the same SHRIMPs on both views.
We can observe second harmonic signals from nanoparticles as deep as 100 μm below the surface of the tail with a SNR of 9 (Fig. 5 (b)). As with the in vitro experiment, a z-scan allows for imaging a superposition of section x-y planes of the mouse tail. The (x-z) section view of Fig. 5 (b) shows the elongated point spread function (PSF) of the SHRIMP due, again, to the scattering of the turbid medium the axial resolution of the microscope, and some aberration. Note that we look at the particles from the injections sites and track their positions under the skin tail. Few millimeters away from the injection site, no particles-like SHG signal was observed. This reasonably confirms that the signal we obtained was from SHRIMP rather than collagen aggregates.
Both in vitro and in vivo experiments allow imaging the SHRIMPs as deep as 100 μm with sufficient contrast to distinguish them from endogenous second-harmonic from the tissue itself. The experimental results show that the endogenous SHG situated above the nanoparticles but contributing to the background noise still allow distinguishing the 300 nm nanoparticles located deeper in the tissue. It is worth mentioning that the power used in this experiment is close to 10 times smaller than the cell damage threshold and might be increased to see deeper in the tissue without risk of damage. This first in vivo trial was performed with 300 nm nanoparticles, a relative large size. However, we will be able to reduce the size of the nanoparticles either by increasing the intensity or by using core-shell nanocavities that can strongly enhance the SHG signal [16]. Moreover, we used an excitation wavelength very near in the infrared (812 nm); by increasing it further towards the infrared, the scattering will decrease and deeper imaging can then be possible [18].
We carried out a Monte Carlo simulation to estimate the detected SHG signal of the SHRIMP at different depths of the scattering tissue [25]. This stochastic method provides a good estimate of the light behavior in highly absorbing and scattering media and it has been successfully applied to SHG from nanoparticles [18]. The model consists of two successive Monte Carlo simulations connected with a wavelength conversion by a single SHRIMP. The first simulation estimates the excitation light that reaches the SHRIMP through a certain tissue thickness and the second one estimates the SHG signal being detected after passing again through the tissue. The first run of the simulation used input parameters related to the 812 nm incident laser light, while the second run used the SHG light at 406 nm. The efficiency of the wavelength conversion of a single SHRIMP is modeled by the SHG cross-section using a previous model [16].
The method simulates the behavior of a very large number of photon (3·106 photons), having a certain probability to be absorbed or scattered by the media cut in many successive layers from the input to the output surface. In our case, we divide the layer in 500 x 500 array of elements with a depth dz = 2·10−6 cm and width dr = 2·10−6 cm. The tissue parameters for the excitation and SHG wavelengths are listed in Table 1 . The macroscopic values of scattering efficiency (μscat), the absorption efficiency (μabs) and the anisotropy (g) for mouse skin tissue are taken from [26], and adapted for the two different wavelengths of the incident light and the SH emission.
Table 1. Tissue parameters used in the Monte-Carlo simulation.
In the model, we assume a narrow and highly directional beam reaching the tissue and we consider only the photons arriving within the area limited by the SHRIMP SHG cross-section. Moreover, we limit the angle of the photons reaching the SHRIMP (θin < 10°) in order to take into account only photons that have undergone few scattering events, sometimes called snake photons [27]. After the first run of the Monte Carlo simulation, we obtain the local excitation intensity of a SHRIMP. We then calculate the SHG emission power from the SHRIMP according to the cross-section calculation (σ) of a 300 nm BaTiO3 adapted from [16] for a 4π solid angle. A second Monte-Carlo simulation is then used for the SHG emission taking into account the numerical aperture of the objective. Thus we obtain the number of photons reaching the detector. We ran the simulation for different thicknesses of tissue as well as two different particle sizes (100 and 300 nm BaTiO3).
Figure 6 displays the results of the simulations. The SHG signal decreases exponentially as a function of the tissue thickness, which is consistent with the previous reported studies [18]. The physical origin of this exponential decay is explained by the fact that the transmission coefficient in a medium with extinction (absorption or scattering) is an exponential function of the length of the medium. We calculate an extinction coefficient of 0.113 and 0.112 cm−1 for 100 and 300 nm SHRIMPs, respectively. In Fig. 6, we also show the approximate tissue thicknesses at which the 100 and 300 nm were still detectable at 50 and 120 μm, respectively. It is tempting to conclude from Fig. 6 that the minimum detectable signal level is several picowatts. Since the specification of the PMT sensitivity is only a few femtowatts, the noise floor is primarily determined by the background of endogenous SHG signal. It should be noticed that the simulation only considers the decrease in the signal strength due to the scattering by the tissue. It does not consider the endogenous SHG nor the detector noise which also contribute to the reduction in SNR with tissue thickness.
Fig. 6 Lin-log plot of the simulation results (data points) of the power detected from SHRIMP versus the thickness of the mouse tail tissue. Both simulated curves are fitted with a single exponential (solid lines). The red and blue vertical lines show the depth for which it is possible to experimentally detect 100 nm and 300 nm SHRIMP respectively.
In order to obtain a complete theoretical estimate of the thickness at which we can detect SHRIMPs inside tissue we need to simulate the generation and subsequent scattering of the endogenous SHG signal as a function of tissue thickness. This is something we plan to do in the future; however, we believe that it may be possible to detect SHRIMPs at depths significantly larger than the 120 μm demonstrated here. There are several reasons for this. The detected power given in Fig. 6 is calculated from the experimental incident power, which is about 10 times below the cell damage threshold as mentioned earlier. Therefore, any increase of the incident power will improve the possible detectable depth of the SHRIMPs. Secondly, if the origin of the endogenous SHG signal is spatially separated from the location of the SHRIMP, then locally the SNR is very high. Finally, recently several techniques have been demonstrated that permit focusing through scattering media [1–3]. Eliminating or reducing the exponential loss of the signal decay through the scattering media (Fig. 6) would dramatically improve our ability to monitor SHRIMPs deep inside tissue.
We demonstrated that 100 and 300 nm BaTiO3 nanoparticles can be efficiently used as second-harmonic radiation imaging probes in in vitro and in vivo tissues of mouse up to depth of 50 μm and 120 μm respectively. The contrast of the SHRIMPs is high enough to obtain a significant signal-to-noise ratio even with endogenous second-harmonic generation signals contributing to the background noise. Thus, the SHRIMPs can be used as flexible biomarkers in the same multiphoton microscope configuration as for two-photon fluorescence imaging, but they offer other functionalities such as no photobleaching or coherent signals that can be exploited in the future bioimaging applications.
The authors thank U. Haessler, M. Pasquier and W. Kilarski from M. Swartz's laboratory at EPFL for helping with the tissue and mice preparation performed by an accredited researcher under the authorization number 1954.3 delivered by the state of Vaud according to the Swiss legislation. We thank also M. Gyger for allowing the in vivo experiments, and T. Laroche from the BioImaging and Optics platform at EPFL for the imaging advices. The BaTiO3 nanoparticles were kindly provided by Paul Bowen from EPFL and Vincenzo Buscaglia from the IENI in Genoa. This project is partly supported by the National Center of Competence in Research (NCCR), Quantum Photonics.
1. I. M. Vellekoop and A. P. Mosk, "Focusing coherent light through opaque strongly scattering media," Opt. Lett. 32(16), 2309–2311 (2007). [CrossRef] [PubMed]
2. E. Gratton, "Applied physics. Deeper tissue imaging with total detection," Science 331(6020), 1016–1017 (2011). [CrossRef] [PubMed]
3. C.-L. Hsieh, Y. Pu, R. Grange, G. Laporte, and D. Psaltis, "Imaging through turbid layers by scanning the phase conjugated second harmonic radiation from a nanoparticle," Opt. Express 18(20), 20723–20731 (2010). [CrossRef] [PubMed]
4. W. Denk, J. H. Strickler, and W. W. Webb, "Two-photon laser scanning fluorescence microscopy," Science 248(4951), 73–76 (1990). [CrossRef] [PubMed]
5. F. Helmchen and W. Denk, "Deep tissue two-photon microscopy," Nat. Methods 2(12), 932–940 (2005). [CrossRef] [PubMed]
6. B. N. G. Giepmans, S. R. Adams, M. H. Ellisman, and R. Y. Tsien, "The fluorescent toolbox for assessing protein location and function," Science 312(5771), 217–224 (2006). [CrossRef] [PubMed]
7. R. M. Dickson, A. B. Cubitt, R. Y. Tsien, and W. E. Moerner, "On/off blinking and switching behaviour of single molecules of green fluorescent protein," Nature 388(6640), 355–358 (1997). [CrossRef] [PubMed]
8. L. L. Xuan, S. Brasselet, F. Treussart, J. F. Roch, F. Marquier, D. Chauvat, S. Perruchas, C. Tard, and T. Gacoin, "Balanced homodyne detection of second-harmonic generation from isolated subwavelength emitters," Appl. Phys. Lett. 89(12), 121118 (2006). [CrossRef]
9. L. Bonacina, Y. Mugnier, F. Courvoisier, R. Le Dantec, J. Extermann, Y. Lambert, V. Boutou, C. Galez, and J. P. Wolf, "Polar Fe(IO3)(3) nanocrystals as local probes for nonlinear microscopy," Appl. Phys. B 87(3), 399–403 (2007). [CrossRef]
10. A. V. Kachynski, A. N. Kuzmin, M. Nyk, I. Roy, and P. N. Prasad, "Zinc oxide nanocrystals for nonresonant nonlinear optical microscopy in biology and medicine," J. Phys. Chem. C 112(29), 10721–10724 (2008). [CrossRef]
11. Y. Pu, M. Centurion, and D. Psaltis, "Harmonic holography: a new holographic principle," Appl. Opt. 47(4), A103–A110 (2008). [CrossRef] [PubMed]
12. E. Delahaye, N. Tancrez, T. Yi, I. Ledoux, J. Zyss, S. Brasselet, and R. Clement, "Second harmonic generation from individual hybrid MnPS3-based nanoparticles investigated by nonlinear microscopy," Chem. Phys. Lett. 429(4-6), 533–537 (2006). [CrossRef]
13. C.-L. Hsieh, R. Grange, Y. Pu, and D. Psaltis, "Three-dimensional harmonic holographic microcopy using nanoparticles as probes for cell imaging," Opt. Express 17(4), 2880–2891 (2009). [CrossRef] [PubMed]
14. C.-L. Hsieh, R. Grange, Y. Pu, and D. Psaltis, "Characterization of the cytotoxicity and imaging properties of second-harmonic nanoparticles," Proc. SPIE 7759, 77590T, 77590T-6 (2010). [CrossRef]
15. G. Ciofani, S. Danti, S. Moscato, L. Albertazzi, D. D'Alessandro, D. Dinucci, F. Chiellini, M. Petrini, and A. Menciassi, "Preparation of stable dispersion of barium titanate nanoparticles: Potential applications in biomedicine," Colloids Surf. B Biointerfaces 76(2), 535–543 (2010). [CrossRef] [PubMed]
16. Y. Pu, R. Grange, C.-L. Hsieh, and D. Psaltis, "Nonlinear optical properties of core-shell nanocavities for enhanced second-harmonic generation," Phys. Rev. Lett. 104(20), 207402 (2010). [CrossRef] [PubMed]
17. C.-L. Hsieh, R. Grange, Y. Pu, and D. Psaltis, "Bioconjugation of barium titanate nanocrystals with immunoglobulin G antibody for second harmonic radiation imaging probes," Biomaterials 31(8), 2272–2277 (2010). [CrossRef] [PubMed]
18. J. Extermann, L. Bonacina, E. Cuña, C. Kasparian, Y. Mugnier, T. Feurer, and J.-P. Wolf, "Nanodoublers as deep imaging markers for multi-photon microscopy," Opt. Express 17(17), 15342–15349 (2009). [CrossRef] [PubMed]
19. P. Pantazis, J. Maloney, D. Wu, and S. E. Fraser, "Second harmonic generating (SHG) nanoprobes for in vivo imaging," Proc. Natl. Acad. Sci. U.S.A. 107(33), 14535–14540 (2010). [CrossRef] [PubMed]
20. P. J. Campagnola and L. M. Loew, "Second-harmonic imaging microscopy for visualizing biomolecular arrays in cells, tissues and organisms," Nat. Biotechnol. 21(11), 1356–1360 (2003). [CrossRef] [PubMed]
21. M. T. Buscaglia, V. Buscaglia, and R. Alessio, "Coating of BaCO3 Crystals with TiO2:Versatile Approach to the Synthesis of BaTiO3 Tetragonal Nanoparticles," Chem. Mater. 19(4), 711–718 (2007). [CrossRef]
22. K. König, P. T. C. So, W. W. Mantulin, and E. Gratton, "Cellular response to near-infrared femtosecond laser pulses in two-photon microscopes," Opt. Lett. 22(2), 135–136 (1997). [CrossRef] [PubMed]
23. P. Stoller, B.-M. Kim, A. M. Rubenchik, K. M. Reiser, and L. B. Da Silva, "Polarization-dependent optical second-harmonic imaging of a rat-tail tendon," J. Biomed. Opt. 7(2), 205–214 (2002). [CrossRef] [PubMed]
24. C.-L. Hsieh, Y. Pu, R. Grange, and D. Psaltis, "Second harmonic generation from nanocrystals under linearly and circularly polarized excitations," Opt. Express 18(11), 11917–11932 (2010). [CrossRef] [PubMed]
25. L. Wang, S. L. Jacques, and L. Zheng, "MCML—Monte Carlo modeling of light transport in multi-layered tissues," Comput. Methods Programs Biomed. 47(2), 131–146 (1995). [CrossRef] [PubMed]
26. W. F. Cheong, S. A. Prahl, and A. J. Welch, "A review of the optical-properties of biological tissues," IEEE J. Quantum Electron. 26(12), 2166–2185 (1990). [CrossRef]
27. B. B. Das, F. Liu, and R. R. Alfano, "Time-resolved fluorescence and photon migration studies in biomedical and model random media," Rep. Prog. Phys. 60(2), 227–292 (1997). [CrossRef]
I. M. Vellekoop and A. P. Mosk, "Focusing coherent light through opaque strongly scattering media," Opt. Lett. 32(16), 2309–2311 (2007).
E. Gratton, "Applied physics. Deeper tissue imaging with total detection," Science 331(6020), 1016–1017 (2011).
C.-L. Hsieh, Y. Pu, R. Grange, G. Laporte, and D. Psaltis, "Imaging through turbid layers by scanning the phase conjugated second harmonic radiation from a nanoparticle," Opt. Express 18(20), 20723–20731 (2010).
W. Denk, J. H. Strickler, and W. W. Webb, "Two-photon laser scanning fluorescence microscopy," Science 248(4951), 73–76 (1990).
F. Helmchen and W. Denk, "Deep tissue two-photon microscopy," Nat. Methods 2(12), 932–940 (2005).
B. N. G. Giepmans, S. R. Adams, M. H. Ellisman, and R. Y. Tsien, "The fluorescent toolbox for assessing protein location and function," Science 312(5771), 217–224 (2006).
R. M. Dickson, A. B. Cubitt, R. Y. Tsien, and W. E. Moerner, "On/off blinking and switching behaviour of single molecules of green fluorescent protein," Nature 388(6640), 355–358 (1997).
L. L. Xuan, S. Brasselet, F. Treussart, J. F. Roch, F. Marquier, D. Chauvat, S. Perruchas, C. Tard, and T. Gacoin, "Balanced homodyne detection of second-harmonic generation from isolated subwavelength emitters," Appl. Phys. Lett. 89(12), 121118 (2006).
L. Bonacina, Y. Mugnier, F. Courvoisier, R. Le Dantec, J. Extermann, Y. Lambert, V. Boutou, C. Galez, and J. P. Wolf, "Polar Fe(IO3)(3) nanocrystals as local probes for nonlinear microscopy," Appl. Phys. B 87(3), 399–403 (2007).
A. V. Kachynski, A. N. Kuzmin, M. Nyk, I. Roy, and P. N. Prasad, "Zinc oxide nanocrystals for nonresonant nonlinear optical microscopy in biology and medicine," J. Phys. Chem. C 112(29), 10721–10724 (2008).
Y. Pu, M. Centurion, and D. Psaltis, "Harmonic holography: a new holographic principle," Appl. Opt. 47(4), A103–A110 (2008).
E. Delahaye, N. Tancrez, T. Yi, I. Ledoux, J. Zyss, S. Brasselet, and R. Clement, "Second harmonic generation from individual hybrid MnPS3-based nanoparticles investigated by nonlinear microscopy," Chem. Phys. Lett. 429(4-6), 533–537 (2006).
C.-L. Hsieh, R. Grange, Y. Pu, and D. Psaltis, "Three-dimensional harmonic holographic microcopy using nanoparticles as probes for cell imaging," Opt. Express 17(4), 2880–2891 (2009).
C.-L. Hsieh, R. Grange, Y. Pu, and D. Psaltis, "Characterization of the cytotoxicity and imaging properties of second-harmonic nanoparticles," Proc. SPIE 7759, 77590T, 77590T-6 (2010).
G. Ciofani, S. Danti, S. Moscato, L. Albertazzi, D. D'Alessandro, D. Dinucci, F. Chiellini, M. Petrini, and A. Menciassi, "Preparation of stable dispersion of barium titanate nanoparticles: Potential applications in biomedicine," Colloids Surf. B Biointerfaces 76(2), 535–543 (2010).
Y. Pu, R. Grange, C.-L. Hsieh, and D. Psaltis, "Nonlinear optical properties of core-shell nanocavities for enhanced second-harmonic generation," Phys. Rev. Lett. 104(20), 207402 (2010).
C.-L. Hsieh, R. Grange, Y. Pu, and D. Psaltis, "Bioconjugation of barium titanate nanocrystals with immunoglobulin G antibody for second harmonic radiation imaging probes," Biomaterials 31(8), 2272–2277 (2010).
J. Extermann, L. Bonacina, E. Cuña, C. Kasparian, Y. Mugnier, T. Feurer, and J.-P. Wolf, "Nanodoublers as deep imaging markers for multi-photon microscopy," Opt. Express 17(17), 15342–15349 (2009).
P. Pantazis, J. Maloney, D. Wu, and S. E. Fraser, "Second harmonic generating (SHG) nanoprobes for in vivo imaging," Proc. Natl. Acad. Sci. U.S.A. 107(33), 14535–14540 (2010).
P. J. Campagnola and L. M. Loew, "Second-harmonic imaging microscopy for visualizing biomolecular arrays in cells, tissues and organisms," Nat. Biotechnol. 21(11), 1356–1360 (2003).
M. T. Buscaglia, V. Buscaglia, and R. Alessio, "Coating of BaCO3 Crystals with TiO2:Versatile Approach to the Synthesis of BaTiO3 Tetragonal Nanoparticles," Chem. Mater. 19(4), 711–718 (2007).
K. König, P. T. C. So, W. W. Mantulin, and E. Gratton, "Cellular response to near-infrared femtosecond laser pulses in two-photon microscopes," Opt. Lett. 22(2), 135–136 (1997).
P. Stoller, B.-M. Kim, A. M. Rubenchik, K. M. Reiser, and L. B. Da Silva, "Polarization-dependent optical second-harmonic imaging of a rat-tail tendon," J. Biomed. Opt. 7(2), 205–214 (2002).
C.-L. Hsieh, Y. Pu, R. Grange, and D. Psaltis, "Second harmonic generation from nanocrystals under linearly and circularly polarized excitations," Opt. Express 18(11), 11917–11932 (2010).
L. Wang, S. L. Jacques, and L. Zheng, "MCML—Monte Carlo modeling of light transport in multi-layered tissues," Comput. Methods Programs Biomed. 47(2), 131–146 (1995).
W. F. Cheong, S. A. Prahl, and A. J. Welch, "A review of the optical-properties of biological tissues," IEEE J. Quantum Electron. 26(12), 2166–2185 (1990).
B. B. Das, F. Liu, and R. R. Alfano, "Time-resolved fluorescence and photon migration studies in biomedical and model random media," Rep. Prog. Phys. 60(2), 227–292 (1997).
Adams, S. R.
Albertazzi, L.
Alessio, R.
Alfano, R. R.
Bonacina, L.
Boutou, V.
Brasselet, S.
Buscaglia, M. T.
Buscaglia, V.
Campagnola, P. J.
Centurion, M.
Chauvat, D.
Cheong, W. F.
Chiellini, F.
Ciofani, G.
Clement, R.
Courvoisier, F.
Cubitt, A. B.
Cuña, E.
D'Alessandro, D.
Da Silva, L. B.
Danti, S.
Das, B. B.
Delahaye, E.
Denk, W.
Dickson, R. M.
Dinucci, D.
Ellisman, M. H.
Extermann, J.
Feurer, T.
Fraser, S. E.
Gacoin, T.
Galez, C.
Giepmans, B. N. G.
Grange, R.
Gratton, E.
Helmchen, F.
Hsieh, C.-L.
Jacques, S. L.
Kachynski, A. V.
Kasparian, C.
Kim, B.-M.
König, K.
Kuzmin, A. N.
Lambert, Y.
Laporte, G.
Le Dantec, R.
Ledoux, I.
Liu, F.
Loew, L. M.
Maloney, J.
Mantulin, W. W.
Marquier, F.
Menciassi, A.
Moerner, W. E.
Moscato, S.
Mosk, A. P.
Mugnier, Y.
Nyk, M.
Pantazis, P.
Perruchas, S.
Petrini, M.
Prahl, S. A.
Prasad, P. N.
Psaltis, D.
Pu, Y.
Reiser, K. M.
Roch, J. F.
Roy, I.
Rubenchik, A. M.
So, P. T. C.
Stoller, P.
Strickler, J. H.
Tancrez, N.
Tard, C.
Treussart, F.
Tsien, R. Y.
Vellekoop, I. M.
Wang, L.
Webb, W. W.
Welch, A. J.
Wolf, J. P.
Wolf, J.-P.
Wu, D.
Xuan, L. L.
Yi, T.
Zheng, L.
Zyss, J.
Appl. Phys. B (1)
Chem. Mater. (1)
Chem. Phys. Lett. (1)
Colloids Surf. B Biointerfaces (1)
Comput. Methods Programs Biomed. (1)
IEEE J. Quantum Electron. (1)
J. Biomed. Opt. (1)
J. Phys. Chem. C (1)
Nat. Biotechnol. (1)
Nat. Methods (1)
Proc. Natl. Acad. Sci. U.S.A. (1)
Proc. SPIE (1)
Rep. Prog. Phys. (1)
Table 1 Tissue parameters used in the Monte-Carlo simulation.
Tissue parameters used in the Monte-Carlo simulation.
Absorption cross-section μabs (cm−1)
Scattering cross-section μscat (cm−1)
Anisotropy g
812 0.15 260 0.95
406 3.2 580 0.8


There is something incredibly special about Warrandyte's The Teskey Brothers. It's not just the music they make, or their preternatural ability to conjure the spirit of soul and blues masters, or even lead singer Josh Teskey's era-defying voice that seems to belong more in the Mississippi Delta than rural Victoria. It's the fact that they've been hiding in plain sight, honing their craft for a decade, playing countless shows at the local pub, weddings and even a swimming pool, before making serious waves with their debut album Half Mile Harvest.
I know you've read this kind of thing about a band before, but what's different this time is that The Teskey Brothers are the real deal.
Forming over a decade ago when brothers Sam (guitar) and Josh Teskey teamed up with childhood friends, and long-time jamming buddies, Brendon Love (Bass) and Liam Gough (Drums), Half Mile Harvest is the perfect summation of everything the band has learnt about playing, songwriting and production over the last decade. Completely self-produced at their own studio in Warrandyte, recorded live to tape and mixed down on an analogue board, The Teskey Brothers were trying to capture the humanity of their recordings, warts and all, making the listener feel as though they are sitting in the room while the band plays around them. And for The Teskey Brothers it is all about feeling.
"If you don't play it with soul, it's not soul music, it's just two chords and a beat," says Sam.
The results of their effort and attention to detail are stunning. Across its 10 tracks, The Teskey Brothers take influence from Otis Redding, JJ Cale and Marvin Gaye, mixing in elements of old Blues and British Invasion rock n roll, even some psychedelia, to create a record that feels completely timeless, transcending eras to deliver something that could have been made now or 50 years ago. It's no mere pastiche though either. It's a sound that knows its influences, but The Teskey Brothers have spent enough time playing together to find their own sound and put their distinctive mark on something classic.
"When you're young and starting out, you don't necessarily have much restraint as far as subtlety and sensibility towards arrangement and song-writing. You just wanna play your instrument and be loud and fast," offers Brendon.
It might seem like a wild coincidence that the four managed to find other like-minded, music-mad souls in a small town like Warrandyte, but not to the band.
The people of Warrandyte agreed and in some ways are responsible for The Teskey Brothers not throwing in the towel.
Having played "every weird place just cos we never said no to a show", the Teskey Brothers made a conscious choice when they decided to record Half Mile Harvest.
Saying the punt paid off, is an understatement and the release of Half Mile Harvest turned out to be just the catalyst the band had been waiting for.
They quickly sold out of the 500 records they had pressed, thinking it would take years to offload them all, and soon found themselves on stage at Meredith Festival, playing strings of sold out shows around Australia, touring the US and UK and fulfilling a dream playing at Fuji Rock Festival in Japan.
"When we released Half Mile Harvest, I would have laughed in anyone's face if they'd said you'd be playing Fuji Rock in a year and a half," says Liam.
Having just inked deals with Ivy League Records in Australia, Glassnote Records in the US and Decca/Vertigo in the UK/EU, The Teskey Brothers are prepping for the next phase of their career, starting with the re-issue of Half Mile Harvest, which features two new tracks, 'I Get Up' and 'Say You'll Do'.
'I Get Up' has been called a new direction for the Teskey Brothers, perhaps touching on something more contemporary for the 60s/70s era loving band, but that's something the guys are unconvinced of.
So, while they might not be appearing at the Warrandyte Festival this year, and you won't catch them playing down at St Andrews Pub in town, The Teskey Brothers aren't about to go changing anytime soon. And you've got to be thankful for that.


text:
Bushwick teen shot 14 times after robbing bodega with fake gun
February 21, 2017 By Robert Lanham
Eighteen-year-old Sergio Reyes died Sunday morning after holding up Garden Deli — which is just a block from the Jefferson L stop — with a fake gun. Police caught up with him soon after on Star Street, where he was shot and killed. He was in possession of the fake gun when he was confronted:
The high school senior who was killed by police officers after allegedly holding up a Bushwick bodega with a fake gun was shot 14 times, according to the city Medical Examiner's office.
Sergio Reyes, 18, who police said robbed Garden Deli, at 185 Starr St. — a few blocks from his Wilson Avenue home — had gunshot wounds to his torso, limbs, heart, lungs, aorta, spinal cord, liver, stomach and bones, said spokeswoman Julie Bolcer Monday night. The shooting was ruled a homicide.
The teen's mother Patricia Reyes, 48, said she and her husband had rushed to the hospital after the 12:40 a.m. shooting Sunday but her son was already dead.
"He couldn't withstand [the] gunshots," she said through tears Monday.
The NYPD said he pointed what looked like a real gun at the store clerk and took a six-pack of Corona and a six-pack of Heineken.
Police responding to the robbery saw Reyes walking west on Starr Street and confronted him, but he still had the fake pistol in his hand and raised it towards officers, NYPD officials said.
Filed Under: Bushwick, News Tagged With: crime, Garden Deli, horrible, Sergio Reyes
nospam says
Chips or banana?


text:
Ockratodityrann (Hemitriccus kaempferi) är en fågel i familjen tyranner inom ordningen tättingar.

Utseende och läte
Ockratodityrann är en liten (10 cm) och grönaktig flugsnapparliknande fågel. Huvudet är brungrönt med en gråbeige fläck på tygeln och en ljus ögonring runt det bruna ögat. Ovansidan är matt olivgrön och undersidan mer gröngul, med ljusgul strupe och olivgrön anstrykning på bröstet. Stjärten är mörk, liksom vingarna, med gulgrönkantade armpennor, breda gräddgula kanter på tertialerna och två diffusa gulbeige vingband. Lätet består av en snabb och genomträngande serie med upp till fyra nasala "kuít".

Utbredning och systematik
Fågeln förekommer i sydöstra Brasilien, i östra Santa Catarina. Den behandlas som monotypisk, det vill säga att den inte delas in i några underarter.

Familjetillhörighet
Arten placeras traditionellt i familjen tyranner. DNA-studier visar dock att Tyrannidae består av fem klader som skildes åt redan under oligocen, pekar på att de skildes åt redan under oligocen, varför vissa auktoriteter behandlar dem som egna familjer. Kämpfertodityrannen med släktingar placeras då i Pipromorphidae.

Status och hot
Ockratodityrann har en liten världspopulation bestående av uppskattningsvis endast 6 000–12 000 vuxna individer. Den tros också minska i antal till följd av habitatförlust. Den är därför upptagen på internationella naturvårdsunionen IUCN:s röda lista över hotade arter, kategoriserad som sårbar (VU).

Namn
Fågelns svenska och vetenskapliga artnamn hedrar Emil Kämpfer, tysk samlare av specimen verksam 1926-1931.

Noter

Externa länkar

 Läten på xeno-canto.org

Tyranner
Fåglar i neotropiska regionen