text:
/**
 * \file
 * \brief System calls implementation.
 */

/*
 * Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, ETH Zurich.
 * All rights reserved.
 *
 * This file is distributed under the terms in the attached LICENSE file.
 * If you do not find this file, copies can be found by writing to:
 * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
 */

#include <kernel.h>
#include <syscall.h>
#include <barrelfish_kpi/syscalls.h>
#include <capabilities.h>
#include <mdb/mdb.h>
#include <dispatch.h>
#include <paging_kernel_arch.h>
#include <exec.h>
#include <arch/x86/apic.h>
#include <arch/x86/perfmon_intel.h>
#include <arch/x86/global.h>
#include <barrelfish_kpi/sys_debug.h>
#include <barrelfish_kpi/lmp.h>
#include <barrelfish_kpi/dispatcher_shared_target.h>
#include <barrelfish_kpi/syscall_overflows_arch.h>
#include <trace/trace.h>
#include <arch/x86/debugregs.h>
#include <arch/x86/syscall.h>
#include <arch/x86/timing.h>
#include <fpu.h>
#include <useraccess.h>
#ifdef __scc__
#       include <rck.h>
#else
#       include <arch/x86/perfmon_amd.h>
#       include <arch/x86/ipi_notify.h>
#endif

/* FIXME: lots of missing argument checks in this function */
static struct sysret handle_dispatcher_setup(struct capability *to,
                                             int cmd, uintptr_t *args)
{
    capaddr_t odptr = args[0];
    capaddr_t cptr = args[1];
    uintptr_t rundepth = args[2];
    int depth = rundepth & 0xff;
    bool run = rundepth >> 8;
    capaddr_t vptr = args[3];
    capaddr_t dptr = args[4];

    return sys_dispatcher_setup(to, cptr, depth, vptr, dptr, run, odptr);

}

static struct sysret handle_dispatcher_properties(struct capability *to,
                                                  int cmd, uintptr_t *args)
{
    enum task_type type = args[0] >> 16;
    unsigned short weight = args[0] & 0xffff;
    unsigned long deadline = args[1];
    unsigned long wcet = args[2];
    unsigned long period = args[3];
    unsigned long release = args[4];

    return sys_dispatcher_properties(to, type, deadline, wcet, period,
                                     release, weight);
}

// XXX: FIXME: cleanup and handle errors!
static struct sysret handle_dispatcher_perfmon(struct capability *to,
                                               int cmd, uintptr_t *args)
{
#if 1
    return SYSRET(SYS_ERR_PERFMON_NOT_AVAILABLE);

#else
    perfmon_counter_t idx = (perfmon_counter_t)(args[0]);

    // Currently only AMD perfmon is supported
    if(!perfmon_amd_supported()) {
        return SYSRET(SYS_ERR_PERFMON_NOT_AVAILABLE);
    }

    uint64_t operation = args[1];
    switch(operation) {
    case 0: {
        perfmon_event_t event = args[2];
        perfmon_mask_t umask = args[3];
        bool os = args[4];
        perfmon_amd_measure_start(event, umask, os ? true : false, idx);
        break;
    }

    case 1: {
        uint64_t val = args[2];
        perfmon_amd_measure_write(val, idx);
        break;
    }

    default:
        panic("Unknown performance monitoring function!");
    }

    return SYSRET(SYS_ERR_OK);
#endif
}

static struct sysret handle_retype_common(struct capability *root,
                                          uintptr_t *args,
                                          bool from_monitor)
{
    // Source capability cptr
    capaddr_t source_cptr      = args[0];
    // Type to retype to
    enum objtype type        = args[1] >> 16;
    // Object bits for variable-sized types
    uint8_t objbits          = (args[1] >> 8) & 0xff;
    // Destination cnode cptr
    capaddr_t  dest_cnode_cptr = args[2];
    // Destination slot number
    capaddr_t dest_slot        = args[3];
    // Valid bits in destination cnode cptr
    uint64_t dest_vbits      = args[1] & 0xff;

    return sys_retype(root, source_cptr, type, objbits, dest_cnode_cptr,
                      dest_slot, dest_vbits, from_monitor);
}

static struct sysret handle_retype(struct capability *root, int cmd, uintptr_t *args)
{
    return handle_retype_common(root, args, false);
}

static struct sysret handle_create(struct capability *root, int cmd,
                                   uintptr_t *args)
{
    /* Retrieve arguments */
    enum objtype type         = args[0] >> 16;
    uint8_t objbits           = (args[0] >> 8) & 0xff;
    capaddr_t dest_cnode_cptr = args[1];
    capaddr_t dest_slot       = args[2];
    uint8_t dest_vbits        = args[0] & 0xff;

    return sys_create(root, type, objbits, dest_cnode_cptr, dest_slot,
                      dest_vbits);
}

/**
 * Common code for copying and minting except the mint flag and param passing
 */
static struct sysret copy_or_mint(struct capability *root,
                                  uintptr_t *args, bool mint)
{
    /* Retrive arguments */
    capaddr_t  destcn_cptr   = args[0];
    capaddr_t  source_cptr   = args[1];
    capaddr_t dest_slot      = args[2] >> 16;
    int      destcn_vbits  = (args[2] >> 8) & 0xff;
    int      source_vbits  = args[2] & 0xff;
    uintptr_t param1, param2;
    // params only sent if mint operation
    if (mint) {
        param1 = args[3];
        param2 = args[4];
    } else {
        param1 = param2 = 0;
    }

    return sys_copy_or_mint(root, destcn_cptr, dest_slot, source_cptr,
                            destcn_vbits, source_vbits, param1, param2, mint);
}

static struct sysret handle_mint(struct capability *root, int cmd, uintptr_t *args)
{
    return copy_or_mint(root, args, true);
}

static struct sysret handle_copy(struct capability *root,
                                 int cmd, uintptr_t *args)
{
    return copy_or_mint(root, args, false);
}

static struct sysret handle_delete_common(struct capability *root,
                                          uintptr_t *args, bool from_monitor)
{
    capaddr_t cptr = args[0];
    int bits     = args[1];
    return sys_delete(root, cptr, bits, from_monitor);
}

static struct sysret handle_delete(struct capability *root, int cmd, uintptr_t *args)
{
    return  handle_delete_common(root, args, false);
}

static struct sysret handle_revoke_common(struct capability *root,
                                          uintptr_t *args,
                                          bool from_monitor)
{
    capaddr_t cptr = args[0];
    int bits     = args[1];
    return sys_revoke(root, cptr, bits, from_monitor);
}

static struct sysret handle_revoke(struct capability *root,
                                   int cmd, uintptr_t *args)
{
    return  handle_revoke_common(root, args, false);
}

static struct sysret handle_map(struct capability *pgtable,
                                int cmd, uintptr_t *args)
{
    /* Retrive arguments */
    capaddr_t  source_cptr   = args[0];
    capaddr_t dest_slot      = args[1] >> 16;
    int      source_vbits  = args[1] & 0xff;
    uintptr_t flags, offset,pte_count;
    flags = args[2];
    offset = args[3];
    pte_count = args[4];

    return sys_map(pgtable, dest_slot, source_cptr, source_vbits,
                   flags, offset, pte_count);
}

static struct sysret handle_unmap(struct capability *pgtable,
                                  int cmd, uintptr_t *args)
{
    size_t mapping_caddr = args[0];
    size_t entry = args[1] & 0x3ff;
    size_t pte_count = (args[1]>>10) & 0x3ff;
    pte_count += 1;
    int mapping_bits = (args[1]>>20) & 0xff;

    errval_t err;
    struct cte *mapping = NULL;
    err = caps_lookup_slot(&dcb_current->cspace.cap, mapping_caddr, mapping_bits,
                           &mapping, CAPRIGHTS_READ_WRITE);
    if (err_is_fail(err)) {
        return SYSRET(err_push(err, SYS_ERR_CAP_NOT_FOUND));
    }

    err = page_mappings_unmap(pgtable, mapping, entry, pte_count);
    return SYSRET(err);
}

/// Different handler for cap operations performed by the monitor
static struct sysret monitor_handle_retype(struct capability *kernel_cap,
                                           int cmd, uintptr_t *args)
{
    errval_t err;

    struct remote_retype_syscall_overflow * overflow =
        (struct remote_retype_syscall_overflow *) args[0];

    assert(overflow != NULL);

    capaddr_t root_caddr = overflow->rootcap_addr;
    capaddr_t root_vbits = overflow->rootcap_vbits;

    struct capability *root;
    err = caps_lookup_cap(&dcb_current->cspace.cap, root_caddr, root_vbits,
                          &root, CAPRIGHTS_READ);
    if (err_is_fail(err)) {
        return SYSRET(err_push(err, SYS_ERR_ROOT_CAP_LOOKUP));
    }

    /* XXX: conceal first word of arguments */
    return handle_retype_common(root, &args[1], true);
}

/// Different handler for cap operations performed by the monitor
static struct sysret monitor_handle_delete(struct capability *kernel_cap,
                                           int cmd, uintptr_t *args)
{
    errval_t err;

    capaddr_t root_caddr = args[0];
    capaddr_t root_vbits = args[1];

    struct capability *root;
    err = caps_lookup_cap(&dcb_current->cspace.cap, root_caddr, root_vbits,
                          &root, CAPRIGHTS_READ);
    if (err_is_fail(err)) {
        return SYSRET(err_push(err, SYS_ERR_ROOT_CAP_LOOKUP));
    }

    /* XXX: conceal first two words of arguments */
    return handle_delete_common(root, &args[2], true);
}

/// Different handler for cap operations performed by the monitor
static struct sysret monitor_handle_revoke(struct capability *kernel_cap,
                                           int cmd, uintptr_t *args)
{
    errval_t err;

    capaddr_t root_caddr = args[0];
    capaddr_t root_vbits = args[1];

    struct capability *root;
    err = caps_lookup_cap(&dcb_current->cspace.cap, root_caddr, root_vbits,
                          &root, CAPRIGHTS_READ);
    if (err_is_fail(err)) {
        return SYSRET(err_push(err, SYS_ERR_ROOT_CAP_LOOKUP));
    }

    /* XXX: conceal first two words of arguments */
    return handle_revoke_common(root, &args[2], true);
}

static struct sysret monitor_handle_register(struct capability *kernel_cap,
                                             int cmd, uintptr_t *args)
{
    capaddr_t ep_caddr = args[0];
    return sys_monitor_register(ep_caddr);
}

#ifndef __scc__
/**
 * \brief Spawn a new core and create a kernel cap for it.
 */
static struct sysret monitor_spawn_core(struct capability *kernel_cap,
                                        int cmd, uintptr_t *args)
{
    coreid_t core_id        = args[0];
    enum cpu_type cpu_type  = args[1];
    uintptr_t entry0 = args[2];
    uintptr_t entry1 = args[3];
    forvaddr_t entry = (forvaddr_t)entry0 << 32 | entry1;

    return sys_monitor_spawn_core(core_id, cpu_type, entry);
}

#else

static struct sysret monitor_spawn_scc_core(struct capability *kernel_cap,
                                            int cmd, uintptr_t *args)
{
    uint8_t id                  = args[1] >> 24;
    genpaddr_t urpcframe_base   = args[0];
    uint8_t urpcframe_bits      = (args[1] >> 16) & 0xff;
    int chanid                  = args[1] & 0xffff;

    int r = rck_start_core(id, urpcframe_base, urpcframe_bits, chanid);

    if (r != 0) {
        return SYSRET(SYS_ERR_CORE_NOT_FOUND);
    }

    return SYSRET(SYS_ERR_OK);
}
#endif

static struct sysret monitor_get_core_id(struct capability *kernel_cap,
                                         int cmd, uintptr_t *args)
{
    return (struct sysret) {
        .error = SYS_ERR_OK,
        .value = my_core_id
    };
}

static struct sysret monitor_get_arch_id(struct capability *kernel_cap,
                                         int cmd, uintptr_t *args)
{
    return (struct sysret) {
        .error = SYS_ERR_OK,
        .value = apic_id
    };
}

static struct sysret monitor_identify_cap_common(struct capability *kernel_cap,
                                                 struct capability *root,
                                                 uintptr_t *args)
{
    capaddr_t cptr = args[0];
    int bits = args[1];
    struct capability *retbuf = (void *)args[2];

    return sys_monitor_identify_cap(root, cptr, bits, retbuf);
}

static struct sysret monitor_identify_cap(struct capability *kernel_cap,
                                          int cmd, uintptr_t *args)
{
    return monitor_identify_cap_common(kernel_cap, &dcb_current->cspace.cap, args);
}

static struct sysret monitor_identify_domains_cap(struct capability *kernel_cap,
                                                  int cmd, uintptr_t *args)
{
    errval_t err;

    capaddr_t root_caddr = args[0];
    capaddr_t root_vbits = args[1];

    struct capability *root;
    err = caps_lookup_cap(&dcb_current->cspace.cap, root_caddr, root_vbits,
                          &root, CAPRIGHTS_READ);
    if (err_is_fail(err)) {
        return SYSRET(err_push(err, SYS_ERR_ROOT_CAP_LOOKUP));
    }

    /* XXX: conceal first two words of arguments */
    return monitor_identify_cap_common(kernel_cap, root, &args[2]);
}

static struct sysret monitor_remote_cap(struct capability *kernel_cap,
                                        int cmd, uintptr_t *args)
{
    struct capability *root = &dcb_current->cspace.cap;
    capaddr_t cptr = args[0];
    int bits = args[1];
    bool remote = (bool)args[2];

    struct cte *cte;
    errval_t err = caps_lookup_slot(root, cptr, bits, &cte, CAPRIGHTS_WRITE);
    if (err_is_fail(err)) {
        return SYSRET(err_push(err, SYS_ERR_IDENTIFY_LOOKUP));
    }

    set_cap_remote(cte, remote);
    bool has_desc = has_descendants(cte);

    return (struct sysret){ .error = SYS_ERR_OK, .value = has_desc };
}

static struct sysret monitor_create_cap(struct capability *kernel_cap,
                                        int cmd, uintptr_t *args)
{
    /* Create the cap in the destination */
    capaddr_t cnode_cptr = args[0];
    int cnode_vbits    = args[1];
    size_t slot        = args[2];
    struct capability *src =
        (struct capability*)args[3];

    /* Certain types cannot be created here */
    if ((src->type == ObjType_Null) || (src->type == ObjType_EndPoint)
        || (src->type == ObjType_Dispatcher) || (src->type == ObjType_Kernel)
        || (src->type == ObjType_IRQTable)) {
        return SYSRET(SYS_ERR_ILLEGAL_DEST_TYPE);
    }

    return SYSRET(caps_create_from_existing(&dcb_current->cspace.cap,
                                            cnode_cptr, cnode_vbits,
                                            slot, src));
}

static struct sysret monitor_nullify_cap(struct capability *kernel_cap,
                                         int cmd, uintptr_t *args)
{
    capaddr_t cptr = args[0];
    int bits = args[1];

    return sys_monitor_nullify_cap(cptr, bits);
}

static struct sysret monitor_iden_cnode_get_cap(struct capability *kern_cap,
                                                int cmd, uintptr_t *args)
{
#if 0 /* not called on user side! */
    errval_t err;

    // deal with strict aliasing rules, also there is no specific
    // reason that a capability is a multiple in size of 64-bits.
    union {
        struct capability cap;
        uint64_t raw[(sizeof(struct capability) + sizeof(uint64_t) -1)/sizeof(uint64_t)];
    } u;

    /* Get the raw metadata of the cnode */
    for(int i = 0; i < sizeof(u) / sizeof(uint64_t); i++) {
        u.raw[i] = args[i];
    }

    struct capability *cnode = &u.cap;
    assert(cnode->type == ObjType_CNode);

    struct capability *cnode_copy;
    err = mdb_get_copy(cnode, &cnode_copy);
    if (err_is_fail(err)) {
        return SYSRET(err);
    }

    capaddr_t slot = args[];
    struct cte* cte = caps_locate_slot(cnode_copy->u.cnode.cnode, slot);

    // XXX: Write cap data directly back to user-space
    // FIXME: this should involve a pointer/range check for reliability,
    // but because the monitor is inherently trusted it's not a security hole
    struct capability *retbuf = (void *)args[xxx];
    *retbuf = cte->cap;

    return SYSRET(SYS_ERR_OK);
#else
    return SYSRET(ERR_NOTIMP);
#endif
}

static struct sysret monitor_handle_sync_timer(struct capability *kern_cap,
                                               int cmd, uintptr_t *args)
{
    uint64_t synctime = (uint64_t)args[0] << 32;
    synctime |= (uint64_t)args[1];
    return sys_monitor_handle_sync_timer(synctime);
}

static struct sysret handle_frame_identify(struct capability *to,
                                           int cmd, uintptr_t *args)
{
    // Return with physical base address of frame
    // XXX: pack size into bottom bits of base address
    assert(to->type == ObjType_Frame || to->type == ObjType_DevFrame);
    assert((to->u.frame.base & BASE_PAGE_MASK) == 0);
    assert(to->u.frame.bits < BASE_PAGE_SIZE);
    return (struct sysret) {
        .error = SYS_ERR_OK,
        .value = to->u.frame.base | to->u.frame.bits,
    };
}

static struct sysret handle_frame_modify_flags(struct capability *to,
                                               int cmd, uintptr_t *args)
{
    // Modify flags of (part of) mapped region of frame
    assert(to->type == ObjType_Frame || to->type == ObjType_DevFrame);

    // unpack arguments
    size_t offset = args[0]; // in pages; of first page to modify from first
                             // page in mapped region
    size_t pages  = args[1]; // #pages to modify
    size_t flags  = args[2]; // new flags

    page_mappings_modify_flags(to, offset, pages, flags);

    return (struct sysret) {
        .error = SYS_ERR_OK,
        .value = 0,
    };
}

#ifdef __scc__
static struct sysret handle_frame_scc_identify(struct capability *to,
                                               int cmd, uintptr_t *args)
{
    // Return with physical base address of frame
    // XXX: pack size into bottom bits of base address
    assert(to->type == ObjType_Frame || to->type == ObjType_DevFrame);
    assert((to->u.frame.base & BASE_PAGE_MASK) == 0);
    assert(to->u.frame.bits < BASE_PAGE_SIZE);

    uint8_t route, subdest;
    uint16_t addrbits;

    errval_t err = rck_get_route(to->u.frame.base, 1 << to->u.frame.bits,
                                 &route, &subdest, &addrbits);
    if(err_is_fail(err)) {
        return SYSRET(err);
    }

    return (struct sysret) {
        .error = SYS_ERR_OK,
        .value = (addrbits << 16) | (subdest << 8) | route,
    };
}
#endif

static struct sysret handle_io(struct capability *to, int cmd, uintptr_t *args)
{
    uint32_t    port = args[0];
    uint32_t    data = args[1];

    return sys_io(to, cmd, port, data);
}

static struct sysret monitor_handle_domain_id(struct capability *monitor_cap,
                                              int cmd, uintptr_t *args)
{
    capaddr_t cptr = args[0];
    domainid_t domain_id = args[1];

    return sys_monitor_domain_id(cptr, domain_id);
}

/**
 * \brief Set up tracing in the kernel
 */
static struct sysret handle_trace_setup(struct capability *cap,
                                        int cmd, uintptr_t *args)
{
    struct capability *frame;
    errval_t err;

    /* lookup passed cap */
    capaddr_t cptr = args[0];
    err = caps_lookup_cap(&dcb_current->cspace.cap, cptr, CPTR_BITS, &frame,
                          CAPRIGHTS_READ_WRITE);
    if (err_is_fail(err)) {
        return SYSRET(err);
    }

    lpaddr_t lpaddr = gen_phys_to_local_phys(frame->u.frame.base);
    kernel_trace_buf = local_phys_to_mem(lpaddr);
    //printf("kernel.%u: handle_trace_setup at %lx\n", apic_id, kernel_trace_buf);

    // Copy boot applications.
	trace_copy_boot_applications();

    return SYSRET(SYS_ERR_OK);
}

static struct sysret handle_irq_table_set(struct capability *to, int cmd, uintptr_t *args)
{
    return SYSRET(irq_table_set(args[0], args[1]));
}

static struct sysret handle_irq_table_delete(struct capability *to, int cmd, uintptr_t *args)
{
    return SYSRET(irq_table_delete(args[0]));
}

/**
 * \brief Return system-wide unique ID of this ID cap.
 */
static struct sysret handle_idcap_identify(struct capability *cap, int cmd,
                                           uintptr_t *args)
{
    idcap_id_t *idp = (idcap_id_t *) args[0];

    // Check validity of user space pointer
    if (!access_ok(ACCESS_WRITE, (lvaddr_t) idp, sizeof(*idp)))  {
        return SYSRET(SYS_ERR_INVALID_USER_BUFFER);
    }

    return sys_idcap_identify(cap, idp);
}

#ifdef __scc__
static struct sysret kernel_rck_register(struct capability *cap,
                                         int cmd, uintptr_t *args)
{
    capaddr_t ep = args[0];
    int chanid = args[1];
    return SYSRET(rck_register_notification(ep, chanid));
}

static struct sysret kernel_rck_delete(struct capability *cap,
                                       int cmd, uintptr_t *args)
{
    int chanid = args[0];
    return SYSRET(rck_delete_notification(chanid));
}

static struct sysret handle_rck_notify_send(struct capability *cap,
                                            int cmd, uintptr_t *args)
{
    assert(cap->type == ObjType_Notify_RCK);
    rck_send_notification(cap->u.notify_rck.coreid, cap->u.notify_rck.chanid);
    return SYSRET(SYS_ERR_OK);
}

#else

static struct sysret kernel_ipi_register(struct capability *cap,
                                         int cmd, uintptr_t *args)
{
    assert(cap->type == ObjType_Kernel);
    capaddr_t ep = args[0];
    int chanid = args[1];
    return SYSRET(ipi_register_notification(ep, chanid));
}

static struct sysret kernel_ipi_delete(struct capability *cap,
                                       int cmd, uintptr_t *args)
{
    assert(cap->type == ObjType_Kernel);
    assert(!"NYI");
    return SYSRET(SYS_ERR_OK);
}

static struct sysret handle_ipi_notify_send(struct capability *cap,
                                            int cmd, uintptr_t *args)
{
    assert(cap->type == ObjType_Notify_IPI);
    return ipi_raise_notify(cap->u.notify_ipi.coreid, cap->u.notify_ipi.chanid);
}
#endif

static struct sysret dispatcher_dump_ptables(struct capability *cap,
                                             int cmd, uintptr_t *args)
{
    assert(cap->type == ObjType_Dispatcher);

    printf("kernel_dump_ptables\n");

    struct dcb *dispatcher = cap->u.dispatcher.dcb;

    paging_dump_tables(dispatcher);

    return SYSRET(SYS_ERR_OK);
}

typedef struct sysret (*invocation_handler_t)(struct capability *to,
                                              int cmd, uintptr_t *args);

static invocation_handler_t invocations[ObjType_Num][CAP_MAX_CMD] = {
    [ObjType_Dispatcher] = {
        [DispatcherCmd_Setup]        = handle_dispatcher_setup,
        [DispatcherCmd_Properties]   = handle_dispatcher_properties,
        [DispatcherCmd_PerfMon]      = handle_dispatcher_perfmon,
        [DispatcherCmd_DumpPTables]  = dispatcher_dump_ptables,
    },
    [ObjType_Frame] = {
        [FrameCmd_Identify] = handle_frame_identify,
        [FrameCmd_ModifyFlags] = handle_frame_modify_flags,
#ifdef __scc__
        [FrameCmd_SCC_Identify] = handle_frame_scc_identify
#endif
    },
    [ObjType_DevFrame] = {
        [FrameCmd_Identify] = handle_frame_identify,
        [FrameCmd_ModifyFlags] = handle_frame_modify_flags,
#ifdef __scc__
        [FrameCmd_SCC_Identify] = handle_frame_scc_identify
#endif
    },
    [ObjType_CNode] = {
        [CNodeCmd_Copy]   = handle_copy,
        [CNodeCmd_Mint]   = handle_mint,
        [CNodeCmd_Retype] = handle_retype,
        [CNodeCmd_Create] = handle_create,
        [CNodeCmd_Delete] = handle_delete,
        [CNodeCmd_Revoke] = handle_revoke,
    },
    [ObjType_VNode_x86_32_pdpt] = {
        [VNodeCmd_Map]   = handle_map,
        [VNodeCmd_Unmap] = handle_unmap,
    },
    [ObjType_VNode_x86_32_pdir] = {
        [VNodeCmd_Map]   = handle_map,
        [VNodeCmd_Unmap] = handle_unmap,
    },
    [ObjType_VNode_x86_32_ptable] = {
        [VNodeCmd_Map]   = handle_map,
        [VNodeCmd_Unmap] = handle_unmap,
    },
    [ObjType_Kernel] = {
#ifndef __scc__
        [KernelCmd_Spawn_core]   = monitor_spawn_core,
#endif
        [KernelCmd_Get_core_id]  = monitor_get_core_id,
        [KernelCmd_Get_arch_id]  = monitor_get_arch_id,
        [KernelCmd_Identify_cap] = monitor_identify_cap,
        [KernelCmd_Identify_domains_cap] = monitor_identify_domains_cap,
        [KernelCmd_Remote_cap]   = monitor_remote_cap,
        [KernelCmd_Iden_cnode_get_cap] = monitor_iden_cnode_get_cap,
        [KernelCmd_Create_cap]   = monitor_create_cap,
        [KernelCmd_Nullify_cap]  = monitor_nullify_cap,
        [KernelCmd_Setup_trace]  = handle_trace_setup,
        [KernelCmd_Register]     = monitor_handle_register,
        [KernelCmd_Domain_Id]    = monitor_handle_domain_id,
        [MonitorCmd_Retype]      = monitor_handle_retype,
        [MonitorCmd_Delete]      = monitor_handle_delete,
        [MonitorCmd_Revoke]      = monitor_handle_revoke,
        [KernelCmd_Sync_timer]   = monitor_handle_sync_timer,
#ifdef __scc__
        [KernelCmd_Spawn_SCC_Core]   = monitor_spawn_scc_core,
        [KernelCmd_IPI_Register] = kernel_rck_register,
        [KernelCmd_IPI_Delete]   = kernel_rck_delete,
#else
        [KernelCmd_IPI_Register] = kernel_ipi_register,
        [KernelCmd_IPI_Delete]   = kernel_ipi_delete,
#endif
    },
    [ObjType_IRQTable] = {
        [IRQTableCmd_Set] = handle_irq_table_set,
        [IRQTableCmd_Delete] = handle_irq_table_delete
    },
    [ObjType_IO] = {
        [IOCmd_Outb] = handle_io,
        [IOCmd_Outw] = handle_io,
        [IOCmd_Outd] = handle_io,
        [IOCmd_Inb] = handle_io,
        [IOCmd_Inw] = handle_io,
        [IOCmd_Ind] = handle_io
    },
    [ObjType_ID] = {
        [IDCmd_Identify] = handle_idcap_identify
    },
#ifdef __scc__
    [ObjType_Notify_RCK] = {
        [NotifyCmd_Send] = handle_rck_notify_send
    }
#else
    [ObjType_Notify_IPI] = {
        [NotifyCmd_Send] = handle_ipi_notify_send
    }
#endif
};

/* syscall C entry point; called only from entry.S so no prototype in header */
struct sysret sys_syscall(uintptr_t arg0, uintptr_t arg1, uintptr_t *args,
                          uintptr_t *cpu_save_frame);
struct sysret sys_syscall(uintptr_t arg0, uintptr_t arg1, uintptr_t *args,
                          uintptr_t *cpu_save_frame)
{
    struct sysret retval = { .error = SYS_ERR_OK, .value = 0 };
    uint8_t syscall = arg0 & 0xff;

    switch(syscall) {
    case SYSCALL_INVOKE: ; /* Handle capability invocation */
        uint8_t flags = (arg0 >> 24) & 0xf;
        uint8_t invoke_bits = (arg0 >> 16) & 0xff;
        capaddr_t invoke_cptr = arg1;

        debug(SUBSYS_SYSCALL, "sys_invoke(0x%"PRIxCADDR"(%d))\n",
              invoke_cptr, invoke_bits);

        // Capability to invoke
        struct capability *to = NULL;
        retval.error = caps_lookup_cap(&dcb_current->cspace.cap, invoke_cptr,
                                       invoke_bits, &to, CAPRIGHTS_READ);
        if (err_is_fail(retval.error)) {
            break;
        }
        assert(to != NULL);
        assert(to->type < ObjType_Num);

        // Endpoint cap, do LMP
        if (to->type == ObjType_EndPoint) {
            struct dcb *listener = to->u.endpoint.listener;
            assert(listener != NULL);

            if (listener->disp == 0) {
                retval.error = SYS_ERR_LMP_NO_TARGET;
                break;
            }

            uint8_t length_words = (arg0 >> 28) & 0xf;
            uint8_t send_bits = (arg0 >> 8) & 0xff;
            capaddr_t send_cptr = args[0];

            /* limit length of message from buggy/malicious sender */
            length_words = min(length_words, LMP_MSG_LENGTH);

            // does the sender want to yield their timeslice on success?
            bool sync = flags & LMP_FLAG_SYNC;
            // does the sender want to yield to the target if undeliverable?
            bool yield = flags & LMP_FLAG_YIELD;

            // try to deliver message
            retval.error = lmp_deliver(to, dcb_current, &args[1], length_words,
                                       send_cptr, send_bits);

            /* Switch to reciever upon successful delivery with sync flag,
             * or (some cases of) unsuccessful delivery with yield flag */
            enum err_code err_code = err_no(retval.error);
            if ((sync && err_is_ok(retval.error)) ||
                (yield && (err_code == SYS_ERR_LMP_BUF_OVERFLOW
                           || err_code == SYS_ERR_LMP_CAPTRANSFER_DST_CNODE_LOOKUP
                           || err_code == SYS_ERR_LMP_CAPTRANSFER_DST_CNODE_INVALID
                           || err_code == SYS_ERR_LMP_CAPTRANSFER_DST_SLOT_OCCUPIED))
                    ) {
                if (err_is_fail(retval.error)) {
                    struct dispatcher_shared_generic *current_disp =
                        get_dispatcher_shared_generic(dcb_current->disp);
                    struct dispatcher_shared_generic *listener_disp =
                        get_dispatcher_shared_generic(listener->disp);
                    debug(SUBSYS_DISPATCH, "LMP failed; %.*s yields to %.*s: %u\n",
                          DISP_NAME_LEN, current_disp->name,
                          DISP_NAME_LEN, listener_disp->name, err_code);
                }

                // special-case context switch: ensure correct state in current DCB
                dispatcher_handle_t handle = dcb_current->disp;
                struct dispatcher_shared_x86_32 *disp =
                    get_dispatcher_shared_x86_32(handle);
                dcb_current->disabled = dispatcher_is_disabled_ip(handle, cpu_save_frame[0]);
                struct registers_x86_32 *save_area;
                if (dcb_current->disabled) {
                    save_area = &disp->disabled_save_area;
                } else {
                    save_area = &disp->enabled_save_area;
                }

                // save calling dispatcher's registers, so that when the dispatcher
                // next runs, it has a valid state in the relevant save area.
                // Save EIP, EFLAGS, ESP and set EAX (return value) for later resume
                save_area->eax = retval.error; // x86 1st return register
                // save frame contains: eip, cs, eflags, esp, ss
                save_area->eip = cpu_save_frame[0];
                save_area->cs = cpu_save_frame[1];
                save_area->eflags = cpu_save_frame[2];
                save_area->esp = cpu_save_frame[3];
                save_area->ss = cpu_save_frame[4];

                /* save FS/GS selectors (they're unmodified by the syscall path) */
                __asm ("mov     %%fs, %[fs]     \n\t"
                       "mov     %%gs, %[gs]     \n\t"
                       : /* No output */
                       :
                       [fs] "m" (save_area->fs),
                       [gs] "m" (save_area->gs)
                       );

                dispatch(to->u.endpoint.listener);
                panic("dispatch returned");
            }
        } else { // not endpoint cap, call kernel handler through dispatch table
            uint8_t cmd = arg0 >> 8;
            if (cmd >= CAP_MAX_CMD) {
                retval.error = SYS_ERR_ILLEGAL_INVOCATION;
                break;
            }

            // Call the invocation
            invocation_handler_t invocation = invocations[to->type][cmd];
            if(invocation == NULL) {
                retval.error = SYS_ERR_ILLEGAL_INVOCATION;
                break;
            } else {
                retval = invocation(to, cmd, args);
            }
        }
        break;

        // Yield the CPU to the next dispatcher
    case SYSCALL_YIELD:
        retval = sys_yield((capaddr_t)arg1);
        break;

        // NOP system call for benchmarking purposes
    case SYSCALL_NOP:
        break;

        // Debug print system call
    case SYSCALL_PRINT:
        retval.error = sys_print((char *)arg1, args[0]);
        break;

        // Reboot!
        // FIXME: this should be a kernel cap invocation or similarly restricted
    case SYSCALL_REBOOT:
        reboot();
        break;

    case SYSCALL_X86_FPU_TRAP_ON:
        fpu_trap_on();
        break;

    case SYSCALL_DEBUG:
        switch(arg1) {
        case DEBUG_CONTEXT_COUNTER_RESET:
            dispatch_csc_reset();
            break;

        case DEBUG_CONTEXT_COUNTER_READ:
            retval.value = dispatch_get_csc();
            break;

        case DEBUG_TIMESLICE_COUNTER_READ:
            retval.value = kernel_now;
            break;

        case DEBUG_FLUSH_CACHE:
            wbinvd();
            break;

        case DEBUG_SEND_IPI:
            apic_send_std_ipi(args[0], args[1], args[2]);
            break;

        case DEBUG_SET_BREAKPOINT:
            debugregs_set_breakpoint(args[0], args[1], args[2]);
            break;

        case DEBUG_GET_TSC_PER_MS:
            retval.value = timing_get_tsc_per_ms();
            break;

        case DEBUG_FEIGN_FRAME_CAP:
            {
                uint8_t bits = args[2] & 0xff;
                uint8_t cap_bits = (args[2] >> 8) & 0xff;
                uint8_t recv_slot = (args[2] >> 16) & 0xff;
                struct cte *slot;
                struct capability *recv_cnode_cap;

/*                printf("arg1 = %" PRIx64 ", arg2 = %" PRIx64 "\n",
                        (uint64_t)args[1], (uint64_t)args[2]);
*/
                errval_t err = caps_lookup_cap(&dcb_current->cspace.cap,
                      args[0], cap_bits, &recv_cnode_cap, CAPRIGHTS_READ_WRITE);
                if(err_is_fail(err)) {
                    retval.error = err;
                    break;
                }

                // Check for cnode type
                if (recv_cnode_cap->type != ObjType_CNode) {
                    retval.error = SYS_ERR_LMP_CAPTRANSFER_DST_CNODE_INVALID;
                    break;
                }
                // The slot within the cnode
                slot = caps_locate_slot(recv_cnode_cap->u.cnode.cnode,
                                        recv_slot);

                retval.error = caps_create_new(ObjType_DevFrame, args[1], bits,
                        bits, slot);
            }
            break;

        default:
            printk(LOG_ERR, "invalid sys_debug msg type\n");
        }
        break;

    default:
        printk(LOG_ERR, "sys_syscall: Illegal system call! "
               "(0x%x, 0x%"PRIxPTR")\n", syscall, arg1);
        retval.error = SYS_ERR_ILLEGAL_SYSCALL;
        break;
    }

    // If dcb_current got removed, dispatch someone else
    if (dcb_current == NULL) {
        assert(err_is_ok(retval.error));
        dispatch(schedule());
    }

    if (syscall == SYSCALL_INVOKE) {
        debug(SUBSYS_SYSCALL, "invoke returning 0x%"PRIxERRV" 0x%"PRIxPTR"\n",
              retval.error, retval.value);
    }

    return retval;
}

redpajama_set_name: RedPajamaGithub


Michelle Winckler's work deals with the meeting between Human and Nature. The artist has deliberately chosen long-lasting materials: rusty metal, glass, and wood. She is trying to reproduce simple shapes from nature to provoke emotion.


As a cinematographer today, I strive to tell stories that are both compelling and visually intriguing. The most rewarding work I do is that which offers a fresh perspective on the world and challenges the human condition. As I continue to adapt and grow from my experiences in life, so too will my cinematography evolve.


text:
Целостно́сть:
 Целостность информации — термин в информатике и теории телекоммуникаций, который означает, что данные полны, условие того, что данные не были изменены при выполнении любой операции над ними, будь то передача, хранение или представление.
 Целостность базы данных — соответствие имеющейся в базе данных информации её внутренней логике, структуре и всем явно заданным правилам.
 Целостность сигналов — наличие достаточных, для безошибочной передачи, качественных характеристик электрического сигнала.

redpajama_set_name: RedPajamaWikipedia


Carry your shades in style with this simple and sleek sunglass case.
measures 3 1/4" x 7 1/3"
AW by Andrea Wong is influenced by the beautiful surroundings of the Pacific Northwest. AW creates functional accessories that tell a story: durable products made from natural materials that age gracefully, creating rich visual histories.
All AW items are handcrafted in their Vancouver BC studio.


text:
Tag Archives: Tony Curtis
Revisiting Some Like it Hot
Selecting a favorite film is not easy, at least for me. I am always jumping back between two or three films; Alfred Hitchcock's Rear Window or two films by Billy Wilder, Double Indemnity and Some Like it Hot. These two directors were there almost from the beginning of my love affair with film. So when it came to choosing a favorite film for this blogathon or any reason it becomes one more time where I have to make a torturous choice. That's because in a week, a day, a minute from now I will be doubting myself for not going with one of the others. I have written about Rear Window in two different articles and once about Some Like it Hot. Surprisingly, at least to myself, I have yet to write about Double Indemnity. From the title of this article you can easily surmise that I still haven't. I decided to go with Wilder's 1959 farce, a reposting of an article I wrote some time back, primarily because of what you are about to read in the following paragraph. I was a young teen when I did what I discuss and have always felt a visceral connection to this film. The humor, the writing, the pacing, Jack Lemmon and Marilyn. it all came together. Anyway, here is the original article. Continue reading →
24 Comments Posted in 1950's, Billy Wilder, Jack Lemmon, Marilyn Monroe, Tony Curtis, Twenty Four Frames Favorite Films Tagged Jack Lemmon, Joe E Brown, Marilyn Monroe, Some Like it Hot, Tony Curtis
Criss Cross (1949) Robert Siodmak
The film opens with a magnificent opening aerial shot, the camera roaming over the Los Angeles night soon descending on our two doomed protagonists, Steve Thompson (Burt Lancaster) and his former wife, Anna (Yvonne DeCarlo) embracing passionately in a nightclub parking lot. The sultry Anna promising Steve they will be together, the way it was meant to be. The eyebrows of knowing film noir lovers will be raised, because as you know, in this dark world, a woman's promise of eternal love to a man is a death trap with no way out. Steve is the prototype film noir sap, head over heels stuck on a dame who is no good, pure evil, only he is too blind to see. Blinded by love and sex, he is a pawn in a game he does not even know he is playing, while all the dame sees is dollars signs. Men are only there to be used by this kind of woman. Love? Love is a loser's game. Her motto, as she tells the dumb sap late in the film, "you have to look out for yourself." Continue reading →
22 Comments Posted in 1940's, Burt Lancaster, Film Noir, Film Reviews, Robert Siodmak Tagged Alan Napier, Burt Lancaster, Criss Cross, Dan Duryea, Esy Morales, Richard Long, Robert Siodmak, Stephen McNally, Tony Curtis, Yvonne DeCarlo
Some Like it Hot (1959) Billy Wilder
This posting is my contribution to the CMBA Comedy Classics Blogathon which runs through Jan. 27th. You can find more contributors here.
Do you remember the first film you ever recorded? I do, it was Billy Wilder's "Some Like it Hot" way back sometime in the 1960's. "Wait a minute!" You say, "How can you have recorded it back in the 1960's when VCR's did not come out until the late 1970's?" Well, it was simple, on a reel-to-reel tape recorder. I loved this film so much I recorded the entire soundtrack. I use to lay down in bed or on the couch with my headphones on and listen to the entire movie, visualizing all the scenes.
Crazy, weird? Probably, I am sure my parents thought so.
Needless to say, "Some Like it Hot" is one of my favorite movies, it has stood the test of time. Because of this film, I became a lifelong admirer of both director Billy Wilder and Jack Lemmon. It is a film I never get tired of watching.
Before and since its release in 1959, there have been many films that have used men in drag as a plot device ("I Was A Male War Bride", "Tootsie", "La Cage aux Folles"), even TV shows like "Bosom Buddies" got into the act, however none have come close or surpassed "Some Like it Hot" in its farcical humor. The well-known storyline is simple, it is 1929, two Chicago musicians, Joe (Tony Curtis) and Jerry (Jack Lemmon), witness The Saint Valentine's Day Massacre after which they decide it might be best for their health if they leave town. The only jobs available are as musicians in an all girl band heading for Florida. It is at the train station they meet Sugar "Kane" Kowalczyk (Marilyn Monroe) a ukulele player and singer with the band. Continue reading →
31 Comments Posted in 1950's, Billy Wilder, Film Reviews, Jack Lemmon, Marilyn Monroe, Twenty Four Frames Favorite Films Tagged Billy Wilder, George E. Stone, George Raft, I.A.L. Diamond, Jack Lemmon, Marilyn Monroe, Mike Mazurski, Pat O'Brien, Some Like it Hot, Tony Curtis
Winchester '73 (1950) Anthony Mann
This review contains Spoilers!
Was it his personal war experiences that changed James Stewart? Did he come back a changed manl; most men do. Many of Stewart's post World War II roles began to take on a darker side with haunted ambiguous characters motivated by revenge or other desires. Maybe a steady diet of Frank Capra's Capra-corn did not have enough substance anymore, after all life was not that simple (Stewart's darker side was touched upon slightly in "It's a Wonderful Life" but he was soon back to his sweet genteel self). "Winchester '73" was the first Mann/Stewart collaboration, a joint effort that would produce some of the most mature westerns ever made.
Fritz Lang was originally on board to make this film, however soon bowed out. After a screening of Devil's Doorway Mann's first western starring Robert Taylor, Stewart agreed to work with Mann. The Winchester of the title was a special, "one of a thousand" type made in 1873. President Grant owned one, so did Buffalo Bill, and now Lin McAdams (Stewart), He wins one in a 4th of July celebration shoot out exhibition in Dodge City. His closest competitor is Dutch Henry Brown (Stephen McNally), his brother who shot their father in the back, though we do not find this out until toward the end of the film. For most of the story we never understand why Lin is so determined in going after Dutch.
The rifle itself gets passed around throughout the film becoming almost a character, or a link, in the film as it moves on from Lin, who won it in the shooting contest, to Dutch who steals it in a fight with Lin, to an Indian gun runner, to an Indian Chief (Rock Hudson) to the cowardly fiancé (Charles Drake) of Lola (Shelley Winters) the only female in the cast, to gunfighter Waco Johnny Dean (Dan Duryea) then back to Dutch and finally back to Lin.
Just about every male character in the film drools over the perfect piece of equipment, an obvious symbol of virile masculinity. The men who possess it show it off, and the men who want it are envious. Guns in general are seen as phallic symbols. Later after successfully fending an attack by Indians, Lola returns to Lin a pistol he gave her to defend herself during the attack with the understanding that the last bullet she should use on herself rather than fall into the hands of the Indians. Returning the gun and the bullet Lin suggest she may want to keep the bullet. Without hesitation she says "I want it!" leaving no uncertainty in her tone and look that she is talking more about sex and a life with Lin than just an old bullet.
Though the story is fiction, original screenwriter Robert L. Richards, later Mann brought in Borden Chase to do a rewrite in the first of their collaborative efforts, surrounds the story in real western mythology; Dodge City where an elderly though respected Wyatt Earp (Will Geer), Doc Holiday and company run a tight ship allowing no one to carry guns while in town. The Civil War has recently ended and General George Armstrong Custer was most recently overrun at Little Big Horn all of this invoking a strong sense of time and place in history.
This was the only western collaboration of Mann and Stewart filmed in black and white which may account for some of the noirish lighting in a few scenes, particularly in the fight between the two brothers in the hotel room where Dutch and his boys take the Winchester from Lin and beat it out of town.
As with "The Naked Spur" the theme of revenge is significant in this film as it motivates Lin in going after his brother. Family or the sense of family is also important here, the two brothers whose family was destroyed by the actions of one. Also between the prostitute Lola who is thrown out of town by Wyatt Earp, and the cowardly Steve. Both are outcasts who attempt to have a life together. Finally, and most prominently in Dodge City where an older Wyatt Earp is the friendly but strong willed patriarch (no guns allowed in town) who oversees the family friendly 4th of July celebration where the shooting contest is held with the winner getting the Winchester '73.
This western is far from the type generally made at the time, more psychological, character driven with a conflicted dark hero. An excellent example occurs early in the film in Dodge City, after Lin surrenders his gun to Wyatt Earp, he enters a bar and finds his nemeses and brother at a card table. The reaction of both brothers to seeing each other is to crouch down and draw their guns. Thanks to Earp neither man has a weapon and a shooting is adverted but it is a disturbing scene as we watch the "hero" react in a way no better than the villain. Still, there is plenty of the standard action audiences would expect, Indian attack on the Calvary, cheating at cards, gunfights, Indian gun trader, a planned bank robbery and a woman in distress.
With this film Anthony Mann found his own John Wayne in James Stewart. Stewart collaborated with other directors (Hitchcock and Capra notably) but in Mann he found his alternate mantra that of an ambiguous hero verging on obsessed, unhinged, psychologically driven behavior. Ford's heroes were generally more straight forward white hat types though late in his career Wayne's Ethan Edwards in "The Searchers" and to a lesser extent Tom Doniphon in "The Man Who Shot Liberty Valance" are certainly characters who struggle with life's complexities and Edwards specifically is a man driven by traits that are both good and bad.
Stephen McNally as Lin's evil brother is convincingly evil and just about as driven as his sibling. Noir favorite Dan Duryea also is adept at playing a malicious outlaw who hooks up with McNally for a bank robbery. Look for newcomers Rock Hudson as the Indian chief who for a while is in possession of the Winchester and another unknown actor at the time , one Anthony "Tony" Curtis who has a small role as a Calvary solider prominently seen during the Indian raid scenes. James Best also has a small role.
11 Comments Posted in 1950's, Anthony Mann, Film Reviews, James Stewart, Tony Curtis, Western Tagged Anthony Mann, Borden Chase, Dan Duryea, James Stewart, Jay C Flippen, John McEntire, Millard Mitchell, Rock Hudson, Shelley Winters, Stephen McNally, Tony Curtis, Will Geer, Winchester '73
The Outsider (1961) Mann
Here is a link to my latest article at Halo-17, a little know film called The Outsider. It is the story of Ira Hayes, a Pima Indian, who was one of five Marines and one Sailor who raised the American flag at Iwo Jima.
2 Comments Posted in 1960's, Film Reviews Tagged Delbert Mann, Ira Hayes, James Franciscus, The Outsider, Tony Curtis

redpajama_set_name: RedPajamaCommonCrawl


text:
MenuHomeFriendsChatHotelsContact us
Sep 26 2011 September 26, 2011 September 26, 2011 7Comments	by Administrator
SL asks: Can a banned terror group move judiciary in US? MR meets Indian PM, UN Chief and US Congress
Posted in Local News
The Sri Lankan government yesterday said that in spite of accusing its military of massacring as many as 40,000 civilians, the LTTE had had to depend on an LTTE cadre, Vatsala Devi to move the US judiciary against President Mahinda Rajapaksa and Ambassador Shavendra Silva, former General Officer Commanding (GOC) of the celebrated 58 Division, over war crimes relating to the death of a hardcore terrorist, Thambirajah Ramesh. The LTTE couldn't still find an ordinary family to pursue its destabilisation project, the Defence Ministry said.
The LTTE is a proscribed organisation in 32 countries, including the US.
Ramesh's wife, Devi, now based in South Africa, figured in both civil cases. In the first case, Devi filed a case through one-time LTTE negotiator US citizen Visvanathan Rudrakumaran, a New York based attorney-at-law against President Rajapaksa, while she teamed up with Seetharam Sivam, described as the legal representative of his father believed to have been killed in an SLA artillery strike on Puthukudirippu in 2009, to move court against Maj. Gen. Silva.
Army headquarters said that Devi had been an active LTTE cadre when she married Thambirajah Ramesh, who later rose to the rank of 'Colonel' in the LTTE. Ramesh was the brother-in-law of Sea Tiger commander Thillayampalan Sivaneshan alias 'Colonel' Soosai. Government sources said they would reveal atrocities committed by Ramesh and the involvement of his wife, Devi in terrorism.
Following the LTTE split engineered by Karuna Amman in early 2004, Ramesh sided with the Vanni faction and returned to the East as the senior man in charge of the outfit.
Sri Lanka's No 2 at the UN Ambassador Silva told The Island yesterday that two civil cases had been filed in New York on Friday (Sept. 23) targeting President Rajapaksa and him. The soldier turned diplomat said that summons had been served on him at his residence in the afternoon shortly after he left along with President Rajapaksa and his entourage. Silva declined to comment further. He said the government was having legal consultations.
The External Affairs Ministry said that President Rajapaksa had kept to his schedule in the US, though the LTTE and those backing the eelam project believed the Sri Lankan leader would cut short his visit following the filing of the cases.
President Rajapaksa met UNSG Ban Ki-moon at the UN on Saturday. It was preceded by another meet with US Congresswoman, Caroline B. Maloney and US Congressman, Robert Aderholf at breakfast in New York on Saturday. External Affairs Minister, Prof. G. L. Peiris, President's Secretary, Lalith Weeratunga and US Ambassador in Sri Lanka, Jaliya Wickramasooriya, were also present.
President Rajapaksa met Indian Prime Minister Manmohan Singh for bilateral talks in the wake of the LTTE moving court in New York.
In a 19-page plaint against Ambassador Silva, Devi acknowledged that she hadn't been even in Sri Lanka at the time Ramesh was killed on the Vanni east front. Devi said that she had left Batticaloa in late April 2009 and reached South Africa and last spoke to Ramesh on May 15, 2009. She said that there hadn't been any subsequent contacts with Ramesh and there was no way of knowing about his whereabouts.
Devi also claimed that her husband had planned for a conditional surrender to the 58 Division.
Responding to a query by The Island, the Defence Ministry said that the former US Defence Attache, who had been based in Colombo during eelam war IV was on record as having said that the LTTE fighting cadre made no attempt to work out an organised surrender on the Vanni east front. This statement was made in Colombo a few months ago responding to a query by a retired Indian Army officer at a defence forum.
Authoritative sources said that both President Rajapaksa and Defence Secretary Gotabhaya Rajapaksa had vowed to meet the legal challenge. President Rajapaksa was quoted as having emphasised that he wouldn't run away in the face of unsubstantiated allegations made by the LTTE and its sympathizers.
The LTTE has based both cases on the controversial Darusman report.
Courtesy: The Island / Pix by Getty Images
7 Responses to SL asks: Can a banned terror group move judiciary in US? MR meets Indian PM, UN Chief and US Congress
demala chelvan says:
Vathsala Devi, a daughter of Tamil Ealam, is more powerful than "all the kings horses and all the kings men" in the south.
Can't you see how she has made a whole democratically elected Government of eminent Sihala leaders and stray LTTE'rs, jump up and down?
MANGALA says:
Who cares vathsala devi or your bullshit pro LTTE , US and west mafia all of them making allegation against GOSL using your illegal activities income euro and US$, when the LTTE butchering Singhalese and Muslims in north all NGO ,US and west leaders sleep now talking bullshit if terrorist can file a case against any government who Will file case against killing Binladen after capturing him in Pakistan, there was no civilians die during the finale war who ever die all of them are LTTE not a civilians There was in casual dress with weapon of cause after death they will say there civilian once a remove weapon the person will be ordinary civilian, u a team will go to hell.
migara says:
u tamils will get nothing from sri lanka in any means,so its better to move all of u to south africa,TNA should organize this rather than conducting meetings with gov over power devolution coz TNA will get nothing at the end,idiots,,,
Ranjith Kotakotirathne says:
Hello Demala,
Didn't you notice that the daughter of a stinky tamil bitch Vathsala Devi had to jump up and down to run for cover first and to hide in South Africa before she could do anything else? And, yet you think she is powerful ha!, how funny!
I challenge you to get her come back to Sri Lanka to show her power if she has any.
Amden says:
Watsala muu devi may jumps up & down to find a big bit for her.
But the earth won't move a bit….!
Frederick Mahakotipitiya says:
Ranjith and Amden,
Vathsala Devi is stronger than all the rajapaksas put together and 20m Sinhalese population of Sri Lanka.
I do not understand why you guys get excited about Vathsala.
When she filed her case, the Blue Brothers jumped up and down and the Retd general in the UN also jumped up and down and refused immunity and wanted to challenge the case.
Now Uncle GL has apparently decided against it and is claiming diplomatic immunity for the Retired Chicken General who has been given summons.
When your guys don't have a gun in their hands, you guys are chicken. You are easily bullied by Vathsala and you guys already began running away.
Guru Sathyadasa says:
Demala Chelvan certainly has a good point. Sure we are scared of Vathsala; also we are scared of Big Mama. Bring the emergency back; we need more guns and jet fighters to protect ourselves from Vathsala. And also earn a bit of commission from the Russian arms dealers.
Sinhala Chat Room
Website for you
Copyright © 2004 - 2019 Onlanka.com.


There will be a lot of wandering this year. I already know of at least 12 trips we will be taking for both business and pleasure. Places like Irvine, Vegas, Little Rock, Boston and oh so many more. The opportunities to catch a good solid case of wanderlust are strong.
There will be many chances to learn new things, meet new people, engage and decompress. The anxiety and excitement of it all is overwhelming and fueling at times. The fact is whether I travel alone or with friends I am intrigued by the ability to get from place to place so quickly. Even 30 years ago we did not have the luxuries of today.
The next trip will be to the North Carolina mountains and I personally can not wait to sit on the hotel terrace and enjoy the mountain breeze. Despite the trip being for work I am sure I will enjoy the ability to relax with friends a decompress a bit from the hustle of the travel itself.


text:
Exorcism Ritual Ends in Death, Police Say
By RALPH FRAMMOLINO and K. CONNIE KANG
July 6, 1996 12 AM PT
TIMES STAFF WRITERS
A South Korean woman visiting Los Angeles died after a six-hour exorcism ritual, leading to the arrest of her husband and two other men on suspicion of homicide, police announced Friday.
Kyung Chung, 53, died Thursday morning at Century City Hospital after an exorcism ritual during which the men used physical force to try to rid her body of evil spirits, said LAPD Det. Ron Phillips. Chung, who was rushed to the hospital by paramedics from a tony Century City residence, apparently died from internal injuries, but an autopsy is pending, Phillips said.
Under arrest were Jae Chung, the woman's 49-year-old husband, and two other men, Jin Choi, 46, and Sung Choi, 41, police said.
Phillips said no weapons were used in the session but declined to elaborate on what happened during the ritual or whether it was affiliated with a particular religious faith.
"A great deal of physical force was involved," he said. "It was strictly bodily force, and that's as far as I'll go. . . . They were trying to force evil spirits out of her body."
Chung and her husband, both Koreans believed to be living in Bangladesh, arrived in the United States on Monday for a business meeting and were in Los Angeles when they met Sung Choi, who offered to perform the exorcism, Phillips said.
"They did not come here to do this ritual," the detective said. "They came here for other reasons, and they met an individual who said he could do this."
The Rev. Andrew Kim, pastor of Glendale Korean Presbyterian Church, said Jin Choi, a deacon at his church, told him that the Chungs were missionaries in Bangladesh who were on their way to a missionaries convention in Chicago.
Kim said he learned of the ritual when Jin Choi called him between 10 a.m. and 11 a.m. Thursday and requested prayer.
"He told me that authorities were looking for him and he supposed that things had gone wrong," said Kim, who prayed for the deacon over the phone.
Kim also said Sung Choi, who is not related to Jin Choi, was a missionary in China whose endeavors have been supported by Kim's congregation.
Sung Choi appeared at the Glendale church Wednesday night to express his gratitude for the support and was supposed to spend the night at Jin Choi's home, Kim said.
But when the two Chois arrived at the deacon's home, Kim added, the missionary apparently asked for a ride to another location.
Kim emphasized that his church "had nothing to do with the [exorcism] incident."
"We are a mainstream Presbyterian church, and we just preach the Gospel quietly," he said.
Phillips said the ritual began Wednesday afternoon in a borrowed Century City residence. After a break, it resumed at midnight before it turned fatal. Paramedics were called to the scene after one of the participants in the ritual placed a 911 call, authorities said. Kyung Chung died shortly before 7 a.m. Thursday, a coroner's spokesman said. Her husband and both Chois took part in the ritual, Phillips said.
The Rev. Soon-Young Chun, pastor of Valley First Presbyterian Church and a specialist on cults, called the incident tragic.
"This is an extreme case, involving a fringe group of the Korean Christian community," Chun said. "I would say that what happened was almost cultist."


text:
Emmanuel Ekong (born 25 June 2002) is a professional footballer who plays as a forward for Perugia, on loan from Empoli. Born in Italy to Nigerian parents, he is a Sweden youth international.

Club career
As a youth player, Ekong joined the youth academy of Swedish seventh tier side Bollstanäs SK. in 2015, he joined the youth academy of IF Brommapojkarna in the Swedish second tier.

In 2018, he joined the youth academy of Italian Serie A club Empoli. On 5 September 2022, Ekong debuted for Empoli during a 2–2 draw with Salernitana.

In January 2023, Ekong signed for Serie B club Perugia on loan until the end of the season.

International career
Born in Italy to Nigerian parents and raised in Sweden, Ekong is eligible to represent three national teams. He has represented the Sweden U19 team five times, scoring one goal.

Personal life
Ekong is the son of Nigeria international Prince Ikpe Ekong.

References

External links

 Svenskfotboll profile

Living people
2002 births
Sportspeople from Reggio Emilia
Swedish footballers
Sweden youth international footballers
Italian footballers
Swedish people of Nigerian descent
Italian people of Nigerian descent
Italian emigrants to Sweden
Association football forwards
Serie A players
Empoli F.C. players
A.C. Perugia Calcio players


Black-owned businesses are important institutions of the community that not only create immediate opportunities for its members but also promotes the kind of community infrastructure that help individuals thrive in the long run. Because Wells Fargo recognizes this significance, they tapped One X to help shine a light on the positive social and economic impact that local Black-owned businesses are making on their communities.
In Working Together, we feature two well-known Harlem establishments: Make My Cake and Harlem Haberdashery.


text:
Solar Prize Round 5 Hardware Track Ready! Contest Semifinalists Announced!
We're excited that 20 teams have been selected and announced as Solar Prize Round 5 Hardware Track Ready! Contest semifinalists by the U.S. Department of Energy. Each of these teams won a $50,000 cash prize and are now eligible to advance to the Set! Contest.
The Hardware Track semifinalist technologies includes innovations in three subject areas: photovoltaics, systems integration, and concentrating solar-thermal power. Here are the Round 5 Hardware Track semifinalists:
Arcadia SR, Simplifying Residential Solar to a Single Product (El Sobrante, CA)
Bio-Inspired 3D-Printed Concrete Anchors for Floating Photovoltaics (Los Angeles, CA)
Integrated Greenhouse for Food and Clean Water (East Lansing, MI)
Optimizing Landfill Solar Power Production and Return on Investment (Derry, NH)
Patina: Solar That Works in the Shade (San Mateo, CA)
Portable Solar Carport With Integrated Electric Vehicle Charger (Sarasota, FL)
Rapid Deployment Hybrid Microgrid (Nashville, TN)
Roll-Formed Steel Frames for Photovoltaic Modules (Bend, OR)
Saving Water With Combined Solar and Agriculture (Scotts Valley, CA)
Self-Assembled Solar for Half the Cost (Miami, FL)
Solar-Powered Cooling, Heating, and Electricity (San Diego, CA)
Spectrum Shifting Nanocoating (Hayward, CA)
Sun Deck Solar Electric Vehicle Charging Station (Roswell, GA)
Wafer-Free Crystalline Silicon Solar Cells (San Francisco, CA)
Artificial Intelligence Solar Site Controller Synchronizing Electric Vehicle Charging (Lahaina, HI)
Power Electronics for the Next Generation of Photovoltaics (Albuquerque, NM)
Riding the Solar Curve (Carlsbad, CA)
Solactivator: Economical Backup Power for Blackouts (Fremont, CA)
SolarSCADA: Modular SCADA Specific to Solar (Denver, CO)
Concentrating Solar-Thermal Power
Ten Thousand Splendid Suns (Orinda, CA)
Learn more about each submission by checking out the HeroX Community tab and view the Software Track semifinalists, too.
There were numerous, impressive submissions to the Ready! Contest. In fact, we received more than 175 submissions from across the country between both Round 5 tracks. Many of these were great ideas but needed additional development and refinement to advance to the next level.
If you submitted an idea and were not chosen as a semifinalist, we encourage you to keep innovating and looking for opportunities to improve your idea. In the coming weeks, you will receive an e-mail from the prize administrator with comments and feedback on your submission from the judges who reviewed it.
Additional Funding Opportunities
We also suggest applying to U.S. Department of Energy's Small Business Innovation Research and Small Business Technology Transfer (SBIR/STTR) funding program. Through SBIR/STTR, small businesses can receive up to $200,000 to engage in high-risk, innovative research and development with the potential for commercialization. Learn more about the current funding opportunities and how to submit a letter of intent by Jan. 3, 2022.
Several Power Connectors are providing resources and education to help you successfully apply for SBIR/STTR. Learn more and find support by attending one of these upcoming events or reaching out to one of the supporting Power Connectors.
Thank You for Your Participation
We want to thank all teams for competing in the Solar Prize Round 5 Ready! Contest and hope you continue to be an active member of the Solar Prize community. Please continue to utilize the American-Made Network to improve your ideas and watch for other opportunities to make them a reality by signing up for our American-Made Challenges Newsletter.
Should you have questions, please feel free to reach out at . Congratulations, again, to the Round 5 semifinalists!
Posted by Jackie Petre on Dec. 7, 2021
powered by © 2023


We're SmileCycle, a group of dentists that are making Invisalign more accessible and affordable.
Book a 3D Scan at one of our locations in Chicago.
Consult virtually with your treating dentist without leaving your home.
Ready. Set. Smile in half the time and half the cost.
By blending the physical and digital experience, we are revolutionizing the Invisalign process.
Every smile is unique, and that is why our approach has to be unique to you. Our goal is not to just get straighter teeth but also to help improve the balance and symmetry of your face. By building relationships with our patients, we believe we can truly achieve better outcomes.


text:
The Surprising Rewards of Parenting
Before I had a baby, I was honestly a little scared of becoming a parent.
I thought it would mean giving up all my freedom and fun, and becoming some kind of responsible adult who was no longer cool. But when other people had babies, I congratulated them wholeheartedly, secretly thinking "better you than me."
Now, my whole perspective has changed. When someone has a baby, I'm genuinely happy for them, especially if it's their first. I feel like they just won the lottery or something.
I don't know how to explain it, but there's just something magic about being a parent. It's those moments that no one really talks about - the times when you're just hanging out with your kid and it's the best thing ever. I love going for walks with my baby, or just chilling at home. It's the best.
Of course, there are also times when parenting is a total drag, or even freaking terrifying. Kids have schedules and as a parent, you have to work around them. This can make it tough to get as much work done as you did before.
But I've learned to roll with it, and I've found that work (like love) always finds a way. If I only have a certain amount of time to work, I make the most of it. I may not get as much done as I did before I had a kid, but I still get enough done. And if my ambition can't survive the challenges of parenting, then it wasn't very strong to begin with.
I do miss some things about life before I had a child, like the freedom to take off for another country at a moment's notice. But when I think about it, I realize that I rarely used that freedom. I paid for it with loneliness, but I didn't really take advantage of it.
Now, I have so many happy moments with my child that they way outnumber any happy moments I had before. Being a parent has brought me more joy than I ever could have imagined, and I'm grateful for it every single day. I know that every parent's experience is different, and I'm lucky to have such a special bond with my kid.
I wouldn't trade these precious moments for anything in the world.


Jerome is an animal who is often mistaken for Al Pacino. When he's not at Triumph, Jerome is working on structural design for URS Corporation. He played rugby for Louisiana State University in the late 70s and ran his first marathon in 1980. Since then, Jerome has run in the Boston Marathon and many others. Jerome is a Yellow Belt Instructor at Triumph, and has a cult following of friends and students who work out with him before evening classes. Jerome's informal, rigorous workouts are known as "Jerobics" around the club, and include sparring, mitt-work and no-Gi grappling. Jerome will continue to do Krav Maga until he can no longer walk.


On day two of our Oregon to Texas travels, we stayed at the Castle View Inn, a bed and breakfast located off the beaten path, a short drive to Arches National Park.
We're giving the inn a five star rating on Tripadvisor.com for its awe-inspiring vistas, charm, comfortable lodging, excellent breakfast, and the hospitality and friendship shown by hosts Jeannette and Jason.
I had never heard of Moab until our son Ryan discovered it on his long move to Texas where he's employed as a lineman. Apparently, I was a slow learner.
This is the end of the off season for tourism in the area and already the town of Moab, which is the gateway into Arches National Park, was swimming with tourists.
On day three of our car trip, we left our comfortable lodging for Arches National park. Breathtaking geographical features abound throughout the area.
There are three ways to enter the park, bicycle (if you like peddling up steep grades), motorcycle (if you like eating dust), or by car (no strenuous exercise or dust eating involved). We took the scenic drive, stopping often for photo shots and for short hikes in God's natural beauty.
Vern and I would like to share the beauty of the surrounding geography with our grown children and grandchild and hope to rendezvous there soon. A stay at the Castle View Inn is definitely on our to do list. But the next time, we need to stay longer than one night to fully enjoy God's beautiful Moab.
This entry was posted in Uncategorized and tagged America's Parks, Arches National Park, Author, Best Places to Visit in America, car trip, Castle View Inn, memoir, Moab Utah, National parks, Pamela Koefoed, the southwest, Travel blog, Writer. Bookmark the permalink.


Marc Hutchings and AssociatesBuilding and Construction Lawyers provide legal advice and services to commercial building contractors and property owners.
Our clients include construction companies involved in commercial projects such as; office buildings, retail stores, civil engineering works, hospitals, age care facilities, airports, factories, road building and sporting facilities.
We specialise in providing quick and effective dispute resolution for commercial construction companies and property developer clients.
Our legal services also extend to assisting manufacturers of building products, mechanical engineering businesses and civil engineers.
In the event of litigation, our solicitors and barristers are expert in conducting legal proceedings before all Courts and Tribunals in New South Wales.


text:
Why the 1900 Census!?!
What was it about FamilySearch's decision to index the 1900 U.S. Census that concerned people so much? One Ancestry Insider reader wrote,
Could you help answer one question I have had? Of all the projects to start indexing why did [FamilySearch Indexing] choose the 1900 census? I have my own ideas but I wonder if you have heard why. Thanks. Please keep these comments confidential.
Dear K.C., I promise I'll not tell another soul. Keep reading for the answer to your question.
Did We Just Declare War?
"Is everything OK at Ancestry.com?" a volunteer missionary of the FamilySearch department asked when FamilySearch announced the 1900 Census indexing project. "In our devotional today they announced that we were now at war."
"We Have a Bible..."
Another Insider reader wrote,
I signed up to do some indexing, but then decided it was kind of ridiculous to index [the 1900 Census] for Family Search when Ancestry and HeritageQuest have already indexed those same records. How many versions do we need?
At a recent conference an attendee asked a presenter from FamilySearch, "Why don't you just buy one of the existing indexes?The presenter froze and his voice trailed off, "We thought we had...."
The Real Answer
To get the real answer, we asked Paul Nauta, manager of public affairs for FamilySearch.
"We were seeking a record for the novice members of the Church in the United States that would give them a good indexing experience," said Nauta. Plus, the 1900 index project would produce a record set in which users would have "a high likelihood of success of finding someone in their living memory."
Many aspects of the census made it a good first project. It allowed FamilySearch to test some behind-the-scenes parameters. And "censuses are particularly easy for us to set up for indexing purposes, and of all the vital record types, censuses are the most user friendly to the novice indexer."
Nauta went on to explain that the 1900 U.S. Census includes a rich set of information. "[It] provides parents' birth place, number of children born to a mother, how many were still living, month and year of birth of each person, and more." He explained that given the loss of the 1890 census, it was particularly valuable to index the 1900 census which complements the 1880 census which they've already indexed.
Nauta revealed to the Insider that "FamilySearch Indexing is doing very well at this writing. We will be adding more censuses to the indexing cue shortly." Many indexers have already seen the first batches show up from the 1850 U.S. Census. FamilySearch made the choice public at the UGA Conference in Salt Lake last Wednesday.
Subjects: Ancestry.com, FamilySearch, indexing, news and issues
AncestryInsider September 14, 2007 at 11:04 AM
A little more information on this topic can be found in a Deseret News article, "Volunteers are computerizing 1900 Census data in record time." Pay particular attention to reader comments, which echo feelings expressed to the Insider.
"The 1900 census as well as many other years, are already on Ancestry and Heritage Quest online. ... To me doing the 1900 census doesn't make sense when they could be doing so many other records that haven't been done yet." (B Cole)
"HQ's 1900 census is NOT every name indexed. The objective is FREE access. ..." (W. David Samuelsen)
"There was no need for the LDS Church to index what has already been indexed three times (the soundex cards being the first time, with HeritageQuest and Ancestry being the second and third time). That 18 months of wasted effort by the FamilySearch Indexing volunteers (of which I am one--it is my calling in my ward), could have been spent on indexing millions of names from records that no one has yet indexed, such as the Draper Manuscripts." (Amanuensis)
"I understand that the census records that were indexed by Ancestry were done in Asian countries. The people were paid to do it. In the case of Family Search by the LDS Church, the people doing it are those who have a deep interest in genealogy and helping others find their own families, even if they aren't LDS. Also, Ancestry charges for all their census records except the 1880 census, which the LDS Church did. The records the LDS people and friends are doing will be available either for free or at minimal cost."
"Available at minimal cost"? That hasn't been announced yet, has it? I've been waiting to blog on the topic, but didn't think a final decision had been made.
Something I will blog about very soon is the point about commercial Asian indexers vs. volunteer indexers. I'll give you a preview. Indexing the 1850 U.S. Census I cam across the distinctly Mormon name, "Nephi." Guess how the name is indexed on Ancestry? Stay tooned [sic].
My great grandfather Patrick Dwyer lived in Kansas City in 1900. He was from Ireland and must have had a heavy accent. The enumerator spelled his name as Deguire!!! Both Heritage and Ancestry have botched this mistake in their indexes. 4 mistakes including the soundex!!! After years I finally went street by street to find him!!!!
When it comes to indexing census records, there are 2 things that are paramount, besides making sure it is an "every name" indexing. (1) the name has to be interpreted and indexed by those willing to study how EACH particular census-taker forms his alpha characters in writing, AND they must be familiar with the given names and surnames to a large degree (2) the name then has to be rendered in many other spellings...for example, the surname Canady can be based on someone hearing the name spoken and then deciding to spell it that way. That same record has to be entered as Kennedy etc etc....probably the single biggest breakthrough in people finding their ancestors. The earlier the date of the census, the more likely the census-takers went by the "sound" of the name, so a knowledge of phonics is very important.
End of comment.
If you believe the Mormon Church's excuse for chosing the 1900 census as an indexing project, you also believe in the tooth fairy. It is clear that Ancestry.com and the Church are at war.
Ancestry.com cancelled free access to their databases at the Family History Library/Centers. The Church in indexing revenue-generating records of Ancestry.com.
The only question is which came first the chicken or the egg.
Marie Katonak September 22, 2007 at 10:49 AM
Many of you people complaining about the LDS Church reindexing the 1900 Census is: (1) Census records are 'public domain' records, which means you shouldn't have to pay for something that you are allowed to look at for FREE. (2) The LDS has ALWAYS made their records available for FREE to anyone that wants to use them. (3) I am missing dozens of ancestors that I know where in the U.S. before the 1900 Census was taken! At least with the LDS volunteers they will probably do a better extraction because they know the frustration of knowing and not being able to find a relative. (4) It is frustrating to being paying a LOT of MONEY for a membership that promises Worldwide records, but they are not worldwide. I'm getting OLD and need to complete my family trees before too long.
AncestryInsider September 24, 2007 at 7:25 PM
Dear Marie Katonak,
Thanks for your comment. Let me respond to your points one by one.
(1) "Public domain means you shouldn't have to pay for something that you are allowed to look at for FREE." Sorry Marie, but someone always has to pay. There are a variety of public domain records which may be viewed for FREE at NARA. Surely you believe you should have to pay the airlines to fly to see these documents. Or you can have the documents sent to you, for which NARA will charge you. That's OK, isn't it? BTW, when you fly out to NARA, check their schedule first. Congress is cutting their budget so they've had to cut back on their library hours and increase their copying fees. Marie, someone always pays.
(2) Don't put too much stock in the LDS Church always providing these records for free. Many top level managers at FamilySearch have been pushing hard for over a year, urging the LDS Church to allow them to charge some users for some records. Call it "cost recapture."
(3) I think you make an excellent point here. A commercial firm must cap their quality at some level. A group of dedicated volunteers sponsored by a Church that wants to record every soul is far more likely to incur the extra costs to push quality to a higher level. How ironic, then, is the large number of indexers who admit to checking Ancestry.com when they can't read a name.
(4) I don't know that Ancestry "promises" that they have more records than they actually have. There are many ways of checking what records Ancestry has before you subscribe. Cancelling is easy. Click the Help link in the upper-right corner. If cancelling isn't one of the questions listed, type in "How do I cancel my subscription?" The article will instruct you to go to your My Account page and click on the Cancel Subscription link. It's that easy. Price complaints by people who won't cancel their subscriptions are getting as OLD as you are.
-- The Insider
You can find many more comments about this issue over at Dick Eastman's place.
The Ancestry Insider would like to thank him for referencing this article.
Dear Tooth-Fairy Cynic,
The Ancestry Insider remanded himself, leaving us, his staff, to respond to your comment. What could that mean? Thank you for your comment.
-- The Ancestry Insider Staff
Dear Mr./Mrs. Canady/Kennedy,
Thanks for your comments. Good suggestions for indexers interpreting handwriting and researchers searching indexes.
AncestryInsider September 24, 2007 at 10:26 PM
Dear Patrick Dwyer descendant,
When you suspect a name has been misindexed, it's time to use Ancestry's Exact Matches searching. An Exact Matches search of the 1900 Census for everyone born in Ireland and living in Kansas City, Missouri returns 3,509 matches. Adding some other piece of info can cut this to a reasonable number. I added a first name of Patrick, which cut the matches to 188. Browsing through these matches showed just a few starting with D, which made it simple to find your Patrick Dwyer was indexed as Patrick Deguise and enumerated as Patrick Deguior. He lived at 536 Harrison St. with his wife Margarette and children Mary, Richard, Thos., Maud and William.
Another nice feature of Ancestry.com is that you can add corrections when you find indexing mistakes. Corrections are displayed immediately and are rolled into the index after one or more months.
I have no problem with FamilySearch indexing the 1900 U.S. census records. The more the merrier! While I commend Ancestry for allowing the user to add corrections to its database, there are still plenty of misinterpreted names left untouched. As a genealogy librarian, if patrons were not successful with Ancestry or Heritage, I would steer them back to the microfilm and/or the home-grown works (if they existed) like census books produced by local genealogical societies or individuals. The latter tend to be much more accurate because the volunteers or individuals are usually more familiar with the names they are indexing. I see FamilySearch's plunge into indexing the 1900 census as a win for the searcher. BTW, what right of it is mine to tell FamilySearch it shouldn't be doing this? Its their time, money, and product.
HappyDae September 25, 2007 at 5:28 PM
NOT AT WAR
I specifically asked David Rencher who said, "Absolutely NOT. We want Ancestry to succeed. We simply wish they would share more."
Happy Dae.
Lindsay October 2, 2007 at 10:27 AM
Hopefully the top level managers at FamilySearch will take the Ancestry Insider's wise words to heart and remember that nothing is free, not even the time and effort put in by volunteer indexers.
Consider Amazon.com. Amazon has built a multi-billion dollar business at least in part by getting people to submit unpaid reviews and product ratings. Consider how many people would be willing to submit such reviews without pay if users of Amazon.com had to pay to view them. If you want people to volunteer to transcribe records for you, it seems unwise to then charge them to view the fruits of their labor. Consider the potential for Ancestry.com to put up a volunteer indexing system. How many people will be willing to index for Ancestry.com knowing that the fruits of their labor would be sold for profit by Ancestry?
FamilySearch has extremely ambitious goals, which it likely cannot afford to achieve on a paid labor basis, so it needs to think carefully about the trade off in getting paid for the contributions it is making versus the contributions the volunteer indexers are making. FamilySearch might decide to rely on church member's dedication. It might try to come up with some scheme whereby those who contribute get access, or improved access, but how will quality be effected if their transcribers are motivated by desire to get access? It might be workable with sufficient quality-monitoring mechanisms. Then again, Ancestry might be able to work out a means of trading access for indexing labor.
Right now FamilySearch appears to have a competitive model for achieving its goals by attracting labor instead of money. Unless they are overwhelmed by "freeloaders" they will do well think long and hard before trying to get labor and money out of their users, because providing access is already quite cheap and getting cheaper by the day diminishing the importance of the freeloader, while the cost of labor is not following a similar trajectory.
It's a pretty basic decision about whether they want to compete with Ancestry as a second provider of paid access or instead compete on the basis of leveraging volunteer labor. Trying to mix the two will be a very fine line to try to walk.
Or at least that's how I see it.
New FamilySearch Coming to You!
Beta Test New FamilySearch Affiliates
Don't Miss the Train - Part 2
Ancestry.com Adds Corporate Blog
FamilySearch Indexing Tip: Birth Year Quiz Answer
The Nervous Green Duck, reborn
Ancestry Titles Available in FHCs
Help will come
Ancestry, Don't Miss the Train - Part 1
FamilySearch Indexing Tip: Birth Year
The Bloglines Plumber
Not by Chance
FamilySearch Indexing Hint: Lookup List
Layoffs at The Generations Network
I Found Her Crying
Unreadable Floppies
Am Eye Seeing Things?
BYU Conference: Elder Coleman Presentation


Chloe is an esthetician who obtained her esthetics license from Aveda Institute and began her career in August 2014 working in various spas and along side an ocular plastic surgeon. Her creativity and passion for helping others, coupled with her love for skincare is what sparked her interest in becoming an Esthetician. She is always looking to learn something new and expand her knowledge in the ever growing beauty industry.
From Microdermabrasion, Chemical peels, Micro-current and the many other services Skinlogica has to offer, she takes pride in each treatment she performs. Whether it's your first time getting your eyebrows done or you just need some brow rehab, she is your go-to girl for getting the best brows possible! She finds it very fulfilling to connect with her patients, establish trust, and give personal attention to their needs. Chloe strives to make every guest feel welcomed and comfortable to ensure you leave the spa with a positive experience!


The Presma® Owl Series Binoculars are designed for adapting to the tough, water-proof and fog-proof conditions and environments like outdoor activities in bird watching, hiking, hunting, and nature observation. The Presma Binoculars are an ideal essential to carry around during your leisure activities, bringing the scene close to you. A tough protective rubber armor with a newly added diamond cut grip ensures a secure grip while protecting the binoculars from tough use.
• Nitrogen or Argon gas purging with O-ring seals.
• Phase-corrected prism for sharper image and contrast.
• Rubber armor for water-proofing and shock resistance.
• Die electric multi layered.


text:
texans vs steelers 2015
No Comments on texans vs steelers 2015
Pittsburgh Steelers running back James Conner (30) is stopped by Houston Texans strong safety Justin Reid (20) and inside linebacker Zach Cunningham (41) during the fourth quarter of an NFL football game at Heinz Field on Sunday, Sept. 27, 2020, in Pittsburgh. Houston Texans outside linebacker Whitney Mercilus (59) grabs Pittsburgh Steelers quarterback Ben Roethlisberger (7) by the shoulder leading to a sack during the first half of an NFL football game at Heinz Field on Sunday, Sept. 27, 2020, in Pittsburgh. The Texans managed to get on the board as the half wined down with a 22-yard field goal from Nick Novak. The Raiders however, retook the lead when Carr found Amari Cooper on a 15-yard pass for a 14-11 lead. Backup QB Landry Jones started the game, but left due to injury and was replaced by Ben Roethlisberger. The Browns wrapped up the scoring of the first half when Coons nailed a 33-yard field goal for a 14-9 game. After a scoreless first quarter, the Patriots scored first in the second quarter when Tom Brady found Rob Gronkowski on 2 consecutive touchdown passes: from 16 and 6 yards out for leads of 7-0 and 14-0. On 3rd and 18, Brian Hoyer found Nate Washington for a 49-yard pass to put Houston at New England's 25 yard line. With the loss, the Steelers started their season 0-1. Jacksonville received the opening kickoff, going –5 yards on the drive with Blake Bortles being sacked by J. J. Watt for a loss of 8 yards. Houston Texans outside linebacker Whitney Mercilus (59), defensive end Charles Omenihu (94)h and defensive end J.J. Watt (99) sack Pittsburgh Steelers quarterback Ben Roethlisberger (7) during the first half of an NFL football game at Heinz Field on Sunday, Sept. 27, 2020, in Pittsburgh. Nonetheless, Houston managed to keep pace throughout despite not leading all game, but gave up a go-ahead touchdown by Charles Clay on the first play off the two-minute warning, followed by Dan Carpenter's 30-yard field goal to put it away for good. 53 active, 14 inactive, 10 practice squad. Watson could be under pressure all day as the Houston O-line is ranked dead last in pass protection this year and has given up a league-high eight sacks. Watt sacked Watson on the play. Foster scored again late in the 3rd, this time with a 2-yard rush. The Jaguars scored on an Allen Hurns 11 yard pass from Bortles. Tennessee got their first score of the day with 1:31 left in the game, with Mettenberger connecting with Tre McBride for a 1-yard touchdown reception. The 2015 season marked the first time the Texans beat the Colts in Indianapolis, helped in part by third–string quarterback Brandon Weeden. In 2015, he was named as a Gridiron Legend in Texas, becoming the third member of the media behind Dave Campbell and Mickey Herskowitz. The Texans extended their lead with a 19-yard field goal from Bullock to lead 19–9 with 1:15 left to play. Quarterback Ben Roethlisberger injured his left knee mid-third quarter; he was carted off-field and Michael Vick replaced him for the remainder of the game. Did you know that if you parlayed this week's NFL Texans vs. Steelers picks, you could win $150.36 on a $10 bet? The winning score was set up by back-to-back personal foul penalties against the Bengals. By the 2-minute warning Houston had reached Indianapolis territory at the Colts' 38. Tennessee's offense struggled throughout the game, with Antonio Andrews fumbling the ball on the Titans' first possession. The Steelers were scheduled to have joint practices with the Buffalo Bills this preseason but, due their commitment to play in the Pro Football Hall of Fame Game, they canceled the joint practices but agreed to still play a later preseason game against the Bills on August 29. Pittsburgh Steelers quarterback Ben Roethlisberger (7) against the Houston Texans defense during the first half of an NFL football game at Heinz Field on Sunday, Sept. 27, 2020, in Pittsburgh. The Steelers however wrapped up the scoring of the game when Roethlisberger found Antonio Brown on a 7-yard TD pass for the final score 43-18. The Steelers defeated the Cincinnati Bengals in the Wild Card round, but lost to the eventual Super Bowl champion Denver Broncos in the Divisional round. The defense had yet another stellar outing by forcing 3 turnovers and getting 5 sacks (2 on Hasselbeck, 3 on Whitehurst). The Seahawks would come within 1 when Thomas Rawls made a 1-yard TD run (with a failed PAT) for a 21-20 game. With the Texans receiving the ball back, backup quarterback B. J. Daniels took the knee to close out the game. ET). [6] The Steelers have run the 3–4 since 1982, the longest such use of the 3–4 in NFL history. Backup QB Landry Jones was able to find Martavis Bryant on a 19-yard pass to make the score 16-10 for the Steelers later on in the third quarter. Bortles connected with Julius Thomas for a 29-yard touchdown pass. James Conner and the Steelers could be in for a big day on Sunday against a Houston Texans defense that's allows nearly 200 rushing yards per game through the first two weeks of the season. [5] Butler stated that the team will continue to run the 3–4 defense as its primary package, but will also run some 4–3 packages, essentially converting the system to a hybrid 3–4. After a tough home loss to the Ravens, the Steelers traveled to San Diego to take on the Chargers. In the first quarter, the Steelers grabbed an early lead as Chris Boswell nailed a 24-yard field goal for a 3-0 lead. The 2015 Houston Texans season was the franchise's 14th season in the National Football League and the second under head coach Bill O'Brien.. Houston started the season going into their bye week at 3–5, including blowout losses to the Atlanta Falcons (21–48) and against the Miami Dolphins (26–44).
Tv Entertainment News, Dewanna Bonner Salary, Sylvia Band, Coca-cola Financial Analysis 2017, Successful Oxbridge Personal Statement, Myleene Klass Height, Baltimore Blast Players 2020, Power Set Properties, National Anthem Raiders Game Today, 30 Second Timer Countdown, Oman Currency, Ward 2 Saskatoon, Aberdeen Fc Fixtures, Boston Whaler Models By Year,