text:
Q: How to save IP address in a registration system? I have created a code that can register users into the database. But I want save the IP too.
Can someone help me with my problem? Because I've never created code with IP, I already try search but nothing.
$podeCriarConta = True;

    if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
    {
     $_SESSION['error'] = " E-mail inválido! Por favor introduza um válido.
";
     $podeCriarConta = False;
   }

    if(empty($_POST['password']))
    {
     $_SESSION['error'] = " Password inválida! Por favor introduza uma válida.
";
     $podeCriarConta = False;
    }

    if(empty($_POST['username']))
    {
     $_SESSION['error'] = " Utilizador inválido! Por favor introduza um Utilizador válido.
";
     $podeCriarConta = False;
   }

    if(empty($_POST['nome']))
    {
        $_SESSION['error'] = " Nome inválido! Por favor introduza um Nome válido.
";
        $podeCriarConta = False;
    }

    $query = "
        SELECT
            1
        FROM users
        WHERE
            username = :username
    ";

    $query_params = array(
        ':username' => $_POST['username']
    );

    try
    {
        $stmt = $db->prepare($query);
        $result = $stmt->execute($query_params);
    }
    catch(PDOException $ex)
    {
        die("Failed to run query line 68: " . $ex->getMessage());
    }
    $row = $stmt->fetch();

    if($row)
    {
     $_SESSION['error'] = " Nome de Utilizador já se encontra em uso!
";
    }
    $query = "
        SELECT
            1
        FROM users
        WHERE
            email = :email
    ";

    $query_params = array(
        ':email' => $_POST['email']
    );

    try
    {
        $stmt = $db->prepare($query);
        $result = $stmt->execute($query_params);
    }
    catch(PDOException $ex)
    {
       $_SESSION['error'] .= "Failed to run query line 103: " . $ex->getMessage();
    }

    $row = $stmt->fetch();

    if($row)
    {
        $_SESSION['error'] .= "  E-mail inválido! Já se encontra em uso.
";
    }
    $query = "
        INSERT INTO users (
            nome,
            username,
            password,

    ";

A: Your question not shows your proper requirment but may be you are searching for this:
$Ip = $_SERVER['REMOTE_ADDR'];  //this will gives you IP address from which the user is viewing the current page.

then just save this "$Ip" to your db.


text:
// +build !ignore_autogenerated

// Code generated by conversion-gen. DO NOT EDIT.

package v1beta1

import (
	unsafe "unsafe"

	v1 "k8s.io/api/core/v1"
	v1beta1 "k8s.io/api/storage/v1beta1"
	conversion "k8s.io/apimachinery/pkg/conversion"
	runtime "k8s.io/apimachinery/pkg/runtime"
	core "k8s.io/kubernetes/pkg/apis/core"
	corev1 "k8s.io/kubernetes/pkg/apis/core/v1"
	storage "k8s.io/kubernetes/pkg/apis/storage"
)

func init() {
	localSchemeBuilder.Register(RegisterConversions)
}

// RegisterConversions adds conversion functions to the given scheme.
// Public to allow building arbitrary schemes.
func RegisterConversions(s *runtime.Scheme) error {
	if err := s.AddGeneratedConversionFunc((*v1beta1.CSIDriver)(nil), (*storage.CSIDriver)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_v1beta1_CSIDriver_To_storage_CSIDriver(a.(*v1beta1.CSIDriver), b.(*storage.CSIDriver), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*storage.CSIDriver)(nil), (*v1beta1.CSIDriver)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_storage_CSIDriver_To_v1beta1_CSIDriver(a.(*storage.CSIDriver), b.(*v1beta1.CSIDriver), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*v1beta1.CSIDriverList)(nil), (*storage.CSIDriverList)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_v1beta1_CSIDriverList_To_storage_CSIDriverList(a.(*v1beta1.CSIDriverList), b.(*storage.CSIDriverList), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*storage.CSIDriverList)(nil), (*v1beta1.CSIDriverList)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_storage_CSIDriverList_To_v1beta1_CSIDriverList(a.(*storage.CSIDriverList), b.(*v1beta1.CSIDriverList), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*v1beta1.CSIDriverSpec)(nil), (*storage.CSIDriverSpec)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_v1beta1_CSIDriverSpec_To_storage_CSIDriverSpec(a.(*v1beta1.CSIDriverSpec), b.(*storage.CSIDriverSpec), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*storage.CSIDriverSpec)(nil), (*v1beta1.CSIDriverSpec)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_storage_CSIDriverSpec_To_v1beta1_CSIDriverSpec(a.(*storage.CSIDriverSpec), b.(*v1beta1.CSIDriverSpec), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*v1beta1.CSINode)(nil), (*storage.CSINode)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_v1beta1_CSINode_To_storage_CSINode(a.(*v1beta1.CSINode), b.(*storage.CSINode), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*storage.CSINode)(nil), (*v1beta1.CSINode)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_storage_CSINode_To_v1beta1_CSINode(a.(*storage.CSINode), b.(*v1beta1.CSINode), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*v1beta1.CSINodeDriver)(nil), (*storage.CSINodeDriver)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_v1beta1_CSINodeDriver_To_storage_CSINodeDriver(a.(*v1beta1.CSINodeDriver), b.(*storage.CSINodeDriver), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*storage.CSINodeDriver)(nil), (*v1beta1.CSINodeDriver)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_storage_CSINodeDriver_To_v1beta1_CSINodeDriver(a.(*storage.CSINodeDriver), b.(*v1beta1.CSINodeDriver), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*v1beta1.CSINodeList)(nil), (*storage.CSINodeList)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_v1beta1_CSINodeList_To_storage_CSINodeList(a.(*v1beta1.CSINodeList), b.(*storage.CSINodeList), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*storage.CSINodeList)(nil), (*v1beta1.CSINodeList)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_storage_CSINodeList_To_v1beta1_CSINodeList(a.(*storage.CSINodeList), b.(*v1beta1.CSINodeList), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*v1beta1.CSINodeSpec)(nil), (*storage.CSINodeSpec)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_v1beta1_CSINodeSpec_To_storage_CSINodeSpec(a.(*v1beta1.CSINodeSpec), b.(*storage.CSINodeSpec), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*storage.CSINodeSpec)(nil), (*v1beta1.CSINodeSpec)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_storage_CSINodeSpec_To_v1beta1_CSINodeSpec(a.(*storage.CSINodeSpec), b.(*v1beta1.CSINodeSpec), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*v1beta1.StorageClass)(nil), (*storage.StorageClass)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_v1beta1_StorageClass_To_storage_StorageClass(a.(*v1beta1.StorageClass), b.(*storage.StorageClass), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*storage.StorageClass)(nil), (*v1beta1.StorageClass)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_storage_StorageClass_To_v1beta1_StorageClass(a.(*storage.StorageClass), b.(*v1beta1.StorageClass), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*v1beta1.StorageClassList)(nil), (*storage.StorageClassList)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_v1beta1_StorageClassList_To_storage_StorageClassList(a.(*v1beta1.StorageClassList), b.(*storage.StorageClassList), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*storage.StorageClassList)(nil), (*v1beta1.StorageClassList)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_storage_StorageClassList_To_v1beta1_StorageClassList(a.(*storage.StorageClassList), b.(*v1beta1.StorageClassList), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*v1beta1.VolumeAttachment)(nil), (*storage.VolumeAttachment)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_v1beta1_VolumeAttachment_To_storage_VolumeAttachment(a.(*v1beta1.VolumeAttachment), b.(*storage.VolumeAttachment), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*storage.VolumeAttachment)(nil), (*v1beta1.VolumeAttachment)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_storage_VolumeAttachment_To_v1beta1_VolumeAttachment(a.(*storage.VolumeAttachment), b.(*v1beta1.VolumeAttachment), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*v1beta1.VolumeAttachmentList)(nil), (*storage.VolumeAttachmentList)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_v1beta1_VolumeAttachmentList_To_storage_VolumeAttachmentList(a.(*v1beta1.VolumeAttachmentList), b.(*storage.VolumeAttachmentList), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*storage.VolumeAttachmentList)(nil), (*v1beta1.VolumeAttachmentList)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_storage_VolumeAttachmentList_To_v1beta1_VolumeAttachmentList(a.(*storage.VolumeAttachmentList), b.(*v1beta1.VolumeAttachmentList), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*v1beta1.VolumeAttachmentSource)(nil), (*storage.VolumeAttachmentSource)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_v1beta1_VolumeAttachmentSource_To_storage_VolumeAttachmentSource(a.(*v1beta1.VolumeAttachmentSource), b.(*storage.VolumeAttachmentSource), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*storage.VolumeAttachmentSource)(nil), (*v1beta1.VolumeAttachmentSource)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_storage_VolumeAttachmentSource_To_v1beta1_VolumeAttachmentSource(a.(*storage.VolumeAttachmentSource), b.(*v1beta1.VolumeAttachmentSource), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*v1beta1.VolumeAttachmentSpec)(nil), (*storage.VolumeAttachmentSpec)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_v1beta1_VolumeAttachmentSpec_To_storage_VolumeAttachmentSpec(a.(*v1beta1.VolumeAttachmentSpec), b.(*storage.VolumeAttachmentSpec), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*storage.VolumeAttachmentSpec)(nil), (*v1beta1.VolumeAttachmentSpec)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_storage_VolumeAttachmentSpec_To_v1beta1_VolumeAttachmentSpec(a.(*storage.VolumeAttachmentSpec), b.(*v1beta1.VolumeAttachmentSpec), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*v1beta1.VolumeAttachmentStatus)(nil), (*storage.VolumeAttachmentStatus)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_v1beta1_VolumeAttachmentStatus_To_storage_VolumeAttachmentStatus(a.(*v1beta1.VolumeAttachmentStatus), b.(*storage.VolumeAttachmentStatus), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*storage.VolumeAttachmentStatus)(nil), (*v1beta1.VolumeAttachmentStatus)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_storage_VolumeAttachmentStatus_To_v1beta1_VolumeAttachmentStatus(a.(*storage.VolumeAttachmentStatus), b.(*v1beta1.VolumeAttachmentStatus), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*v1beta1.VolumeError)(nil), (*storage.VolumeError)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_v1beta1_VolumeError_To_storage_VolumeError(a.(*v1beta1.VolumeError), b.(*storage.VolumeError), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*storage.VolumeError)(nil), (*v1beta1.VolumeError)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_storage_VolumeError_To_v1beta1_VolumeError(a.(*storage.VolumeError), b.(*v1beta1.VolumeError), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*v1beta1.VolumeNodeResources)(nil), (*storage.VolumeNodeResources)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_v1beta1_VolumeNodeResources_To_storage_VolumeNodeResources(a.(*v1beta1.VolumeNodeResources), b.(*storage.VolumeNodeResources), scope)
	}); err != nil {
		return err
	}
	if err := s.AddGeneratedConversionFunc((*storage.VolumeNodeResources)(nil), (*v1beta1.VolumeNodeResources)(nil), func(a, b interface{}, scope conversion.Scope) error {
		return Convert_storage_VolumeNodeResources_To_v1beta1_VolumeNodeResources(a.(*storage.VolumeNodeResources), b.(*v1beta1.VolumeNodeResources), scope)
	}); err != nil {
		return err
	}
	return nil
}

func autoConvert_v1beta1_CSIDriver_To_storage_CSIDriver(in *v1beta1.CSIDriver, out *storage.CSIDriver, s conversion.Scope) error {
	out.ObjectMeta = in.ObjectMeta
	if err := Convert_v1beta1_CSIDriverSpec_To_storage_CSIDriverSpec(&in.Spec, &out.Spec, s); err != nil {
		return err
	}
	return nil
}

// Convert_v1beta1_CSIDriver_To_storage_CSIDriver is an autogenerated conversion function.
func Convert_v1beta1_CSIDriver_To_storage_CSIDriver(in *v1beta1.CSIDriver, out *storage.CSIDriver, s conversion.Scope) error {
	return autoConvert_v1beta1_CSIDriver_To_storage_CSIDriver(in, out, s)
}

func autoConvert_storage_CSIDriver_To_v1beta1_CSIDriver(in *storage.CSIDriver, out *v1beta1.CSIDriver, s conversion.Scope) error {
	out.ObjectMeta = in.ObjectMeta
	if err := Convert_storage_CSIDriverSpec_To_v1beta1_CSIDriverSpec(&in.Spec, &out.Spec, s); err != nil {
		return err
	}
	return nil
}

// Convert_storage_CSIDriver_To_v1beta1_CSIDriver is an autogenerated conversion function.
func Convert_storage_CSIDriver_To_v1beta1_CSIDriver(in *storage.CSIDriver, out *v1beta1.CSIDriver, s conversion.Scope) error {
	return autoConvert_storage_CSIDriver_To_v1beta1_CSIDriver(in, out, s)
}

func autoConvert_v1beta1_CSIDriverList_To_storage_CSIDriverList(in *v1beta1.CSIDriverList, out *storage.CSIDriverList, s conversion.Scope) error {
	out.ListMeta = in.ListMeta
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]storage.CSIDriver, len(*in))
		for i := range *in {
			if err := Convert_v1beta1_CSIDriver_To_storage_CSIDriver(&(*in)[i], &(*out)[i], s); err != nil {
				return err
			}
		}
	} else {
		out.Items = nil
	}
	return nil
}

// Convert_v1beta1_CSIDriverList_To_storage_CSIDriverList is an autogenerated conversion function.
func Convert_v1beta1_CSIDriverList_To_storage_CSIDriverList(in *v1beta1.CSIDriverList, out *storage.CSIDriverList, s conversion.Scope) error {
	return autoConvert_v1beta1_CSIDriverList_To_storage_CSIDriverList(in, out, s)
}

func autoConvert_storage_CSIDriverList_To_v1beta1_CSIDriverList(in *storage.CSIDriverList, out *v1beta1.CSIDriverList, s conversion.Scope) error {
	out.ListMeta = in.ListMeta
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]v1beta1.CSIDriver, len(*in))
		for i := range *in {
			if err := Convert_storage_CSIDriver_To_v1beta1_CSIDriver(&(*in)[i], &(*out)[i], s); err != nil {
				return err
			}
		}
	} else {
		out.Items = nil
	}
	return nil
}

// Convert_storage_CSIDriverList_To_v1beta1_CSIDriverList is an autogenerated conversion function.
func Convert_storage_CSIDriverList_To_v1beta1_CSIDriverList(in *storage.CSIDriverList, out *v1beta1.CSIDriverList, s conversion.Scope) error {
	return autoConvert_storage_CSIDriverList_To_v1beta1_CSIDriverList(in, out, s)
}

func autoConvert_v1beta1_CSIDriverSpec_To_storage_CSIDriverSpec(in *v1beta1.CSIDriverSpec, out *storage.CSIDriverSpec, s conversion.Scope) error {
	out.AttachRequired = (*bool)(unsafe.Pointer(in.AttachRequired))
	out.PodInfoOnMount = (*bool)(unsafe.Pointer(in.PodInfoOnMount))
	out.VolumeLifecycleModes = *(*[]storage.VolumeLifecycleMode)(unsafe.Pointer(&in.VolumeLifecycleModes))
	out.StorageCapacity = (*bool)(unsafe.Pointer(in.StorageCapacity))
	out.FSGroupPolicy = (*storage.FSGroupPolicy)(unsafe.Pointer(in.FSGroupPolicy))
	return nil
}

// Convert_v1beta1_CSIDriverSpec_To_storage_CSIDriverSpec is an autogenerated conversion function.
func Convert_v1beta1_CSIDriverSpec_To_storage_CSIDriverSpec(in *v1beta1.CSIDriverSpec, out *storage.CSIDriverSpec, s conversion.Scope) error {
	return autoConvert_v1beta1_CSIDriverSpec_To_storage_CSIDriverSpec(in, out, s)
}

func autoConvert_storage_CSIDriverSpec_To_v1beta1_CSIDriverSpec(in *storage.CSIDriverSpec, out *v1beta1.CSIDriverSpec, s conversion.Scope) error {
	out.AttachRequired = (*bool)(unsafe.Pointer(in.AttachRequired))
	out.FSGroupPolicy = (*v1beta1.FSGroupPolicy)(unsafe.Pointer(in.FSGroupPolicy))
	out.PodInfoOnMount = (*bool)(unsafe.Pointer(in.PodInfoOnMount))
	out.VolumeLifecycleModes = *(*[]v1beta1.VolumeLifecycleMode)(unsafe.Pointer(&in.VolumeLifecycleModes))
	out.StorageCapacity = (*bool)(unsafe.Pointer(in.StorageCapacity))
	return nil
}

// Convert_storage_CSIDriverSpec_To_v1beta1_CSIDriverSpec is an autogenerated conversion function.
func Convert_storage_CSIDriverSpec_To_v1beta1_CSIDriverSpec(in *storage.CSIDriverSpec, out *v1beta1.CSIDriverSpec, s conversion.Scope) error {
	return autoConvert_storage_CSIDriverSpec_To_v1beta1_CSIDriverSpec(in, out, s)
}

func autoConvert_v1beta1_CSINode_To_storage_CSINode(in *v1beta1.CSINode, out *storage.CSINode, s conversion.Scope) error {
	out.ObjectMeta = in.ObjectMeta
	if err := Convert_v1beta1_CSINodeSpec_To_storage_CSINodeSpec(&in.Spec, &out.Spec, s); err != nil {
		return err
	}
	return nil
}

// Convert_v1beta1_CSINode_To_storage_CSINode is an autogenerated conversion function.
func Convert_v1beta1_CSINode_To_storage_CSINode(in *v1beta1.CSINode, out *storage.CSINode, s conversion.Scope) error {
	return autoConvert_v1beta1_CSINode_To_storage_CSINode(in, out, s)
}

func autoConvert_storage_CSINode_To_v1beta1_CSINode(in *storage.CSINode, out *v1beta1.CSINode, s conversion.Scope) error {
	out.ObjectMeta = in.ObjectMeta
	if err := Convert_storage_CSINodeSpec_To_v1beta1_CSINodeSpec(&in.Spec, &out.Spec, s); err != nil {
		return err
	}
	return nil
}

// Convert_storage_CSINode_To_v1beta1_CSINode is an autogenerated conversion function.
func Convert_storage_CSINode_To_v1beta1_CSINode(in *storage.CSINode, out *v1beta1.CSINode, s conversion.Scope) error {
	return autoConvert_storage_CSINode_To_v1beta1_CSINode(in, out, s)
}

func autoConvert_v1beta1_CSINodeDriver_To_storage_CSINodeDriver(in *v1beta1.CSINodeDriver, out *storage.CSINodeDriver, s conversion.Scope) error {
	out.Name = in.Name
	out.NodeID = in.NodeID
	out.TopologyKeys = *(*[]string)(unsafe.Pointer(&in.TopologyKeys))
	out.Allocatable = (*storage.VolumeNodeResources)(unsafe.Pointer(in.Allocatable))
	return nil
}

// Convert_v1beta1_CSINodeDriver_To_storage_CSINodeDriver is an autogenerated conversion function.
func Convert_v1beta1_CSINodeDriver_To_storage_CSINodeDriver(in *v1beta1.CSINodeDriver, out *storage.CSINodeDriver, s conversion.Scope) error {
	return autoConvert_v1beta1_CSINodeDriver_To_storage_CSINodeDriver(in, out, s)
}

func autoConvert_storage_CSINodeDriver_To_v1beta1_CSINodeDriver(in *storage.CSINodeDriver, out *v1beta1.CSINodeDriver, s conversion.Scope) error {
	out.Name = in.Name
	out.NodeID = in.NodeID
	out.TopologyKeys = *(*[]string)(unsafe.Pointer(&in.TopologyKeys))
	out.Allocatable = (*v1beta1.VolumeNodeResources)(unsafe.Pointer(in.Allocatable))
	return nil
}

// Convert_storage_CSINodeDriver_To_v1beta1_CSINodeDriver is an autogenerated conversion function.
func Convert_storage_CSINodeDriver_To_v1beta1_CSINodeDriver(in *storage.CSINodeDriver, out *v1beta1.CSINodeDriver, s conversion.Scope) error {
	return autoConvert_storage_CSINodeDriver_To_v1beta1_CSINodeDriver(in, out, s)
}

func autoConvert_v1beta1_CSINodeList_To_storage_CSINodeList(in *v1beta1.CSINodeList, out *storage.CSINodeList, s conversion.Scope) error {
	out.ListMeta = in.ListMeta
	out.Items = *(*[]storage.CSINode)(unsafe.Pointer(&in.Items))
	return nil
}

// Convert_v1beta1_CSINodeList_To_storage_CSINodeList is an autogenerated conversion function.
func Convert_v1beta1_CSINodeList_To_storage_CSINodeList(in *v1beta1.CSINodeList, out *storage.CSINodeList, s conversion.Scope) error {
	return autoConvert_v1beta1_CSINodeList_To_storage_CSINodeList(in, out, s)
}

func autoConvert_storage_CSINodeList_To_v1beta1_CSINodeList(in *storage.CSINodeList, out *v1beta1.CSINodeList, s conversion.Scope) error {
	out.ListMeta = in.ListMeta
	out.Items = *(*[]v1beta1.CSINode)(unsafe.Pointer(&in.Items))
	return nil
}

// Convert_storage_CSINodeList_To_v1beta1_CSINodeList is an autogenerated conversion function.
func Convert_storage_CSINodeList_To_v1beta1_CSINodeList(in *storage.CSINodeList, out *v1beta1.CSINodeList, s conversion.Scope) error {
	return autoConvert_storage_CSINodeList_To_v1beta1_CSINodeList(in, out, s)
}

func autoConvert_v1beta1_CSINodeSpec_To_storage_CSINodeSpec(in *v1beta1.CSINodeSpec, out *storage.CSINodeSpec, s conversion.Scope) error {
	out.Drivers = *(*[]storage.CSINodeDriver)(unsafe.Pointer(&in.Drivers))
	return nil
}

// Convert_v1beta1_CSINodeSpec_To_storage_CSINodeSpec is an autogenerated conversion function.
func Convert_v1beta1_CSINodeSpec_To_storage_CSINodeSpec(in *v1beta1.CSINodeSpec, out *storage.CSINodeSpec, s conversion.Scope) error {
	return autoConvert_v1beta1_CSINodeSpec_To_storage_CSINodeSpec(in, out, s)
}

func autoConvert_storage_CSINodeSpec_To_v1beta1_CSINodeSpec(in *storage.CSINodeSpec, out *v1beta1.CSINodeSpec, s conversion.Scope) error {
	out.Drivers = *(*[]v1beta1.CSINodeDriver)(unsafe.Pointer(&in.Drivers))
	return nil
}

// Convert_storage_CSINodeSpec_To_v1beta1_CSINodeSpec is an autogenerated conversion function.
func Convert_storage_CSINodeSpec_To_v1beta1_CSINodeSpec(in *storage.CSINodeSpec, out *v1beta1.CSINodeSpec, s conversion.Scope) error {
	return autoConvert_storage_CSINodeSpec_To_v1beta1_CSINodeSpec(in, out, s)
}

func autoConvert_v1beta1_StorageClass_To_storage_StorageClass(in *v1beta1.StorageClass, out *storage.StorageClass, s conversion.Scope) error {
	out.ObjectMeta = in.ObjectMeta
	out.Provisioner = in.Provisioner
	out.Parameters = *(*map[string]string)(unsafe.Pointer(&in.Parameters))
	out.ReclaimPolicy = (*core.PersistentVolumeReclaimPolicy)(unsafe.Pointer(in.ReclaimPolicy))
	out.MountOptions = *(*[]string)(unsafe.Pointer(&in.MountOptions))
	out.AllowVolumeExpansion = (*bool)(unsafe.Pointer(in.AllowVolumeExpansion))
	out.VolumeBindingMode = (*storage.VolumeBindingMode)(unsafe.Pointer(in.VolumeBindingMode))
	out.AllowedTopologies = *(*[]core.TopologySelectorTerm)(unsafe.Pointer(&in.AllowedTopologies))
	return nil
}

// Convert_v1beta1_StorageClass_To_storage_StorageClass is an autogenerated conversion function.
func Convert_v1beta1_StorageClass_To_storage_StorageClass(in *v1beta1.StorageClass, out *storage.StorageClass, s conversion.Scope) error {
	return autoConvert_v1beta1_StorageClass_To_storage_StorageClass(in, out, s)
}

func autoConvert_storage_StorageClass_To_v1beta1_StorageClass(in *storage.StorageClass, out *v1beta1.StorageClass, s conversion.Scope) error {
	out.ObjectMeta = in.ObjectMeta
	out.Provisioner = in.Provisioner
	out.Parameters = *(*map[string]string)(unsafe.Pointer(&in.Parameters))
	out.ReclaimPolicy = (*v1.PersistentVolumeReclaimPolicy)(unsafe.Pointer(in.ReclaimPolicy))
	out.MountOptions = *(*[]string)(unsafe.Pointer(&in.MountOptions))
	out.AllowVolumeExpansion = (*bool)(unsafe.Pointer(in.AllowVolumeExpansion))
	out.VolumeBindingMode = (*v1beta1.VolumeBindingMode)(unsafe.Pointer(in.VolumeBindingMode))
	out.AllowedTopologies = *(*[]v1.TopologySelectorTerm)(unsafe.Pointer(&in.AllowedTopologies))
	return nil
}

// Convert_storage_StorageClass_To_v1beta1_StorageClass is an autogenerated conversion function.
func Convert_storage_StorageClass_To_v1beta1_StorageClass(in *storage.StorageClass, out *v1beta1.StorageClass, s conversion.Scope) error {
	return autoConvert_storage_StorageClass_To_v1beta1_StorageClass(in, out, s)
}

func autoConvert_v1beta1_StorageClassList_To_storage_StorageClassList(in *v1beta1.StorageClassList, out *storage.StorageClassList, s conversion.Scope) error {
	out.ListMeta = in.ListMeta
	out.Items = *(*[]storage.StorageClass)(unsafe.Pointer(&in.Items))
	return nil
}

// Convert_v1beta1_StorageClassList_To_storage_StorageClassList is an autogenerated conversion function.
func Convert_v1beta1_StorageClassList_To_storage_StorageClassList(in *v1beta1.StorageClassList, out *storage.StorageClassList, s conversion.Scope) error {
	return autoConvert_v1beta1_StorageClassList_To_storage_StorageClassList(in, out, s)
}

func autoConvert_storage_StorageClassList_To_v1beta1_StorageClassList(in *storage.StorageClassList, out *v1beta1.StorageClassList, s conversion.Scope) error {
	out.ListMeta = in.ListMeta
	out.Items = *(*[]v1beta1.StorageClass)(unsafe.Pointer(&in.Items))
	return nil
}

// Convert_storage_StorageClassList_To_v1beta1_StorageClassList is an autogenerated conversion function.
func Convert_storage_StorageClassList_To_v1beta1_StorageClassList(in *storage.StorageClassList, out *v1beta1.StorageClassList, s conversion.Scope) error {
	return autoConvert_storage_StorageClassList_To_v1beta1_StorageClassList(in, out, s)
}

func autoConvert_v1beta1_VolumeAttachment_To_storage_VolumeAttachment(in *v1beta1.VolumeAttachment, out *storage.VolumeAttachment, s conversion.Scope) error {
	out.ObjectMeta = in.ObjectMeta
	if err := Convert_v1beta1_VolumeAttachmentSpec_To_storage_VolumeAttachmentSpec(&in.Spec, &out.Spec, s); err != nil {
		return err
	}
	if err := Convert_v1beta1_VolumeAttachmentStatus_To_storage_VolumeAttachmentStatus(&in.Status, &out.Status, s); err != nil {
		return err
	}
	return nil
}

// Convert_v1beta1_VolumeAttachment_To_storage_VolumeAttachment is an autogenerated conversion function.
func Convert_v1beta1_VolumeAttachment_To_storage_VolumeAttachment(in *v1beta1.VolumeAttachment, out *storage.VolumeAttachment, s conversion.Scope) error {
	return autoConvert_v1beta1_VolumeAttachment_To_storage_VolumeAttachment(in, out, s)
}

func autoConvert_storage_VolumeAttachment_To_v1beta1_VolumeAttachment(in *storage.VolumeAttachment, out *v1beta1.VolumeAttachment, s conversion.Scope) error {
	out.ObjectMeta = in.ObjectMeta
	if err := Convert_storage_VolumeAttachmentSpec_To_v1beta1_VolumeAttachmentSpec(&in.Spec, &out.Spec, s); err != nil {
		return err
	}
	if err := Convert_storage_VolumeAttachmentStatus_To_v1beta1_VolumeAttachmentStatus(&in.Status, &out.Status, s); err != nil {
		return err
	}
	return nil
}

// Convert_storage_VolumeAttachment_To_v1beta1_VolumeAttachment is an autogenerated conversion function.
func Convert_storage_VolumeAttachment_To_v1beta1_VolumeAttachment(in *storage.VolumeAttachment, out *v1beta1.VolumeAttachment, s conversion.Scope) error {
	return autoConvert_storage_VolumeAttachment_To_v1beta1_VolumeAttachment(in, out, s)
}

func autoConvert_v1beta1_VolumeAttachmentList_To_storage_VolumeAttachmentList(in *v1beta1.VolumeAttachmentList, out *storage.VolumeAttachmentList, s conversion.Scope) error {
	out.ListMeta = in.ListMeta
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]storage.VolumeAttachment, len(*in))
		for i := range *in {
			if err := Convert_v1beta1_VolumeAttachment_To_storage_VolumeAttachment(&(*in)[i], &(*out)[i], s); err != nil {
				return err
			}
		}
	} else {
		out.Items = nil
	}
	return nil
}

// Convert_v1beta1_VolumeAttachmentList_To_storage_VolumeAttachmentList is an autogenerated conversion function.
func Convert_v1beta1_VolumeAttachmentList_To_storage_VolumeAttachmentList(in *v1beta1.VolumeAttachmentList, out *storage.VolumeAttachmentList, s conversion.Scope) error {
	return autoConvert_v1beta1_VolumeAttachmentList_To_storage_VolumeAttachmentList(in, out, s)
}

func autoConvert_storage_VolumeAttachmentList_To_v1beta1_VolumeAttachmentList(in *storage.VolumeAttachmentList, out *v1beta1.VolumeAttachmentList, s conversion.Scope) error {
	out.ListMeta = in.ListMeta
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]v1beta1.VolumeAttachment, len(*in))
		for i := range *in {
			if err := Convert_storage_VolumeAttachment_To_v1beta1_VolumeAttachment(&(*in)[i], &(*out)[i], s); err != nil {
				return err
			}
		}
	} else {
		out.Items = nil
	}
	return nil
}

// Convert_storage_VolumeAttachmentList_To_v1beta1_VolumeAttachmentList is an autogenerated conversion function.
func Convert_storage_VolumeAttachmentList_To_v1beta1_VolumeAttachmentList(in *storage.VolumeAttachmentList, out *v1beta1.VolumeAttachmentList, s conversion.Scope) error {
	return autoConvert_storage_VolumeAttachmentList_To_v1beta1_VolumeAttachmentList(in, out, s)
}

func autoConvert_v1beta1_VolumeAttachmentSource_To_storage_VolumeAttachmentSource(in *v1beta1.VolumeAttachmentSource, out *storage.VolumeAttachmentSource, s conversion.Scope) error {
	out.PersistentVolumeName = (*string)(unsafe.Pointer(in.PersistentVolumeName))
	if in.InlineVolumeSpec != nil {
		in, out := &in.InlineVolumeSpec, &out.InlineVolumeSpec
		*out = new(core.PersistentVolumeSpec)
		if err := corev1.Convert_v1_PersistentVolumeSpec_To_core_PersistentVolumeSpec(*in, *out, s); err != nil {
			return err
		}
	} else {
		out.InlineVolumeSpec = nil
	}
	return nil
}

// Convert_v1beta1_VolumeAttachmentSource_To_storage_VolumeAttachmentSource is an autogenerated conversion function.
func Convert_v1beta1_VolumeAttachmentSource_To_storage_VolumeAttachmentSource(in *v1beta1.VolumeAttachmentSource, out *storage.VolumeAttachmentSource, s conversion.Scope) error {
	return autoConvert_v1beta1_VolumeAttachmentSource_To_storage_VolumeAttachmentSource(in, out, s)
}

func autoConvert_storage_VolumeAttachmentSource_To_v1beta1_VolumeAttachmentSource(in *storage.VolumeAttachmentSource, out *v1beta1.VolumeAttachmentSource, s conversion.Scope) error {
	out.PersistentVolumeName = (*string)(unsafe.Pointer(in.PersistentVolumeName))
	if in.InlineVolumeSpec != nil {
		in, out := &in.InlineVolumeSpec, &out.InlineVolumeSpec
		*out = new(v1.PersistentVolumeSpec)
		if err := corev1.Convert_core_PersistentVolumeSpec_To_v1_PersistentVolumeSpec(*in, *out, s); err != nil {
			return err
		}
	} else {
		out.InlineVolumeSpec = nil
	}
	return nil
}

// Convert_storage_VolumeAttachmentSource_To_v1beta1_VolumeAttachmentSource is an autogenerated conversion function.
func Convert_storage_VolumeAttachmentSource_To_v1beta1_VolumeAttachmentSource(in *storage.VolumeAttachmentSource, out *v1beta1.VolumeAttachmentSource, s conversion.Scope) error {
	return autoConvert_storage_VolumeAttachmentSource_To_v1beta1_VolumeAttachmentSource(in, out, s)
}

func autoConvert_v1beta1_VolumeAttachmentSpec_To_storage_VolumeAttachmentSpec(in *v1beta1.VolumeAttachmentSpec, out *storage.VolumeAttachmentSpec, s conversion.Scope) error {
	out.Attacher = in.Attacher
	if err := Convert_v1beta1_VolumeAttachmentSource_To_storage_VolumeAttachmentSource(&in.Source, &out.Source, s); err != nil {
		return err
	}
	out.NodeName = in.NodeName
	return nil
}

// Convert_v1beta1_VolumeAttachmentSpec_To_storage_VolumeAttachmentSpec is an autogenerated conversion function.
func Convert_v1beta1_VolumeAttachmentSpec_To_storage_VolumeAttachmentSpec(in *v1beta1.VolumeAttachmentSpec, out *storage.VolumeAttachmentSpec, s conversion.Scope) error {
	return autoConvert_v1beta1_VolumeAttachmentSpec_To_storage_VolumeAttachmentSpec(in, out, s)
}

func autoConvert_storage_VolumeAttachmentSpec_To_v1beta1_VolumeAttachmentSpec(in *storage.VolumeAttachmentSpec, out *v1beta1.VolumeAttachmentSpec, s conversion.Scope) error {
	out.Attacher = in.Attacher
	if err := Convert_storage_VolumeAttachmentSource_To_v1beta1_VolumeAttachmentSource(&in.Source, &out.Source, s); err != nil {
		return err
	}
	out.NodeName = in.NodeName
	return nil
}

// Convert_storage_VolumeAttachmentSpec_To_v1beta1_VolumeAttachmentSpec is an autogenerated conversion function.
func Convert_storage_VolumeAttachmentSpec_To_v1beta1_VolumeAttachmentSpec(in *storage.VolumeAttachmentSpec, out *v1beta1.VolumeAttachmentSpec, s conversion.Scope) error {
	return autoConvert_storage_VolumeAttachmentSpec_To_v1beta1_VolumeAttachmentSpec(in, out, s)
}

func autoConvert_v1beta1_VolumeAttachmentStatus_To_storage_VolumeAttachmentStatus(in *v1beta1.VolumeAttachmentStatus, out *storage.VolumeAttachmentStatus, s conversion.Scope) error {
	out.Attached = in.Attached
	out.AttachmentMetadata = *(*map[string]string)(unsafe.Pointer(&in.AttachmentMetadata))
	out.AttachError = (*storage.VolumeError)(unsafe.Pointer(in.AttachError))
	out.DetachError = (*storage.VolumeError)(unsafe.Pointer(in.DetachError))
	return nil
}

// Convert_v1beta1_VolumeAttachmentStatus_To_storage_VolumeAttachmentStatus is an autogenerated conversion function.
func Convert_v1beta1_VolumeAttachmentStatus_To_storage_VolumeAttachmentStatus(in *v1beta1.VolumeAttachmentStatus, out *storage.VolumeAttachmentStatus, s conversion.Scope) error {
	return autoConvert_v1beta1_VolumeAttachmentStatus_To_storage_VolumeAttachmentStatus(in, out, s)
}

func autoConvert_storage_VolumeAttachmentStatus_To_v1beta1_VolumeAttachmentStatus(in *storage.VolumeAttachmentStatus, out *v1beta1.VolumeAttachmentStatus, s conversion.Scope) error {
	out.Attached = in.Attached
	out.AttachmentMetadata = *(*map[string]string)(unsafe.Pointer(&in.AttachmentMetadata))
	out.AttachError = (*v1beta1.VolumeError)(unsafe.Pointer(in.AttachError))
	out.DetachError = (*v1beta1.VolumeError)(unsafe.Pointer(in.DetachError))
	return nil
}

// Convert_storage_VolumeAttachmentStatus_To_v1beta1_VolumeAttachmentStatus is an autogenerated conversion function.
func Convert_storage_VolumeAttachmentStatus_To_v1beta1_VolumeAttachmentStatus(in *storage.VolumeAttachmentStatus, out *v1beta1.VolumeAttachmentStatus, s conversion.Scope) error {
	return autoConvert_storage_VolumeAttachmentStatus_To_v1beta1_VolumeAttachmentStatus(in, out, s)
}

func autoConvert_v1beta1_VolumeError_To_storage_VolumeError(in *v1beta1.VolumeError, out *storage.VolumeError, s conversion.Scope) error {
	out.Time = in.Time
	out.Message = in.Message
	return nil
}

// Convert_v1beta1_VolumeError_To_storage_VolumeError is an autogenerated conversion function.
func Convert_v1beta1_VolumeError_To_storage_VolumeError(in *v1beta1.VolumeError, out *storage.VolumeError, s conversion.Scope) error {
	return autoConvert_v1beta1_VolumeError_To_storage_VolumeError(in, out, s)
}

func autoConvert_storage_VolumeError_To_v1beta1_VolumeError(in *storage.VolumeError, out *v1beta1.VolumeError, s conversion.Scope) error {
	out.Time = in.Time
	out.Message = in.Message
	return nil
}

// Convert_storage_VolumeError_To_v1beta1_VolumeError is an autogenerated conversion function.
func Convert_storage_VolumeError_To_v1beta1_VolumeError(in *storage.VolumeError, out *v1beta1.VolumeError, s conversion.Scope) error {
	return autoConvert_storage_VolumeError_To_v1beta1_VolumeError(in, out, s)
}

func autoConvert_v1beta1_VolumeNodeResources_To_storage_VolumeNodeResources(in *v1beta1.VolumeNodeResources, out *storage.VolumeNodeResources, s conversion.Scope) error {
	out.Count = (*int32)(unsafe.Pointer(in.Count))
	return nil
}

// Convert_v1beta1_VolumeNodeResources_To_storage_VolumeNodeResources is an autogenerated conversion function.
func Convert_v1beta1_VolumeNodeResources_To_storage_VolumeNodeResources(in *v1beta1.VolumeNodeResources, out *storage.VolumeNodeResources, s conversion.Scope) error {
	return autoConvert_v1beta1_VolumeNodeResources_To_storage_VolumeNodeResources(in, out, s)
}

func autoConvert_storage_VolumeNodeResources_To_v1beta1_VolumeNodeResources(in *storage.VolumeNodeResources, out *v1beta1.VolumeNodeResources, s conversion.Scope) error {
	out.Count = (*int32)(unsafe.Pointer(in.Count))
	return nil
}

// Convert_storage_VolumeNodeResources_To_v1beta1_VolumeNodeResources is an autogenerated conversion function.
func Convert_storage_VolumeNodeResources_To_v1beta1_VolumeNodeResources(in *storage.VolumeNodeResources, out *v1beta1.VolumeNodeResources, s conversion.Scope) error {
	return autoConvert_storage_VolumeNodeResources_To_v1beta1_VolumeNodeResources(in, out, s)
}

redpajama_set_name: RedPajamaGithub


text:
Movies and TV | September 4, 2019
Top 10 Must-See Recent Genre-Defying Horrors
by Jamie Frater
Are you sick of struggling to find anything decent to watch out of Hollywood these days? Me too! Long a bastion of great movie making, Hollywood has recently abdicated the bulk of its role as an entertainment creator in order to enter the rather tiresome world of politics and social engineering. Gone are the regular releases of brilliant new ideas that inspire, thrill, or humour us. Now, when not producing politically-corrected remakes of past favorites, Hollywood producers, writers, and directors are throwing together cookie-cutter films based on trite and tired themes.
But . . . from time to time a little gem has emerged unscathed from the mire of new releases; a gem that surprises us with its brilliance, twists and turns, or just simply new ideas. This list looks at ten recently released movies in the horror genre that give us some hope that at some point in the future, saner heads will prevail in the entertainment industry and these types of moving pictures will become the rule, and not the exception to it.
10 Bird Box, 2018
Bird Box | Official Trailer [HD] | Netflix
Birdbox is an unusual film in its use of reduced sensory perception (blindness) to create a feeling of fear in the viewer. The protagonist (played by Sandra Bullock) must take her children to a safe place after the world has been largely driven to suicide by an unseen presence. They must travel without the use of their sight as it is only when the evil presence is perceived visually that it can drive a person to self-murder.
This is one of three films on this list that uses reduced senses to great effect (also items 9 and 2). The film released to mixed reviews but it is definitely worth the watch in my opinion, particularly if you like "edge of your seat" type horrors that are less about violence (though it does contain some) and more about psychological thrills.
9 Hush
Hush Official Trailer 1 (2016) – Kate Siegel, John Gallagher Jr. Movie HD
This is the second of the sensorily-deprived movies on the list. Hush focuses on the life of a deaf and mute woman who lives in relative seclusion where she works as a writer. Things take a rather dark and horrible turn when a masked man appears at her window. Not surprisingly this leads to a fight to the death for the woman who proves herself rather adept at self-defense and out-of-the-box thinking.
This, like the previously mentioned Bird Box, uses the protagonist's disability to create an extremely unsettling atmosphere. However, unlike Bird Box this film has a faster pace and is less cerebral. This may not be the best film on the list but it is definitely worth the watch.
8 The Witch
The Witch | Official Trailer HD | A24
Brilliant scoring, an atmosphere of disquiet, and a historic setting make The Witch a somewhat modern-gothic film. Much of the horror here comes from psychology which is oftentimes better than in-your-face gore (though that is not to say gore has no place in horror of course!) The film follows a devout homesteading family in the 17th century who slowly unravel after the disappearance of their newborn boy.
Don't expect fast pacing and do expect to do a little thinking. Even if you don't like period pieces, I recommend you give The Witch a go; I think you will pleasantly surprised.
7 The Babadook, 2014
The Babadook Official Trailer #1 (2014) – Essie Davis Horror Movie HD
It is not always easy for a New Zealander like me to celebrate Australian achievements (few and far between that they be). Nevertheless I must laud the efforts of the team who gave us the original and unusual film The Babadook. The Babadook is a sinister presence first seen in a rather disturbing children's book that the main character reads to her son . . . a child who appears slightly disturbed from the get go. There are some minor cliche moments in the film but on the whole it manages to bring something new to the screen. If Hollywood had produced this film it would open with an overly happy mother kowtowing to a bratty child, but here we see a mother racked with exhaustion who has all but given up on life having to deal with a non-medicated hyperactive (and slightly crazy) kid. This actually leads to a rather interesting and unexpected ending with a nice twist.
For those who want to take a deeper look at the why's and wherefores of the movie, it is said that it may be a metaphor for grief. Certainly the surprise ending seems to confirm that theory (I wish I could say more but that would spoil the film for those who haven't seen it).
6 It Follows
It Follows Official Trailer 1 (2015) – Horror Movie HD
The atmosphere of this film is palpable thanks largely to the musical score with its retro (yet timeless) feel. The soundtrack hearkens back to the golden age of horror that gave us the likes of Friday the Thirteenth and Halloween. It is for that reason that viewers who have seen (and no-doubt loved) those older horrors will get more from that aspect of this movie. But hey, the '80s vintage vibe of Netflix's Stranger Things managed to entice an entire generation of young viewers so who knows.
The "It" in the title refers to a creature (in human form) which follows a victim relentlessly. The creature can only walk (which actually heightens the tension and fear in the film) but if it catches up with its victim . . . he is dead—in a rather gruesome manner as we discover early in the film. In order to stop "it" from following you, you must have sex with someone else which transfers the danger to them (much like the pass-the-parcel handling of the mysterious video tape in Ringu).
The film seems to be rather obviously a warning about the dangers of promiscuity . . . though perhaps I'm just reading too much into it. Of all the films on this list, "It Follows" is my favorite. Watch it.
5 Bone Tomahawk
Bone Tomahawk Official Trailer #1 (2015) – Kurt Russell, Patrick Wilson Movie HD
Is it a Western? Is it a comedy? Is it a horror? Yes. I am not generally a fan of the Western genre but here it is combined with a little wry humor and a considerable dose of violence (some very gory so be warned). The film opens with a visibly brutal slaying of a couple, which gives you a little taste of what is to come (eventually). It segues into a more traditional western format as we meet various characters and there is even some humor tossed in for good measure.
While the film is slow paced (mostly) and definitely tending more toward being a Western, once the horror starts it horrifyingly switches to a Western cum "Cannibal Holocaust" movie. Not for the faint of heart . . . trust me.
4 Midsommar
MIDSOMMAR | Official Trailer HD | A24
Modern horror meets the Wicker Man—without being a trashy remake of that great oldie (tsk tsk Hollywood for its 2006 disaster). I am a great fan of Director Ari Aster's previous film Hereditary (more on that shortly) so I was eager to see his second movie, Midsommar. Midsommar is set in an idyllic Swedish countryside (actually filmed in Hungary . . . fewer no-go zones perhaps!) It is, in the words of Guardian reviewer, Peter Bradshaw, a "carnival of agony" and I certainly concur.
While some of the premise of the film is slightly clichéd, that should not stop you from seeing this broadly unique and chilling picture. I predict a long and rewarding career in horror for Ari Aster.
3 Hereditary
Hereditary | Official Trailer HD | A24
Shocking . . . the one word that really sums up this picture. This film has so many twists and turns and dread-inspiring moments that you are kept on the edge of your seat constantly. Hereditary follows a family suffering from family loss leading to even more loss and horrifying discoveries. It is intensely disturbing on a psychological level in many scenes, and on a physical level in others (one particular driving scene springs to mind).
This is Ari Aster's first film and what a great introduction to his work! And of course his second work, Midsommar, is listed as item 4 on this list so be sure to check that out too. Hereditary is a must-see even if only to experience what is perhaps the best screen performance from Toni Collette in her long and shining acting career.
2 A Quiet Place
A Quiet Place (2018) – Official Trailer – Paramount Pictures
A film built around the concept of silence. Whereas Bird Box focuses on blindness, and Hush on deafness, A Quiet Place focuses on muteness. I have, as yet, not discovered a film that focuses on the absence of touch (in the horror genre at any rate) so there is still room for another sensory-deprivation horror film in the future!
A quiet place follows a family living in a world filled with creatures who, with great rapidity, dismember all humans they come into contact with. The creatures have acute hearing so the slightest sound draws them in. And so our family finds itself in a world of silence, where every footstep and utterance must be hushed. This is an incredibly well conceived movie and a real edge-of-your-seat ride. I don't think I know of anyone who hasn't raved upon seeing it.
Bonus: seeing The Office's John Krasinski playing a deadly (literally) serious role.
1 The Lighthouse
The Lighthouse | Official Trailer HD | A24
Just like The Witch at position 8 on this list, The Lighthouse is a period horror and what better location could be found for such a film than a remote lighthouse? The tale follows two lighthouse keepers (played by Robert Pattinson and Willem Dafoe) who have to battle a real life horror: their own nightmares and loss of sanity. The film is directed by Robert Eggers (who also directed The Witch) and has been widely acclaimed by critics (though don't be put off by that!)
The film is shot in black and white (risky these days) but if a younger audience can come to terms with that it will undoubtedly prove extremely popular across the generations.
This film is the only one on the list that is not actually out at cinemas but hopefully the trailer above will serve to entice you to give it a shot when it is available on October 18th this year.
So, there you have it. My selection of ten of the better recent releases in the horror genre. If you disagree with my choices or, better still, have another great film to add to the list, please mention it in the comments (you can find those by scrolling past way too many content recommendations!)
Top 10 Best Sci-Fi Movies By Genre
Top 10 Must-Visit Natural Wonders
The Listverse Compendium Of 113 Halloween Horrors
10 Obstacles Astronauts Must Overcome On A Voyage To Mars
Top 10 Listverse Lists Google Doesn't Want You To See
Top 10 Bizarre Facts That Will Change How You See Dinosaurs
Top 10 Underappreciated Directorial Debuts You Need To See
Top 10 Things Disney Doesn't Want You To See
Top 10 Bizarre Cakes You Won't See On The Great…
Jamie is the founder of Listverse. When he's not doing research for new lists or collecting historical oddities, he can be found in the comments or on Facebook where he approves all friends requests!
Read More: Facebook Instagram Email
Top 10 Amazing Actors Who Are Always In Awful Movies
10 Famous Stars And Their Embarrassing First Films
Top 10 Dumbest Products on Shark Tank
Top 10 Filmable Batman Villains
10 Movie Sets You Can Still Visit
10 Brilliant Complete Movies Online

redpajama_set_name: RedPajamaCommonCrawl


Alibaba offers 8 non magnetic stainless steel round bar products. About 37% of these are stainless steel bars. A wide variety of non magnetic stainless steel round bar options are available to you, such as astm, jis, and aisi.
Matte Style Frosted Non-magnetic Synthetic Hematite Flat Round Beads Strands, 5x2mm, Hole: 1mm; about 94pcs/strand, 8" These Non-magnetic Synthetic Hematite beads are very pretty.
301 stainless steel flat rolled coil is non-magnetic in the annealed condition but becomes magnetic when cold worked. Forming: Type 301 is used in fabrication by bending, roll forming, blanking, stretch bending and drawing.
304 Stainless Steel Links, Double Heart 304 Stainless Steel Links, Double Heart (00QTR8) Size Options: 12x6x1mm, Hole: 1mm 12x6x1mm, Hole: 1mm Size: about 6mm wide, 12mm long, 1mm thick, hole: 1mm.
Our Unbreakable Mirrors are supplied in a top quality grade 304 stainless steel, 0.9mm thick. The reflection quality of the Unbreakable Mirror is as good as a glass mirror but they will not break or shatter. They fix directly to flat surface walls with either glue or screws.


Echoes (English version) or Échos (French version) is the fifth international studio album by Indonesian singer-songwriter Anggun. The album was first released in Anggun's native country on 27 May 2011 and later in France on 7 November 2011. The album was released internationally in early 2012. The album topped the Indonesian Albums Chart and was certified platinum in the first week.It eventually received quadruple platinum and became the best-selling pop album of 2011 in Indonesia. The album's lead single, "Hanyalah Cinta", became number-one airplay hit in Indonesia. In France, Échos debuted at number 57 on the French Albums Chart. Echoes also remains her only English album to enter the French Albums Chart separately from the French version. The first single from French version, "Je partirai", reached number five in Belgium. "Echo (You and I)" was released as the first single for international market. Échos is Anggun's first album sung entirely in French (as previous albums had songs or interludes in English or Indonesian) as well as her first French album where she does not have any writing credit.


The product is very beautiful, an honest store. I do recommend this store and i will buy again for sure. Thank you Dear Seller for your honesty on selling products that are the same S the photos you posted. "Thumbs up".
Nice quality T-shirt, comfortable shear, good material. Printing is not as bright colored as expected, but OK. Thanks, I recommend.
Отличо! По размеру подошла. Спасибо!


text:
May 13, 2010 Comments (0) Blog, Securities Fraud
Los Angeles based Westpark Capital fined by FINRA for supervisory failures.
Financial Industry Regulatory Authority (FINRA) recently announced that it has ordered Los Angeles-based Westpark Capital, Inc. to pay a total of $400,000 for supervisory system failures, and has suspended two officers for failing to supervise brokers in two now-closed Long Island branches who churned customer accounts and engaged in unauthorized and unsuitable trading in multiple accounts. The monetary sanction includes a $100,000 fine and $300,000 in restitution to affected customers.
FINRA suspended Westpark's former Chief Compliance Officer, William A. Morgan, for four months in any principal capacity and ordered him to pay a $5,000 fine. Chief Operations Officer Jason S. Stern has been suspended for three months in any principal capacity and fined $20,000.
In related actions, FINRA has barred and/or fined two brokers and a branch manager who were previously employed in Westpark's Long Island branch offices, and has filed a complaint against another former broker involved in the misconduct, charging him with churning accounts and other violations. Two additional former brokers involved have already been barred, by FINRA or the Securities and Exchange Commission, for misconduct at other firms prior to or after their employment with Westpark.
Several of the brokers involved came to Westpark from broker-dealers that had lengthy disciplinary records and that FINRA has expelled from the securities industry, such as Stratton Oakmont, Inc., LH Ross & Co., Salomon Grey Financial Corp. and Continental Broker-Dealer Corp. When Westpark hired them, several of the brokers themselves had histories that included multiple customer complaints and/or disciplinary actions.
In its action against Westpark, Morgan and Stern, FINRA found that between February 2006 and July 2007, the firm failed to establish and maintain an adequate system for supervising its brokers. Among the supervisory system's deficiencies:
· Westpark failed to restrict the activities of certain Long Island brokers and failed to monitor their customer account activities, even though they had disciplinary histories and customer complaints that included unauthorized, unsuitable and excessive trading;
· The firm performed inadequate monitoring of excessive trading, failed to have standards for what constituted excessive trading and failed to prescribe any steps that would be taken if excessive trading were suspected; and
· The firm's system assigned front line supervisory responsibility to branch office managers, even though the Long Island managers were inexperienced or had previously been disciplined for failure to supervise.
· FINRA also found that despite the fact that Westpark had placed all of the brokers in question on "heightened supervision," Morgan and Stern failed to supervise several brokers who committed serious sales practice violations – including unauthorized, unsuitable and excessive trading involving at least 19 customer accounts.
FINRA also found that Morgan and Stern failed to adequately scrutinize the conduct of the Long Island brokers and to address red flags, including disciplinary and employment histories, customer complaints and questionable account activity, such as evidence of excessive trading, a high level of margin and frequent concentration of customer accounts in a single security.
In related actions, FINRA has taken the following actions against a former branch manager and former brokers at Westpark's former Long Island branches:
· Robert A. Bellia, Jr., a former branch manager, was barred permanently from association with any securities firm in a principal capacity and ordered to pay a $10,000 fine. FINRA found that Bellia failed to supervise three Westpark brokers who churned and executed unsuitable and unauthorized trades in at least 12 customer accounts.
· Dale R. Menendez, Jr., a former broker, was barred permanently from the industry by a FINRA Hearing Officer and ordered to pay over $110,000 in restitution to his customers. The Hearing Officer found that Menendez engaged in excessive and unauthorized trading, mischaracterized customer transactions to his firm and failed to appear for testimony during the FINRA investigation of his conduct.
· Michael Quattalaro, a former broker, was barred permanently from the securities industry. FINRA found that Quattalaro churned and engaged in excessively unsuitable trading in two customer accounts and exercised discretion in those accounts without prior written customer authority.
· Chanse K. Menendez, Sr., a former broker, has been charged in a FINRA complaint with excessive trading and churning activity in two customer accounts. The complaint also alleges that Menendez mischaracterized "solicited" trades as "unsolicited" trades in an apparent attempt to conceal his misconduct in those accounts, as well as in a third account. In addition, the complaint alleges that Menendez failed to appear for testimony and provide documents during the FINRA investigation of his conduct. The case is pending.
In concluding the settled proceedings, Westpark, Morgan, Stern, Bellia and Quattalaro neither admitted nor denied the charges, but consented to the entry of FINRA's findings.
If you have questions about investments you made with Westpark Capital and you would like to discuss your litigation options, please call the securities attorneys of The White Law Group at 312-238-9650 for a free consultation.
The White Law Group is a national securities fraud, securities arbitration, and investor protection law firm with offices in Chicago, Illinois and Boca Raton, Florida.
For more information on The White Law Group and the firm's national securities fraud practice, visit https://www.whitesecuritieslaw.com
» broker fraud, California securities attorney, California securities lawyer, FINRA fine, investment fraud, LH Ross & Co., Salomon Grey Financial Corp., Securities Attorney, Securities Lawyer, Westpark Capital, Westpark Capital fine, Westpark Capital FINRA fine, Westpark Capital fraud, Westpark Capital investment losses, Westpark Capital losses, Williams Morgan
» Blog, Securities Fraud » Los Angeles based Westpark Capital fined by FINRA for supervisory failures.
Financial Advisors Role in Preventing Elder Financial Exploitation
Ex-CEO Gets 25 Years For $1.3B Woodbridge Ponzi...
Whiting Petroleum Corp. Investment Losses
Satya Shaw (Satya Brata Shaw) Broker Investigation


A special package of incentives aimed at encouraging first-time exhibitors has boosted participation at IDEX 2011 (International Defence Exhibition & Conference), with 19 local and international firms already confirmed to participate in the 'First-Time Exhibitor Zone' at the show. In addition, a number of prospective debut exhibitors are also in advanced discussions with the IDEX sales team.
Earlier this year, IDEX organisers ADNEC (Abu Dhabi National Exhibitions Company) unveiled a special package for companies making their IDEX debut. This innovation has seen increasing interest from the defence industry and is expected to significantly increase the number of new products and technology on display at IDEX 2011.
The next edition of IDEX, Middle East & North Africa's largest defence show, will be held 20 – 24 February 2011, under the patronage of HH Sheikh Khalifa Bin Zayed Al Nahyan, President of the UAE. In total, more than 900 exhibitors are expected to participate in IDEX 2011, the show's 10th anniversary.
"While our reputation as a premier defence show has been well established over the years with every major player in defence industry in attendance, we want to continue to encourage newer entrants and feature a diverse range of the very best and latest in defence technology. The First-Time Exhibitor Zone was launched to encourage a wider range of companies to become more involved in IDEX 2011 and enable some of the newer or smaller firms to secure exhibition space and put their products on display. The zone aims to increase these firms' exposure on a highly competitive floor, and give them a cost effective platform to stand out amongst the crowd," said His Excellency Ali Saeed Bin Harmal Al Dhaheri, managing director, ADNEC and vice chairman of the IDEX 2011 Higher Committee.


Further cementing Silverstone's reputation as the UK's premier motorcycle circuit, the Northamptonshire track has launched its own bike 'Track Days', providing two-wheeled enthusiasts with the chance to ride in the tyre tracks of MotoGP, World Superbike and British Superbike legends on Silverstone's 1.9 mile International Circuit.
Running out of the Silverstone Wing Pit and Paddock complex, utilised by MotoGP and World Superbike teams, Silverstone Track Days provide riders of all abilities and experience levels the opportunity to develop their track skills, with guidance from ex-MotoGP star Ron Haslam and his team of expert instructors. Donna Ibbott, who has worked with motorcycling brands such as California Superbike School, Ducati and Yamaha, has been brought in to oversee Silverstone's Track Day experiences, bringing a wealth of experience to the new programme.
Street Sport #1 is ideal for first-time riders to track or for those with limited experience. Priced at just £149 per person, offers up to seven 15 minutes sessions on Silverstone's wide track, providing plenty of time and space for riders to get to grips with the circuit, practice their skills and rapidly increase confidence. With Silverstone limiting the number of bikes in each group and promoting a courteous on track environment, participants will receive more personal tuition from the senior instructors on-hand.
Street Sport #2 (£149 per person) aimed at more experienced road and track day riders alike who wish to stretch the legs of their machinery. Participants will have up to seven 15 minute track sessions to enjoy the technically challenging International Circuit all under the guidance of Ron's senior team of instructors.
Ultimate Sport (£195 per person), will be hosted by 'Rocket' Ron Haslam and is designed for confident riders with reasonable track riding experience. Riding clinics run throughout the day, honing advanced skills and taking riding technique to a whole new level. With a maximum of 45 bikes in this group, instructors will focus on the finer elements of track riding, while riders will spend more time out on the circuit with seven 20 minute sessions. In addition, on Sunday 29 July, Ron Haslam will also be joined by a special guest instructor – three times British Superbike Champion John Reynolds.
All Silverstone bike Track Day riders will be treated to an access-all-areas guided tour of Silverstone's new Pit and Paddock complex – The Wing - including a photo opportunity on the iconic MotoGP™ podium. All-day refreshments are included. To celebrate the launch of Silverstone's bike Track Days, anyone booking before 29 June will automatically be entered into a prize draw to win a pair of Roving Grandstand tickets for the Sunday of Silverstone's round of the FIM Superbike World Championship (03 – 05 August).


Turkey's PP market has been steadily moving lower since early March and the downward trend gained speed in the past few weeks as per the pricing service of ChemOrbis. As for the near term, expectations about further decreases are still in place on the buyers' side.
Regular PP suppliers from Europe and the Middle East had approached the Turkish PP market with price hikes for March. However, they all had to step back soon after their price hike announcements due to resistance on the buyers' side. The emergence of Iranian cargoes at competitive prices also played a major role in the downward adjustments seen on a large scale in the import PP market.
Iranian cargoes at competitive prices delivered to buyers' plants in Gaziantep were found attractive by buyers throughout the first half of March. When Iranian suppliers moved to the sidelines for the Newroz holiday in the third week of March, Iranian offers were absent for a short while. As homo-PP offers re-emerged from the country this week, they stand $20-40/ton below the pre-holiday levels while the total decrease with respect to the beginning of the month is $50-60/ton. For the days ahead, buyers are expecting to see more offers from the region at much lower levels.
Homo PP offers from the Middle East have been revised down as well. Buyers reported receiving offers from two major suppliers with $40/ton decreases recently while these offers stand at least $80/ton below early March levels. A global producer reduced its list prices for Saudi homo PP by $50/ton when compared to mid-March. "We are receiving bids well below $1500/ton but we don't want to accept them. We believe that PP prices will bottom out in April and demand will start to pick up based on the situation in Asia," said a source from the producer.
A regular South European producer sold out their March cargoes in the first half of the month at prices €20-25/ton below their initial offers. Now, more PP offers are awaited from Europe at competitive prices. "Should propylene contracts settle lower in Europe, more offers below €1250/ton may prevail in the Turkish market," say buyers. The lower parity at 1.29 may also contribute to the competitiveness of European origins in April, argue some players.
The local market has been easing steadily as well with locally held homo PP losing $70/ton in total since the beginning of March according to ChemOrbis. A large portion of this decrease has occurred in the past few weeks. Given the persistent lack of demand and retreating import prices, much lower levels continue to be speculated in the local market.


text:
Elliot Lee
The Results of my Startup School 2013 Notes experiment
10/20/2013 by Elliot Lee | Filed in Geek Stuff, Ideas, Midnight Messages | 1 comment
The Startup School 2013 Notes are here: https://bitly.com/susnotes
Below, I reveal the story behind the Notes and the results of my experiment.
A Brief Summary of my Formative Years: The Connected Mobile Revolution
When I was 12, I was flipping through a tech magazine when I spotted the Cybiko. I became obsessed, eventually purchasing multiple Cybiko devices and learning BASIC and C in order to develop Cybiko apps and games. I spent countless hours involved in the nascent Cybiko Community; on April 21, 2001, I registered my first domain name: 4Cybiko.com (the site is long gone now). The Cybiko sparked my interest in wireless, collaborative computing and over the next few years, my passion for connecting mobile devices only grew. [1]
When the iPhone was released in 2007, I was an intern at Google Santa Monica. On launch day, I walked over to the Apple Store and stood in line for one hour to pick up the original iPhone. With 4 GB flash storage, a 2 MP camera, and $499 price point, it was by far the most powerful and expensive phone I'd ever owned. It replaced my Nokia flip phone. But the specs didn't matter one iota. The real magic, to me, came from just three things: the massive touchscreen, the wireless capabilities, and the software.
I attended WWDC 2009 on a student scholarship. That year, I discovered the immense power of SubEthaEdit (SEE), a collaborative text editor for Mac. At that time, Google Docs didn't support real-time collaboration, so SEE was truly a leap into the future. But most importantly — and this is something that Google Docs still doesn't have today — it was easy to make documents public and easily discover nearby docs. At WWDC, the audience used it to collaboratively take notes on all of the sessions. This happened on an entirely grassroots basis: there was no official mention of it by Apple or anyone else.
And the notes that were produced were simply brilliant.
Since SEE is Mac-only, WWDC is one of those rare opportunities for it to truly reach critical mass. With SEE, I could see a glimpse of the future. Unfortunately, the developers of SEE never intended it to take it beyond the Mac, and it hasn't been updated since 2011. [2]
I have a hypothesis: Improved collaborative notes will enable people to communicate more broadly, deeply, and effectively.
Google Docs partly fulfills my vision, but it's missing several key components, the most important of which is discoverability. It's already somewhat easy to take notes and make them public. But it should also be incredibly easy to find relevant notes that nearby people are creating.
That takes us to present day. Startup School 2013: Y Combinator's annual event for hackers and other startup folks.
It was just past midnight the night before SUS2013 when I decided to make the Google Doc. It would be an experiment. A way to test my hypothesis.
Startup School 2013 Notes — Revision #0
A key aspect of my experiment is that the doc would be world-writable. During Startup School, anyone could find the doc, view it, and edit any aspect of it. Every person in the world effectively had "admin" rights and could change anything they wanted. (Of course, Google Docs has a superb Revision history feature that makes this relatively safe.)
As an explainer, I wrote at the top: "This document is a work-in-progress and may change continuously. It's also an experiment, so it might turn out to be utterly useless, or otherwise go horribly wrong."
I also dropped in this meme:
Deal with it meme
I felt this would help set the tone of the experiment and encourage everyone to have fun. Life's too short to be a downer, so even if people do things I don't like, I'll be the optimist and turn the other cheek.
To track click stats, I created a Short URL. You can view the stats for this link here: https://bitly.com/susnotes+
Did You Know? Appending "+" to the end of any bit.ly URL enables you to see the Short URL's destination URL and also view some cool stats.
I posted the link on the Startup School 2013 Facebook group, which had about 800 members. I had no idea what proportion of the SUS2013 population that represented; I later learned that the event had around 1,700 attendees.
At the event, I met Paul Graham and told him about what I'd done.
Paul Graham and Elliot Lee
He warned me that vandalism could be a problem. We discussed it for a bit. I told him that, with an audience like Startup School attendees, it's not the same as something that the whole world is interested in. People are self-selecting and the people here are just plain awesome. [3]
A few dozen people had hopped on to my doc, though less than ten of them chose to publicly identify themselves. We were off.
Startup School is a firehose of information and stories, so it's a pretty good use case for this kind of thing. One person, by him- or her-self, can't take very good notes. But a few people, working together, can cover it pretty well; and also make it interesting by injecting some of their own personal biases. This isn't an encyclopedia. There are no rules. Have at it!
Snag #1: An Accident Sends People to a Broken Link
At some point in the early afternoon, an anonymous user broke the Short URL by adding an extra letter to it. Whoops.
Other users pointed out that the URL was broken, and then it was removed altogether — all before I had a chance to even notice that it was broken!
I went back in the Revision history to investigate how it happened; then I copy and pasted the working link from a previous revision.
Not too bad. And I was impressed with the way other note-takers handled the issue before it even came to my attention.
Snag #2: I didn't like the way someone was changing the document formatting
When I first created the doc, I had a vision in mind for how it should look: clean, simple, straightforward.
At 3:12 PM, an anonymous editor started making huge, sweeping, dramatic changes to the formatting of my doc. He shifted things around to be in a different order. He moved the "Deal with it" meme to the top left, tearing it apart from the context that I intially associated it with. He made "Welcome!" into a headline, and created a pseudo-two-column effect by putting lots of spaces between text on the left and right sides. He made Y Combinator's Twitter URL and the #startupschool hashtag far more prominent, and added a couple links. The humble intro I had included at the top of the doc suddenly became labeled a "DISCLAIMER".
I didn't like it.
So I decided to try something: I changed the Sharing settings so that "Anyone on the Internet can find and comment" instead of "…find and edit".
Instead of permitting the free-for-all, I'd manually add collaborators. They wouldn't show up as anonymous on Google's system. People who hadn't been added yet could still add Comments, and thus interact with our little note-taking community.
Almost immediately, people started complaining!
Complaints appear
I was fascinated. And after a little while, I realized that the formatting wasn't so bad after all. It just wasn't mine. But that's not a good reason to dislike it.
So I re-opened access.
And nothing bad happened. In fact, the opposite occurred: the doc became even more fun and lively! At one point, we had nearly 10 people all editing the document simultaneously.
Random screenshot from my iPhone of attendees having fun
I had been trying to impose my own structure, but there was nothing particularly amazing about what I had initially laid out. So in this case, I learned to be even more open-minded. When people are given creative freedom, they may go in a direction that feels weird to me at first. But sometimes it can be good to run with it.
Surprise: Fun use of color
Someone with a bit of design sense went through and added the use of color in a few places.
This was neat and definitely not something I would have done myself.
Sidenote: I would LOVE to credit the person(s) who is behind these creative additions, but the Google Docs interface makes it prohibitively tedious and/or impossible to do a "blame" for individual changes. If anyone wants additional credit in this post, I'm more than happy to give it. Just let me know!
Here are some examples of cool stylistic elements that were added to the doc:
Styled twitter text
Colorful Google
Chase Adam quote
Diane Greene quote
That's not to say that all the notes were universally high-quality. In fact, some of it was hilariously bad. Arguably, some of what's still in there right now is hilariously bad. But I think the quality is high enough that the content is still immensely useful.
In the end, my experiment succeeded. We created some great content, connected a community, and had a lot of fun doing it.
All around the world, there are thousands of missed opportunities every single day— simply because people don't have the right tools that would enable them to discover, connect, and collaborate in real-time. Today's wireless mobile devices are fully capable of realizing my vision, but the software just doesn't exist yet.
Google Docs enables a rough "poor-man's version" of what I really want, but it's only halfway there. Discoverability is still hard. Actually USING the app, on an iPhone for example, is still hard. It's not great on mobile and the offline support is still sketchy.
And– despite being operated by Google– it doesn't yet scale quite far enough:
Some tools are unavailable
What did I miss in my experiment? Could this be the beginning of a larger trend in human interaction?
I'm the kind of entrepreneur who's always bursting with 100 different ideas. I'm constantly refining, developing, and discussing them. And so far, I still don't have enough people to discuss them with.
This post made a long story very short, and left out lots of details. I live in the Mission District of San Francisco. If you're local, let's meet up and hack. Here are high-level labels on a few of the ideas I'm kicking around or developing right now:
(1) Real-Time Mobile Collaboration
– My vision here is roughly a little bit like Twitter + Google Docs + mobile first.
(2) An Easy Ad Network for the Long Tail
– Clean ads for normal people.
(3) A mobile game that evolves, incessantly surprises players, and fosters a sense of community
– Updated remotely with new code deployed daily.
If you've made it this far, you might be exactly the hacker I want to meet. Get in touch! I've been on Twitter a good bit lately.
[1] Cybiko turned out to be a commercial failure. The next several years were the dark ages of mobile computing. I dabbled with everything from Palm to Pocket PC, and it was all crap. Disillusioned by lack of the mobile revolution I so desperately anticipated, I turned to web development while I was in high school and my first couple years of college at USC, where I studied Computer Engineering.
[2] So I was pretty excited when Google acquired EtherPad later that year, hoping that they'd take spontaneous collaborative note-taking to the next level. It took a couple years for them to get the technology integrated, but they eventually did it.
[3] If I wasn't dependent on Google Docs, I'd add some simple moderation tools to discourage potential vandals, on an as-needed basis. But with Startup School attendees being so awesome, it's really a very low priority. Don't optimize too early.
Thanks to Robert Scoble for reading a draft of this.
One Response to "The Results of my Startup School 2013 Notes experiment"
RalfLippold says:
Thanks a lot Elliot – it's been a hefty work you shared with the crowd. Following the livestreaming around midnight our time (Dresden, Germany) and jotting down notes, as well as tweeting certainly showed myself, that it is more fulfilling to do it collaboratively!
Thanks for setting such an example!
Theme Sturd by Just Free Themes.
© 2022 Elliot Lee. All Rights Reserved.


From time to time, I have a crush on blue. Sometimes combined with red, or green, or mustard. Blue is a great colour. And whenever I have this blue-craze, I re-discover the beauty of a pecock feather. It is a perfect colour combination, even if you don't use the exact motifs from the feathers. In today's pin the mood, I've chosen everything peacock-y from my pinboards.
Do you like these colours? Have you ever worn a peacock makeup?
Pinterest is a great source of inspiration for most of us. In the section "pin the mood" I will post mini pinboards. Today's mood is soft and foggy, and I added a pinch of halloween as well. The city is all gray, that's why I decided to put the sparkly nails on the board. We need a bit of light on us, don't we? 🙂 The city in the picture is New York. I've never been there, but looks kinda tempting in this photo.


Companies in the same industry as Occidental College, ranked by salary.
Pay ranges for employees at Occidental College by degree.
How much does Occidental College pay?
Occidental College pays its employees an average of $66,475 a year. Salaries at Occidental College range from an average of $46,119 to $95,043 a year. Occidental College employees with the job title Professor, Postsecondary / Higher Education make the most with an average annual salary of $104,838, while employees with the title Education Administrator, Preschool or Child Care Center Program make the least with an average annual salary of $50,104.


text:
Feds to launch contempt case against Sheriff Arpaio
Nicole Garcia's Reports
PHOENIX (AP) -- Prosecutors said Tuesday they will charge Sheriff Joe Arpaio with criminal contempt-of-court for defying a judge's orders to end his signature immigration patrols in Arizona, exposing the 84-year-old lawman to the possibility of jail time and clouding his political future as he seeks a seventh term.
The announcement in federal court sets in motion criminal proceedings against the sheriff less than a month before Election Day and comes as he has taken on a prominent role on the national political stage in 2016, appearing alongside Republican presidential nominee Donald Trump on several occasions.
Arpaio has acknowledged violating the order to stop the immigration patrols but insists his disobedience wasn't intentional.
U.S. District Judge Murray Snow previously recommended criminal contempt charges against Arpaio but left it up to federal prosecutors to actually bring the case.
Prosecutor John Keller said in court that the government will bring a misdemeanor contempt charge, with the next step being a court filing, possibly in the next day, that's akin to a criminal complaint.
Arpaio could face up to six months in jail if convicted of misdemeanor contempt.
Arpaio lawyer Mel McDonald said the sheriff will not be arrested and no mugshot will be taken. He will plead not guilty by court filing and hopes to prevail before a jury. Arpaio did not attend Tuesday's court hearing.
"We believe the sheriff, being an elected official, should be judged by his peers," McDonald said.
About 75 protesters gathered outside the federal courthouse. They wore shirts reading "Arrest Arpaio" and inflated a huge blow-up caricature of Arpaio dressed in a jail uniform.
Authorities were still considering a possible obstruction of justice charge against Arpaio that could result in more severe punishments, including losing his job.
The contempt case also focused on Arpaio's actions in carrying out what critics said was a secret investigation of Judge Snow in the case. Snow demanded Arpaio and the aide turn over 50 hard drives that were part of the probe, but they ignored the order.
Keller said the Justice Department cannot prosecute those allegations within the criminal contempt case because the one-year statute of limitations had run its course. But federal authorities will investigate the allegation as a possible obstruction of justice charge, Keller said.
Obstruction of justice is a felony that carries a punishment of 15 months to 37 months in prison and would bar Arpaio from office if he is convicted. Prosecutors did not give a timetable on when they would decide whether to bring an obstruction charge.
Prosecutors are also considering a possible obstruction charge against two Arpaio aides and a former attorney suspected of concealing nearly 1,500 IDs in an investigation into whether officers pocketed items during traffic stops.
The criminal contempt charge involving the immigration patrols will mark yet another defeat for the sheriff who became a national political figure over the past decade by aggressively carrying out immigration patrols and attention-getting endeavors. Among other things, he made prisoners wear pink underwear, put them on chain gangs and confined them in tents in stifling desert heat.
Following complaints by Latino drivers about racial profiling, a judge demanded that Arpaio stop the enforcement efforts. He was later found to have violated the order for 17 months, causing it to turn into a contempt of court case.
County taxpayers have shelled out $48 million so far in the profiling case, and the costs are expected to reach $72 million by next summer. The expenses and Arpaio's legal woes have become a centerpiece of his Democratic opponent's campaign, but they have not stopped Arpaio from amassing $12 million in campaign cash, most of it coming from out-of-state donors.
"No one is above the law, and today's announcement in court epitomizes the strength of the judicial system," Democratic opponent Paul Penzone said.
Sheriff Joe Arpaio released the following statement:
"First and foremost, it is clear that the corrupt Obama Justice Department is trying to influence my re-election as Sheriff of Maricopa County. It is no coincidence that this announcement comes 28 days before the election and the day before early voting starts. It is a blatant abuse of power and the people of Maricopa County should be as outraged as I am.
"As your elected Sheriff, my job is to enforce the law. Because enforcing illegal immigration laws is not politically correct, within the first 100 days of taking office, Obama put then-Attorney General Eric Holder in charge of pursuing a 'racial profiling' case against me - among other trumped up, failed legal pursuits - and eight years later they're still pursuing the case.
"Now, with Obama on his way out of office, he and DOJ officials know this is their last shot at taking me down. This highly unusual charge of criminal contempt against an elected local official should be seen for what is really is: a political maneuver by a corrupt Administration to damage me politically and a continuation of its War on Cops.
"There is a delicious irony here: Hillary Clinton can jeopardize national security and destroy evidence; Lois Lerner can violate the civil rights of thousands of citizens; Eric Holder can be held in contempt of Congress; and none of them faced any consequences. But someone like me who dares enforce the Rule of Law is held to a much different standard.
"While the actions of this administration are deplorable, I will fight this case tooth and nail because I know these charges are rubbish. In the end, I am confident I will be exonerated.
"Let me be clear: I am running for a seventh term as your Sheriff and I believe the voters of this county will stand with me in this fight."
Statement from Paul Penzone:
"No one is above the law, and today's announcement in court epitomizes the strength of the judicial system. The federal courts have been responsible and ethical in the oversight of these criminal violations by Sheriff Arpaio. I have utmost confidence that our voters will make the right decision to repair the damage that has been done to our community."
Vandals on the loose in central Phoenix, leaving shattered car windows and concerned residents in their wake


Use the SPX range of X-ray inspection and combination X-ray and weighing systems at any stage in your process to safely, reliably and accurately inspect 100% of your products for foreign bodies, product defects, process and packaging problems. The SPX 420 improves process efficiency and saves line space as you can inspect and weigh each product simultaneously.
Digitally controlled, self-cooled 300w X-ray generator, computer controlled from 45w up to 300w.


He was the last of the "log cabin" presidents.
His assassin shot him in the back and arm. He died in 1881 after serving only 200 days as 20th.
His inept doctor was possibly responsible for his death, as history says he could have survived his wounds.
His death helped launch the crude invention of the metal detector by Alexander Graham Bell.
Robert Todd Lincoln, first son of Abraham Lincoln, serving as this president's Secretary of War was with 20th at the moment the assassin's bullets struck.
LOL…..you are way too tricky!!
I guess they used the metal detector to try to locate the bullet. I wonder, was his doctor really inept or does it just appear that way with all of the advances in medicine we have had?
If you google the events and the doctor you will see this doctor was inept, selfish and unwilling to listen to others. The metal detector failed to find the bullet, as was later discovered, the president was laying on a bed that had metal springs…unusual at that time. Fascinating and tragic history moment.


Passengers travelling via EuroAirport in transit need to pass the security checks again for their connecting flight.
If you have a valid boarding card for your onward flight and your baggage has been checked through to the next destination, please exit into the arrivals hall via one of the normal customs exits and then proceed directly to the security checks on the 4th floor.
If you do not yet have a boarding card for your onward flight or your baggage needs to be rechecked, please retrieve your baggage, exit into the arrivals hall via one of the normal customs exits and then proceed to the check-in hall on the 3rd floor.
Please note: Any duty-free items purchased at your original departure point may only be taken back on board as hand luggage at EuroAirport if they are in a plastic bag sealed by the duty-free seller.


The IR33 universal electronic controllers replace the IR32 range, offering additional features such as auto-tuning PID control and real time clock for managing working cycles and logging alarms. Temperature only versions are available with NTC, PTC or PT1000 inputs, whilst the universal versions can also accept PT100, J and K type thermocouples, DC Voltage and DC mA inputs. The controllers feature a simple user interface, two independent control loops and are housed in a compact panel mounting enclosure. All versions can be connected to a network for monitoring and programming, using the optional RS-485 serial interface. The IR33 controllers are powered from 12 to 24Vac/dc or 115-230Vac and optional transformers are available for powering the low voltage controllers from 110Vac or 230Vac.


text:
Interview: Aquatic invaders and ecological networks
Jan 27, 2015 | Environment, Young Scientists
Danielle Haak, who recently completed her PhD from the Nebraska Cooperative Fish and Wildlife Research Unit and the School of Natural Resources at the University of Nebraska-Lincoln, has won the annual Peccei Award for her outstanding research as part of the 2014 Young Scientists Summer Program (YSSP) in IIASA's Advanced Systems Analysis research program.
Could you tell me a bit about yourself? Where are you from and what do you study?
I grew up in Milwaukee, Wisconsin (USA), and it was there I fell in love with the natural world. As a kid, my family and I spent weekends boating on Lake Michigan, and I've always been fascinated by lakes and the hidden world beneath the water's surface. As an undergraduate, I spent a few summers in northern Wisconsin at a limnology research station, and this is where I realized I could actually make a career out of this fascination! I went on to get a BSc in Wildlife Ecology, a MSc in Biological Sciences, and I recently defended my PhD dissertation that focused on the energetics and habitat requirements of the invasive freshwater Chinese mystery snail. In general, I'm interested in aquatic invasive species and how their introduction affects ecosystem structure, functioning, and resilience.
How did you get interested in this subject?
I was drawn to aquatic invasive species during my undergraduate research. My first independent research project was on invasive crayfish in a northern Wisconsin lake; in addition to out-competing the native crayfish population, the invasive species suffered from a fungal disease outbreak, and we wanted to understand its prevalence throughout the lake. I also worked as a technician on a whole-lake study researching the efficacy of manual removal of an invasive crayfish species from another lake. It was a long-term project that successfully reduced the invasive rusty crayfish population enough that the native crayfish population was able to recover, and the entire lake underwent a drastic physical change as a result. These large-scale dynamics have always been appealing to me, and I knew it was something I wanted to pursue in my career. When I started my PhD at the University of Nebraska-Lincoln, our research group had just started a number of side projects on the Chinese mystery snail, and there was an obvious gap in our scientific understanding of the species; thus, it made sense to take advantage of this opportunity!
What was the question you were trying to answer in your YSSP research project?
My YSSP project built upon my dissertation topic but went in a slightly different direction. My YSSP supervisor, Dr. Brian Fath, and I wanted to utilize the already-established methods of social and ecological network analyses, but in a way that hadn't been done before. Ultimately, we had two main questions. First, we wanted to investigate how the social dynamics of ecosystems can be integrated into ecological network analysis. And second, we wanted to use network analysis to analyze the ecological effects and movement of the Chinese mystery snail in the southeast region of Nebraska.
What did you find?
Because there were a few parts to this research, we had a number of different results. First, we were able to create directed networks of how anglers and boaters moved among a network of flood-control reservoirs. We also developed ecological networks specific to each of the 19 reservoirs included in our study. Both of these findings were relevant by themselves, but the cool part was how we combined them. We adapted the framework of infectious disease network modeling to simulate what would happen within the first 25 years after a hypothetical introduction. The human movements connecting reservoirs were equivalent to a disease's transmission rate, and the individual population growth of the snail within each reservoir after an introduction was like a disease's incubation time leading up to a threshold where that reservoir then became contagious. We started with 5 infected and contagious reservoirs, and after 25 years only 5 of the 19 reservoirs did not have the Chinese mystery snail in it. Finally, we identified three of the already-infected reservoirs where preventing snails from being transported out of them would be most critical as well as two susceptible reservoirs where preventing introduction of the snails would be most beneficial.
Chinese Mystery Snail. Photo: Wisconsin Department of Natural Resources, Doug Jensen
Why is this research important for policy or society?
Our preliminary results demonstrated that social and ecological network models can be used in tandem, which has the potential to address a number of complex policy and management issues. Additionally, being able to prioritize reservoirs based on how effective prevention efforts would be allows managers to focus their limited resources in places they would get the best return on their investment. I believe there is also a great deal of potential in using this combined model approach to assess the spread of other aquatic invasive species of concern as well as other types of disturbances.
How are you planning to continue this research when you return to IIASA?
I would like to work with Dr. Fath on refining some of my individual ecological network models, and possibly incorporating some of the additional social data that's available to us. We also discussed possibly using the approach to look at other questions related to aquatic invasive species, but in different geographical regions and possibly with different software. One of the best parts of this project was coming up with so many questions on where we could go next, and I really enjoyed working with Dr. Fath and gaining a new perspective on the questions that interest me.
How did your time at IIASA affect your PhD research?
My time at IIASA refreshed my love of the scientific process, and I loved the flexibility in adjusting my project as I learned more and developed new questions. Ultimately, I ended up with an additional chapter for my dissertation and came home with a mostly-completed draft.
What was your favorite aspect of the YSSP and IIASA?
I loved so much about YSSP and working at IIASA, but the best part was probably the ability to meet other brilliant scientists and students from around the world. In addition to thought-provoking discussions on science and research, we also had some incredible discussions on life in other countries with drastically different cultures. The other students made the entire summer even better, and I'm so happy I was able to participate in such an incredible experience. IIASA has a truly unique work environment, and everyone made us feel right at home. It really was a dream come true, and I'm so excited about the opportunity to return and pick up where I left off. The only thing missing will be my fellow YSSPers! I wish we could all come back every summer!
What was your favorite moment of the summer?
I think my favorite experience was the end of summer workshop and dinner and dance that followed. I was so impressed during the initial presentations and it was great to hear about all the progress that was made in the short three months. Celebrating this progress with a night of dancing and dining was just the perfect ending to a great summer. It was a bittersweet farewell, but I think it cemented our friendships and was a great capstone to an already dreamlike experience!
Danielle Haak (right) and fellow YSSPer Adriana Reyes, at the end-of-summer awards ceremony.