text:
#include <Protocol/SmmVariable.h>
#include <Protocol/SmmFirmwareVolumeBlock.h>
#include <Protocol/SmmFaultTolerantWrite.h>
#include <Library/SmmServicesTableLib.h>

#include <Guid/VariableFormat.h>
#include <Guid/SmmVariableCommon.h>
#include "Variable.h"

extern VARIABLE_INFO_ENTRY                           *gVariableInfo;
EFI_HANDLE                                           mSmmVariableHandle      = NULL;
EFI_HANDLE                                           mVariableHandle         = NULL;
BOOLEAN                                              mAtRuntime              = FALSE;
EFI_GUID                                             mZeroGuid               = {0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}};

EFI_SMM_VARIABLE_PROTOCOL      gSmmVariable = {
  VariableServiceGetVariable,
  VariableServiceGetNextVariableName,
  VariableServiceSetVariable,
  VariableServiceQueryVariableInfo
};

/**
  Return TRUE if ExitBootServices () has been called.

  @retval TRUE If ExitBootServices () has been called.
**/
BOOLEAN
AtRuntime (
  VOID
  )
{
  return mAtRuntime;
}

/**
  Initializes a basic mutual exclusion lock.

  This function initializes a basic mutual exclusion lock to the released state
  and returns the lock.  Each lock provides mutual exclusion access at its task
  priority level.  Since there is no preemption or multiprocessor support in EFI,
  acquiring the lock only consists of raising to the locks TPL.
  If Lock is NULL, then ASSERT().
  If Priority is not a valid TPL value, then ASSERT().

  @param  Lock       A pointer to the lock data structure to initialize.
  @param  Priority   EFI TPL is associated with the lock.

  @return The lock.

**/
EFI_LOCK *
InitializeLock (
  IN OUT EFI_LOCK                         *Lock,
  IN EFI_TPL                              Priority
  )
{
  return Lock;
}

/**
  Acquires lock only at boot time. Simply returns at runtime.

  This is a temperary function that will be removed when
  EfiAcquireLock() in UefiLib can handle the call in UEFI
  Runtimer driver in RT phase.
  It calls EfiAcquireLock() at boot time, and simply returns
  at runtime.

  @param  Lock         A pointer to the lock to acquire.

**/
VOID
AcquireLockOnlyAtBootTime (
  IN EFI_LOCK                             *Lock
  )
{

}

/**
  Releases lock only at boot time. Simply returns at runtime.

  This is a temperary function which will be removed when
  EfiReleaseLock() in UefiLib can handle the call in UEFI
  Runtimer driver in RT phase.
  It calls EfiReleaseLock() at boot time and simply returns
  at runtime.

  @param  Lock         A pointer to the lock to release.

**/
VOID
ReleaseLockOnlyAtBootTime (
  IN EFI_LOCK                             *Lock
  )
{

}

/**
  Retrive the SMM Fault Tolerent Write protocol interface.

  @param[out] FtwProtocol       The interface of SMM Ftw protocol

  @retval EFI_SUCCESS           The SMM FTW protocol instance was found and returned in FtwProtocol.
  @retval EFI_NOT_FOUND         The SMM FTW protocol instance was not found.
  @retval EFI_INVALID_PARAMETER SarProtocol is NULL.

**/
EFI_STATUS
GetFtwProtocol (
  OUT VOID                                **FtwProtocol
  )
{
  EFI_STATUS                              Status;

  //
  // Locate Smm Fault Tolerent Write protocol
  //
  Status = gSmst->SmmLocateProtocol (
                    &gEfiSmmFaultTolerantWriteProtocolGuid,
                    NULL,
                    FtwProtocol
                    );
  return Status;
}

/**
  Retrive the SMM FVB protocol interface by HANDLE.

  @param[in]  FvBlockHandle     The handle of SMM FVB protocol that provides services for
                                reading, writing, and erasing the target block.
  @param[out] FvBlock           The interface of SMM FVB protocol

  @retval EFI_SUCCESS           The interface information for the specified protocol was returned.
  @retval EFI_UNSUPPORTED       The device does not support the SMM FVB protocol.
  @retval EFI_INVALID_PARAMETER FvBlockHandle is not a valid EFI_HANDLE or FvBlock is NULL.

**/
EFI_STATUS
GetFvbByHandle (
  IN  EFI_HANDLE                          FvBlockHandle,
  OUT EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL  **FvBlock
  )
{
  //
  // To get the SMM FVB protocol interface on the handle
  //
  return gSmst->SmmHandleProtocol (
                  FvBlockHandle,
                  &gEfiSmmFirmwareVolumeBlockProtocolGuid,
                  (VOID **) FvBlock
                  );
}

/**
  Function returns an array of handles that support the SMM FVB protocol
  in a buffer allocated from pool.

  @param[out]  NumberHandles    The number of handles returned in Buffer.
  @param[out]  Buffer           A pointer to the buffer to return the requested
                                array of  handles that support SMM FVB protocol.

  @retval EFI_SUCCESS           The array of handles was returned in Buffer, and the number of
                                handles in Buffer was returned in NumberHandles.
  @retval EFI_NOT_FOUND         No SMM FVB handle was found.
  @retval EFI_OUT_OF_RESOURCES  There is not enough pool memory to store the matching results.
  @retval EFI_INVALID_PARAMETER NumberHandles is NULL or Buffer is NULL.

**/
EFI_STATUS
GetFvbCountAndBuffer (
  OUT UINTN                               *NumberHandles,
  OUT EFI_HANDLE                          **Buffer
  )
{
  EFI_STATUS                              Status;
  UINTN                                   BufferSize;

  if ((NumberHandles == NULL) || (Buffer == NULL)) {
    return EFI_INVALID_PARAMETER;
  }

  BufferSize     = 0;
  *NumberHandles = 0;
  *Buffer        = NULL;
  Status = gSmst->SmmLocateHandle (
                    ByProtocol,
                    &gEfiSmmFirmwareVolumeBlockProtocolGuid,
                    NULL,
                    &BufferSize,
                    *Buffer
                    );
  if (EFI_ERROR(Status) && Status != EFI_BUFFER_TOO_SMALL) {
    return EFI_NOT_FOUND;
  }

  *Buffer = AllocatePool (BufferSize);
  if (*Buffer == NULL) {
    return EFI_OUT_OF_RESOURCES;
  }

  Status = gSmst->SmmLocateHandle (
                    ByProtocol,
                    &gEfiSmmFirmwareVolumeBlockProtocolGuid,
                    NULL,
                    &BufferSize,
                    *Buffer
                    );

  *NumberHandles = BufferSize / sizeof(EFI_HANDLE);
  if (EFI_ERROR(Status)) {
    *NumberHandles = 0;
  }

  return Status;
}

/**
  Get the variable statistics information from the information buffer pointed by gVariableInfo.

  @param[in, out]  InfoEntry   A pointer to the buffer of variable information entry.
                               On input, point to the variable information returned last time. if
                               InfoEntry->VendorGuid is zero, return the first information.
                               On output, point to the next variable information.
  @param[in, out]  InfoSize    On input, the size of the variable information buffer.
                               On output, the returned variable information size.

  @retval EFI_SUCCESS          The variable information is found and returned successfully.
  @retval EFI_UNSUPPORTED      No variable inoformation exists in variable driver. The
                               PcdVariableCollectStatistics should be set TRUE to support it.
  @retval EFI_BUFFER_TOO_SMALL The buffer is too small to hold the next variable information.

**/
EFI_STATUS
SmmVariableGetStatistics (
  IN OUT VARIABLE_INFO_ENTRY                           *InfoEntry,
  IN OUT UINTN                                         *InfoSize
  )
{
  VARIABLE_INFO_ENTRY                                  *VariableInfo;
  UINTN                                                NameLength;
  UINTN                                                StatisticsInfoSize;
  CHAR16                                               *InfoName;

  ASSERT (InfoEntry != NULL);
  VariableInfo = gVariableInfo;
  if (VariableInfo == NULL) {
    return EFI_UNSUPPORTED;
  }

  StatisticsInfoSize = sizeof (VARIABLE_INFO_ENTRY) + StrSize (VariableInfo->Name);
  if (*InfoSize < sizeof (VARIABLE_INFO_ENTRY)) {
    *InfoSize = StatisticsInfoSize;
    return EFI_BUFFER_TOO_SMALL;
  }
  InfoName = (CHAR16 *)(InfoEntry + 1);

  if (CompareGuid (&InfoEntry->VendorGuid, &mZeroGuid)) {
    //
    // Return the first variable info
    //
    CopyMem (InfoEntry, VariableInfo, sizeof (VARIABLE_INFO_ENTRY));
    CopyMem (InfoName, VariableInfo->Name, StrSize (VariableInfo->Name));
    *InfoSize = StatisticsInfoSize;
    return EFI_SUCCESS;
  }

  //
  // Get the next variable info
  //
  while (VariableInfo != NULL) {
    if (CompareGuid (&VariableInfo->VendorGuid, &InfoEntry->VendorGuid)) {
      NameLength = StrSize (VariableInfo->Name);
      if (NameLength == StrSize (InfoName)) {
        if (CompareMem (VariableInfo->Name, InfoName, NameLength) == 0) {
          //
          // Find the match one
          //
          VariableInfo = VariableInfo->Next;
          break;
        }
      }
    }
    VariableInfo = VariableInfo->Next;
  };

  if (VariableInfo == NULL) {
    *InfoSize = 0;
    return EFI_SUCCESS;
  }

  //
  // Output the new variable info
  //
  StatisticsInfoSize = sizeof (VARIABLE_INFO_ENTRY) + StrSize (VariableInfo->Name);
  if (*InfoSize < StatisticsInfoSize) {
    *InfoSize = StatisticsInfoSize;
    return EFI_BUFFER_TOO_SMALL;
  }

  CopyMem (InfoEntry, VariableInfo, sizeof (VARIABLE_INFO_ENTRY));
  CopyMem (InfoName, VariableInfo->Name, StrSize (VariableInfo->Name));
  *InfoSize = StatisticsInfoSize;

  return EFI_SUCCESS;
}

/**
  Communication service SMI Handler entry.

  This SMI handler provides services for the variable wrapper driver.

  @param[in]     DispatchHandle  The unique handle assigned to this handler by SmiHandlerRegister().
  @param[in]     RegisterContext Points to an optional handler context which was specified when the
                                 handler was registered.
  @param[in, out] CommBuffer     A pointer to a collection of data in memory that will
                                 be conveyed from a non-SMM environment into an SMM environment.
  @param[in, out] CommBufferSize The size of the CommBuffer.

  @retval EFI_SUCCESS                         The interrupt was handled and quiesced. No other handlers
                                              should still be called.
  @retval EFI_WARN_INTERRUPT_SOURCE_QUIESCED  The interrupt has been quiesced but other handlers should
                                              still be called.
  @retval EFI_WARN_INTERRUPT_SOURCE_PENDING   The interrupt is still pending and other handlers should still
                                              be called.
  @retval EFI_INTERRUPT_PENDING               The interrupt could not be quiesced.
**/
EFI_STATUS
EFIAPI
SmmVariableHandler (
  IN     EFI_HANDLE                                DispatchHandle,
  IN     CONST VOID                                *RegisterContext,
  IN OUT VOID                                      *CommBuffer,
  IN OUT UINTN                                     *CommBufferSize
  )
{
  EFI_STATUS                                       Status;
  SMM_VARIABLE_COMMUNICATE_HEADER                  *SmmVariableFunctionHeader;
  SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE         *SmmVariableHeader;
  SMM_VARIABLE_COMMUNICATE_GET_NEXT_VARIABLE_NAME  *GetNextVariableName;
  SMM_VARIABLE_COMMUNICATE_QUERY_VARIABLE_INFO     *QueryVariableInfo;
  VARIABLE_INFO_ENTRY                              *VariableInfo;
  UINTN                                            InfoSize;

  ASSERT (CommBuffer != NULL);

  SmmVariableFunctionHeader = (SMM_VARIABLE_COMMUNICATE_HEADER *)CommBuffer;
  switch (SmmVariableFunctionHeader->Function) {
    case SMM_VARIABLE_FUNCTION_GET_VARIABLE:
      SmmVariableHeader = (SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE *) SmmVariableFunctionHeader->Data;
      Status = VariableServiceGetVariable (
                 SmmVariableHeader->Name,
                 &SmmVariableHeader->Guid,
                 &SmmVariableHeader->Attributes,
                 &SmmVariableHeader->DataSize,
                 (UINT8 *)SmmVariableHeader->Name + SmmVariableHeader->NameSize
                 );
      break;

    case SMM_VARIABLE_FUNCTION_GET_NEXT_VARIABLE_NAME:
      GetNextVariableName = (SMM_VARIABLE_COMMUNICATE_GET_NEXT_VARIABLE_NAME *) SmmVariableFunctionHeader->Data;
      Status = VariableServiceGetNextVariableName (
                 &GetNextVariableName->NameSize,
                 GetNextVariableName->Name,
                 &GetNextVariableName->Guid
                 );
      break;

    case SMM_VARIABLE_FUNCTION_SET_VARIABLE:
      SmmVariableHeader = (SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE *) SmmVariableFunctionHeader->Data;
      Status = VariableServiceSetVariable (
                 SmmVariableHeader->Name,
                 &SmmVariableHeader->Guid,
                 SmmVariableHeader->Attributes,
                 SmmVariableHeader->DataSize,
                 (UINT8 *)SmmVariableHeader->Name + SmmVariableHeader->NameSize
                 );
      break;

    case SMM_VARIABLE_FUNCTION_QUERY_VARIABLE_INFO:
      QueryVariableInfo = (SMM_VARIABLE_COMMUNICATE_QUERY_VARIABLE_INFO *) SmmVariableFunctionHeader->Data;
      Status = VariableServiceQueryVariableInfo (
                 QueryVariableInfo->Attributes,
                 &QueryVariableInfo->MaximumVariableStorageSize,
                 &QueryVariableInfo->RemainingVariableStorageSize,
                 &QueryVariableInfo->MaximumVariableSize
                 );
      break;

    case SMM_VARIABLE_FUNCTION_READY_TO_BOOT:
      ReclaimForOS ();
      Status = EFI_SUCCESS;
      break;

    case SMM_VARIABLE_FUNCTION_EXIT_BOOT_SERVICE:
      mAtRuntime = TRUE;
      Status = EFI_SUCCESS;
      break;

    case SMM_VARIABLE_FUNCTION_GET_STATISTICS:
      VariableInfo = (VARIABLE_INFO_ENTRY *) SmmVariableFunctionHeader->Data;
      InfoSize = *CommBufferSize - OFFSET_OF (SMM_VARIABLE_COMMUNICATE_HEADER, Data);
      Status = SmmVariableGetStatistics (VariableInfo, &InfoSize);
      *CommBufferSize = InfoSize + OFFSET_OF (SMM_VARIABLE_COMMUNICATE_HEADER, Data);
      break;

    default:
      ASSERT (FALSE);
      Status = EFI_UNSUPPORTED;
  }

  SmmVariableFunctionHeader->ReturnStatus = Status;

  return EFI_SUCCESS;
}

/**
  SMM Fault Tolerant Write protocol notification event handler.

  Non-Volatile variable write may needs FTW protocol to reclaim when
  writting variable.

  @param  Protocol   Points to the protocol's unique identifier
  @param  Interface  Points to the interface instance
  @param  Handle     The handle on which the interface was installed

  @retval EFI_SUCCESS   SmmEventCallback runs successfully
  @retval EFI_NOT_FOUND The Fvb protocol for variable is not found.

 **/
EFI_STATUS
EFIAPI
SmmFtwNotificationEvent (
  IN CONST EFI_GUID                       *Protocol,
  IN VOID                                 *Interface,
  IN EFI_HANDLE                           Handle
  )
{
  EFI_STATUS                              Status;
  EFI_SMM_FIRMWARE_VOLUME_BLOCK_PROTOCOL  *FvbProtocol;
  EFI_SMM_FAULT_TOLERANT_WRITE_PROTOCOL   *FtwProtocol;
  EFI_PHYSICAL_ADDRESS                    NvStorageVariableBase;

  if (mVariableModuleGlobal->FvbInstance != NULL) {
    return EFI_SUCCESS;
  }

  //
  // Ensure SMM FTW protocol is installed.
  //
  Status = GetFtwProtocol ((VOID **)&FtwProtocol);
  if (EFI_ERROR (Status)) {
    return Status;
  }

  //
  // Find the proper FVB protocol for variable.
  //
  NvStorageVariableBase = (EFI_PHYSICAL_ADDRESS) PcdGet64 (PcdFlashNvStorageVariableBase64);
  if (NvStorageVariableBase == 0) {
    NvStorageVariableBase = (EFI_PHYSICAL_ADDRESS) PcdGet32 (PcdFlashNvStorageVariableBase);
  }
  Status = GetFvbInfoByAddress (NvStorageVariableBase, NULL, &FvbProtocol);
  if (EFI_ERROR (Status)) {
    return EFI_NOT_FOUND;
  }

  mVariableModuleGlobal->FvbInstance = FvbProtocol;

  Status = VariableWriteServiceInitialize ();
  ASSERT_EFI_ERROR (Status);

  //
  // Notify the variable wrapper driver the variable write service is ready
  //
  Status = gBS->InstallProtocolInterface (
                  &mSmmVariableHandle,
                  &gSmmVariableWriteGuid,
                  EFI_NATIVE_INTERFACE,
                  NULL
                  );
  ASSERT_EFI_ERROR (Status);

  return EFI_SUCCESS;
}

/**
  Variable Driver main entry point. The Variable driver places the 4 EFI
  runtime services in the EFI System Table and installs arch protocols
  for variable read and write services being available. It also registers
  a notification function for an EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE event.

  @param[in] ImageHandle    The firmware allocated handle for the EFI image.
  @param[in] SystemTable    A pointer to the EFI System Table.

  @retval EFI_SUCCESS       Variable service successfully initialized.

**/
EFI_STATUS
EFIAPI
VariableServiceInitialize (
  IN EFI_HANDLE                           ImageHandle,
  IN EFI_SYSTEM_TABLE                     *SystemTable
  )
{
  EFI_STATUS                              Status;
  EFI_HANDLE                              VariableHandle;
  VOID                                    *SmmFtwRegistration;

  //
  // Variable initialize.
  //
  Status = VariableCommonInitialize ();
  ASSERT_EFI_ERROR (Status);

  //
  // Install the Smm Variable Protocol on a new handle.
  //
  VariableHandle = NULL;
  Status = gSmst->SmmInstallProtocolInterface (
                    &VariableHandle,
                    &gEfiSmmVariableProtocolGuid,
                    EFI_NATIVE_INTERFACE,
                    &gSmmVariable
                    );
  ASSERT_EFI_ERROR (Status);

  ///
  /// Register SMM variable SMI handler
  ///
  VariableHandle = NULL;
  Status = gSmst->SmiHandlerRegister (SmmVariableHandler, &gEfiSmmVariableProtocolGuid, &VariableHandle);
  ASSERT_EFI_ERROR (Status);

  //
  // Notify the variable wrapper driver the variable service is ready
  //
  Status = SystemTable->BootServices->InstallProtocolInterface (
                                        &mVariableHandle,
                                        &gEfiSmmVariableProtocolGuid,
                                        EFI_NATIVE_INTERFACE,
                                        &gSmmVariable
                                        );
  ASSERT_EFI_ERROR (Status);

  //
  // Register FtwNotificationEvent () notify function.
  //
  Status = gSmst->SmmRegisterProtocolNotify (
                    &gEfiSmmFaultTolerantWriteProtocolGuid,
                    SmmFtwNotificationEvent,
                    &SmmFtwRegistration
                    );
  ASSERT_EFI_ERROR (Status);

  SmmFtwNotificationEvent (NULL, NULL, NULL);

  return EFI_SUCCESS;
}


Basically, I am unable to send the Pro Micro 3V anything over serial.
I am receiving data from the board just fine (in fact, it doesn't matter what I set the baud rate to, it seems to adjust every time I connect), but sending anything through the Arduino serial monitor causes it to freeze up until I unplug the Pro Micro.
Using a different serial monitor (Realterm) showed much the same results, except that the freezing was handled better and I just kept seeing the incoming serial data, suggesting it's an issue with the Pro Micro or the Pro Micro drivers.
The LED on the board doesn't light up when I send any commands, suggesting nothing is reaching the board to begin with.
The sketch itself is pretty straightforward. It constantly outputs sensor values (everything seems correct here) until I send a command, when it should stop and send something else. The Pro Micro doesn't seem to be receiving the command and just keeps outputting the sensor values. Fairly sure it's not a code issue though, given the results above and that the code works flawlessly on a Nano.
Last edited by finnkerr on Mon Jul 20, 2015 5:34 pm, edited 2 times in total.
The sketch itself is pretty straightforward.
Sorry that doesn't get you off the hook. Mistakes come in all sizes of programs. Show the code.
Valen wrote: Sorry that doesn't get you off the hook. Mistakes come in all sizes of programs. Show the code.
Fair enough, code's been added to original post. I took out anything that wasn't relevant to serial communication (there's a ton of it). I checked the libraries and none contain any lines that have anything to do with serial.
Valen wrote: The simple cause might be that you are sending or expecting the command to come through the wrong serial port.
The only place I see that as a possibility is in the serialEvent() function. Is this not the correct one for USB? Also issues with the Arduino code wouldn't explain the freezing serial monitor nor the Pro Micro RX LED not lighting up.
Ok, good that is it working.
As for posting code with removed non-relevant parts, I'm not a big fan of that. You risk messing up the entire structure by removing too many curly or round brackets, thereby introducing bugs in the source code that didn't exist before. Also, it would obscure any time-dependant or race-condition issue in the original code. You may think you are reducing the complexity, but in the process you could be hiding the issue. A bit more time spent untangling the spaghetti is my preference.


text:
A Vanishing Kind
Purchase the book, 'A Vanishing Kind'.
$22.95 - free delivery in Australia.
If you want the book signed by John Wamsley, please say so in the 'instructions to seller' bit.
Outside Australia please purchase from Balboa Press or Amazon Books.
Thanks for the book—I finished it in one session (I couldn't put it down!!).
I thought I knew a little about the problems you went through, but I had no idea of the extent of the corruption and outright stupidity you had to put up with!!
I guess the satisfaction you can derive from what happened, is that , despite the problems, your ideas (which are now "best practice for everybody") have resulted in many of Australia's threatened species only surviving now, which wouldn't be here if the "experts" had their way.
'A VANISHING KIND' – review by David Higgs MBE, MSc, Director of The Environmental Press Agency
'A Vanishing Kind', by Dr John Wamsley and Stephen Davey, is a joy to read. It tells more than just the story of Earth Sanctuaries Limited (ESL) that Australian mathematics professor turned pioneering conservationist, John Wamsley, founded in 1988 and that later became the world's first stock market listed company dedicated to saving Australia's most endangered species.
Such a book has been needed for a very long time. It should be on the essential reading list of any student of the environment or conservation. Wamsley's controversial, radical, pragmatic approach revolutionised conservation in Australia.
The book hooked me from the minute I opened its covers. It is a gripping 'roller-coaster' story, thorough, well-written, objective, tragic and painful in places, nevertheless told with affection and respect for a stubborn, opinionated, unapologetic, single-minded, obsessive, passionate and brilliant individual. It had me laughing and it had me in tears.
It is a fascinating journey through the mind and experience of a shy and damaged child who grew to be one of Australia's most significant and forthright conservation trailblazers. It signposts the loneliness and risks to mind and body faced by radical and logical thinkers in times of ignorance and the perils of being too far ahead of your time. It also offers an equally fascinating insight into the mindset of his many opponents whose thinking did not venture beyond their own prejudices and assumptions that putting a monetary value on a species was about personal greed and not about 'translating love into hope' for species survival. This book establishes Dr John Wamsley and Earth Sanctuaries at the forefront of conservation innovation in Australia. Wamsley sums it up thus, 'Our duty is to give the next generation a choice. If it's gone, then they haven't got a choice.' What is little known is that back in 1991 a visit to Warrawong inspired Martin Copley to found the Australian Wildlife Conservancy, and it was Wamsley who built their first sanctuary, Karakamia, in Western Australia. The book charts how Wamsley tried to address the disconnect between much of the fundamentally urban population of Australia and its unique natural heritage. Ultimately, Wamsley was unsuccessful in his efforts to bridge this gulf and was, ironically, brought down by a system created by a status quo afflicted with that very deficiency.
One is dumb struck by the often petty and sometimes contradictory impediments and regulations presented by different departments and different states in order to confound his progress. Examples of jealousy, contradictory offers of government cooperation and simultaneous obstruction abound. It speaks volumes about the mindset of ministers and departments charged with the conservation of Australia's unique habitat and wildlife that chose to be indifferent and allow the unimpeded disintegration of Earth Sanctuaries and the consignment of thousands of rare and endangered wildlife to an uncertain future.
Wamsley was the uncompromising protagonist of feral-proof fencing and the ruthless eradication of all feral, non-indigenous and invasive species from areas dedicated to wildlife conservation. For this, thirty years ago, he was vilified, arrested, faced legal action and death threats. Today his conservation methodology is recognised as 'best practice'. Australia owes him a huge debt of gratitude.
Official Review: A Vanishing Kind
Unread post by Teele » 13 Nov 2020, 16:26
[Following is an official OnlineBookClub.org review of "A Vanishing Kind" by John Wamsley and Stephen L Davey.]
Have you observed kangaroos in the wild? It could be pleasurable to watch them move about gracefully in their natural habitat. However, keeping plants and animals safe in their habitat can be a daunting task. A Vanishing Kind by John Wamsley and Stephen L. Davey is a biography that gives a detailed account of the struggles that went into the establishment of the Earth Sanctuaries Limited Company in Australia.
John was a born bush-lover. The opening chapters of the book describe how John rose above difficulties and grew into a strong and industrious youth. His love of mathematics did not keep him away from the bush. John's intimate knowledge of the workings of the natural environment aided his efforts in conservation. It was eye-opening to read about the influence of feral plants and animals. John and Proo stood against the odds and created an organization that kept native plants and animals safe from extinction. However, how would the company fare against corrupt officials and changing government regulations? Would John succeed in keeping the bush as a permanent part of his life?
A Vanishing Kind was written with a professional touch. The narrative is straightforward in an easy-to-read format. It contains valuable information on plants and animals. I gleaned some facts about the relationship between woody pines and surrounding vegetation. I also learned a few tricks on keeping animals within a fenced perimeter. There is much to learn from John Wamsley. Through the ups and downs in life, he remained determined and positive. His strength of character is admirable. He is a go-getter. This is what I love most about him. At a point, the 'world' turned its back on his mission, yet, he managed to survive with Proo's support. His story emphasized the value of having the proper motive for chosen pursuits in life.
This book is free of sexual and violent scenes. The book is also suitable for readers of all religious sensitivities. However, there were instances of non-borderline profanities in the text. The narrative was written in simple grammar to aid understanding. Relevant pictures are positioned in strategic locations throughout the book. The pictures lent credence to the story and made it much more engaging.
I would rate this book 4 out of 4 stars. I have no dislikes about this book. The text was free of typographical and grammatical errors. The order of events was well-arranged without confusion. It contains a wealth of information on wildlife conservation techniques. I would recommend this book to lovers of wildlife conservation and to others who love biographies.

redpajama_set_name: RedPajamaCommonCrawl


Every year after the whole Christmas debacle is done and dusted and we have made it through the shopping madness that is the buying back-to-school-shoes, I sit down with a sigh of relief. There is space and quiet. A break from the crazy rushing and buying marathon that seems to consume us all each year.
Each of my four daughters settle into their everyday rhythm, and I am able to take a moment to think about what is next. What events do I need to prepare for, what important dates do we as a family have coming up and with the first of six birthdays not far off – what the hell am I going to buy everyone this year?
I often try and think about birthdays and gifts a lot in advance so that I am not caught out with, well … life. However, my daughters live a pretty privileged life. Although they love getting gifts, I'm not sure that they really need anything else. They've never really had to go without, and even though I have been making a concerted effort to downsize their "stuff" levels over the last few years, they've got more things than they really can even use.
So this year I am doing something differently: our family is going to have a gift-free year. It's not because I have finally morphed into a full version of the birthday grinch, and it isn't even because I hate birthdays – it's just because I want a break from the consumerist pull. I have totally had enough of buying things for the sake of it.
There will be no gifts this year. No purchasing of any presents, at all. Nope, none. Zilch.
That's not to say that I am going to forbid family or friends from buying them gifts, but this year our immediate family is going to focus on things aside from receiving presents.
So what are we going to do instead? How am I going to celebrate their birthdays and give them something to look forward to and be excited about?
Well, I'm going to dedicate this year to building on our connections as a family and sharing memorable experiences with them instead. I've noticed that material gifts are often forgotten by my girls within a few weeks of receiving them, and there are plenty of other ways to spend money on moments and experiences that will be cherished far longer than the latest must-have plastic toy.
No more buying of all the things!
I am going to consciously take a step back from the pull of society that tries to convince me to *buy all the things* for my children because they are "cool" or the latest gadget that "everyone else has", and instead I am going to focus on what is really important. Things like connection. Things like meaningful relationships. Things like experiences.
I've realised that most of the time, what my children (and husband, actually) want more than anything else is simply quality time with me. Time where they don't have to compete for my attention from other family members, time where they can feel a little indulged, special and get all the cuddles and attention that their souls desire.
Surely, that beats the heck out of yet another present anyway. I am also hoping that through this gift-free exercise, I'll teach my girls a little something along the way – like what really matters in life doesn't actually come wrapped in paper.
Some things money just can't buy.


When Emmanuel Sorensen visited Ramana Maharshi in southern India, he was recognized by this sage as one of the rare-born mystics. It was during Emmanuel's third visit to Ramana in 1940 that while he was just sitting quietly in meditation, he awared an effulgence especially radiated and directed upon his form. Suddenly out of the Silence came a telepathic message from Ramana in the form of these five English words: 'We are always aware sunyata.' Emmanuel took Ramana's five words as recognition, initiation, mantra, and name. Thereafter, he referred to both himself and the hut in which he lived as Sunyata-which he translated as full solid emptiness. Adyashanti writes: Sunyata was the rarest of incarnations. A naturally born enlightened being of singular uniqueness and inventiveness. The story of his life is itself a profound spiritual teaching and a living example of how awakened spirit moves through the challenges of life. This is one of the best books on authentic enlightenment that you will ever read.


text:
Live Music - Nicole Yarling Trio with Tal Cohen
April 17, 2022 Add to Calendar 2022-04-17 17:00:00 2022-04-17 17:00:00 Live Music - Nicole Yarling Trio with Tal Cohen Ocean Drive The Betsy [email protected] America/New_York public
Honoring South Florida's Legacy of Jazz in Overtown
April 17, 2022 Add to Calendar 2022-04-17 17:00:00 2022-04-17 17:00:00 Live Music - Nicole Yarling Trio with Tal Cohen Ocean Drive The Betsy [email protected] America/New_York public RSVP
Presented by The Ocean Drive Association with The Betsy's 10th Annual Overture to Overtown Jazz Festival. In partnership with WDNA Jazz Radio, National Jazz Appreciation Month, The City of Miami Beach and the Greater Miami and the Beaches Convention and Visitors Bureau.
Sundays from 5pm to 6pm, April 2022
Hosted outside on the Ocean Drive Promenade located between 14th Street and 14th Place
Rain space for outdoor concerts is The Gallery @ The Betsy Hotel (enter from 1433 Collins Ave).
April 3 at 5PM - Jim Gasior Jazz Trio with LeNard Rutledge
April 10 at 5PM - Edgar Pantoja Latin Jazz Trio with Magela Herrera, Vocals and Flute
April 17 at 5PM - Nicole Yarling Quartet with Tal Cohen, Piano
April 24 at 5PM - Melton Mustafa, Jr. Jazz Trio with special guest Nicole Henry
Nicole YARLING – Vocals and Violin - Nicole is a rich velvet voice with technical skill and personality to boot! She is a star in the jazz community who, like many others, has been at it for years. Born and raised in Brooklyn, New York, a musical household laid the groundwork for Nicole's career. She is an Assistant Professor of Music at Florida Memorial University and a lecturer at Frost School of Music, a protégé of the late Joe Williams, and she is also a gifted violinist, educator and mentor to countless admirers. @knickee1
Tal COHEN – Piano - Tal Cohen is a Grammy award winning jazz pianist currently located in Miami. He has received acclaim including winning the Barry Harris National Piano Competition and was the recipient of the prestigious Freedman Fellowship, performing to a sold out crowd at the Sydney Opera House. Tal Cohen has played with Terence Blanchard, Greg Osby, Ignacio Berroa, Joe Lovano and others. He currently leads his own ensemble which has performed at festivals and venues that include Jazzbez Jazz Festival (Ukraine), Detroit Jazz Festival, Melbourne Jazz Festival (Australia), a three week residency at the Black Cat (San Francisco). His most recent album- "Gentle Giants" has received international acclaim and gained him many reviews including a 4 star review from the historic Downbeat Magazine. @talcohenjazz
Live Music: Jim Gasior
Jim GASIOR is a titanic figure in Miami jazz.
Live Music: Trenton Klaz
Trenton KLAZ began classical training at the tender age of 3, and has played with a diverse array of artists.
Live Music: Brian Murphy
Murphy is founder of Miami Jazz Cooperative, recognized Nationally as a leading force for jazz in South Florida.


text:
That's been brewing for a long time! 2,150-year-old tea leaves found among treasures buried with a Chinese emperor provide the earliest evidence of Silk Road trade route
Archaeologists discovered a huge stash of tea Emperor Jing of Han's tomb
The stash of fine tea tips was spread 42 feet wide and eight inches thick
It suggests tea was being grown at the time to satisfy the emperor's desire
Researchers also found tea in a tomb in Tibet and suggest it was traded
By Richard Gray for MailOnline
The world's oldest tea leaves have been discovered buried with royal treasures in the tomb of an ancient Chinese emperor who ruled more than 2,150 years ago.
Unearthed in the tomb of Jing Emperor Liu Qi, the tea provides some of the earliest evidence for the ancient Silk Road trade route that grew to stretch across Asia from China to Europe.
It appears Emperor Jing, who was the fourth emperor of the Western Han Dynasty, enjoyed the drink so much he wanted to be buried with a large supply of tea leaves so he could drink it in the afterlife.
Archaeologists have discovered a huge stash of the oldest tea in the world buried in the tomb of an ancient Chinese emperor. The tea (pictured right) was badly decomposed, but analysis showed only the finest tips (bottom left) had been picked and buried with the emperor. Similar tea was found in a tomb in Tibet (top left)
Archaeologists discovered the huge stash of tea buds – or tips - in one of the burial pits that surrounded the mausoleum built for the emperor and his wife in Xi'an, Sha'anxi Province, China.
Bacteria found in Otzi the iceman could turn the Out of... Spray that makes men more attractive: Scientists discover... Do YOU struggle to get over an ex Researchers discover why... The radical plan to manipulate GRAVITY: Researcher reveals...
Although the plant material had decomposed, analysis revealed it had been some of the finest quality tea buds from the tea bush Camellia sinensis.
WHO WAS EMPEROR JING?
Emperor Jing was a key figure in Chinese history, crushing a rebellion and setting the scene for the rule of his son, Emperor Wu.
He ruled from 157BC until his death in 141BC, when he was buried in the Han Yangling Mausoleum in Xi'an, Sha'anxi Province.
More than 50,000 terracotta figurines and animals were buried in his tomb complex along with silks, weapons and chariots.
The tea 'buds' unearthed in his tomb provides some of the earliest evidence for the ancient Silk Road trade route that grew to stretch across Asia from China to Europe.
Writing in the journal Scientific Reports, Dr Houyuan Lu, an archaeologist with the Chinese Academy of Sciences in Beijing, and his colleagues described also finding similar tea remains in a tomb in Tibet.
They said this also dates to around 200AD, which is the earliest indication tea was being transported along, and traded on, what later became known as the Silk Road.
In particular, they said it appears tea was grown 2,150 years ago to 'cater for the drinking habits of the Western Han Dynasty' before spreading towards central Asia.
'Our study reveals that tea was drunk by Han Dynasty emperors as early as 2,100 years before present and had been introduced into the Tibetan Plateau by 1,800 years before present,' the researchers explained.
'This indicates that one branch of the Silk Road passed through western Tibet at that time.'
Before the discovery of the tea in Emperor Jing's tomb, the oldest record of the beverage is in a 2,000-year-old text that mentions the drink.
Emperor Jing (illustrated left) was the fourth ruler in the Western Han Dynasty and played a key role in Chinese history. Archaeologists excavating a pit in his tomb (pictured right) found decomposed plant material spread over an area 42 feet wide and up to eight inches thick. Analysis has shown this was tea
The researchers said the tea suggests the Silk Road opened earlier than thought. In particular, the tea was drunk by Han Dynasty emperors 2,100 years ago and was introduced into the Tibetan Plateau 1,800 years ago. This indicates one branch passed through western Tibet at that time
WHAT WAS THE SILK ROAD?
The Silk Road is the collective name given to ancient trade routes between China and Central Asia.
It was named because it was predominantly used to transport silk, which was made in China in the 7th century, to the west.
Other goods that travelled along these trade routes included cucumbers, figs and pomegranates.
Tea was thought to have been introduced to Tibet between 625AD and 680AD when the Tan Princess Wencheng as part of her dory to the Songtsen Gambo.
However, the researchers believe tea was introduced more than 400 years earlier than that during the Zhang Zhung kingdom.
They said: 'This was at least four to five hundred years earlier than the Southwest Silk Road through Yunnan, which opened in the seventh century.
'Our data indicate that the plant residues unearthed at both the Han Yangling Mausoleum and Gurgyam Cemetery are the earliest physical evidence of tea in the world.'
Emperor Jing himself was a key figure in Chinese history, crushing a rebellion and setting the scene for the long rule of his son, Emperor Wu.
More than 50,000 terracotta figurines and animals were buried with Emperor Jing in his tomb complex along with silks, weapons and chariots.
During the recent excavation, archaeologists found decomposed plant material spread up to 3-inches (8cm) deep over an area more than 42ft (13 metres) wide in one area of the mausoleum.
The site was originally excavated in the 1990s, but researchers have only now been able to analyse the plant material found in one of the pits.
The researchers used electron microscopes and mass spectrometry to help them identify the decomposed plant material found in the tombs.
The mass spectrometry showed the samples matched those of modern green tea and contained high levels of caffeine.
They also examined plant material found in a tomb in the Gurgyam Cemetery in Nigari, western Tibet, which also turned out to be tea.
The tea samples studied in the research were discovered in a pit in the Han Yangling Mausoleum in Xi'an and in Gurgyam Cemetery in Ngari, western Tibet (illustrated). They are the oldest samples of tea to be found
More than 50,000 terracotta figurines (pictured) and animals were buried with Emperor Jing in his tomb complex along with silks, weapons and chariots. During the recent excavation, archaeologists found decomposed plant material spread up to 3-inches (8cm) deep over an area more than 42ft (13 metres) wide
'Our data indicate that the plant residues unearthed at both the Han Yangling Mausoleum and Gurgyam Cemetery are the earliest physical evidence of tea in the world.
'These data indicate that tea was part of trade of luxury products, alongside textiles, that moved along the Silk Road around 2,000 years ago, and were traded up into Tibet.'
Earliest tea as evidence for one branch of the Silk Road across the Tibetan Plateau : Scientific Reports
World's oldest tea found in ancient Chinese emperor's tomb
Explore the MOON in incredible 3D map: Interactive module follows footsteps of astronauts to mark 50th...
Stunning image reveals the moment the ISS passes in front of the sun's immaculate surface that dwarfs the...
Mystery of the universe's expansion deepens: New Hubble measurement of ultra-bright star fails to be a...
Apple releases sneak peak at the 59 new emoji coming to iOS this fall, including interracial couples,...
Angry birds! Denver residents report violent red-wing blackbirds have been DIVE-BOMBING them to protect...
Would YOU hand over your data to Amazon for a $10 reward? Firm offers Prime Day shoppers credit to let them...
Apollo 11 blasted off on history-making voyage 50 years ago TODAY: Veteran astronaut returns to the...
In event of a moon disaster: 1969 speech prepared for then-president Nixon reveals Apollo 11 astronauts...
'We are humbled by the heroism of the man who wore this suit 50 years ago': Mike Pence leads tributes to...
Partial lunar eclipse will be visible around the world TONIGHT with up to 60% of the moon hidden in Earth's...
Britain is one step closer to walking on the moon as NASA and UK Space Agency agree to a deal that could one...
AI teaches itself to complete the Rubik's cube in just 20 MOVES - and gets it spot on every single time
Pet your stress away! Stroking cats and dogs for just ten minutes can 'significantly' reduce anxiety levels,...
It's an APie: Artificial intelligence tries its hand in the kitchen and creates bizarre recipes such as...
European brown bears are back in the UK as the animals settle into their ancient woodland home alongside...
Apple releases sneak peak at the 59 new emoji coming to iOS this fall, including interracial couples, prosthetic limbs, a yawning face and a stick of BUTTER
Security fears over Russian aging app 'FaceApp' as experts warn it can access ALL of your pictures even if you say not to
Explore the MOON in incredible 3D map: Interactive module follows footsteps of astronauts to mark 50th anniversary of Apollo 11 crew's historic first landing
In event of a moon disaster: 1969 speech prepared for then-president Nixon reveals Apollo 11 astronauts would have been abandoned and left to 'STARVE or commit suicide' if return plans failed
Mystery of the universe's expansion deepens: New Hubble measurement of ultra-bright star fails to be a 'tie-breaker' in debate on evolution of the cosmos
Angry birds! Denver residents report violent red-wing blackbirds have been DIVE-BOMBING them to protect their nests
It's an APie: Artificial intelligence tries its hand in the kitchen and creates bizarre recipes such as Scotch egg and spiralised veg and SALAD pie
Pet your stress away! Stroking cats and dogs for just ten minutes can 'significantly' reduce anxiety levels, study finds
Alphabet's drone delivery project Wing launches air-traffic control APP to keep unmanned craft flying 'safely and effectively'
Elon Musk wants to hook human BRAINS directly up to computers using chips as soon as NEXT YEAR in the hope of curing diseases
Britain is one step closer to walking on the moon as NASA and UK Space Agency agree to a deal that could one day send the UK to the lunar surface
Avian MALARIA may be behind the decline of the humble European house sparrow in suburban areas
iPad Pro review: Apple takes the tablet to new heights (at a price) Apple's new iPad is blazingly fast, gorgeous to look at, and quite simply the best tablet out there - and for a lot of people, probably the best computer out there.
The small smart display with big potential: Google Home Hub review Google is late to the game with its Home Hub, but the low price and AI features make it a great choice for controlling your home, showing pictures and even helping run your life.
'Good enough for most people': iPhone XR review On one hand, the XR lacks the high-resolution screen and dual-lens camera on the XS. but it is $250 cheaper and still get most of the other cutting-edge features found on the more expensive model.
The Pixel 3 outsmarts the iPhone (IF you trust Google with all your information) AI seems to permeate every part of its software, from the ability to answer calls for you to being able to almost perfectly predict your morning commute.
Bigger and better in every way: Apple's XS really does take the iPhone to the Max Apple's new iPhone XS and XS Max go on sale on Friday - and the biggest handset Apple has ever made is also its best (and possibly unsurprisingly, its most expensive).
The $250 beauty device that works like 'Photoshop for your face' Israeli beauty-tech firm Pollogen has launched its Geneo Personal device, which stimulates oxygen from beneath the skin's surface to give you a clearer, fresher face within minutes.
iOS 12 review: The update that really will improve your iPhone Rather than cram in a plethora of new features, Apple's latest update is about boosting stability, with improvements in everything from FaceID and battery life.
Naim Atom: The hifi that will change the way you listen to music It's eye-wateringly expensive at $2,999, but Naim's Uniti Atom is a revelation, an integrated amplifier than makes it easy to stream music at a quality you've probably never heard before.
The $1,000 wireless speaker that really IS worth the price: Naim Mu-so Qb review Naim's incredible Mu-So Qb takes you back to the good old days - where the music captivates and enthralls, rather that simply being something in the background.
The hi-tech $2,000 spin bike that really could change your life Peloton's hi-tech bike lets you stream live and on demand rides to your home - and it's one of the best examples of fitness technology out there - at a price.
The best all in one wireless speaker you'll ever hear: Naim Mu-so review It might not be a name familiar to the US market, but Naim is a legendary British brand hoping to make a splash with the American launch of its $1499 Mu:So speaker.


§ 610.010 Permit and License Required.
§ 610.030 Investigation and Issuance.
§ 610.040 Computation of Fees.
§ 610.060 License Plates and Badges.
§ 610.080 Loud Noises and Speaking Devices.
§ 610.090 Exhibition of License.
§ 610.100 Duty of Chief of Police to Enforce.
§ 610.120 Revocation of License.
§ 610.130 Expiration of License.
Section 610.010 Permit and License Required.
Section 610.030 Investigation and Issuance.
Section 610.040 Computation of Fees.
Section 610.060 License Plates and Badges.
Section 610.080 Loud Noises and Speaking Devices.
Section 610.090 Exhibition of License.
Section 610.100 Duty of Chief of Police to Enforce.
Section 610.120 Revocation of License.
Section 610.130 Expiration of License.
It shall be unlawful for any person to engage in the business of peddler, solicitor or canvasser, as defined in Section 610.020, Subsection (A) and (B) of this Chapter, within the corporate limits of the City of Plattsburg, without first obtaining a permit and license therefor as provided herein.
The word "peddler" as used herein shall include any person, whether a resident of the City of Plattsburg or not, traveling by foot, wagon, automotive vehicle, or any other type of conveyance, from place to place, from house to house, or from street to street, carrying, conveying or transporting goods, wares, merchandise, meats, fish, vegetables, fruits, garden truck, farm products or provisions, offering and exposing the same for sale, or making sales and delivering articles to purchasers. The word "peddler" shall include the words "hawker" and "huckster".
A "canvasser" or "solicitor" is defined as any individual, whether a resident of the City of Plattsburg or not, traveling either by foot, wagon, automobile, motor truck, or any other type of conveyance, from place to place, from house to house, or from street to street, taking or attempting to take orders for sale of goods, wares and merchandise, personal property of any nature whatsoever for future delivery, or for services to be furnished or performed in the future, whether or not such individual has, carries or exposes for sale a sample of the subject of such sale or whether he is collecting advance payments on such sales or not.
Upon receipt of the application provided for in Section 610.050 of this Chapter, the original shall be referred to the Chief of Police, who shall cause such investigation of the applicant's business and moral character to be made as he deems necessary for the protection of the public good. If, as a result of such investigation, the applicant's character or business responsibility is found to be unsatisfactory, the Chief of Police shall endorse on such application his disapproval and his reasons for the same, and return the said application to the City Clerk, who shall notify the applicant that his application is disapproved and that no permit and license will be issued. If, as a result of such investigation, the character and business responsibility of the applicant are found to be satisfactory, the Chief of Police shall endorse on the application his approval, execute a permit addressed to the applicant for the carrying on of the business applied for and return said permit, along with the application to the City Clerk, who shall, upon payment of the prescribed license fee, deliver to the applicant his permit and issue a license. Such license shall contain the signature and seal of the issuing officer and shall show the name, address and photograph of said licensee, the class of license issued and the kind of goods to be sold thereunder, the amount of the fee paid, the date of issuance and the length of time the same shall be operative, as well as the license number and other identifying description of any vehicle used in peddling, canvassing or soliciting. The City Clerk shall keep a permanent record of all licenses issued.
Peddlers. Ten dollars ($10.00) per week, fifteen dollars ($15.00) per month, or thirty dollars ($30.00) per year for each person proposing to peddle; ten dollars ($10.00) per week, fifteen dollars ($15.00) per month, or thirty dollar ($30.00) per year for each helper, or assistant, which helper or assistant must procure the permit and license as herein provided for peddlers, or three dollars ($3.00) per day per person.
Canvassers or Solicitors. Ten dollars ($10.00) per week, fifteen dollars ($15.00) per month, or thirty dollars ($30.00) per year for each person proposing to canvass or solicit; ten dollars ($10.00) per week, fifteen dollars ($15.00) per month, or thirty dollars ($30.00) per year for each helper or assistant, which helper or assistant must procure the permit and license as herein provided for canvassers or solicitors.
Basis of Fees. For the purpose of this Section any period of seven (7) calendar days or less shall be considered one (1) week; any period of more than seven (7) calendar days and not more than thirty (30) calendar days shall be considered one (1) month; and any period of more than thirty (30) calendar days and not more than one (1) calendar year shall be treated as a year. The annual fees herein provided for shall be assessed on a calendar year basis and on and after July first (1st) the amount of the fee for such annual license shall be one-half (½) of the amount stipulated for the remainder of the year.
Applicant shall file with his application a statement by a reputable physician of Clinton County, Missouri, dated not more than ten (10) days prior to submission of the application, certifying the applicant to be free of infectious, contagious, or communicable diseases.
The City Clerk shall issue to each licensee at the time of delivery of his license two (2) license plates for each vehicle to be used, plus a metal badge for each individual licensed under this Chapter. The license plates or badges shall bear the words "Licensed Peddler", "Licensed Solicitor" or "Licensed Canvasser", the period for which the license is issued, and the number of the license in letters and figures plainly discernable. License plates shall be attached to the vehicle used by the licensee, either on both sides or on the front and rear of the vehicle so used. Such badge shall be worn constantly by the licensee on the front of his hat or outer garment in such a way as to be conspicuous during such time as said licensee is engaged in peddling, soliciting or canvassing.
No license or badge issued under the provisions of this Chapter shall be used or worn at any time by any person other than the one to whom it was issued.
No peddler, solicitor, canvasser, nor any person in their behalf shall shout, make any outcry, blow a horn, ring a bell or use any sound device, including any loud-speaking radio or sound amplifying system upon any of the streets, alleys, parks or other public places of said City or upon any private premises in said City where sound of sufficient volume is emitted or produced therefrom to be capable of being plainly heard upon the streets, avenues, alleys, parks, or other public places, for the purpose of attracting attention to any goods, wares or merchandise which such licensee proposes to sell.
Peddlers, solicitors, and canvassers are required to exhibit their licenses at the request of any citizen.
It shall be the duty of the Chief of Police to require any person seen peddling, soliciting or canvassing, who is not known by such officer to be duly licensed, to produce his license and to enforce the provisions of this Chapter against any person found to be violating the same.
The Chief of Police shall report to the City Clerk all convictions for violations of this Chapter and the City Clerk shall maintain a record for each license issued and record the reports of violation therein.
Fraud, misrepresentation, or false statement contained in the application for license.
Fraud, misrepresentation or false statement made in the course of carrying on his business as peddler, solicitor or canvasser.
Conducting the business of peddling, soliciting or canvassing in an unlawful manner or in such a manner as to constitute a breach of the peace or to constitute a menace to the health, safety, or general welfare of the public.
Notice of the hearing for revocation of a license shall be given in writing, setting forth specifically the grounds of complaint and the time and place of hearing. Such notice shall be mailed, postage prepaid, to the licensee at his last known address at least five (5) days prior to the date set for hearing.
All annual licenses issued under the provisions of this Chapter shall expire on the thirty-first (31st) day of December in the year when issued. Other than annual licenses shall expire on the date specified in the license.


Follow the live webcast for the World Water Day celebrations, including the launch of the World Water Development Report 2019 - "Leaving no one behind"
AquaFed is proud to support the Campaign for World Water Day 2019 - Leaving no one behind!
Our members contribute to turning the human rights to water and sanitation into a reality. The ambitious goals of the SDGs and SDG6 in particular require all energies to be mobilised.
Maputo, Mozambique, from 5 to 6 December, 2017. AquaFed connects global private service providers, operators and other innovative and entrepreneurial players in water, education and health with governments and civil society to drive forward progress on SDG6 and WASH indicators, at the SWA steering committee meeting this week. Here, AquaFed represents private water operators in its function as elected private sector representative in the SWA governance body.
The two main items on the agenda for the Steering Committee are how best to support national governments to achieve WASH and also ensuring good governance. AquaFed's shows that the private operators of all sizes and specialisms can be part of multi-stakeholder solutions to support countries to set and achieve their SDG6 targets.
The Sanitation and Water for All (SWA) Partnership is made up of representatives from Government (mostly finance) ministries, civil society and NGOs, academics and the private sector. It aims to raise awareness of WASH and SDG 6 in national governments, and advise on how to raise finance and also ensure strong governance on water and sanitation projects.
Why a World Toilet Day?
Today, billions of people don' have access to adequate sanitation, and this causes death and illness, damage to the environment and holds back economic growth., 2,000 children die every day from diarrhoea caused by diseases caused from poor sanitation. The World Toilet Day aims to highlight each year the effects of poor sanitation and hygiene and to inspire everyone to take action to solve this global crisis. The international community agreed two years ago with the Sustainable Development Goals (SDG) on a dedicated water and sanitation goal. This goal number 6 aims to reach everyone with sanitation, and halve the proportion of untreated wastewater and increase recycling and safe reuse by 2030 – so we have a lot of work to do.
The World Toilet Day is the international day about taking action on sanitation issues. The First United Nations World Toilet Day was celebrated on 19 November 2013. It has been held annually since then. Each year, the United Nations set a theme for World Water Day corresponding to a current or future challenge. In 2017 it is "Wastewater".
What has sanitation got to do with toilets and water operators?
To achieve the sanitation goal, we need each person´s "output" to be contained, transported, treated and disposed of in a safe and sustainable way. This is a human right and it can be achieved through wastewater management. Operators collect the wastewater, treat it and then release it back into the nature or for further re-use. They can also turn the wastes in wastewater into reusable resources using a circular economy approach.
Today, billions of people around the world cannot enjoy their human right to sanitation. This means that wastewater systems and treatment are either non-existent or ineffective. As a consequence, human waste is left untreated and causes deadly diseases spread with severe impact on health of the people and the environment.
Wastewater management is one of the biggest challenges to better protect human and environmental health. Although in most countries, wastewater management has lower priority than water provision, there is an urgent need to promote effective wastewater treatment and disposal, and to encourage the protection of ecosystems. Legal framework and cross-sectoral policy are essential.
What do private water and wastewater operators do?
Private water and wastewater operators are private companies that provide public water and wastewater services. The public authorities control and direct them. They decide through the contract with the private operator the details and perimeters of this public services. This includes tariffs and extension of the service.
Private water operators deliver safe water and sanitation services to all water and wastewater users, who are people, businesses, institutions and the environment.
Universal access to adequate sanitation is a fundamental need and human right. Securing access for all would go a long way in reducing illness and death.
Since 2000, 1.4 billion people have gained access to basic sanitation, such as flush toilets or latrine with a slab which are not shared with other households.
The data reveal pronounced disparities, with the poorest and those living in informal settlements, slums and rural areas least likely to use a basic service.
One of the main causes of drinking water pollution and diarrhea incidences is open defecation. This requires an urgent need to promote and implement effective wastewater treatment and disposal.
"Safely managed" sanitation services represent a higher service level that takes into account the final disposal of excreta. In 2015, 2.9 billion people used a "safely managed" sanitation service, i.e. a basic facility where excreta are disposed in situ or treated off-site. A further 2 billion people used a "basic service", i.e. an improved facility that is not shared with other households. The 600 million who shared improved sanitation facilities with other households count as a "limited service".
The 2017 NAWC Water Summit took place in Seattle Washington between 15-17 October 2017. The annual conference provides a forum for leaders in the water industry, public officials and other key stakeholders to exchange ideas, learn from one another and share solutions that sustain businesses and communities.
The infrastructure challenges and opportunities facing American water companies is the major theme of this 2017 NAWC Water Summit, the National Association of Water Companies (NAWC) annual conference.
The NAWC is the voice of the private water companies in North America and is a member of Aquafed. NAWC members help provide essential water and wastewater services to nearly 73 million people in the United States. That's almost one quarter of its population.
Neil Dhot, Aquafed's Executive Director, spoke as part of a panel discussing the lessons to be learned from rate regulation in other countries on the second day of the summit. The panel discussed the pros and cons of price cap and rate of return regulation. The discussion also touched on other finance-related issues such as current investor sentiment and outlook on the north American water sector. Subjects related to rate regulation, such as how it can incentivise operational outperformance and even customer engagement were also debated.
Other topics of debate at the event in Seattle were how regulation can best address the infrastructure needs of the water industry, global threats, the implications for infrastructure companies, and the best strategies to prevent and ageing workforce in the water sector.
AquaFed represents the community of private water operators at the World Water Week in Stockholm, Sweden. The Federation is co-organising a seminar and a full day session and is further on involved in the implementation of various session as speaker or facilitator.
This session aims to show how gender roles and relations affect and are affected by WASH and water resource interventions. This understanding can increase sustainability and resource efficiency, and thereby enhance the benefits for all.
Participants discuss and explore the interlinkages of SDG6.3 and SDG5 and show examples of how women are affected differently by lacking wastewater management, but also how women play a key role in sustaining wastewater management service provision.
This full-day, three-session-seminar explores options for in-depth risk assessments and identify targeted, innovative solutions to better manage wastewater, reducing risks to human health, and maximizing health co-benefits - all under the banner of the 2030 Agenda!
The seminar is co-organised by Aarhus University, AquaFed, Stockholm International Water Institute, World Health Organization.
Resource Recovery and Reuse (RRR) is an important strategy to achieve several SDGs concerning environmental and human health, food security, waste and rural-urban linkages. How should financing mechanisms and business models be designed to ensure sustainable services and limited public resources leverage?
The session brings together practitioners, representatives from the public and private sector and development partners to review state of the art knowledge about the policy architecture, market mechanisms, institutional arrangements and incentive frameworks to facilitate RRR at scale. The session identifies regulatory barriers that constrain revenue generation.
The session is co-organised by Stockholm International Water Institute, 2030 Water Resources Group, CAF - Development Bank of Latin America, International Water Management Institute.
The high-level United Nations Ocean Conference took place at the UN Headquarters in New York 5-9 June, 2017. Aiming to be the game changer that will reverse the decline in the health of our ocean for people, planet and prosperity, the conference was co-hosted by the Governments of Fiji and Sweden.
Voluntary commitments for The Ocean Conference are initiatives voluntarily undertaken by all the stakeholders that aim to contribute to the implementation of Sustainable Development Goal 14 within the framework of the 2030 Agenda.
A very large part of the pollution of the worlds estuaries, coastal waters and deep oceans originates from human activities on land. The degree of this pollution is growing every day with inestimable damage on the environment, economy and societies. All effecting the oceans. This does not need to be the case. AquaFed´s Members demonstrate on a daily basis how their work with the public authorities and communities they serve can improve and even cure such problems.
Please see the AquaFed voluntary commitment published on the Ocean Conference website.
On Wednesday 7th of June, 2017, UN-Water, UN-Oceans and the Action Platform for Source-to-Sea Management co-organized a side-event on the close relation for freshwater and oceans that would come through achieving SDG 6 and SDG 14.
The Sustainable Development Goals represent an integrated and indivisible agenda. Efforts to achieve SDG 14, the goal dedicated to protect and conserve the oceans, have to be undertaken in collaboration with multi-stakeholder approach, including the many stakeholders who operate far upstream from coasts and oceans. There are two UN inter-agency mechanisms to strengthen coordination of United Nations system activities related to freshwater and ocean/coastal issues - UN-Water and UN-Oceans. Their members and partner organizations jointly gather knowledge on most water and ocean-related challenges facing the world today.
This event presented priority areas as identified by UN-Water and UN-Oceans and discussed how the UN System and its partners can support Member States and other relevant stakeholders in achieving the SDG 14. The event especially focused on those aspects that are dependent upon actions upstream, and what type of relations and conversations are needed to instill such action. The event explored how the implementation of the SDG 6 could contribute to achieving SDG 14, identified opportunities for collaboration and provided recommendations to UN agencies and partners to support coordinated SDG implementation.
AquaFed as Partner of UN-Water participated in the panel discussion, presenting private water operators messages and best practices.
Please see and download the summary of the side event here.


When you are a portion of a business, in different potential, joining appointments is a crucial fraction of the career. Actually making a company is really a big action for any type of entrepreneur, but nonetheless, the idea certainly do not happen instantaneously. Transforming a firm isn't easy. Finally, be sure you at all times place personal advancement goals since even in cases where that influence the provider straightaway, any kind of advantage for your boss to a provider or even team definitely will convert to other men and adult females within the type of enthusiasm and any higher stage of knowledge within that will respective sector.
If most likely the sole individual in the company, uncover yet another entrepreneur throughout the specific circumstance in addition to work over a good business when you be sure a person another's organisations no longer become a mistake. Concentrate on what perfect to get the firm. With ineffective conferences resulting in the loss involving output, companies will definitely seem for programs. After you might have established your good small business, it's important to establish company targets, both long term and short words.
Help make certain the fact that the very themes you intend in treatment are generally regarding the main people asked to often the conference. Further the particular events have got picked up required since we have been generally stepping up the models, procedures, in addition to products and solutions. Through some basic principles, you will certainly have to be able to have some much far more productive meeting in form a contrast to a good unorganised conference program.
Meetings are generally notorious moment drains, so it is vital to make certain that you include a best explanation behind positioning yours, but some anticipated solutions. Ultimately, it can well seriously worth stopping your own encounter some sort of fast recap. Interestingly, but if you step by a meeting with an important mobile phone call, they'll just about all realize the way in which busy plus important you will absolutely.
Folks typically default to be able to meetings as soon as they will need to look at something, trading info, or simply ask an issue. Kanban-style get togethers begin through the huddle a couple of physiological or electric table having different posts for a number of phases of any job. Sound meetings generally lack the mandatory features pertaining to contact selling and likewise overlook often the effects involving face-to-face conversing.
In any other case, that looks enjoy a gathering just isn't necessary. Business meetings are helpful on constructing company rapport and even company associations. They usually are thought to be as an effective way to convey workers along to talk about essential matters and also formulate innovative recommendations. These can get boring affairs, normally choosing up many of the day, but are also the place where things acquire decided and give a likelihood for associates to enter their thoughts over new items or expert services. They can certainly forget pertaining to many causes, and a single of the extremely popular is usually that the completely wrong people are around attendance. Often the key to help holding an efficient small internet business gathering is normally to protect all the very various procedures you can most out of which.


These videos, filmed at the Museum of Art Ft. Lauderdale, owned by Nova Southeast University, allow a new way to gain wisdom from an ancient culture from a un-established way of learning. They set a new precedent for museums and educational worlds.
A Metaphysical Examination of an Ancient Culture, Learning Beyond the Human Mind.
A Metaphysical View of the Educational System.
Moving Into A New Level Of Consciousness.


Having a meaningful command prompt can be incredibly helpful when working on several machines, remote computers, and using different credentials. So I use the following command prompt on all of my machines… this allows me to easily know who and how I connected to a remote share when I'm using the command line interface (cli).
You can save the text above into a text file and save it with the .reg extension and then you can apply it by double clicking on the file.


1. Full solid Mahogany wood, sound good and durable in use.
2. Mineral steel key, play comfortable and durable in use.
3.Two hole on the back, Rich in rhythm.
why 17 Key Kalimba is popular?
1 .The kalimba is easy to Play and Portable to go Just hold Kalimba in your hand and slide tunes by thumb.
2 It is also convenience when go outdoor with a portable bag to carry on.To gain your joys whenever and wherever.
3.Quick to Learn with a guidance: An instructions is prepared for beginners to learn how to use and tune Kalimba as well as learn some practical songs that also works for basic learner.


Experience living a day with its greenhouse-themed accommodation. To make it more grandiose, the Presidential Suite is designed to flatter the meticulous eyes and the distinguished lifestyle of sightseers. It is over looking the glorious and impressive epitome of the Heart of Goshen – the Colosseum, facing a picturesque perfect view. If you Have been dreaming to live like an Emperor? This will certainly captivate your senses.