GN Solids come back from CIPPE 2014 Beijing Oil Show with Great Success. As China leading solids control and drilling waste management equipment manufacturer, We took most advanced technology equipment there. During the show, many domestic and international customer come to GN Solids and show keen interest on GN electric angle adjustement Shale shaker, GN 4pcs Mongoose shaker screen mud cleaner, GN most popular PLC control panel barite recovery decanter centrifuge, GN big bowl big treating capacity decanter centrifuge and GN Vertical cuttings dryer for drilling waste management.
GN Centrifuge is always keep ahead as leading drilling mud centrifuge manufacturer from China. GN centrifuge has some unique technologies whick make GN outstanding among similar companies.
GNLW553VFD is a big bowl big capacity centrifuge. It's normal capacity is 90m3/h. Bowl diameter is 550mm and bow length is 1800mm. The scale bowl length/bowl dia=3. This parameter can guarantee on the fine drilling cuttings treatment.
GN vertical cuttings dryer with latest technology can also meet majority customer requirement. The new model has 2 lightspots. Firstly, we add air knife for cleaning of the screen continueouly; secondly, we add auger to discharge drilling solids. Besides, lubricating cooling system also added for safety operation.
This model is developed by GN Solids, electrical angle adjustement and machanical adjustment as back up application. You may operate all the buttons on the control panel to control the start and stop of the shale shaker vibration motor; and also control the gearbox for angle adjustment.
GN 4pcs Mongoose Shaker screen Mud Cleaner has many advantages. Firstly, it can replace Swaco Mongoose shaker and achieve same workin performance. Secondly, it use Polyurethane material as desander cone and desilter cone, this material is anti-abrasive and with longer life. Thirdly, you can use the mud cleaner as one equipment or you can separate it to shale shaker and desander or desilter. It is very convenient for re-installation.


In this paper, we investigate the need for well-suited remote communication architectures to address communication issues in mobile agent environments. We study the implication of mobility for agent architectures – specifically, ways in which the architecture may facilitate agent communication. We present an architecture for inter-agent communication suitable for remote messaging, agent monitoring, agent tracing, and agent debugging for mobile agent environments. The architecture allows for the dynamic adaptation of communication components. It provides for a seamless and continuous active communication during the agent migration process. We have implemented an agent framework simulator that conforms to all these requirements. The paper presents the results illustrating the framework dynamic behavior.


This is my A Lovely Year of Finishes July finish. Since I have a complete inability to have just one goal, I set a primary goal and bonus goals.
Okay, so it wasn't done by the 4th of July. But it was done in July. And I'm all set for 4th of July 2015! Moreover this completed project was from a UFO that was many years old and abandoned. I had to make two additional blocks from kits I had and piece it together to make the table runner. I haven't free motion quilted anything since April, so it was a nice size project to get back to that. And I'm feeling brilliant for saving myself some time by recording the settings on my machine for FMQ so I turned some dials and was ready to go without any trial and error needed.
So naming quilts stresses me out. I have quilts named "My First Quilt" and "The Purple Quilt." Yep. Awesome, huh? I decided I'd ask for some help.
Me: You know what I'm bad at? I'm bad at naming quilts. Will you help me?
The Husband: I don't know what quilts are named.
I laugh hysterically. For many minutes.
Then I show him examples of other named quilts, Western Kaliedescope and Shattered Rainbow.
He points out that he didn't know that quilts were named things like that and then declares, "I think you gave me a crazy task that I had no idea how to do it and I BSed my way out of it."
Then a few nights later when I was quilting it, The Husband and I were talking and I said something about it being a 4th of July table runner. "Oh! Then that's perfect, Frieda... like Freedom!" he declared. Um... wasn't that what you were thinking originally. "No, it was just the first name I thought of." More hysterics.
By the way, when I showed him the quilt label, he was entertained that I'm actually using the name Frieda. Speaking of the label. I made a cute label using Kelly's Cute and Easy Quilt Labels tutorial. It's awesome. I love it. All my future quilts will have adorable quilt labels. And fun names.
For the binding step, I've switched in the past year to machine binding. This was the first time that I used the tube method of making bias binding. I used this binding calculator as a guide. I think the pro of not needing to stitch a million 3 inch bias seams exceeded the con of needing to cut the length of the binding with scissors after stitching. I'm using a 2 1/4" double bias binding... I prefer the look of a 2", but I find that the extra width is helpful for machine attaching the binding.
Make party outfits for the kiddos to wear at The Boy's 4th birthday party. Check. The Boy and The Girl were well dressed in their airplane and helicopter attire for the celebration.
Create a mug rug (or four) using turned edge machine applique. Ever so slight progress. I cut the fabric for the fronts and backs of these. The applique is intimidating me.
Complete step 13 of the mystery quilt. Check. And step 14. And step 15. And step 16. The latest progress on this project can be seen in this post (as well as a peek at a new project).
Quilt blocks 3 and 4 from the Building Blocks Quilt Along. Not so much. But I did FMQ some other stuff, so I'm back on the horse, so to say.
Wash fabric for use in the Farm to Fabric Challenge. Check. It's washed. Now I need to make haste to make it into a completed quilt that looks vaguely like what I'm picturing in my head.
Start visiting quilt shops participating in the Row by Row Experience. Check. Technically, I started. I went to The Intrepid Thread in Milpitas. Their pattern is lovely. Then life got in the way and I haven't been to another participating quilt shop this month. Oops. I have another month to collect rows. We'll see how that goes.
Start, finish and mail a block for the Astronomical Quilts! Block Challenge. Check. Start to finish yesterday. I made a Wonky Star Block.
I'm linking up on the July ALYoF Finishes Party and to TGIFF at Quokka Quilts.
Posted in Quilting. Tags: 4th of July, a finish, table runner on July 31, 2014 by sarah.
Congratulations on your finish! I love your label. I am notoriously bad with putting labels on so I really love when I see them on other people's quilts!
and I love that Freida has little stars quilted on her.
Love 'Frieda'! Especially the story behind her name. I too often ask my Husband and Sons to help name my quilts. The latest one my younger (by a single minute, but that still counts, right?) son is "Candyland", my Michael Miller 2014 challenge quilt. But 'Frieda's name trumps that!
I'm tired just *reading* about your goals. How do you have the energy to do all this, let alone chase 2 active kids around?
As I explained to my mother-in-law, I sew whenever I can, even if it's 12" at a time. I'm pleased to have carved out a space downstairs, because if my sewing machine was upstairs I'd never get to use it. The kids art table is right next to my machine, so if The Girl parks herself to color, or play with stickers, or glue googly eyes to construction paper, I sit down and sew a bit. Oh, the sewing machine is also in view of the dining table, so for breakfasts and lunches if the kids are taking FOREVER to eat, I'll sew a bit then too. Thanks for stopping by!
Nice! Congrats on your finish! I like that quilting especially.


text:
Richard Meyer January 25, 2023 As I See It, Bad practices, Contrarians POV
Sales continue to soar for all the weight loss drugs in 2023. Earlier this month, Novo Nordisk told the CBS news program 60 Minutes that the company can finally supply all dose levels of Wegovy. Social media and celebrities drive demand for a drug whose side effects are not yet completely known and cost over $1000 a month.
Demand quickly exhausted supply when Novo Nordisk's Wegovy became the first incretin approved for weight loss in 2021. Doctors started off-label prescribing of Novo's similar product for diabetes, Ozempic. Lilly's new incretin Mounjaro also saw greater-than-expected demand after its diabetes approval in 2022. Consumers are telling each other about the products in a kind of viral marketing via social media, and now even some magazines are promoting the drugs.
"But are these drugs being overpromoted? According to Ed Silverman on STAT News" "a physicians group has filed a complaint with the Food and Drug Administration alleging that a recent 60 Minutes segment about the Wegovy weight-loss drug was an advertisement and demanded the agency withdraw the report from circulation".
The other issues are unknown side effects. Some patients complain of a complete loss of appetite and taste in food flavor, while others deal with GI side effects. In addition, a study published in the Journal of the American Medical Association found that people who took Wegovy regained two-thirds of the weight they had lost when they went off the drug. We have no idea of the side effects of long-term use.
To make matters worse, a writer on Forbes wrote an article entitled" "The end of obesity" that doesn't tell the whole story and omits serious risk information. He wrote, "new evidence suggests that, when paired with diet and exercise, pharmaceutical interventions can enhance weight loss in those experiencing obesity." Uh, how many people are going to include diet and exercise? The only diet I have observed is that the drug changes the taste of food for many users. TAt heart or this controversy are two facts. First, people will do anything to lose weight, even if taking a prescription drug may cause serious side effects. Second, the FDA has not come forward to tell drug makers that there are no studies with long-term use, and finally, not enough people realize that when they stop taking the drug, they regain their weight.
The Times said, "many doctors worry that the drugs' current popularity, fueled partly by social media, has resulted in people taking them without sufficient medical supervision — a risky move considering the possibility of rare but serious side effects like thyroid cancer, pancreatitis, and kidney failure. And drugs like Ozempic can also cause less serious but still debilitating symptoms, including nausea, vomiting, and racing heartbeat, as many videos on TikTok attest.
One of these drugs comes with a serious warning as well. Mounjaro packaging contains a black box warning about thyroid C-cell tumors. Like the first generation of these drugs, Mounjaro increased the risk of a rare type of thyroid cancer called medullary thyroid carcinoma when tested on rodents.
"The Times article goes on to mention another side effect. Dr. Oren Tepper, a plastic surgeon in New York, said that it's common for weight loss to deflate key areas of the face, leading to a more aged appearance. He said that fat is typically more friend than foe when it comes to facial aging. Weight loss may turn back your biological age but tends to turn your facial clock forward."
I would not take ANY drug if it hadn't been tested for long-term use, but the drug companies see a lot of money coming in and are not about to do anything to tell users the complete truth up front.
Posted in As I See It, Bad practices, Contrarians POV and tagged Weight Loss Drugs. Bookmark the permalink.

redpajama_set_name: RedPajamaCommonCrawl


text:
function changeStyleToSectionHeading1() {
    var sectionHeading = document.getElementById('sectionHeading');
    sectionHeading.className = "sectionHeadingStyle1";
}

function changeStyleToSectionHeading2() {
    var sectionHeading = document.getElementById('sectionHeading');
    sectionHeading.className = "sectionHeadingStyle2";
}

redpajama_set_name: RedPajamaGithub


text:
package com.thinkbiganalytics.nifi.v2.reindex;

import com.thinkbiganalytics.metadata.rest.model.feed.reindex.FeedDataHistoryReindexParams;
import com.thinkbiganalytics.metadata.rest.model.feed.reindex.HistoryReindexingStatus;
import com.thinkbiganalytics.nifi.core.api.metadata.KyloNiFiFlowProvider;
import com.thinkbiganalytics.nifi.core.api.metadata.MetadataProvider;
import com.thinkbiganalytics.nifi.core.api.metadata.MetadataProviderService;
import com.thinkbiganalytics.nifi.core.api.metadata.MetadataRecorder;

import org.apache.nifi.controller.AbstractControllerService;
import org.apache.nifi.util.MockFlowFile;
import org.apache.nifi.util.TestRunner;
import org.apache.nifi.util.TestRunners;
import org.joda.time.DateTime;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;

import java.util.List;

import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyString;

import static org.junit.Assert.assertTrue;

/**
 * Tests for {@link UpdateFeedHistoryReindex} processor <br>
 */
public class UpdateFeedHistoryReindexTest {

    @SuppressWarnings("EmptyMethod")
    @Before
    public void setUp() {
        //Nothing for now
    }

    @Test
    public void setFeedStatus_ToDirty() throws Exception {
        final String METADATA_SERVICE_IDENTIFIER = "MockMetadataProviderService_SetFeedToDirty";
        final TestRunner runner = TestRunners.newTestRunner(UpdateFeedHistoryReindex.class);
        final MetadataProviderService metadataService = new MockMetadataProviderService_SetFeedToDirty();
        runner.addControllerService(METADATA_SERVICE_IDENTIFIER, metadataService);
        runner.enableControllerService(metadataService);
        runner.setProperty(UpdateFeedHistoryReindex.METADATA_SERVICE, METADATA_SERVICE_IDENTIFIER);
        runner.setProperty(UpdateFeedHistoryReindex.FEED_ID, "feed-0-id");
        runner.setProperty(UpdateFeedHistoryReindex.FEED_REINDEX_STATUS, "DIRTY");

        runner.run(1);
        runner.assertQueueEmpty();
        runner.assertTransferCount(UpdateFeedHistoryReindex.REL_SUCCESS, 1);
        List<MockFlowFile> results = runner.getFlowFilesForRelationship(UpdateFeedHistoryReindex.REL_SUCCESS);

        MockFlowFile resultFlowFile = results.get(0);
        resultFlowFile.assertAttributeExists(UpdateFeedHistoryReindex.UPDATED_FEED_INFO_FOR_HISTORY_REINDEX_KEY);
        resultFlowFile.assertAttributeExists(UpdateFeedHistoryReindex.UPDATED_FEED_STATUS_FOR_HISTORY_REINDEX_KEY);
        resultFlowFile.assertAttributeExists(UpdateFeedHistoryReindex.UPDATED_TIME_UTC_FOR_HISTORY_REINDEX_KEY);
        resultFlowFile.assertAttributeExists(UpdateFeedHistoryReindex.UPDATED_INDEX_COLUMNS_STRING_FOR_HISTORY_REINDEX_KEY);

        resultFlowFile.assertAttributeEquals(UpdateFeedHistoryReindex.UPDATED_FEED_INFO_FOR_HISTORY_REINDEX_KEY,
                                             "feed id: feed-0-id, feed name: cat-0-system-name.feed-0-system-name");

        resultFlowFile.assertAttributeEquals(UpdateFeedHistoryReindex.UPDATED_FEED_STATUS_FOR_HISTORY_REINDEX_KEY,
                                             "DIRTY");

        String updatedTimeUtcForHistoryReindexActualValue = resultFlowFile.getAttribute(UpdateFeedHistoryReindex.UPDATED_TIME_UTC_FOR_HISTORY_REINDEX_KEY);
        String updatedTimeUtcForHistoryReindexExpectedValueWithoutTimeZone = "2017-12-21T11:43:23.345";
        assertTrue(updatedTimeUtcForHistoryReindexActualValue.contains(updatedTimeUtcForHistoryReindexExpectedValueWithoutTimeZone));

        resultFlowFile.assertAttributeEquals(UpdateFeedHistoryReindex.UPDATED_INDEX_COLUMNS_STRING_FOR_HISTORY_REINDEX_KEY,
                                             "col1,col2,col3");
    }

    @Test
    public void setFeedStatus_ThrowsGeneralException() throws Exception {
        final String METADATA_SERVICE_IDENTIFIER = "MockMetadataProviderService_ThrowsGeneralException";
        final TestRunner runner = TestRunners.newTestRunner(UpdateFeedHistoryReindex.class);
        final MetadataProviderService metadataService = new MockMetadataProviderService_ThrowsGeneralException();
        runner.addControllerService(METADATA_SERVICE_IDENTIFIER, metadataService);
        runner.enableControllerService(metadataService);
        runner.setProperty(UpdateFeedHistoryReindex.METADATA_SERVICE, METADATA_SERVICE_IDENTIFIER);
        runner.setProperty(UpdateFeedHistoryReindex.FEED_ID, "feed-0-id");
        runner.setProperty(UpdateFeedHistoryReindex.FEED_REINDEX_STATUS, "DIRTY");

        runner.run(1);
        runner.assertQueueEmpty();
        runner.assertTransferCount(UpdateFeedHistoryReindex.REL_FAILURE, 1);
    }

    @Test
    public void setFeedStatus_InvalidState() throws Exception {
        final String METADATA_SERVICE_IDENTIFIER = "MockMetadataProviderService_Minimal";
        final TestRunner runner = TestRunners.newTestRunner(UpdateFeedHistoryReindex.class);
        final MetadataProviderService metadataService = new MockMetadataProviderService_Minimal();
        runner.addControllerService(METADATA_SERVICE_IDENTIFIER, metadataService);
        runner.enableControllerService(metadataService);
        runner.setProperty(UpdateFeedHistoryReindex.METADATA_SERVICE, METADATA_SERVICE_IDENTIFIER);
        runner.setProperty(UpdateFeedHistoryReindex.FEED_ID, "feed-0-id");
        runner.setProperty(UpdateFeedHistoryReindex.FEED_REINDEX_STATUS, "NOT_VALID_STATE");

        runner.assertNotValid();
    }

    @Test
    public void setFeedStatus_ValidStateDirty() throws Exception {
        final String METADATA_SERVICE_IDENTIFIER = "MockMetadataProviderService_Minimal";
        final TestRunner runner = TestRunners.newTestRunner(UpdateFeedHistoryReindex.class);
        final MetadataProviderService metadataService = new MockMetadataProviderService_Minimal();
        runner.addControllerService(METADATA_SERVICE_IDENTIFIER, metadataService);
        runner.enableControllerService(metadataService);
        runner.setProperty(UpdateFeedHistoryReindex.METADATA_SERVICE, METADATA_SERVICE_IDENTIFIER);
        runner.setProperty(UpdateFeedHistoryReindex.FEED_ID, "feed-0-id");
        runner.setProperty(UpdateFeedHistoryReindex.FEED_REINDEX_STATUS, "DIRTY");

        runner.assertValid();
    }

    @Test
    public void setFeedStatus_ValidStateNeverRun() throws Exception {
        final String METADATA_SERVICE_IDENTIFIER = "MockMetadataProviderService_Minimal";
        final TestRunner runner = TestRunners.newTestRunner(UpdateFeedHistoryReindex.class);
        final MetadataProviderService metadataService = new MockMetadataProviderService_Minimal();
        runner.addControllerService(METADATA_SERVICE_IDENTIFIER, metadataService);
        runner.enableControllerService(metadataService);
        runner.setProperty(UpdateFeedHistoryReindex.METADATA_SERVICE, METADATA_SERVICE_IDENTIFIER);
        runner.setProperty(UpdateFeedHistoryReindex.FEED_ID, "feed-0-id");
        runner.setProperty(UpdateFeedHistoryReindex.FEED_REINDEX_STATUS, "NEVER_RUN");

        runner.assertValid();
    }

    @Test
    public void setFeedStatus_ValidStateInProgress() throws Exception {
        final String METADATA_SERVICE_IDENTIFIER = "MockMetadataProviderService_Minimal";
        final TestRunner runner = TestRunners.newTestRunner(UpdateFeedHistoryReindex.class);
        final MetadataProviderService metadataService = new MockMetadataProviderService_Minimal();
        runner.addControllerService(METADATA_SERVICE_IDENTIFIER, metadataService);
        runner.enableControllerService(metadataService);
        runner.setProperty(UpdateFeedHistoryReindex.METADATA_SERVICE, METADATA_SERVICE_IDENTIFIER);
        runner.setProperty(UpdateFeedHistoryReindex.FEED_ID, "feed-0-id");
        runner.setProperty(UpdateFeedHistoryReindex.FEED_REINDEX_STATUS, "IN_PROGRESS");

        runner.assertValid();
    }

    @Test
    public void setFeedStatus_ValidStateCompletedWithFailure() throws Exception {
        final String METADATA_SERVICE_IDENTIFIER = "MockMetadataProviderService_Minimal";
        final TestRunner runner = TestRunners.newTestRunner(UpdateFeedHistoryReindex.class);
        final MetadataProviderService metadataService = new MockMetadataProviderService_Minimal();
        runner.addControllerService(METADATA_SERVICE_IDENTIFIER, metadataService);
        runner.enableControllerService(metadataService);
        runner.setProperty(UpdateFeedHistoryReindex.METADATA_SERVICE, METADATA_SERVICE_IDENTIFIER);
        runner.setProperty(UpdateFeedHistoryReindex.FEED_ID, "feed-0-id");
        runner.setProperty(UpdateFeedHistoryReindex.FEED_REINDEX_STATUS, "COMPLETED_WITH_FAILURE");

        runner.assertValid();
    }

    @Test
    public void setFeedStatus_ValidStateCompletedWithSuccess() throws Exception {
        final String METADATA_SERVICE_IDENTIFIER = "MockMetadataProviderService_Minimal";
        final TestRunner runner = TestRunners.newTestRunner(UpdateFeedHistoryReindex.class);
        final MetadataProviderService metadataService = new MockMetadataProviderService_Minimal();
        runner.addControllerService(METADATA_SERVICE_IDENTIFIER, metadataService);
        runner.enableControllerService(metadataService);
        runner.setProperty(UpdateFeedHistoryReindex.METADATA_SERVICE, METADATA_SERVICE_IDENTIFIER);
        runner.setProperty(UpdateFeedHistoryReindex.FEED_ID, "feed-0-id");
        runner.setProperty(UpdateFeedHistoryReindex.FEED_REINDEX_STATUS, "COMPLETED_WITH_SUCCESS");

        runner.assertValid();
    }

    @Test
    public void setFeedStatus_ValidStateExpressionLanguage() throws Exception {
        final String METADATA_SERVICE_IDENTIFIER = "MockMetadataProviderService_Minimal";
        final TestRunner runner = TestRunners.newTestRunner(UpdateFeedHistoryReindex.class);
        final MetadataProviderService metadataService = new MockMetadataProviderService_Minimal();
        runner.addControllerService(METADATA_SERVICE_IDENTIFIER, metadataService);
        runner.enableControllerService(metadataService);
        runner.setProperty(UpdateFeedHistoryReindex.METADATA_SERVICE, METADATA_SERVICE_IDENTIFIER);
        runner.setProperty(UpdateFeedHistoryReindex.FEED_ID, "feed-0-id");
        runner.setProperty(UpdateFeedHistoryReindex.FEED_REINDEX_STATUS, "${history.reindex.feed.status.for.update}");

        runner.assertValid();
    }

    private static class MockMetadataProviderService_Minimal extends AbstractControllerService implements MetadataProviderService {

        @Override
        public MetadataProvider getProvider() {
            return null;
        }

        @Override
        public MetadataRecorder getRecorder() {
            return null;
        }

        @Override
        public KyloNiFiFlowProvider getKyloNiFiFlowProvider() {
            return null;
        }
    }

    private static class MockMetadataProviderService_ThrowsGeneralException extends AbstractControllerService implements MetadataProviderService {

        @Override
        public MetadataProvider getProvider() {
            return null;
        }

        @Override
        public MetadataRecorder getRecorder() {
            final MetadataRecorder recorder = Mockito.mock(MetadataRecorder.class);
            Mockito.when(recorder.updateFeedHistoryReindexing(anyString(), any(HistoryReindexingStatus.class))).then(invocation -> {
                throw new RuntimeException("General exception updating reindexing status of feed");
            });
            return recorder;
        }

        @Override
        public KyloNiFiFlowProvider getKyloNiFiFlowProvider() {
            return null;
        }
    }

    private static class MockMetadataProviderService_SetFeedToDirty extends AbstractControllerService implements MetadataProviderService {

        @Override
        public MetadataProvider getProvider() {
            return null;
        }

        @Override
        public MetadataRecorder getRecorder() {
            final MetadataRecorder recorder = Mockito.mock(MetadataRecorder.class);
            Mockito.when(recorder.updateFeedHistoryReindexing(anyString(), any(HistoryReindexingStatus.class))).then(invocation -> {
                Object[] args = invocation.getArguments();
                String argFeedId = (String) args[0];
                HistoryReindexingStatus historyReindexingStatus = (HistoryReindexingStatus) args[1];

                FeedDataHistoryReindexParams feedDataHistoryReindexParams = new FeedDataHistoryReindexParams();
                feedDataHistoryReindexParams.setFeedId(argFeedId);
                feedDataHistoryReindexParams.setCategorySystemName("cat-0-system-name");    //will come from modeshape
                feedDataHistoryReindexParams.setFeedSystemName("feed-0-system-name");       //will come from modeshape
                HistoryReindexingStatus historyReindexingStatusUpdated = new HistoryReindexingStatus(
                    historyReindexingStatus.getHistoryReindexingState(), new DateTime().withDate(2017, 12, 21).withTime(11, 43, 23, 345)
                ); //time of update will come from modeshape
                feedDataHistoryReindexParams.setHistoryReindexingStatus(historyReindexingStatusUpdated);
                feedDataHistoryReindexParams.setCommaSeparatedColumnsForIndexing("col1,col2,col3"); //will come from modeshape
                return feedDataHistoryReindexParams;
            });
            return recorder;
        }

        @Override
        public KyloNiFiFlowProvider getKyloNiFiFlowProvider() {
            return null;
        }
    }
}