text:
from pyvx.inc import vx
from pyvx.types import VxError
from pyvx import types

# xxx: move some of the implementations to the backend?

class attribute(object):

    def __init__(self, enum, ctype, default=None):
        self.enum = enum
        if hasattr(ctype, 'ctype'):
            ctype = ctype.ctype
        self.ctype = ctype
        self.default = default

    def __get__(self, instance, owner):
        n = '_' + self.name
        if hasattr(instance, n):
            return getattr(instance, n)
        if hasattr(owner, n):
            return getattr(owner, n)
        return self.default

    def __set__(self, instance, value):
        setattr(instance, '_' + self.name, value)

class VxObjectMeta(type):

    def __new__(cls, name, bases, attrs):
        attributes = {}
        for b in bases:
            if hasattr(b, '_attributes'):
                attributes.update(b._attributes)
        for n, a in attrs.items():
            if isinstance(a, attribute):
                a.name = n
                attributes[a.enum] = a
        cls = type.__new__(cls, name, bases, attrs)
        cls._attributes = attributes
        return cls

class VxObject(object):
    __metaclass__ = VxObjectMeta

def exception2errno(e):
    if hasattr(e, 'errno'):
        return e.errno
    return vx.FAILURE

def _log_exception(e):
    import traceback
    log = '\n' + traceback.format_exc()
    if hasattr(e, 'ref') and e.ref is not None:
        e.ref.add_log_entry(e.errno, log)
    else:
        print log

class return_errno(object):
    @staticmethod
    def hanlde(e):
        _log_exception(e)
        return exception2errno(e)

class return_none(object):
    @staticmethod
    def hanlde(e):
        _log_exception(e)
        return None

class return_errno_and_none(object):
    @staticmethod
    def hanlde(e):
        _log_exception(e)
        return exception2errno(e), None

class reraise(object):
    @staticmethod
    def hanlde(e):
        raise e

class api(object):

    def __init__(self, name, on_exception=return_errno, returns='status'):
        self.name = name
        self.on_exception = on_exception
        self.returns = returns

    def __call__(self, fn):
        if not hasattr(fn, 'apis'):
            fn.apis = []
        fn.apis.append(self)
        return fn

class capi(object):

    def __init__(self, cdecl):
        self.cdecl = cdecl

    def __call__(self, fn):
        if not hasattr(fn, 'capis'):
            fn.capis = []
        fn.capis.append(self)
        return fn

##############################################################################

class Reference(VxObject):
    _type = vx.TYPE_REFERENCE

    count = attribute(vx.REF_ATTRIBUTE_COUNT, vx.TYPE_UINT32, 1)
    type = attribute(vx.REF_ATTRIBUTE_TYPE, vx.TYPE_ENUM, vx.TYPE_REFERENCE)

    def query(self, attribute): # xxx: move implementation to backend
        try:
            return getattr(self, self._attributes[attribute].name)
        except KeyError:
            msg = 'Attribute %s does not exist' % attribute
            raise types.InvalidParametersError(msg, self)

    def new_handle(self):
        h = vx.ffi.new_handle(self)
        self.context.keep_alive.append(h)
        return h

    def del_handle(self, ptr):
        self.context.keep_alive.remove(ptr)

    def add_log_entry(self, status, message):
        if status != vx.SUCCESS:
            print 'LOG:', status, self, message

    def set_attribute(ref, attribute, value):
        raise NotImplementedError

@api('QueryContext', on_exception=return_errno_and_none, returns='status, value')
@api('QueryImage', on_exception=return_errno_and_none, returns='status, value')
@api('QueryKernel', on_exception=return_errno_and_none, returns='status, value')
@api('QueryGraph', on_exception=return_errno_and_none, returns='status, value')
@api('QueryNode', on_exception=return_errno_and_none, returns='status, value')
@api('QueryParameter', on_exception=return_errno_and_none, returns='status, value')
@api('QueryScalar', on_exception=return_errno_and_none, returns='status, value')
@api('QueryReference', on_exception=return_errno_and_none, returns='status, value')
@api('QueryDelay', on_exception=return_errno_and_none, returns='status, value')
@api('QueryLUT', on_exception=return_errno_and_none, returns='status, value')
@api('QueryDistribution', on_exception=return_errno_and_none, returns='status, value')
@api('QueryThreshold', on_exception=return_errno_and_none, returns='status, value')
@api('QueryMatrix', on_exception=return_errno_and_none, returns='status, value')
@api('QueryConvolution', on_exception=return_errno_and_none, returns='status, value')
@api('QueryPyramid', on_exception=return_errno_and_none, returns='status, value')
@api('QueryRemap', on_exception=return_errno_and_none, returns='status, value')
@api('QueryArray', on_exception=return_errno_and_none, returns='status, value')
def query(ref, attribute):
    """ Returns status """
    return vx.SUCCESS, ref.query(attribute)

@capi('vx_status vxQueryContext(vx_context context, vx_enum attribute, void *ptr, vx_size size)')
@capi('vx_status vxQueryImage(vx_image image, vx_enum attribute, void *ptr, vx_size size)')
@capi('vx_status vxQueryKernel(vx_kernel kernel, vx_enum attribute, void *ptr, vx_size size)')
@capi('vx_status vxQueryGraph(vx_graph graph, vx_enum attribute, void *ptr, vx_size size)')
@capi('vx_status vxQueryNode(vx_node node, vx_enum attribute, void *ptr, vx_size size)')
@capi('vx_status vxQueryParameter(vx_parameter param, vx_enum attribute, void *ptr, vx_size size)')
@capi('vx_status vxQueryScalar(vx_scalar scalar, vx_enum attribute, void *ptr, vx_size size)')
@capi('vx_status vxQueryReference(vx_reference ref, vx_enum attribute, void *ptr, vx_size size)')
@capi('vx_status vxQueryDelay(vx_delay delay, vx_enum attribute, void *ptr, vx_size size)')
@capi('vx_status vxQueryLUT(vx_lut lut, vx_enum attribute, void *ptr, vx_size size)')
@capi('vx_status vxQueryDistribution(vx_distribution distribution, vx_enum attribute, void *ptr, vx_size size)')
@capi('vx_status vxQueryThreshold(vx_threshold thresh, vx_enum attribute, void *ptr, vx_size size)')
@capi('vx_status vxQueryMatrix(vx_matrix mat, vx_enum attribute, void *ptr, vx_size size)')
@capi('vx_status vxQueryConvolution(vx_convolution conv, vx_enum attribute, void *ptr, vx_size size)')
@capi('vx_status vxQueryPyramid(vx_pyramid pyr, vx_enum attribute, void *ptr, vx_size size)')
@capi('vx_status vxQueryRemap(vx_remap r, vx_enum attribute, void *ptr, vx_size size)')
@capi('vx_status vxQueryArray(vx_array arr, vx_enum attribute, void *ptr, vx_size size)')
def c_query(ref, attribute, ptr, size):
    value = ref.query(attribute)
    a = ref._attributes.get(attribute)
    if size != vx.ffi.sizeof(a.ctype):
        raise VxError("Bad size %d in query, expected %d\n" % (
                      size, vx.ffi.sizeof(a.ctype)), ref)
    ptr = vx.ffi.cast(a.ctype + "*", ptr)
    if isinstance(value, VxObject):
        ptr[0] = value.new_handle()
    else:
        ptr[0] = value
    return vx.SUCCESS

@api('SetContextAttribute')
@api('SetImageAttribute')
@api('SetKernelAttribute')
@api('SetGraphAttribute')
@api('SetNodeAttribute')
@api('SetThresholdAttribute')
@api('SetConvolutionAttribute')
@api('SetMetaFormatAttribute')
def set_attribute(ref, attribute, value):
    return ref.set_attribute(attribute, value)

@capi('vx_status vxSetContextAttribute(vx_context context, vx_enum attribute, void *ptr, vx_size size)')
@capi('vx_status vxSetImageAttribute(vx_image image, vx_enum attribute, void *out, vx_size size)')
@capi('vx_status vxSetKernelAttribute(vx_kernel kernel, vx_enum attribute, void *ptr, vx_size size)')
@capi('vx_status vxSetGraphAttribute(vx_graph graph, vx_enum attribute, void *ptr, vx_size size)')
@capi('vx_status vxSetNodeAttribute(vx_node node, vx_enum attribute, void *ptr, vx_size size)')
@capi('vx_status vxSetThresholdAttribute(vx_threshold thresh, vx_enum attribute, void *ptr, vx_size size)')
@capi('vx_status vxSetConvolutionAttribute(vx_convolution conv, vx_enum attribute, void *ptr, vx_size size)')
@capi('vx_status vxSetMetaFormatAttribute(vx_meta_format meta, vx_enum attribute, void *ptr, vx_size size)')
def c_set_attribute(ref, attribute, ptr, size):
    a = ref._attributes.get(attribute)
    if a is None:
        msg = 'Attribute %s does not exist' % attribute
        raise types.InvalidParametersError(msg, ref)
    if size != vx.ffi.sizeof(a.ctype):
        raise VxError("Bad size %d in set attribute, expected %d\n" % (
                      size, vx.ffi.sizeof(a.ctype)), ref)
    ptr = vx.ffi.cast(a.ctype + "*", ptr)
    return ref.set_attribute(attribute, ptr[0])

@api('ReleaseContext')
@api('ReleaseImage')
@api('ReleaseKernel')
@api('ReleaseGraph')
@api('ReleaseNode')
@api('ReleaseParameter')
@api('ReleaseScalar')
@api('ReleaseDelay')
@api('ReleaseLUT')
@api('ReleaseDistribution')
@api('ReleaseThreshold')
@api('ReleaseMatrix')
@api('ReleaseConvolution')
@api('ReleasePyramid')
@api('ReleaseRemap')
@api('ReleaseArray')
def release(ref):
    return vx.SUCCESS

@capi('vx_status vxReleaseContext(vx_context *context)')
@capi('vx_status vxReleaseImage(vx_image *image)')
@capi('vx_status vxReleaseKernel(vx_kernel *kernel)')
@capi('vx_status vxReleaseGraph(vx_graph *graph)')
@capi('vx_status vxReleaseNode(vx_node *node)')
@capi('vx_status vxReleaseParameter(vx_parameter *param)')
@capi('vx_status vxReleaseScalar(vx_scalar *scalar)')
@capi('vx_status vxReleaseDelay(vx_delay *delay)')
@capi('vx_status vxReleaseLUT(vx_lut *lut)')
@capi('vx_status vxReleaseDistribution(vx_distribution *distribution)')
@capi('vx_status vxReleaseThreshold(vx_threshold *thresh)')
@capi('vx_status vxReleaseMatrix(vx_matrix *mat)')
@capi('vx_status vxReleaseConvolution(vx_convolution *conv)')
@capi('vx_status vxReleasePyramid(vx_pyramid *pyr)')
@capi('vx_status vxReleaseRemap(vx_remap *table)')
@capi('vx_status vxReleaseArray(vx_array *arr)')
def c_release(ref):
    obj = vx.ffi.from_handle(vx.ffi.cast('void *', ref[0]))
    obj.del_handle(ref[0])
    ref[0] = vx.ffi.NULL
    return vx.SUCCESS

##############################################################################

class Context(Reference):
    _type = vx.TYPE_CONTEXT

    vendor_id = attribute(
        vx.CONTEXT_ATTRIBUTE_VENDOR_ID, vx.TYPE_UINT16, vx.ID_DEFAULT)
    version = attribute(
        vx.CONTEXT_ATTRIBUTE_VERSION, vx.TYPE_UINT16, vx.VERSION)
    unique_kernels = attribute(
        vx.CONTEXT_ATTRIBUTE_UNIQUE_KERNELS, vx.TYPE_UINT32)
    # FIXME: ...

    keep_alive_contexts = [] # FIXME: use dict with reference counts

    def __init__(self):
        self.keep_alive = [] # FIXME: replace we reference counting dict
        self.context = self

    def new_handle(self):
        h = vx.ffi.new_handle(self)
        self.keep_alive_contexts.append(h)
        return h

    def del_handle(self, ptr):
        self.keep_alive_contexts.remove(ptr)

    def create_image(self, width, height, color):
        raise NotImplementedError

    def create_graph(self, early_verify):
        raise NotImplementedError

    def create_scalar(self, data_type, initial_value):
        raise NotImplementedError

    def get_kernel(self, name):
        raise NotImplementedError

@api('CreateContext', on_exception=return_none, returns='context')
@capi('vx_context vxCreateContext()')
def create_context():
    from pyvx.optimized_backend import Context
    return Context()

@api('GetContext', on_exception=return_none, returns='context')
@capi('vx_context vxGetContext(vx_reference reference)')
def get_context(reference):
    raise NotImplementedError

@api('Hint')
@capi('vx_status vxHint(vx_context context, vx_reference reference, vx_enum hint)')
def hint(context, reference, hint):
    raise NotImplementedError

@api('Directive')
@capi('vx_status vxDirective(vx_context context, vx_reference reference, vx_enum directive)')
def directive(context, reference, directive):
    raise NotImplementedError

@api('GetStatus')
@capi('vx_status vxGetStatus(vx_reference reference)')
def get_status(reference):
    raise NotImplementedError

@api('RegisterUserStruct', on_exception=reraise, returns='data_type')
@capi('vx_enum vxRegisterUserStruct(vx_context context, vx_size size)')
def register_user_struct(context, size):
    raise NotImplementedError

##############################################################################

class Image(Reference):
    _type = vx.TYPE_IMAGE

@api('CreateImage', on_exception=return_none, returns='image')
@capi('vx_image vxCreateImage(vx_context context, vx_uint32 width, vx_uint32 height, vx_df_image color)')
def create_image(context, width, height, color):
    return context.create_image(width, height, color)

@api('CreateImageFromROI', on_exception=return_none, returns='image')
@capi('vx_image vxCreateImageFromROI(vx_image img, vx_rectangle_t *rect)')
def create_image_from_roi(img, rect):
    raise NotImplementedError

@api('CreateUniformImage', on_exception=return_none, returns='image')
@capi('vx_image vxCreateUniformImage(vx_context context, vx_uint32 width, vx_uint32 height, vx_df_image color, void *value)')
def create_uniform_image(context, width, height, color, value):
    raise NotImplementedError

@api('CreateVirtualImage', on_exception=return_none, returns='image')
@capi('vx_image vxCreateVirtualImage(vx_graph graph, vx_uint32 width, vx_uint32 height, vx_df_image color)')
def create_virtual_image(graph, width, height, color):
    return graph.context.create_virtual_image(graph, width, height, color)

@api('CreateImageFromHandle', on_exception=return_none, returns='image')
@capi('vx_image vxCreateImageFromHandle(vx_context context, vx_df_image color, vx_imagepatch_addressing_t addrs[], void *ptrs[], vx_enum import_type)')
def create_image_from_handle(context, color, addrs, ptrs, import_type):
    raise NotImplementedError

@api('ComputeImagePatchSize', on_exception=reraise, returns='size')
@capi('vx_size vxComputeImagePatchSize(vx_image image, vx_rectangle_t *rect, vx_uint32 plane_index)')
def compute_image_patch_size(image, rect, plane_index):
    raise NotImplementedError

@api('AccessImagePatch')
@capi('vx_status vxAccessImagePatch(vx_image image, vx_rectangle_t *rect, vx_uint32 plane_index, vx_imagepatch_addressing_t *addr, void **ptr, vx_enum usage)')
def access_image_patch(image, rect, plane_index, addr, ptr, usage):
    raise NotImplementedError

@api('CommitImagePatch')
@capi('vx_status vxCommitImagePatch(vx_image image, vx_rectangle_t *rect, vx_uint32 plane_index, vx_imagepatch_addressing_t *addr, void *ptr)')
def commit_image_patch(image, rect, plane_index, addr, ptr):
    raise NotImplementedError

@api('FormatImagePatchAddress1d', on_exception=return_none, returns='xxx')
@capi('void *vxFormatImagePatchAddress1d(void *ptr, vx_uint32 index, vx_imagepatch_addressing_t *addr)')
def format_image_patch_address1d(ptr, index, addr):
    raise NotImplementedError

@api('FormatImagePatchAddress2d', on_exception=return_none, returns='xxx')
@capi('void *vxFormatImagePatchAddress2d(void *ptr, vx_uint32 x, vx_uint32 y, vx_imagepatch_addressing_t *addr)')
def format_image_patch_address2d(ptr, x, y, addr):
    raise NotImplementedError

@api('GetValidRegionImage')
@capi('vx_status vxGetValidRegionImage(vx_image image, vx_rectangle_t *rect)')
def get_valid_region_image(image, rect):
    raise NotImplementedError

##############################################################################

class Kernel(Reference):
    _type = vx.TYPE_KERNEL
    parameters = attribute(vx.KERNEL_ATTRIBUTE_PARAMETERS, vx.TYPE_UINT32)
    name = attribute(vx.KERNEL_ATTRIBUTE_NAME, "vx_char[VX_MAX_KERNEL_NAME]")
    enum = attribute(vx.KERNEL_ATTRIBUTE_ENUM, vx.TYPE_ENUM)
    local_data_size = attribute(vx.KERNEL_ATTRIBUTE_LOCAL_DATA_SIZE, vx.TYPE_SIZE)
    local_data_ptr = attribute(vx.KERNEL_ATTRIBUTE_LOCAL_DATA_PTR , "void *")

@api('LoadKernels')
@capi('vx_status vxLoadKernels(vx_context context, vx_char *module)')
def load_kernels(context, module):
    raise NotImplementedError

@api('GetKernelByName', on_exception=return_none, returns='kernel')
@capi('vx_kernel vxGetKernelByName(vx_context context, vx_char *name)')
@api('GetKernelByEnum', on_exception=return_none, returns='kernel')
@capi('vx_kernel vxGetKernelByEnum(vx_context context, vx_enum kernel)')
def get_kernel_by_name(context, name):
    return context.get_kernel(name)

@api('AddKernel', on_exception=return_none, returns='kernel')
@capi('vx_kernel vxAddKernel(vx_context context, vx_char *name, vx_enum enumeration, vx_kernel_f func_ptr, vx_uint32 numParams, vx_kernel_input_validate_f input, vx_kernel_output_validate_f output, vx_kernel_initialize_f init, vx_kernel_deinitialize_f deinit)')
def add_kernel(context, name, enumeration, func_ptr, numParams, input, output, init, deinit):
    raise NotImplementedError

@api('FinalizeKernel')
@capi('vx_status vxFinalizeKernel(vx_kernel kernel)')
def finalize_kernel(kernel):
    raise NotImplementedError

@api('AddParameterToKernel')
@capi('vx_status vxAddParameterToKernel(vx_kernel kernel, vx_uint32 index, vx_enum dir, vx_enum data_type, vx_enum state)')
def add_parameter_to_kernel(kernel, index, dir, data_type, state):
    raise NotImplementedError

@api('RemoveKernel')
@capi('vx_status vxRemoveKernel(vx_kernel kernel)')
def remove_kernel(kernel):
    raise NotImplementedError

@api('GetKernelParameterByIndex', on_exception=return_none, returns='parameter')
@capi('vx_parameter vxGetKernelParameterByIndex(vx_kernel kernel, vx_uint32 index)')
def get_kernel_parameter_by_index(kernel, index):
    raise NotImplementedError

##############################################################################

class Graph(Reference):
    _type = vx.TYPE_GRAPH

    def verify(self):
        raise NotImplementedError

    def process(self):
        raise NotImplementedError

@api('CreateGraph', on_exception=return_none, returns='graph')
@capi('vx_graph vxCreateGraph(vx_context context)')
def create_graph(context, early_verify=False):
    return context.create_graph(early_verify)

@api('VerifyGraph')
@capi('vx_status vxVerifyGraph(vx_graph graph)')
def verify_graph(graph):
    graph.verify()
    return vx.SUCCESS

@api('ProcessGraph')
@capi('vx_status vxProcessGraph(vx_graph graph)')
def process_graph(graph):
    return graph.process()

@api('ScheduleGraph')
@capi('vx_status vxScheduleGraph(vx_graph graph)')
def schedule_graph(graph):
    raise NotImplementedError

@api('WaitGraph')
@capi('vx_status vxWaitGraph(vx_graph graph)')
def wait_graph(graph):
    raise NotImplementedError

@api('AddParameterToGraph')
@capi('vx_status vxAddParameterToGraph(vx_graph graph, vx_parameter parameter)')
def add_parameter_to_graph(graph, parameter):
    graph.add_parameter(parameter)
    return vx.SUCCESS

@api('SetGraphParameterByIndex')
@capi('vx_status vxSetGraphParameterByIndex(vx_graph graph, vx_uint32 index, vx_reference value)')
def set_graph_parameter_by_index(graph, index, value):
    param = graph.parameters[index]
    return set_parameter_by_reference(param, value)

@api('GetGraphParameterByIndex', on_exception=return_none, returns='parameter')
@capi('vx_parameter vxGetGraphParameterByIndex(vx_graph graph, vx_uint32 index)')
def get_graph_parameter_by_index(graph, index):
    if index >= len(graph.parameters):
        return 0
    return graph.parameters[index]

@api('IsGraphVerified', on_exception=reraise, returns='verified')
@capi('vx_bool vxIsGraphVerified(vx_graph graph)')
def is_graph_verified(graph):
    raise NotImplementedError

##############################################################################

class Node(Reference):
    _type = vx.TYPE_NODE

@api('CreateGenericNode', on_exception=return_none, returns='node')
@capi('vx_node vxCreateGenericNode(vx_graph graph, vx_kernel kernel)')
def create_generic_node(graph, kernel):
    return kernel.node_class(graph, _ignore_missin_parameters=True)

@api('RemoveNode')
@capi('void vxRemoveNode(vx_node *node)')
def remove_node(node):
    raise NotImplementedError

@api('AssignNodeCallback')
@capi('vx_status vxAssignNodeCallback(vx_node node, vx_nodecomplete_f callback)')
def assign_node_callback(node, callback):
    raise NotImplementedError

@api('RetrieveNodeCallback', on_exception=return_none, returns='xxx')
@capi('vx_nodecomplete_f vxRetrieveNodeCallback(vx_node node)')
def retrieve_node_callback(node):
    raise NotImplementedError

##############################################################################

class Parameter(Reference):
    _type = vx.TYPE_PARAMETER
    index = attribute(vx.PARAMETER_ATTRIBUTE_INDEX, vx.TYPE_UINT32)
    direction = attribute(vx.PARAMETER_ATTRIBUTE_DIRECTION, vx.TYPE_ENUM)
    data_type = attribute(vx.PARAMETER_ATTRIBUTE_TYPE, vx.TYPE_ENUM)
    state = attribute(vx.PARAMETER_ATTRIBUTE_STATE, vx.TYPE_ENUM)
    ref = attribute(vx.PARAMETER_ATTRIBUTE_REF, vx.TYPE_REFERENCE)

@api('GetParameterByIndex', on_exception=return_none, returns='parameter')
@capi('vx_parameter vxGetParameterByIndex(vx_node node, vx_uint32 index)')
def get_parameter_by_index(node, index):
    if index >= len(node.parameters):
        return 0
    return node.parameters[index]

@api('SetParameterByIndex')
@capi('vx_status vxSetParameterByIndex(vx_node node, vx_uint32 index, vx_reference value)')
def set_parameter_by_index(node, index, value):
    setattr(node, node.parameters[index].name, value)
    return vx.SUCCESS

@api('SetParameterByReference')
@capi('vx_status vxSetParameterByReference(vx_parameter parameter, vx_reference value)')
def set_parameter_by_reference(parameter, value):
    setattr(parameter.node, parameter.name, value)
    return vx.SUCCESS

##############################################################################

class Scalar(Reference):
    _type = vx.TYPE_SCALAR
    data_type = attribute(vx.SCALAR_ATTRIBUTE_TYPE, vx.TYPE_ENUM)

@api('CreateScalar', on_exception=return_none, returns='scalar')
def create_scalar(context, data_type, initial_value):
    return context.create_scalar(data_type, initial_value)

@capi('vx_scalar vxCreateScalar(vx_context context, vx_enum data_type, void *ptr)')
def c_create_scalar(context, data_type, ptr):
    data_type = vx.int2enum[data_type]
    ptr = vx.ffi.cast(data_type.ctype + '*', ptr)
    return context.create_scalar(data_type, ptr[0])

@api('AccessScalarValue', on_exception=return_errno_and_none, returns='status, value')
def access_scalar_value(ref):
    return vx.SUCCESS, ref.value

@capi('vx_status vxAccessScalarValue(vx_scalar ref, void *ptr)')
def c_access_scalar_value(ref, ptr):
    ptr = vx.ffi.cast(ref.data_type.ctype + "*", ptr)
    ptr[0] = ref.value
    return vx.SUCCESS

@api('CommitScalarValue')
def commit_scalar_value(ref, new_value):
    ref.value = new_value
    return vx.SUCCESS

@capi('vx_status vxCommitScalarValue(vx_scalar ref, void *ptr)')
def c_commit_scalar_value(ref, ptr):
    ptr = vx.ffi.cast(ref.data_type.ctype + "*", ptr)
    ref.value = ptr[0]
    return vx.SUCCESS

##############################################################################

class Delay(Reference):
    _type = vx.TYPE_DELAY

@api('CreateDelay', on_exception=return_none, returns='delay')
@capi('vx_delay vxCreateDelay(vx_context context, vx_reference exemplar, vx_size count)')
def create_delay(context, exemplar, count):
    raise NotImplementedError

@api('GetReferenceFromDelay', on_exception=return_none, returns='reference')
@capi('vx_reference vxGetReferenceFromDelay(vx_delay delay, vx_int32 index)')
def get_reference_from_delay(delay, index):
    raise NotImplementedError

@api('AgeDelay')
@capi('vx_status vxAgeDelay(vx_delay delay)')
def age_delay(delay):
    raise NotImplementedError

##############################################################################

@api('AddLogEntry', on_exception=reraise, returns='')
def add_log_entry(ref, status, message):
    ref.add_log_entry(status, message)

# @api('AddLogEntry')
# @capi('void vxAddLogEntry(vx_reference ref, vx_status status, const char *message, ...)')
# def add_log_entry(ref, status, message, ...):
#     raise NotImplementedError

@api('RegisterLogCallback', on_exception=reraise, returns='')
@capi('void vxRegisterLogCallback(vx_context context, vx_log_callback_f callback, vx_bool reentrant)')
def register_log_callback(context, callback, reentrant):
    raise NotImplementedError

##############################################################################

class Lut(Reference):
    _type = vx.TYPE_LUT

@api('CreateLUT', on_exception=return_none, returns='lut')
@capi('vx_lut vxCreateLUT(vx_context context, vx_enum data_type, vx_size count)')
def create_lut(context, data_type, count):
    raise NotImplementedError

@api('AccessLUT')
@capi('vx_status vxAccessLUT(vx_lut lut, void **ptr, vx_enum usage)')
def access_lut(lut, ptr, usage):
    raise NotImplementedError

@api('CommitLUT')
@capi('vx_status vxCommitLUT(vx_lut lut, void *ptr)')
def commit_lut(lut, ptr):
    raise NotImplementedError

##############################################################################

class Distribution(Reference):
    _type = vx.TYPE_DISTRIBUTION

@api('CreateDistribution', on_exception=return_none, returns='distribution')
@capi('vx_distribution vxCreateDistribution(vx_context context, vx_size numBins, vx_size offset, vx_size range)')
def create_distribution(context, numBins, offset, range):
    raise NotImplementedError

@api('AccessDistribution')
@capi('vx_status vxAccessDistribution(vx_distribution distribution, void **ptr, vx_enum usage)')
def access_distribution(distribution, ptr, usage):
    raise NotImplementedError

@api('CommitDistribution')
@capi('vx_status vxCommitDistribution(vx_distribution distribution, void * ptr)')
def commit_distribution(distribution, ptr):
    raise NotImplementedError

##############################################################################

class Threshold(Reference):
    _type = vx.TYPE_THRESHOLD

@api('CreateThreshold', on_exception=return_none, returns='threshold')
@capi('vx_threshold vxCreateThreshold(vx_context c, vx_enum thresh_type, vx_enum data_type)')
def create_threshold(c, thresh_type, data_type):
    raise NotImplementedError

##############################################################################

class Matrix(Reference):
    _type = vx.TYPE_MATRIX

@api('CreateMatrix', on_exception=return_none, returns='matrix')
@capi('vx_matrix vxCreateMatrix(vx_context c, vx_enum data_type, vx_size columns, vx_size rows)')
def create_matrix(c, data_type, columns, rows):
    raise NotImplementedError

@api('AccessMatrix')
@capi('vx_status vxAccessMatrix(vx_matrix mat, void *array)')
def access_matrix(mat, array):
    raise NotImplementedError

@api('CommitMatrix')
@capi('vx_status vxCommitMatrix(vx_matrix mat, void *array)')
def commit_matrix(mat, array):
    raise NotImplementedError

##############################################################################

class Convolution(Reference):
    _type = vx.TYPE_CONVOLUTION

@api('CreateConvolution', on_exception=return_none, returns='convolution')
@capi('vx_convolution vxCreateConvolution(vx_context context, vx_size columns, vx_size rows)')
def create_convolution(context, columns, rows):
    raise NotImplementedError

@api('AccessConvolutionCoefficients')
@capi('vx_status vxAccessConvolutionCoefficients(vx_convolution conv, vx_int16 *array)')
def access_convolution_coefficients(conv, array):
    raise NotImplementedError

@api('CommitConvolutionCoefficients')
@capi('vx_status vxCommitConvolutionCoefficients(vx_convolution conv, vx_int16 *array)')
def commit_convolution_coefficients(conv, array):
    raise NotImplementedError

##############################################################################

class Pyramid(Reference):
    _type = vx.TYPE_PYRAMID

@api('CreatePyramid', on_exception=return_none, returns='pyramid')
@capi('vx_pyramid vxCreatePyramid(vx_context context, vx_size levels, vx_float32 scale, vx_uint32 width, vx_uint32 height, vx_df_image format)')
def create_pyramid(context, levels, scale, width, height, format):
    raise NotImplementedError

@api('CreateVirtualPyramid', on_exception=return_none, returns='pyramid')
@capi('vx_pyramid vxCreateVirtualPyramid(vx_graph graph, vx_size levels, vx_float32 scale, vx_uint32 width, vx_uint32 height, vx_df_image format)')
def create_virtual_pyramid(graph, levels, scale, width, height, format):
    raise NotImplementedError

@api('GetPyramidLevel', on_exception=return_none, returns='image')
@capi('vx_image vxGetPyramidLevel(vx_pyramid pyr, vx_uint32 index)')
def get_pyramid_level(pyr, index):
    raise NotImplementedError

##############################################################################

class Remap(Reference):
    _type = vx.TYPE_REMAP

@api('CreateRemap', on_exception=return_none, returns='remap')
@capi('vx_remap vxCreateRemap(vx_context context, vx_uint32 src_width, vx_uint32 src_height, vx_uint32 dst_width, vx_uint32 dst_height)')
def create_remap(context, src_width, src_height, dst_width, dst_height):
    raise NotImplementedError

@api('SetRemapPoint')
@capi('vx_status vxSetRemapPoint(vx_remap table, vx_uint32 dst_x, vx_uint32 dst_y, vx_float32 src_x, vx_float32 src_y)')
def set_remap_point(table, dst_x, dst_y, src_x, src_y):
    raise NotImplementedError

@api('GetRemapPoint')
@capi('vx_status vxGetRemapPoint(vx_remap table, vx_uint32 dst_x, vx_uint32 dst_y, vx_float32 *src_x, vx_float32 *src_y)')
def get_remap_point(table, dst_x, dst_y, src_x, src_y):
    raise NotImplementedError

##############################################################################

class Array(Reference):
    _type = vx.TYPE_ARRAY

@api('CreateArray', on_exception=return_none, returns='array')
@capi('vx_array vxCreateArray(vx_context context, vx_enum item_type, vx_size capacity)')
def create_array(context, item_type, capacity):
    raise NotImplementedError

@api('CreateVirtualArray', on_exception=return_none, returns='array')
@capi('vx_array vxCreateVirtualArray(vx_graph graph, vx_enum item_type, vx_size capacity)')
def create_virtual_array(graph, item_type, capacity):
    raise NotImplementedError

@api('AddArrayItems')
@capi('vx_status vxAddArrayItems(vx_array arr, vx_size count, void *ptr, vx_size stride)')
def add_array_items(arr, count, ptr, stride):
    raise NotImplementedError

@api('TruncateArray')
@capi('vx_status vxTruncateArray(vx_array arr, vx_size new_num_items)')
def truncate_array(arr, new_num_items):
    raise NotImplementedError

@api('AccessArrayRange')
@capi('vx_status vxAccessArrayRange(vx_array arr, vx_size start, vx_size end, vx_size *stride, void **ptr, vx_enum usage)')
def access_array_range(arr, start, end, stride, ptr, usage):
    raise NotImplementedError

@api('CommitArrayRange')
@capi('vx_status vxCommitArrayRange(vx_array arr, vx_size start, vx_size end, void *ptr)')
def commit_array_range(arr, start, end, ptr):
    raise NotImplementedError

##############################################################################

class MetaFormat(Reference):
    _type = vx.TYPE_META_FORMAT

##############################################################################

@capi("int same_pyobj(vx_reference, vx_reference)")
def same_pyobj(ref1, ref2):
    return ref1 is ref2

redpajama_set_name: RedPajamaGithub


I was searching for a Property and found this listing (MLS® #2007142). Please send me more information regarding 1404 Lost Hollow Ln, Ashland City, TN, 37015. Thank you!
I'd like to request a showing of 1404 Lost Hollow Ln, Ashland City, TN, 37015 (MLS® #2007142). Thank you!


text:
Теодорус ван Гог (, 1 травня 1857, Грот-Зюндер — 25 січня 1891, Утрехт) — голландський торговець картинами. Молодший брат всесвітньо відомого художника Вінсента ван Гога. Завдяки постійній фінансовій допомозі брата, Вінсент ван Гог зміг повністю присвятити себе живопису.

Біографія
Як і старший брат Вінсент, Теодорус ван Гог, більш відомий, як Тео, народився в Грот-Зюндерті, у провінції Брабант в Нідерландах. Батьки Тео: приходський священик Теодорус ван Гог і Анна Корнелія Карбентус.

Робота
Завдяки родинним зв'язкам і Вінсент і Тео працювали на паризьку артдилерську компанію «Гупіль і Сі». Першим почав працювати Вінсент, провівши декілька років в офісі в Гаазі. Тео приступив до роботи в Брюсселі 1 січня 1873 року і був наймолодшим співробітником фірми. Після переведення Вінсента до Лондона, Тео перейшов на його місце в Гаагу, де швидко розвинувся, ставши успішним артдилером. До 1884 року його було переведено до головного офісу у Парижі. Починаючи із зими 1880—1881 року, Тео посилав своєму братові приладдя для малювання та гроші.

Особисте життя
У Парижі Тео познайомився з Андрі Бонжером і його сестрою Йоганною, на якій одружився у Амстердамі 17 квітня 1889 року. Вони жили в Парижі, коли 31 січня 1890 року народився їх син Вінсент Віллем. 8 червня сім'я відвідала Вінсента, який жив у містечку Овер-сюр-Уаз неподалік від Парижа.

Хвороба і смерть
27 липня 1890 року Вінсент застрелився в Овер-сюр-Уаз. Можливо, це сталося через те, що Вінсент не хотів більше фінансово залежати від свого молодшого брата, що утримував не лише його, але і дружину з дитиною і стару матір. Відмовляючись від будь-якої медичної допомоги, Вінсент помер через два дні після того, як вистрілив собі в серце. Тео був з ним. Наступного дня він написав про це матері і сім'ї та поїхав до Голландії.

30 липня 1890 року Тео впав у глибоку депресію, з'явилися ознаки серйозного душевного розладу. У вересні того ж року Тео намагався умовити галерею Дюранд-Ройяль зробити меморіальну ретроспективу робіт Вінсента, але безуспішно. У Парижі, за допомогою Еміля Бернарда, Тео зробив у своїй колишній квартирі (сам він переїхав в сусідню) посмертну виставку.

У жовтні, на прохання Андрі Бонжера, Тео погодився лягти у божевільню Етуаля, де йому поставили діагноз «гостра маніакальна збудливість з манією величі і прогресуючий загальний параліч». За запитом дружини, у листопаді 1890-го його було переведено до «Медичного інституту психічнохворих» в Утрехті, Нідерланди. Тут він помер через два місяці у віці 33 років від ускладнень останньої стадії сифіліса, і був похований у Eerste Algemene Begraafplaats Soestbergen.

Через двадцять п'ять років останки Тео ван Гога були перевезені до Франції, і 8 квітня 1914 року обидва брати перезаховані поруч на кладовищі Овер-сюр-Уаз.

Брати
Тео захоплювався старшим братом усе своє життя. Але спілкуватися з ним було важким ще до обрання свого покликання бути художником. Спілкування між двома братами страждало від розбіжності поглядів на норми життя, і поза сумнівом, тільки завдяки Тео контакт зберігався, оскільки той постійно писав листи.

Спочатку Тео робив вигляд, що гроші Вінсенту приходять від батька, а не від нього. Він не хотів засмучувати брата. Правда, незабаром Вінсент дізнався, від кого приходять гроші, і подякував братові. Усе життя він мучився від цієї залежності, виправдовуючи себе тим, що Тео ніби бере участь у створенні картин і що потім вони поділять гроші від продажу картин.

Тео допомагав художникам-імпресіоністам, таким як Клод Моне і Едгар Дега, стати відомішими, умовляючи своїх працедавців «Гупіль і Компанія» виставляти і купувати їх роботи. Проте він не зміг пробитися крізь погляди начальства на живопис так і не продавши жодної картини Вінсента.

У 1886 році Тео запросив Вінсента пожити разом з ним. У березні вони почали жити разом у квартирі Тео на Монмартрі. Тео познайомив свого брата з такими художниками, як Поль Гоген, Поль Сезанн, Анрі Тулуз-Лотрек, Анрі Руссо, Каміль Піссарро та Жорж Сера. У 1888-му Тео умовив Гогена приєднатися до Вінсента, який тоді вже поїхав в Арль.

Листування
Листування між братами почалося після візиту Тео до Вінсента в Гаагу, де останній працював вже близько трьох років. Коли це сталося, Вінсенту було 19 років, а Тео 15. Вона тривала майже 18 років — з 1872 по 1890 рр. Збереглося всього 36 листів, написаних Тео Вінсенту. Але сам Тео дбайливо ставився до листів старшого брата, завдяки чому зберігся 661 лист Вінсента.

Спочатку листи були прості та лаконічні. Вінсент дає повчання своєму братові, радить не палити трубку і зайнятися вивченням творчості різних письменників і художників. Потім Вінсент починає посилати нариси олівцем, на яких зображував повсякденне життя селян. З часом листи стають серйознішими і змістовнішими, Вінсент відверто розповідає про свої погляди на життя і мистецтво. Останній незавершений лист до Тео було знайдено у кишені Вінсента, коли той застрелився.

Образ у мистецтві
У 1990 році режисер Роберт Олтмен створив художній фільм «Вінсент і Тео» про взаємини братів Вінсента та Тео ван Гогів, де роль Теодоруса зіграв актор Пол Ріс. Образ Тео ван Гога відтворено також у фільмах «Жага життя» (1956, актор Джеймс Дональд), «Ван Гог» (1990, актор Бернар Ле Кок) та «Ван Гог. На порозі вічності» (2018, актор Руперт Френд).

Примітки

Джерела
 Anonymous (initialled «H.H.H.» and «W.F.d.C.H.»): Van Gogh, 's-Gravenhage, Nederland's Patriciaat 50, 1964, pp. 171-183.
 Hulsker, Jan: Vincent and Theo van Gogh: A Dual Biography, Ann Arbor, Fuller Publications, 1990. ISBN 0-940537-05-2.
 Jansen, Leo, and Jan Robert: Kort geluk. De briefwisseling tussen Theo van Gogh en Jo Bonger, Waanders, Zwolle 1999. ISBN 90-400-9353-9 (also available in English).
 Rewald, John: Theo van Gogh, Goupil, and the Impressionists, Gazette des Beaux-Arts, January & February 1973, pp. 1-107; reprinted in Rewald, John: Studies in Post-Impressionism, Thames and Hudson, 1986, pp. 7-115 (no ISBN).
 Stolwijk, Chris, & Thomson, Richard: Theo van Gogh 1857—1891: Art dealer, collector and brother of Vincent, Waanders, Zwolle 1999. ISBN 90-400-9363-6.

Посилання

 John Lichfield, Van Gogh's little brother goes on show, 1999, The Independent, retrieved 27 January 2009

Уродженці Північного Брабанту
Артдилери
Померли в Утрехті
Вінсент ван Гог
Поховані в департаменті Валь-д'Уаз

redpajama_set_name: RedPajamaWikipedia


text:
Wellington vigil marks 1st anniversary of Reza Berati murder
Monday, 16 February 2015, 10:13 pm
Press Release: Doing Our Bit
Wellington vigil marks first anniversary of murder of asylum seeker Reza Berati
On Tuesday, 17 February from 8am Wellingtonians will mark the one year anniversary of the murder of asylum seeker Reza Berati. They will gather outside the Australian High Commission to show solidarity for Australian activists seeking to shut down the Manus Island detention centre.
"We're commemorating Reza Berati and we're standing with Australians who want to shut down these South Seas gulags," said Murdoch Stephens who organised the protest in solidarity with Australians and Allies Overseas Against Mandatory Detention. Stephens also runs the Doing Our Bit campaign to double New Zealand's refugee quota that has not grown in 28 years.
Stephens said they expected about thirty people at the vigil. The aim was to have Australian activists wake up to images of solidarity to start their own days of remembrance and action.
"We have so much respect for Australian refugee activists and we want them to know it. We were so inspired by their recent stands to stop a Tamil asylum seekers being deported, as well as their 'unapologetic spoilsport' disruptions at the Australian Open and World Cup Cricket."
"And if people can't attend the vigil we're encouraging them to share their own 'Kiwis for #ShutDownManus' selfies on social media."
Galvanizing under the hashtag #ShutDownManus and organising through social media, activists from the group Australians and Allies Overseas Against Mandatory Detention call for an end to what Berlin organizer Carol Peterson describes as the "cruel on-and-offshore detention policies that inflict deliberate harm on people fleeing war, genocide, and political or religious persecution." Peterson says, "If the public knew the truth about what is happening they would be shocked. Many would feel compelled to join us in our demand that the Australian Government drop it's illegal, deliberately brutal, and extremely expensive policy of offshore mandatory detention."
At the time of this press release, vigils and rallies have taken place in New York, London, Dublin, Boston, Cambridge (UK), Berlin, Brussells, San Francisco, Santiago (Chile) and Leeds (UK), with future actions also planned in Amsterdam and The Hague, Houston (Texas), Austin, Paris, the West Bank, Belgium, Edinburgh, Glasgow, Sheffield, Belfast, Hong Kong and Japan. The wave of activity highlights growing discontent among the Australian and broader global communities with Australia's illegal border protection policies. Boston organizer Julia Dehm said, "It is imperative to build an internationalized grassroots movement to stand in solidarity with the detainees inside Manus Island, to support their struggles and make sure that their messages reach an international audience."
Australian company Transfield Services manages the Manus detention center under government contract, overseeing the detention of over 1000 people claiming asylum in Australia including Iraqis, Somalis, Sudanese, Pakistanis, Afghans, Iranians, Sri Lankans, Burmese, stateless Faili Kurds, stateless Rohingya, Egyptians and Lebanese people. As the Sydney Morning Herald recently outlined, the Manus center is part of Australia's offshore immigration processing system, which contravenes Australia's international human rights obligations and cost Australian taxpayers an estimated $1.2 billion in 2014. The hunger strike that triggered the vigils, the largest hunger strike in Australian detention history, protested Australian and PNG plans to permanently resettle refugees in PNG - one of the most poorly resourced countries in the region. Detainees sewed their lips closed, swallowed razor blades, and ingested detergent as part of their protest.
Murdoch Stephens – murdochstephens@gmail.com
www.doingourbit.co.nz
http://australiansoverseasforrefugees.tumblr.com/
Campaign to double New Zealand's refugee quota and funding.
New Zealand's refugee quota has not increased since it was established in 1987. Since then our population has grown by more than a million places. The United Nations ranks us at 87th in the world for hosting refugees per capita, and this drops to 113th if we factor in GDP. On 1 July 2016 the National government will announce what the quota will be for 2016-19. Join us to tell them it is time for an increase.
Contact Doing Our Bit
Website - www.doingourbit.co.nz
Email - murdochstephens@gmail.com
Twitter - @DoingOurBitNZ

redpajama_set_name: RedPajamaCommonCrawl


Mexican gymnast body shamed at Rio. Go home, Internet.
Olympic gymnast Alexa Moreno has been called a "pig" by body shamers.
Despite weighing a sprightly 45kg, being capable of aerial splits and competing in the OLYMPICS, a Mexican gymnast has been compared to a "pig" for absolutely no reason.
After competing for her country in the artistic gymnastics in Rio on Sunday, 22-year-old Alexa Moreno was taunted online by cruel trolls.
Apparently, Olympic-level taut is not taut enough.
It's worth noting that, aside from having a teenie tiny BMI, Mexico is rarely represented in gymnastics at an Olympic-level.
By all accounts Morena killed it, too – expertly landing herself into 12th place.
Thankfully, common sense has now prevailed in the Twitterverse and many other suitably-impressed mere mortals have now come to her defence.
We'd like to see a troll to a back flip like that, to be quite honest.


text:
Working with nature's little factories for a cleaner world
Biotechnology is developing at a rapid pace. More opportunities for new applications are emerging and it is becoming more accessible. With that also comes a risk.
Corine Spaans
"The use of technology in biology is certainly not new," says Nadine Bongaerts, synthetic biologist and Chief Innovation Officer of the French start-up Gourmey. It is the first French cultured meat company to work on an ethical foie gras made from stem cells.
"We have been using yeast and bacteria for making wine, beer, and bread for thousands of years. But today, we are able to domesticate other cell types for the production of more products. For example, thanks to advances in cell biology we know to grow animal cells in large quantities. This is very useful for making cultured meat."
Also read the article we published last week about the cultured meat from Mosa Meat.
"Biology has increasingly fused with other technologies such as computer science, robotics, physics, and chemistry," Bongaerts says. This fusion is also called synthetic biology. "It is actually biotechnology, but much more advanced. For me, it's about the ability to modify biological systems in such a way that they can do something that humans see the benefit of."
Small factories
According to Bongaerts, nature is made up of little factories. "If you zoom in on flowers, for example, you can see a tiny factory that makes scents. Even at the level of proteins, you can see that some structures look like cogs and tiny wheels. It looks as if a person made that design, but it has really come through evolution. That in itself is fascinating. Synthetic biology makes it possible to combine all those different natural parts of engineering."
Bongaerts cites the company Genentech as an example, which in the 1980s put a piece of a human insulin gene into a bacterium. "That bacterium then started producing human insulin. This is still helping millions of diabetics today around the world." Before then, insulin came from the pancreas of pigs. "You then need kilos of pig organ for just a few grams of insulin. And then it is still pig insulin."
"By modifying DNA, you can turn a cell – such as a bacterium – into a mini-factory which enables it to reproduce rapidly. So you can make natural products on a large scale that way. Otherwise, you'd have to get those products from the original source, and that's often very intensive, costly and maybe cruel to animals as well."
Nadine Bongaerts © Patrick Gaillardin
Smarter medicine
Also, using a biological process often does not end up creating toxic byproducts, Bongaerts points out. "It is a much cleaner process. The amount of waste products is lower and the process requires less energy. Cells can often grow at temperatures between 30 – 37 C degrees, or even lower. It doesn't take several hundred degrees Celsius to cause a particular reaction. I think it would be great if we could replace chemistry with a biological system like this."
Bongaerts goes on to say that we can also make smarter medicines using the same kind of technologies. "We now primarily use medicines where you take, or are administered, a certain molecule in the form of a pill or an injection. The problem is that, for example in the case of cancer, current drugs not only target the cancer, but also hit the healthy cells."
The synthetic biologist cites CAR-T cells, a form of cancer immunotherapy, as an example. "These cells can detect cancer cells. As a result, a very targeted cancer therapy is created. The patient's own body cells basically get an extra feature, they actually attack those cancer cells."
DNA scissors
In 2019, Emmanuelle Charpentier and Jennifer Doudna received the Nobel Prize in Chemistry for their "DNA scissors," i.e.: CRISPR Cas 9. This technique allows you to cut into an organism – a genome – at a very precise spot and add new DNA. "If you want to modify a piece of DNA, you first have to make sure that you also are working in the right place. Those DNA scissors can be programmed, so to speak, to delete a segment at precisely the right spot and then add a new piece of DNA. Because the cell repairs itself – it cannot continue to live with broken DNA – that new piece of DNA is then incorporated into it."
Among other things, this technology makes it possible to make crops climate-proof. "I don't see any other solution turning up any time soon. We can't wait for evolution to produce climate-resistant plants. We don't have time for that. Anyway, to tackle climate change, we will have to bet on more horses."
Another interesting development is the ability to read DNA, also referred to as DNA sequencing. "What I find really amazing is that with this technology, scientists were able to read out the entire COVID-19 genome in just two weeks. In 2002, that took six months with the SARS virus. So, you can see how fast the technology has progressed."
Storing data
Besides being able to read DNA, it is also possible to print DNA, this is known as DNA synthesis. DNA printing is so efficient that consideration is being given to storing all kinds of data inside DNA, Bongaerts notes. "For example, Microsoft and Twist Bioscience – a DNA synthesis company – are working together to look at the storage of information in DNA. Already, there are all kinds of movies stored in it, sections of books translated into DNA code, and they have printed that DNA code out completely as well. You no longer need a large hard drive then, just a few milligrams of DNA."
However, using this on a mainstream basis is still a long way off, Bongaerts states. "It's still too expensive to store something in DNA, plus you want to be able to read it out quickly. It hasn't gotten that far yet."
Of course, Bongaerts also sees the drawbacks that come with synthetic biology. "As the technology gets better and easier, it also becomes more and more accessible. That is something I do worry about. Due to rapid digitalization, we have to deal with cybercrime too. We also really need to start thinking about how we can secure ourselves against biocrime (the misuse of viruses, bacteria, fungi or parasites, to intentionally make people sick, ed.).
Not without risks
Carina Nieuwenweg is working on providing that security against biocrime. She is a synthetic biologist, doing her PhD research on CRISPR Cas at the Wageningen University & Research in The Netherlands, but she also has a background in military strategy studies. In addition to her PhD research, she is working on that "bit of security."
As to whether biocrime really exists? "Yes and no," says Nieuwenweg. "We are aware of the potential dangers of misuse, but there has not been a situation yet where it was a close call." It's hard to pinpoint examples of potential dangers because most of that is confidential, the synthetic biologist says. However, she can mention one example. "Scientist Fouchier, even before Covid, did research on 'gain of function' of certain viruses and which mutations the virus could use to jump over to mammals. It is useful information for understanding and preventing a potential pandemic. At the time, the criticism directed at the publication was that people could also be harmed by this."
To prevent biocrime, agreements have been reached both internationally and nationally. E.g., internationally, the Geneva Convention has agreed that countries should not produce chemical or bioweapons. There are rules and methods in place to monitor those agreements. Parties like NATO have experts do what are called horizon scans. "They do scans of things that might cause us to fear certain technologies such as synthetic biology. If there is a risk of misuse, how great is the threat exactly?"
Carina Nieuwenweg © Koen Manusama
In the Netherlands, the Hague Centre of Strategic Studies recently published a report on the potential hazards. A research organization like TNO also has experts who carry out horizon scans into the hazards and what can be done about them. Every year, the Dutch National Institute for Public Health and the Environmen (RIVM) organizes a national conference on the latest insights and what policymakers need to be aware of, Nieuwenweg adds. "Technology is advancing at an ever-increasing pace. It's quite difficult to keep adapting your policies to that."
As well as horizon scans, there is also such a thing as "safe by design," where from the outset, you think about the security of a potential product or application that you are developing. Nieuwenweg continues: "We don't just come up with a product. We are thinking about security from day one. This is a really important subject within synthetic biology. As soon as you start modifying organisms, strict security regulations apply."
It's admittedly somewhat of a controversy, Nieuwenweg observes. "In the past, we actually didn't know exactly what we were doing as far as DNA was concerned. We have been modifying plant and animal DNA for centuries by selecting them for certain characteristics. In the case of plants, at some point we started throwing chemicals at them. That was actually pretty random. Now there is a technology, CRISPR Cas, that is much more targeted and accurate, but the regulations are much more strict."
In the supermarket
Of course, Nieuwenweg recognizes the hazards that this all poses. That is one of the reasons why she chose Military Strategic Studies as her master's degree. "But it is also in part down to how the media portrays it. Look at a movie like Rampage in which the 'bad guy' uses CRISPR Cas to make giant, evil rats. Yet most people who choose to work with biotech do so to make the world a little better."
According to Bongaerts, the supermarket is the place that can contribute to changing people's perceptions. "If you can buy milk that doesn't come from a cow, but from bacteria that produce milk protein, or meat and fish made with stem cells, then people will start to understand more clearly what this might mean for their daily lives. Synthetic biology is often still abstract. You can see it in the case of medical innovations, as patients are more inclined to use them if they help them get better. These kinds of innovation can instantly alleviate their problems."
Also read: Dutch TU Delft biotechnologists turn yeast into mini-factories for making medicine
Innovation Origins is an independent news platform that has an unconventional revenue model. We are sponsored by companies that support our mission: to spread the story of innovation. Read more.
At Innovation Origins, you can always read our articles for free. We want to keep it that way. Have you enjoyed our articles so much that you want support our mission? Then use the button below:
Corine Spaans is a writer. She is particularly interested in the stories of the people behind the innovations and has a passion for sport (innovation).


Prime Minister Mia Mottley has announced the Barbados economic recovery and transformation plan as she outlined a mini-budget for the island.
Ms Mottley says the content of the budget comprises the suggestions from close to 40 hours of talks with the social partnership as well as three days of discussions with the International Monetary Fund.
Prime Minister Mottley explains that the plan will be rolled out in three phases and will put the economy on the path to recovery, while protecting the integrity of the dollar.
Phase one, according to Ms Mottley, will be executed over the next three months and see the introduction of user fees for both domestic and international players.
Prime Minister Mottley says the overall aim over the life of the plan is to reduce the debt to more sustainable levels.
Ms Mottley adds that a major plank of the first phase will see three statutory corporations being removed completely from the Consolidated Fund and one partially off as well.
These entities now account for about $215 million dollars of expenditure in a fiscal year.
She has asked Barbadians to help shoulder some of the weight in the overall effort to turn around the Barbados economy.
The Prime Minister says the new fiscal measures are intended to reduce the deficit by $183 million over the next 12 months, while also increasing the island's revenue.
Here are some of the budget measures at a glance.
The National Social Responsibility Levy will be repealed from July 1st.
The Barbados Revenue Authority is set to write off taxes considered unrecoverable from 1968 to 2000.
There will be a five per cent wage increase across the board effective April 1st this year to March 31st 2019.
The government will be abolishing undergraduate fees at the University of the West Indies from next semester, with a provision that graduates give back a set number of hours upon completion.
The road tax is set to be abolished from July 1st and replaced by a fuel tax of forty cents per litre on petrol and diesel, five cents on kerosene.
Fifteen million dollars will be allocated for the purchase of garbage trucks.
There will be new income tax bands, the upper income tax band of 40 per cent will be applied to people who make seventy-five thousand dollars or more per year.
Corporation tax will be going up from 25 per cent to 30 per cent.
From October 1st all online transactions will be subject to Value Added Tax.
Old age pensions are being raised from one hundred and fifty-five dollars to two hundred and twenty-five dollars.
Opening hours of the Sir Winston Scott and Randall Phillips Polyclinics are being extended to 24 hours.
$14.5 million is being allocated to pay off money to sugar farmers over a three year period.
The Accident & Emergency Department will be upgraded.
Three temporary additional judges are set to be appointed to help clear a backlog of ten thousand criminal cases.
An airline travel and tourism development fee -of US$70 on air travel outside of Caricom and US$35 within Caricom will be introduced.
From August 1st, an additional $1.50 a day will be placed on water bills with $1.25 going to the Sanitation Service Authority for garbage collection and the remaining 25 cents to be retained by Barbados Water Authority.
For commercial entities, the cost will be 50 per cent of their water bills, with half going to the SSA and the other half to the BWA.
The proceeds are also to aid in the maintenance of sewage systems.


text:
enum {
  AM_POLICEAPP = 7,
  TIMER_PERIOD_MILLI = 2000,
  TIMER_STILL_ALIVE = 5000,
  TIMER_MOVEMENT_DETECTED = 30000,
  TIMER_MSN_DETECTED = 30000,
  MSGTYPE_STILLALIVE = 100,
  MSGTYPE_MOVEMENTDETECTED = 101,
  MSGTYPE_MSNDETECTED = 102,
  TIMER_START=5000,
  TIMER_FAIL_START=1000,
};

typedef nx_struct PoliceAppMsg_StillAlive {
  nx_uint16_t messageType;
  nx_uint16_t nodeid;
  nx_uint16_t counter;
} PoliceAppMsg_StillAlive;

typedef nx_struct PoliceAppMsg_MovementDetected {
  nx_uint16_t messageType;
  nx_uint16_t nodeid;
  nx_uint16_t counter;
} PoliceAppMsg_MovementDetected;

typedef nx_struct PoliceAppMsg_MSNDetected {
  nx_uint16_t messageType;
  nx_uint16_t nodeid;
  nx_uint16_t msnid;
  nx_uint16_t counter;
} PoliceAppMsg_MSNDetected;

#endif


text:
Bennett urges game to persist with World Cup 9s
Troy Whittaker NRL.com Reporter
Wed 16 Oct 2019, 02:58 PM
England coach Wayne Bennett believes the World Cup 9s will do wonders for the international game if the concept is given a chance to make an imprint.
Twelve men's and four women's teams will compete in the inaugural tournament this Friday and Saturday, with a motza of established and rising stars aiming to light up Bankwest Stadium.
The shortened format has been on hiatus since the NRL Auckland Nines was axed after four editions in 2017.
Bennett hopes the World Cup 9s becomes a regular event.
"We've got a history of getting out of things too quick. Hopefully, we'll stay with it and add something to the rugby league calendar," Bennett said.
"It's good for all the nations to be here and give young guys opportunities without actually playing full international [games].
"It's great to see all the teams and the women are here. It's not easy to do, obviously there's a bit of expense involved, but we've just got to be consistent with it and have the confidence that it can work for us and grow the game."
World Cup 9s gives Austin a taste of life under Wayne
The South Sydney mentor hosed down suggestions Nines football and Test matches are an overload on players following the arduous NRL season.
"I don't think it's too tough at all. Every year now we're playing internationals somewhere in the world," Bennett said.
"I don't think it's an issue personally. Players have allocated time off now and they want to play internationals. That's the bottom line here - they want to play for their countries and we shouldn't deny them that opportunity."
World Cup 9s Player Focus: Elliott Whitehead
England will field a formidable Nines side including Gareth Widdop, George Williams, James Graham, Ryan Hall and Blake Austin.
The obvious absentee forward Sam Burgess, who has also been ruled out of Great Britain's first tour in 12 years due to a persistent shoulder injury.
Bennett insisted his Rabbitohs captain will be fine to suit up in 2020 despite fears for the 30-year-old's future.
"[Sam's shoulder] is bad enough for him not to be here to play but he'll have work done on it and see where it goes from there," Bennett said.
Dragons prop Graham has taken over as England skipper from Burgess - and Bennett said the veteran is most deserving of the honour.
Bennett slams talk of early retirement for Burgess
In addition to leading the nation in the Nines, Graham will play his 50th overall Test when Great Britain meet Tonga later this month.
"He epitomises what England are about. He wants to be here, he does his best, he plays tough football all season," Bennett said.
As for how the 34-year-old's legs will handle the helter-skelter nature of Nines?
"They're slow but they'll go," quipped Bennett.
For ticket and travel packages for the Downer Rugby League World Cup 9s Sydney 2019, head to nrl.com/tickets.
'Smacked with a shovel': Behind the scenes of Sam's finest hour
Fri 01 Nov, 2019
England pays tribute to Sam Burgess
Thu 31 Oct, 2019
Burgess ruled out of Lions tour with shoulder injury
Wed 09 Oct, 2019
Bennett praises passion of Burgess and Graham as Lions jersey launched
History to be made in Canberra's Battle of Britain
Wed 15 May, 2019


Incoming Wellington coach Andre Bell pronounced himself well satisfied after the Lions scored a bonus point ITM Cup win over Otago at Carisbrook on Saturday night.
Exciting wing prospect Julian Savea scored two tries as Wellington comfortably beat Otago 35-22 in the ITM Cup match at Carisbrook on Saturday night.
Spending hours slaving in the gym during the off-season appears to have paid off for Wellington midfielder Shaun Treeby.
Upset after a poor display last week, Wellington heads to Dunedin knowing Otago will be looking for a lift for its first win of the season.


text:
Cette page concerne des événements qui se sont produits durant l'année 1875 dans la province canadienne du Manitoba.

Politique
 Premier ministre : Robert Atkinson Davis
 Lieutenant-gouverneur : Alexander Morris
 Législature :

Événements
 Louis Riel est accordé par l'amnistie à condition qu'il soit banni pour cinq ans.
 31 mars :
 le libéral Andrew Bannatyne remporte sans opposition l'élection partielle de Provencher à la suite de la démission de Louis Riel le 25 février dernier.
 ouverture de la première session de la .
 Avril :  remporte la première élection partielle provinciale de Kildonan.
 14 mai : à peine un mois d'ouverture, la session est prolongée.

Naissances

Décès
 14 décembre : Marie-Anne Gaboury, grand-mère de Louis Riel et première femme de descendance européenne à voyager et à coloniser ce qui est maintenant l'ouest canadien.

Voir aussi
 L'année 1875 dans le monde
 1875 au Canada, 1875 en Colombie-Britannique, 1875 en Nouvelle-Écosse, 1875 au Nouveau-Brunswick, 1875 en Ontario, 1875 au Québec, 1875 aux Territoires du Nord-Ouest, 1875 aux États-Unis
 1875 en France, 1875 à Paris, 1875 en Suisse, 1875 en Italie

Notes et références

Chronologie du Manitoba
1875 au Canada


I had dinner at Padrecito last weekend — a newer, stylish Mexican restaurant in Cole Valley. My experience was so-so. While the decor, atmosphere, and menu are well done, I simply wasn't terribly impressed with what I ordered, nor with the service. As this was my first time in the restaurant, I'll give the latter the benefit of the doubt, but my lack of enthusiasm probably won't have me returning terribly soon.
Have you heard of pop up restaurants? This is usually where a small gathering of people share a meal cooked by a well-known or amateur chef in a temporary location. They are often relatively impromptu, and generally focus on community and hospitality. The PopUp Dinner hosted by Handmade Events takes this concept to a whole new level by gathering thousands of people together to share in a picnic dinner for one evening of the year. The catch? The location is not disclosed until 3pm on the day of the event.
Yes, it seems that every other weekend there is some amazing food or beverage festival in this grand city of ours, and next weekend is no exception. The Eat Drink SF festival (formerly SF Chefs) will be taking place at Fort Mason August 1-3, 2014, with a huge variety of events from classes to dinners to parties spanning the three-day event.
Do you love coffee? So many of us do nowadays. SF has been one of many special places for coffee culture incubation over the last many years, and is now hosting its third annual Coffee-Con on July 26, 2014 at Terra Gallery (511 Harrison, at First). Come one, come all — coffee-lovers unite for Coffee-Con 2014!


text:
Q: How Spring @Autowired binds the SessionFactory object even if there is no SessionFactory instance available I'm using Hibernate and Spring with Java-based configurations. My config file is this one:
@Bean
@Autowired
public HibernateTransactionManager transactionManager(SessionFactory s) {
   HibernateTransactionManager txManager = new HibernateTransactionManager();
   txManager.setSessionFactory(s);
   return txManager;
}

@Bean
public LocalSessionFactoryBean sessionFactory() {
    LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
    sessionFactory.setDataSource(dataSource());
    sessionFactory.setPackagesToScan(new String[] { "dto" });
    sessionFactory.setHibernateProperties(hibernateProperties());
    return sessionFactory;
 }

Working fine. No problem with this, but when I manually try to set the sessionfactory parameter for trasactionManager, like this:
@Bean
@Autowired
public HibernateTransactionManager transactionManager(SessionFactory s) {
   HibernateTransactionManager txManager = new HibernateTransactionManager();
   txManager.setSessionFactory(sessionFactory());
   return txManager;
}

The IDE is showing:
`The method setSessionFactory(SessionFactory) in the type HibernateTransactionManager is not applicable for the arguments (LocalSessionFactoryBean)`

So, I created a sessionFactory like below
@Bean
@Autowired
public SessionFactory sessionFactory(DataSource dataSource) {
    LocalSessionFactoryBuilder sessionFactory = new LocalSessionFactoryBuilder(dataSource);
    sessionFactory.addProperties(hibernateProperties());
    sessionFactory.scanPackages("dto");
    return sessionFactory.buildSessionFactory();

}

and passed to trasactionManager It worked.
My question is how spring autowired the sessionFactory object even if there is no no sessionFactory instance present in the 1st approach?

A: You need to change the method return types from SessionFactory to HibernateTransactionManager.
This is how it should look like:
@Bean
@Autowired
public HibernateTransactionManager transactionManager(SessionFactory s) {
   HibernateTransactionManager txManager = new HibernateTransactionManager();
   txManager.setSessionFactory(s);
   return txManager;
}

@Bean
public SessionFactory sessionFactory() {
    Properties properties = new Properties();
    properties.setProperty("hibernate.show_sql", "true")
    properties.setProperty("hibernate.cache.region.factory_class", "org.hibernate.cache.ehcache.EhCacheRegionFactory")
    properties.setProperty("hibernate.cache.use_query_cache", "true")
    properties.setProperty("hibernate.cache.use_second_level_cache", "true")
    properties.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect")

    return new LocalSessionFactoryBuilder(dataSource())
        .scanPackages("dto")
        .addProperties(properties)
        .buildSessionFactory();
}

redpajama_set_name: RedPajamaStackExchange


text:
Vol 5 (2017): CBU International Conference Proceedings 2017 /
METHODS OF ATTRACTION AND RETENTION OF GENERATION Z STAFF
Irina Sidorcuka RISEBA University, 3 Meza str., Riga, Latvia
Anna Chesnovicka Senior Schedule Specialist, Evolution Latvia,151 Brivibas str., Riga, Latvia
DOI: https://doi.org/10.12955/cbup.v5.1030
Keywords: Generation Z, staff attraction, retention, employees 'values
The contemporary job market is facing the arrival of new type of employee –generation Z representatives, known as "digital natives", who are described as technological, social, global and developed, the most connected, clever and educated generation thatever existed before, driven by social media, influenced by brands and musical culture. At the moment, this generation is considered to be two billion big.This study is looking at the existing methods of generation Z staff attraction and retention in the company Evolution (Latvia), where they make a majority. Further analyzing which of the methods are perceived as most efficient and which values of this generation are met by the company. Methods include company literature review, questionnaires and interviews. It was concluded the Gen Z have specific preferences in communication and can be reached through a variety of social platforms and special events provided by the company. As potential and current employees, they are not looking for life-long employment, put forward their specific values and expect the potential employer to attract them by meeting their needs in terms of flexible working hours, flexible (varied) jobs where their individuality can be applied, company excellent reputation, innovation, speed of change, platform for educational and promotional advancement, specific fringe benefits.
Andruss, P. (2012). How to Attract -- And Retain -- Staff When You Can't Pay Big Bucks. [ONLINE] Available at: http://www.entrepreneur.com/article/223516. [Accessed 18 March 16].
Applegate M.(2015). Difference Between the Internal & External Recruitment Strategies. [ONLINE] Available at : http://smallbusiness.chron.com/difference-between-internal-external-recruitment-strategies-25708.html[Accessed 18 March 16].
Armstrong, M., (2006). A Handbook of Human Resource Management Practice. 5th ed. London and Philadelphia: Kogan Page.
Barber, A. (1998). Recruiting employees: Individual and organizational perspectives. Thousand Oaks, CA: Sage Publications.
Bernstein,R. (2015).Move Over Millennials - Here Comes Gen Z.[ONLINE] Available at :http://adage.com/article/cmo-strategy/move-millennials-gen-z/296577/. [Accessed 25 March 16].
Biro, M.M. (2015). What Gen Z's Arrival In The Workforce Means For Recruiters. [ONLINE] Available at: http://www.digitalistmag.com/future-of-work/2015/10/05/what-gen-z-arrival-means-for-recruiters-03509530. [Accessed 18 March 16].
Blacksmith, N., Poeppelman, T (2014). 'Three Ways Social Media and Technology Have Changed Recruitment', TIP: The Industrial-Organizational Psychologist, 52, 1, pp. 114-121, Academic Search Complete, EBSCOhost, viewed 22 December 2015.
Burrus. D. (2016). Gen Z Will Change Your World Again. Available at: http://www.huffingtonpost.com/daniel-burrus/gen-z-will-change-your-wo_b_9150214.html. [Accessed 20 March 16].
Chand, S. (2015). Sources of Recruitment of Employees: Internal and External Sources | Recruitment. Available at: http://www.yourarticlelibrary.com/recruitment/sources-of-recruitment-of-employees-internal-and-external-sources-recruitment/25954/. [Accessed 20 March 16].
Crossley, J. C. and Jamieson, L. M. (1997). Introduction to Commercial and Entrepreneurial Recreational. Champaign, IL :Sagamore Publishing
Decenzo, D.A., RobinsP.S.(2014). Sources of Recruitment. Availableat:http://www.zeepedia.com/read.php?sources_of_recruitment_alternatives_to_recruitment_quantity_of_the_applicants_quality_of_the_applicants_human_resource_management&b=33&c=17. [Accessed 20 March 16].
Dishman, L. (2016). These Are The Best Employee Benefits And Perks. [ONLINE] Available at: http://www.fastcompany.com/3056205/the-future-of-work/these-are-the-best-employee-benefits-and-perks. [Accessed 23 March 16].
Evolution Gaming Group. 2016. Year-end report | January – December 2015| . [ONLINE] Available at:https://www.evolutiongaming.com/sites/default/files/477485.pdf. [Accessed 28 March 16].
Half, R. (2015). Get ready for Z Generation. [ONLINE] Available at:https://www.roberthalf.com/sites/default/files/Media_Root/images/rh-pdfs/rh_0715_wp_genz_nam_eng_sec.pdf. [Accessed 20 March 16].
Harris, J. (2016). Baby Boomers to Generation Z what's in store for the workplace in 2016?. [ONLINE] Available at: https://www.linkedin.com/pulse/baby-boomers-generation-z-whats-store-workplace-2016-james-harris. [Accessed 20 March 16].
Hawkins, M. (2007). Alpinelink. [ONLINE] Available at: http://www.alpinelink.com/Docs/Employees_Are_Assets.pdf. [Accessed 27 December 15].
Horton,M. (2014 ). What are some examples of common fringe benefits?. [ONLINE] Available at: http://www.investopedia.com/ask/answers/011915/what-are-some-examples-common-fringe-benefits.asp. [Accessed 25 March 16].
LETA. 2015. 'Evolution Gaming' nākamgadplānopieņemtdarbā 600 jaunusdarbiniekus. [ONLINE] Available at: http://www.delfi.lv/bizness/uznemumi/evolution-gaming-nakamgad-plano-pienemt-darba-600-jaunus-darbiniekus.d?id=46701873. [Accessed 22 December 15].
Mason, H. (2014). Attracting candidates. [ONLINE] Available at: http://www.otago.ac.nz/humanresources/toolkit/recruiting/attracting-candidates/. [Accessed 23 March 16].
McCrindle, M. (2015). Generation Z Digital. [ONLINE] Available at: http://generationz.com.au/digital/. [Accessed 20 March 16].
Muscalu, E (2015). 'Sources of human resources recruitment organization', RevistaAcademieiFortelorTerestre, 20, 3, pp. 351-359, Academic Search Complete, EBSCOhost, viewed 18 March 2016.
Mueller, J.(2015). Generation Z Characteristics. [ONLINE] Available at: http://www.ehow.com/info_8056211_generation-characteristics.html. [Accessed 20 March 16].
O'Malley, S (2006), 'Attracting and Retaining Generation Y Employees', Insurance Advocate, 117, 24, p. 27, MasterFILE Premier, EBSCOhost, viewed 27 December 2015.
Osoian, C.,Zaharie, M (2014). 'Recruitment for competencies in public and private sectors', Transylvanian Review Of Administrative Sciences, 41E, pp. 129-145, Academic Search Complete, EBSCOhost, viewed 22 December 2015.
Regovich, D. (2014). Benefits that Attract and Retain Employees. Available at: http://www.plasticsbusinessmag.com/stories/082415/benefits-attract-retain-employees.shtml#.VuwXN9KLTIU. [Accessed 18 March 16]
Reichard, C., Siegel, J., Wagner, D.(2014). Human Resource Management. Available at: http://www.slideshare.net/maiwandtasal/human-resource-management-46044404. [Accessed 22 March 16].
Robertson, Q., Collins, C., Oreg, S. (2005). The effects of recruitment message specificity on applicant attraction to organizations. Journal of Business and Psychology, 19, 319-339.
Shamis, B.(2015). Employee Recruiting Sources. Available at: http://selectingwinners.com/employee-recruiting-sources/. [Accessed 22 March 16].
Stone, D, Deadrick, D, Lukaszewski, K, & Johnson, R (2015). 'The influence of technology on the future of human resource management', Human Resource Management Review, 25, 2, p. 216, MasterFILE Premier, EBSCOhost, viewed 27 December 2015.
Sunderberg, J. (2014). How LinkedIn has changed recruitment in the UK. The Under- The Industrial Organizational Psychologist 121 coverRecruiter.com. Retrieved from: http://theundercoverrecruiter.com/ linkedin-changed-recruitment-uk/
Vol 5 (2017): CBU International Conference Proceedings 2017
Copyright (c) 2017 Irina Sidorcuka, Anna Chesnovicka
Authors retain copyright and grant the journal right of first publication with the work simultaneously licensed under a Creative Commons Attribution License (Creative Commons Attribution License 3.0 - CC BY 3.0) that allows others to share the work with an acknowledgement of the work's authorship and initial publication in this journal.
info@iseic.cz, www.iseic.cz, ojs.journals.cz


Personally I think that If there's a part of you that wants another, then that's how you know. I think you know for sure when you're done.
That sounds like a good point to be at, and give you more time to think rationally about it. Good luck!
Not a lot of advice here on time gap etc lol but as ridiculously complicates logistics are with three of the same age it's becoming more and more obvious that interaction between makes it worth it for me. Not that we had much of a choice. It's all relative you see… When you only know 3, the thought of 2 or 1 is like: eaaaasy lol logistics always find a way to you when you have to adjust. I suppose with time it'll be clearer to you. BTW your boy is such a cutie! Don't worry about moving and teeth. Mine are 11 months and two move around by sliding their bum on the floor and only one has shown a tooth.
Ha Little T seems to have front teeth coming through but they may receed again!!!
Youre right, you get used to your particular situation, so id manage 2 if the situation arose.


All posts with Style "Vineyard"
Ladies! The last part of today's triple feature honoring Maitri and Shibir as one of our selections for Best of 2018 continues with a beautiful and relaxed outdoor cocktail hour followed by a luxury reception at the fascinating The Meritage Resort and Spa! Under the supervision and coordination of Vermilion Weddings, the celebrations were totally on point and beyond gorgeous! Perfect neutral colors reigned all over the tables and the majestic wedding stage exuded lavishness with a shiny backdrop, lush orchids and fragrant roses added a touch refinement to the setting. Maharani Maitri decide to flaunt an alluring white dress for her cocktail time and swapped it later for a glittery gown! Both post-ceremony attires looked fantastic and suited perfectly with the lovely loose hairstyle that M-Sutra Bride created for our princess bride. As the night moved on, Jhakaas Entertainment's music ensured a night of pure fun and Jalsa made the occasion even more special with their traditional delicacies! Relive all the splendor of this auspicious occasion in the gallery by the fabulous wedding storyteller Sameer Soorma Studios!
Check back with me Monday, Maharanis!
Sameer Soorma Studios, M-Sutra Bride and Vintage Carriage Company are members of the Platinum Guide. Love what you see? Explore their portfolios.
It's time to check the take number two of the wonderful union between Maitri and Shibir in Napa Valley! Amidst the natural splendor of the wine country, Raja Shibir rode a regal white horse courtesy of Vintage Carriage Company and entered joyfully to the ceremony joined by a large party of friends and family. The big day calls for nothing but perfection at the exclusive The Meritage Resort and Spa who prepared a special outdoor spot along with Vermilion Weddings whose team brilliantly planned an unforgettable day. Romantic and charming are the best words to describe the dreamy ceremony that took place under a stunning gazebo festooned by NC Event Design with fresh greenery and lovely white and lavender roses! Two wine barrels held the floral arrays that welcomed the guests into the Holy union while a customed aisle runner showcased the couple's sweet monogram! Sameer Soorma Studios took advantage of the natural light of the scenic vineyards to capture the emotions and the deep connection of this heart-melting twosome! Go to the gallery and see the complete photo session and remember to take a look at this union in the pages of our Best of 2018!
Maharanis, It's finally Friday and to start the weekend off right Sameer Soorma Studios takes us to the rolling meadows of the beautiful Napa Valley to witness the wine country Indian wedding of Maitri and Shibir, showcased in our Best of 2018 Magazine! The splendid celebrations took place after an unforgettable Sangeet night at the Aria Wedding and Banquet Facility and after a special beauty session from M-Sutra Bride that prepared her for the special day! Maitri invited over her bridesmaids and scheduled plentiful hair and makeup time to create her voluminous hair and divine makeup look while her besties had some pampering time with Anu Beauty Parlor. Our Maharani went for a cream color for her bridal trousseau and completed her ceremonial look with the perfect pair of silver color heels! I love every piece of jewelry, especially the maanga tikka that looks amazing on her while the charming fuchsia blooms of her bouquet added a cheerful pop of color to the ensemble! After sipping some mimosas, our bride was ready to go and ready to WOW Shibir! Check out every awesome detail of Maitri's marvelous look in our full gallery!
Pre-wedding portraits and ceremony snaps are coming up!
Hey there ladies, today we celebrate the beauty of a true Hinjew or Jewish/Hindu wedding! The lovely Roshni and Scott decided to throw a celebration that honored both of their vibrant cultures, faiths and above all, their love for each other! Before they smash the glass and exchanged garlands, these two had the prettiest outdoor inspired photo shoot in the amazing gardens and vineyards of Ru's Farm with the extraordinary photo crew of Apollo Fotografie. A true journal of their affection and shiny adoration came out of this charming photo session. The lovely bride, Roshni turned into an absolute Indian princess as she flaunted a custom-made white and gold lehenga with family heirlooms that she completed with an equally stunning hair and makeup look by Brush Salon. The dashing groom, Scott, was a style beacon, mastering a classic combination of a navy blue suit with brown shoes that also stole the spotlight. See how these two rocked their outfits in the most intimate moment of their affair in our full gallery!
These two were ready to tie the knot and the pictures are to die for! Check out our next post.
Apollo Fotografie is a member of the Platinum Guide. Love what you see? Explore their portfolios.
I conclude the marvelous fete of Maharani Komil and Preet at the Terrace Banquet Centre with this tantalizing reception. Komil has swept me away with an enchanting, light as air lengha in the romantic shade of bubbly champagne. One of the most important decisions you make as a bride is securing the need to your beauty look! Blush Boutique Artistry added to this bride's charm by gracing her with dewy skin and effortless flowing locks. G.P.S. Décors and Bloomen Brides reimagined the Indian wedding décor and recreated the sweetheart stage to be party ready. Nothing sets the pace for a good party than a rocking DJ! J-Statik made sure the dance floor was packed all night! Here is your sneak peek of the curated collection captured by Banga Studios. With the entire soiree forever memorialized in our gallery!
Drop me a line down below to share your favorite moment!
Banga Studios and DJ Malak Gandhi are members of the Platinum Guide. Love what you see? Explore their portfolios.


As mentioned under "benefits" designers can easily split off animation sequences (see buttons below animation). In the near future there will be interfaces to blend strategic data and dataSculptures into augmented/ virtual reality (AR/VR) environments. Development will be driven by the defense and automotive industry: The German VDI bets on augmented reality due to its better integration into processes. With bigger 3D printers and falling production costs - triggered by demand of the building industry- the (formerly militäry) sandbox may return as a stimulation tool(see illustration above), even to populate headquarters and events to be accompanied by AR/VR devices.
MeliesArt presently turns to morphing the "skins" of dataSculptures into surfaces that can be queried by data pens and flexible OLED panels, based on a recent patent of Volker Schweisfurth. This will facilitate "opening the content space" of all the results that are hidden behind such models.


text:
Pat Farnack
Steve Scott and Michael Wallace
The CBS Evening News
Wayne Cabot and Paul Murnane
1 Thing Sustainability
Difference Makers: Stories From Main Street
Parents Happy LI School Near Cesspool Closing
Teachers Demand NYC DOE Settle Racial Discrimination Suit
Sign Outside Pleasantville Church Vandalized
3 Men Dead In 3 Fires In NYC
Hundreds Pack Plainview Center With Food On MLK Day
WCBS 880 Morning News Roundup 1-20
Amid Legal Battle, Judge Halts Construction Of Homeless Shelter In Rockaways
Vatican Orders Dolan To Probe Brooklyn Bishop Allegation
Putrid Cesspool Forces Closure Of Long Island School
Trump Slams Plan For $119B Seawall To Protect NYC
Find Like Minded Business Owners at the Brooklyn Navy Yard
MOUTH "AND" BODY
Common Traits In Successful Job Seekers
Commemorating Dr. Martin Luther King, Junior's Birthday
A Way Around The Red Tape
The 880 All Local - Evening Edition - Sunday, January 19, 2020
Non-Profit Quartet Offering Free Lessons To Anyone Willing To Try
The 880 All Local - Morning Edition - Sunday, January 19, 2020
The 880 All Local -- Morning Edition -- Saturday, January 18, 2020
Phone: 877-987-WCBS
Fast-Moving Fire Destroys Several Row Houses On Staten Island
Parents Relieved LI School Near Cesspool Closing After Years Of Illness Complaints
Teachers Gather At City Hall, Demand City DOE Settle Racial Discrimination Suit
Sign With Pride Flag Vandalized Outside Pleasantville Church
3 Men Dead In 3 Fires In 3 Boroughs; 2 Deemed Suspicious
Hundreds Pack Plainview Mid-Island Y JCC With Food On MLK Day Of Service
Vatican Orders Cardinal Dolan To Probe Allegation Of Sex Abuse By Brooklyn Bishop
UPDATE: 1-Year-Old Girl Returned To Bronx Home, Police Say No Crime Committed
Cesspool, Septic Systems Force Closure Of Long Island School, Relocation Of Over 600 Students
Thousands Rally At Virginia's Capital For Gun Rights
Bloomberg Offers Plan To Tackle Racial Economic Inequality
2 Officers Killed In Honolulu Shooting; Related Fire Spreads To Multiple Homes
National Archives: 'We Made A Mistake' Altering Trump Photos
Trump Team Issues Fiery Response After Dems File Brief Saying President 'Must Be Removed'
Boy Arrested After Shooting Kills 4 In Utah Town
Thousands Gather For Women's March Rallies Across US
Mets, Beltran 'Mutually Part Ways' In Wake Of Sign Stealing Scandal
Mets Stay Silent On New Manager Carlos Beltrán's Future
Mets, Syndergaard Agree To $9.7 Million Salary For 2020
Play Ball! Here's WCBS 880's 2020 Mets Spring Training Broadcast Schedule
Mets Find Relief In New Year, Introducing Dellin Betances
Céspedes Base Pay Cut From $29.5M To $6M
Ex-All-Star Wacha, Mets Complete Bonus-Laden $3 Million Deal
Reports: Porcello, Mets Agree To $10 Million, 1-Year Deal
Cohen To Increase Stake In Mets; Wilpons Remain In Control
Reports: Zack Wheeler Reaches Deal With Phillies
Michael Wallace and Steve Scott
2 Police Officers Killed By Shooter in Honolulu
Kidnapped Girl, 14, Rescued by Friends Who Used Snapchat to Find Her
CDC Dispatching Staff to Several Airports to Screen Passengers for Deadly Virus
Alan Dershowitz: 'I'm Not a Full-Fledged Member' of Impeachment Defense Team
Billionaire's Search for a Moon Trip Girlfriend Gets 27,722 Applicants
'King of Queens' and 'Modern Family' Actress Norma Michaels Dead at 95
Turning 21 in 2020? Natural Light Wants to Give You Free Beer
Svetlana Kuznetsova, of Russia, returns to Ashleigh Barty, of Australia, during the Western & Southern Open tennis tournament, Saturday, Aug. 17, 2019, in Mason, Ohio. (AP Photo/John Minchillo)
Barty upset in Cincy semifinal; Djokovic also knocked out
MASON, Ohio (AP) — Ashleigh Barty's chance to move back to No. 1 was only one victory away. At the end of an up-and-down week, she didn't have another comeback left.
Neither did Novak Djokovic, who came away with yet another disappointment in Cincinnati.
Barty lost to Svetlana Kuznetsova 6-2, 6-4 in the semifinals of the Western & Southern Open on Saturday. Djokovic ended the day with another stunner, getting overwhelmed by Daniil Medvedev's serve as the Russian pulled out a 3-6, 6-3, 6-3 victory.
It's been that kind of week in Cincinnati, with top players in both brackets either struggling or hurt heading into the U.S. Open.
The women's bracket has a lot questions with New York just around the corner. No. 1 isn't one of them.
Barty's seven-week run atop the field ended when Naomi Osaka edged ahead of her in the latest ranking. A victory Saturday would have moved Barty back ahead for the U.S. Open. Instead, she dropped the opening set for the third straight match and this time, there was no digging out.
"A week that we battled through," Barty said. "I think at times I played some good stuff. At times, I played some pretty awful stuff."
Which will it be for Barty at the Open? And will Osaka be in good enough shape to defend her title?
Osaka dropped out of her semifinal match Friday with discomfort in her left knee that caused her worry. She still plans to play in New York, but it's unclear whether the knee will be a problem.
And then there's Serena Williams, who retired in the finals at Toronto last Sunday because of back spasms. She also withdrew from Cincinnati before her first match, but stuck around to cheer sister Venus until her loss in the quarterfinals.
A resurgent Kuznetsova gave Barty no openings, knocking off a top-five player for the second time this week to reach her first final of the season. The 153rd-ranked player is recovering from seven-month layoff because of a knee injury.
In her ninth tournament of the season, she got her game together, winning her first Premier-level semifinal since 2017 at Madrid.
"Well, sometimes in life it's like this," Kuznetsova said. "It's like really small things change everything. Definitely it's different momentum I have now."
She'll face Madison Keys , who beat Sofia Kenin 7-5, 6-4 with the help of 14 aces. Keys ended her streak of failing to make it past the second round of her last three tournaments, playing through heat and humidity all week without problem.
"I feel really good" she said. "Every day I'm kind of waking up, hoping that everything still feels like it's in one piece and it feels really good."
In the men's bracket, Djokovic overcame concerns about his right elbow but couldn't prevail over Medvedev's 14 aces, some of them on 128 mph second serves. Djokovic had to problem with his right elbow, which tightened on Friday night.
Djokovic won the tournament for the first time last year, getting the only Masters 1000 title that had eluded him. He felt good about his chances heading into the U.S. Open.
"I see mostly positives in my game," Djokovic said. "Today I did lose a match, but I didn't do too much wrong. I lost to a player who was playing amazing."
Medvedev reached the final at Montreal last week and lost to Rafael Nadal. He's back to a title match again after fighting off a break point midway through the second set and closing with a flurry, winning 12 of the last 14 points to even the match and take the momentum.
He'll face David Goffin, who reached his first Masters 1000 final by beating Richard Gasquet 6-3, 6-4 . Goffin also is on an upswing after falling to No. 33 in the ATP rankings on June 10, his lowest since September 2014.
"Of course, it was a tough period there," Goffin said. "I was coming back from injuries. I had some trouble with my confidence. I couldn't find my rhythm, my game. So it's great now. I'm feeling great. I'm back at my best tennis."
The men's bracket also took several notable hits throughout the week.
Originally billed as a reunion of the Big Four — Djokovic, Nadal, Roger Federer and Andy Murray together for the first time since January — it quickly lost its luster. Nadal dropped out after winning the Rogers Cup, citing fatigue. Murray played singles for the first time since hip surgery in January and lost his opening match.
And Federer, the seven-time champion, failed to reach the weekend, losing in the quarterfinals.
More AP tennis: http://apnews.com/apf-Tennis and https://twitter.com/AP_Sports
AP Editorial Categories:
U.S. Open Tennis Championships
Athlete injuries
Athlete health


text:
CommunityBabies, Weddings & Obituaries
community, babies-weddings-obituaries, racing, racecaller, Bob Foran, Gilgandra
The list of New South Wales racecallers is the poorer following Thursday's passing of one of the most popular broadcasters in the state, Bob Foran. Bob Foran, 80, passed away at his Gilgandra home following a decade-long battle with illness. Bob was dubbed the 'Legend of Gilgandra' and during his illness he would regularly be stopped on the racecourse by every second person inquiring into his health. In 2015, Bob received a 'Special Recognition Award' during the Racing NSW Country and Provincial Awards night for his amazing accomplishment of calling his 60th Gilgandra Cup. "He was a very decent man and was a great racecaller," fellow racecaller and close friend, Col Hodges, told Racing NSW. "As he had been a horse trainer at one stage, just like his father, he was a great judge and knew how a horse was travelling during a race. Bob also possessed one of those 'easy to listen to' voices. "Whatever trade you're in, the best judges of a person are your peers and in that regard, Bob was highly respected within the entire racing industry." Bob called his first race on the radio when he was aged just 13 and since then, apart from calling races, he trained gallopers including Border Ghost who won more than 50 races in the bush. Bob also worked at Gilgandra Council. Bob once said: "I've called races from Lightning Ridge, Tamworth, Bathurst, Cowra, Cobar and everywhere in between; calling races is something special to me and it's where my heart is." Countless stories about Foran have been recalled and shared in the day's following his passing, Hodges one of those who spent much time with the popular racecaller. "I remember when Bob was going to call his 50th Gilgandra Cup," Hodges remarked. "I asked a heap of other well-known racecallers including John Tapp and Ian Craig for a short tribute for the racebook that day. "We also pitched in a few dollars to sponsor a race and called it the 'Bob Foran's 50th call of the Gilgandra Cup'. Bob didn't know anything about it and he was very proud when he first set eyes on the racebook. "Bob was loved in Gilgandra and they even named a stand after him. He was still calling non-TAB meetings up until recently and called at Mendooran and Collarenebri. Many of us will miss him terribly." While he was most well known in racing circles, Bob Foran was also an excellent sportsman having represented the Country Firsts side in cricket in 1961. Bob leaves behind his wife Shirley, son Paul, and daughters Bobbi and Peta. A funeral service for Bob Foran will be held at Gilgandra Racecourse at 11am on Thursday, June 14, followed by interment at the Gilgandra Cemetery. Friends and family are invited back to Gilgandra Golf Club for refreshments with the Foran family.
https://nnimgt-a.akamaihd.net/transform/v1/crop/frm/dCXpDgwTEgA52iNCe5aWtJ/d944c59c-a4ec-40b3-b854-f104be190b92.JPG/r0_9_3216_1826_w1200_h678_fmax.jpg
June 10 2018 - 4:30PM
Bob Foran remembered as the 'Legend of Gilgandra' following his passing
ONE OF THE GREATS: The respected Bob Foran pictured in his much loved surroundings of Gilgandra Jockey Club on Cup Day in 2014. Photo: FILE
The list of New South Wales racecallers is the poorer following Thursday's passing of one of the most popular broadcasters in the state, Bob Foran.
Bob Foran, 80, passed away at his Gilgandra home following a decade-long battle with illness.
Bob was dubbed the 'Legend of Gilgandra' and during his illness he would regularly be stopped on the racecourse by every second person inquiring into his health.
In 2015, Bob received a 'Special Recognition Award' during the Racing NSW Country and Provincial Awards night for his amazing accomplishment of calling his 60th Gilgandra Cup.
"He was a very decent man and was a great racecaller," fellow racecaller and close friend, Col Hodges, told Racing NSW.
"As he had been a horse trainer at one stage, just like his father, he was a great judge and knew how a horse was travelling during a race. Bob also possessed one of those 'easy to listen to' voices.
"Whatever trade you're in, the best judges of a person are your peers and in that regard, Bob was highly respected within the entire racing industry."
Bob called his first race on the radio when he was aged just 13 and since then, apart from calling races, he trained gallopers including Border Ghost who won more than 50 races in the bush.
Bob also worked at Gilgandra Council.
Bob once said: "I've called races from Lightning Ridge, Tamworth, Bathurst, Cowra, Cobar and everywhere in between; calling races is something special to me and it's where my heart is."
Countless stories about Foran have been recalled and shared in the day's following his passing, Hodges one of those who spent much time with the popular racecaller.
"I remember when Bob was going to call his 50th Gilgandra Cup," Hodges remarked.
"I asked a heap of other well-known racecallers including John Tapp and Ian Craig for a short tribute for the racebook that day.
"We also pitched in a few dollars to sponsor a race and called it the 'Bob Foran's 50th call of the Gilgandra Cup'. Bob didn't know anything about it and he was very proud when he first set eyes on the racebook.
"Bob was loved in Gilgandra and they even named a stand after him. He was still calling non-TAB meetings up until recently and called at Mendooran and Collarenebri. Many of us will miss him terribly."
While he was most well known in racing circles, Bob Foran was also an excellent sportsman having represented the Country Firsts side in cricket in 1961.
Bob leaves behind his wife Shirley, son Paul, and daughters Bobbi and Peta.
A funeral service for Bob Foran will be held at Gilgandra Racecourse at 11am on Thursday, June 14, followed by interment at the Gilgandra Cemetery.
Friends and family are invited back to Gilgandra Golf Club for refreshments with the Foran family.
Discuss "'Legend of Gilgandra' is fondly remembered"