text:
Listen to Burial and thousands of other artists on Qobuz.
Burial is the moniker of William Bevan, a reclusive South Londoner who has become one of the most acclaimed, influential, and enigmatic electronic musicians of the early 21st century, thanks to his groundbreaking music as well as his reluctance to reveal any information about himself. Inspired by the anonymity of British club music, particularly garage, jungle, and hardcore, his tracks blend fractured breakbeats with mysterious, pitch-shifted voices and loads of vinyl crackle, rainfall, and submerged video game sound effects, creating gloomy, dystopian soundscapes evoking lonely nights spent wandering around an empty, desolate city. While his self-titled 2006 debut (one of the first notable dubstep full-lengths) received wide acclaim from the underground music press, the astonishing 2007 follow-up Untrue proved to be a major artistic breakthrough. Not only was it one of the most widely praised albums of the year, but its influence endured into the following decade, with countless producers emulating its vocal manipulations and dramatic, rain-soaked atmospherics. Collaborations with Four Tet, Thom Yorke, and Massive Attack followed, as well as several EPs which ranged from abstract, cinematic suites (2012's Kindred, 2013's Rival Dealer) to more club-friendly singles (2017's "Rodent"). While Burial continued to refrain from making public appearances or releasing a third album, he collaborated with Kode9 to mix Fabriclive100, the final volume of the long-running mix CD series, in 2018. Occasionally including ambient tracks on his albums and EPs, he fully explored the genre on 2022's Antidawn. Burial debuted in March 2005 on the Hyperdub label with the South London Borough EP, which included the tracks "Southern Comfort" and "Broken Home." These two tracks would be among the highlights of the full-length album Burial (2006), whose release was accompanied by a second EP, Distant Lights (2006). Comprising bleak, evocative dubstep -- one track, "Night Bus," is entirely beatless, driven only by sampled rainfall and eerie synth melodies -- Burial was critically acclaimed, and most notably voted Album of the Year by The Wire; it was also voted among the best albums of the year by Mixmag. Burial's second album, Untrue (2007), was eagerly awaited as a result of all the acclaim; an EP, Ghost Hardware (2007), was released a few months in advance, drumming up further interest. Like its predecessor, Untrue was critically acclaimed, voted among the best albums of the year by XLR8R, for instance, and reviewed even more favorably than its predecessor. In February 2008, British newspaper The Independent made a claim that William Bevan, indeed a native of South London, was the individual behind Burial. Bevan later confirmed the report, continued to record under his alias, and issued several collaborative works with the likes of former schoolmate Kieran Hebden (Four Tet), Thom Yorke, Massive Attack, and Jamie Woon. He issued three additional Hyperdub EPs -- Street Halo, Kindred, and Truant -- in 2011 and 2012. A Japanese CD release combined the first two. Bevan's 2013 was quiet until that December, when he released a three-track EP for Hyperdub titled Rival Dealer. A single-sided 12" titled Temple Sleeper surfaced on Keysound in 2015. The following year, Burial collaborated with Zomby on a track called "Sweetz," which appeared on Zomby's Ultra album and was also released as a single. Later in the year, Burial's Young Death/Nightmarket arrived on Hyperdub. In April of 2017, Burial's remix of Goldie's jungle classic "Inner City Life" was released by Metalheadz. The following month, Burial's ambient Subtemple EP appeared on Hyperdub. He returned to beat-driven material in September with the garage-leaning single "Rodent," which was backed with a remix by Hyperdub boss Kode9, as well as "Pre Dawn," which appeared on Non Plus. In 2018, Burial and Kode9 mixed Fabriclive100, the conclusion of one of the two mix-CD series produced by London club Fabric. Single "Claustro"/"State Forest" appeared in 2019, and Burial ended the year with Tunes 2011-2019, a double-CD compiling most of his Hyperdub-issued output throughout the decade. Another collaboration with Yorke and Four Tet, "Her Revolution"/"His Rope," appeared on XL in 2020. Shock Power of Love, a Keysound-issued 2021 split-EP with Blackdown, preceded Burial's "Chemz"/"Dolphinz" single on Hyperdub. Antidawn, a five-track experimental ambient EP, appeared in early 2022.
© Jason Birchmeier & Paul Simpson /TiVo Read more
© Jason Birchmeier & Paul Simpson /TiVo
Lapalux
Bvdub
Magnetic Man
Jai Paul
Synkro
Andy Stott
Her Revolution / His Rope
Electronic - Released by XL Recordings on 11/12/2020
Shock Power of Love EP
Electronic - Released by Keysound on 30/04/2021
Antidawn EP
Electronic - Released by Hyperdub on 6/01/2022
Chemz / Dolphinz
Electronic - Released by Hyperdub on 21/05/2021
Tunes 2011-2019
Pitchfork: Best New Reissue
Only two albums in a thirteen-year career (Burial in 2006, and Untrue a year later) is very few for an artist of Burial's calibre - especially since t ...
Burial, the self-titled debut album by an anonymous dubstep producer from London, proved one of the more surprising success stories of 2006. It was vo ...
Chemz
Burial is the first great dubstep album, legitimizing a style -- a generally dark, emotive, and faceless dub offshoot of 2-step -- that had thus far b ...
Claustro / State Forest
Young Death / Nightmarket
Subtemple / Beachfires
Truant / Rough Sleeper
Inner Gateways to the Slumbering Equilibrium at the Center of Cosmos
Metal - Released by Everlasting Spew Records on 29/10/2021
Satanic Upheaval
Metal - Released by Apocalyptic Witchcraft on 8/05/2020
Never Give Up... Never Give In
Alternative & Indie - Released by La Vida Es Un Mus Discos on 30/10/2015
Metal - Released by Everlasting Spew Records on 7/10/2021
Halls of the Formless Unraveler
Divinity Through Eradication
Metal - Released by Burial on 13/04/2012
Metal - Released by RockCD Records on 28/02/2019
Award :
W. Bevan
Derek Carley
W.BEVAN
akim v hovanecz
Apocalyptic Witchcraft
Everlasting Spew Records
La Vida Es Un Mus Discos
1016138 Records DK
Keysound
RockCD Records
In the past 3 months


text:
/* Includes ------------------------------------------------------------------*/
#include "main.h"

/** @addtogroup STM32F4xx_StdPeriph_Examples
  * @{
  */

/** @addtogroup SDIO_uSDCard
  * @{
  */

/* Private typedef -----------------------------------------------------------*/
typedef enum {FAILED = 0, PASSED = !FAILED} TestStatus;

/* Private define ------------------------------------------------------------*/
#define BLOCK_SIZE            512 /* Block Size in Bytes */

#define NUMBER_OF_BLOCKS      100  /* For Multi Blocks operation (Read/Write) */
#define MULTI_BUFFER_SIZE    (BLOCK_SIZE * NUMBER_OF_BLOCKS)

#define SD_OPERATION_ERASE          0
#define SD_OPERATION_BLOCK          1
#define SD_OPERATION_MULTI_BLOCK    2
#define SD_OPERATION_END            3

/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
uint8_t aBuffer_Block_Tx[BLOCK_SIZE];
uint8_t aBuffer_Block_Rx[BLOCK_SIZE];
uint8_t aBuffer_MultiBlock_Tx[MULTI_BUFFER_SIZE];
uint8_t aBuffer_MultiBlock_Rx[MULTI_BUFFER_SIZE];

__IO TestStatus EraseStatus = FAILED;
__IO TestStatus TransferStatus1 = FAILED;
__IO TestStatus TransferStatus2 = FAILED;

SD_Error Status = SD_OK;
__IO uint32_t uwSDCardOperation = SD_OPERATION_ERASE;

/* Private function prototypes -----------------------------------------------*/
static void NVIC_Configuration(void);
static void SD_EraseTest(void);
static void SD_SingleBlockTest(void);
static void SD_MultiBlockTest(void);
static void Fill_Buffer(uint8_t *pBuffer, uint32_t BufferLength, uint32_t Offset);

static TestStatus Buffercmp(uint8_t* pBuffer1, uint8_t* pBuffer2, uint32_t BufferLength);
static TestStatus eBuffercmp(uint8_t* pBuffer, uint32_t BufferLength);

/* Private functions ---------------------------------------------------------*/

/**
  * @brief  Main program
  * @param  None
  * @retval None
  */
int main(void)
{
  /*!< At this stage the microcontroller clock setting is already configured,
       this is done through SystemInit() function which is called from startup
       files (startup_stm32f40_41xxx.s/startup_stm32f427_437xx.s)
       before to branch to application main. To reconfigure the default setting
       of SystemInit() function, refer to system_stm32f4xx.c file
     */

  /* Initialize LEDs available on EVAL board */
  STM_EVAL_LEDInit(LED1);
  STM_EVAL_LEDInit(LED2);
  STM_EVAL_LEDInit(LED3);
  STM_EVAL_LEDInit(LED4);

  /* NVIC Configuration */
  NVIC_Configuration();

  /*------------------------------ SD Init ---------------------------------- */
  if((Status = SD_Init()) != SD_OK)
  {
    STM_EVAL_LEDOn(LED4);
  }

  while((Status == SD_OK) && (uwSDCardOperation != SD_OPERATION_END) && (SD_Detect()== SD_PRESENT))
  {
    switch(uwSDCardOperation)
    {
      /*-------------------------- SD Erase Test ---------------------------- */
      case (SD_OPERATION_ERASE):
      {
        SD_EraseTest();
        uwSDCardOperation = SD_OPERATION_BLOCK;
        break;
      }
      /*-------------------------- SD Single Block Test --------------------- */
      case (SD_OPERATION_BLOCK):
      {
        SD_SingleBlockTest();
        uwSDCardOperation = SD_OPERATION_MULTI_BLOCK;
        break;
      }
      /*-------------------------- SD Multi Blocks Test --------------------- */
      case (SD_OPERATION_MULTI_BLOCK):
      {
        SD_MultiBlockTest();
        uwSDCardOperation = SD_OPERATION_END;
        break;
      }
    }
  }

  /* Infinite loop */
  while (1)
  {
  }
}

/**
  * @brief  Configures SDIO IRQ channel.
  * @param  None
  * @retval None
  */
static void NVIC_Configuration(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;

  /* Configure the NVIC Preemption Priority Bits */
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

  NVIC_InitStructure.NVIC_IRQChannel = SDIO_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
  NVIC_InitStructure.NVIC_IRQChannel = SD_SDIO_DMA_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
  NVIC_Init(&NVIC_InitStructure);
}

/**
  * @brief  Tests the SD card erase operation.
  * @param  None
  * @retval None
  */
static void SD_EraseTest(void)
{
  /*------------------- Block Erase ------------------------------------------*/
  if (Status == SD_OK)
  {
    /* Erase NumberOfBlocks Blocks of WRITE_BL_LEN(512 Bytes) */
    Status = SD_Erase(0x00, (BLOCK_SIZE * NUMBER_OF_BLOCKS));
  }

  if (Status == SD_OK)
  {
    Status = SD_ReadMultiBlocks(aBuffer_MultiBlock_Rx, 0x00, BLOCK_SIZE, NUMBER_OF_BLOCKS);

    /* Check if the Transfer is finished */
    Status = SD_WaitReadOperation();

    /* Wait until end of DMA transfer */
    while(SD_GetStatus() != SD_TRANSFER_OK);
  }

  /* Check the correctness of erased blocks */
  if (Status == SD_OK)
  {
    EraseStatus = eBuffercmp(aBuffer_MultiBlock_Rx, MULTI_BUFFER_SIZE);
  }

  if(EraseStatus == PASSED)
  {
    STM_EVAL_LEDOn(LED1);
  }
  else
  {
    STM_EVAL_LEDOff(LED1);
    STM_EVAL_LEDOn(LED4);
  }
}

/**
  * @brief  Tests the SD card Single Blocks operations.
  * @param  None
  * @retval None
  */
static void SD_SingleBlockTest(void)
{
  /*------------------- Block Read/Write --------------------------*/
  /* Fill the buffer to send */
  Fill_Buffer(aBuffer_Block_Tx, BLOCK_SIZE, 0x320F);

  if (Status == SD_OK)
  {
    /* Write block of 512 bytes on address 0 */
    Status = SD_WriteBlock(aBuffer_Block_Tx, 0x00, BLOCK_SIZE);
    /* Check if the Transfer is finished */
    Status = SD_WaitWriteOperation();
    while(SD_GetStatus() != SD_TRANSFER_OK);
  }

  if (Status == SD_OK)
  {
    /* Read block of 512 bytes from address 0 */
    Status = SD_ReadBlock(aBuffer_Block_Rx, 0x00, BLOCK_SIZE);
    /* Check if the Transfer is finished */
    Status = SD_WaitReadOperation();
    while(SD_GetStatus() != SD_TRANSFER_OK);
  }

  /* Check the correctness of written data */
  if (Status == SD_OK)
  {
    TransferStatus1 = Buffercmp(aBuffer_Block_Tx, aBuffer_Block_Rx, BLOCK_SIZE);
  }

  if(TransferStatus1 == PASSED)
  {
    STM_EVAL_LEDOn(LED2);
  }
  else
  {
    STM_EVAL_LEDOff(LED2);
    STM_EVAL_LEDOn(LED4);
  }
}

/**
  * @brief  Tests the SD card Multiple Blocks operations.
  * @param  None
  * @retval None
  */
static void SD_MultiBlockTest(void)
{
  /* Fill the buffer to send */
  Fill_Buffer(aBuffer_MultiBlock_Tx, MULTI_BUFFER_SIZE, 0x0);

  if (Status == SD_OK)
  {
    /* Write multiple block of many bytes on address 0 */
    Status = SD_WriteMultiBlocks(aBuffer_MultiBlock_Tx, 0, BLOCK_SIZE, NUMBER_OF_BLOCKS);

    /* Check if the Transfer is finished */
    Status = SD_WaitWriteOperation();
    while(SD_GetStatus() != SD_TRANSFER_OK);
  }

  if (Status == SD_OK)
  {
    /* Read block of many bytes from address 0 */
    Status = SD_ReadMultiBlocks(aBuffer_MultiBlock_Rx, 0, BLOCK_SIZE, NUMBER_OF_BLOCKS);

    /* Check if the Transfer is finished */
    Status = SD_WaitReadOperation();
    while(SD_GetStatus() != SD_TRANSFER_OK);
  }

  /* Check the correctness of written data */
  if (Status == SD_OK)
  {
    TransferStatus2 = Buffercmp(aBuffer_MultiBlock_Tx, aBuffer_MultiBlock_Rx, MULTI_BUFFER_SIZE);
  }

  if(TransferStatus2 == PASSED)
  {
    STM_EVAL_LEDOn(LED3);
  }
  else
  {
    STM_EVAL_LEDOff(LED3);
    STM_EVAL_LEDOn(LED4);
  }
}

/**
  * @brief  Compares two buffers.
  * @param  pBuffer1, pBuffer2: buffers to be compared.
  * @param  BufferLength: buffer's length
  * @retval PASSED: pBuffer1 identical to pBuffer2
  *         FAILED: pBuffer1 differs from pBuffer2
  */
static TestStatus Buffercmp(uint8_t* pBuffer1, uint8_t* pBuffer2, uint32_t BufferLength)
{
  while (BufferLength--)
  {
    if (*pBuffer1 != *pBuffer2)
    {
      return FAILED;
    }

    pBuffer1++;
    pBuffer2++;
  }

  return PASSED;
}

/**
  * @brief  Fills buffer with user predefined data.
  * @param  pBuffer: pointer on the Buffer to fill
  * @param  BufferLength: size of the buffer to fill
  * @param  Offset: first value to fill on the Buffer
  * @retval None
  */
static void Fill_Buffer(uint8_t *pBuffer, uint32_t BufferLength, uint32_t Offset)
{
  uint16_t index = 0;

  /* Put in global buffer same values */
  for (index = 0; index < BufferLength; index++)
  {
    pBuffer[index] = index + Offset;
  }
}

/**
  * @brief  Checks if a buffer has all its values are equal to zero.
  * @param  pBuffer: buffer to be compared.
  * @param  BufferLength: buffer's length
  * @retval PASSED: pBuffer values are zero
  *         FAILED: At least one value from pBuffer buffer is different from zero.
  */
static TestStatus eBuffercmp(uint8_t* pBuffer, uint32_t BufferLength)
{
  while (BufferLength--)
  {
    /* In some SD Cards the erased state is 0xFF, in others it's 0x00 */
    if ((*pBuffer != 0xFF) && (*pBuffer != 0x00))
    {
      return FAILED;
    }

    pBuffer++;
  }

  return PASSED;
}

#ifdef  USE_FULL_ASSERT
/**
  * @brief  Reports the name of the source file and the source line number
  *         where the assert_param error has occurred.
  * @param  file: pointer to the source file name
  * @param  line: assert_param error line source number
  * @retval None
  */
void assert_failed(uint8_t* file, uint32_t line)
{
  /* User can add his own implementation to report the file name and line number,
     ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

  /* Infinite loop */
  while (1)
  {
  }
}
#endif

/**
  * @}
  */

/**
  * @}
  */

/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

redpajama_set_name: RedPajamaGithub


1ST ANNUAL ASPNR MEETING will be held in New Orleans, LA.
Program in development. Details to follow.
The 1st annual ASPNR meeting will be held January 18-20, 2019 at the Royal Sonesta in New Orleans, LA. The program is currently under development. Stay tuned!


Of late, I have discovered that conscience always exists. Even in the darkest hours, worst fears and time we commit the sin, there is always an inner voice, striving hard to guide you. Its up to you, your choice to listen to it or go with the flow. I am always on the safer side whenever I listen to it. Ask yourselves, "Are you stable?" Is your mind constantly at war? Well mine too, but I keep cool. This is my Stability.
Never yielded to fear, this is my stability.
Here I am and this is my stability.
Here I am, try shaking my stability.


text:
Q: How to correctly malloc a struct in C Here is my full code, it looks like to work, but it's not working very well.
I would accept any code, that is working like this.
Firstly, the code works, but when I want to add the third name to the struct, it crashes.
Is there any other way to do this?
I need struct, because in the future, I want to add some other params, like age, average, gender, etc.
Please, help me out.
//The student table
typedef struct students {
    char name[50];
} students;

//Global params
int scount = 0;
students *s;

//Basic functions
void addNewStudent();

int main()
{
    int loop = 1;
    char in;
    int ch;
    printf("Willkommen.\n Wahlen Sie bitte von die folgenden Optionen:\n");
    while (loop)
    {
        printf("\t[1] Neue Student eingeben\n");
        printf("\t[9] Programm beenden\n");

        scanf(" %c", &in);
        while ((ch = getchar()) != '\n');
        switch (in)
        {
        case '1':
            addNewStudent();
            break;
        case '9':
            loop = 0;
            break;
        default: printf("------\nOption nicht gefunden.\n------\n");
            break;
        }
    }
    free(s);
    return 0;
}

void addNewStudent()
{
    int index = 0;
    if (scount == 0)
    {
        s = (students*)malloc(sizeof(students));
    }
    else
    {
        realloc(s, sizeof(students) * scount);
    }

    printf("Geben Sie Bitte die Name:\n");
    fgets(s[scount].name, sizeof(s[scount].name), stdin);

    while (s[scount].name[index] != '\n')
    {
        index++;
    }
    s[scount].name[index] = '\0';
    scount++;
}

I'm using Visual Studio.
Thanks for help!

A: students *mynew= realloc(s, sizeof(students)* (scount+1));
if( mynew != NULL )
    s=mynew;

Otehrwise you are having a memory leak. You didn't use the return value of realloc.
Don't cast the return type of malloc.
As per standard §7.22.2.35
void *realloc(void *ptr, size_t size)

The realloc function deallocates the old object pointed to by ptr and
  returns a pointer to a new object that has the size specified by size.

It is good not to use the same pointer variable on which you are calling malloc because in case it fails you will lose reference to the old one too (unless it is stored by other means).
Also you didn't check the return value of malloc.
s = malloc(sizeof(students));
if( s == NULL ){
   frpntf(stderr,"%s","Memory allocation failed");
   exit(1);
}

Also you should check the return value of fgets().
if( fgets(s[scount].name, sizeof(s[scount].name), stdin) == NULL){
     fprintf(stderr,"%s","Error in input");
     exit(1);
}

Also trying to compile your code it showed this

warning: ignoring return value of 'realloc', declared with attribute warn_unused_result [-Wunused-result]
         realloc(s, sizeof(students) * scount);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

When compiling try not to ignore any warning messages. It showed the problem you had.
Important point: (why scount+1 in realloc?)
When reallocating the general idea is increase the number of students. And for that you need to have extra memory allocated for an student. That's why the scount+1 in the code.(realloc).

Some other points:
while (s[scount].name[index] != '\n')
{
    index++;
}
s[scount].name[index] = '\0';

You can do it like this also
size_t len = strlen(s[scount].name);
if(len){
   s[scount].name[len-1]='\0';
}

To understand why from standard §7.21.7.2
char *fgets(char * restrict s, int n,FILE * restrict stream)

The fgets function reads at most one less than the number of
  characters specified by n from the stream pointed to by stream into
  the array pointed to by s. No additional characters are read after a
  new-line character (which is retained) or after end-of-file. A null
  character is written immediately after the last character read into
  the array.

\0 character was there already in the inputted string. You can get the length of it but you know that the one before the \0 is the \n character 1 that you entered by pressing the Enter key. We are overwriting it with the \0.
1. This is the usual case but not the only one. There are two cases where this might not be the right way to look at the thing.

*

*The input line has n-1 or more characters before the '\n'. The the one before \0 will not be the \n rather it will be some character inputted by the user.

*The last line is a stream which may not have a '\n'. (stdin closed). In that case also the input doesn't contain the \n.
So in these cases the idea of removing \n would fail.Discussed in comment. (chux)

A better and safe solution than overwriting this way:
s[scount].name[strcspn(s[scount].name, "\n")] = '\0';

The explanation from the link is that if a \0 is given as input then we will basically write to  s[scount].name[SIZE_MAX] which is not desired.

From the standard §7.24.5.3
size_t strcspn(const char *s1, const char *s2)

The strcspn function computes the length of the maximum initial
  segment of the string pointed to by s1 which consists entirely of
  characters not from the string pointed to by s2.

A:
How to correctly malloc a struct in C ?

p = malloc(sizeof *p);
if (p == NULL) Handle_OutOfMemory();

How to correctly re-allocate a struct in C ?

void *t = realloc(p, sizeof *p * number_of_elements);
if (t == NULL && number_of_elements > 0) {
  Handle_OutOfMemory();
} else {
  p = t;
}

p points to some struct.  Notice no coding of that type in above.

OP' primary problem is not using the return value of realloc() and allocating 1-too-small
// realloc(s, sizeof(students) * scount);
s = realloc(s, sizeof *s * (scount+1));  // or use above code with check for out-of-memory.

A: realloc returns a new pointer that you need to keep:
  students* snew = realloc(s, sizeof(students) * (scount + 1));
  if (!snew) {
     free(s); // If there is not enough memory, the old memory block is not freed
     // handle out of memory
  } else {
     s = snew;
  }

A: You are not allocating it back! Take a look at how realloc works. You need to assign the pointer back after making the re-allocation like this.
if (scount == 0)
{
    s = (students*)malloc(sizeof(students));
}
else
{
    students *temp = realloc(s, sizeof(students) * (scount+1));
    if(temp == NULL){
        free(s);
    }
    else{
        s = temp;
    }
}

By Definition, realloc returns a void pointer but you aren't collecting it.
void *realloc(void *ptr, size_t size);

realloc returns a NULL if there's not enough space. So you can re-assign it when you are sure that it is not NULL
Just make a small change above and your code works like a charm!
Cheers!

redpajama_set_name: RedPajamaStackExchange


text:
Gridley peut désigner :

Patronymes
 , un politicien américain.
 Reuel Colt Gridley, un magasinier américain qui recueille des fonds pour les soldats.
 , un militaire américain.

Toponymes
 Gridley, municipalité située dans le comté de Butte, en Californie.
 Gridley, un village du comté de McLean (Illinois).
 Gridley, une communauté non constituée en municipalité, du comté d'Emmet en Iowa.
 Gridley, une ville du comté de Coffey dans le Kansas.
 , le troisième plus haut sommet du Connecticut.
 , un cours d'eau du New Hampshire.

Autre
 , le nom de quatre navires de l'US Navy

redpajama_set_name: RedPajamaWikipedia


No one ever said ag, much less small scale diversified regenerative ag, was easy.
Low prices, unpredictable weather, compliance, and labor shortages all contribute to a difficult environment.
But farming can be profitable, if managed carefully, with business acumen.
We particularly like to work with regenerative farmers and ranchers practicing sustainability, permaculture, holistic management, agroecology, natural, pasture-raised, and associated "good food" methods. We're happy to come to your farm, listen to your situation, and see if we can help.
See Funding Programs for Farmers and Ranchers if you're looking for capital rather than advice.


A friend made a stepper card using a Tatter Lace die set and I had to try making one on my own.... PS I HATE TOP FOLD CARDS... they always splay flat and don't stand properly.
Cut, scored and folded my gold toned cardstock (Paper-Garden.ca) to create my structure.
Used my electronic cutter to create the beaded ovals to fit and cut from white cardstock. Cut a smaller layer as well.
Inked the larger cutting with some Distress browns. Stamped the birthday greeting repeatedly using Versafine "Vintage Sepia". Sponged with "Spun Sugar" Adhered the 2 layers together and then onto card front.
Die cut the flourishes (John Next Door "Regal Flourishes" set) from misc cardstock. Inked with Versafine "Toffee" and embossed with "Queen's Gold" embossing powder. Adhered to ovals.
Stamped the quote on the center beaded circle with the Toffee and embossed with Emerald Creek "Kettle Copper" embossing powder.
Die cut the leaf (Tim's 3D cut emboss "Laurel") from Gold metallic cardstock.
Adhered to front adding pink toned jewels.
Raided my stash for the blue flowers. The ones on the sides made with oval shapes and Prills in the center. The ones on the center have a quilled flower in their center.
Adhered a piece of beige lace to the bottom edge.
Die cut the "Hugs" from a DoCraft gold metallic cardstock and adhered to lace.
So to correct the card from splaying float. I added a brace to the bottom of the card and am using a multi loop bow as the stopper..


text:
Homaloptera gymnogaster är en fiskart som beskrevs av Bleeker, 1853. Homaloptera gymnogaster ingår i släktet Homaloptera och familjen grönlingsfiskar. Inga underarter finns listade i Catalogue of Life.

Källor

Grönlingsfiskar
gymnogaster


JUST a month after gushing "I'm completely in love" CARA DELEVINGNE has split from girlfriend ST VINCENT.
We can reveal that the couple, who had been dating a year and a half, went separate ways during Cara's hectic tour promoting Suicide Squad.
Which must have made it all the more awkward that model-turned-actress Cara had gushed about St Vincent — real name Annie Clark — in interviews before the film's launch.
Not to mention the glossy Marc Jacobs campaign released this week, featuring the former lovers alongside each other in an acid-trip themed shoot.
We have frequently wished to be millions of miles away when confronted with an ex — so when billboards are involved it's no surprise that Cara opted to spend a few weeks drunk in Nevada's Black Rock Desert.
Our source told us: "Cara and Annie still care about each other, but pressures of the long-distance romance just became too much.
"The cracks were beginning to show on Cara's birthday in August when Annie wasn't there for her party.
"Instead she posted a very flat birthday message on Instagram. They decided to call it a day but remain pals and are hoping they can work things out as its no doubt they really love each other.
Close friends helping the star through the heartbreak — we imagine with industrial quantities of tequila — include her former fling AMBER HEARD and Suicide Squad co-star MARGOT ROBBIE.
Pals Christabel Rose and Octavia Calthorpe and model ADWOA ABOAH were also at her side as she got stuck into the action in Nevada this week.
Cara and striking Adwoa — who wore matching stick-on facial tattoos — were pictured kissing on a blanket in a post that was later deleted.
Maybe the dreadlocked actress was trying to spare the feelings of Annie, who has spent the past few weeks in the company of KRISTEN STEWART in LA.
Let's hope she's not the social media stalking type.
GET ready, girls . . . LOUIS SMITH is ready to plunge back into the dating scene.
The gymnast, who once spent 14 hours showing two of his conquests his hair straighteners, is back on the prowl after splitting from LUCY MECKLENBURGH.
And while his focus on haircare isn't up our street, we're sure plenty of women would love to help him stare in the mirror for hours.
Louis told us at GQ's Men of the Year awards: "I've done nothing since breaking up with my ex but now I feel ready to start.
Louis, who flirted with a series of gorgeous women on the night, looked very dapper in his bow tie.
And he insisted that would be the only dickie picture we see of him on Tinder.
Louis isn't shy of showing off some of his assets, though.
The 2012 Strictly winner posted an Instagram snap of his Olympic silver medal wrapped around a bottle of posh Belvedere vodka.
That ought to bring them running.
WATCH out JUSTIN BIEBER – UNION J say they will be breathing down your neck with their new music.
Lads JOSH CUTHBERT, JAYMI HENSLEY, CASEY JOHNSON and JJ HAMBLETT chatted to us at the Lottery Awards this week.
And they revealed the pop brat is the inspiration for their new direction.
Casey said: "Now we're like Bieber in a band. We know we've got young fans and we want to build on that. We want to appeal to everyone.
Do you want to tell him or shall we?
SHE promised to bring "a lot of fun" to this year's X Factor.
And NICOLE SCHERZINGER lived up to her promise, teaming up with host DERMOT O'LEARY in the south of France this week.
Our sources tell us Nicole and Dermot, staying at a posh villa for the filming of her Judge's House stage, turned down an early night in favour of a lavish banquet by a private chef.
After the wine was gone, the slightly merry duo asked for port.
On being told there was none, they nabbed a bottle of the chef's Marsala cooking wine.
NEWLY single TAYLOR SWIFT is getting more attention for her love life than her music.
But GIGI HADID let slip her pal, who has split from TOM HIDDLESTON after just three months, is back in the studio.
After the Bad Blood singer's romance with actor Tom turned toxic, she should have plenty of inspiration for new material.
Taylor's 1989 album made little secret of references to ex HARRY STYLES, who she was with before CALVIN HARRIS and Tom came along.
We can't wait to see how they fare in her latest efforts.
TWO X Factor wannabes definitely not following SHARON OSBOURNE's lead are OTTAVIO COLUMBRO and BRADLEY HUNT.
We hear the flamboyant duo caused chaos at the X Factor Boot Camp by downing copious amounts of shots – on SIMON COWELL's bar tab – before jumping semi-naked into the posh venue's hot tubs.
And fellow hopeful FREDDY PARKER confirmed: "On the first night, Ottavio and Bradley went wild.
They might have raised eyebrows but we think The X Factor could use more contestants who aren't afraid to let loose.
The tequilas are on us next time, lads.
NORMALLY when we talk about the Strictly celebs getting up close and personal with their partners, we are referring to the horizontal tango.
But DANNY MAC has seen the sparks fly with his dance partner OTI MABUSE for completely different reasons – after he told us he accidentally headbutted her in training.
The Hollyoaks soap hunk, snapped with Laura at the National Lottery Awards – which will be shown tomorrow at 10.45pm on BBC1 – said: "Oti has been really pushing me.
"Injuries wise, I have had a few knocks, bumps and scrapes but she has had it worse. I headbutted her.
We reckon it wasn't quite as bad as poor Oti was feeling.


text:
February preliminary hearing scheduled for truck driver accused in August fatal crash near Wamego
A status conference was held this week for a Lecompton man accused of involuntary manslaughter for his role in an August crash that killed a father and son near Wamego and injured three others.
Mark Stanwix appeared in Pottawatomie County District Court Tuesday. Judge Erich Campbell scheduled a 9 a.m. preliminary hearing on Friday, Feb. 3.
Stanwix is currently charged with eight total counts, including two of involuntary manslaughter, three of aggravated battery, as well as single counts of interference with law enforcement, reckless driving and use of a communication device while driving.
Stanwix was the driver in a fatal crash Aug. 10 that killed 37-year-old Randy Tinkel and his 7-year-old son Korbin and seriously injured wife Jillian and 2-year-old son Krew as well as 34-year-old Megan Schindler, of St. Marys.
In October, the two surviving adult victims filed a lawsuit against Stanwix and Midwest Concrete Materials, alleging negligence in the crash. The pair are seeking a jury trial and damages exceeding $75,000.
By Brandon Peoples|2022-12-01T07:13:29-06:00December 1st, 2022|Local News|Comments Off on February preliminary hearing scheduled for truck driver accused in August fatal crash near Wamego
About the Author: Brandon Peoples

redpajama_set_name: RedPajamaCommonCrawl


text:
El picot de clatell groc vermell (Chrysophlegma miniaceum) és una espècie d'ocell de la família dels pícids (Picidae) que habita la selva i boscos densos de la Península Malaia, Borneo, Sumatra i petites illes properes.

Referències

Chrysophlegma
Picus


text:
Boyd Jones
BVSc FACVSc DECVIM MRCVS
Boyd graduated from Massey University and after working in mixed practice taught at the University of Melbourne until 1975. He returned to Massey University where he became Associate Professor and the Head of the Small Animal Clinic and Hospital.. In 1997 Boyd accepted the Chair in Small Animal Clinical Studies at University College Dublin, Ireland. Boyd is a Fellow of the Australian College and Diplomate of the European College of Veterinary Internal Medicine, and a European Specialist in Small Animal Medicine. He was Dean of the Faculty at University College Dublin from 2002-2007.
Today he is an Emeritus professor of companion animal medicine at both Massey University and University College Dublin, Ireland. He has participated worldwide in veterinary continuing education programmes and post-graduate education. He is a member of a number of editorial boards of veterinary journals and has acted as a specialist referee.
His research interests are in small animal internal medicine publishing over 170 refereed papers in aspects of canine and feline medicine.


Mumbai: The placement heads of the 16 Indian Institutes of Technology (IITs) are meeting on Friday in Mumbai with a single agenda—how to deal with start-ups that are looking to hire talent from these premier engineering schools. After Flipkart and other start-ups like CarDekho and HopScotch deferred the joining date of students from these schools by about four to six months, the IITs felt the need to lay down some ground rules. After all, start-ups now account for 20-30% of the companies coming to some campuses. The All IIT Placement Committee, which meets twice a year usually, is meeting out of turn on Friday to have a strategy in place before campuses send invitation to companies for hiring in July.
Here are the five key things the panel is likely to discuss.
1. How do you define start-ups: First things first: is nine-year-old Flipkart a start-up? Until now, the IITs have let the companies decide if they are a start-up. Formalising a definition can help the IITs decide if even unicorns like Flipkart and Paytm, which are now campus regulars, need to be treated on par with start-ups.
2. List out the troublesome ones: The next item is to get the complete list of start-ups that deferred joining dates or rolled back the offers made on each of the campuses. After all, the problem is not just about Flipkart. This will help give a complete picture of the problem.
3. Lay out next steps of action: Some short-term decisions are expected to be taken on the action to be taken on deferring start-ups. Should students be compensated for the period of deferment? If yes, how much?
4. Slots for start-ups: In the last two years, companies like Flipkart recruited on day one and two in some of the campuses. That means they had access to some of the brightest talent, as those slots are usually reserved for the best companies. Slots are usually decided by students based on their preference of companies and different IITs tend to have different slots for companies. While this is a decision that will be left to the individual IITs, options will be discussed—whether to let start-ups come as a group after all the core engineering companies have recruited or let them come separately in April after the financial year ends and they have a better visibility on their financials.
5. Should students be allowed to accept more than one offer: Some argue that the rule of not letting students accept offers from another company after receiving one could leave them with no option if the company reneges. So students who are passionate about working in start-ups may be allowed to accept an offer from a core company and later also accept a possible offer from a start-up.


Introduced in 1988, Esencia by Loewe, with a light and fresh scent for men. Luxurious and manly, this masculine scent possesses a blend of petitgrain, lemon, rose, cassis. Touch of seductive, but still masculine.


A week to go until the BWFC Juniors Halloween Party!
Supporters are reminded that BWFC Juniors' Halloween Party will take place later this month.
Set to be held on Monday 31 October in the Premier Suite at Macron Stadium, doors will open at 6.30pm for a 6.45pm start.
The event itself meanwhile will run until 8.30pm and is free to all BWFC Juniors members on production of a membership or season ticket card.
Non members can also join in the fun for £4, while the cost for adults is £1, both of which are payable on the door.
Be sure to get your wigs, masks and capes out for the fancy dress competition which both children and adults can enter.
There are prizes for the best outfits judged by Lofty the Lion as well as plenty of games to join in such as apple bobbing and the Mummy game!
Your favourite Wanderers players will be there to join in with the games meanwhile and to sign photos and pose for photographs.
There are also unique prizes on offer including mascot packages for Sky Bet League One matches at Macron Stadium.
For more information, please contact 01204 673653 or email bwfcjuniors@bwfc.co.uk.


I am brand new to SOTA and planning on hitting a 1-pointer later this week just to cut my teeth on. I've been doing mostly PSK work on other radio adventures but don't see a lot of activity on either SOTAwatch or here on the reflector for anything but SSB and CW. Are there chasers who regularly work PSK or would be willing to?
When you were doing PSK31, did you successfully activate with only PSK31 or did you always have a fallback mode ready to complete the activation? I would love to try it, but I the weather's not the best for taking a laptop out. I might have to try and figure out how to get DroidPSK to work with my FT-817nd.
Having a fallback is always a good idea. Mine is usually the 2m FM handheld, but I've always got a CW paddle and a fist mike with me with the FT-817 - so those options are there.
I've not done PSK for a while, but used DroidPSK running on my smartphone, connected to my 817 via a Wolphi-link interface (Wolphi = Wolfgang = the author of DroidPSK). I'm trying it now with Fldigi on the Windows 10 tablet but getting RF feedback problems (that don't occur when using the same set up with FT8). I'll probably need to wind a choke balun close to the feedpoint, and possibly add an extension to the feeder cable.


Whether you are a contractor, self-employed or a business owner, you may have found the task of getting a mortgage isn't an easy one. Since self-certificated mortgages were outlawed by the Financial Services Authority (FSA) in 2012, many self-employed workers have found proving their income to the banks and mortgage lenders has been difficult.
After approaching the banks and traditional mortgage lenders and facing this difficulty, many people are now asking, how do I get a self-employed mortgage?
The reason for the difficulty usually comes down to the fact that banks and mortgage lenders usually calculate how much they are willing to lend using a combination of your credit score and your salary records. However, if you are self-employed, you won't necessarily receive a standard basic salary, so this proves difficult. Instead, you may receive money from a number of different sources and at different frequencies. In addition to this, you may also have good and bad months, and your accountant may be using legal tax loopholes – all of which will affect how your income appears to a lender. Often the problem is not specifically proving your income, but instead establishing a figure for the purposes of assessing how much you could borrow on a mortgage.
Though the banks and some lenders may have made it seem that way, the good news is that getting a self-employed mortgage isn't an impossible task. By instructing an advisor who specialises in self-employed mortgages, you will soon find that it is a lot easier than you first thought to secure a self-employed mortgage and get your dream property.
It may seem that the majority of lenders require three years of trading accounts, but this is not always the case. A specialist self-employed mortgage advisor will put you in touch with lenders who instead will accept evidence of just a year's proof of your income. Rather than just using a system which looks at your credit score and your salary records, these lenders instead look at each application on a case-by-case basis. If you have a good track record of being continuously employed over several years in contract-to-contract work, this is a great advantage to your application.
Just because you are self-employed doesn't necessarily mean you will be paying your mortgage back at higher rate either. In theory, the self-employed have access to exactly the same range of mortgage products as everyone else, so long as you are able to put down the necessary deposit and prove you can make the repayments each month. A specialist self-employed mortgage advisor will know exactly which lenders will accept the self-employed and will work to get you the best rate.
Dean Ronnie offers straightforward financial advice. With his jargon-free approach, he writes about a whole host of financial matters and recommends Access Mortgage Solutions for advice on self-employed mortgages.


text:
Sakura Matou Kimono Visual Revealed for Fate/stay Night – Heaven's Feel
Aniplex Japan has unveiled a brand new visual and line of merchandise for ufotable's (Fate/Zero, Kara no Kyoukai: Mirai Fukuin) upcoming Fate/stay night – Heaven's Feel anime trilogy. The new products all focus on the Heaven's Feel lead heroine Sakura Matou.
Three new items are available for order from the Aniplex+ store, all of which will ship this November:
Sakura Matou Tapestry – ¥2,500 (~ US$24.00)
Sakura Matou A4 Clear File – ¥400 (~ US$3.80)
Sakura Matou Acrylic Mascot Keychain – ¥1,500 (~ US$14.40)
Last year Aniplex also introduced many Kimono theme anime merchandise for Saenai Heroine no Sodatekata, Fate/stay night: Unlimited Blade Works and Mahou Shoujo Madoka★Magica.
It was earlier announced that there will be a total of 3 anime films based on Fate/stay night – Heaven's Feel, that are scheduled to release in 2017. Tomonori Sudou (Kara no Kyoukai: Mirai Fukuin) will direct the film trilogy with Takahiro Miura (Fate/stay night: Unlimited Blade Works, Fate/Zero) producing the series' storyboards.
Here is the trilogy's main visual:
Here is the trilogy's first promotional video:
Fate/stay night is a visual novel released by Type-Moon for the PC in 2004, and is the first in their Fate series. The visual novel was very successful and claimed the title of highest selling visual novel in that year. 2006 saw two adaptations of the game, a manga by Datto Nishiwaki and an anime series by Studio Deen. Additionally in that year, a light novel series titled Fate/Zero was written by Gen Urobuchi. It is a prequel to the visual novels, set 10 years prior. An anime and manga adaptation of Fate/Zero were created, with the manga written by Urobuchi himself in 2011 and the anime being animated by ufotable. A second season of Fate/Zero was also produced. ufotable produced a new Fate/stay night anime based on the Unlimited Blade Works route and is producing a Fate/stay night film based on the Heaven's Feel Route.
Here is a synopsis of the series from MAL:
Raised by a mysterious sorcerer after the horrific death of his parents, Shiro Emiya has only just begun to help others using the small tidbits of magic that he's learned. However, when he's suddenly caught in a battle between two more powerful Magus, Shiro finds himself performing a spell above his expected ability, summoning the beautiful spirit warrior Saber to protect him! But safety is only momentary as Shiro and Saber now find themselves thrust into in a secret world of dark magic and deadly challenges: a no-holds barred duel to the death known as the Holy Grail War! At stake: a prize of unimaginable power. But can the inexperienced Shiro and Saber survive long enough to even enter the contest? First they'll have to withstand waves of treachery and assassination, even as Shiro scrambles to learn everything he'll need to know to stay alive as seven teams of Magus and Spirit Servants face off in mortal combat!
The anime adaptation of Fate/stay night – Heaven's Feel will consist of 3 movies. The films are currently scheduled to release in Japan in 2017. Further information about the films will be revealed at a later date.
You can visit the film's website here: http://www.fate-sn.com/hf/
And follow the series on Twitter: @Fate_SN_Anime
Source Article and Images - Aniplex+
Source Article - Crunchyroll
"Fate/stay night", "Fate/stay night Heaven's Feel", images, videos, and all associated brands and titles © 2016 Type-Moon and ufotable
Tags: 2016, 2017, anime, Fate, Fate_SN_Anime, fate/stay night, Fate/stay night – Heaven's Feel, film, Heaven's Feel, images, Kimono, Magazine Visual, march, movie, NewType, Takahiro Miura, Tomonori Sudou, Type Moon, Type-Moon Ace, ufotable, video, videos, visual, visuals, フェイト/ステイナイト


text:
Raising the Walls of the Sandbox
By Joann Pittman ⋅ Jan 14, 2022 ⋅ Topic: Church and State
In 2018 I wrote a post titled "Get Back in the Sandbox," in which I tried to show how the ongoing crackdowns and overall tightening of government control over Chinese society was best understood this way:
Imagine a sandbox on a beach with the borders of the sandbox being the political, civil, and religious boundaries set by the Party-state. Over the past 15-20 years, as the Party-state has relaxed its control and enforcement of those boundaries, individuals and sectors in China have been quietly climbing out of the sandbox onto the beach, where there is more freedom. Government officials have loosely enforced Party-state directives. […] Now, the Party-state, under Xi Jinping, is attempting to reassert its control over all aspects of China's political, civil, and religious life. It realizes that the boundaries have been ignored and that there too many people running up and down the beach outside of its control, so now the Party-state is saying, to everyone, "get back in the sandbox."
Last month I was texting with a friend in China who was telling me about all the new restrictions that were being imposed on daily life. "The walls of the sandbox just keep getting higher and higher," she said.
I was reminded of all this two weeks ago when China's State Administration of Religious Affairs (SARA) released a document titled "Measures for the Administration of Internet Religious Information Services."1 These measures are to go into effect on March 1. If strictly enforced as written, activities such as religious training, publishing sermons, linking religious content, and broadcasting live or recorded religious events will only be allowed on government -approved religious sites. In other words, the sandbox walls are likely to get higher.
It's important to understand five important pieces of context for these measures.
First, 2022 will be a politically sensitive year as the Communist Party prepares for the 20th Party Congress in 2022. All Party Congresses are a big deal, but this one especially so since it will most likely grant Party Chairman Xi another five-year term as leader. As is the case prior to other congresses and national government meetings, the goal will be stability maintenance at all costs. There will likely be significant further tightening of party-state control in all sectors of society.
Second, in 2021 the government launched a broader "clean up the internet" campaign that has targeted everything from "effeminate" boy bands to tax-evading influencers to leaders of the big tech companies. It should not be all that surprising, then that religious content would eventually come under scrutiny.
Third, the annual National Religious Work Conference was held in December in Beijing. One of the emphases of that conference was the need to strengthen management of online religious affairs. In response to questions from local reporters, a "relevant person" at SARA stated, "the formulation of the measures is an important measure to implement the spirit of the national religious work conference, an urgent need to ensure China's network security and ideological security, and an inevitable requirement to improve the modernization of the governance system and governance capacity of religious affairs." You can read the questions and all the relevant person's answers here; it's quite detailed.
Fourth, the text of this document is almost identical to a draft that was released in 2018. It's curious as to why it has taken three years to move to implementation.
Fifth, while it is tempting to think that these measures are specifically aimed at unregistered Christian groups, that is not necessarily the case. The proliferation of cults and religiously motivated fraud remain a problem as well on China's internet and China sees those activities as threats to social stability. Trying to clear out the internet of the activity of unregistered groups and unapproved activities will certainly impact unregistered Christian groups, but we must remember that they are simply a piece of the threat that the government perceives exists.
How are local Christians responding in the face of these new onerous regulations? In corresponding with numerous Chinese friends over the past few weeks, it seems that most are adopting a "wait and see" attitude and some are already starting to moderate their posting and sharing of religious content. I've also been reminded multiple times about the Chinese saying 上有政策,下有对策. (shang you zhengci, xia you duici.) The top has its measures, and the bottom has its countermeasures. Or the leaders have their measures, and the people have their countermeasures. "We'll figure it out," one friend said to me.
Jerry An, of ReFrame Ministries, whose focus has been on using the internet and social media for outreach, recently wrote about these measures in a piece for Christianity Today titled "Chinese Christian Media Ministries Face Bitter Winter of Censorship":
Of course, it's still important to think about specific countermeasures. Yet all the work we have in our hands is so fragile. The newly announced measures can basically be summarized in one simple sentence: Nothing is allowed.
But so what? The Chinese people have always had an attitude of "you have a policy at the top and I have a way around it at the bottom." To this day, I still firmly believe that the greatest feature of new media is that it has overturned the power, capital, and monopoly of elites over the right to speak. This is its essential characteristic and will not change. The future will continue to see a competition between strong measures and (hopefully) even stronger countermeasures.
It's an excellent piece and I encourage you to read the entire article.
What about foreign entities? Where does this leave them? According to the measures, foreign individuals and organizations registered in China aren't allowed to engage in religious work or distribute religious content online. However, there are few, if any, doing such work from within China. Most of it is being done from outside China, which means it is, and always has been subject to being blocked. It is reasonable to assume (as Jerry An alludes to in his CT article) that the blocking of content from outside will become more stringent.
At this point, there are many things we don't know about these new measures. Will they be strictly enforced? How will they be enforced? How will it impact things like Zoom meetings, conferences, and trainings? How will it impact personal interactions with Christians on platforms such as WeChat? Again, it's reasonable to assume that those will be difficult to continue.
One thing we do know, however, is that God is still in control. We don't yet know the impact of these measures, but we can pray for our brothers and sisters in China who must now prepare to deal with them. May God grant them wisdom, courage, and creativity.
The original document in Chinese can be seen here. An English translation is available at China Law Translate.
Image credit: Justin Schwartfigure via UnSplash.
Joann Pittman
Joann Pittman is Vice President of Partnership and China Engagement and editor of ZGBriefs. Prior to joining ChinaSource, Joann spent 28 years working in China, as an English teacher, language student, program director, and cross-cultural trainer for organizations and businesses engaged in China. She has also taught Chinese at the University …View Full Bio
Reflecting Together on the New Era
Peter Bryant ⋅ ⋅ Dec 12, 2022
A Decade of Change and Future Prospects
Bryant outlines the four areas in which China has most changed over the past decade. He discusses what these involve and their significance for the church in China.
Chinese Christians in the New Era
Winter 2022.


text:
Q: How to merge two rows in the same dataframe I have a data frame which contains two rows. The value in the column "ID" for both these rows is the same. How can I create a new data frame and bring all the values in both the rows into one row, but in separate columns?
For example, if in the input data frame, there is a column called "Amount" in both the rows, The new data frame should contain one-row with two different columns as Amount_1 and Amount_2.
groupby does not work as I do not want all the information in the same columns.
I can not merge, as this is not from two different data frames.
Turn:
+------+--------+----------+---------+
| ID   | Amount |Name      |State    |
|------|--------|----------+---------+
| 1    | 16     |A         |CA       |
| 2    | 32     |B         |GA       |
| 2    | 64     |C         |NY       |
+------+--------+----------+---------+

into:
+------+----------+----------+-------+--------+---------+--------+
| ID   | Amount_1 | Amount_2 |Name_1 | Name_2 | State_1 | State_2|
|------|----------|----------|-------+--------+---------+--------+
| 1    | 16       |          |A      |        | CA      |        |
| 2    | 32       | 64       |B      |C       | GA      | NY     |
+------+----------+----------+-------+--------+---------+--------+

A: Add a column that will contain the column names of the new DataFrame by using cumcount. After that, use pivot:
df['amountnr'] = 'Amount_' + df.groupby('ID').cumcount().add(1).astype(str)
df.pivot(index='ID', columns= 'amountnr', values='Amount')
#amountnr  Amount_1  Amount_2
#ID
#1             16.0       NaN
#2             32.0      64.0

Edit
With you new specifications, I feel you should really use a MultiIndex, like so:
df['cumcount'] = df.groupby('ID').cumcount().add(1)
df.set_index(['ID', 'cumcount']).unstack()
#         Amount       Name      State
#cumcount      1     2    1    2     1    2
#ID
#1          16.0   NaN    A  NaN    CA  NaN
#2          32.0  64.0    B    C    GA   NY

If you insist, you can later always join the columns of your MultiIndex:
df2.columns = ['_'.join([coltype, str(count)]) for coltype, count in df2.columns.values]


where h(K) is the hash of key K, N1 … Nm is the set of cache nodes, and N' ∈ N … Nm.
The function is deterministic in that it consistently produces the same result for a given key and set of cache nodes. Note that a change in the set of available cache nodes may produce a different target node on which to store the key.
The hash algorithm is used to transform a key value into a memcached storage key that uniquely identifies the corresponding value. The choice of hashing algorithm has implications for failover behavior that is important for HA deployments. The FNV1_64_HASH algorithm is recommended since it offers a nice balance of speed and low collision rate; see the javadocs for alternatives.
Obviously the selected index is a function of the number of memcached nodes, so variance in number of nodes produces variance in the node selected to store the key, which is undesirable.
The consistent strategy generally provides a target node that does not vary with the number of nodes. This strategy should be used in cases where the memcached pool may grow or shrink dynamically, including due to frequent node failure.
Memcached stores bytes of data, so CAS tickets must be serialized to a byte array prior to storage. CAS ships with a custom serialization component KryoTranscoder based on the Kryo serialization framework. This component is recommended over the default Java serialization mechanism since it produces much more compact data, which benefits both storage requirements and throughput.
Memcached does not provide for replication by design, but the client is tolerant to node failures with failureMode="Redistribute". In this mode a write failure will simply cause the client to flag the node as failed and remove it from the set of available nodes. It subsequently recomputes the node location function with the reduced node set to find a new node on which to store the key. If the node location function selects the same node, which is likely for the CONSISTENT strategy, a backup node will be computed. The value is written to and read from the failover node until the primary node recovers. The client will periodically check the failed node for liveliness and restore it to the node pool as soon as it recovers. When the primary node is resurrected, if it contains a value for a particular key, it would supersede the value known to the failover node. The most common effect on CAS behavior in this circumstance would occur when ticket-granting tickets have duplicate values, which could affect single sign-out and prevent access to services. In particular, services accessed and forced authentications that occur while the failover service is active would be lost when the failed node recovers. In most cases this behavior is tolerable, but it can be avoided by restarting the memcached service on the failed node prior to rejoining the cache pool.
Service ticket - Service access would be denied for the requested ticket, but permitted for subsequent attempts since a new ticket would be generated and validated.
Ticket-granting ticket - The SSO session would be terminated and re-authentication would be required.
Read failures are thus entirely innocuous for environments where re-authentication is acceptable.


text:
Tamia biography - all about Tamia
Tamia pictures
Tamia biography
Tamia songs
Tamia albums
Tamia Washington-Hill (born May 9, 1975 in Windsor, Ontario)is a Canadian R&B singer. She is married to NBA basketball player Grant Hill and is noted for her spinto mezzo-soprano, a rangy three octaves, capable of both dark contralto depths and angelic soprano highs. Tamia has released three albums since her discovery by Quincy Jones in 1995, at the age of nineteen: 1998's Tamia, 2000's A Nu Day, and 2004's More. All achieved moderate success on R&B charts and urban radio, but failed to achieve mainstream success. Tamia has since split from her label and has released a new album, Between Friends independently.|She also created the Original Soundtrack of the film Honey. Her latest release is "A Gift Between Friends," which includes all of "Between Friends" and a three-song bonus CD of holiday songs.
2) Tamia also refers to an experimental/ avant-garde vocalist who has collaborated with Pierre Favre.
|Updated current biography on May 21, 2009 @ 9:57 AM PST
Born: May 9, 1975 in Windsor, Ontario, Canada|Styles: Urban, Contemporary R&B, Retro-Soul
Tamia is an urban R&B singer/songwriter who released her self-titled debut album in the spring of 1998. A native of Canada, Tamia got an early start in the music industry, singing on "You Put a Move on My Heart," the first single from Quincy Jones' 1994 hit album Q's Jook Joint, when she was only a teenager. That paved the way for the release of her debut album in 1998.
Tamia was born and raised in Windsor, Ontario. As a child, she took acting and singing lessons, eventually performing in a number of local choirs and theatrical presentations. She soon earned a reputation and several awards, including the YTV Vocal Achievement Award in 1993. The following year, she won the Steve Ross Music Scholarship at the American Academy of Achievement's Annual Salute to Excellence in 1994. That same year, she attended a party her manager Brenda Richie held for Luther Vandross. At that party, she met Quincy Jones, who became taken with Tamia's talent. By the end of the year, she had sung "You Put a Move on My Heart" for Jones' new album, Q's Jook Joint. The song became a Top Ten R&B hit and earned her a Grammy nomination for Best Female R&B Vocal Performance; another song on the album, a duet with Babyface entitled "Slow Jams," was nominated for Best R&B Performance by a Duo or Group. She also sang "Missing You" with Brandy, Gladys Knight, and Chaka Khan on the soundtrack for the 1995 film Set It Off. "Missing You" was also nominated for a Grammy, making for a total of three nominations for Tamia before she had even released an album.
Such exposure, plus nominations from the NAACP Image Awards and the Soul Train Music Awards, made Tamia a hot commodity in the music industry. She carefully crafted her debut album over the course of 1996 and 1997, taking time out to play a small role in Speed II: Cruise Control in 1997; she also sang "Make Tonight Beautiful" for the soundtrack. Tamia finally released her debut album, Tamia, in April 1998. The album boasted an impressive list of collaborators and producers, including Jermaine Dupri, Keith Crouch, Tim Kelly & Bob Robinson, Stevie J., Mario Wynans, and Quincy Jones. Two years later and newly signed to Elektra, Tamia released her sophomore effort A Nu Day, featuring production collaborations from Missy Elliott, Dallas Austin, and Shep Crawford. The single "Stranger in My House" became a surprise Top Ten hit in 2001, and her second album for Elektra (Still) followed in 2004. ~ Stephen Thomas Erlewine, All Music Guide
(http://music.msn.com/music/artist-biography/tamia/)
Similar Biographies
Monica biography
Mya biography
Faith Evans biography
Teedra Moses biography
Xscape biography
Keyshia Cole biography
Nivea biography


text:
DOT Drug Testing in Welaka, FL
We provide Welaka Florida DOT Drug Testing, DOT Alcohol Testing, DOT Physicals and DOT Consortium enrollment at locations throughout the State of Florida. Our Welaka, FL DOT Drug Testing locations are within minutes of your home or office. Same day service is available in most places.
The staff of Smart Drug Testing is trained and certified in Florida DOT drug testing procedures and all Welaka, FL DOT drug tests are analyzed by a SAMHSA Certified Laboratory and reviewed by our licensed physicians, who serve as the Medical Review Officers (MRO). To schedule a DOT drug test at any of our Florida locations, call (800) 977-8664 or you may schedule your test 24/7 by clicking the "Order your Test" button.
Please be aware that our Florida DOT drug testing centers do not accept any form of payment and require a test registration/ donor pass to administer a drug, alcohol, or any other type of test. You must call (800) 977-8664 to register for a test or you may register online, no appointment is needed, but a test registration form is required. Your zip code will be used to find our closet drug testing center to perform the drug or alcohol test which is needed.
Our Florida drug testing services are delivered with the highest commitment to customer satisfaction and we are dedicated to providing convenient, cost effective and confidential drug and alcohol testing services with one of the fastest results reporting methods available in the industry. Regardless if you are an individual ordering one test or an employer scheduling 100 tests, our commitment to providing outstanding customer service is the same. We also only use certified laboratories and all test results are verified by our Medical Review Officers (MRO).
Introduction to Welaka
Welaka is a town situated on the St. Johns River in Putnam County, Florida, United States. The population was 586 as of the 2000 census. According to the U.S. Census Bureau's 2004 estimates, the town had a population of 604. The town is part of the Palatka Micropolitan Statistical Area.
It is not known when the area was first settled, but the nearby Mount Royal archaeological site is a possible remnant of a Timucua Indian village from ca. 1250 to 1500 AD, and may have a connection to the town of Enacape, an important center of the Utina tribe.
The settlement was originally a 500-acre tract purchased by James William Bryant in 1852 and was known as Mt. Tucker. Prior to the war, there were large orange groves and cotton plantations. In 1860, Welaka's population was slightly over 100. At the end of the Civil War, fewer than 20 remained. The town grew again and was incorporated on April 23, 1887 and Welaka was affirmed as the town's name; the name Welaka is said to have been derived from the word local American Indians used for the St. Johns River. By the 1880s, Welaka had become a resort town, marketing itself to visitors seeking medicinal cures from the mineral water of the local springs. The Welaka Mineral Water Company was incorporated in 1907.
DOT Drug Testing Locations in Welaka FL
FAQ's About DOT Testing in Welaka, FL
DOT Drug Testing Locations near Welaka, Florida


text:
Пётр Александрович Баянов (1910, Пермский край — 16.05.1945) — командир отделения 8-го отдельного гвардейского мотоциклетного батальона, гвардии старшина.

Биография
Родился в 1910 году в деревне Кыласово Кунгурского района Пермского края. Образование 7 классов. Жил и работал на Дальнем Востоке.

В 1943 году был призван в Красную Армию Комсомольским райвоенкоматом Хабаровского края. С того же времени в боях Великой Отечественной войны. Воевал на 1-м Украинском, 1-м и 2-м Белорусском фронтах. Член ВКП с 1944 года. К лету 1944 года гвардии сержант Баянов — командир отделения 8-го отдельного гвардейского мотоциклетного батальона 8-го гвардейского механизированного корпуса.

В ходе Львовско-Сандомирской операции мотоциклетный батальон действовал в авангарде, ведя разведку. Гвардии сержант Баянов уже считался «специалистом по тылам врага», не раз добывал ценные сведения, приводил языков. 27 июля 1944 года в бою за город Ярослав поразил свыше 10 вражеских солдат.

Приказом по войскам 1-й гвардейской танковой армии от 29 сентября 1944 года гвардии сержант Баянов Пётр Александрович награждён орденом Славы 3-й степени.

В ходе Сандомирско-Силезской операции в начале 1945 года разведчик Баянов вновь отличился. Во время разведки в районе города Хмельник установил связь с польскими партизанами, в засаде на шоссе уничтожил штабную машину и захватил ценные сведения. В районе населенного пункта Воля Гуаговска составе разведывательной группы скрытно проник в расположение противника и вместе с бойцами уничтожил 12 солдат, 4 взял в плен. 22 января участвуя в танковом десанте, отличился в бою под городом Познань, истребив несколько противников.

Приказом по войскам 1-й гвардейской танковой армии от 21 февраля 1945 года гвардии старший сержант Баянов Пётр Александрович награждён орденом Славы 2-й степени.

Во время Восточно-Померанской операции, 14 марта 1945 года близ города Гдыня гвардии старшина Баянов с группой захвата проник в расположение противника. Будучи обнаруженными, разведчики приняли бой. Лично Баянов сразил около 10 противников, а также захватил «языка». Был представлен к награждению орденом Славы.

В начале апреля 1945 года в составе диверсионной группы в тылу врага участвовал в подрыве железнодорожного моста и полотна дороги в нескольких местах, уничтожении нескольких вкопанных танков и самоходного орудия. Был ранен, награждён орденом Красного Знамени.

В составе своего батальона участвовал в последней операции войны — битве за Берлин. Стал командиром взвода. Уже после Победы, 15 мая гвардии старшина Баянов был тяжело ранен и на следующий день, 16 мая, скончался в эвакогоспитале.

Похоронен на воинском кладбище в городе Цибенген.

Указом Президиума Верховного Совета СССР от 31 мая 1945 года за образцовое выполнение заданий командования в боях с немецко-вражескими захватчиками гвардии старшина Баянов Пётр Александрович награждён орденом Славы 1-й степени. Стал полным кавалером ордена Славы.

Награждён орденами Красного Знамени, Славы 3-х степеней, медалями.

Ссылки

Литература
 Герои Прикамья. Пермь. Пушка. 2006

Полные кавалеры ордена Славы
Похороненные в Польше


Brett Pitts, previously stateside at Wells Fargo, joins the bank to help it develop digital experiences.
BMO Financial Group has hired Brett Pitts as its chief digital officer, a new position within the company.
Pitts is tasked with developing the brand's digital experiences in a market where the so-called Big Five banks are in a heated competition to win clients with innovative technology.
"Brett is known for his deep industry expertise and for delivering innovative digital banking solutions," said Cameron Fowler, president of North American personal and business banking at BMO Financial Group.
Pitts arrives from Wells Fargo in the U.S., where he served as EVP and group head of digital. He'd been with Wells Fargo for more than 17 years. Over the last 18 months, he had built bridges with fintech companies. (Banks and fintechs often fight over ownership of client data and how it is used in the development of new services.) Since June 2016, Pitts penned data-sharing agreements with Intuit, Xero, Finicity and, most recently, Expensify and PointServ.
While at Wells Fargo, he also oversaw the development of the "Control Tower," an all-in-one financial data platform designed to give customers access to all their financial information in one place.
BMO, like all Big Five banks, has been active on the digital front in 2017. It recently unveiled its new service for Amazon's Alexa voice assistant platform, which has officially launched in Canada. Alexa users can check the locations of nearby BMO teller machines and get information on its banking products. And in an effort to bring more innovative thinking into its organization, it's engaged in a partnership with Ryerson University to get better access to startup thinking.
Could Dresst disrupt the fashion industry?


text:
Founder of Black-Owned Skincare Brand is Fighting Human Trafficking With Every Bottle She Sells
Nationwide — Meet Kristy Alexander, an entrepreneur from Atlanta, Georgia, whose company Apple Rose Beauty provides support for survivors of human trafficking through the sale of her skincare products. The goal is to provide them with a sustainable living wage and help them get back on their feet after being rescued.
Skincare is a multi-billion dollar industry, and Black-owned skincare companies have worked hard to increase their market share over the past 10 years. In fact, there are more Black women now than ever who are owners of skincare brands, and many of them are giving back to various causes that empower women worldwide.
"I hope that my products will be able to take away some of the feelings of worthlessness that many women may have and remind them of their value," says Kristy about her business mission statement which revolves around providing a safe space for women who have been abused or trafficked.
Her focus lies solely on exploited women because she feels they are underrepresented in these industries and she hopes to change it.
Apple Rose Beauty uses plant-based formulations that are crafted with the most potent, pure, and premium, natural, wild-crafted, and certified organic ingredients sourced from around the globe.
For more details about her company and/or to make a purchase, visit AppleRoseBeauty.com
For press inquiries, contact sales@applerosebeauty.com or call 877-742-3727.


text:
Religion and Globalization seminar series - Is There an Islamic Response to Globalization?
Date: Monday, December 10, 2018 12:30 - 14:30 Add to Calendar
Venue: Asia Global Institute, MB 328, 3/F Main Building, HKU
Despite being an ethnic minority, China's Muslims have become increasingly significant for China's international relations and economic strategies.
This round table features scholars from religious studies, sociology, political science, and journalism, bringing academic and journalist insights on issues including:
1) What are the histories concerning Muslims in China and their transnational connections?
2) Can we identify the relationship between Islamic institutions and histories and the different model of economic and social development of Muslim societies?
3) Are there patterns of Islamic globalization that differ from those of the West and of China?
4) Can we compare the issues concerning Islam in China and the West?
About the Speaker(s)
Ting Guo 郭婷
Asia Global Institute
Mohammed Turki Al-Sudairi 蘇墨涵
Unit Head, King Faisal Center for Research and Islamic Studies Asian Studies
PhD Candidate in Comparative Politics
Luwei Rose Luqiu 閭丘露薇
Assistant Professor, Department of Journalism
Hong Kong Baptist University
2006 Nieman Fellow at Harvard University
David Palmer 宗樹人
Associate Professor, Sociology/Hong Kong Institute for the Humanities and Social Sciences, The University of Hong Kong
PI of "New Approaches to Religious Pluralism in Asia: India-China-Indonesia" and "Infrastructures of Faith: Religious Mobility on the Belt and Road


text:
using EasyNetQ.MessageVersioning;
using NSubstitute;
using System;
using System.Buffers;
using System.Collections.Generic;
using System.Text;
using Xunit;

namespace EasyNetQ.Tests.MessageVersioningTests;

public class VersionedMessageSerializationStrategyTests
{
    private const string AlternativeMessageTypesHeaderKey = "Alternative-Message-Types";

    [Fact]
    public void When_using_the_versioned_serialization_strategy_messages_are_correctly_serialized()
    {
        const string messageType = "MyMessageTypeName";
        var serializedMessageBody = Encoding.UTF8.GetBytes("Hello world!");
        const string correlationId = "CorrelationId";
        var messageTypes = new Dictionary<string, Type> { { messageType, typeof(MyMessage) } };

        var message = new Message<MyMessage>(new MyMessage());
        var serializationStrategy = CreateSerializationStrategy(message, messageTypes, serializedMessageBody, correlationId);

        var serializedMessage = serializationStrategy.SerializeMessage(message);

        AssertMessageSerializedCorrectly(serializedMessage, serializedMessageBody, p => AssertDefaultMessagePropertiesCorrect(p, messageType, correlationId));
    }

    [Fact]
    public void When_serializing_a_message_with_a_correlation_id_it_is_not_overwritten()
    {
        const string messageType = "MyMessageTypeName";
        var serializedMessageBody = Encoding.UTF8.GetBytes("Hello world!");
        const string correlationId = "CorrelationId";
        var messageTypes = new Dictionary<string, Type> { { messageType, typeof(MyMessage) } };

        var message = new Message<MyMessage>(new MyMessage())
        {
            Properties = { CorrelationId = correlationId }
        };
        var serializationStrategy = CreateSerializationStrategy(message, messageTypes, serializedMessageBody, "SomeOtherCorrelationId");

        var serializedMessage = serializationStrategy.SerializeMessage(message);

        AssertMessageSerializedCorrectly(serializedMessage, serializedMessageBody, p => AssertDefaultMessagePropertiesCorrect(p, messageType, correlationId));
    }

    [Fact]
    public void When_using_the_versioned_serialization_strategy_messages_are_correctly_deserialized()
    {
        const string messageType = "MyMessageTypeName";
        const string messageContent = "Hello world!";
        var serializedMessageBody = Encoding.UTF8.GetBytes(messageContent);
        const string correlationId = "CorrelationId";
        var messageTypes = new Dictionary<string, Type> { { messageType, typeof(MyMessage) } };

        var message = new Message<MyMessage>(new MyMessage { Text = messageContent })
        {
            Properties =
            {
                Type = messageType,
                CorrelationId = correlationId,
                UserId = "Bob"
            },
        };
        var serializationStrategy = CreateDeserializationStrategy(message.Body, messageTypes, typeof(MyMessage), serializedMessageBody);

        var deserializedMessage = serializationStrategy.DeserializeMessage(message.Properties, serializedMessageBody);

        AssertMessageDeserializedCorrectly((Message<MyMessage>)deserializedMessage, messageContent, typeof(MyMessage), p => AssertDefaultMessagePropertiesCorrect(p, messageType, correlationId));
        Assert.Equal(deserializedMessage.Properties.UserId, message.Properties.UserId); //, "Additional message properties not serialized");
    }

    [Fact]
    public void When_using_the_versioned_serialization_strategy_messages_are_correctly_round_tripped()
    {
        var typeNameSerializer = new DefaultTypeNameSerializer();
        var serializer = new JsonSerializer();

        const string correlationId = "CorrelationId";

        var serializationStrategy = new VersionedMessageSerializationStrategy(typeNameSerializer, serializer, new StaticCorrelationIdGenerationStrategy(correlationId));

        var messageBody = new MyMessage { Text = "Hello world!" };
        var message = new Message<MyMessage>(messageBody);
        var serializedMessage = serializationStrategy.SerializeMessage(message);
        var deserializedMessage = serializationStrategy.DeserializeMessage(serializedMessage.Properties, serializedMessage.Body);

        Assert.Equal(deserializedMessage.MessageType, message.Body.GetType());
        Assert.Equal(((Message<MyMessage>)deserializedMessage).Body.Text, message.Body.Text);
    }

    [Fact]
    public void When_using_the_versioned_serialization_strategy_versioned_messages_are_correctly_serialized()
    {
        const string messageType = "MyMessageV2TypeName";
        const string supersededMessageType = "MyMessageTypeName";
        var serializedMessageBody = Encoding.UTF8.GetBytes("Hello world!");
        const string correlationId = "CorrelationId";
        var messageTypes = new Dictionary<string, Type>
        {
            { messageType, typeof(MyMessageV2) },
            { supersededMessageType, typeof(MyMessage) }
        };

        var message = new Message<MyMessageV2>(new MyMessageV2());
        var serializationStrategy = CreateSerializationStrategy(message, messageTypes, serializedMessageBody, correlationId);

        var serializedMessage = serializationStrategy.SerializeMessage(message);

        AssertMessageSerializedCorrectly(serializedMessage, serializedMessageBody, p => AssertVersionedMessagePropertiesCorrect(p, messageType, correlationId, supersededMessageType));
    }

    [Fact]
    public void When_serializing_a_versioned_message_with_a_correlation_id_it_is_not_overwritten()
    {
        const string messageType = "MyMessageV2TypeName";
        const string supersededMessageType = "MyMessageTypeName";
        var serializedMessageBody = Encoding.UTF8.GetBytes("Hello world!");
        const string correlationId = "CorrelationId";
        var messageTypes = new Dictionary<string, Type>
        {
            { messageType, typeof(MyMessageV2) },
            { supersededMessageType, typeof(MyMessage) }
        };

        var message = new Message<MyMessageV2>(new MyMessageV2())
        {
            Properties = { CorrelationId = correlationId }
        };
        var serializationStrategy = CreateSerializationStrategy(message, messageTypes, serializedMessageBody, "SomeOtherCorrelationId");

        var serializedMessage = serializationStrategy.SerializeMessage(message);

        AssertMessageSerializedCorrectly(serializedMessage, serializedMessageBody, p => AssertVersionedMessagePropertiesCorrect(p, messageType, correlationId, supersededMessageType));
    }

    [Fact]
    public void When_using_the_versioned_serialization_strategy_versioned_messages_are_correctly_deserialized()
    {
        const string messageType = "MyMessageV2TypeName";
        const string supersededMessageType = "MyMessageTypeName";
        const string messageContent = "Hello world!";
        var serializedMessageBody = Encoding.UTF8.GetBytes(messageContent);
        const string correlationId = "CorrelationId";
        var messageTypes = new Dictionary<string, Type>
        {
            { messageType, typeof(MyMessageV2) },
            { supersededMessageType, typeof(MyMessage) }
        };

        var message = new Message<MyMessageV2>(new MyMessageV2 { Text = messageContent })
        {
            Properties =
            {
                Type = messageType,
                CorrelationId = correlationId,
                UserId = "Bob",
            },
        };
        message.Properties.Headers.Add("Alternative-Message-Types", Encoding.UTF8.GetBytes(supersededMessageType));
        var serializationStrategy = CreateDeserializationStrategy(message.Body, messageTypes, typeof(MyMessageV2), serializedMessageBody);

        var deserializedMessage = serializationStrategy.DeserializeMessage(message.Properties, serializedMessageBody);

        AssertMessageDeserializedCorrectly((Message<MyMessageV2>)deserializedMessage, messageContent, typeof(MyMessageV2), p => AssertVersionedMessagePropertiesCorrect(p, messageType, correlationId, supersededMessageType));
    }

    [Fact]
    public void When_using_the_versioned_serialization_strategy_versioned_messages_are_correctly_round_tripped()
    {
        var typeNameSerializer = new DefaultTypeNameSerializer();
        var serializer = new JsonSerializer();
        const string correlationId = "CorrelationId";

        var serializationStrategy = new VersionedMessageSerializationStrategy(typeNameSerializer, serializer, new StaticCorrelationIdGenerationStrategy(correlationId));

        var messageBody = new MyMessageV2 { Text = "Hello world!", Number = 5 };
        var message = new Message<MyMessageV2>(messageBody);
        var serializedMessage = serializationStrategy.SerializeMessage(message);

        // RMQ converts the Header values into a byte[] so mimic the translation here
        var alternativeMessageHeader = (string)serializedMessage.Properties.Headers[AlternativeMessageTypesHeaderKey];
        serializedMessage.Properties.Headers[AlternativeMessageTypesHeaderKey] = Encoding.UTF8.GetBytes(alternativeMessageHeader);

        var deserializedMessage = serializationStrategy.DeserializeMessage(serializedMessage.Properties, serializedMessage.Body);

        Assert.Equal(deserializedMessage.MessageType, message.Body.GetType());
        Assert.Equal(((Message<MyMessageV2>)deserializedMessage).Body.Text, message.Body.Text);
        Assert.Equal(((Message<MyMessageV2>)deserializedMessage).Body.Number, message.Body.Number);
    }

    [Fact]
    public void When_deserializing_versioned_message_use_first_available_message_type()
    {
        var typeNameSerializer = new DefaultTypeNameSerializer();
        var serializer = new JsonSerializer();
        const string correlationId = "CorrelationId";

        var serializationStrategy = new VersionedMessageSerializationStrategy(typeNameSerializer, serializer, new StaticCorrelationIdGenerationStrategy(correlationId));

        var messageBody = new MyMessageV2 { Text = "Hello world!", Number = 5 };
        var message = new Message<MyMessageV2>(messageBody);
        var serializedMessage = serializationStrategy.SerializeMessage(message);

        // Mess with the properties to mimic a message serialized as MyMessageV3
        var messageType = serializedMessage.Properties.Type;
        serializedMessage.Properties.Type = messageType.Replace("MyMessageV2", "SomeCompletelyRandomType");
        var alternativeMessageHeader = (string)serializedMessage.Properties.Headers[AlternativeMessageTypesHeaderKey];
        alternativeMessageHeader = string.Concat(messageType, ";", alternativeMessageHeader);
        serializedMessage.Properties.Headers[AlternativeMessageTypesHeaderKey] = Encoding.UTF8.GetBytes(alternativeMessageHeader);

        var deserializedMessage = serializationStrategy.DeserializeMessage(serializedMessage.Properties, serializedMessage.Body);

        Assert.Equal(typeof(MyMessageV2), deserializedMessage.MessageType);
        Assert.Equal(((Message<MyMessageV2>)deserializedMessage).Body.Text, message.Body.Text);
        Assert.Equal(((Message<MyMessageV2>)deserializedMessage).Body.Number, message.Body.Number);
    }

    private static void AssertMessageSerializedCorrectly(SerializedMessage message, byte[] expectedBody, Action<MessageProperties> assertMessagePropertiesCorrect)
    {
        Assert.Equal(message.Body, expectedBody); //, "Serialized message body does not match expected value");
        assertMessagePropertiesCorrect(message.Properties); //;
    }

    private static void AssertMessageDeserializedCorrectly(IMessage<MyMessage> message, string expectedBodyText, Type expectedMessageType, Action<MessageProperties> assertMessagePropertiesCorrect)
    {
        Assert.Equal(message.Body.Text, expectedBodyText); //, "Deserialized message body text does not match expected value");
        Assert.Equal(message.MessageType, expectedMessageType); //, "Deserialized message type does not match expected value");

        assertMessagePropertiesCorrect(message.Properties);
    }

    private static void AssertDefaultMessagePropertiesCorrect(MessageProperties properties, string expectedType, string expectedCorrelationId)
    {
        Assert.Equal(properties.Type, expectedType); //, "Message type does not match expected value");
        Assert.Equal(properties.CorrelationId, expectedCorrelationId); //, "Message correlation id does not match expected value");
    }

    private static void AssertVersionedMessagePropertiesCorrect(MessageProperties properties, string expectedType, string expectedCorrelationId, string alternativeTypes)
    {
        AssertDefaultMessagePropertiesCorrect(properties, expectedType, expectedCorrelationId);
        Assert.Equal(properties.Headers[AlternativeMessageTypesHeaderKey], alternativeTypes); //, "Alternative message types do not match expected value");
    }

    private static VersionedMessageSerializationStrategy CreateSerializationStrategy<T>(IMessage<T> message, IEnumerable<KeyValuePair<string, Type>> messageTypes, byte[] messageBody, string correlationId) where T : class
    {
        var typeNameSerializer = Substitute.For<ITypeNameSerializer>();
        foreach (var messageType in messageTypes)
        {
            var localMessageType = messageType;
            typeNameSerializer.Serialize(localMessageType.Value).Returns(localMessageType.Key);
        }

        var serializer = Substitute.For<ISerializer>();
        var serializedMessage = Substitute.For<IMemoryOwner<byte>>();
        serializedMessage.Memory.Returns(messageBody);
        serializer.MessageToBytes(typeof(T), message.GetBody()).Returns(serializedMessage);

        return new VersionedMessageSerializationStrategy(typeNameSerializer, serializer, new StaticCorrelationIdGenerationStrategy(correlationId));
    }

    private static VersionedMessageSerializationStrategy CreateDeserializationStrategy<T>(T message, IEnumerable<KeyValuePair<string, Type>> messageTypes, Type expectedMessageType, byte[] messageBody) where T : class
    {
        var typeNameSerializer = Substitute.For<ITypeNameSerializer>();
        foreach (var messageType in messageTypes)
        {
            var localMessageType = messageType;
            typeNameSerializer.Deserialize(localMessageType.Key).Returns(localMessageType.Value);
        }

        var serializer = Substitute.For<ISerializer>();
        serializer.BytesToMessage(expectedMessageType, messageBody).Returns(message);

        return new VersionedMessageSerializationStrategy(typeNameSerializer, serializer, new StaticCorrelationIdGenerationStrategy(string.Empty));
    }
}


text:
GAVRIEL D. ROSENFELD
GAVRIEL D. ROSENFELD
FORTHCOMING BOOK:
Fascism in America: Past and Present
 "Riding the Antisemitic Tiger"
"It's Important to Take Those Calling
for a 'Fourth Reich' Seriously"
"How Counterfactuals Shape Putin's Worldview"
Gavriel D. Rosenfeld is President of the Center for Jewish History in New York City and Professor of History at Fairfield University. He received his B.A. in History and Judaic Studies from Brown University in 1989 and his Ph.D. in History from UCLA in 1996. His areas of specialization include the history of Nazi Germany and the Holocaust, memory studies, and counterfactual history.
He is the author of numerous books, including the forthcoming co-edited volume (with Janet Ward), Fascism in America: Past and Present (Cambridge, UK: Cambridge University Press, 2023), The Fourth Reich: The Specter of Nazism from World War II to the Present (Cambridge, UK: Cambridge University Press, 2019), Hi Hitler! How the Nazi Past is Being Normalized in Contemporary Culture (Cambridge, UK: Cambridge University Press, 2015), Building after Auschwitz: Jewish Architecture and the Memory of the Holocaust (New Haven: Yale University Press, 2011), The World Hitler Never Made: Alternate History and the Memory of Nazism (Cambridge, UK: Cambridge University Press, 2005), and Munich and Memory: Architecture, Monuments and the Legacy of the Third Reich (Berkeley: University of California Press, 2000). He is the editor of What Ifs of Jewish History: From Abraham to Zionism (Cambridge, UK: Cambridge University Press, 2016) and the co-editor of Beyond Berlin: Twelve German Cities Confront the Nazi Past (Ann Arbor: University of Michigan Press, 2008). He edits the blog, The Counterfactual History Review, and is an editor at the Journal of Holocaust Research.


text:
El municipio de Madison (en inglés: Madison Township) es un municipio ubicado en el condado de Clark en el estado estadounidense de Misuri. En el año 2010 tenía una población de 763 habitantes y una densidad poblacional de 9,69 personas por km².

Geografía
El municipio de Madison se encuentra ubicado en las coordenadas . Según la Oficina del Censo de los Estados Unidos, el municipio tiene una superficie total de 78.74 km², de la cual 77,95 km² corresponden a tierra firme y (1 %) 0.79 km² es agua.

Demografía
Según el censo de 2010, había 763 personas residiendo en el municipio de Madison. La densidad de población era de 9,69 hab./km². De los 763 habitantes, el municipio de Madison estaba compuesto por el 99,34 % blancos, el 0,26 % eran amerindios y el 0,39 % eran de una mezcla de razas. Del total de la población el 0,39 % eran hispanos o latinos de cualquier raza.

Referencias

Enlaces externos

Municipios de Misuri
Localidades del condado de Clark (Misuri)


Today, we try to control just about every aspect of our lives. Technology, software, mobile devices and a culture of individual empowerment means we have greater choice over how, when and where we work and live. We can decide to bank at 3am in our pyjamas, choose between a myriad of coffee shops on the high street, compare prices online, and engage with retailers and service providers through a huge variety of channels and applications. When it comes to healthcare, however, we seem to behave like passive participants – the National Health Service provides a generally excellent service for our medical needs and we have relied on it for decades. But I wonder if it can exploit our developing instinct for control.
Technology, behavioural change and external economic pressures are starting to create a shift in the nature and role of healthcare delivery in the UK. To start, the notion of 'healthcare' isn't as simple as treatments and remedies. There is a continuum of health from general fitness to medicine; from wellness to illness.
According to research, 13% of the UK population are actively interested and engaged in looking after their 'wellness' – i.e. they do things such as exercise regularly, look after their diet, monitor their weight, take their temperature and blood pressure. Many of these people record this data in a variety of places – from apps on their phones to scraps of paper.
Today, with the launch of Microsoft HealthVault in the UK, we are offering those people a central repository for that data, where information can be entered manually by an individual for themselves or their family – or automatically from a range of compatible devices including weight scales, blood pressure monitors and pedometers.
Not only does HealthVault put users in charge of their own health data, but it also offers huge opportunities for organisations in the healthcare ecosystem to build applications and services that help people engage in their health and wellness. Moreover, the security features built into HealthVault mean that users can take control over who can access and use their data.
At launch, I'm delighted to say we are partnering with MSN and Nuffield Health to provide applications that enable wellness management. With the My Health Info application hosted on MSN, users have a simple, yet powerful insight into their health data – helping them monitor their blood pressure, calculate their body mass index and measure the amount of steps they take as exercise.
My Health Info is the first in – what we expect will be – a long line of applications developed for the HealthVault platform. The widgets that Nuffield Health has built for the My Health Info application (and the tremendous potential for further applications and services to be developed on the platform) are what really excite me about HealthVault. Now, we don't know what specific applications or widgets will be developed in the future – that's the beauty of a model based on social innovation and an open platform – but just imagine the positive impact a citizen-centric 'wellness' infrastructure could have on our nation's health.
Evidence shows that those people actively engaged in their wellness use only two-thirds of the NHS resources of those who don't look after themselves. If Microsoft HealthVault and our partners can help raise that 13% of people engaged in their wellness to, say, 25%, we believe that could save the NHS up to £5bn a year.
That makes me feel better already.
Towards a healthier Europe – A Microsoft special report on how innovations in eHealth can improve medical care, increase efficiency, and create new jobs.
Microsoft HealthVault virtual pressroom – Launched in 2007, HealthVault is a personal health technology platform designed to put people in control of their health information. A free HealthVault account can be used to privately and securely collect, store and share health information that otherwise would remain trapped in disconnected silos. At their discretion, individuals can use HealthVault to share health information with a wide range of Web applications, EMR systems, and health and fitness devices, and with physicians, family members or others they choose. Please check here the most recent announcements on HealthVault.


Hi Suki, how come you got up so early, didn't go out partying last nite?
don't need to date your boyfd?
suki000 may i chat with u on msn?
good morning, suki, any plan today?
can we chat more in msn, please add me.
suki, ic, then no plans yet for today?
given your nice bikini, how about the beach, or is that not you in the photo?
hi suki, what is your plan today?
do you want to go lunch , then sing K or movie?
Where's home for you Suki?
oic, then lets chat here or msn first.
what you usually like to do on sunday?
i think you love sunshine & beach, right? which beach you like to go?
seems something wrong with she.com's serve again.
like to chat in msn??
suki000 do you want ml now?
voted alreay and how about u?
suki000 i want to fxxk you ok?


text:
Prince Harry, Meghan Markle Announce First Netflix Series
in Meghan Markle
Home Meghan Markle
Get ready to binge! Prince Harry and Meghan Markle have announced their first project for Netflix.
Titled Heart of Invictus, the new docuseries will follow athletes from around the world as they train for the Invictus Games The Hague 2020, now rescheduled to 2022 because of the pandemic.
"Since the very first Invictus Games back in 2014, we knew that each competitor would contribute in their own exceptional way to a mosaic of resilience, determination and resolve," the Duke of Sussex, 36, said in a statement to Us Weekly. "This series will give communities around the world a window into the moving and uplifting stories of these competitors on their path to the Netherlands next year. As Archewell Productions' first series with Netflix, in partnership with the Invictus Games Foundation, I couldn't be more excited for the journey ahead or prouder of the Invictus community for continuously inspiring global healing, human potential and continued service."
Competitors in the Invictus Games are armed services veterans who have suffered life-changing injuries or illnesses. Harry, who will appear in and executive produce the show, founded the event in 2014.
Prince Harry and Meghan Markle Facundo Arrizabalaga/EPA-EFE/Shutterstock
In September 2020, the prince and his wife, 39, signed a multi-year deal with Netflix to produce documentaries, films, scripted series and children's programming.
"Our lives, both independent of each other, and as a couple have…
Meghan Markle news: Piers Morgan slams furious backlash after Duchess of Sussex criticism | Royal | News