Got questions or issues with smart home & light stuff that are too challenging for email? Request a one-on-one video chat with Joe! Send an email to joe@smarterhomelife.com to setup a consulting session at the Smarter Home Life viewer discount rate of $49.99/hr.
I have subscribed to your YOuTube channel and look forward to your postings.
I was intrigued by the Philips Hue dimmer HUE Tap episode.
Can you recommend, if it exists, a reading light I can mount on the ceiling with a similar dimmer/tap switch.
I am looking for something that has a similar impact as the reading lights one encounters on a typical airline cabin.
Of course the ceiling is quite higher, but a light that "pencils" down one side so it does not disturb my wife is my utopian solution.


5 Holiday Productivity Tips to Keep the Office Merry this Season.
The Holiday Season is upon us! With all of the bows, boxes and holiday cheer everywhere, balancing our work and personal lives can be difficult. Whether you are working remotely, traveling, or in the office, here are 5 holiday productivity tips to keep things merry around your office this season.
November and December are always busy. It's the end of Q4 and wrapping up the year on a strong note is crucial, but so is your life outside of work. Don't let precious vacation days expire, use them for vacations, family time, or maybe just to unwind this holiday season. You should also keep in mind that your manager will be dealing with a lot of time off request, so make sure to plan early and give him or her enough notice.
You should be able to come back to work after time off with a clear head, and without being more stressed than before. If you are taking days off from work this holiday season, start managing your deadlines in late October or early November, so holiday productivity stays strong and you can leave without being overwhelmed. You should also manage expectations with your managers and coworker, especially if you know there are certain days you will not be accessible. No one enjoys eight missed calls from the office on a day off.
While you shouldn't bring your work home with you more often than necessary, you also shouldn't make a habit of completing personal tasks while in the office. If you are spending time at work buying gifts, sending holiday cards and looking up recipes, you will start falling behind, lowering your holiday productivity.
We are almost at the end of the year, don't give up now on all your healthy habits! And if these habits are beginning to slip, take some time for yourself this winter. Remember, this is flu season. If you work in a small office your chances of getting sick are even higher in close quarters. Make sure you are getting enough sleep, exercise and Vitamin C!


text:
Q: Python re.search assistance for Django I need to replace part of an an html string via a Django custom template tag that I am customising.
The string in it's raw format is as follows:
arg = "Forgot your password?"

I need to replace the {% url 'account:pwdreset'%} part with a url string using re.search().
The code that I written is clumsy and I would appreciate help with finding a better way of achieving the same.
url_string = re.search("{.*?}", arg)
url_string_inner = re.search("'(.+?)'", url_string.group())

add_html = SafeText(''.join([arg.split('{')[0], reverse(url_string_inner.group(1)), arg.split('}')[1]]))

!!UPDATE!!
The solution that I ran with is as follows:
    url_string = re.search("{.*?}", arg)
    url_string_inner = re.search("'(.+?)'", url_string.group())
    add_html = SafeText(''.join([arg.split('{')[0], reverse(url_string_inner.group(1)), arg.split('}')[1]]))

Thank you Fourth Bird for your help.

A: If you only want to replace the the part with 'account:pwdreset' you could use re.sub with a capture group and use that group in the replacement between single quotes
'{%\s*url '([^']*)'%}

Regex demo | Python demo
import re

pattern = r"'{%\s*url '([^']*)'%}"
s = "Forgot your password?"
print(re.sub(pattern, r"'\1'", s))

Output
Forgot your password?

redpajama_set_name: RedPajamaStackExchange


text:
Q: Guru Meditation Error: Core 0 panic'ed (LoadProhibited). Exception was unhandled I am trying to run 6 tasks parallel and all the tasks run for infinite time. But when the task starts running this error comes:
Guru Meditation Error: Core  0 panic'ed (LoadProhibited). Exception was unhandled.

Core  0 register dump:
PC      : 0x400868b4  PS      : 0x00060033  A0      : 0x80085442  A1      : 0x3ffb0b50
0x400868b4: xTaskIncrementTick at C:/Users/preet/esp/esp-idf/components/freertos/tasks.c:3157

A2      : 0x00000001  A3      : 0x80059301  A4      : 0x00000000  A5      : 0x00000132
A6      : 0x00000003  A7      : 0x00060023  A8      : 0x00000000  A9      : 0x3ffb0b30
A10     : 0x3ffb26b8  A11     : 0x00000003  A12     : 0x00060b20  A13     : 0x00060b23
A14     : 0x3ffb6300  A15     : 0x3ffb53fc  SAR     : 0x00000016  EXCCAUSE: 0x0000001c
EXCVADDR: 0x80059309  LBEG    : 0x00000000  LEND    : 0x00000000  LCOUNT  : 0x00000000

Backtrace:0x400868b1:0x3ffb0b500x4008543f:0x3ffb0b70 0x40085199:0x3ffb0b90 0x400826e9:0x3ffb0ba0 0x400e4b6b:0x3ffb6210 0x400d18ef:0x3ffb6230 0x40086462:0x3ffb6250 0x40087991:0x3ffb6270
0x400868b1: xTaskIncrementTick at C:/Users/preet/esp/esp-idf/components/freertos/tasks.c:3156

0x4008543f: xPortSysTickHandler at C:/Users/preet/esp/esp-idf/components/freertos/port/port_systick.c:167

0x40085199: _frxt_timer_int at C:/Users/preet/esp/esp-idf/components/freertos/port/xtensa/portasm.S:329

0x400826e9: _xt_lowint1 at C:/Users/preet/esp/esp-idf/components/freertos/port/xtensa/xtensa_vectors.S:1111

0x400e4b6b: cpu_ll_waiti at C:/Users/preet/esp/esp-idf/components/hal/esp32/include/hal/cpu_ll.h:183
 (inlined by) esp_pm_impl_waiti at C:/Users/preet/esp/esp-idf/components/esp_pm/pm_impl.c:837

0x400d18ef: esp_vApplicationIdleHook at C:/Users/preet/esp/esp-idf/components/esp_system/freertos_hooks.c:63

0x40086462: prvIdleTask at C:/Users/preet/esp/esp-idf/components/freertos/tasks.c:3973 (discriminator 1)

0x40087991: vPortTaskWrapper at C:/Users/preet/esp/esp-idf/components/freertos/port/xtensa/port.c:131

ELF file SHA256: 142fe637d0302132

Rebooting...


text:
Q: no viable overloaded '=' error C++ I'm trying to store the proper ticket variable (either t1 or t2) into t3 so I can return that to the main. When I use "=" to set either t1 to t3, it says "no viable overloaded '='". The following is my code:
using namespace std;

class ticket
{
public:
    ticket();
    double input();
    double output();
    friend ticket operator *(const ticket &t1, const ticket &t2);
    friend ticket operator /(const ticket &t1, const ticket &t2);
private:
    void cost();
    string name;
    double miles, price;
    int transfers;
};

A: The variable c1 and the literal '\0' are of type char, not instances of the character structure.
The types char and character are totally unrelated and you can't simply convert between the two.
A simple solution is to create conversion constructors for the character structure, that accepts single char argument and properly initialize the structure with that character.
Or simply create a character structure and explicitly set the correct member to the character you want.


text:
Home Local News
Investigation of fatal crash continues
in Local News
The Virginia State Police are continuing the investigation of a two-vehicle crash involving a Henry County school bus that resulted in a fatality.
The crash occurred Jan. 28, at 6:53 a.m. on Preston Road, near Meadowood Trail in Henry County.
A 2011 Bluebird School Bus pulled out of a driveway making a left turn onto Preston Road and was struck by a 2018 Kia Optima.
There were no students on the bus that was driven by Thomas E. Dillon, Jr., 71, of Martinsville. Dillon was wearing his seatbelt and was not injured.
The driver of the Kia was identified as Michael Scott Dunkley, 51, also of Martinsville. Dunkley was not wearing his seatbelt and died at the scene.
Speed was a factor in the crash, according to a release from the state police.
The Virginia State Police Crash Reconstruction Team is assisting with the crash.
QCV supports program at Clearview Early Learning Center
Applications for P&HCC, Commonwealth Legacy Scholars now open

redpajama_set_name: RedPajamaCommonCrawl


This Single Family located at 337 Morin Street, Sault Ste Marie, is currently For sale, last updated Tue, 05 Ma. This MLS# SM124765 is listed at $129,900. It has 2 BATHROOMS & 4 BEDROOMS. The age of property is . View 0 photos & complete property details, and ask us for property insights and Single Family comparable in Sault Ste Marie.
This Single Family located at 337 Morin Street, Sault Ste Marie is currently For sale. The age of property is . It has 2 BATHROOMS & 4 BEDROOMS. The average sale price in Sault Ste Marie is $989,255. The average lease price is $16 in Sault Ste Marie. View other properties in Sault Ste Marie.
MLS# SM124765. 2 BATHROOMS & 4 BEDROOMS at 337 Morin Street, Sault Ste Marie is a Single Family For sale. View other properties in Sault Ste Marie.


text: $('#hora').html(Date()).css('color','green').css('fontSize','50px');

redpajama_set_name: RedPajamaGithub


Dracaena marginata, commonly known as a Madagascar dragon tree, is a broadleaf evergreen shrub that looks like a small, multi-trunked tree. It will grow up to 6 feet when planted in a container and up to 20 feet when planted in the ground. The dragon tree thrives in U.S. Department of Agriculture plant hardiness zones 10 through 11. Tufts of sword-shaped green leaves reaching up to 3 feet-long emerge from the top of long, slender stems. Since each stem is topped by one tuft of leaves, the only way to shape the tree is to determine the height of the stems and encourage branching through pruning. The best time to prune the shrub is in the spring during active growth.
Choose a point on the dragon tree stem to make the cut. You can snip the stem anywhere from 10 inches or 5 feet above the ground, depending on whether you want a low-growing set of branches or just want to take a bit off the top of the shrub.
Cut across the stem at the desired height with clean, sharp, pruning shears. Slightly angle the cut so water will not collect on top of the cut surface. One to three new shoots will grow from a point on the stem right below where you made the cut. Remember to allow for the height of the new branching growth if you are pruning to shorten the plant.
Repeat the pruning on other branches if you have a multi-stemmed shrub, or wait until the new branches grow and prune the new growth to make the shrub bushier.
To start a new plant from the cutting, allow the portion of plant you removed to dry for a day or two, and then insert the cutting about 3 or 4 inches deep in the soil at the base of the parent dragon tree. Alternatively, plant the cutting in a different location to begin a Madagascar dragon tree.
Soak the cleaned blades of your pruning shears in household disinfectant for five minutes to sterilize them before pruning your plant. This will help prevent the spread of disease between plants.
Kokemuller, Jill. "How to Shape a Dracaena Marginata." Home Guides | SF Gate, http://homeguides.sfgate.com/shape-dracaena-marginata-82790.html. Accessed 20 April 2019.


text:
Resident Evil 8 RUMOR: More Details Surface (UPDATE: New Info)
June 5th, 2020 at 5:17 pm
by October Keegan -
sisslethecat
UPDATE: More leaked information has potentially been revealed regarding Resident Evil 8, we've added it below the original bullet points. Scroll down to the red UPDATE to read.
While odds were looking fairly good that Resident Evil 8 was going to be revealed today during Sony's PS5 reveal stream (especially given that the entire series went on sale on PS4 starting the other day), we're going to have to wait just a little bit longer. That doesn't mean that there still isn't Resident Evil 8 stuff to talk about though, of course. As per a new leak from our friends over at BioHazard Declassified, a bevy of new Resident Evil 8 story and gameplay details have been leaked. Now I should note that we were unable to independently verify all of the information in their leak, although some aspects of it do line up with information we've heard. I should be absolutely clear before you begin to read, however:
POTENTIALLY MAJOR PLOT DETAILS FOR RESIDENT EVIL 8 FOLLOW BELOW. RUMOR OR NOT, THERE IS A VERY GOOD CHANCE YOU COULD BE SPOILED FROM HERE ON
So their leak focuses on a few specific bullet points, ranging from story to gameplay details. Here's their leak in full:
Exploring Occultism
Occultism will play a big part, but there is no magic. There is a cult that worships the abominations created from the new virus. At first, there are hints at something supernatural but it is explained by the virus, which is in the air, causing hallucinations from time to time.
The Antagonists
The main villain of the game is a man called Alan R., a mysterious count living in a castle. He is the leader or at least a high ranking member of 'The Connections.' Alan is also mentioned in an article published by GameRant on May 15th.
The secondary villain is Natalia/Alex Wesker. There are also files hinting that Blue Umbrella is not as clean-cut as they portray themselves to be.
New Playable Character, Emily
Parts of the game are played as a Mountain Resident called Emily, a woman in her late 20s, who aids Ethan. She is looking for her father. Emily grew up in the village and will assist Ethan and later work with him to find her father and escape.
The Flashlight Will Play a Large Role
You have a flashlight and the game is often pretty dark, forcing you to use it, akin to many other games that are in the same genre. The flashlight can run out of batteries, but slowly recharges by itself over time.
Aside from the titular 'Villiage' (Stylised as VIIIAGE), Resident Evil 8 is set to explore other locations such as Castles, Caves, and Forests. It will have a larger focus on "Outdoor" locations that the rest of the series.
The Child and Evil Chris Redfield?
Mia and Ethan have a child. Due to their infections during Resident Evil 7, it is deformed and by all accounts, not a normal child. They live a pretty lonely life in a remote place and try to hide their child. However, Chris Redfield breaks into Ethan's house, ending in the execution of Ethan's Mutant child, followed by shooting Mia. Apparently, he is operating on his own and that is not part of an official operation.
When Ethan wakes up, Chris is gone. He did not leave Mia to die but bandaged her. There are some shadowy figures in the room. Ethan is abducted there and then wakes up in the 'Village'.
Ethan's Trek
Ethan has to make his way through the mountains. There have been disappearances in this region that are unexplained. You will also start off defenseless before getting your first weapon a bit into playing.
The Enemies of Resident Evil 8
The main enemies are zombies and pale human-like enemies, that resemble Ganados. Dogs, wolves, and enemies that resemble Lickers do appear as well. There are zombies with swords, knives and clubs. They appear mainly in the later section of the game, where you enter "The Castle".
These "werewolf-like" enemies we are going to refer to going forward as "beast men", judging by the description it seems to be more fitting. And it seems their build is to more disgusting than normal enemies. This seems to match up with the description of the game being a "serious departure" and "the darkest and most gruesome" entry in the series thus far as reported by AestheticGamer aka Dusk Golem.
So that's all very exciting. Funnily enough, the element here that makes me most excited is learning that the flashlight will play a larger roll. The flashlight in RE7 was little more than an aesthetic, and between it, REmake 2 and REmake 3, could be frustrating as areas were objectively too dark to see but the flashlight turned on automatically when the game decided it was too dark. Learning that Alex Wesker/Natalia will be involved is also incredibly intriguing, especially after some rumors have pegged Resident Evil 8 as being a suped-up Revelations 3. If this aspect is true, it will be the first time that a major plot element from the Revelations series has crossed over into a numbered game (outside of Easter eggs). It does concern me that Natalia would be involved but there's no mention of Barry, though. Fingers crossed our blessed boy is okay.
The new character, Emily, sounds like she could be the woman Ethan escaped the burning house with in the leaked demo information:
"You manage to escape with one of the other villagers, a woman who helped you into the house, as the hallucinating villager sets it ablaze."
I'll be curious to see how this character will function. RE Engine Resident Evil games have yet to have any meaningful partner interactions thus far, aside from a handful of scripted sequences where an AI partner follows you for a few rooms, and then you're back to your lonesome again. Could Emily fall more in line with being an Ashley type, where you have to look out for her but she can manipulate out of reach gadgets or perform certain tasks while you keep the fighting going, or perhaps something more akin to BioShock Infinite's Elizabeth, where she's mostly autonomous and helps directly in combat? Or does her listing as a playable character mean that she'll quite literally be the same as RE7's Mia, REmake 2's Ada/Sherry, and REmake 3's Carlos? Controlled for brief sections of the story before going back to being an AI that shows up on occasion. That's all assuming this is true to begin with, of course.
The rest of the information lines up with previously reported info, such as the bestiary, locations, and the story involving a cult along with an "evil" Chris Redfield. I still really don't think anyone should panic about that just yet — Capcom's most likely taken cues from fan theories regarding Chris' appearance in RE7 (which, at the time, was disputed to not really be him due to how radically redesigned he was), and there will be some sort of twist to it. Cloning already exists in the Resident Evil universe, and mind-control technically does as well (thanks to Las Plagas).
UPDATE: New information was tweeted by @ClaireChaotic on Twitter. They've previously leaked Resident Evil 8 details, having been apart of the original source for the details regarding hallucinations, details on Chris possibly being an antagonist, etc. Claire shared new details to go along with the leaks in this article, from her source "CV":
Less tentacles
More occultism, decay, body horror
A big enemy, chains, aggressive, with a staff-like weapon
Zombies with armor
… Sooner than expected?!!
While I'm not quite sure what to say about "less tentacles" (less than what?), but the rest both lines up with things we've heard elsewhere and is all quite exciting. More "body horror" especially piques my interest. I adore gross, horrific body horror (The Fly, The Thing 1982, etc), and would adore seeing more here. Zombies in armor is something that keeps being reiterated by multiple leakers, and I'm very interested to see what that means exactly. RE6 also had zombies in armor for a brief period of time, will this be along those lines of literal shamblers in rotting suits of armor, or will it perhaps be something closer to Ganado, but more on the… rotting side?
There are most likely only days left until Resident Evil 8 is officially revealed at this point, it's only a matter of time now (there are of course more important things in the world at the moment that come first). We'll keep you updated.


text:
Q: Best way to combine insertionSort and mergeSort? I'm working on an algorithm which combines the best of mergeSort and insertionSort. It is known that insertionSort is faster than mergeSort for problem sizes of below 43.559, or approximately 44. I am trying to implement this in C and I'm receiving some errors. The array is being partially sorted and some values are being repeated. I have tested mergeSort by itself and it works flawlessly. My code and output are below:
#include <math.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>

#define FILE1 "../data/data.txt"

void processFile(void);
int *createBuffer(int count);
int getBufferSize(void);
void mergeSort(int *, int);
void merge(int *, int *, int, int *, int);
void insert(int *, int);
void insertionSortRecursive(int *, int);
void print(int *, int);

int main() {
  processFile();
  int bufferSize = getBufferSize();
  printf("%d <<<<", bufferSize);
  int *buffer = createBuffer(bufferSize);
  mergeSort(buffer, bufferSize);
  print(buffer, bufferSize);
}

void processFile(void) {
  FILE *file = fopen(FILE1, "r+");
  int ch;

  int replacement = ' ';
  int delimiter = ',';
  while (1) {

    ch = fgetc(file);
    if (ch == EOF) {
      break;
    }
    if (ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z') {
      fseek(file, ftell(file) - 1, SEEK_SET);
      fprintf(file, "%c", replacement);
    } else if (ch == ' ' || ch == '\n') {
      fseek(file, ftell(file) - 1, SEEK_SET);
      fprintf(file, "%c", delimiter);
    } else if (ch == ',') {
    }
  }
  fclose(file);
}

int getBufferSize(void) {
  FILE *file = fopen(FILE1, "r");
  int count = 0;
  int ch;
  while (1) {
    ch = fgetc(file);
    if (ch == EOF) {
      break;
    } else if (ch == ',') {
      ++count;
    }
  }
  int bufferSize = count + 1;
  fclose(file);
  return bufferSize;
}

int *createBuffer(int count) {
  FILE *file = fopen(FILE1, "r");
  int *buffer = (int *)malloc(sizeof(int) * (count + 1));
  int ch;
  int number;
  int i = 0;
  while (1) {
    ch = fgetc(file);
    if (ch == EOF) {
      break;
    }
    if (fscanf(file, "%i", &number) == 1) {
      buffer[i] = number;
      ++i;
    }
  }
  fclose(file);
  return buffer;
}

void mergeSort(int *A, int arraySize) {
  if (arraySize < 44) {
    return insertionSortRecursive(A, arraySize);
  }
  int mid = arraySize / 2;
  int L[mid];
  int R[arraySize - mid];
  for (int i = 0; i < mid; i++) {
    L[i] = A[i];
  }
  for (int j = mid; j < arraySize; j++) {
    R[j - mid] = A[j];
  }
  mergeSort(L, mid);
  mergeSort(R, arraySize - mid);
  merge(A, L, mid, R, arraySize - mid);
}

void merge(int *A, int *L, int leftSize, int *R, int rightSize) {
  int i = 0, j = 0, k = 0;
  while (i < leftSize && j < rightSize) {
    if (L[i] < R[j]) {
      A[k] = L[i];
      i++;
      k++;
    } else {
      A[k] = R[j];
      j++;
      k++;
    }
  }
  while (i < leftSize) {
    A[k] = L[i];
    i++;
    k++;
  }
  while (j < rightSize) {
    A[k] = R[j];
    j++;
    k++;
  }
}

void insert(int *A, int k) {
  int key = A[k];
  int index = k - 1;
  while (index >= 0 && A[index] > key) {
    A[index + 1] = A[index];
    index--;
  }
  A[index + 1] = key;
}

void insertionSortRecursive(int *A, int k) {
  if (k > 1) {
    insertionSortRecursive(A, k - 1);
    insert(A, k);
  }
}

void print(int *buffer, int bufferSize) {
  for (int i = 0; i < bufferSize; i++) {
    printf("%d ", buffer[i]);
  }
}

Obviously I do not expect you to read the output thoroughly. (as it is literally 1000 random numbers being sorted), but I want you to take a note of two things:
Firstly, in the flawed output, 1 is being repeated several times at the beginning of the output and at the end of the output, the final number is 929. This means that partial sorting is occurring but I'm not sure why I'm getting a bunch of 1s at the beginning.
Output (with just mergeSort)
1 2 3 5 5 7 7 7 8 8 9 9 12 12 14 14 15 15 16 16 17 18 18 19 19 21 23 24 24 24 24 26 27 27 30 30 31 32 32 34 34 35 35 37 37 38 38 39 40 42 42 43 44 46 47 48 49 50 50 52 52 52 53 53 54 55 56 56 58 58 62 62 63 68 71 72 75 76 76 77 78 79 79 80 82 82 83 87 91 94 96 96 100 100 101 102 103 105 106 108 108 111 113 114 115 115 118 119 120 121 121 124 126 130 130 130 132 132 133 133 134 134 134 135 135 137 137 139 141 141 146 147 148 149 151 152 154 156 156 157 158 158 162 163 164 164 165 166 166 167 169 169 171 172 172 172 175 176 176 177 179 180 183 184 184 185 185 187 188 188 189 189 189 190 196 198 199 200 200 201 203 203 203 204 204 204 205 205 206 206 207 207 208 211 211 211 212 213 214 215 215 215 217 218 219 220 220 221 222 223 225 225 226 226 226 228 228 228 229 229 229 230 230 230 233 233 233 234 235 238 238 239 239 240 242 244 244 246 246 249 251 253 254 256 256 256 257 258 258 258 259 262 263 265 266 266 267 267 268 269 271 271 271 272 275 277 279 279 281 281 282 282 283 284 284 285 285 288 288 292 293 293 295 295 296 297 298 298 300 300 302 303 306 306 309 309 313 313 314 314 315 316 317 319 320 321 322 323 323 325 326 329 329 333 333 334 334 334 334 336 336 337 337 339 340 340 341 342 342 342 342 344 344 344 347 349 349 351 353 354 354 355 356 356 358 359 360 360 361 362 364 364 366 366 367 368 368 370 370 371 372 372 373 376 376 376 376 379 381 381 381 381 382 382 382 383 384 385 387 388 391 393 395 396 396 397 397 397 398 399 399 399 399 400 401 402 408 411 412 412 414 415 415 416 418 418 419 423 423 425 426 426 426 427 429 429 429 430 430 433 433 433 434 436 437 437 437 437 439 439 439 439 440 441 441 441 444 444 444 445 446 447 447 448 449 449 450 451 453 454 457 459 459 459 460 460 461 463 465 466 468 469 470 472 472 472 472 472 473 473 474 474 477 477 478 480 480 480 481 482 482 482 483 483 484 484 485 486 486 487 487 488 489 490 491 492 492 493 493 495 497 497 497 497 499 499 500 502 502 503 503 504 505 506 507 507 508 509 509 511 511 512 513 514 514 515 515 515 516 517 518 520 520 521 522 523 523 524 525 525 525 527 529 529 531 531 533 534 535 535 535 535 536 536 536 538 539 539 540 541 543 544 544 545 546 547 548 549 550 551 552 554 555 555 557 558 559 559 559 559 560 563 564 564 564 565 565 565 567 568 569 570 571 571 573 574 574 576 581 583 584 586 586 587 589 590 591 592 594 594 595 595 596 596 597 598 603 604 604 606 606 607 607 609 611 611 612 613 613 614 614 614 614 615 615 617 617 617 618 621 624 624 626 628 628 632 632 634 637 638 639 640 640 640 643 644 644 645 646 649 651 651 652 653 654 655 655 658 660 660 661 661 663 664 665 665 666 667 667 667 667 668 668 673 674 674 674 676 678 678 679 679 679 683 684 686 687 689 691 692 693 693 694 694 695 695 696 697 698 701 702 702 703 703 704 704 706 706 707 707 709 709 711 712 713 714 717 718 718 718 718 721 721 722 723 725 725 725 726 727 729 730 730 730 730 732 735 735 736 738 739 739 740 740 743 744 747 749 749 749 749 749 750 750 751 752 752 753 755 756 756 757 759 759 760 761 761 763 763 764 766 767 769 771 772 775 775 775 775 775 776 776 777 777 777 779 780 781 781 783 784 784 785 786 786 787 788 788 791 792 792 792 795 796 799 799 799 799 800 800 800 800 800 801 804 805 807 808 813 813 817 823 824 825 825 828 829 829 829 830 830 832 833 836 837 839 839 840 840 842 843 845 846 848 850 850 850 850 850 857 858 862 862 863 863 864 865 865 867 867 868 868 869 869 870 870 870 871 871 872 874 876 876 882 883 883 883 883 884 886 886 888 888 890 890 892 892 894 895 895 898 898 899 902 902 903 906 907 910 912 912 914 914 916 916 917 919 920 920 920 921 921 922 923 925 928 929 930 930 930 932 933 934 935 935 935 936 941 943 943 946 947 949 949 950 950 951 951 952 952 953 953 954 954 955 955 957 959 962 963 966 968 969 969 970 970 970 972 972 974 975 976 977 977 977 977 978 979 980 981 983 984 986 987 987 988 990 991 991 992 993 994 996 996 997 997 997 998 999 999 %

Output (with the combination):
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 7 7 8 9 9 12 12 14 14 16 18 18 19 19 23 24 24 24 26 27 27 30 30 31 34 35 37 37 42 42 46 48 49 50 50 52 52 53 53 54 56 58 62 24 39 55 56 62 63 68 71 72 76 79 79 83 87 94 96 100 101 103 106 108 113 119 120 121 121 130 130 132 133 133 134 135 135 137 139 141 141 147 148 149 151 154 156 156 158 158 163 164 166 167 169 172 175 176 176 177 179 180 183 184 185 187 189 189 190 196 198 199 200 201 203 203 204 205 206 206 207 207 208 211 211 212 213 214 215 215 217 220 220 221 222 223 225 225 226 226 228 228 229 229 230 230 233 233 234 238 239 239 240 244 246 246 251 253 256 258 258 259 263 266 267 267 268 269 271 272 275 277 279 279 281 281 282 282 283 284 284 285 285 292 295 296 297 298 298 300 300 302 306 309 313 313 314 317 319 323 325 326 334 334 336 337 339 340 342 342 342 344 344 344 351 354 355 356 358 364 366 366 367 370 372 372 373 376 376 376 379 381 381 382 383 384 396 396 397 397 399 399 399 400 401 402 408 412 412 414 415 415 418 418 423 425 426 427 429 360 368 426 434 436 437 437 439 439 439 440 441 441 444 444 444 446 449 450 451 453 454 457 459 459 459 460 460 461 43 82 134 152 188 203 244 257 295 323 360 364 397 433 447 463 465 469 472 472 472 472 474 474 477 478 480 480 480 481 482 483 485 486 487 490 495 497 497 497 497 502 502 503 503 507 509 511 514 516 518 520 520 522 523 523 525 525 525 527 529 529 533 535 535 536 539 539 544 545 546 547 551 552 554 555 557 558 559 559 560 564 567 568 570 571 573 574 576 584 589 590 594 594 595 596 597 52 75 80 105 118 137 146 204 226 271 293 508 515 563 603 606 606 611 612 614 614 614 615 617 565 571 607 613 617 624 626 628 637 638 639 640 651 651 652 653 654 660 660 665 666 668 673 674 678 683 684 686 687 691 692 693 694 696 697 698 702 702 703 703 704 704 706 707 707 709 718 718 718 718 722 725 725 726 329 334 337 381 398 429 429 433 441 468 493 550 559 649 689 694 721 729 730 730 735 735 739 740 740 744 749 749 749 750 750 752 753 755 756 757 759 759 760 761 763 764 766 767 769 771 569 604 611 646 667 679 693 738 749 772 775 775 775 775 777 777 779 780 784 787 788 663 664 676 678 786 791 792 792 796 799 800 800 800 800 801 807 808 813 813 817 823 825 828 829 829 829 830 830 832 833 836 839 840 840 842 846 850 850 857 858 863 867 867 482 489 491 493 531 535 541 559 586 613 614 617 655 661 661 706 711 723 785 868 868 870 870 872 874 876 876 882 883 884 886 886 235 262 293 316 349 362 371 419 437 449 466 488 499 509 513 555 586 632 634 730 732 781 869 888 888 890 890 892 898 899 902 902 903 906 907 910 912 914 914 917 8 82 100 115 126 204 288 303 333 334 349 370 385 387 391 423 445 499 517 534 548 665 667 674 721 763 784 795 912 920 922 923 925 928 930 505 512 536 604 624 645 674 727 743 850 883 930 932 934 935 935 935 936 946 947 949 949 950 951 581 609 695 714 747 799 843 845 850 898 952 76 184 205 321 336 359 381 426 430 433 484 487 538 565 621 725 799 824 837 850 862 863 883 894 920 952 953 955 962 963 966 968 16 44 58 78 166 218 229 238 254 271 341 342 382 411 472 482 483 504 514 521 565 596 598 640 701 736 776 786 921 969 969 5 15 17 34 77 114 162 164 185 256 309 322 448 500 506 515 531 536 540 543 549 583 730 749 751 805 862 871 930 950 970 972 974 976 977 5 15 32 111 165 169 172 188 189 200 228 249 354 395 447 473 535 592 655 658 712 713 775 776 800 804 920 953 959 977 2 35 91 132 171 266 314 315 329 333 340 353 361 393 473 492 524 564 628 643 667 668 695 752 761 799 864 865 883 954 978 980 981 986 21 38 96 102 134 219 511 233 256 288 356 368 388 416 470 484 507 515 587 607 615 640 644 679 717 756 777 871 916 943 987 988 991 992 996 999 7 38 47 108 124 130 157 215 230 242 258 306 399 439 477 486 591 595 644 679 739 783 792 839 870 895 941 954 970 979 999 32 40 115 172 211 265 320 781 347 376 382 430 437 492 544 564 574 618 632 667 709 788 825 848 865 869 895 916 921 929

As always, if you take the time to answer this question or attempt to answer it, then thank you for your time.

A: Why not use a conventional insertion sort instead of recursive insertion sort for the small number of elements (16 to 32) (the rest would be merge sort)?
void InsertionSort(int a[], int ll, int ee)
{
    int i, j;
    int t;
    for (j = ll + 1; j < ee; j++) {
        t = a[j];
        i = j-1;
        while(i >= ll && a[i] > t){
            a[i+1] = a[i];
            i--;
        }
        a[i+1] = t;
    }
}

An old example of a hybrid insertion sort and pointer based bottom up merge sort, with the insertion sort and merge functions inlined with the merge sort code. On my system this code takes less than 1.5 seconds to sort 16 million integers:
size_t GetPassCount(size_t n);

void MergeSort(uint32_t a[], uint32_t b[], size_t n)
{
uint32_t *p0r;                              /* ptr to current element run 0 */
uint32_t *p0e;                              /* ptr to end             run 0 */
uint32_t *p1r;                              /* ptr to current element run 1 */
uint32_t *p1e;                              /* ptr to end             run 1 */
uint32_t *pax;                              /* ptr to a[] or b[] */
uint32_t *pbx;                              /* ptr to b[] or a[] */
size_t rsz;                                 /* run size  */
    if(n < 2)                               /* if size < 2 return */
        return;
    /* set run size so merge sort is even number of passes */
    rsz = ((GetPassCount(n) & 1) != 0) ? 32 : 16;
    {                                       /* insertion sort */
        size_t l, r;
        size_t i, j;
        uint32_t t;
        for (l = 0; l < n; l = r) {
            r = l + rsz;
            if (r > n)r = n;
            l--;
            for (j = l + 2; j < r; j++) {
                t = a[j];
                i = j-1;
                while(i != l && a[i] > t){
                    a[i+1] = a[i];
                    i--;
                }
                a[i+1] = t;
            }
        }
    }

    while(rsz < n){                     /* merge sort */
        pbx = &b[0];
        pax = &a[0];
        while(pax < &a[n]){
            p0e = rsz + (p0r = pax);
            if(p0e >= &a[n]){
                p0e = &a[n];
                goto cpy10;}
            p1e = rsz + (p1r = p0e);
            if(p1e >= &a[n])
                p1e = &a[n];
            /* 2 way merge */
            while(1){
                if(*p0r <= *p1r){
                    *pbx++ = *p0r++;    /* run 0 smallest */
                    if(p0r < p0e)       /* if not end run continue */
                        continue;
                    goto cpy11;
                } else {
                    *pbx++ = *p1r++;    /* run 1 smallest */
                    if(p1r < p1e)       /* if not end run continue */
                        continue;
                    goto cpy10;
                }
            }
cpy11:      p0r = p1r;
            p0e = p1e;
            /* 1 way copy */
cpy10:      while (1) {
                *pbx++ = *p0r++;        /* copy element */
                if (p0r < p0e)          /* if not end of run continue */
                    continue;
                break;
            }
            pax += rsz << 1;            /* setup for next set of runs */
        }
        pax = a;                        /* swap ptrs */
        a = b;
        b = pax;
        rsz <<= 1;                      /* double run size */
    }
}

size_t GetPassCount(size_t n)               /* return # passes */
{
    size_t i = 0;
    for(size_t s = 1; s < n; s <<= 1)
        i += 1;
    return(i);
}

A: Caveat: This is only a partial fix for one of your issues.
At the top of mergeSort, you need:
if (arraySize < 2)
    return;

Otherwise, you can get infinite recursion with an arraySize value of 0.
After that, your mergesort appears to work. But, your insertion sort still needs more work.

To aid in debug, I've created an additional test jig. It checks for out-of-bounds in the arrays.
It generates random arrays.
At least for posting here [where you can't post a large test data file], dynamic generation of the array is something that any responder can invoke.
Here's the code, refactored with extra debug/cross-check:
#include <math.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>

#define FILE1 "../data/data.txt"

typedef struct {
    int *arr_base;
    int arr_count;
    int arr_max;
} arr_t;

unsigned int opt_R;
int opt_L;

arr_t test;
arr_t save;
#define MARGIN      16

#ifndef ISORT
#define ISORT   44
#endif

void processFile(void);
int *createBuffer(int count);
int getBufferSize(void);
void mergeSort(int *, int);
void merge(int *, int *, int, int *, int);
void insert(int *, int);
void insertionSortRecursive(int *, int);
void print(int *, int);

#define sysfault(_fmt...) \
    do { \
        printf(_fmt); \
        exit(1); \
    } while (0)

#ifdef DBGCHK
#define dbgchk(_reason) \
    arrchk(_reason)
#else
#define dbgchk(_reason) \
    do { } while (0)
#endif

void
arrdup(arr_t *save,const arr_t *tst)
{

    save->arr_count = tst->arr_count;
    save->arr_max = tst->arr_max;
    save->arr_base = realloc(save->arr_base,sizeof(int) * save->arr_max);

    for (int idx = 0;  idx < save->arr_max;  ++idx)
        save->arr_base[idx] = tst->arr_base[idx];
}

void
arrgen(void)
{
    arr_t *tst = &test;

    printf("R = %u\n",opt_R);

    if (opt_L > 0)
        tst->arr_count = opt_L;
    else
        tst->arr_count = (rand_r(&opt_R) % 100) + 1;
    printf("L = %d\n",tst->arr_count);

    tst->arr_max = MARGIN + tst->arr_count + MARGIN;

    tst->arr_base = realloc(tst->arr_base,sizeof(int) * tst->arr_max);

    int *ptr = tst->arr_base;
    int idx;
    int val = -1;

    for (idx = 0;  idx < MARGIN;  ++idx, --val, ++ptr)
        *ptr = val;

    for (idx = 0;  idx < tst->arr_count;  ++idx, ++ptr)
        *ptr = (rand_r(&opt_R) % tst->arr_count) + 1;

    for (idx = 0;  idx < MARGIN;  ++idx, --val, ++ptr)
        *ptr = val;

    arrdup(&save,tst);
}

void
arrchk(const char *reason)
{
    const arr_t *tst = &test;
    const int *ptr = tst->arr_base;
    int val = -1;
    int idx;

    for (idx = 0;  idx < MARGIN;  ++idx, --val, ++ptr) {
        if (*ptr != val)
            sysfault("arrchk: BEF ptr=%zu EXPECTED:%d ACTUAL:%d (from %s)\n",
                ptr - tst->arr_base,val,*ptr,reason);
    }

    for (idx = 0;  idx < tst->arr_count;  ++idx, ++ptr) {
        if (*ptr < 0)
            sysfault("arrchk: ARR ptr=%zu ACTUAL:%d (from %s)\n",
                ptr - tst->arr_base,*ptr,reason);
    }

    for (idx = 0;  idx < MARGIN;  ++idx, --val, ++ptr) {
        if (*ptr != val)
            sysfault("arrchk: AFT ptr=%zu EXPECTED:%d ACTUAL:%d (from %s)\n",
                ptr - tst->arr_base,val,*ptr,reason);
    }
}

void
srtchk(const char *reason)
{
    arr_t *tst = &test;
    int *ptr = &tst->arr_base[MARGIN];
    int idx;

    arrchk(reason);

    int prev = *ptr++;
    for (idx = 1;  idx < tst->arr_count;  ++idx, ++ptr) {
        if (*ptr < prev)
            sysfault("arrchk: AFT ptr=%zu PREV:%d CUR:%d (from %s)\n",
                ptr - tst->arr_base,prev,*ptr,reason);
        prev = *ptr;
    }
}

int
main()
{
#if 0
    processFile();
    int bufferSize = getBufferSize();

    printf("%d <<<<", bufferSize);
    int *buffer = createBuffer(bufferSize);

    mergeSort(buffer, bufferSize);
    print(buffer, bufferSize);
#else
    arrgen();
    mergeSort(&test.arr_base[MARGIN],test.arr_count);
    srtchk("main");
#endif
}

void
processFile(void)
{
    FILE *file = fopen(FILE1, "r+");
    int ch;

    int replacement = ' ';
    int delimiter = ',';

    while (1) {

        ch = fgetc(file);
        if (ch == EOF) {
            break;
        }
        if (((ch >= 'a') && (ch <= 'z')) || ((ch >= 'A') && (ch <= 'Z'))) {
            fseek(file, ftell(file) - 1, SEEK_SET);
            fprintf(file, "%c", replacement);
        }
        else if (ch == ' ' || ch == '\n') {

            fseek(file, ftell(file) - 1, SEEK_SET);
            fprintf(file, "%c", delimiter);

        }
        else if (ch == ',') {
        }
    }
    fclose(file);
}

int
getBufferSize(void)
{
    FILE *file = fopen(FILE1, "r");
    int count = 0;
    int ch;

    while (1) {
        ch = fgetc(file);
        if (ch == EOF) {
            break;
        }
        else if (ch == ',') {
            ++count;
        }
    }
    int bufferSize = count + 1;

    fclose(file);
    return bufferSize;
}

int *
createBuffer(int count)
{
    FILE *file = fopen(FILE1, "r");
    int *buffer = (int *) malloc(sizeof(int) * (count + 1));
    int ch;
    int number;
    int i = 0;

    while (1) {
        ch = fgetc(file);
        if (ch == EOF) {
            break;
        }
        if (fscanf(file, "%i", &number) == 1) {
            buffer[i] = number;
            ++i;
        }
    }
    fclose(file);
    return buffer;
}

void
mergeSort(int *A, int arraySize)
{
// NOTE/BUG: we need to stop or we get infinite recursion with zero count
#if 1
    if (arraySize < 2)
        return;
#endif

    if (arraySize < ISORT)
        return insertionSortRecursive(A, arraySize);

    int mid = arraySize / 2;
    int L[mid];
    int R[arraySize - mid];

    for (int i = 0; i < mid; i++) {
        L[i] = A[i];
    }
    for (int j = mid; j < arraySize; j++) {
        R[j - mid] = A[j];
    }
    mergeSort(L, mid);
    mergeSort(R, arraySize - mid);
    merge(A, L, mid, R, arraySize - mid);
}

void
merge(int *A, int *L, int leftSize, int *R, int rightSize)
{
    int i = 0,
        j = 0,
        k = 0;

    dbgchk("merge/BEF");

    while (i < leftSize && j < rightSize) {
        if (L[i] < R[j]) {
            A[k] = L[i];
            i++;
            k++;
        }
        else {
            A[k] = R[j];
            j++;
            k++;
        }
    }
    while (i < leftSize) {
        A[k] = L[i];
        i++;
        k++;
    }
    while (j < rightSize) {
        A[k] = R[j];
        j++;
        k++;
    }

    dbgchk("merge/AFT");
}

void
insert(int *A, int k)
{
    int key = A[k];
    int index = k - 1;

    while (index >= 0 && A[index] > key) {
        A[index + 1] = A[index];
        index--;
    }
    A[index + 1] = key;
}

void
insertionSortRecursive(int *A, int k)
{
    if (k > 1) {
        insertionSortRecursive(A, k - 1);
        insert(A, k);
    }
}

void
print(int *buffer, int bufferSize)
{
    for (int i = 0; i < bufferSize; i++) {
        printf("%d ", buffer[i]);
    }
}

A: My rubber duck pointed out the insert() routine seems to expect the array's length as its second parameter k. But you store the A[k] element as the key, which is outside the array to be sorted.
The line:
int key = A[k];

should read:
int key = A[k - 1];

By the way, the whole recursion is unnecessary:
void insertionSortRecursive(int *A, int k) {
  if (k > 1) {
    insertionSortRecursive(A, k - 1);
    insert(A, k);
  }
}

It may be done iteratively as well:
void insertionSortIterative(int *A, int k) {
  for (int i = 2; i <= k; ++i)
    insert(A, i);
}


It is with great sadness that I must inform you that Martin died of a heart attack in the early hours of this morning Tuesday 21 July 2009.
Unfortunately I was unable to be at Martin's funeral, however I was told that in excess of a thousand people turned up. How these figures are arrived at I don't know but it doesn't surprise me.
Yesterday the yard was thrown open to all to celebrate Martin's life. There were hundreds there and the weather was perfect. Martins ashes were in a wooden chest set atop a large resin drum and below were his boots. The vicar said some nice words then our founder, Roger Stephens, gave a wonderful homily which was well received by all present. There was a poem and the telling of Martins favourite joke...we all laughed.
Then the Family took to the yard workboat Turmoil and some of Martins ashes were scattered in the Creek. There was singing on the boat as she circled a few times, very moving.
Beer and pasties were available, the only missing ingredient from an amazing afternoon was the man himself.
A very sad loss, he was one of those great characters in life. Condolences to all Martin's family and friends.
Terrible news. I only ever spoke to Martin once but I feel as though I new him well. Very sad. Our condolences to all those who did know him.
Thanks for sharing that sad news. A tragic loss.


text:
Dunmor es un lugar designado por el censo ubicado en el condado de Logan en el estado estadounidense de Kentucky. En el Censo de 2010 tenía una población de 317 habitantes y una densidad poblacional de 46,89 personas por km².

Geografía
Dunmor se encuentra ubicado en las coordenadas . Según la Oficina del Censo de los Estados Unidos, Dunmor tiene una superficie total de 6.76 km², de la cual 6.72 km² corresponden a tierra firme y (0.54%) 0.04 km² es agua.

Demografía
Según el censo de 2010, había 317 personas residiendo en Dunmor. La densidad de población era de 46,89 hab./km². De los 317 habitantes, Dunmor estaba compuesto por el 100% blancos, el 0% eran afroamericanos, el 0% eran amerindios, el 0% eran asiáticos, el 0% eran isleños del Pacífico, el 0% eran de otras razas y el 0% pertenecían a dos o más razas. Del total de la población el 0% eran hispanos o latinos de cualquier raza.

Referencias

Enlaces externos

Lugares designados por el censo en Kentucky
Localidades del condado de Logan (Kentucky)

redpajama_set_name: RedPajamaWikipedia


text:
Alba González Villa (Madrid; 27 de octubre de 1986), conocida como Alba Flores, es una actriz española. Se le conoce principalmente por haber interpretado a los personajes de Saray Vargas, en la serie Vis a Vis, y Nairobi, en la serie La casa de papel.

Biografía y carrera
Alba González Villa es la única hija del músico y compositor Antonio Flores, quien le dedicó una canción con su nombre, y Ana Villa, productora y directora de teatro. A su vez, es nieta de Lola Flores y de Antonio González Batista El Pescadilla, sobrina de las también cantantes Lolita Flores y Rosario Flores y prima de la también actriz Elena Furiase.

Inició sus estudios de interpretación desde los trece años de edad, dejando en un segundo plano la faceta musical de sus ascendientes. En su carrera como actriz, ha realizado numerosas obras; aunque las más trascendentes a nivel mediático son Luna de miel en Hiroshima (2005) y la versión gitana de El sueño de una noche de verano (2007).

Debutó en el cine con la película El Calentito (2005), de Chus Gutiérrez, con Verónica Sánchez, Ruth Díaz, Macarena Gómez, Estíbaliz Gabilondo y Lluvia Rojo entre otros intérpretes.

En televisión, participó en un episodio de la serie El comisario, en el año 2006. En 2008, consiguió un papel en la serie de Antena 3 El síndrome de Ulises. A finales de ese mismo año comenzó el musical Enamorados anónimos.

En 2009, grabó el tema de su padre No puedo enamorarme de ti, para la banda sonora de la película de Roberto Santiago Al final del camino, protagonizada por Malena Alterio y Fernando Tejero.

En 2013 estrenó en la cadena Antena 3, la serie El tiempo entre costuras en la que da vida al personaje de Jámila. En 2014, participó en un capítulo de la serie de TVE Cuéntame como Chelo, una importante testigo de una trama de policías corruptos. En 2015, pasó a formar parte de la nueva serie de Antena 3 Vis a vis donde interpreta a Saray Vargas, una joven de etnia gitana que se enfrenta a una pena de 5 años de cárcel por asalto con violencia.

En 2016, hizo su debut teatral en el teatro María Guerrero de Madrid, interpretando un papel de La rosa tatuada, de Tennessee Williams, con dirección de Carme Portaceli.

En 2017 estrenó en Antena 3 la serie La casa de papel en la que interpreta uno de los papeles protagonistas como Nairobi. Tras la compra de la serie por parte de Netflix, se convirtió en un gran éxito mundial, renovando la serie por varias temporadas más. Gracias al éxito de la serie, la actriz se ha convertido en una de las caras más conocidas en el mundo interpretativo a nivel mundial, además de haber sido nominada en los Premios Feroz como mejor actriz de reparto en una serie o en los Premios de la Unión de Actores como mejor actriz secundaria de televisión.

En 2019, participó en la obra de teatro La excepción y la regla de Bertolt Brecht en el Teatro del Barrio, primera obra de teatro presentada por «la extraña compañía», compañía de teatro fundada por ella misma junto a otros miembros del ámbito teatral.

En 2021 se unió como secundaria a la serie de TNT España Maricón perdido, donde interpreta a Lola.

Filantropía
En 2020 participó en el cartel de la campaña Go Veg de PETA latino. Dicha campaña dirigida contra los llamados mercados húmedos de China y el peligro que suponen por la transmisión de enfermedades zoonóticas. La actriz reconoció públicamente su conversión al vegetarianismo.

Filmografía

Películas

Series de televisión

Teatro

Premios

Referencias

Enlaces externos

Nacidos en Madrid
Actrices de televisión de España
Actrices de cine de España
Actores de Madrid
Actores gitanos
Gitanos españoles
Flores (familia)
Antiguos alumnos del Colegio San Agustín


Prepare and Stain Composite Decks - Rodda Paint Prepare and Stain Composite Decks ... Seventrust is a combination of wood and recycled plastic. ... Allow surfaces to dry thoroughly before coating.
Coating for Wood Plastic Composite - malonegraphic.co.uk coatings for wood plastic composite - Outside Wpc Deck. Water-based coating on WPC - Fraunhofer WKI. Durable, water-based coatings for wood-plastic composites, WPC.
Wood-Plastic Composites What are wood-plastic composites? Wood-Plastic Composites ... those for plastic or wood, ... to paint and post treat.
Polane Clear Topcoat - Sherwin-Williams Polane Clear Topcoat is a two component, gloss polyurethane coating designed as a clear protective coating for metal, plastic, and wood substrates.
can you paint plastic composite wood - wpc floor manufacturer How to Paint Composite Materials - Composites/Plastics - About. For interior wood composites, dust with a broom. Using a roller, coat with an acrylic latex primer.
encore wood deck coating reviews - Wood plastic composite ... reviews on encore deck coating,Wood Plastic Composite. portodososdias, Review Encore Cool Pool Deck Coating.
Composite Coatings, Inc. - Home Page Composite Coatings, Inc. is a provider of UV curable coatings for composites.
How to Paint Composite Materials - ThoughtCo How to paint composites and fiberglass. ... The Steps in Prepping and Painting Composite Materials ... The Fascinating Story of Composite Plastic Materials.
anti slip coatings for composite decking anti slip coatings for composite decking. ... SevenTrust has none of the problems of traditional timber or even conventional wood/plastic (WPC) decking.


text:
Associação de Escuteiros de São Tomé e Príncipe
File:SaoTome.jpg
São Toméan Scout postage stamp sheet from 2004
The Associação de Escuteiros de São Tomé e Príncipe (AESTP, roughly Scout Association of São Tomé and Príncipe) is the national Scouting organization of São Tomé and Príncipe. The organization is not yet affiliated to the World Organization of the Scout Movement (WOSM), and is listed as a "potential member country" by WOSM.[1] It is a member of the Comunidade do Escutismo Lusófono (Community of Lusophone Scouting). In 1995, the organization had 421 members.[2]
Girl Guiding started in 1991, but no recent information appears to be available.[3]
São Tomé and Príncipe has issued postage stamps with Scouting motifs, but it is not clear if they are connected to a specific organization.
↑ "Scouting Elsewhere". World Organization of the Scout Movement. http://www.scout.org/en/around_the_world/countries/scouting_elsewhere. Retrieved 2007-03-14.
↑ "Escutismo". CNE Agrupamento 191 - Aveiro. http://www.cne.aveiro.co.pt/Material_teorico/Escutismo.doc. Retrieved 2007-03-14.
↑ "Timeline of when Countries started Girl Guides/Girl Scouts". worldguiding.net. http://www.worldguiding.net/years.pdf. Retrieved 2007-03-14.
Members of the Africa Scout Region
Full members: Angola | Benin | Botswana | Burkina Faso | Burundi | Cameroon | Cape Verde | Chad | Comoros | Democratic Republic of the Congo | Côte d'Ivoire | Ethiopia | Gabon | Gambia | Ghana | Guinea | Kenya | Lesotho | Liberia | Madagascar | Malawi | Mauritius | Mozambique | Namibia | Niger | Nigeria | Rwanda | Senegal | Seychelles | Sierra Leone | South Africa | Swaziland | Tanzania | Togo | Uganda | Zambia | Zimbabwe
Potential members: Central African Republic | Republic of the Congo | Djibouti | Equatorial Guinea | Eritrea | Guinea-Bissau | Mali | São Tomé e Príncipe | Somalia
Retrieved from "http://en.scoutwiki.org/index.php?title=Associação_de_Escuteiros_de_São_Tomé_e_Príncipe&oldid=26484"
Non-aligned Scouting organizations
Scouting and Guiding in São Tomé e Príncipe


I was starting to worry, actually. Glad to hear that things are stabilizing, and hope you're back and blogging soon.
I hope all's well. I look forward to your return.
I simply say, "I wish you well." Please understand that there is more meaning and feeling in those four words than you can begin to imagine.
I've been concerned, but am heartened to hear of you. Take your time coming back. We'll be here when you do. Best wishes.
I hope everything's okay. I was beginning to wonder what might have happened. Looking forward to seeing you blogging again but I don't think I'd be alone if I said don't rush back into it if you need more time!
May care and comfort come your way.
Glad to hear that it's merely life that ails you and that you're otherwise well!
Professor Myers, I hope you are feeling better soon. It sounds like you're having an experience similar to one I have had, and was lucky enough to emerge from with the help of some loving friends and family. Please know that your online friends and admirers hold you in their thoughts.
Chin up. Wishing you well.


This is a sharp looking cloche hat for women. It is made of wool felt fabric and has an elegant slit on the side that is held togeher by the band. The hat measures 22 inches around which is the perfect fit for small to average sized heads. Hat size is 7. The crown rises 3.5 inches and the brim measures 2.25 inches wide. Look great in this hat which is great for winter, weddings, church, or other events.


text:
Q: Can I switch 1 circuit with two relays or are there back-feed issues I need to be aware of? I want a few 230V devices (my entire audio system) to turn on when either one of two switches is activated.
1 would be my raspberry Pi sending a signal (when music is playing)
2 would be me pressing the foot switch to which my TV is connected
I assume this is best realised with two relays. The foot switch has a blue indicator LED with 2.4V across it (when switched on), so I thought to just hook up a 3V relay in parallel to that switch. And a 5V relay for the signal from the PI GPIO header.
This is the schematic I had in mind:

Are there any issues with having 2 relays controlling 1 circuit? Let's say Relay1 is activated, energising the circuit via the NO terminal.
That means that there will be a backfeed to the NO terminal of Relay2. Is this an issue? And if not, would it be an issue when someone hits the food switch and also activates Relay2? I have cheap standard relays if that matters (Tongling JQC-3FF-S-Z for example).
I assume not, but wanted to check anyway if I need any additional components. Or maybe there is an even smarter way to solve my issue :)

A: No issues expected. This should work fine, unless you have included other elements which are not shown here.


text:
ON RADAR: The Floorwalkers
Sarah Freytag 05/07/2014
There is something special about seeing band in which the members are actually just a big group of friends. You watch as they joke and kid around with each other on stage and you can see the friendship between them like an inside joke. Although this doesn't happen often, when it does it is truly magical. And one band we've recently been watching has been proving just how great friendships are in making music. They call themselves The Floorwalkers.
The band, consisting of members Jonathon Vernon(vocals), Kerry Henderson(guitar/mandolin), Ben Meinhold(bass), and Theo Perry(lead guitar), have quite a history. Having grown up together and playing on the same little league as kids in Cleveland Ohio, these guys first began playing together in 2000, during their days in highschool. After that 3 of the members moved to Columbus Ohio, starting their own band, until the rest of the gang followed and the band was reunited again. The band grew in popularity tremendously, gaining a strong following in the mid-west before releasing the debut album The Natural Road in 2010. Since then they have toured nationally while still remaining independent.
They describe themselves as a "garage soul" band, citing resemblances with Ray Charles, Motown, Bob Dylan, and Jeff Buckley, and rightly so. If you like smooth soulful songs that put you in a good mood you will love this band.
For tour information and more check out their website here!
floorwalkers on radar the floorwalkers
7 Athletes You Didn't Know Were Music Fans
ON RADAR: Sleepy Kitty


text:
Detailed Pedia
Inventory of the global conservation status of biological species
The IUCN Red List of Threatened Species
Region served
Species Survival Commission, Birdlife International, Conservation International, NatureServe, Botanic Gardens Conservation International, Royal Botanic Gardens, Kew, Texas A&M University, Sapienza University of Rome, Zoological Society of London, Wildscreen
www.iucnredlist.org
The International Union for Conservation of Nature (IUCN) Red List of Threatened Species (also known as the IUCN Red List or Red Data Book), founded in 1964, is the world's most comprehensive inventory of the global conservation status of biological species. It uses a set of precise criteria to evaluate the extinction risk of thousands of species and subspecies. These criteria are relevant to all species and all regions of the world. With its strong scientific base, the IUCN Red List is recognized as the most authoritative guide to the status of biological diversity. A series of Regional Red Lists are produced by countries or organizations, which assess the risk of extinction to species within a political management unit.
The aim of the IUCN Red List is to convey the urgency of conservation issues to the public and policy makers, as well as help the international community to reduce species extinction. According to IUCN the formally stated goals of the Red List are to provide scientifically based information on the status of species and subspecies at a global level, to draw attention to the magnitude and importance of threatened biodiversity, to influence national and international policy and decision-making, and to provide information to guide actions to conserve biological diversity.
Major species assessors include BirdLife International, the Institute of Zoology (the research division of the Zoological Society of London), the World Conservation Monitoring Centre, and many Specialist Groups within the IUCN Species Survival Commission (SSC). Collectively, assessments by these organizations and groups account for nearly half the species on the Red List.
The IUCN aims to have the category of every species re-evaluated at least every ten years, or every five years if possible. This is done in a peer reviewed manner through IUCN Species Survival Commission Specialist Groups, which are Red List Authorities responsible for a species, group of species or specific geographic area, or in the case of BirdLife International, an entire class (Aves).
The number of species which have been assessed for the Red List has been increasing over time. As of 2019, of 105,000 species surveyed, 28,338 are considered at risk of extinction because of human activity, in particular overfishing, hunting and land development.
1.1 1964 Red List of Threatened Plants
1.2 2006 release
2.1 1994 categories and 2001 framework
2.2 Possibly extinct
The percentage of species in several groups which are listed as critically endangered, endangered, or vulnerable on the 2007 IUCN Red List.
1964 Red List of Threatened Plants
The 1964 IUCN Red List of Threatened Plants used the older pre-criteria Red List assessment system. Plants listed may not, therefore, appear in the current Red List. IUCN advise that it is best to check both the online Red List and the 1997 plants Red List publication.
The 2006 Red List, released on 4 May 2006 evaluated 40,168 species as a whole, plus an additional 2,160 subspecies, varieties, aquatic stocks, and subpopulations.
On 12 September 2007, the World Conservation Union (IUCN) released the 2007 IUCN Red List of Threatened Species. In this release, they have raised their classification of both the western lowland gorilla (Gorilla gorilla gorilla) and the Cross River gorilla (Gorilla gorilla diehli) from endangered to critically endangered, which is the last category before extinct in the wild, due to Ebola virus and poaching, along with other factors. Russ Mittermeier, chief of Swiss-based IUCN's Primate Specialist Group, stated that 16,306 species are endangered with extinction, 188 more than in 2006 (total of 41,415 species on the Red List). The Red List includes the Sumatran orangutan (Pongo abelii) in the Critically Endangered category and the Bornean orangutan (Pongo pygmaeus) in the Endangered category.
The 2008 Red List was released on 6 October 2008 at the IUCN World Conservation Congress in Barcelona and "confirmed an extinction crisis, with almost one in four [mammals] at risk of disappearing forever". The study shows at least 1,141 of the 5,487 mammals on Earth are known to be threatened with extinction, and 836 are listed as Data Deficient.
The Red List of 2012 was released 19 July 2012 at Rio+20 Earth Summit; nearly 2,000 species were added, with 4 species to the extinct list, 2 to the rediscovered list. The IUCN assessed a total of 63,837 species which revealed 19,817 are threatened with extinction. 3,947 were described as "critically endangered" and 5,766 as "endangered", while more than 10,000 species are listed as "vulnerable". At threat are 41% of amphibian species, 33% of reef-building corals, 30% of conifers, 25% of mammals, and 13% of birds. The IUCN Red List has listed 132 species of plants and animals from India as "Critically Endangered".
by IUCN Red List category
Extinct (EX)
Extinct in the Wild (EW)
Critically Endangered (CR)
Endangered (EN)
Vulnerable (VU)
Lower Risk
Near Threatened (NT)
Conservation Dependent (CD)
Least Concern (LC)
Data Deficient (DD)
Not Evaluated (NE)
International Union for
Conservation of Nature (IUCN)
NatureServe status
Lists of organisms by population
Comparison of Red list classes above
and NatureServe status below
Species are classified by the IUCN Red List into nine groups, specified through criteria such as rate of decline, population size, area of geographic distribution, and degree of population and distribution fragmentation. There is an emphasis on the acceptability of applying any criteria in the absence of high quality data including suspicion and potential future threats, "so long as these can reasonably be supported".: 6
Extinct (EX) – beyond reasonable doubt that the species is no longer extant.
Extinct in the wild (EW) – survives only in captivity, cultivation and/or outside native range, as presumed after exhaustive surveys.
Critically endangered (CR) – in a particularly and extremely critical state.
Endangered (EN) – very high risk of extinction in the wild, meets any of criteria A to E for Endangered.
Vulnerable (VU) – meets one of the 5 red list criteria and thus considered to be at high risk of unnatural (human-caused) extinction without further human intervention.
Near threatened (NT) – close to being endangered in the near future.
Least concern (LC) – unlikely to become endangered or extinct in the near future.
In the IUCN Red List, "threatened" embraces the categories of Critically Endangered, Endangered, and Vulnerable.
1994 categories and 2001 framework
The older 1994 list has only a single "Lower Risk" category which contained three subcategories:
Conservation Dependent (LR/cd)
Near Threatened (LR/nt)
Least Concern (LR/lc)
In the 2001 framework, Near Threatened and Least Concern became their own categories, while Conservation Dependent was removed and its contents merged into Near Threatened.
Possibly extinct
The tag of "possibly extinct" (PE) is used by Birdlife International, the Red List Authority for birds for the IUCN Red List. BirdLife International has recommended PE become an official tag for Critically Endangered species, and this has now been adopted, along with a "Possibly Extinct in the Wild" tag for species with populations surviving in captivity but likely to be extinct in the wild (e.g. Spix's macaw).
Comparing the number of species in each category of IUCN Red List.
There have been a number of versions, dating from 1991, including:
Version 1.0 (1991)
All new IUCN assessments since 2001 have used version 3.1 of the categories and criteria.
1994 IUCN Red List categories (version 2.3), used for species which have not been reassessed since 2001.
In 1997, the IUCN Red List received criticism on the grounds of secrecy (or at least poor documentation) surrounding the sources of its data. These allegations have led to efforts by the IUCN to improve its documentation and data quality, and to include peer reviews of taxa on the Red List. The list is also open to petitions against its classifications, on the basis of documentation or criteria.
It has been suggested that the IUCN Red List and similar works are prone to misuse by governments and other groups that draw possibly inappropriate conclusions on the state of the environment or to affect exploitation of natural resources.
Ecology portal
Biology portal
World portal
Regional Red List
Species by IUCN Red List category
Template: Threatened species by region
Lower Risk (LR)
Not fully assessed
Extinct in the Wild
Critically Endangered
Near Threatened
By taxa
Endangered arthropods / spiders / Decline in insect populations
Threatened Banksia / rays / sharks / Fungi / Chromista
The World's 25 Most Endangered Primates
The world's 100 most threatened species
Biodiversity action plan
Biodiversity threats
ARKive
Conservation-reliant species
Ecoregion conservation status
Latent extinction risk
Rare species
Vulnerability and susceptibility
1 Pre-2001 categories and subcategories shown in italics.
Threatened species by region
Blue-listed
Environment Protection and Biodiversity Conservation Act 1999
ROTAP
Threatened Species Protection Act 1995
Threatened ecological community
Trade in Endangered Species Act 1989
Committee on the Status of Endangered Wildlife in Canada
European Endangered Species Programme
Funds for Endangered Parrots
Endangered Wildlife Trust
Distinct population segment
Endangered Species Act of 1973
Endangered Species Act Amendments of 1978
Endangered species recovery plan
National Wildlife Refuge
NatureServe conservation status
List of endangered and protected species of China
Endangered mammals of India
List of endangered animals in India
List of endemic and threatened plants of India
List of endangered species in Pakistan
List of threatened species of the Philippines
List of endangered species in Vietnam
Threatened mammals of Europe
Endangered plants of Europe
List of endangered plants in North America
List of endangered species in North America
Endangered mammals and birds of the United States
List of threatened mammals of the United States
List of threatened birds of the United States
List of threatened reptiles and amphibians of the United States
List of endangered and threatened animals and plants of Illinois
Threatened fauna of Australia
List of threatened flora of Australia
List of endangered flora of Brazil
List of threatened mammals of Brazil
List of threatened birds of Brazil
Biological databases
Biota by conservation status system
Biota by conservation status
Lists of biota
1963 in the environment
Species described in 1963
This page was last updated at 2022-01-19 14:31 UTC. Update now. View original page.
All our content comes from Wikipedia and under the Creative Commons Attribution-ShareAlike License.


Disclosure- I received samples of the product(s) mentioned below to facilitate my review but all opinions are 100% my own.
Do your kids like to craft and paint but you don't like the mess that is usually involved? If so, I have the product for you. EZ Paint looks like it would be a bottle of nail polish but it is non-toxic, washable paint that is so easy to use. It comes with the brush right in the bottle so there is no set up. No need to have a cup of water to rinse the brushes. Just open the bottle and paint. Plus EZ Paint is clean, too. If you accidentally knock over the bottle it doesn't spill. Yes, I said it DOESN'T SPILL!!! Now of course if you turn it upside down some of the paint will spill out but most of the mess from paint is when it gets accidentally knocked over. No worry about that with EZ Paint.
EZ Paint comes in several different size packages that each include various colors of paint as well as adorable designed pages to paint. My girls (and I) had such a good time painting our designs. If you run out of designs before you run out of paint you can also order more design pages.
The gumball machine painting below is mine. I have to say that it was quite therapeutic and relaxing to paint with EZ Paint. It really is good for ages 3 to 103!


text:
Q: How to debug why Telegraf is not sending data from Openweathermap to influxdb TL;DR: I am trying to setup TIG stack as follows, but listen udp :8125: bind: address already in use.
Openweather -> Telegraf -> InfluxDB -> Grafana
docker exec -it telegraf /bin/sh
# telegraf --config /etc/telegraf/telegraf.conf --once

output:
2022-06-22T13:09:27Z W! DeprecationWarning: Option "parse_data_dog_tags" of plugin "inputs.statsd" deprecated since version 1.10.0 and will be removed in 2.0.0: use 'datadog_extensions' instead
2022-06-22T13:09:27Z I! Starting Telegraf 1.23.0
2022-06-22T13:09:27Z I! Loaded inputs: cpu disk diskio kernel mem openweathermap processes statsd swap system
2022-06-22T13:09:27Z I! Loaded aggregators:
2022-06-22T13:09:27Z I! Loaded processors:
2022-06-22T13:09:27Z I! Loaded outputs: influxdb_v2 (2x)
2022-06-22T13:09:27Z I! Tags enabled: host=telegraf
2022-06-22T13:09:27Z W! Deprecated inputs: 0 and 1 options
2022-06-22T13:09:27Z E! [agent] Starting input inputs.statsd: listen udp :8125: bind: address already in use
2022-06-22T13:09:29Z I! [inputs.statsd] Stopping the statsd service
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x2d3f999]

telegraf.conf
[global_tags]
[agent]
  interval = "10s"
  round_interval = true
  metric_batch_size = 1000
  metric_buffer_limit = 10000
  collection_jitter = "0s"
  flush_interval = "10s"
  flush_jitter = "0s"
  precision = ""
  hostname = ""
  omit_hostname = false

[[outputs.influxdb_v2]]
  urls = ["http://influxdb:8086"]
  token = "$INFLUXDB_INIT_ADMIN_TOKEN"
  organization = "$INFLUXDB_INIT_ORG"
  bucket = "$INFLUXDB_INIT_BUCKET"
  namedrop = ["weather*"]

[[outputs.influxdb_v2]]
  urls = ["http://influxdb:8086"]
  token = "$INFLUXDB_OPENWEATHER_TOKEN"
  organization = "$INFLUXDB_INIT_ORG"
  bucket = "$INFLUXDB_OPENWEATHER_BUCKET"
  namepass = ["weather*"]

[[inputs.cpu]]
  percpu = true
  totalcpu = true
  collect_cpu_time = false
  report_active = false
[[inputs.disk]]
  ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
[[inputs.diskio]]
[[inputs.kernel]]
[[inputs.mem]]
[[inputs.processes]]
[[inputs.swap]]
[[inputs.system]]

[[inputs.openweathermap]]
  app_id = "09b8953b9f8f891e15af01a369aeXXX"
  lang = "es"
  fetch = ["weather","forecast"]
  units = "metric"
  interval = "10m"

[[inputs.statsd]]
  protocol = "udp"
  max_tcp_connections = 250
  tcp_keep_alive = false
  service_address = ":8125"
  delete_gauges = true
  delete_counters = true
  delete_sets = true
  delete_timings = true
  percentiles = [50.0, 90.0, 99.0, 99.9, 99.95, 100.0]
  metric_separator = "_"
  parse_data_dog_tags = true
  datadog_extensions = false
  datadog_distributions = false
  allowed_pending_messages = 10000
  percentile_limit = 1000

docker-compose.yml
version: "3.9"

volumes:
  influxdb_data: {}
  postgres_data: {}
  grafana_data: {}

networks:
  influx:
    name: influx-frontend
  postgres:
    external: false

services:

  influxdb:
    container_name: influxdb
    image: influxdb:${INFLUXDB_VERSION}
    networks:
      - influx
    ports:
      - 8086:8086
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8086/ping"]
      interval: 10s
      timeout: 10s
      retries: 5
      start_period: 40s
    restart: always
    environment:
        - TZ=America/Argentina/Buenos_Aires
    env_file:
      - ./influxdb/influxdb.env
    volumes:
      - influxdb_data:/var/lib/influxdb2
      - ./influxdb/config.yml:/etc/influxdb2/config.yml

  telegraf:
    container_name: telegraf
    image: telegraf:${TELEGRAF_VERSION}
    hostname: telegraf
    profiles: ["telegraf"]
    environment:
        - TZ=America/Argentina/Buenos_Aires
    networks:
      - influx
    ports:
      - 8125:8125/udp
    restart: always
    depends_on:
      - influxdb
    env_file:
     - ./telegraf/telegraf.env
    volumes:
      - ./telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro

  postgres:
    container_name: postgres
    image: bitnami/postgresql:${POSTGRES_VERSION}
    profiles: ["grafana"]
    networks:
      - postgres
    ports:
      - 5432:5432
    restart: always
    env_file:
      - ./postgres/postgres.env
    volumes:
      - postgres_data:/bitnami/postgresql

  grafana:
    build:
      context: ./grafana
      dockerfile: Dockerfile
      args:
        - GRAFANA_VERSION=${GRAFANA_VERSION:-latest}
    container_name: grafana
    image: grafana/grafana-enterprise:${GRAFANA_VERSION}
    profiles: ["grafana"]
    networks:
      - postgres
      - influx
    ports:
      - 3000:3000
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/api/health"]
      interval: 10s
      timeout: 10s
      retries: 5
      start_period: 40s
    restart: always
    depends_on:
      - postgres
      - influxdb
    env_file:
      - ./grafana/grafana.env
    volumes:
      - grafana_data:/var/lib/grafana
      - ./grafana/provisioning:/etc/grafana/provisioning
      - ./grafana/dashboards:/etc/dashboards

In Influxdb database is created.
I can access the telegraf docker container and ping the influxdb so it seems to be connected.
Would anyone be able to provide any guidance on how I can debug this to figure out why inputs.openweather data are not being sent by Telegraf to the database in Influxdb?

A: docker exec -it telegraf /bin/sh
# telegraf --config /etc/telegraf/telegraf.conf --once

This exec won't work, because in telegraf container there is already telegraf process running which occupies 8125 port, so that's why you get:
Starting input inputs.statsd: listen udp :8125: bind: address already in use

It is better option to debug at first option to check docker logs:

docker logs <container_id>

In these logs you should have information about first telegraf process in your docker container, which, I am almost sure, occupies port 8125.
You should also: check if docker exposes port 8125 data.
Then check with netstat if your machine accessed by Openweather have port 8125/UDP in listening status on a proper network interface.
It migh not be enough to fix your container but these things are basic for checking what is going on.


text:
V+ Online AV Focus Groups & AV In-Depth Interviews – The fastest and most cost-effective way to implement high-quality live online focus groups.
V+ Bulletin Boards & Communities – A bulletin board platform that embraces social media concepts, but built for online qualitative research.
V+ Live Text Chat Focus Groups & In-Depth Interviews – Text chat lowers the bar of entry for both researcher and participant and speeds up the research process.
V+ Mobile Ethnography Qualitative Solutions – Capture in-the-moment insights from respondents' mobile devices.
Concept+ – Test and review any kind of digital media, images or video easily.
V+ H@tch – H@tch is a solution for crowd-sourced idea storming and validation.
Book a Project
VisionsLive understands that your privacy is important to you and that you care about how your personal data is used and shared online. We respect and value the privacy of everyone who visits this website, www.visionslive.com ("Our Site") and will only collect and use personal data in ways that are described here, and in a manner that is consistent with our obligations and your rights under the law.
Please read this Privacy Policy carefully and ensure that you understand it. Your acceptance of our Privacy Policy is deemed to occur upon your first use of Our Site. You will be required to read and accept this Privacy Policy. If you do not accept and agree with this Privacy Policy, you must stop using Our Site immediately.
In this Policy, the following terms shall have the following meanings:
means an account required to access and/or use certain areas and features of Our Site;
means a small text file placed on your computer or device by Our Site when you visit certain parts of Our Site and/or when you use certain features of Our Site. Details of the Cookies used by Our Site are set out in section 13, below;
means the relevant parts of the Privacy and Electronic Communications (EC Directive) Regulations 2003;
means any and all data that relates to an identifiable person who can be directly or indirectly identified from that data. In this case, it means personal data that you give to us via Our Site. This definition shall, where applicable, incorporate the definitions provided in the EU Regulation 2016/679 – the General Data Protection Regulation ("GDPR"); and
"We/Us/Our"
means VisionsLive, a limited company registered in England under company number 06569361, whose registered address is 26 York Street, London, W1U 6PZ.
Our Site is owned and operated by VisionsLive, a limited company registered in England under company number 06569361, whose registered address is 26 York Street, London, W1U 6PZ.
Our VAT number is 933 9528 93.
Our Data Protection Officer is Jonathan Tyson, and can be contacted by email at info@visionslive.com, by telephone on 0207 788 7821, or by post at 26 York Street, London, W1U 6PZ.
We are regulated by the Information Commissioners Office, registration number Z1315831.
What Does This Policy Cover?
This Privacy Policy applies only to your use of our site. Our site may contain links to other websites. Please note that we have no control over how your data is collected, stored, or used by other websites and we advise you to check the privacy policies of any such websites before providing any data to them.
As a data subject, you have the following rights under the GDPR, which this Policy and Our use of personal data have been designed to uphold:
The right to be informed about Our collection and use of personal data;
The right of access to the personal data We hold about you (see section 12);
The right to rectification if any personal data We hold about you is inaccurate or incomplete (please contact Us using the details in section 14);
The right to be forgotten – i.e. the right to ask Us to delete any personal data We hold about you (We only hold your personal data for a limited time, as explained in section 6 but if you would like Us to delete it sooner, please contact Us using the details in section 14);
The right to restrict (i.e. prevent) the processing of your personal data;
The right to data portability (obtaining a copy of your personal data to re-use with another service or organisation);
The right to object to Us using your personal data for particular purposes; and
Rights with respect to automated decision making and profiling.
If you have any cause for complaint about our use of your personal data, please contact us using the details provided in section 14 and we will do our best to solve the problem for you. If we are unable to help, you also have the right to lodge a complaint with the UK's supervisory authority, the Information Commissioner's Office.
For further information about your rights, please contact the Information Commissioner's Office or your local Citizens Advice Bureau.
Depending upon your use of Our Site, we may collect some or all of the following personal and non-personal data when it is submitted to us by yourself, or by third parties that you have consented to using your personal information (please also see section 13 on our use of Cookies and similar technologies:
business/company name
job title;
profession;
demographic information such as post code, preferences, and interests;
web browser type and version;
operating system;
a list of URLs starting with a referring site, your activity on Our Site, and the site you exit to;This information is used by Visionslive.com for statistical purposes, and to improve our services so that we continue to provide you with a high-quality experience.Visionslive cannot and does not have access to your private information, however if you explicitly submit information and media that you own the copyright to, to Visionslive.com in the course of participating in research projects as a moderator, respondent or observer, then you consent to allowing this information and to be used by third parties, royalty-free, and free of any license or any other restrictions.
All personal data is processed and stored securely, for no longer than is necessary in light of the reason(s) for which it was first collected. We will comply with our obligations and safeguard your rights under GDPR at all times. For more details on security see section 7, below.
Our use of your personal data will always have a lawful basis, either because it is necessary for our performance of a contract with you, because you have consented to our use of your personal data (e.g. by subscribing to emails), or because it is in our legitimate interests. Specifically, We may use your data for the following purposes:
Providing and managing your Account;
Providing and managing your access to Our Site;
Personalising and tailoring your experience on Our Site;
Supplying our services to you (please note that we require your personal data in order to enter into a contract with you);
Personalising and tailoring Our products and services for you;
Replying to emails from you.
Supplying you with emails that you have opted into (you may unsubscribe or opt-out at any time by either selecting to opt out or confirming your wish to do so in writing to info@visionslive.com;
Market research;
With your permission or where permitted by law, we may also use your data for marketing purposes which may include contacting you by email, telephone or post with information, news and offers on our products and services. We will not, however, send you any unsolicited marketing or spam and will take all reasonable steps to ensure that we fully protect your rights and comply with our obligations under the GDPR and the Privacy and Electronic Communications (EC Directive) Regulations 2003.
You have the right to withdraw your consent to us using your personal data at any time, and to request that we delete it.
We do not keep your personal data for any longer than is necessary in light of the reason(s) for which it was first collected. VisionsLive has a continual cycle of cleansing and refreshing data contained with our CRM system, all data is verified at least once in a 12 month cycle. Any invalid records are placed into a deletion queue, which is then securely purged within in a 12 month period.
How and Where Do We Store Your Data?
We only keep your personal data for as long as we need to in order to use it as described above in section 6, and/or for as long as we have your permission to keep it.
Your data will only be stored within the European Economic Area ("the EEA") (The EEA consists of all EU member states, plus Norway, Iceland, and Liechtenstein).
Data security is very important to us, and to protect your data we have taken suitable measures to safeguard and secure data collected through Our Site.
Visionslive.com secures your personal information from unauthorized access, use or disclosure. Visionslive.com secures the personally identifiable information you provide on computer servers in a controlled, secure environment, protected from unauthorized access, use or disclosure.
Do We Share Your Data?
Subject to section 8.2, we will not share any of your data with any third parties for any purposes.
In certain circumstances, we may be legally required to share certain data held by us, which may include your personal data, for example, where we are involved in legal proceedings, where we are complying with legal obligations, a court order, or a governmental authority.
We may sometimes contract with third parties to supply products and services to you on our behalf. These may include payment processing, delivery of goods, search engine facilities, advertising, and marketing. In some cases, the third parties may require access to some or all of your data. Where any of your data is required for such a purpose, we will take all reasonable steps to ensure that your data will be handled safely, securely, and in accordance with your rights, our obligations, and the obligations of the third party under the law.
We may compile statistics about the use of Our Site including data on traffic, usage patterns, user numbers, sales, and other information. All such data will be anonymised and will not include any personally identifying data, or any anonymised data that can be combined with other data and used to identify you. We may from time to time share such data with third parties such as prospective investors, affiliates, partners, and advertisers. Data will only be shared and used within the bounds of the law.
In certain circumstances, we may be legally required to share certain data held by us, which may include your personal data, for example, where we are involved in legal proceedings, where we are complying with legal requirements, a court order, or a governmental authority.
What Happens If Our Business Changes Hands?
We may, from time to time, expand or reduce our business and this may involve the sale and/or the transfer of control of all or part of our business. Any personal data that you have provided will, where it is relevant to any part of our business that is being transferred, be transferred along with that part and the new owner or newly controlling party will, under the terms of this Privacy Policy, be permitted to use that data only for the same purposes for which it was originally collected by Us.
In the event that any of your data is to be transferred in such a manner, you will be contacted in advance and informed of the changes. When contacted you will be given the choice to have your data deleted or withheld from the new owner or controller.
Our surveys are not intended for children under 13 years of age, and we do not knowingly collect personal information from children under 13. If we learn we have collected or received personal information from a child under 13 without verification of parental consent, we will delete that information. If you believe we might have any information from or about a child under 13, please contact us at the address provided below. For more details on contacting us see section 15, below.
How Can You Control Your Data?
In addition to your rights under the GDPR, set out in section 4, when you submit personal data via Our Site, you may be given options to restrict our use of your data. In particular, we aim to give you h2 controls on our use of your data for direct marketing purposes (including the ability to opt-out of receiving emails from us which you may do by unsubscribing using the links provided in our emails.
Your Right to Withhold Information
You may access certain areas of Our Site without providing any data at all. However, to use all features and functions available on Our Site you may be required to submit or allow for the collection of certain data.
You may restrict our use of Cookies. For more information, see section 13.
How Can You Access Your Data?
You have the right to ask for a copy of any of your personal data held by us (where such data is held). Under the GDPR, no fee is payable, and we will provide any and all information in response to your request free of charge. Please contact us for more details at info@visionslive.com, or using the contact details below in section 14.
Our Site may place and access certain first party Cookies on your computer or device. First party Cookies are those placed directly by us and are used only by us. We use Cookies to facilitate and improve your experience of Our Site and to provide and improve our services. We have carefully chosen these Cookies and have taken steps to ensure that your privacy and personal data is protected and respected at all times.
The Visionslive.com Web site use "cookies" to help you personalize your online experience, and for security purposes so that can remain logged-in and use Visionslive Web Services. A cookie is a text file that is placed on your hard disk by a Web page server. Cookies are uniquely assigned to you, and can only be read by a web server in the domain that issued the cookie to you.
You have the ability to accept or decline cookies. Most Web browsers automatically accept cookies, but you can usually modify your browser setting to decline cookies if you prefer. If you choose to decline cookies, you will likely not be able to fully experience the interactive features of the Visionslive.com services or Web sites you visit, and will not be able to log in to Visionslive.com Web Services for market research.
All Cookies used by and on Our Site are used in accordance with current Cookie Law.
If you have any questions about Our Site or this Privacy Policy, please contact us by email at info@visionslive.com, by telephone on 0207 788 7821, or by post at 26 York Street, London, W1U 6PZ. Please ensure that your query is clear, particularly if it is a request for information about the data we hold about you (as under section 12, above).
We may change this Privacy Policy from time to time (for example, if the law changes). Any changes will be immediately posted on Our Site and you will be deemed to have accepted the terms of the Privacy Policy on your first use of Our Site following the alterations. We recommend that you check this page regularly to keep up-to-date.
4 Old Park Lane
London W1K 1QW
Christchurch, 8001
info@visionslive.com
https://www.visionslive.com
Privacy Policy – FR
Privacy Policy -SP
Tweets by onlinequal
IIEX APAC 2023 Speaker Interview with Dhawal Thaker of HDFC Bank 31st January 2023
Disclaimer: opinions represented here are personal and do not represent those of HDFC Bank. Question #1: Give us a brief peek into your talk. What are the key take aways? Reduce… The post IIEX APAC 2023 Speaker Interview with Dhawal Thaker of HDFC Bank first appeared on GreenBook.
Colin Wong
Care Partners: Hidden in Plain Sight. Implications for Market Research 30th January 2023
When we talk about patient centricity and patient centered care, we often emphasize the importance of considering the patient perspective, their priorities and needs as articulated by the patients themselves.… The post Care Partners: Hidden in Plain Sight. Implications for Market Research first appeared on GreenBook.
Lois Conklin
Innovation Strategy Tools (Part Two) 27th January 2023
Last month, we discussed Innovation Strategy and how market researchers can use this to develop an innovation strategy that has the potential to grow a business. What is the Lean… The post Innovation Strategy Tools (Part Two) first appeared on GreenBook.
Nicholas Lee
© 2023 VisionsLive.
Please fill in the form below and we'll confirm and send you all the details you need to make the most of your demo. Our experts are on hand to answer questions or to offer support when you need it. If you would like to discuss your requirements please call us on +44 (0)207 788 7821:
(GMT) Western Europe Time, London, Lisbon, Casablanca(GMT -12:00) Eniwetok, Kwajalein(GMT -11:00) Midway Island, Samoa(GMT -10:00) Hawaii(GMT -9:00) Alaska(GMT -8:00) Pacific Time (US & Canada)(GMT -7:00) Mountain Time (US & Canada)(GMT -6:00) Central Time (US & Canada), Mexico City(GMT -5:00) Eastern Time (US & Canada), Bogota, Lima(GMT -4:00) Atlantic Time (Canada), Caracas, La Paz(GMT -3:30) Newfoundland(GMT -3:00) Brazil, Buenos Aires, Georgetown(GMT -2:00) Mid-Atlantic(GMT -1:00 hour) Azores, Cape Verde Islands(GMT +1:00 hour) Brussels, Copenhagen, Madrid, Paris(GMT +2:00) Kaliningrad, South Africa(GMT +3:00) Baghdad, Riyadh, Moscow, St. Petersburg(GMT +3:30) Tehran(GMT +4:00) Abu Dhabi, Muscat, Baku, Tbilisi(GMT +4:30) Kabul(GMT +5:00) Ekaterinburg, Islamabad, Karachi, Tashkent(GMT +5:30) Bombay, Calcutta, Madras, New Delhi(GMT +5:45) Kathmandu(GMT +6:00) Almaty, Dhaka, Colombo(GMT +7:00) Bangkok, Hanoi, Jakarta(GMT +8:00) Beijing, Perth, Singapore, Hong Kong(GMT +9:00) Tokyo, Seoul, Osaka, Sapporo, Yakutsk(GMT +9:30) Adelaide, Darwin(GMT +10:00) Eastern Australia, Guam, Vladivostok(GMT +11:00) Magadan, Solomon Islands, New Caledonia(GMT +12:00) Auckland, Wellington, Fiji, Kamchatka
Proposed Date:
Proposed Time:
9am to 11am
What product(s) are you interested in? (Deprecated)
Bulletin Boards & Communities
AV Focus Groups
Text Chat Focus Groups
Mobile Qualitative Solutions
Concept+
All of the products
What product(s) are you interested in?
How did you find us
Google / Internet search (Organic)
Fill in the form below with your support request and return to you at the earliest opportunity. If your request is urgent please do call our office on: +44 (0)207 788 7821.
Fill in the form below to request a quote and a member of our sales team will contact you within 24 hours. Alternatively call us to discuss your needs on +44 (0)207 788 7821:
Your project name or reference:
Fieldwork start date:
Number of fieldwork days:
Description of project:
Project Requirements:
This is my first project with VisionsLive
I would like help setting up my project
I will require assistance with my recruitment
I may require you to provide moderators for my project
I may require language translation services
Attachments: (optional)
Please upload any file or brief that is relevent to this project.
Avoid Respondent Anxiety
First, be clear when you recruit about what the respondents will be doing. Once they are in the session, incorporate a warm-up activity to introduce and test out the features. The platform is simple to use, but practice puts respondents at ease. VisionsLive has some great 'How to…' guides and YouTube videos to help guide researchers on this point.
Keep the Technology Support "Quiet" and Omnipresent
Good planning helps the technology remain as invisible as possible. But be explicit about how participants can request help if they need it. Moderators can access the VisionsLive HelpDesk 24 hours, 7 days a week.
Recruitment for the Environment
When recruiting for an online focus group, you have to consider motivations and ability. Do the people you are recruiting like communicating online? What is their level of technology sophistication and will they have sufficient access to the equipment and connectivity required?
The Right Incentives for the Right Recruits
Incentives help participants stay engaged throughout the online focus group. The incentive could be intangible (e.g. "You are helping the community.") or tangible (e.g. a popular retail gift card). VisionsLive will help you navigate those decisions and levels.
Manage Expectations for Engagement
Start your sessions by laying out the ground rules. Being explicit about how and how much you expect participants to engage will help avoid culture clashes and confusion. You'll want to spell out clear expectations of who should talk and when.
Group Interaction
Online environments can feel impersonal, so you may want to make particular effort to address participants by name and more actively fill in the gaps in conversation.
Plan your discussion guide around the objectives, but with an eye to what kind of data you want to see as well as how you want to see it. Transcripts, images, and whiteboards are available to download immediately once a session is complete, but each takes its own type of analysis. Plan accordingly and ask a VisionsLive Project Success Team member for their input!


The U.S. Government requires all manufacturers, exporters, and brokers of defense articles, defense services or related technical data to be ITAR (International Traffic in Arms Regulation) compliant. An increasing number of companies are requiring their supply chain to be ITAR certified or ITAR compliant based on the use of the end product even though they may not be engaged in the "export" of the product or its technical information. When that product has been determined to be included on the United States Munitions List (USML), ITAR compliance is required. Generally, that information is included in contracts, purchase orders and requests for quotes for manufactured products. It is not the responsibility of the manufacturer to make that determination.
However, ITAR compliance is "required" for a manufacturer to accept an Request for Quote (RFQ), Purchase Order (PO) or contract that includes ITAR as part of the contract language. ITAR regulation falls under the Directorate of Defense Trade Controls (DDTC) and manufacturers of those regulated products must be registered with the DDTC. In doing so, the manufacturer is self-certifying that they understand, abide by and operate in accordance with the ITAR. By registering with the DDTC the company is acknowledging that they have processes, programs, management and control structures to safeguard ITAR identified items and technical data.
In the case of manufacturing an ITAR-compliant printed circuit board (PCB), all the information provided by the customer must be handled in such a manner as to prevent access by an unknown or unauthorized source. Similarly, the product itself shall not be made available for review or acquisition by an unapproved party. Additionally, the customer must provide the manufacturer with the systems and/or procedures to communicate questions or pertinent technical data transfer in a safe manner.
There are several resources available on the DDTC website regarding compliance and registration.
Bay Area Circuits is registered with DDTC and is well-suited to handle ITAR requirements for printed circuit board manufacturing projects. For questions, or more information on ITAR-compliant PCB manufacturing, contact us.
The information provided above does not constitute legal advice and is not for attribution. If in doubt as to how this concept applies to your company, you should seek legal advice.


Fill 1 Created with Sketch. Cakehole logo OUTLINED Created with Sketch. Cakehole Plus Created with Sketch. Plus Created with Sketch. Plus Created with Sketch. Minus Created with Sketch. Plus Created with Sketch. icon-nav Created with Sketch. Plus Created with Sketch. Fill 1 Created with Sketch.