text:
Satellite images of northern Siberia raise questions among NASA scientists
2 years ago Leo Adkins
The geological ambiguity recorded in the photographs gave rise to many scientific hypotheses.
Google shares more than a thousand amazing landscapes of Earth captured by satellite (video)
United States, February 27 (RT) Satellite Image Series from U.S Arctic region of Russia It raised questions among scholars NASA.
This week, researchers from the US Space Agency posted on the Internet Earth Observatory Images of Northeast Siberia, recorded by the satellite Landsat 8 Over several years.
In these images, the terrain on either side of the Marga River shows a series of alternating lines, dark and light, tighter in steep and wider areas where the slope is gentle, until they disappear towards the edges.
Images of Northeast Siberia recorded by Landsat 8. Image: NASA.
This peculiarity appears in all seasons of the year, although it is most evident in winter, when snow increases the contrast.
Some experts have provided NASA with different explanations for this phenomenon. One hypothesis refers to the fact that this area of the Central Siberian Plateau is within the Arctic Circle, and therefore, 90 percent of the time is covered with permafrost, which sometimes thaws for short periods. It has been known that patches of soil that freeze, thaw, and freeze can form odd polygonal, circular and striped patterns.
Elsewhere, however, these patterns tend to be smaller than those recorded in Siberia.
After soil thawing and freezing it can form odd polygonal, circular and striped patterns. Image: NASA.
Geomorphology researchers offer another explanation: In such colder regions, the ground can turn into "glysol", which is permafrost soil at the top of two meters, where dark and light layers are usually distinguished based on the spread of organic or mineral matter and sediment content.
When the soil freezes and thaws, the layers split and mix vertically. By repeating these cycles at intervals of time, the layers can line up and form striped patterns. Various types of tundra can grow on top of it, highlighting the streaks seen from space. However, this hypothesis has not been extensively tested.
When the soil freezes and thaws, the layers split and mix vertically. Image: NASA.
Thomas Crawford, a researcher at the US Geological Survey, asserts that the lines reflect a pattern of sedimentary rocks known as "puff pastry geology," in which these rock layers have been exposed and dissected by erosion. When the snow melts or the rain drifts down the slope, the boulders break apart and slide into ravines. This erosion can cause interlocking patterns, seen as lightning bolts from space.
In winter, the flat parts are covered with snow, and they become lighter, while the darker areas correspond to the slopes. The fading of the striped pattern at the edges is due to sedimentary build-up caused by erosion of millions of years.
This content is published by SINEMBARGO with the express authority of RT. See the original here. Reproduction of it is prohibited.
Leo Adkins
"Evil coffee nerd. Analyst. Incurable bacon practitioner. Total twitter fan. Typical food aficionado."
Previous This is how Deep Nostalgia, an AI tool that creates videos of your ancestors, works.
Next Snow Moon 2021: When to see it and what is its meaning | International | News
10 hours ago Leo Adkins
Goodbye to the "unfaithful status" on WhatsApp: what happened and what was the function?
1 day ago Leo Adkins
2 days ago Leo Adkins


Tucked away on a remote wooded peninsula in the picturesque Pacific Northwest is the town of Gig Harbor, Washington. With a population of 120,000, and growing, the people of Gig Harbor needed a large scale health center that would address their healthcare needs in a calming and peaceful healing environment. The main concern for the Franciscan Health System, the offshoot of Catholic Health Initiatives that commissioned the project, was that the building reflected the history of the community and the natural surroundings of the area.


text:
Fatal Mariposa County Crash
By B.J. Hansen	 Published Aug 3, 2015 10:06 am Updated Aug 3, 2015 10:07 am
CHP logo
Mariposa County, CA — One person was killed and 10 others were injured in a crash in Mariposa County over the weekend.
It happened on Highway 140 near the area of Bear Creek Bridge. The man killed was an unidentified 39-year-old from Oakland. He was a passenger in a 2015 Subaru driven by 27-year-old Jesus Arredondobarraz of Oakland. The CHP reports that Arredondbarraz was passing another vehicle over double yellow lines, and collided head-on with an oncoming 2015 Ford Explorer driven by 49-year-old Scott Sedlack of San Jose. The Subaru had six occupants and the Ford Explorer had five. Everyone involved reported some form of injury, ranging from neck pains, to shoulder injuries, to the fatality.

redpajama_set_name: RedPajamaCommonCrawl


text:
Designed with business professionals in mind, our events offer unique market insights and enhanced networking opportunities for industry experts.
Labuan IBFC Inc
Protected Cell Companies: An Affordable Self-Insurance Solution for Pandemic Times?
International Tax Development: Impact on Global Financial Centres
Philanthropic Structuring: The Asian Context
Regulatory Recognition: A Sign of a Maturing Digital Landscape?
HKICPA Seminar: Leading the Wealth Management Industry in Asia (Hong Kong)
Asia has witnessed significant growth in recent years and is becoming increasingly important in the global economy. Hong Kong and Singapore are dynamic and robust financial hubs in the region and are ranked among the top five financial centres in the world. In the face of slower economic growth and evolving financial landscape with greater demand for transparency, how do the two economies sustain their developments and reinvent the wealth management industry amid challenging global conditions?
As Asian wealth management gains momentum, the demand for services to support international businesses will escalate. In what ways have Labuan International Business and Financial Centre ("IBFC") strengthened itself as a strategic platform for connecting Asia's economies and providing a wide range of business and investment structures to meet the growing demand of international businesses?
In this seminar, the speakers will share their insights on how Hong Kong, Singapore and Labuan are leading and supporting the growth in Asia's wealth management industry.
Topics to be covered in this seminar include:
Singapore and Hong Kong: Leaders in Asian Wealth Management
Legal framework and justice
Singapore and Hong Kong tax update
Wealth management and family office services in Singapore and Hong Kong
Rising to the challenges of Foreign Account Tax Compliance Act (FATCA) and Global Account Tax Compliance Act (GATCA) or Common Reporting Standard (CRS)
Fund incentive programmes in Singapore
Labuan: Asia Pacific's Leading Mid-shore International Business and Financial Centre
Supporting the growth of wealth management in Asia
The uses and advantages of Labuan entities for Asian-based clients
Labuan Business Activity Tax Act 1990
Malaysian double taxation agreements
Labuan trusts and foundations
Labuan as a low tax regional trading hub for Southeast Asia
For enquiries and registration, please e-mail: finance@hkicpa.org.hk
DANIAL MAH ABDULLAH
Mr Danial Mah Abdullah is currently Chief Executive Officer of Labuan IBFC Incorporated Sdn Bhd (Labuan IBFC Inc), the official promotion and marketing agency for Labuan International Business and Financial Centre (Labuan IBFC).
His experience spanning numerous years as a central banker has put him in good stead in promoting Labuan IBFC as the ideal midshore jurisdiction in Asia Pacific.
Mr Danial is a member of the Executive Committee of the International Islamic Financial Market (IIFM) and the Financial Stability Committee; alternate Board member of the IIFM; and a Board member of Labuan IBFC Inc, LabuanFSA Incorporated Sdn Bhd and Pristine Era Sdn Bhd.
Mr Danial has a Bachelor of Accounting (Hons) from the University of Malaya, Malaysia; and a Masters in Business Administration from the Manchester Business School, UK. He is a Chartered Accountant registered with the Malaysian Institute of Accountants.
DAVID CHONG
David Chong is President of the Portcullis Group. He is qualified as a Barrister-at-Law, Lincoln's Inn; Advocate & Solicitor, Singapore, Malaysia and Brunei; Barrister & Solicitor, British Virgin Islands; Barrister & Solicitor, Australian Capital Territory and Victoria, Australia; and Solicitor, New South Wales and Queensland, Australia.
David served as the Founding President of Society of Trust & Estate Practitioners (STEP) Singapore Branch and was the Founding President of the Singapore Fund Administrators Association (SFAA). He is the President of the Singapore Trustees Association (STA).
EVENTS DETAILS
2-Sept-2016 (Fri)
Hong Kong Institute of CPAs
27/F Wu Chung House
213 Queen's Road East


text:
package org.jbpm.casemgmt.impl;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.kie.scanner.MavenRepository.getMavenRepository;

import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.drools.compiler.kie.builder.impl.InternalKieModule;
import org.jbpm.casemgmt.api.CaseNotFoundException;
import org.jbpm.casemgmt.api.model.AdHocFragment;
import org.jbpm.casemgmt.api.model.CaseStatus;
import org.jbpm.casemgmt.api.model.instance.CaseFileInstance;
import org.jbpm.casemgmt.api.model.instance.CaseInstance;
import org.jbpm.casemgmt.api.model.instance.CaseStageInstance;
import org.jbpm.casemgmt.api.model.instance.StageStatus;
import org.jbpm.casemgmt.impl.util.AbstractCaseServicesBaseTest;
import org.jbpm.kie.services.impl.KModuleDeploymentUnit;
import org.jbpm.services.api.model.DeploymentUnit;
import org.jbpm.services.api.model.NodeInstanceDesc;
import org.jbpm.services.api.model.ProcessDefinition;
import org.jbpm.services.api.model.ProcessInstanceDesc;
import org.jbpm.services.task.impl.model.UserImpl;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.kie.api.KieServices;
import org.kie.api.builder.ReleaseId;
import org.kie.api.runtime.process.ProcessInstance;
import org.kie.api.task.model.OrganizationalEntity;
import org.kie.api.task.model.Status;
import org.kie.api.task.model.TaskSummary;
import org.kie.api.runtime.query.QueryContext;
import org.kie.internal.query.QueryFilter;
import org.kie.scanner.MavenRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class CaseRuntimeDataServiceImplTest extends AbstractCaseServicesBaseTest {

    private static final Logger logger = LoggerFactory.getLogger(CaseRuntimeDataServiceImplTest.class);

    private List<DeploymentUnit> units = new ArrayList<DeploymentUnit>();

    public static final String SORT_BY_CASE_DEFINITION_NAME = "CaseName";

    @Before
    public void prepare() {
        configureServices();
        KieServices ks = KieServices.Factory.get();
        ReleaseId releaseId = ks.newReleaseId(GROUP_ID, ARTIFACT_ID, VERSION);
        List<String> processes = new ArrayList<String>();
        processes.add("cases/EmptyCase.bpmn2");
        processes.add("cases/UserTaskCase.bpmn2");
        processes.add("cases/UserTaskCaseBoundary.bpmn2");
        processes.add("cases/UserTaskWithStageCase.bpmn2");
        processes.add("cases/CaseWithTwoStages.bpmn2");
        processes.add("cases/CaseWithTwoStagesConditions.bpmn2");
        // add processes that can be used by cases but are not cases themselves
        processes.add("processes/DataVerificationProcess.bpmn2");
        processes.add("processes/UserTaskProcess.bpmn2");

        InternalKieModule kJar1 = createKieJar(ks, releaseId, processes);
        File pom = new File("target/kmodule", "pom.xml");
        pom.getParentFile().mkdir();
        try {
            FileOutputStream fs = new FileOutputStream(pom);
            fs.write(getPom(releaseId).getBytes());
            fs.close();
        } catch (Exception e) {

        }
        MavenRepository repository = getMavenRepository();
        repository.deployArtifact(releaseId, kJar1, pom);
    }

    @After
    public void cleanup() {
        identityProvider.reset();
        cleanupSingletonSessionId();
        if (units != null && !units.isEmpty()) {
            for (DeploymentUnit unit : units) {
                deploymentService.undeploy(unit);
            }
            units.clear();
        }
        close();
    }

    /*
     * Case instance queries
     */

    @Test
    public void testStartEmptyCaseWithCaseFile() {
        assertNotNull(deploymentService);
        DeploymentUnit deploymentUnit = new KModuleDeploymentUnit(GROUP_ID, ARTIFACT_ID, VERSION);

        deploymentService.deploy(deploymentUnit);
        units.add(deploymentUnit);
        Map<String, Object> data = new HashMap<>();
        data.put("name", "my first case");
        CaseFileInstance caseFile = caseService.newCaseFileInstance(deploymentUnit.getIdentifier(), EMPTY_CASE_P_ID, data);

        String caseId = caseService.startCase(deploymentUnit.getIdentifier(), EMPTY_CASE_P_ID, caseFile);
        assertNotNull(caseId);
        assertEquals(FIRST_CASE_ID, caseId);
        try {
            CaseInstance cInstance = caseService.getCaseInstance(caseId, true, false, false, false);
            assertNotNull(cInstance);
            assertEquals(FIRST_CASE_ID, cInstance.getCaseId());
            assertNotNull(cInstance.getCaseFile());
            assertEquals("my first case", cInstance.getCaseFile().getData("name"));

            Collection<CaseInstance> instances = caseRuntimeDataService.getCaseInstances(new QueryContext());
            assertNotNull(instances);

            assertEquals(1, instances.size());
            CaseInstance instance = instances.iterator().next();
            assertNotNull(instance);

            assertEquals(FIRST_CASE_ID, instance.getCaseId());
            assertEquals(EMPTY_CASE_P_ID, instance.getCaseDefinitionId());
            assertEquals("my first case", instance.getCaseDescription());
            assertEquals("testUser", instance.getOwner());
            assertEquals(ProcessInstance.STATE_ACTIVE, instance.getStatus().intValue());
            assertEquals(deploymentUnit.getIdentifier(), instance.getDeploymentId());
            assertNotNull(instance.getStartedAt());

            // add dynamic user task to empty case instance - first by case id
            Map<String, Object> parameters = new HashMap<>();
            caseService.addDynamicTask(FIRST_CASE_ID, caseService.newHumanTaskSpec("First task", "test", "john", null, parameters));

            Collection<NodeInstanceDesc> activeNodes = caseRuntimeDataService.getActiveNodesForCase(FIRST_CASE_ID, new QueryContext());
            assertNotNull(activeNodes);
            assertEquals(1, activeNodes.size());

            NodeInstanceDesc activeNode = activeNodes.iterator().next();
            assertNotNull(activeNodes);
            assertEquals("[Dynamic] First task", activeNode.getName());

            List<TaskSummary> tasks = caseRuntimeDataService.getCaseTasksAssignedAsPotentialOwner(caseId, "john", null, new QueryContext());
            assertNotNull(tasks);
            assertEquals(1, tasks.size());
            TaskSummary task = tasks.get(0);
            assertEquals("First task", task.getName());
            assertEquals("test", task.getDescription());

        } catch (Exception e) {
            logger.error("Unexpected error {}", e.getMessage(), e);
            fail("Unexpected exception " + e.getMessage());
        } finally {
            if (caseId != null) {
                caseService.cancelCase(caseId);
            }
        }
    }

    @Test
    public void testUserTasksInCase() {
        // use user name who is part of the case roles assignment
        // so (s)he will be authorized to access case instance
        identityProvider.setName("john");
        Map<String, OrganizationalEntity> roleAssignments = new HashMap<>();
        roleAssignments.put("owner", new UserImpl("john"));

        assertNotNull(deploymentService);
        DeploymentUnit deploymentUnit = new KModuleDeploymentUnit(GROUP_ID, ARTIFACT_ID, VERSION);

        deploymentService.deploy(deploymentUnit);
        units.add(deploymentUnit);
        Map<String, Object> data = new HashMap<>();
        CaseFileInstance caseFile = caseService.newCaseFileInstance(deploymentUnit.getIdentifier(), USER_TASK_CASE_P_ID, data, roleAssignments);
        String caseId2 = null;
        String caseId = caseService.startCase(deploymentUnit.getIdentifier(), USER_TASK_STAGE_CASE_P_ID, caseFile);
        assertNotNull(caseId);
        assertEquals(FIRST_CASE_ID, caseId);
        try {
            CaseInstance cInstance = caseService.getCaseInstance(caseId);
            assertNotNull(cInstance);
            assertEquals(FIRST_CASE_ID, cInstance.getCaseId());
            assertEquals(deploymentUnit.getIdentifier(),
                         cInstance.getDeploymentId());

            List<TaskSummary> tasks = caseRuntimeDataService.getCaseTasksAssignedAsPotentialOwner(caseId, "john", null, new QueryContext());
            assertNotNull(tasks);
            assertEquals(0, tasks.size());

            Map<String, Object> taskInput = new HashMap<>();
            taskInput.put("ActorId", "john");
            taskInput.put("Comment",
                          "Need to provide data");
            caseService.triggerAdHocFragment(caseId,
                                             "Missing data",
                                             taskInput);

            tasks = caseRuntimeDataService.getCaseTasksAssignedAsPotentialOwner(caseId, "john", null, new QueryContext());
            assertNotNull(tasks);
            assertEquals(1, tasks.size());
            TaskSummary task = tasks.get(0);
            assertEquals("Missing data", task.getName());
            assertEquals("Need to provide data", task.getSubject());

            caseId2 = caseService.startCase(deploymentUnit.getIdentifier(), USER_TASK_STAGE_CASE_P_ID, caseFile);
            assertNotNull(caseId2);
            assertEquals("CASE-0000000002", caseId2);

            caseService.triggerAdHocFragment(caseId2,
                                             "Missing data",
                                             taskInput);

            tasks = caseRuntimeDataService.getCaseTasksAssignedAsPotentialOwner(caseId2, "john", null, new QueryContext());
            assertNotNull(tasks);
            assertEquals(1,
                         tasks.size());
            task = tasks.get(0);
            assertEquals("Missing data",
                         task.getName());

            tasks = caseRuntimeDataService.getCaseTasksAssignedAsPotentialOwner(caseId, "john", null, new QueryContext());
            assertNotNull(tasks);
            assertEquals(1, tasks.size());
            task = tasks.get(0);
            assertEquals("Missing data", task.getName());

        } catch (Exception e) {
            logger.error("Unexpected error {}", e.getMessage(), e);
            fail("Unexpected exception " + e.getMessage());
        } finally {
            if (caseId != null) {
                caseService.cancelCase(caseId);
            }
            if (caseId2 != null) {
                caseService.cancelCase(caseId2);
            }
        }
    }

    @Test
    public void testUserTasksInCaseWithSubprocess() {
        // use user name who is part of the case roles assignment
        // so (s)he will be authorized to access case instance
        identityProvider.setName("john");
        Map<String, OrganizationalEntity> roleAssignments = new HashMap<>();
        roleAssignments.put("owner", new UserImpl("john"));

        assertNotNull(deploymentService);
        DeploymentUnit deploymentUnit = new KModuleDeploymentUnit(GROUP_ID, ARTIFACT_ID, VERSION);

        deploymentService.deploy(deploymentUnit);
        units.add(deploymentUnit);
        Map<String, Object> data = new HashMap<>();
        CaseFileInstance caseFile = caseService.newCaseFileInstance(deploymentUnit.getIdentifier(), USER_TASK_CASE_P_ID, data, roleAssignments);

        String caseId = caseService.startCase(deploymentUnit.getIdentifier(), USER_TASK_STAGE_CASE_P_ID, caseFile);
        assertNotNull(caseId);
        assertEquals(FIRST_CASE_ID, caseId);
        try {
            CaseInstance cInstance = caseService.getCaseInstance(caseId);
            assertNotNull(cInstance);
            assertEquals(FIRST_CASE_ID,
                         cInstance.getCaseId());
            assertEquals(deploymentUnit.getIdentifier(), cInstance.getDeploymentId());

            List<TaskSummary> tasks = caseRuntimeDataService.getCaseTasksAssignedAsPotentialOwner(caseId,
                                                                                "john",
                                                                                null,
                                                                                new QueryContext());
            assertNotNull(tasks);
            assertEquals(0, tasks.size());

            Map<String, Object> taskInput = new HashMap<>();
            taskInput.put("ActorId", "john");
            caseService.triggerAdHocFragment(caseId,
                                             "Missing data",
                                             taskInput);

            tasks = caseRuntimeDataService.getCaseTasksAssignedAsPotentialOwner(caseId, "john", null, new QueryContext());
            assertNotNull(tasks);
            assertEquals(1, tasks.size());
            TaskSummary task = tasks.get(0);
            assertEquals("Missing data",
                         task.getName());

            caseService.addDynamicSubprocess(caseId,
                                             "UserTask",
                                             null);

            tasks = caseRuntimeDataService.getCaseTasksAssignedAsPotentialOwner(caseId,
                                                                                "john",
                                                                                null,
                                                                                new QueryContext());
            assertNotNull(tasks);
            assertEquals(2, tasks.size());
            task = tasks.get(0);
            assertEquals("Hello", task.getName());
            task = tasks.get(1);
            assertEquals("Missing data", task.getName());

        } catch (Exception e) {
            logger.error("Unexpected error {}", e.getMessage(), e);
            fail("Unexpected exception " + e.getMessage());
        } finally {
            if (caseId != null) {
                caseService.cancelCase(caseId);
            }

        }
    }

    @Test
    public void testUserTasksInCaseAdBusinessAdmin() {
        // use user name who is part of the case roles assignment
        // so (s)he will be authorized to access case instance
        identityProvider.setName("john");
        Map<String, OrganizationalEntity> roleAssignments = new HashMap<>();
        roleAssignments.put("owner", new UserImpl("john"));

        assertNotNull(deploymentService);
        DeploymentUnit deploymentUnit = new KModuleDeploymentUnit(GROUP_ID, ARTIFACT_ID, VERSION);

        deploymentService.deploy(deploymentUnit);
        units.add(deploymentUnit);
        Map<String, Object> data = new HashMap<>();
        CaseFileInstance caseFile = caseService.newCaseFileInstance(deploymentUnit.getIdentifier(), USER_TASK_CASE_P_ID, data, roleAssignments);
        String caseId2 = null;
        String caseId = caseService.startCase(deploymentUnit.getIdentifier(), USER_TASK_STAGE_CASE_P_ID, caseFile);
        assertNotNull(caseId);
        assertEquals(FIRST_CASE_ID, caseId);
        try {
            CaseInstance cInstance = caseService.getCaseInstance(caseId);
            assertNotNull(cInstance);
            assertEquals(FIRST_CASE_ID, cInstance.getCaseId());
            assertEquals(deploymentUnit.getIdentifier(), cInstance.getDeploymentId());

            List<TaskSummary> tasks = caseRuntimeDataService.getCaseTasksAssignedAsBusinessAdmin(caseId, "Administrator", null, new QueryContext());
            assertNotNull(tasks);
            assertEquals(0, tasks.size());

            Map<String, Object> taskInput = new HashMap<>();
            taskInput.put("ActorId",
                          "john");
            caseService.triggerAdHocFragment(caseId,
                                             "Missing data",
                                             taskInput);

            tasks = caseRuntimeDataService.getCaseTasksAssignedAsBusinessAdmin(caseId, "Administrator", null, new QueryContext());
            assertNotNull(tasks);
            assertEquals(1, tasks.size());
            TaskSummary task = tasks.get(0);
            assertEquals("Missing data", task.getName());

            caseId2 = caseService.startCase(deploymentUnit.getIdentifier(), USER_TASK_STAGE_CASE_P_ID, caseFile);
            assertNotNull(caseId2);
            assertEquals("CASE-0000000002", caseId2);

            caseService.triggerAdHocFragment(caseId2,
                                             "Missing data",
                                             taskInput);

            tasks = caseRuntimeDataService.getCaseTasksAssignedAsBusinessAdmin(caseId2, "Administrator", null, new QueryContext());
            assertNotNull(tasks);
            assertEquals(1,
                         tasks.size());
            task = tasks.get(0);
            assertEquals("Missing data",
                         task.getName());

            tasks = caseRuntimeDataService.getCaseTasksAssignedAsBusinessAdmin(caseId, "Administrator", null, new QueryContext());
            assertNotNull(tasks);
            assertEquals(1, tasks.size());
            task = tasks.get(0);
            assertEquals("Missing data", task.getName());

        } catch (Exception e) {
            logger.error("Unexpected error {}", e.getMessage(), e);
            fail("Unexpected exception " + e.getMessage());
        } finally {
            if (caseId != null) {
                caseService.cancelCase(caseId);
            }
            if (caseId2 != null) {
                caseService.cancelCase(caseId2);
            }
        }
    }

    @Test
    public void testUserTasksInCaseAdStakeholder() {
     // use user name who is part of the case roles assignment
        // so (s)he will be authorized to access case instance
        identityProvider.setName("john");
        Map<String, OrganizationalEntity> roleAssignments = new HashMap<>();
        roleAssignments.put("owner", new UserImpl("john"));

        assertNotNull(deploymentService);
        DeploymentUnit deploymentUnit = new KModuleDeploymentUnit(GROUP_ID, ARTIFACT_ID, VERSION);

        deploymentService.deploy(deploymentUnit);
        units.add(deploymentUnit);
        Map<String, Object> data = new HashMap<>();
        CaseFileInstance caseFile = caseService.newCaseFileInstance(deploymentUnit.getIdentifier(), USER_TASK_CASE_P_ID, data, roleAssignments);
        String caseId2 = null;
        String caseId = caseService.startCase(deploymentUnit.getIdentifier(), USER_TASK_STAGE_CASE_P_ID, caseFile);
        assertNotNull(caseId);
        assertEquals(FIRST_CASE_ID, caseId);
        try {
            CaseInstance cInstance = caseService.getCaseInstance(caseId);
            assertNotNull(cInstance);
            assertEquals(FIRST_CASE_ID, cInstance.getCaseId());
            assertEquals(deploymentUnit.getIdentifier(), cInstance.getDeploymentId());

            List<TaskSummary> tasks = caseRuntimeDataService.getCaseTasksAssignedAsStakeholder(caseId,
                                                                                "john",
                                                                                null,
                                                                                new QueryContext());
            assertNotNull(tasks);
            assertEquals(0, tasks.size());

            Map<String, Object> taskInput = new HashMap<>();
            taskInput.put("ActorId", "mary");
            taskInput.put("TaskStakeholderId", "john");
            caseService.triggerAdHocFragment(caseId, "Missing data", taskInput);

            tasks = caseRuntimeDataService.getCaseTasksAssignedAsStakeholder(caseId,
                                                                             "john",
                                                                             null,
                                                                             new QueryContext());
            assertNotNull(tasks);
            assertEquals(1, tasks.size());
            TaskSummary task = tasks.get(0);
            assertEquals("Missing data", task.getName());

            caseId2 = caseService.startCase(deploymentUnit.getIdentifier(), USER_TASK_STAGE_CASE_P_ID, caseFile);
            assertNotNull(caseId2);
            assertEquals("CASE-0000000002", caseId2);

            caseService.triggerAdHocFragment(caseId2, "Missing data", taskInput);

            tasks = caseRuntimeDataService.getCaseTasksAssignedAsStakeholder(caseId2,
                                                                             "john",
                                                                             null,
                                                                             new QueryContext());
            assertNotNull(tasks);
            assertEquals(1, tasks.size());
            task = tasks.get(0);
            assertEquals("Missing data", task.getName());

            tasks = caseRuntimeDataService.getCaseTasksAssignedAsStakeholder(caseId,
                                                                             "john",
                                                                             null,
                                                                             new QueryContext());
            assertNotNull(tasks);
            assertEquals(1, tasks.size());
            task = tasks.get(0);
            assertEquals("Missing data", task.getName());

        } catch (Exception e) {
            logger.error("Unexpected error {}", e.getMessage(), e);
            fail("Unexpected exception " + e.getMessage());
        } finally {
            if (caseId != null) {
                caseService.cancelCase(caseId);
            }
            if (caseId2 != null) {
                caseService.cancelCase(caseId2);
            }
        }
    }

    @Test
    public void testGetProcessDefinitions() {
        assertNotNull(deploymentService);
        DeploymentUnit deploymentUnit = new KModuleDeploymentUnit(GROUP_ID, ARTIFACT_ID, VERSION);

        deploymentService.deploy(deploymentUnit);
        units.add(deploymentUnit);
        Collection<ProcessDefinition> processes = caseRuntimeDataService.getProcessDefinitions(new QueryContext());
        assertNotNull(processes);
        assertEquals(2, processes.size());

        Map<String, ProcessDefinition> mappedProcesses = mapProcesses(processes);
        assertTrue(mappedProcesses.containsKey("UserTask"));
        assertTrue(mappedProcesses.containsKey("DataVerification"));

        processes = caseRuntimeDataService.getProcessDefinitions("User", new QueryContext());
        assertNotNull(processes);
        assertEquals(1,
                     processes.size());

        mappedProcesses = mapProcesses(processes);
        assertTrue(mappedProcesses.containsKey("UserTask"));

        processes = caseRuntimeDataService.getProcessDefinitionsByDeployment(deploymentUnit.getIdentifier(), new QueryContext());
        assertNotNull(processes);
        assertEquals(2, processes.size());

        mappedProcesses = mapProcesses(processes);
        assertTrue(mappedProcesses.containsKey("UserTask"));
        assertTrue(mappedProcesses.containsKey("DataVerification"));
    }

    @Test
    public void testTransitionBetweenStagesInCase() {
        // use user name who is part of the case roles assignment
        // so (s)he will be authorized to access case instance
        identityProvider.setName("john");
        Map<String, OrganizationalEntity> roleAssignments = new HashMap<>();
        roleAssignments.put("owner",
                            new UserImpl("john"));

        assertNotNull(deploymentService);
        DeploymentUnit deploymentUnit = new KModuleDeploymentUnit(GROUP_ID, ARTIFACT_ID, VERSION);

        deploymentService.deploy(deploymentUnit);
        units.add(deploymentUnit);
        Map<String, Object> data = new HashMap<>();
        CaseFileInstance caseFile = caseService.newCaseFileInstance(deploymentUnit.getIdentifier(), TWO_STAGES_CASE_P_ID, data, roleAssignments);
        String caseId = caseService.startCase(deploymentUnit.getIdentifier(), TWO_STAGES_CASE_P_ID, caseFile);
        assertNotNull(caseId);
        try {

            Collection<CaseStageInstance> stage = caseRuntimeDataService.getCaseInstanceStages(caseId, true, new QueryContext(0, 1));
            assertNotNull(stage);
            assertEquals(1, stage.size());
            assertEquals("Stage One", stage.iterator().next().getName());
            assertEquals(StageStatus.Active, stage.iterator().next().getStatus());

            Collection<AdHocFragment> adhocTasks = caseRuntimeDataService.getAdHocFragmentsForCase(caseId);
            assertNotNull(adhocTasks);
            assertEquals(1, adhocTasks.size());
            assertEquals("Task 1", adhocTasks.iterator().next().getName());

            Collection<NodeInstanceDesc> activeNodes = caseRuntimeDataService.getActiveNodesForCase(caseId, new QueryContext(0, 10));
            assertNotNull(activeNodes);
            assertEquals(1, activeNodes.size());
            assertEquals("Stage One", activeNodes.iterator().next().getName());

            Collection<NodeInstanceDesc> completedNodes = caseRuntimeDataService.getCompletedNodesForCase(caseId, new QueryContext(0, 10));
            assertNotNull(completedNodes);
            assertEquals(0, completedNodes.size());

            caseService.addDataToCaseFile(caseId, "customData", "nextStagePlease");

            stage = caseRuntimeDataService.getCaseInstanceStages(caseId, true, new QueryContext(0, 1));
            assertNotNull(stage);
            assertEquals(1, stage.size());
            assertEquals("Stage Two", stage.iterator().next().getName());
            assertEquals(StageStatus.Active, stage.iterator().next().getStatus());

            adhocTasks = caseRuntimeDataService.getAdHocFragmentsForCase(caseId);
            assertNotNull(adhocTasks);
            assertEquals(1, adhocTasks.size());
            assertEquals("Task 2", adhocTasks.iterator().next().getName());

            activeNodes = caseRuntimeDataService.getActiveNodesForCase(caseId, new QueryContext(0, 10));
            assertNotNull(activeNodes);
            assertEquals(1, activeNodes.size());
            assertEquals("Stage Two", activeNodes.iterator().next().getName());

            completedNodes = caseRuntimeDataService.getCompletedNodesForCase(caseId, new QueryContext(0, 10));
            assertNotNull(completedNodes);
            assertEquals(1, completedNodes.size());
            assertEquals("Stage One", completedNodes.iterator().next().getName());

        } catch (Exception e) {
            logger.error("Unexpected error {}", e.getMessage(), e);
            fail("Unexpected exception " + e.getMessage());
        } finally {
            if (caseId != null) {
                caseService.cancelCase(caseId);
            }
        }
    }

    @Test
    public void testAddSubprocessToEmptyCaseCheckCaseNodes() {
        assertNotNull(deploymentService);
        DeploymentUnit deploymentUnit = new KModuleDeploymentUnit(GROUP_ID, ARTIFACT_ID, VERSION);

        deploymentService.deploy(deploymentUnit);
        units.add(deploymentUnit);
        Map<String, Object> data = new HashMap<>();
        data.put("name", "my first case");
        CaseFileInstance caseFile = caseService.newCaseFileInstance(deploymentUnit.getIdentifier(), EMPTY_CASE_P_ID, data);

        String caseId = caseService.startCase(deploymentUnit.getIdentifier(), EMPTY_CASE_P_ID, caseFile);
        assertNotNull(caseId);
        assertEquals(FIRST_CASE_ID,
                     caseId);
        try {
            CaseInstance cInstance = caseService.getCaseInstance(caseId);
            assertNotNull(cInstance);
            assertEquals(FIRST_CASE_ID, cInstance.getCaseId());
            assertEquals(deploymentUnit.getIdentifier(),
                         cInstance.getDeploymentId());

            Collection<NodeInstanceDesc> activeNodes = caseRuntimeDataService.getActiveNodesForCase(caseId, new QueryContext(0, 10));
            assertNotNull(activeNodes);
            assertEquals(0, activeNodes.size());

            Collection<NodeInstanceDesc> completedNodes = caseRuntimeDataService.getCompletedNodesForCase(caseId,
                                                                                new QueryContext(0,
                                                                                10));
            assertNotNull(completedNodes);
            assertEquals(0, completedNodes.size());

            Map<String, Object> parameters = new HashMap<>();
            caseService.addDynamicSubprocess(caseId,
                                             "UserTask",
                                             parameters);

            Collection<ProcessInstanceDesc> caseProcessInstances = caseRuntimeDataService.getProcessInstancesForCase(caseId,
                                                                                new QueryContext());
            assertNotNull(caseProcessInstances);
            assertEquals(2, caseProcessInstances.size());

            activeNodes = caseRuntimeDataService.getActiveNodesForCase(caseId, new QueryContext(0, 10));
            assertNotNull(activeNodes);
            assertEquals(2,
                         activeNodes.size());
            Map<String, NodeInstanceDesc> mappedNodes = mapNodeInstances(activeNodes);
            assertEquals("HumanTaskNode", mappedNodes.get("Hello").getNodeType());
            assertEquals("SubProcessNode", mappedNodes.get("[Dynamic] Sub Process").getNodeType());

            completedNodes = caseRuntimeDataService.getCompletedNodesForCase(caseId, new QueryContext(0, 10));
            assertNotNull(completedNodes);
            assertEquals(0,
                         completedNodes.size());

            List<TaskSummary> tasks = caseRuntimeDataService.getCaseTasksAssignedAsPotentialOwner(caseId, "john", null, new QueryContext());
            assertEquals(1, tasks.size());

            userTaskService.completeAutoProgress(tasks.get(0).getId(),
                                                 "john",
                                                 null);

            activeNodes = caseRuntimeDataService.getActiveNodesForCase(caseId, new QueryContext(0, 10));
            assertNotNull(activeNodes);
            assertEquals(0, activeNodes.size());

            completedNodes = caseRuntimeDataService.getCompletedNodesForCase(caseId, new QueryContext(0, 10));
            assertNotNull(completedNodes);
            assertEquals(2,
                         completedNodes.size());
            assertEquals("HumanTaskNode", mappedNodes.get("Hello").getNodeType());
            assertEquals("SubProcessNode", mappedNodes.get("[Dynamic] Sub Process").getNodeType());

        } catch (Exception e) {
            logger.error("Unexpected error {}", e.getMessage(), e);
            fail("Unexpected exception " + e.getMessage());
        } finally {
            if (caseId != null) {
                caseService.cancelCase(caseId);
            }
        }
    }

    @Test
    public void testTransitionBetweenStagesWithConditionsInCase() {
        // use user name who is part of the case roles assignment
        // so (s)he will be authorized to access case instance
        identityProvider.setName("john");
        Map<String, OrganizationalEntity> roleAssignments = new HashMap<>();
        roleAssignments.put("owner", new UserImpl("john"));

        assertNotNull(deploymentService);
        DeploymentUnit deploymentUnit = new KModuleDeploymentUnit(GROUP_ID, ARTIFACT_ID, VERSION);

        deploymentService.deploy(deploymentUnit);
        units.add(deploymentUnit);
        Map<String, Object> data = new HashMap<>();
        data.put("customData", "none");
        CaseFileInstance caseFile = caseService.newCaseFileInstance(deploymentUnit.getIdentifier(), TWO_STAGES_CONDITIONS_CASE_P_ID, data, roleAssignments);
        String caseId = caseService.startCase(deploymentUnit.getIdentifier(), TWO_STAGES_CONDITIONS_CASE_P_ID, caseFile);
        assertNotNull(caseId);
        try {

            Collection<CaseStageInstance> stage = caseRuntimeDataService.getCaseInstanceStages(caseId,
                                                                                true,
                                                                                new QueryContext(0,
                                                                                1));
            assertNotNull(stage);
            assertEquals(1,
                         stage.size());
            assertEquals("Stage One", stage.iterator().next().getName());
            assertEquals(StageStatus.Active, stage.iterator().next().getStatus());

            Collection<AdHocFragment> adhocTasks = caseRuntimeDataService.getAdHocFragmentsForCase(caseId);
            assertNotNull(adhocTasks);
            assertEquals(1, adhocTasks.size());
            assertEquals("Task 1",
                         adhocTasks.iterator().next().getName());

            caseService.triggerAdHocFragment(caseId,
                                             "Task 1",
                                             null);

            List<TaskSummary> tasks = runtimeDataService.getTasksAssignedAsPotentialOwner("john", new QueryFilter());
            assertNotNull(tasks);
            assertEquals(1,
                         tasks.size());
            assertTask(tasks.get(0),
                       "john",
                       "Task 1",
                       Status.Reserved);

            Map<String, Object> params = new HashMap<>();
            params.put("myData",
                       "nextStage");
            userTaskService.completeAutoProgress(tasks.get(0).getId(), "john", params);

            stage = caseRuntimeDataService.getCaseInstanceStages(caseId, true, new QueryContext(0, 1));
            assertNotNull(stage);
            assertEquals(1, stage.size());
            assertEquals("Stage Two", stage.iterator().next().getName());
            assertEquals(StageStatus.Active, stage.iterator().next().getStatus());

            adhocTasks = caseRuntimeDataService.getAdHocFragmentsForCase(caseId);
            assertNotNull(adhocTasks);
            assertEquals(1, adhocTasks.size());
            assertEquals("Task 2",
                         adhocTasks.iterator().next().getName());

            caseService.triggerAdHocFragment(caseId, "Task 2", null);

            tasks = runtimeDataService.getTasksAssignedAsPotentialOwner("john", new QueryFilter());
            assertNotNull(tasks);
            assertEquals(1, tasks.size());
            assertTask(tasks.get(0),
                       "john",
                       "Task 2",
                       Status.Reserved);

            params = new HashMap<>();
            params.put("myData",
                       "none");
            userTaskService.completeAutoProgress(tasks.get(0).getId(),
                                                 "john",
                                                 params);

            try {
                caseService.getCaseInstance(caseId);
                fail("Case should already be finished");
            } catch (CaseNotFoundException e) {
                // expected
                caseId = null;
            }

        } catch (Exception e) {
            logger.error("Unexpected error {}", e.getMessage(), e);
            fail("Unexpected exception " + e.getMessage());
        } finally {
            if (caseId != null) {
                caseService.cancelCase(caseId);
            }
        }
    }

    @Test
    public void testTransitionBetweenStagesInCaseWithActiveElements() {
        // use user name who is part of the case roles assignment
        // so (s)he will be authorized to access case instance
        identityProvider.setName("john");
        Map<String, OrganizationalEntity> roleAssignments = new HashMap<>();
        roleAssignments.put("owner",
                            new UserImpl("john"));

        assertNotNull(deploymentService);
        DeploymentUnit deploymentUnit = new KModuleDeploymentUnit(GROUP_ID, ARTIFACT_ID, VERSION);

        deploymentService.deploy(deploymentUnit);
        units.add(deploymentUnit);
        Map<String, Object> data = new HashMap<>();
        CaseFileInstance caseFile = caseService.newCaseFileInstance(deploymentUnit.getIdentifier(), TWO_STAGES_CASE_P_ID, data, roleAssignments);
        String caseId = caseService.startCase(deploymentUnit.getIdentifier(), TWO_STAGES_CASE_P_ID, caseFile);
        assertNotNull(caseId);
        try {

            Collection<CaseStageInstance> stage = caseRuntimeDataService.getCaseInstanceStages(caseId, true, new QueryContext(0, 1));
            assertNotNull(stage);
            assertEquals(1, stage.size());

            CaseStageInstance stageInstance = stage.iterator().next();
            assertEquals("Stage One", stageInstance.getName());
            assertEquals(StageStatus.Active, stageInstance.getStatus());

            Collection<NodeInstanceDesc> activeNodes = stageInstance.getActiveNodes();
            assertNotNull(activeNodes);
            assertEquals(0, activeNodes.size());

            caseService.triggerAdHocFragment(caseId, "Task 1", data);
            stage = caseRuntimeDataService.getCaseInstanceStages(caseId, true, new QueryContext(0, 1));
            assertNotNull(stage);
            assertEquals(1, stage.size());

            stageInstance = stage.iterator().next();
            assertEquals("Stage One", stageInstance.getName());
            assertEquals(StageStatus.Active, stageInstance.getStatus());

            activeNodes = stageInstance.getActiveNodes();
            assertNotNull(activeNodes);
            assertEquals(1, activeNodes.size());
            assertEquals("Task 1", activeNodes.iterator().next().getName());

            caseService.addDataToCaseFile(caseId, "customData", "nextStagePlease");

            stage = caseRuntimeDataService.getCaseInstanceStages(caseId, true, new QueryContext(0, 1));
            assertNotNull(stage);
            assertEquals(1, stage.size());
            assertEquals("Stage Two", stage.iterator().next().getName());
            assertEquals(StageStatus.Active, stage.iterator().next().getStatus());

            stage = caseRuntimeDataService.getCaseInstanceStages(caseId, true, new QueryContext(0, 1));
            assertNotNull(stage);
            assertEquals(1, stage.size());

            stageInstance = stage.iterator().next();
            assertEquals("Stage Two", stageInstance.getName());
            assertEquals(StageStatus.Active, stageInstance.getStatus());

            activeNodes = stageInstance.getActiveNodes();
            assertNotNull(activeNodes);
            assertEquals(0, activeNodes.size());

            caseService.triggerAdHocFragment(caseId, "Task 2", data);
            stage = caseRuntimeDataService.getCaseInstanceStages(caseId, true, new QueryContext(0, 1));
            assertNotNull(stage);
            assertEquals(1, stage.size());

            stageInstance = stage.iterator().next();
            assertEquals("Stage Two", stageInstance.getName());
            assertEquals(StageStatus.Active, stageInstance.getStatus());

            activeNodes = stageInstance.getActiveNodes();
            assertNotNull(activeNodes);
            assertEquals(1, activeNodes.size());
            assertEquals("Task 2", activeNodes.iterator().next().getName());

        } catch (Exception e) {
            logger.error("Unexpected error {}", e.getMessage(), e);
            fail("Unexpected exception " + e.getMessage());
        } finally {
            if (caseId != null) {
                caseService.cancelCase(caseId);
            }
        }
    }

    @Test
    public void testResolveCaseStatuses() {
        List<CaseStatus> testStatuses = Arrays.asList(CaseStatus.CANCELLED,
                                                      CaseStatus.CLOSED,
                                                      CaseStatus.OPEN);
        List<Integer> resolvedTestStatuses = ((CaseRuntimeDataServiceImpl) caseRuntimeDataService).resolveCaseStatuses(testStatuses);

        List<Integer> resultStatuses = Arrays.asList(3,
                                                     2,
                                                     1);
        List<Integer> invalidResultStatuses = Arrays.asList(1,
                                                            2,
                                                            3);

        assertTrue(resolvedTestStatuses.equals(resultStatuses));
        assertFalse(resolvedTestStatuses.equals(invalidResultStatuses));
    }

    @Test
    public void testCaseStatusCreation() {
        List<Integer> testStatuses = Arrays.asList(1);
        List<String> testStatusesString = Arrays.asList("open");
        List<CaseStatus> testCaseStatusesFromIds = CaseStatus.fromIdList(testStatuses);
        List<CaseStatus> testCaseStatusesFromNames = CaseStatus.fromNameList(testStatusesString);

        assertNotNull(testCaseStatusesFromIds);
        assertNotNull(testCaseStatusesFromNames);
        assertEquals(1,
                     testCaseStatusesFromIds.size());
        assertEquals(1,
                     testCaseStatusesFromNames.size());
        assertTrue(testCaseStatusesFromIds.contains(CaseStatus.OPEN));
        assertTrue(testCaseStatusesFromNames.contains(CaseStatus.OPEN));

        testStatuses = Arrays.asList(1,2);
        testStatusesString = Arrays.asList("open", "closed");
        testCaseStatusesFromIds = CaseStatus.fromIdList(testStatuses);
        testCaseStatusesFromNames = CaseStatus.fromNameList(testStatusesString);

        assertNotNull(testCaseStatusesFromIds);
        assertNotNull(testCaseStatusesFromNames);
        assertEquals(2,
                     testCaseStatusesFromIds.size());
        assertEquals(2,
                     testCaseStatusesFromNames.size());
        assertTrue(testCaseStatusesFromIds.contains(CaseStatus.OPEN));
        assertTrue(testCaseStatusesFromIds.contains(CaseStatus.CLOSED));
        assertTrue(testCaseStatusesFromNames.contains(CaseStatus.OPEN));
        assertTrue(testCaseStatusesFromNames.contains(CaseStatus.CLOSED));

        testStatuses = Arrays.asList(1,2, 3);
        testStatusesString = Arrays.asList("open", "closed", "cancelled");
        testCaseStatusesFromIds = CaseStatus.fromIdList(testStatuses);
        testCaseStatusesFromNames = CaseStatus.fromNameList(testStatusesString);

        assertNotNull(testCaseStatusesFromIds);
        assertNotNull(testCaseStatusesFromNames);
        assertEquals(3,
                     testCaseStatusesFromIds.size());
        assertEquals(3,
                     testCaseStatusesFromNames.size());
        assertTrue(testCaseStatusesFromIds.contains(CaseStatus.OPEN));
        assertTrue(testCaseStatusesFromIds.contains(CaseStatus.CLOSED));
        assertTrue(testCaseStatusesFromIds.contains(CaseStatus.CANCELLED));
        assertTrue(testCaseStatusesFromNames.contains(CaseStatus.OPEN));
        assertTrue(testCaseStatusesFromNames.contains(CaseStatus.CLOSED));
        assertTrue(testCaseStatusesFromNames.contains(CaseStatus.CANCELLED));

    }
}

redpajama_set_name: RedPajamaGithub


Winter in Michigan can be difficult. I have been hibernating from the cold. Luckily, the day after the groundhog declared an early Spring, the boulevard in front of our home was filled with the largest flock of robins I have ever seen! They have been swirling about our neighborhood for the last two weeks, their bellies full of dried winter berries, about fifty or so, mixing with the starlings, waiting for Winter's last goodbye.
Behind the scenes, I have been working hard to bring you new greeting cards, and prints. In the coming days they will be available through my website. If you are a wholesale customer, you can find these at Faire.com. This year I will be releasing live and taped video of new paintings as they emerge, so follow me on Facebook to keep in the loop!
Spring is a wonderful time to refresh your home and office decor, and with free shipping even an original painting is within your reach. What we see every day affects our happiness level, even if it is just a glance as we rush about getting ready for the day. It is important to fill your space with images that spark a connection to nature.
The gallery pages have been updated to show what is currently available locally. I am happy to announce that you can find original paintings and greeting cards at Circare for a limited time in St. Clair Shores. I am there on a trial basis, so if you stop in and purchase some of my art, they will continue to offer it!
I checked out for a year emotionally. This is a long post because the entire tale is long. It may seem that it is about a cat, but it is really about self-reflection, humility, and giving up past beliefs and control over Mother Nature's creatures.
This is baby Jazz when we had brought him home. He was what I had longed for in appearance, but just like in Steven King's book, "Pet Cemetary", you can't really bring them back. The tale really began when I was four years old. My family was living in a flat in Detroit. Father had a work sponsor that allowed us to come into this country ( yes, there was NO welfare for political refugees in the 70's) and walked to the bus stop every day to get to work. We were POOR. Anyway, I was fairly lonely then, the neighborhood was not full of friendly kids (I almost got mauled by a dog the kids set loose after me) so I spent all my days inside the flat for the most part. One day, I was looking out the third floor window, and saw to my amazement a lady with what had to be 20 cats on leashes walking down the street. She looked up at me, pointed, and tied one of the cats to the telephone pole, then left. Mom let me take him in, and he became my best friend. He was a peach gray angora, all fur and lankiness, and whiskers (which he tripped over quite often until I thought to "trim" them--for which I was thoroughly chatised, and rightfully so!) We spent a year in that flat together, then moved to Hamtramck. Only a short while had passed, and my best friend came home, dragging his legs with a BB shot to his side. He didn't make it. The bullet took his liver. Fast forward 30 years. I never forgot our love, and kept a magazine clipping in my studio of a kitten that looked so much like him.
Nine years ago, my spouse brought home a tiny kitten for a sweetest day gift. Wow, he looked just like my first cat! I thought happiness and joy are here! He is back! But alas, just like in that book by Mr. King, you cannot bring them back. You can never have back the experiences that gave you so much joy, because time moves forward, and every creature, person, moment is unique, and when it is over it is simply over.
I fell in love with Jazz right away, but I was working 14 hour days, and he bonded with my spouse. No problem, I was happy anyway...until the attacks began. First the dogs, drawing blood, then my legs and arms...for no apparent reason. We took him to our cat specialist. She said, "some are just bad children, live with it or have him put to sleep." Oh, horrors, never! So we found a new vet and he was put on organic calming treats to temper his mood.
I have had cats my entire life, but never one that lashed out for no reason apparent to me. I used to fancy myself a bit of an animal whisperer, but this eight year experience took that right out of me. I saw how happy he was when I wasn't around, fine with everyone but me. Once I began to be home more and more, things got even worse, and I had to "rotate" cats and dogs to keep lamps and furniture from being knocked over. It was very difficult. I was demoralized. I had NEVER been disliked by any creature so much. Personally, I think he could smell my Hashimoto Thyroid disorder, and wanted to put me out of my misery, lol. Animals are very in tune to illness!
He was beautiful, fluffy (which required a great deal of grooming and hence further bloodshed on the part of my hands and arms) and wanted nothing to do with me. He terrorized the other cats and dogs, and had a room all to himself because of it. Well, one day I painfully realized that after 8 years nothing was going to improve, so I set about finding him a new home. Much to my amazement, he passed every evaluation with flying colors, and shed nothing but love on all around him.
While I was waiting for him to be adopted, I shed many tears, visited him often, and interacted with him very cautiously, afraid that if he layed into me, it would be all over for him. Well, he loved everyone at the adoption agency, everyone who visited him, and after four visits a mom and daughter took him home. They had lost a cat earlier, and he became her prince, and she his princess.
I learned a lot about ego in the year and a half that followed, about how wishing something into being may not always make it so. Cherish daily moments, but remember that moments in the past will always stay there, and cannot be recreated. Every living thing is unique and irreplaceable. I am no longer a cat whisperer ( and by the way I used EVERY technique out there) and realize that perhaps I was merely a catalyst so that the princess could find her prince....and thank you for letting me get this story out there, so that hopefully I can move forward in my life. I will always love the life on Earth, even if it doesn't always love me!
Most of us have had this happen. We go to a party and bring a gift, then realize with ever growing dread that someone else brought the exact same thing. That gift registry should have prevented it...but, alas someone didn't bother to check the list and now you know that your hostess will probably be returning two of the three rice cookers...see that robin in the middle? Yes, whispering will ensue.
So I did a little experiment....I gave away random pieces of art for my husband's friends to bring home and keep....and they were thrilled. Over the moon, because each one was real, unique, their very own to treasure.
When you give the gift of an original piece of art, you can relax because no one else will have the same one, ever again. The original, the one with the details that brag this is unique will be theirs!
A unique item such as original art, is a perfect gift for any occasion such as a wedding, housewarming, or simply a thank you for doing business with you. You would be surprised at how special they will feel, no matter what you decide upon!
p.s. below are pictures of the art that was given away in case you were curious!
My father loved pine trees. He planted them everywhere he could. Every summer we would drive up north and toil to water his seedlings. There were well over 50 of them. I think they reminded him of the mountains where he grew up. As I got older I really began to appreciate how they could enliven the dreary winter landscape with their pop of color, and whispering fronds. Alas, a fire took his many decades ago, but I had one in my urban yard that served to honor the memory of what was.
I spent the better part of 2017 fussing over dozens of pine cone paintings. I was grieving the loss of our red spruce. I counted the rings in the stump before they ground it and found that had lived next to the garage for over 70 years. I only enjoyed its beauty for 27 years. It was a piece of northern respite in a seriously urban landscape. I spent many a summer gazing up at its branches marveling at the creatures that flitted to and fro in the branches covered in cones. One of the few things that still connected me to my childhood was gone.
I didn't even realize it was a red spruce until I decided to learn more about the beautiful tree that was lost because of a high wind that nearly uprooted it. It was leaning badly towards the driveway and there was no way to accommodate it. In my online meanderings, I discovered some beautiful things about pine trees. All over Europe they are a symbol of peace. Personally, I find the cones to be a symbol of hope. A promise of renewal. Many species don't germinate until after a fire has ravaged the countryside. Thinking about the fires that swept through California last year, this fact gave me hope that nature would replenish the landscape if we just gave her some time.
All to often we are impatient for things to renew after an event. We want our spirit to heal right away, but it takes time. Nature takes her course and things will be different but life always proliferates and things shall be renewed. What are your thoughts? I would love to know!
It has been a whirlwind year, and summer is a distant dream in this season of crisp air and falling leaves. Your thoughts are turning toward the holiday season and there is so much to do, and so little free time! Below is a short list of places where you can find unique nature art for gift giving this season. More details on each of these to come soon!
See you soon for more information about these locations, and what you can expect to find there!
I finally decided that my art business needed a logo that reflected what my brand is all about. It took two months of revisions to decide on this combination of image and fonts. So many people have asked my why a bird, that I decided to write a blog post to answer that question.
Nature art is more than a landscape, it also speaks to us about the creatures that inhabit the world. The bird symbolizes the freedom and flight that nature art will give you every time you view it.
Many of you have also wondered why cursive letters, when all the world is talking about how cursive will no longer be taught. Perhaps it won't be taught formally, but behind the scenes, a quick search about instructional books for hand lettering reveals that cursive will never go out of style.
Elegant art deserves an elegant logo. Let me know what your thoughts are about the logo and the cursive controversy!
When: Now Through February 3rd (closing reception on Feb. 3rd from 3 to 6 p.m.
It is a new year, and this is my first show featuring our feathered friends, birds!
This is a group show, and along with 15 of my paintings, you can also enjoy large watercolors by Marilyn Bicsak Thomas and ink drawings by Louie Wildfong.
This particular branch of Level One Bank has maintained a real gallery space that is accessible to the public. Every month a different show is presented, courtesy of our host, Mark Mcdaniel Burton.
All work is for sale, just contact Mark at (248) 259-5330 to make arrangements.
Gallery hours are Monday through Thursday 9 to 5 and Friday 9 to 6.
We will be hosting a closing reception on Friday, February 3rd, from 3 to 6 p.m., after which all the birds will migrate on to other venues!
Don't Miss an opportunity to help your spirits soar, and acquire genuine art at a reasonable price!
Do You wonder why birds? Every artist has a different inspiration, but mine started this fall, when I became enthralled with watching an airport of different species getting along (for the most part) watching out for each other, and sharing food. World travelers whose personalities I wanted to capture more than a scientific identity, so I painted these from memory...no rehearsals, just letting the visual impressions guide my muse!


text:
Gill Sans vs. Johnston Sans: If Britain Was A Typeface
There are two things that BBC, The Church of England, London Underground, Penguin Books, and the London and North Eastern Railway Company, have in common; they're all very British, and they all use either Gill Sans or Johnston in their branding.
Britain just has to be different, doesn't it? First with its use of the pound currency instead of the Euro, and now its overuse of two typefaces that are almost identical instead of the generic Helvetica, Britain is famously unique. The "Helvetica of England," as some like to call it, Gill Sans was designed by the Brit (surprised?) Eric Gill in 1926 who just happened to be the apprentice of the Johnston Sans (1916) creator Edward Johnston.
These two typefaces are almost interchangeable. Gills Sans was intended to be an improvement of Johnston that was, and still is, seen on the map and signs of the London Underground. However with only minute changes between them, it is difficult to distinguish between the two. The real question is, did Gill get it right and do these small changes even make a difference?
Image Source: Typotheque.com
Gill Sans is a little taller and has straighter edges than Johnston, but that is where their differences stop. In fact, Johnston doesn't even come preinstalled in Microsoft like Gill Sans now does. The student is getting a lot more credit than the teacher. How have you used Gill Sans? Have you ever found a need for its curvier counterpart?


text:
Show Your banner here for FREE. Find out how.
Category Archives: Pinku Violence
Delinquent Girl Boss: Worthless to Confess
Toei Company, Japan, 1971
AKA: Zubekô Banchô: Zange No Neuchi Mo Nai/Delinquent Girl Boss: Unworthy of Penance
Director: Kazuhiko Yamaguchi
Writer: Norio Miyashita, Kazuhiko Yamaguchi
Cast: Reiko Oshida, Junzaburô Ban, Nobuo Kaneko, Yumiko Katayama, Yukie Kagawa, Tsunehiko Watase, Ichirô Nakatani, Tonpei Hidari, Yôko Ichiji, Shizuko Kasagi, Masumi Tachibana, Mieko Tsudoi
I realize I left out part 3, Delinquent Girl Boss: Ballad of the Yokohama Hoods. It's supposed to be in my collection but for some reason, I couldn't find it. So here is part 4, and I will write about part 3 when I find it. When I watched Delinquent Girl Boss: Tokyo Drifters I first wasn't sure whether it was supposed to be a sequel to the first film or if it was a remake. There were differences but there were also many themes that existed in both films even though they were partially reworked.
When watching DGB: Worthless to Confess, I realize Yamaguchi is using the same story over and over but toying with different variations. This time as always, the story begins with Rika being an inmate at Akagi Girls School for Juvenile Delinquents. There is a viewing of what is supposed to be an educational film but instead is a violent action movie with a very popular actor, and when the principal stops the film the girls are upset on the verge of rioting. Then comes the "bath scene" where the girls undress and goes into the pool. In DGB: Blossoming Night Dreams there is a big fight in the bath house where all the girls are involved, in DGB: Tokyo Drifters the girls riot when the physician acts like a creep and tries to force the pregnant girl to undress against her will. The fight in the bath is now all the girls against the female guard who is stripped on her keys and her clothes and thrown in the pool, as the girls stage the mass escape. In DGB: Worthless to Confess, there is only a small altercation between two of the girls. In all 3 films Rika is released one year later, but instead of getting jobs at a dry cleaner or a toy factory where her supervisors try to get into her pants, she goes straight to the nice honest person that takes her in. This time it's no Madame (club owner or head of street vendor clan) but a Master. Rika moves in with Mr. Muraki, the father of Midori, her cellmate at Akagi, and she get a job in his car shop. Midori and her father are estranged, but Rika tries to make peace between them. Midori's boyfriend is yakuza and he is one of the family trying to pressure her father for money.
Another of the girls from Akagi, Mari, has big problems. Her husband is yakuza and has been in jail for many years where he became very ill, and his former friends doesn't help out so Mari must try to make money enough by posing for nude paintings. She is pregnant so she doesn't know for how long she can go on. Instead of street vendor Bon, who was Rikas love interest and the son of Madame, we now have a truckdriver who is also the younger brother of Mari's ill husband.
When Rika learns that the yakuza has blackmailed Mr. Muraki and taken 3000 yen from him she goes there and asks to have the money back. She says she will do anything they want if they return the money. They tell her to strip naked but before she loses her underwear Midori interferes. Just like in DGB: Blossoming Night Dreams the yakuza is willing to trade the girls for land. This time from Mr. Muraki.
Muraki goes there and reveals to the yakuza that he used to be one of them. In fact he once cut their leader across the face with a razor. When they learn who he is they get afraid and let him take the girls with him. Midori leaves her boyfriend and is moving back home. (This mirrors Bons homecoming to Madame in the second Rika-film.) Mari's husband tells the boss of the yakuza that Mari is pregnant and that he wants out. He is asked to carry out one last job – to murder Mr. Muraki. He is getting paid 3000 yen for the job. The same 3000 that was taken from Muraki. He tries to stab Muraki with a knife, but even though he is very drunk, Muraki manages to take the knife from his hand. Yakuza then kills both of them.
Rika and the other girls vows to avenge Muraki and just as they did in DGB: Tokyo Drifters, they dress up in red matching trench coats and do "the march of death" to the yakuza headquarters for the final showdown.
If DGB: Tokyo Drifters was lighter, more of a comedy version of the Rika-saga, DGB: Worthless to Confess, is darker again. I'd say it's the darkest of the three I've seen. This doesn't mean it's no fun at all. While the swordfight between the girls and the yakuza was chaotic in the first film it's choreographed this time. One of the girls have a sudden nip slip in the middle of it all and one of the others shouts "Senmitsu, Your boobs!" and helps her put them back, Katanas still cutting everything close enough around them.
Posted in Action, Pinku Violence	| Tagged 1971, Ichirô Nakatani, Junzaburô Ban, Kazuhiko Yamaguchi, Masumi Tachibana, Mieko Tsudoi, Nobuo Kaneko, Norio Miyashita, Reiko Oshida, Shizuko Kasagi, Tonpei Hidari, Tsunehiko Watase, Yôko Ichiji, Yukie Kagawa, Yumiko Katayama	| Leave a reply
Delinquent Girl Boss: Tokyo Drifters
AKA: Zubekô banchô: Tôkyô nagaremono, Girl Vagrants of Tokyo
Writer: Kazuhiko Yamaguchi, Norio Miyashita
Cast: Reiko Oshida, Yukie Kagawa, Masumi Tachibana, Tsunehiko Watase, Mieko Tsudoi, Tamami Natsu, Tōru Yuri, Akira Hitomi, Akira Ôizumi, Hachiro Azuma, Sanji Kojima, Kichijirô Ueda, Toshiaki Minami, Chikako Miyagi, Tonpei Hidari, Kôji Nanbara
This is the second Delinquent Girl Boss film about Rika. Last time we saw her, she and her girlfriends were in the back of a prison transport on their way to Akagi Girls School for juvenile delinquents. One of the girls is pregnant and management won't let her see her boyfriend to discuss the situation, so Rika and the other girls riot and stages a mass escape. They get caught but their pregnant friend manages to get away, and that was the purpose of it anyway.
One year later Rika is released and works at a toyfactory. Just like in Delinquent Girl Boss: Blossoming Night Dreams she looses her job for not sleeping with her boss. She goes looking for a new job and is robbed by a pick pocket. A handsome street vendor interferes and she gets her money back. Then she runs into a man who offers her a job. He brings her to see his boss, Madame.
Madame is the head of the Gasetora clan. Once a big organisation of streetvendors, but since her son left only herself and the man who brought Rika there remains. Just as in the previous film it turns out Madame has been an inmate at the same facility Rika comes from, and soon Rikas friends start working as street vendors for Madame to. All except one, Senmitsu, who is working in a brothel.
Autumn festival is coming up and for some reason the Yakuza want to run the Gasetora clan out of business and take over their stalls at the festival. They threaten all the suppliers so the Gasetoras have nothing to sell, but Rika and her friends gets merchendise from the toyfactory where she used to work in exchange for not telling on the supervisor who tried to get her in bed. When there is business as usuall the Yakuza trashes their boots and there is a big fight. The handsome street vendor from earlier shows up and turns out to be Madames lost son Bon.
Senmitsu's boyfriend has asked her to marry him, but he is a Yakuza and his boss wants 1.000.000 yen to let him go. Senmitsu works overtime to get the money but the Yakuza isn't satisfied. They want her boyfriend to do one last job for them – to murder Madame. He sees no way out, but is tricked by his former friends and is killed to. Rika, Senmitsu and the four other girls from Akagi dresses up in long red coats and red hats and goes to take revenge on the Yakuza.
The last part of the film is a big swordfight between the girls and the Yakuza. Bon has learned about his mothers murder and turns up to help the girls and to kill the head of the Yakuza.
Delinquent Girl Boss: Tokyo Drifters feels more like a remake of the first one than a sequel. Except for the riot and mass escape in the beginning and the showdown with the Yakuza towards the end, the story is thin and a bit slow. It's not as dark as the first one, but the swordfight at the end is much more violent and bloody than the showdown in the previous film. It's not bad but not as good as the first one.
Rarelust
Women in Prison Films
Delinquent Girl Boss: Blossoming Night Dreams
Posted in Action, Crime, Pinku Violence	| Tagged 1970, Akagi, Akira Hitomi, Akira Ôizumi, Chikako Miyagi, Gasetora, Hachiro Azuma, Kazuhiko Yamaguchi, Kichijirô Ueda, Kôji Nanbara, Masumi Tachibana, Mieko Tsudoi, Norio Miyashita, Reiko Oshida, Rika, Sanji Kojima, Street Vendors, Sword fight, Tamami Natsu, Tonpei Hidari, Tōru Yuri, Toshiaki Minami, Tsunehiko Watase, Yakuza, Yukie Kagawa	| Leave a reply
AKA: Zubekô banchô: Yume wa yoru hiraku/Blossoming Night Dreams/Tokyo Bad Girls
Cast: Reiko Oshida, Masumi Tachibana, Yukie Kagawa, Keiko Fuji, Hayato Tani, Saburô Bôya, Bokuzen Hidari, Tonpei Hidari, Nobuo Kaneko, Toshiaki Minami, Junko Miyazono, Junko Natsu, Harumi Sone, Kayako Sono, Yasushi Suzuki, Tatsuo Umemiya
Juvenile delinquent Rika is released from prison and has decided to live an ordinary life within the law. She gets a job at a drycleaner, but things don't work out so well. The owner is trying hard to get into bed with her and his wife hates her and accuses her of stealing. She leaves to look for some other job but runs in to a pack of girls that attack her. She beats them up and meets a guy who claims he can get her a job in the bar where he works. It turns out some of her girlfriends from jail is already working there and the owner too is a former juvenile delinquent and has done time in the same prison.
Mr. Ohba, a local Yakuza leader wants to take over the bar and has offered to buy it on several ocasions. Problem is he won't take no for an answer, and he is prepared to do whatever nesesary to get it. One of Rikas friends who work at the bar has a little sister who is a drugaddict. She gets her drugs from the same female gang Rika beat up earlier, and to complicate things further they are selling for Mr. Ohba.
For a Pinku Violence this film is pretty tame both on violence and nudity compared to later films. There are however a lot of catfights and there is a veritable massacre at the end when the girls decides to stand up against the Yakuza and they go at each other with swords and knives.
J-Film Pow-Wow
Movierapture
Delinquent Boss: Ocho, the She Wolf
Posted in Action, Drama, Pinku Violence	| Tagged 1970, Bokuzen Hidari, Harumi Sone, Hayato Tani, Junko Miyazono, Junko Natsu, Kayako Sono, Kazuhiko Yamaguchi, Keiko Fuji, Masumi Tachibana, Nobuo Kaneko, Norio Miyashita, pinku violence, Reiko Oshida, Saburô Bôya, Tatsuo Umemiya, Tonpei Hidari, Toshiaki Minami, Yakuza, Yasushi Suzuki, Yukie Kagawa	| Leave a reply
AKA: Furyô banchô: Inoshika Ochô, Wolves of the City, Wolves of the City: The Hussy and the Hooligans, Delinquent Boss & Inoshika Ocho
Director: Yukio Noda
Writer: Tarô Bonten, Isao Matsumoto, Hideaki Yamamoto
Cast: Tatsuo Umemiya, Shin'ichi Chiba, Shigeru Katsumi, Tetsurô Tanba, Seizaburô Kawazu, Fumio Watanabe, Junko Miyazono, Kôji Nanbara, Michitarô Mizushima, Tamaki Sawa, Bunta Sugawara
Delinquent Boss: Ochô the She Wolf is the second (of 17) films in the Delinquent Boss or Wolves of the City saga, wich is based on a manga. Kosaka Hiroshi, the leader of the biker gang is locked up in Kurihama Juvenile Detention Centre where he forms a brotherhood with four other delinquents. They plan to break out but a Yakuza member, of the Teishin Group, tell the guards and instead there is a huge fight.
Five years later Kosaka is out on the streets again with his biker buddies. They run a garage and a dance studio(!). The dance studio is really a front for their more shady business. What they do is they teach young women to dance and sends them to London and Paris to work as dancers, but in reality they sell them into prostitution. Anyway one by one the other members of the brotherhood turns up and join Kosaka in his business.
Business is good. Maybe to good and they get into a conflict with the Teishin Group. When the Teshin Group closes down Kosakas business he is desperate for cash and decides to get back at the Yakuza by teaming up with Ochô, a female wandering professional gambler, and try to blackmail the Teshin Group. Ochô's speciality when fighting is making oponents blind by throwing playing cards in their eyes. Her character became very popular and she later turned up in several other films outside of the Delinquent Boss series.
One of the five brothers, Gogo, grew up without his father who left when he was just a child. When Gogo is captured by the Teishin group it turns out his father is now a high ranking member of the Yakuza. His father tries to save him but they die together in a rain of bullets. Kosaka realizes he and his friends are loosing, but decides to avenge Gogo so the remaining brothers, the biker gang and Ochô plans an armed attack on the Teishin Group to take them out once and for all.
The film is entertaining. Sometimes the characters act a bit silly, but I think that's because the actors are (and look) much older then their characters are supposed to be. You sort of forget that they are supposed to be juvenile delinquents when they look somewhere around 30.
Gajin Rider
Paghat the Ratgirl's Film Reviews
Pulp International
Posted in Action, Crime, Pinku Violence	| Tagged 1969, bikers, Bunta Sugawara, Fumio Watanabe, Hideaki Yamamoto, Isao Matsumoto, Junko Miyazono, Kôji Nanbara, Michitarô Mizushima, pinku violence, Seizaburô Kawazu, Shigeru Katsumi, Shin'ichi Chiba, Tamaki Sawa, Tarô Bonten, Tatsuo Umemiya, Tetsurô Tanba, Yakuza, Yukio Noda	| Leave a reply


Party Extras - perfect for your Pamper Party!
We offer a variety of gorgeous pamper party themed cakes, cupcakes & biscuits at great prices! Delivery included FREE with any party package. Please look at just some of the photos of the cakes and bakes that we offer here. We can also make up most cakes at request - just send us a photo for a quote!
We hire out Kids Party Chairs for parties that require some extra seating, from R360 for 8 chairs (R40 per chair and cover thereafter). All chairs come with Cerise Pink Slip covers. Delivery fee may be applicable. Note: Chairs are Jolly Chairs best suited for kids aged 5-10.
All girls love dressing up and our Fancy Dress Box is filled with feathery boas, hats, necklaces, masks and more! Just perfect for a party photo booth!
Instead of the typical "loot bag" filled with sweets, we offer exciting and special take-home gifts for the party guests. When you order for all the guests, the birthday girl will receive hers FREE.
Pamper Packs: Gift bags labelled with a "Thank You for Coming to my Party!" sticker, filled with candy bracelet, eye shadow, special Sparkle Parties strawberry lip gloss, hair accessory and nail file (items may differ slightly depending on supplier availability, for example a nail polish may be substituted for the eye shadow) @ R50 each.


text:
Tag Archives: Pirates
The Pirate Cemetery of Madagascar was the off-season home for an estimated 1,000 pirates
Posted on May 14, 2018 by rolyred
In the 17th and 18th centuries, Ile Sainte-Marie (or St. Mary's Island as it is known in English), a long, thin island off the eastern African coast, became a popular base for pirates.
Up to 1,000 pirates reportedly called the rocky island home, including widely-feared brigands Adam Baldridge, William Kidd, Olivier Levasseur, Henry Every, Robert Culliford, Abraham Samuel and Thomas Tew. They lived in the île aux Forbans, an island located in the bay of Sainte Marie's main town, Ambodifotatra.
This place was not far from the maritime routes along which ships returning from the East Indies sailed in transit, their holds overflowing with wealth, it was provided with bays and inlets protected from storms and finally, it had abundant fruit and was situated in quiet waters.
The beautiful tropical island's numerous inlets and bays made it the perfect place to hide ships. The pirates sailed mostly from England, Portugal, France and America to make this island off the coast of Madagascar a home, a hideout and a strategic place.
With so many pirates abiding on the island, some even raising families at the time, it's no wonder Sainte-Marie claims to have what may be the world's only legitimate pirate cemetery.
In the center of the cemetery, there is a large black tomb that locals say is the final resting place of Captain Kidd, buried there in an upright position to punish him for his sins.
The pirates were off Ile Sainte-Marie by the late 1700s, when the French seized the island. It wasn't returned to Madagascar until 1960. The utopian pirate republic of Libertalia was also rumored to exist in this area, although the republic's existence, let alone its location, has never been proven.
A recently discovered map from 1733 by John de Bry, an archaeologist working on shipwrecks in the area, called the land mass the "Island of Pirates" and identified the location of three pirate ship wrecks.
So many pirate legends are floating around Sainte-Marie, but, is this cemetery authentic? Everyone on the island, including government tourism officials, of course, claim it is. However, dead pirates or not, this cemetery is one of Madagascar's most popular tourist destinations.
By David Goran
Posted in Africa, History, Travel, World	| Tagged Africa, French, History, Ile Sainte-Marie, Pirates	| Leave a reply
Notorious pirate Benjamin Hornigold once attacked a merchant ship only to steal the crew's hats
Most depictions of pirates in contemporary popular culture are based on the actions of pirates who operated during the golden age of piracy, which lasted from the beginning of the 1650s until the late 1730s. The period between 1650 and 1680 is known as the "buccaneering period": during that time, English and French pirates on Jamaica and the famous island of Tortuga attacked Spanish colonies and merchant ships in the Caribbean.
The 1690s were known as the "pirate round"; many pirates from the Caribbean and the Americas ventured to the Indian Ocean and the Red Sea to attack Muslim merchants and the supply ships of the East India Company. The final wave of booming piracy, which lasted from 1716 to the late 1730s, was triggered by the end of the War of the Spanish Succession. After the war, many English and American sailors were left unemployed and turned to piracy, usually targeting ships in the Caribbean, the North American eastern seaboard, the Indian Ocean, and the coast of West Africa.
Some of the most famous pirates, including Edward Thatch, known as "Blackbeard," Bartholomew Roberts known as "Black Bart," "Black Sam" Bellamy, and John "Calico Jack" Rackham, operated in the final years of the golden age.
Another notorious pirate of that period was Benjamin Hornigold, who started his brief yet prolific pirating career in the winter of 1713.
In the beginning of his career, Hornigold was a low-level looter who organized small raids off the coast of New Providence, the most populous island in the Bahamas. He and his gang used sailing canoes and a small ship to attack merchant's vessels. Hornigold progressed quickly: by 1717 he was in command of a 30-gun sailing ship named "Ranger" that was at the time the most heavily armed in the Bahamas. Also, he gathered a gang of around 350 tough men who were all eager to wreak havoc and pillage merchant ships.
Hornigold was the captain and his second-in-command was none other than Edward Thatch, the notorious pirate who later became known as "Blackbeard." The two of them organized thoroughly planned raids during which they seized several cargo ships and formed a small pirate fleet that became the scourge of the Bahamas. At one point during 1717, the Governor of South Carolina sent a heavily armed ship to find and capture Hornigold. The pirates attacked the ship so fiercely that she ran aground on the island of North Cat Cay and her crew fled for their lives.
Also in 1717, Hornigold and his crew attacked a merchant ship off the coast of Honduras. As terrified merchants begged for their lives, Hornigold's crew explained that they had gotten drunk the night before and had thrown their hats into the sea, so they had attacked the merchant ship only to steal the hats of her crew. After they took the merchants' hats, Hornigold and his crew allowed them to continue with their journey. Some historians believe that this curious endeavor was nothing more than Hornigold's and Thatch's wish to display their power.
Hornigold never attacked British ships and claimed that he defended British economic policies by attacking the ships of the enemies of the British Empire. However, in November of 1717, Hornigold's crew decided to overthrow him and attack ships sailing under any flag. Since Thatch was in command of his own ship at the time, he wasn't around to help Hornigold quell the mutiny. Hornigold was overpowered and forced to flee for his life with a small ship and several of his most loyal men.
Several months later, he sailed to Jamaica and received a pardon for his criminal activities from the then governor of Jamaica named Woodes Rogers. In 1717 and 1718, King George I issued proclamations known as the "King's Pardons," which granted an official pardon to all pirates who surrendered to any colonial government under the domain of the British Empire. Governor Rogers granted Hornigold's request for a pardon, but he also recruited him as a pirate hunter.
In his final years, the once powerful and feared Hornigold was forced to try and hunt down his former associates, including Blackbeard. Although he sailed around the Bahamas for 18 months, he never managed to catch any of his former allies. During one particularly severe storm, his ship crashed into an uncharted reef between the Bahamas and New Mexico, and Hornigold and his new pirate-hunting crew were never seen again.
Jan 4, 2018 Domagoj Valjak
Posted in BUSINESS, CARRIBEAN, England, History, USA, World	| Tagged Hats, Merchant Ships, Pirates	| Leave a reply
Follow ROBBIES WORLD BLOG on WordPress.com
BBC NEWS BUSINESS
Rise in full-time female workers boosts employment January 21, 2020
Dixons Carphone gets its sales figures the wrong way round January 21, 2020
France agrees to delay new tax on tech giants January 21, 2020
New York Public Library?s top ten checkouts January 13, 2020
Multi-authorship and research analytics December 10, 2019
The Internet and Jurisdiction Policy Network releases its first-ever Global Status Report November 29, 2019
Is a gravitational wave detection near Betelgeuse a sign the star is ready to explode? January 21, 2020
Software glitch damages part of new Canadian science vessel January 21, 2020
New federally funded climate institute launches after demise of national roundtable January 21, 2020
Exceptional is new normal: Experts break down anti-science tropes on extreme weather January 21, 2020
Goodbye, gas furnaces? Why electrification is the future of home heating January 20, 2020


The objective of the Cash Handling process is to ensure that all funds are received, secured, deposited and reconciled in a timely, accurate and well controlled manner.
All authorized cash handlers must have taken the MyLinc TME103 training course at least once and are certified to receive cash/checks. Information on web-based depository training classes is available on the Treasurer's Office website.
SMTD may receive funds for a variety of purposes including, but not limited to event fees, program fees, conference fees, etc. If you believe you may be in receipt of gift revenue, please forward those items directly to the Office of Development & External Relations.
We kindly ask that you send an email to unallocatedssc@umich.edu to alert SSC that you are making a deposit to the unallocated account and provide the cash receipt number.
All refunds must be recorded or logged separately. All tracking logs must be in Excel and identify recipient, amount, and dates of original receipt and refund. Before refunding, the transaction must be approved by a higher level of authority within your department, and final approval by the Financial Manager, Michelle Pnacek, for amounts up to $500, and the CAO, Christian Rafidi for amounts over $500.
Record details: payee name(s), amount of check, date of check, date received, check delivery method (e.g., USPS, hand delivered, etc.), purpose of check, shortcode associated with.
NOTE: Making copies of checks is strongly discouraged. If there is a valid business purpose, all numbers on the bottom of the check (micr line) must be covered (i.e. placing paper over the numbers) before copying.
Secure cash and checks by placing them in a locked safe, cash box, or locked drawer. The secured place is continually visible to our authorized SMTD cash handler(s). Keys to the drawer are kept in a secure, secret place. For combination locks, the combination should be changed monthly or semi-annually and/or when employees transfer or are terminated. Authorized users in MPathways will be updated by the Financial Manager as changes occur.
The Financial Manager will keep the list of authorized depositors in MPathways current with any staff changes such as a new staff member who will be depositing funds/allocating or a staff member who is no longer depositing/allocating funds.
All authorized depositors should receive proper depository training and certification through the MyLinc TME101 course prior to depositing cash/checks. The TME 101 course has to be taken every two years. Information on web-based depository training classes is available on the Treasurer's Office website.
The depositor will obtain funds and pre-numbered receipts and/or the daily receipt log from the cash handler.
The depositor will verify that funds received balance to receipts or the daily transaction log. The balancing of funds received should not be performed by the individual(s) receiving funds unless supervised by a higher level authority.
Verify that all pre-numbered receipts are accounted for.
Record balances by retaining copies of deposits so they can later be reconciled with the deposit amounts. Be sure to maintain a record of all deposits and deposit information.
Prepare the cash/checks for deposit. Refer to Preparing & Making Deposits Quick Reference – Page 1 for instructions on preparing cash & coin for deposit.
Complete the currency/coin and/or checks portion of the deposit ticket with the appropriate amounts – all funds received should be deposited on the same day.
Cash and/or checks should be placed in a Treasury Cash/Checks deposit bag. Coin over $25 is placed in a special CoinLok deposit bag. Insert the deposit ticket into the clear inner pouch of the bag.
Record details such as "who" gave the deposit to "whom", date, time, bag serial number (if applicable), amount, delivery method, etc.
Create a Cash Receipt Ticket (CRT) if necessary (i.e. need for additional Chartfields other than the default) to ensure all funds are being allocated to the proper accounts. Refer to Section 3 of the Depository Training Guide for detailed instructions on how to create a CRT.
Ensure all funds are being deposited into the proper expense or revenue account.
Review chart field allocations to ensure each deposit is posted in the correct General Ledger account. Initial/sign.
Secure the deposit so that funds are not lost or comingled with other funds.
Store deposit in a locked safe or cash box within a locked drawer until deposit is made. The locked safe or cash box within a locked drawer is continually visible to the authorized depositor(s) and the combination is changed on a regular basis. Keys to the locked safe or cash box within a locked drawer are kept in a secure, secret place.
All funds collected by the SMTD must be deposited into a University account on the date of collection. Where this is impractical and where the total deposit is less than $500, the deposit may be made within one business day of collection. The Treasurer's Office must approve any exceptions to this policy. Refer to Section 5 of the Depository Training Guide for detailed instructions and additional guidance on how deposits should be made.
For Development Funds, follow the Development depository process. Any cash gifts should be deposited, checks are to be forwarded to the Development Office through a Development Office gift drop box. For more information on special depository situations, see Section 2.5 in the Depository Training Guide.
at a University depository bank branch.
Receipt of branch acceptance (deposit bag number) is available on the Treasury website a few business days later. (for departments that have deposits taken to Briarwood bank branch via courier).
The individual performing reconciliation should not be the individual making the deposits. The Financial Manager will verify weekly deposit activity using Business Objects. Refer to the Run the FN03 JrnDetail Report in Business Objects Step-by-Step Procedure or Section 6.1 of the Depository Training Guide for detailed instructions on how to access this report.
Reconcile SOA to ensure all current period deposit activity is accurately reflected on the SOA and consistent with the receipt log/receipts issued by comparing it to CRT confirmation pages, ticket book copies, etc. Confirm significant deposits or high volume activity the next business day. Verify regular deposit activity weekly. Maintain proper evidence of reconciliation.
Investigate and resolve all discrepancies on a timely basis.
Reallocate funds thru a JE if deposit is not allocated correctly and take appropriate steps to ensure future allocations are correct.
Periodically, the CAO and/or Financial Manager will compare planned budgets to actual and trends over time to ensure reasonableness and appropriateness.
CMB Treasurer's Office Certification Courses Report to monitor individuals who have taken the TME103 and/or the TME101 courses.
FN03 JrnlDetail Deposit Management Report in Business Objects to monitor deposit activity, depositors and their certification status, and discrepancy trends.


We are on the move and going down south. We spent a day in Ingolstadt yesterday. If you've read Frankenstein then you know Ingolstadt was the setting for the story. We didn't see any strange creatures but we did find a great little cafe to enjoy some eisschokolade.
Now it's time to hit the road again. Next destination is Bolzano, Italy and then Tuscany! Yes, I'm finally going to Italy, which has been one of my dream destinations for a very long time. So I doubt I'll be able to post anymore but when we return to Germany I'll share more pics.
Happy summer days and happy reading everyone!
I am currently watching Under the Tuscan Sun, which is as close as I am going to get to Tuscany! I am just a bit jealous that you are going to get to do the real thing!
Yum! It looks and sounds like you are having an amazing time. Enjoy!!!!


text:
Coimbatore News
Jilted lover stabs, injures girl; thrashed by public
Image used for representational purpose
COIMBATORE: A 22-year-old man from Kerala, who tried to stab a 20-year-old girl to death on the busy TV Samy Road (west) in RS Puram on Monday evening, was thrashed by public.
Police identified him as Suresh of Palakkad. "He was in love with the girl, also a resident of Palakkad. Both of them had studied in a college in Shoranur in Kerala. But two months ago, the girl told him to discontinue the relationship as her parents were against it. But he kept pestering her. A few months ago, a private firm selected her after campus interview and directed her to undergo six-month training at its centre on TV Samy Road. She was staying in a rented room on Thadagam Road," a police officer said.
Suresh confronted the girl on Monday around 6.30pm, when she came out from the training centre. "But she avoided him. In a fit of rage, he took out a sharp weapon from his pocket and tried to stab her. The girl raised an alarm and tried to run away. But he stabbed her in abdomen. The girl received minor injuries. Meanwhile, the public caught him, snatched the weapon and gave him a good thrashing before handing him over to the RS Puram police," the officer told TOI.
The girl is undergoing treatment in a private hospital.


text:
int setup_filesystem(char *root, char *pivot, char *pivot_abs);

#endif


In a hospital, or any other healthcare facility, hazardous substances such as blood, bodily fluids, or any other chemical is near hundreds of people each day. Some of these people, namely the hospital's patients, may be extremely susceptible to infection, due to illness or recent surgery resulting in an open wound.
Hospital spillages can occur at any time; this can be due to broken or faulty equipment, human error, and if this happens, everyone in the spillage area is at risk of being infected.
Thus, under NABH guidelines, it is essential that all hospital departments have the right equipment in hand to deal with any spills immediately when they arise.