text:
/*
 *  System MIB group implementation - system.c
 *
 */
/* Portions of this file are subject to the following copyright(s).  See
 * the Net-SNMP's COPYING file for more details and other copyrights
 * that may apply:
 */
/*
 * Portions of this file are copyrighted by:
 * Copyright © 2003 Sun Microsystems, Inc. All rights reserved.
 * Use is subject to license terms specified in the COPYING file
 * distributed with the Net-SNMP package.
 */

#include <net-snmp/net-snmp-config.h>

#if HAVE_STDLIB_H
#include <stdlib.h>
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#if HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
#endif
#include <sys/types.h>
#if HAVE_WINSOCK_H
#include <winsock.h>
#endif

#if !defined(mingw32) && defined(HAVE_SYS_TIME_H)
#include <sys/time.h>
#endif

#include <ctype.h>
#if HAVE_UTSNAME_H
#include <utsname.h>
#else
#if HAVE_SYS_UTSNAME_H
#include <sys/utsname.h>
#endif
#endif
#if HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif

#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>

#include "util_funcs.h"
#include "system_mib.h"
#include "struct.h"
#include "sysORTable.h"

        /*********************
	 *
	 *  Kernel & interface information,
	 *   and internal forward declarations
	 *
	 *********************/

#define SYS_STRING_LEN	256
char            version_descr[SYS_STRING_LEN] = NETSNMP_VERS_DESC;
char            sysContact[SYS_STRING_LEN] = NETSNMP_SYS_CONTACT;
char            sysName[SYS_STRING_LEN] = NETSNMP_SYS_NAME;
char            sysLocation[SYS_STRING_LEN] = NETSNMP_SYS_LOC;
oid             sysObjectID[MAX_OID_LEN];
size_t          sysObjectIDLength;

extern oid      version_sysoid[];
extern int      version_sysoid_len;

char            oldversion_descr[SYS_STRING_LEN];
char            oldsysContact[SYS_STRING_LEN];
char            oldsysName[SYS_STRING_LEN];
char            oldsysLocation[SYS_STRING_LEN];

int             sysServices = 72;
int             sysServicesConfiged = 0;

extern oid      version_id[];
extern int      version_id_len;

static int      sysContactSet = 0, sysLocationSet = 0, sysNameSet = 0;

WriteMethod     writeSystem;
int             header_system(struct variable *, oid *, size_t *, int,
                              size_t *, WriteMethod **);

#if (defined (WIN32) && defined (HAVE_WIN32_PLATFORM_SDK)) || defined (mingw32)
static void     windowsOSVersionString(char [], size_t);
#endif

        /*********************
	 *
	 *  snmpd.conf config parsing
	 *
	 *********************/

void
system_parse_config_sysdescr(const char *token, char *cptr)
{
    char            tmpbuf[1024];

    if (strlen(cptr) >= sizeof(version_descr)) {
        snprintf(tmpbuf,
                 sizeof(tmpbuf),
                 "sysdescr token too long (must be < %lu):\n\t%s",
                 (unsigned long)sizeof(version_descr),
                 cptr);
        config_perror(tmpbuf);
    } else if (strcmp(cptr, "\"\"") == 0) {
        version_descr[0] = '\0';
    } else {
        strcpy(version_descr, cptr);
    }
}

void
system_parse_config_sysloc(const char *token, char *cptr)
{
    char            tmpbuf[1024];

    if (strlen(cptr) >= sizeof(sysLocation)) {
        snprintf(tmpbuf, 1024,
                 "syslocation token too long (must be < %lu):\n\t%s",
                 (unsigned long)sizeof(sysLocation), cptr);
        config_perror(tmpbuf);
    }

    if (strcmp(token, "psyslocation") == 0) {
        if (sysLocationSet < 0) {
            /*
             * This is bogus (and shouldn't happen anyway) -- the sysLocation
             * is already configured read-only.
             */
            snmp_log(LOG_WARNING,
                     "ignoring attempted override of read-only sysLocation.0\n");
            return;
        } else {
            sysLocationSet++;
        }
    } else {
        if (sysLocationSet > 0) {
            /*
             * This is bogus (and shouldn't happen anyway) -- we already read a
             * persistent value of sysLocation, which we should ignore in
             * favour of this one.
             */
            snmp_log(LOG_WARNING,
                     "ignoring attempted override of read-only sysLocation.0\n");
            /*
             * Fall through and copy in this value.
             */
        }
        sysLocationSet = -1;
    }

    if (strcmp(cptr, "\"\"") == 0) {
        sysLocation[0] = '\0';
    } else if (strlen(cptr) < sizeof(sysLocation)) {
        strcpy(sysLocation, cptr);
    }
}

void
system_parse_config_syscon(const char *token, char *cptr)
{
    char            tmpbuf[1024];

    if (strlen(cptr) >= sizeof(sysContact)) {
        snprintf(tmpbuf, 1024,
                 "syscontact token too long (must be < %lu):\n\t%s",
                 (unsigned long)sizeof(sysContact), cptr);
        config_perror(tmpbuf);
    }

    if (strcmp(token, "psyscontact") == 0) {
        if (sysContactSet < 0) {
            /*
             * This is bogus (and shouldn't happen anyway) -- the sysContact
             * is already configured read-only.
             */
            snmp_log(LOG_WARNING,
                     "ignoring attempted override of read-only sysContact.0\n");
            return;
        } else {
            sysContactSet++;
        }
    } else {
        if (sysContactSet > 0) {
            /*
             * This is bogus (and shouldn't happen anyway) -- we already read a
             * persistent value of sysContact, which we should ignore in favour
             * of this one.
             */
            snmp_log(LOG_WARNING,
                     "ignoring attempted override of read-only sysContact.0\n");
            /*
             * Fall through and copy in this value.
             */
        }
        sysContactSet = -1;
    }

    if (strcmp(cptr, "\"\"") == 0) {
        sysContact[0] = '\0';
    } else if (strlen(cptr) < sizeof(sysContact)) {
        strcpy(sysContact, cptr);
    }
}

void
system_parse_config_sysname(const char *token, char *cptr)
{
    char            tmpbuf[1024];

    if (strlen(cptr) >= sizeof(sysName)) {
        snprintf(tmpbuf, 1024,
                 "sysname token too long (must be < %lu):\n\t%s",
                 (unsigned long)sizeof(sysName), cptr);
        config_perror(tmpbuf);
    }

    if (strcmp(token, "psysname") == 0) {
        if (sysNameSet < 0) {
            /*
             * This is bogus (and shouldn't happen anyway) -- the sysName
             * is already configured read-only.
             */
            snmp_log(LOG_WARNING,
                     "ignoring attempted override of read-only sysName.0\n");
            return;
        } else {
            sysNameSet++;
        }
    } else {
        if (sysNameSet > 0) {
            /*
             * This is bogus (and shouldn't happen anyway) -- we already read a
             * persistent value of sysName, which we should ignore in favour
             * of this one.
             */
            snmp_log(LOG_WARNING,
                     "ignoring attempted override of read-only sysName.0\n");
            /*
             * Fall through and copy in this value.
             */
        }
        sysNameSet = -1;
    }

    if (strcmp(cptr, "\"\"") == 0) {
        sysName[0] = '\0';
    } else if (strlen(cptr) < sizeof(sysName)) {
        strcpy(sysName, cptr);
    }
}

void
system_parse_config_sysServices(const char *token, char *cptr)
{
    sysServices = atoi(cptr);
    sysServicesConfiged = 1;
}

void system_parse_config_sysObjectID(const char *token, char *cptr)
{
    char tmpbuf[1024];

    sysObjectIDLength = MAX_OID_LEN;
    if (!read_objid(cptr, sysObjectID, &sysObjectIDLength)) {
        snprintf(tmpbuf,
                 sizeof(tmpbuf),
                 "sysobjectid token not a parsable OID:\n\t%s",
                 cptr);
        config_perror(tmpbuf);
        memcpy(sysObjectID, version_sysoid, version_sysoid_len * sizeof(oid));
        sysObjectIDLength = version_sysoid_len;
    }
}

        /*********************
	 *
	 *  Initialisation & common implementation functions
	 *
	 *********************/

/*
 * define the structure we're going to ask the agent to register our
 * information at
 */
struct variable1 system_variables[] = {
    {VERSION_DESCR, ASN_OCTET_STR, RONLY, var_system, 1, {1}},
    {VERSIONID, ASN_OBJECT_ID, RONLY, var_system, 1, {2}},
    {UPTIME, ASN_TIMETICKS, RONLY, var_system, 1, {3}},
    {SYSCONTACT, ASN_OCTET_STR, RWRITE, var_system, 1, {4}},
    {SYSTEMNAME, ASN_OCTET_STR, RWRITE, var_system, 1, {5}},
    {SYSLOCATION, ASN_OCTET_STR, RWRITE, var_system, 1, {6}},
    {SYSSERVICES, ASN_INTEGER, RONLY, var_system, 1, {7}},
    {SYSORLASTCHANGE, ASN_TIMETICKS, RONLY, var_system, 1, {8}}
};
/*
 * Define the OID pointer to the top of the mib tree that we're
 * registering underneath
 */
oid             system_variables_oid[] = { SNMP_OID_MIB2, 1 };
oid             system_module_oid[] = { SNMP_OID_SNMPMODULES, 1 };
int             system_module_oid_len =
    sizeof(system_module_oid) / sizeof(oid);
int             system_module_count = 0;

static int
system_store(int a, int b, void *c, void *d)
{
    char            line[SNMP_MAXBUF_SMALL];

    if (sysLocationSet > 0) {
        snprintf(line, SNMP_MAXBUF_SMALL, "psyslocation %s", sysLocation);
        snmpd_store_config(line);
    }
    if (sysContactSet > 0) {
        snprintf(line, SNMP_MAXBUF_SMALL, "psyscontact %s", sysContact);
        snmpd_store_config(line);
    }
    if (sysNameSet > 0) {
        snprintf(line, SNMP_MAXBUF_SMALL, "psysname %s", sysName);
        snmpd_store_config(line);
    }

    return 0;
}

void
init_system_mib(void)
{

#ifdef HAVE_UNAME
    struct utsname  utsName;

    uname(&utsName);
    snprintf(version_descr, sizeof(version_descr),
            "%s %s %s %s %s", utsName.sysname,
            utsName.nodename, utsName.release, utsName.version,
            utsName.machine);
    version_descr[ sizeof(version_descr)-1 ] = 0;
#else
#if HAVE_EXECV
    struct extensible extmp;

    /*
     * set default values of system stuff
     */
    sprintf(extmp.command, "%s -a", UNAMEPROG);
    /*
     * setup defaults
     */
    extmp.type = EXECPROC;
    extmp.next = NULL;
    exec_command(&extmp);
    strlcpy(version_descr, extmp.output, sizeof(version_descr));
    if (strlen(version_descr) >= 1)
        version_descr[strlen(version_descr) - 1] = 0; /* chomp new line */
#else
#if (defined (WIN32) && defined (HAVE_WIN32_PLATFORM_SDK)) || defined (mingw32)
    windowsOSVersionString(version_descr, sizeof(version_descr));
#else
    strcpy(version_descr, "unknown");
#endif
#endif
#endif

#ifdef HAVE_GETHOSTNAME
    gethostname(sysName, sizeof(sysName));
#else
#ifdef HAVE_UNAME
    strlcpy(sysName, utsName.nodename, sizeof(sysName));
#else
#if defined (HAVE_EXECV) && !defined (mingw32)
    sprintf(extmp.command, "%s -n", UNAMEPROG);
    /*
     * setup defaults
     */
    extmp.type = EXECPROC;
    extmp.next = NULL;
    exec_command(&extmp);
    strlcpy(sysName, extmp.output, sizeof(sysName));
    if (strlen(sysName) >= 1)
        sysName[strlen(sysName) - 1] = 0; /* chomp new line */
#else
    strcpy(sysName, "unknown");
#endif                          /* HAVE_EXECV */
#endif                          /* HAVE_UNAME */
#endif                          /* HAVE_GETHOSTNAME */

#if (defined (WIN32) && defined (HAVE_WIN32_PLATFORM_SDK)) || defined (mingw32)
  {
    HKEY hKey;
    /* Default sysContact is the registered windows user */
    if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS) {
       char registeredOwner[256] = "";
       DWORD registeredOwnerSz = 256;
       if (RegQueryValueEx(hKey, "RegisteredOwner", NULL, NULL, (LPBYTE)registeredOwner, &registeredOwnerSz) == ERROR_SUCCESS) {
          strcpy(sysContact, registeredOwner);
       }
       RegCloseKey(hKey);
    }
  }
#endif

    /* default sysObjectID */
    memcpy(sysObjectID, version_sysoid, version_sysoid_len * sizeof(oid));
    sysObjectIDLength = version_sysoid_len;

    /*
     * register ourselves with the agent to handle our mib tree
     */
    REGISTER_MIB("mibII/system", system_variables, variable1,
                 system_variables_oid);

    if (++system_module_count == 3)
        REGISTER_SYSOR_ENTRY(system_module_oid,
                             "The MIB module for SNMPv2 entities");

    sysContactSet = sysLocationSet = sysNameSet = 0;

    /*
     * register our config handlers
     */
    snmpd_register_config_handler("sysdescr",
                                  system_parse_config_sysdescr, NULL,
                                  "description");
    snmpd_register_config_handler("syslocation",
                                  system_parse_config_sysloc, NULL,
                                  "location");
    snmpd_register_config_handler("syscontact", system_parse_config_syscon,
                                  NULL, "contact-name");
    snmpd_register_config_handler("sysname", system_parse_config_sysname,
                                  NULL, "node-name");
    snmpd_register_config_handler("psyslocation",
                                  system_parse_config_sysloc, NULL, NULL);
    snmpd_register_config_handler("psyscontact",
                                  system_parse_config_syscon, NULL, NULL);
    snmpd_register_config_handler("psysname", system_parse_config_sysname,
                                  NULL, NULL);
    snmpd_register_config_handler("sysservices",
                                  system_parse_config_sysServices, NULL,
                                  "NUMBER");
    snmpd_register_config_handler("sysobjectid",
                                  system_parse_config_sysObjectID, NULL,
                                  "OID");
    snmp_register_callback(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_STORE_DATA,
                           system_store, NULL);

}

        /*********************
	 *
	 *  System specific implementation functions
	 *
	 *********************/

#ifdef USING_MIBII_SYSORTABLE_MODULE
extern struct timeval sysOR_lastchange;
#endif

u_char         *
var_system(struct variable *vp,
           oid * name,
           size_t * length,
           int exact, size_t * var_len, WriteMethod ** write_method)
{
    static u_long   ulret;

    if (header_generic(vp, name, length, exact, var_len, write_method) ==
        MATCH_FAILED)
        return NULL;

    switch (vp->magic) {
    case VERSION_DESCR:
        *var_len = strlen(version_descr);
        return (u_char *) version_descr;
    case VERSIONID:
        *var_len = sysObjectIDLength * sizeof(sysObjectID[0]);
        return (u_char *)sysObjectID;
    case UPTIME:
        ulret = netsnmp_get_agent_uptime();
        return ((u_char *) & ulret);
    case SYSCONTACT:
        *var_len = strlen(sysContact);
        *write_method = writeSystem;
        return (u_char *) sysContact;
    case SYSTEMNAME:
        *var_len = strlen(sysName);
        *write_method = writeSystem;
        return (u_char *) sysName;
    case SYSLOCATION:
        *var_len = strlen(sysLocation);
        *write_method = writeSystem;
        return (u_char *) sysLocation;
    case SYSSERVICES:
#if NETSNMP_NO_DUMMY_VALUES
        if (!sysServicesConfiged)
            return NULL;
#endif
        long_return = sysServices;
        return (u_char *) & long_return;

#ifdef USING_MIBII_SYSORTABLE_MODULE
    case SYSORLASTCHANGE:
        ulret = netsnmp_timeval_uptime(&sysOR_lastchange);
        return ((u_char *) & ulret);
#endif

    default:
        DEBUGMSGTL(("snmpd", "unknown sub-id %d in var_system\n",
                    vp->magic));
    }
    return NULL;
}

int
writeSystem(int action,
            u_char * var_val,
            u_char var_val_type,
            size_t var_val_len,
            u_char * statP, oid * name, size_t name_len)
{
    u_char         *cp;
    char           *buf = NULL, *oldbuf = NULL;
    int             count, *setvar = NULL;

    switch ((char) name[7]) {
    case VERSION_DESCR:
    case VERSIONID:
    case UPTIME:
        snmp_log(LOG_ERR, "Attempt to write to R/O OID\n");
        return SNMP_ERR_NOTWRITABLE;
    case SYSCONTACT:
        buf = sysContact;
        oldbuf = oldsysContact;
        setvar = &sysContactSet;
        break;
    case SYSTEMNAME:
        buf = sysName;
        oldbuf = oldsysName;
        setvar = &sysNameSet;
        break;
    case SYSLOCATION:
        buf = sysLocation;
        oldbuf = oldsysLocation;
        setvar = &sysLocationSet;
        break;
    case SYSSERVICES:
    case SYSORLASTCHANGE:
        snmp_log(LOG_ERR, "Attempt to write to R/O OID\n");
        return SNMP_ERR_NOTWRITABLE;
    default:
        return SNMP_ERR_GENERR; /* ??? */
    }

    switch (action) {
    case RESERVE1:             /* Check values for acceptability */
        if (var_val_type != ASN_OCTET_STR) {
            snmp_log(LOG_ERR, "not string\n");
            return SNMP_ERR_WRONGTYPE;
        }
        if (var_val_len > sizeof(sysLocation) - 1) {
            snmp_log(LOG_ERR, "bad length\n");
            return SNMP_ERR_WRONGLENGTH;
        }

        for (cp = var_val, count = 0; count < (int) var_val_len;
             count++, cp++) {
            if (!isprint(*cp)) {
                snmp_log(LOG_ERR, "not print %x\n", *cp);
                return SNMP_ERR_WRONGVALUE;
            }
        }
        if (setvar != NULL && *setvar < 0) {
            /*
             * The object is set in a read-only configuration file.
             */
            return SNMP_ERR_NOTWRITABLE;
        }
        break;

    case RESERVE2:             /* Allocate memory and similar resources */

        /*
         * Using static strings, so nothing needs to be done
         */
        break;

    case ACTION:               /* Perform the SET action (if reversible) */

        /*
         * Save the old value, in case of UNDO
         */
        strcpy(oldbuf, buf);
        memcpy(buf, var_val, var_val_len);
        buf[var_val_len] = 0;
        break;

    case UNDO:                 /* Reverse the SET action and free resources */

        strcpy(buf, oldbuf);
        oldbuf[0] = 0;
        break;

    case COMMIT:
        if (setvar != NULL) {
            *setvar = 1;
        }
        snmp_save_persistent(netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_APPTYPE));
        (void) snmp_call_callbacks(SNMP_CALLBACK_LIBRARY,
                                   SNMP_CALLBACK_STORE_DATA, NULL);
        snmp_clean_persistent(netsnmp_ds_get_string
                              (NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_APPTYPE));

    case FREE:                 /* Free any resources allocated */

        /*
         * No resources have been allocated, but "empty" the 'oldbuf'
         */
        oldbuf[0] = 0;
        break;
    }
    return SNMP_ERR_NOERROR;
}                               /* end of writeSystem */

        /*********************
	 *
	 *  Internal implementation functions - None
	 *
	 *********************/

#if (defined (WIN32) && defined (HAVE_WIN32_PLATFORM_SDK)) || defined (mingw32)
static void
windowsOSVersionString(char stringbuf[], size_t stringbuflen)
{
    /* copy OS version to string buffer in 'uname -a' format */
    OSVERSIONINFOEX osVersionInfo;
    BOOL gotOsVersionInfoEx;
    char windowsVersion[256] = "";
    char hostname[256] = "";
    char identifier[256] = "";
    DWORD identifierSz = 256;
    HKEY hKey;

    ZeroMemory(&osVersionInfo, sizeof(OSVERSIONINFOEX));
    osVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    gotOsVersionInfoEx = GetVersionEx((OSVERSIONINFO *)&osVersionInfo);
    if (gotOsVersionInfoEx == FALSE) {
       GetVersionEx((OSVERSIONINFO *)&osVersionInfo);
    }

    switch (osVersionInfo.dwPlatformId) {
       case VER_PLATFORM_WIN32_NT:
          if ((osVersionInfo.dwMajorVersion == 5) && (osVersionInfo.dwMinorVersion == 2)) {
             strcat(windowsVersion, "Server 2003");
          } else if ((osVersionInfo.dwMajorVersion == 5) && (osVersionInfo.dwMinorVersion == 1)) {
             strcat(windowsVersion, "XP");
          } else if ((osVersionInfo.dwMajorVersion == 5) && (osVersionInfo.dwMinorVersion == 0)) {
             strcat(windowsVersion, "2000");
          } else if (osVersionInfo.dwMajorVersion <= 4) {
             strcat(windowsVersion, "NT");
          }
          if (gotOsVersionInfoEx == TRUE) {
             if (osVersionInfo.wProductType == VER_NT_WORKSTATION) {
                if (osVersionInfo.dwMajorVersion == 4) {
                   strcat(windowsVersion, " Workstation 4.0");
                } else if (osVersionInfo.wSuiteMask & VER_SUITE_PERSONAL) {
                   strcat(windowsVersion, " Home Edition");
                } else {
                   strcat(windowsVersion, " Professional");
                }
             } else if (osVersionInfo.wProductType == VER_NT_SERVER) {
                if ((osVersionInfo.dwMajorVersion == 5) && (osVersionInfo.dwMinorVersion == 2)) {
                   if (osVersionInfo.wSuiteMask & VER_SUITE_DATACENTER) {
                      strcat(windowsVersion, " Datacenter Edition");
                   } else if (osVersionInfo.wSuiteMask & VER_SUITE_ENTERPRISE) {
                      strcat(windowsVersion, " Enterprise Edition");
                   } else if (osVersionInfo.wSuiteMask == VER_SUITE_BLADE) {
                      strcat(windowsVersion, " Web Edition");
                   } else {
                      strcat(windowsVersion, " Standard Edition");
                   }
                } else if ((osVersionInfo.dwMajorVersion == 5) && (osVersionInfo.dwMinorVersion == 0)) {
                   if (osVersionInfo.wSuiteMask & VER_SUITE_DATACENTER) {
                      strcat(windowsVersion, " Datacenter Server");
                   } else if (osVersionInfo.wSuiteMask & VER_SUITE_ENTERPRISE) {
                      strcat(windowsVersion, " Advanced Server");
                   } else {
                      strcat(windowsVersion, " Server");
                   }
                } else {
                   if (osVersionInfo.wSuiteMask & VER_SUITE_ENTERPRISE) {
                      strcat(windowsVersion, " Server 4.0, Enterprise Edition");
                   } else {
                      strcat(windowsVersion, " Server 4.0");
                   }
                }
             }
          } else {
             char productType[80];
             DWORD productTypeSz = 80;

             if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Control\\ProductOptions", 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS) {
                if (RegQueryValueEx(hKey, "ProductType", NULL, NULL, (LPBYTE) productType, &productTypeSz) == ERROR_SUCCESS) {
                   char versionStr[10];
                   if (strcmpi("WINNT", productType) == 0) {
                      strcat(windowsVersion, " Workstation");
                   } else if (strcmpi("LANMANNT", productType) == 0) {
                      strcat(windowsVersion, " Server");
                   } else if (strcmpi("SERVERNT", productType) == 0) {
                      strcat(windowsVersion, " Advanced Server");
                   }
                   sprintf(versionStr, " %d.%d", (int)osVersionInfo.dwMajorVersion, (int)osVersionInfo.dwMinorVersion);
                   strcat(windowsVersion, versionStr);
                }
                RegCloseKey(hKey);
             }
          }
          break;
       case VER_PLATFORM_WIN32_WINDOWS:
          if ((osVersionInfo.dwMajorVersion == 4) && (osVersionInfo.dwMinorVersion == 90)) {
             strcat(windowsVersion, "ME");
          } else if ((osVersionInfo.dwMajorVersion == 4) && (osVersionInfo.dwMinorVersion == 10)) {
             strcat(windowsVersion, "98");
             if (osVersionInfo.szCSDVersion[1] == 'A') {
                strcat(windowsVersion, " SE");
             }
          } else if ((osVersionInfo.dwMajorVersion == 4) && (osVersionInfo.dwMinorVersion == 0)) {
             strcat(windowsVersion, "95");
             if ((osVersionInfo.szCSDVersion[1] == 'C') || (osVersionInfo.szCSDVersion[1] == 'B')) {
                strcat(windowsVersion, " OSR2");
             }
          }
          break;
    }

    gethostname(hostname, sizeof(hostname));

    if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0", 0, KEY_ALL_ACCESS, &hKey) == ERROR_SUCCESS) {
       RegQueryValueEx(hKey, "Identifier", NULL, NULL, (LPBYTE)&identifier, &identifierSz);
       RegCloseKey(hKey);
    }

    /* Output is made to look like results from uname -a */
    snprintf(stringbuf, stringbuflen,
            "Windows %s %d.%d.%d %s %s %s", hostname,
             (int)osVersionInfo.dwMajorVersion, (int)osVersionInfo.dwMinorVersion,
             (int)osVersionInfo.dwBuildNumber, osVersionInfo.szCSDVersion,
             windowsVersion, identifier);
}
#endif /* WIN32 and HAVE_WIN32_PLATFORM_SDK or mingw32 */


Back to Printer/Copier/Fax Repair FAQ Table of Contents. Printer and Photocopier Technology Dot matrix printer operation These are the only type of impact printers. 1 HOUR Best Female Vocal Dubstep Mix 2013 (Part 11) by DYJ Dubstep Remix 2013 Part 11 - Duration: 1:00:01. DYJ Mixes 86,780 views. Mar 31, 2015 Stream 1 HOUR Trap Music Mix 2015 Best of Trap music Trap Remix 2015 TRAP MIX (Mix by DYJ) by DYJ Music (Repost Page) from. Best Gaming Trap Music Mix. DYJ Music. Download Track. DYJ Music. @ dyjmusic More From DYJ Music. See All. The Best Trap And Dubstep By Lucas. DYJ Mixes is an advertising and promotional Youtube Channel for a large variety of Bass Music, like Dubstep, Trap, Drumstep, Electro, DnB, House, Glitch.


text:
Read Next Rage Against the Machine Detail History Behind 'Killing in the Name' in Mini-Doc
May 20, 2020 12:00PM ET
Rina Sawayama Simmers in Regret in 'Bad Friend' Video
Rising pop star released her debut album last month
Dressed in male drag, Rina Sawayama's night of drinking alone takes a turn in the video for "Bad Friend." The track appears on her self-titled debut album Sawayama.
The black-and-white video opens with Sawayama dressed like a sullen businessman sitting at a bar alone. The solo character proceeds to order a drink and somberly looks at his wedding ring, indicating a partner left at home. Suddenly, a much more animated solo male joins Sawayama at the bar, proceeding to get the both of them increasingly more drunk before Sawayama instigates a fistfight. The video ends in a Fight Club-esque fashion with Sawayama exiting some type of daze, hunched over a pool of blood with no trace of their fighting partner.
Over the cinematic string of events, Sawayama's song reflects on the highs and lows of friendship, specifically at the end of one. "I'm so good at crashing in/Making sparks and shit but then/I'm a bad, I'm a bad, I'm a bad friend," she sings on the chorus. "So don't ask me where I've been/Been avoiding everything/'Cause I'm a bad, I'm a bad, I'm a bad friend."
Sawayama was released on Dirty Hit last month. The singer-songwriter also made her debut on Rolling Stone's Breakthrough 25 chart, which ranks the artists making the biggest gains in audio streams each month.
In This Article: Rina Sawayama

redpajama_set_name: RedPajamaCommonCrawl


text:
FunkCity.net
Funk, Jazz and Soul Music in ATL and beyond
FunkCity.net Presents…
Thirty Great Albums In 2020
By: Jake Funkmayor
In: Album of the Week, ALBUMS, BANDS, BLOG POSTS, LISTS, WEEKLY PLAYLIST
"For everything there is a season, and a time for every purpose" and this year it was for listening intently to recorded music. In a time when live music was unimaginable, there was a plethora of terrific albums in 2020. This annual recap covers my most enjoyable albums released in the last 12 months. I tried to listen to as many as I could and crank out reviews at a good pace – many of those reviews are cited here. Hopefully you'll be curious enough to listen to some of them and they will bring you joy.
Resonate is the second album in the Lettuce-Russ Elevado trilogy following Grammy-nominated Elevate. After more than twenty years together, Lettuce is the preeminent funk band on the scene today. Starting with their friendship at Berklee College of Music, they've shaped their sound from classic funkers of yesteryear like James Brown and Tower of Power but put their own new fresh spin on things. Going back 10 years or more the band did not tour very much and released a studio album every few years. For the last several years, the band has been touring non-stop (pre COVID-19) and has become much more prolific in jam-funk-jazz improvisation and in recording albums. Resonate is the second in a trilogy of albums the band worked on with producer Russ Elevado. It follows on the heels of Elevate which came out under a year ago and was nominated for a Grammy as Best Contemporary Instrumental Album.
As with Elevate and some of the previous albums, Lettuce has played and refined many of Resonate's tunes on the road. Since I've been fortunate to see the band several times a year over the last few years, I've "previewed" most of this album in live shows. All of that had my expectations high and I can happily say they were exceeded as I'm blown away by the expansion of their repertoire. I originally got into the band because of their super funky vibes which they still have but they've evolved there sound into trippy funk with a darker edge. On this album they extend into Indian sounds (Moksha), house music (House of Lett), classic funk (Good Morning Mr. Shmink), and some very chill trance funk (Resonate).
Man From the Future is another exceptional release from Polyrhythmics on the Color Red label. This was one of my most listened to albums this year. Polyrhythmics are an eight-piece group with impossibly tight grooves and virtuosic musicianship. It's hard to believe they've been around for 10 years and I just first got to see them live perform a scintillating set at Suwannee Hulaween 2019 in Live Oak, Florida. That set was transcendent and many who saw it said it was the best of the fest.
The group was started by Ben Bloom (Guitar) and Grant Schroff, (Drums) and originally drew heavily on Afro-beat from such notables as Fela Kuti and The Budos Band. Since then, they've broadened their style tremendously to incorporate aspects of funk, soul, psychedelic rock, R&B and progressive jazz. I also hear some bits of Lettuce for the funk in the mix and even a bit of Lotus for the electronica aspect. The group is in a class of its own with its mix of multiple music styles — Afro-funktronica?.
Live at Royal Albert Hall was somewhat of a culmination of the Immigrance tour in 2019 in much the same way North Sea was in 2018 for the 2-year Culcha Vulcha tour. At this point the band had tweaked and refined the live performances after the album release earlier in the year. The sold out performance recording has been nominated for a Grammy for Best Contemporary Instrumental Album.
The production values are stellar with extra clear engineering nearly on par with studio album. The audience sound is notable in that it is absent from the recording except at precisely the right times – end of solos or end of songs. Not sure if this is part of the mixing or the audience was actually that in tune. The sound was big since there were thirteen band members instead of the usual eight to ten. Some of the personnel callouts are tough based on sound alone but I got great assistance from superfan Steven Haugereid. The songs are all by now familiar yet each one on this two-disc set has its own special aspects, either in the personnel, instrumentation or soloing and they are recapped here:
New-new songs from Immigrance (Even Us, While We're Young, Bad Kids to the Back, Bigly Strictness, Xavi, Chonks)
Older new songs (Tarova, Sleeper, Shofukan)
Old songs (Intelligent Design, Alma)
Long in the Tooth is the Budos Band's sixth album and it's thematic and terrific. Budos Band has long been one of my top bands to listen to and see live. Listening to the Budos is always an adrenaline rush.They started out as a superb Afrobeat band on Daptone Records. There always have been dark undertones in their music as you can see from the album covers below starting with the volcano, then scorpion, then cobra. The Budos Band morphed their sound to be especially dark and edgy with their fourth album "Burnt Offering" (the Wizard) and continued on "V".
Now I typically describe them as dark funk or metal funk. Every time I listen I feel like I'm either on a mystical, epic adventure or in imminent danger. Long In The Tooth's fully lives up to that with a Western theme, with several of the titles reflecting that throughout.
Our Kind of Movement is a great intro for me to the band Speedometer out of the United Kingdom. It's a helluva album with everything a funk fan could want. Great playing all around from the horns with some great baritone sax work, B3 organ, plucky guitar and bass and pulsating percussion.
Speedometer has been around for over 20 years at the forefront of the funk & soul scene in Europe. They started out in 1999 playing classic funk tunes by artists such as The Meters and The JB's in small clubs across the Southeast of England.
Our Kind of Movement is Speedometer's fifth album release for Freestyle (excluding two compilations of archive releases) and the band lays down a hefty dose of new heavy weight funk and soul tunes, as you would expect. All the tracks are excellent, with Kashmir a personal favorite.
Dansé Dansé from New Cool Collective (NCC) is a nonstop party. NCC out of The Netherlands, have been around for over 25 years now. Under the leadership of Benjamin Herman (sax), they have put out around 20 albums including a couple of big band albums and several collaborative efforts. The eight-piece band's sound perhaps is best described by one of their early album titles "Soul, Jazz, Latin Flavours Nineties Vibes", always with a retro feel but bringing something fresh to each album. On their latest album, New Cool Collective mix all those styles and more with a fast paced jaunt through time and space. They always with a retro feel but bringing something fresh to each album. Check out Bidibidi and you'll be singing by the end of the song.
Soul Food is timeless as is Maceo. M-A-C-E-O Parker is the most iconic funk sax player of all time, full stop. He's had a nearly 60-year career and has been on many of the most famous recordings of all time with James Brown, Parliament/Funkadelic, The JB's and since the early 1990s his own albums. He's one of those rare musicians that can go by one name only, Maceo! I've been a fan throughout his career and now he's come out with his first studio album in eight years. It's a great 10-track album with a definite New Orleans flair spanning eight covers and two Maceo originals.
He put together a veritable New Orleans all-star team to give it that full authenticity and paired them with a stellar track list that spans most of the timeline of his career.
Como De Allstars marked the return of GBA after a 13-year hiatus between recordings. It is the fifth studio album and sixth overall from The Greyboy Allstars and it's terrific from track-to-track. GBA formed over than 25 years ago in San Diego and immediately rekindled the light of "boogaloo" music, a popular Latin form from the 1960s in New York City. Their music has a feel for funk, jazz, beach and soul music.
Since their seminal album West Coast Boogaloo, this group has been hitting us with great but all too infrequent albums and even less frequent live shows. The Greyboy Allstars play together a few times a year now finding perennial respite from their busier gigs. On one such trek, they were in Texas for a rare weekend of shows. In Dallas, though, their set was canned due to raging weather. They found an open rehearsal room and challenged themselves to write their first new tunes in half a decade. They reveled in the same rapport they felt when they first stepped into a practice so long ago. "Getting the physical bodies together is almost impossible, given our schedules," says Elgin Park (Michael Andrews, guitar). "But it immediately feels like it did back then. We have such a great time."
Denson captured the Dallas jams with his laptop and passed them around. The Allstars soon reconvened for another writing session in San Diego, the band's cradle that remains the hometown for half its members. They decided to capture these songs much like they'd done in their earliest days, particularly for West Coast Boogaloo—on the cheap and on the quick, without overthinking a concept or production.
They dubbed the sessions Como de Allstars as a spin on the Spanish phrase como de costumbre, or "as per usual," since they've always been at their best when plowing through tunes without hesitation. The Greyboy Allstars' dual missions—to preserve the heritage of jazz-funk giants and empower it to grow on their terms—seem timeless now, as witnessed by their return with Como De Allstars.
Free Swim is a fresh album from another long-time favorite, Lotus, know for electronic jams or jamtronica. This could possibly seem like an outlier from the group but if you listen you'll hear elements of jazz and funk. They're always pushing the edges and this album is consistent with that, adding touches of vocals, flute and sax as accent pieces along the way.
Tell Your Friends – Remixed and Remastered marks the 10-year anniversary of this landmark album. It's pretty amazing that this early in their careers Snarky Puppy could put out an album with nothing but winners including White Cap, Ready Wednesday, Flood, Skate U and Slow Demon.
Tell Your Friends has a very prescient title, as a bunch of musicians in their mid-20s decided to do something wild – cut a live studio album, with no overdubs, with a small live audience and film crew in attendance. Sound like a plan? Then the band, with Michael League as its leader decided to put all tracks up on YouTube to build buzz and a worldwide phenomenon was launched. It was the beginning of everyone telling their friends about this great band, Snarky Puppy, and led them to make five more albums in this fashion.
Tell Your Friends is an outstanding album and one that will go down in history as a landmark. Each tune is a gem — there is not one that I would ever skip — and I encourage listening to the album in its entirety. This year is the tenth anniversary of its release and its timelessness is borne out by the fact four of the eight tracks are often played live. As the band resumes touring and they typically revive older tracks, I'm hoping to hear some of the hidden gems here played live too. This is one of my all time favorites amped up with the remix and remastering and will bring hours of listening delight.
Stand Up For Love from the Haggis Horns has a nice blend of funk and R&B. I first became aware of The Haggis Horns from their playing with The New Mastersounds on their debut album Keb Darge Presents (1999). Then I got hooked with their own debut album Enter The Haggis (2007). Both of these then turned me on to Corinne Bailey Rae, the wife of Jason Rae, the original Haggis sax player. So, I was excited to review their fifth album. "Stand Up For Love" which came out on their own label Haggis Records on May 22nd.
This album features singer John McCallum on seven out of the nine tracks making this their most vocal led album to date. He's also the guitarist on Corinne Bailey Rae's band and has been a floating member of The Haggis Horns since the beginning, recording their funk anthem "Hot Damn" back in 2007.
Live At Ronnie Scott's is a brilliant jazz trio album from Bill Laurance, a longstanding member of Snarky Puppy, and one of the original keys players. Often identified by fans for his sensual and sensitive playing, he also provides some of the band's most amazing keys solos. In addition, he an accomplished song writer having penned some of the groups most memorable tunes like Ready Wednesday and 34 Klezma.
Bill also has established a very successful career on his own producing four studio albums and three live albums. The trio emphasizes Bill's virtuosity as well as the other feature players musicianship.
Eight Cylinder Big Band from Matthias Bublath is a jazz & funk roller coaster and a helluva lot of fun. Although new to me, the 41-year old pianist, organist and composer has cut a number of albums, but never one of this magnitude, with a 17-piece band, most of which are horns. And I love them horns making this one of my favorite albums of 2020. In addition to the piano and keyboard, Matthias is a specialist on the Hammond B3 organ, able to play bass lines with the left hand and pedals simultaneously, and that shines throughout this album.
Matthias has performed at various festivals and events worldwide, including as the Montreux Jazz Festival, Kora Awards (Johannesburg, South Africa), and the Kennedy Center and toured all over Japan. He got some of his educational training at Berklee and then established his chops as a freelance musician in New York City for over seven years. The genres on this album cruise from big band jazz, blues, funk and gospel to Latin American rhythms. Takuya Kuroda, a long-time collaborator plays trumpet on three tunes including Matight Intro, Eight Cylinder and Gospel Song.
Step Up is the latest from Tower of Power, funk and soul legends, and the greatest horn band ever. This album is another beauty, following on the heels of 2018's Soul Side of Town which was recorded at the same time. In that respect, it again follows one of ToP's original recipes with some new twists as well. As with SSoT, it opens and closes with a split funky ride, this time East Bay! All the Way! coupled with East Bay! Oaktown All the Way! These bookend tunes are always fun to frame the album and were used effectively as far back as the Back to Oakland album (1974).
Step Up's production values are strong, with full orchestration and backup singers to accompany Tower's super tight and funky horns, excellent lyrics and masterful rhythm section anchored by David Garibaldi on skins. The album is a nice mix of funk, soul, and ballads and overall brings back that old school soulful sound.
Atmosphere garnered the Nightcrawlers their first Grammy nomination in the Best Regional Roots Music Album category. The Nightcrawlers have been around for more than 20 years and I first got hooked on them with Funknicity in 1997. Despite their tenure, this is only their fifth album and first since 2009's Slither Slice.
Although the group credits Dirty Dozen Brass Band as the progenitors of the brass bound sound, I feel the Nightcrawlers have definitely carved their way into the quintessential funk, brass NOLA style sound which they've made all their own. Listen to this album end to end and you'll be transported right to the center of Congo Square.
About Time is Malcolm Strachan's his 'rookie' solo album. Malcolm is best known as a founding member and trumpeter with the top UK funk/jazz-funk band The Haggis Horns. The Haggis Horns appeared regularly with The New Mastersounds including their very first album. Malcolm has been performing for over 20 years with such stellar performers as Mark Ronson, Amy WineHouse, Corinne Bailey Rae.
The album is a change of pace for Malcolm, primarily a jazz collection with all original compositions,written and arranged by Malcolm. From full-on latin vibes to beautiful ballads, soul jazz grooves to cinematic soundtrack flavours, all woven together by a great group of experienced musicians.
Malcolm's love of jazz comes from his parents and at age 7, his jazz musician father gave him a trumpet. He had a formal musical education but also learned from his dad's record collection listening to Art Blakey and Dizzy Gillespie records and learning to improvise and solo by ear. While attending Leeds College of Music, he immersed himself in the city's vibrant acid jazz, funk and soul scene and starting with his recording debut in 1999 with The New Mastersounds. Jazz was always his musical passion but took a back seat to funk/soul/pop which were the day job. Until now. Jazz is back. The wait is over. It really is "About Time" for Malcolm Strachan.
GoGo Penguin, the eponymous album is super-relaxing and most of the tunes have multiple layers. The band is a unique piano trio formed in 2012 in Manchester, England. Their sound defies any one conventional category as they cross between jazz, classical, funk, electronic, trance and hypnotic. I got hooked on them about four years ago when their third album Man Made Object came out. Now they've just released their fifth album with the eponymous title, GoGo Penguin. They're not really a "power" trio but their work is amazing because at times it can seem "orchestral." The group is comprised of pianist Chris Illingworth, bassist Nick Blacka, and drummer Rob Turner.
Typically, Chris Illingworth leads with an underlying complex melody, often playing the piano with one hand on the keys and one on the string board. Blacka and Turner come in with unusual syncopation and many cleverly timed patterns, starts and stops. It's great to review another wonderful release from this group. In these turbulent times, this one is like a stress antidote. Although the group had to postpone their 2020 tour, I definitely hope to catch them live whenever our paths cross.
#KingButch is this year's latest release from Butcher Brown, the Richmond, VA quintet that plays a mix of jazz, funk and hip/hop. Their music is not easy to characterize nor should it be. The group's been around since the early 2010s but only recently has begun more broad national touring. They recall some of the great fusion bands of the 70s including Weather Report and Return to Forever as well as some great individual players like Ronnie Laws, who they cover on this album with "Tidal Wave."
I've seen them live five times since 2018 including opening for Kamasi Washington at Atlanta's Buckhead Theatre in 2018. More recently, I've seen them three times in the last year or so, first opening for Lettuce in the Caverns in September 2019 and then two nights opening for The Motet at Terminal West in January 2020. These most recent shows made a big impact on me and I realized that they were a band that I would be catching every time they come to town.
At those shows this year, Butcher Brown previewed a number of the songs from their recent release #KingButch and it was clear that this was going to be an outstanding album.
Three-O is Shaun Martin's third album following 7 Summers and Focus, and naturally is a trio album. Shaun is a six-time Grammy award winner, three with Kirk Franklin and three with Snarky Puppy. That's a lot of threes. Shaun is an amazing keyboardist and definitely his own man. Yet, one of the things that I enjoy about his music is that he is so versatile in his playing and has an uncanny way of playing new songs in a familiar sounding way. He reminds me of what Joe Sample, another Texas keyboardist know for work with The Crusaders and as a solo performer once said during a live performance, "I'm in demand as a studio musician because I just play what I feel, whatever the music calls for." Each of the songs on this excellent album are uniquely Shaun, but I can't help but relating to some of the great keyboardists I've listened to my whole life.
There's a Tide is one of the best jazz albums you'll hear this year from a 12-piece band. The awe-inspiring aspect is that all twelve pieces are played by Chris Potter. As amazing as that is, the song's are a superb collection with Chris' impressive imprint on each track. s expected the woodwinds take the lead on each track here as Chris displays his remarkable dexterity on clarinet, bass clarinet, flute, alto flute and of course saxophones. Chris seamlessly switches the lead from one to the next and blends them smoothly so the album is remarkably cohesive. On top of that, the composition of all of the 'supporting' instruments is rock solid and that makes each track a winner. For each track there's at least one lead woodwind, sometimes two or three, and several solos.
PULS is one of this year's surprises for me. Truth be told, they're probably my most listened to groups of the last couple of months. Meute is an 11-piece marching band, all brass and percussion, delivering beat laden, hypnotic, techno-music. I came across them doing some research for another post and I was hooked. In fact, I checked and they were in Atlanta in November 2019 on their first North American tour and I missed them for some reason, but I won't miss them again. The band has been around since 2016 and this is their fourth album. All the tracks are good but my favorite is probably "What Else Is There?" the one vocal track on the album. Also check out Live in Paris which came out in 2019.
Tailwinds is Fearless Flyers their first full length album following its two EPS, Fearless Flyers I and II. The Fearless Flyers are a super-group featuring Joe Dart and Cory Wong from Vulfpeck, Mark Lettieri from Snarky Puppy and Nate Smith (Nate Smith, Chris Potter ). Tailwinds
Although the band is an offshoot, they are definitely distinctive in sound and cutting their own path. They've performed a few live shows including opening for Vulfpeck at the world's most famous arena, Madison Square Garden.
For this fine effort, they recruited their own horn section, the Delta Force, featuring Alekos Syropoulos (alto sax), Kenni Holmen (tenor sax) and Grace Kelly (baritone sax).
Live from Amsterdam is one of eight releases this year from the prodigious and prolific Cory Wong including five studio and three live. "Live" is with the Metropole Orkest from The Netherlands, another favorite of mine after collaborating with Snarky Puppy on the Grammy-winning album Sylva.
Cory as many know is frequently touring with Vulfpeck and is also a member of The Fearless Flyers (who have an album in this favorites list). He's got his own touring band (including Kevin Gastonguay who has an album in this favorites list) but this one features his repertoire of songs backed by the full jazz orchestra. There's something about hearing tunes you know and love backed by more than 40 musicians. The album also features Cody Fry on a couple of tunes. This one is fun to listen to and fun to watch.
Snapdragon was my introduction to Oz Noy, the Israeli virtuoso guitar player. Although I've heard of him and he's played with literally dozens of musicians I know and this is his 10th solo album, it's the first I've gave a thorough listen and the floodgates have opened. Oz plays a mix of jazz, funk, rock, blues, and r&b and the first song here, Looni Tooni, has such a groove that the album is worth purchasing just for that. On top of it all, the album features an all-star lineup –
"Among those stoking the fires of the rhythm section are Dennis Chambers, Vinnie Colaiuta, Dave Weckl, Will Lee, James Genus, and John Patitiucci, while Noy trades improvised solos and notated melodies with saxophonist Chris Potter, keyboardists David Kikoski and Jason Lindner, trumpeter John Sneider, guitarist Adam Rogers, and the recently deceased trumpet Wallace Roney, whose subtly blues-tinged solo glides over the nimble rhythmic modulations of "Outer Look." – Bandcamp
IWear My Face on My Head is a top notch funk/fusion album full stop. It's a great addition to the collection of any fan of Snarky Puppy, Lettuce, Soulive or any groove oriented band. I saw Kevin touring with Cory Wong few times but connected after the set at Sweetwater 420 Festival set in 2019. Kevin had some killer solos in every show so I was on the lookout when he released this album.
One of the fun things about the album is that each song has its own style and the instrumentation on each track is unique. Regarding how the album came together, Kevin relayed "I recorded the whole record remotely from April- July. I just emailed tracks to friends and then I'd often re-record parts to help make it feel more like we were playing together. Once I got all the tracks ready I met with my mix engineer Jason McGlone who helped put it all together."
Kevin moves seamlessly from electronic sounds to classic piano and back to create great vibes. The textures are very intricate and layered and Kevin described it like this, "Radio 2030 has at least 10 different keyboard tones happening throughout and sometimes up to that many happening at the same time. For example, the breakbeat outro section has 4 lead synths happening simultaneously, synth bass, a layer of Rhodes and piano, and arpeggiator synth, string synth, synth swells, another piano track and probably more. Babar's Revenge has piano, mellotron, 1 or 2 string synths, 3 or 4 lead synths, synth brass swells, synth bass, a few sound fx tracks…. you get the idea, about every song is like this. Farewell goes up to 6 part harmony…. I recorded them individually, so 6 tracks."
It dawned on me that artists like Kevin really have to be 3D thinkers with music moving through time and space but the layering adds the thick third dimension.
Refraction is Pickpocket's third album packed with a fresh take on classic-funk. One of the coolest things in writing about music is finding out that the funk is alive all over the world. The 8-piece Melbourne, Australia based band plays groove-based instrumental music with a focus on tight, funky rhythms and soaring, singable melodies. Most of the recording for Refraction was completed in Melbourne in 2019 with the final mixes arriving in early 2020 and the album's digital release just this past week.
Pickpocket was started way back in 2012 by Craig Strain and went through a few lineup changes before settling on the current personnel for the last 4 years. Craig is the bandleader and composer for the band with writing contributions also coming from Alex Howroyd and Neil Boland over the years. All releases have been self funded and released, and up until Refraction they were all mixed and produced by Craig. Refraction was predominantly mixed by Jason Kingsland (USA) who the band got on board after being impressed with the latest Forq release which he also mixed.
Pickpocket and I connected via social media, a great resource in this otherwise down year. I heard a clip from the album and immediately got hooked and I think you will too.
Law of Attraction is the latest release from Mike Casey, a young jazz saxophonist yet he's been around the world and around jazz a long time. Law of Attraction should be widely appealing based on its mix of old and new across several styles. Mike has enchanted a diverse young audience around the world, performing his signature blend of upbeat, accessible, exploratory original music and genre-bending re-imaginations of jazz, pop, R&B, and even hip hop classics with mature lyricism. This album ranges from 'Unforgettable' made popular by Nat King Cole, to two reimagined Daniel Caesar songs, to 'No Church In The Wild' from Jay-Z.
Mike has been playing sax since the 5th grade and plays mostly tenor on this album with the exception of No Church In The Wild" and "Squeaky Wheel." Mike explained to me "though I've been playing alto way longer I've always approached it like a tenor player and do have a "thicker" sound than is common for alto."
History Gets Ahead of the Story is the sixth album from drummer and composer Jeff Cosgrove. It is as a homage to his longtime collaborator friend and bassist William Parker. This time he writes the arrangements for an organ trio featuring John Medeski on organ (Medeski, Martin and Wood, Medeski's Mad Skillet) and Jeff Lederer on sax (Matt Wilson Quartet). Lederer and Cosgrove have played together several times and Lederer and Medeski and John have played together a good bit but the three of had never played together before that first day of recording. Cosgrove said, "There were no rehearsals or anything, we just went for it. Another benefit of working with some incredible musicians."
Both Cosgrove and Parker are known for their spontaneous composition and this album strongly delivers on that front. Cosgrove explains, "We had lead sheets for all of the tunes but there really wasn't any pre-arrangement. One of us would have an idea of how to try a particular tune and make a take of it. Sometimes it worked right out of the gate – like Things Fall Apart and other times we went through a few different tries to get it where we wanted. All of the melodies were written but the arrangements were very spontaneous which was one of the most fun parts for me about the recording."
The recording was done at Applehead studios in Saugerties NY over a two-day period. Most of the recording was done in the first day with the second day for Wood Flute Song, Things Fall Apart, and Purcell's Lament. "We picked takes and made second passes at a couple of other tunes that didn't end up making the record. It was a pretty fast process" said Cosgrove and continued, "Most record dates I do are done in a day. We dialed in most of the sounds the night before we started recording which was a huge help so we had two full days to play music. Chris Bittner (the engineer) really knows that space and John's sound and was incredible at getting us set. Another huge luxury was getting to use my drums. It seems like a strange thing but I rarely get to use my drums on my records, usually it is provided drums at the studio or performance space."
Each track on the album takes on one or more of three voice types : melodic, where each instrument is flowing together, conversational, where the instruments are bouncing back and forth in a call and response mode and frenzied where they combine to form a cacophony of sound before returning to one of the other two. This makes for a very dynamic album with very interesting combinations and range.
William Parker wrote seven of the ten tracks – with Lederer writing two (Purcell's Lament, Gospel Flowers) and Cosgrove wrote Ghost. These were compositions from William's Quartet book featuring Rob Brown, Flip Barns, William and Hamid Drake. Cosgrove says, "I love this band, it's my favorite of William's groups and have seen them many times." Overall, the compositions and improvisations are strong and both Medeski and Lederer are highlighted on different tracks and segments with Cosgrove laying down strong grooves throughout.
Harlem Hipshake is a release that will keep you movin' and groovin' all day and night. It's a full on party with a throwback style to the Latin soul of Ray Barreto and Mongo Santamaria in the '60s. The Bongolian, multi-instrumentalist Nasser Bouzida, plays all the instruments except the funky horns on the album, and there's plenty of that. Fans of retro cool bands like The New Mastersounds, New Cool Collective and The Filthy Six should feel Harlem Hipshake's vibe from the get go.
Fondue Party is a concept record of tracks recorded during the Polyrhythmics Man from the Future sessions, but deliberately saved for this EP. Polyrhythmics already play a wide range of styles from Afro-beat (their origin) to funk, soul, psychedelic rock, R&B and progressive jazz so I was particularly looking forward to this release. This collection of songs explores the group's downtempo, chilled-out side with heavy dub influence. While past releases mirror the group's live performances with diverse and dynamic sets taking you on a journey with lots of twists and turns along the way, Fondue Party fits a vibe of its own and is intentionally different than past releases.The EP also commemorates the band's 10th anniversary and serves as a special treat to longtime fans while making ears perk up for new listeners.
rEvolve is a solo effort from Robin Clabby, 1/3rd of the front line of the high-energy 8 piece funk outfit Brass-A-Holics since 2010. For a few years now, the Brass-A-Holics have been one of my favorite New Orleans bands, playing that unique GoGoBrass funk style. Robin has recorded a lot of band albums and been on other people's records over the years but never found the time to do his own album. Robin probably averaged a gig a day for the last decade or so and was quite happy just playing live for a long time. When his wife completed her PHD a year and a half ago and got a job teaching at Princeton, Robin realized he'd be leaving New Orleans (at least as a full time resident) and figured it was time to collect his thoughts on wax while he still had easy access to musician and engineer friends down there. This album is really meant to be a snapshot of where Clabby is now and what got him there.
With his solo release rEvolve, Clabby's smaller group playing gets a chance to shine. The tunes are a mix of new material, unrecorded live show staples, and a couple of previously released songs reimagined for a smaller group format. A solid funk thread connects all eight tunes on the record, but the vibe varies from the head nodding jazz-funk fusion of tunes like rEvolve and ReRoute, to feel good cuts like Elevate and Gratitude or the dreamlike PDX. The two vocal tunes, One Step at a Time and Down In New Orleans provide some nice contrast to the instrumentals. Down In New Orleans in particular could easily become a new Mardi Gras favorite.
Life On Other Planets came out early in the year is a nice addition to the Moon Hooch collection. Moon Hooch was included as one of my "Twelve Terrific Trios" piece earlier this year. They are comprised of just two 'saxes' and drummer – but Michael Wilbur (tenor saxophone, bass saxophone, synthesizers, vocals) and Wenzl McGowen (tenor saxophone, baritone saxophone, contrabass clarinet, synthesizers) mix it up so much that they keep every tune interesting. The band started with busking in NYC but pre-pandemic was a national touring headliner. Their shows and albums are super dynamic and innovative mixing elements of funk, jazz, hip-hop, house and even classical. A favorite here is Nonphysical.
Previous Post: Pickpocket's Latest Down Under Funk 'Refraction'
Next Post: FunkCity.net's Top 10 YouTube Videos 2020
Thirty Great Albums In 2020 - 192kb
FunkCity.net on YouTube
FunkCity.net Podcasts
Suwannee Rising Festival April 8, 2021 – April 10, 2021 Spirit of the Suwannee Music Park And Campground, 3076 95th Dr, Live Oak, FL 32060, USA
420 Fest April 23, 2021
Tower of Power April 25, 2021 at 9:00 pm – 11:00 pm
Designed using Magazine News Byte. Powered by


These deadly fungi have caused 5 deaths in California since 2010, and even experienced mushroom gatherers can misidentify them.
February 24, 2016, 11:57 a.m.
For mushroom collectors in California, the risk of selecting the wrong species of mushroom and plucking something deadly rather than edible is rising. Death cap mushrooms, an introduced species, are now abundant in the state and are continuing to spread. They can sometimes be mistaken for edible paddy straw mushrooms or other similar-looking species, and they apparently taste delicious — at least according to the people unfortunate enough to ingest them.
Slate writes that the death cap is "now present on every continent except Antarctica. It became such a world traveler because humans spread the mushroom's spores around like glitter at a kids' glitter party." Not that we necessarily did it on purpose.
The mushrooms have a symbiotic relationship with trees and as people imported various trees and plants to the U.S., among the roots were death cap spores and mycelium. Death caps have been present in the U.S. for decades, and are spreading across California. The Bay Area Mycological Society writes, "Death Caps now occur around the world, from Australia to South America, but nowhere have they found a place more to their liking than in the oak-strewn State of California."
According to KQED, "In California, death caps have established a very successful relationship with coast live oaks... Death caps have also been found under pines, and in Yosemite Valley under black oaks."
This video explains what death caps are capable of doing to a person, and the research going in to how to deal with the mushrooms.
Biologist Anne Pringle, of the University of Wisconsin, Madison, is currently researching the species to learn more about its lifecycle. If the mushrooms are short-lived, it could be possible to eradicate them from certain areas like one's garden by plucking them before they have a chance to spread their spores. Clearing them out of an area is important because they can be deadly to pet dogs as well as people. KQED writes that "two people died from death cap poisoning in California in 2014. Last year, nine poisonings were reported to the California Poison Control System and all the victims survived."
So if you're foraging where death caps are known to live, be extra, extra careful when collecting.
These deadly mushrooms have caused five deaths in California since 2010, and even experienced mushroom gatherers can misidentify them.


Masitinib is an oral inhibitor of both the KIT and PDGFRA receptors. It may have greater activity than imatinib against wild-type GIST and juxta-membrane KIT mutations in exon 11.
NCI drug dictionary definition: The orally bioavailable mesylate salt of masatinib, a multi-targeted protein tyrosine kinase inhibitor with potential antineoplastic activity. Masitinib selectively binds to and inhibits both the wild-type and mutated forms of the stem cell factor receptor (c-Kit; SCFR); platelet-derived growth factor receptor (PDGFR); fibroblast growth factor receptor 3 (FGFR3); and, to a lesser extent, focal adhesion kinase (FAK). As a consequence, tumor cell proliferation may be inhibited in cancer cell types that overexpress these receptor tyrosine kinases (RTKs).
Le Cesne A, Blay JY, Bui BN, Bouché O, Adenis A, Domont J, Cioffi A, Ray-Coquard I, Lassau N, Bonvalot S, Moussy A, Kinet JP, Hermine O.
Phase II study of oral masitinib mesilate in imatinib-naïve patients with locally advanced or metastatic gastro-intestinal stromal tumour (GIST).
This is a small study with only 30 subjects accrued in 2005-2007 in France. Two of the 30 subjects were later discovered to have been misdiagnosed (they did not have GIST) but continued on the trial. Four patients dropped out before 4 months of treatment. Analyses included all these subjects. Regarding the mutation status of the subjects, LeCesne et al stated "Sufficient biopsy material was available to perform mutational analysis for 15/30 patients (50%): 10/30 patients (33.3%) had a GIST harbouring a c-kit exon 11 mutation, 1/30 patient (3.3%) had double c-kit exon 11 and 13 mutations, 3/30 patients (10%) had a WT c-Kit, and 1/30 patient (3.3%) had a GIST harbouring the PDGFRA mutation (D842V)." Mutation status for the other GIST subjects is unknkown. No exon 9 mutation subjects were identified.
Masitinib is taken orally in two doses per day, with the dose for an individual based on body weight (7.5 mg per kilogram of patient weight).
By RECIST definition the best response was: 3.3% complete response (CR), 50% partial response (PR), 43.3% stable disease (SD), and 3.3% progressive disease. The overall response rate (CR + PR) was 16/30 (53.3%) patients with a disease control rate (CR + PR + SD) of 29/30 (96.7%) patients. The median time to first objective response was 5.6 months (range: 0.8–23.8 months). Progression-free survival was 89% at 6 months, 77% at one year, 64% at 18 months, 60% at 2 years, and 55% at three years. You can also see some earlier preliminary data on this trial in a 2009 presentation at ASCO (see link below) and some later data described next.
Overall survival benefit with masitinib mesylate in imatinib-naive, locally advanced, or metastatic gastrointestinal stromal tumor (GIST): 4-years follow-up of the French Sarcoma Group phase II trial.
For comparison, the MetaGIST analysis of two large imatinib Phase III trials indicated 30-34% progression-free survival (PFS) at 3 years (less than the 56% reported in this small trial of masitinib), and the median PFS duration for imatinib was 19-23 months (reference Gleevec prescribing information). Therefore, the duration of response to masitinib looks good in this trial, but these results may be skewed by the unknown mutation status of half of the subjects. The Phase III trial (see below) will have a larger subject base and will provide a direct comparison to imatinib.
Naïve patient or patient previously treated with imatinib as neoadjuvant/adjuvant who relapsed after imatinib discontinuation.
Dubreuil P, Letard S, Ciufolini M, Gros L, Humbert M, Castéran N, Borge L, Hajem B, Lermet A, Sippl W, Voisset E, Arock M, Auclair C, Leventhal PS, Mansfield CD, Moussy A, Hermine O.
Masitinib (AB1010), a potent and selective tyrosine kinase inhibitor targeting KIT.
PLoS One. 2009 Sep 30;4(9):e7258.
PubMed PMID: 19789626; PubMed Central PMCID: PMC2746281 free access!
Masitinib mesylate in imatinib-naive locally advanced or metastatic gastrointestinal stromal tumor (GIST): Results of the French Sarcoma Group phase II trial. Presentation at the 2009 ASCO meeting, Abstract No: 10507. Author(s): A. Le Cesne, J. Blay, N. B. Bui, O. Bouché, A. Adenis, J. Domont, A. Cioffi, A. Moussy, O. Hermine.
Bui BN, Blay J, Duffaud F, Hermine O, Le Cesne A.
Preliminary efficacy and safety results of Masitinib administered, front line in patients with advanced GIST.
Journal of Clinical Oncology. 2007; 25: No.18S:10025 (abstract).
In early February 2012 AB Science issued a press release asserting that a Phase II trial underway in France (NCT01506336) will demonstrate superiority of masitinib to sunitinib as second-line therapy for imatinib-resistant patients. The press release did not include supporting details but indicated that the study would be reported at the June 2012 ASCO meeting. Patients are cautioned that the press release seems premature without the full details of the trial results. If full details are presented at ASCO then it should be possible to draw firmer conclusions then.


text:
Home › Royal Air Force RAF Veterans Lapel Pin
Royal Air Force RAF Veterans Lapel Pin
Wear this RAF Pin with pride at any time of the year not just Remembrance Week.
Free UK Postage & Packaging
The Royal Air Force (RAF) is the United Kingdom's aerial warfare force. Formed towards the end of the First World War on 1 April 1918,[3] it is the oldest independent air force in the world.[4] Following victory over the Central Powers in 1918 the RAF emerged as, at the time, the largest air force in the world.[5] Since its formation, the RAF has taken a significant role in British military history. In particular, it played a large part in the Second World War where it fought its most famous campaign, the Battle of Britain.[6]
Based on 2 reviews Click Here To Write A Review
New Chrome Pin Savers Fasteners
Military Wife's Soldier Support Lapel Pin Badge
HM Submariners Royal Navy Lapel Pin
Royal Air Force Centenary 100 Years Round Colours Lapel Pin
Women's Royal Navy Service WRNS 100 Years Lapel Pin


text:
Follow with us:
PRICES AND POLICIES
PILATES FOR ALL
International Professional Dancer
Choreographer & Pilates Instructor/Trainer
Barbara's committed to helping others live a healthier and more fulfilling life, inside and out, started three decades ago, when she became a professional dancer. After graduating from the famed Classical Ballet Academy Cosi-Stefanescu, Barbara began observing various fitness regimens from around the world and started integrating those ideas into her personal philosophy of genuine mental and physical health.
Barbara's success as an international dancer and choreographer helped her launch a career as a Certified Pilates Instructor. For 10 years, she owned To Be Studio Pilates in Milan and was the "go to" fitness trainer for many celebrities, businessman, dancers and clients of all ages. Barbara has been a guest on all the major Italian TV networks such as RAI1, RAI 2, Canale 5 and RETE 4. In addition she has been featured in magazine such as Sportweek, Grazia, Silhoette, Io Donna, and Starbene. She has competed training programs with the Melt Method, American Institute of Reboundology, Cardiolates and Bellicon. For Cardiolates and Bellicon she is the first Italian Certified Instructor/Trainer and has trained more than 250 teachers.
Barbara is married to Roger Mazzeo and the proud mother of two beautiful girls, Nicole and Sophia. Barbara and her family are proud Montclair locals and enjoy sharing their enthusiasm for everything the town has to offer.
Barbara uses fully equipped studio space in the heart of Montclair.
Each facility is furnished with a complete collection of the traditional Pilates apparatus and accessories of the finest quality.
Quiet, airy and soaked in natural light, these locations offer the perfect escape for a calm and concentrated workout!
where to find her
TO BE Pilates
47 South Park Street, Montclair, NJ 07042
Monday – Friday 7:00am to 8:00pm
Saturday and Sunday 7:00am to 1:00pm
Email: info@tobepilates.com
Studio: +1 973 783 7171
U.S. Mobile: +1 929 272 4988
Italian Mobile: +39 347 570 5368
Copyright 2018 © Barbara Morini - All rights reserved


text:
Seattle To Albuquerque Round Trip By GPS Track
14.09.2009 in Uncategorized
Seattle to Albuquerque round trip route, 3841.1 miles in 7 days and 3 hours, from GPS track:
Meet The Griswolds
Not even a full week after we registered and we got our first message from another team! The Griswolds are two guys (so far) from Detroit, and happened to be passing through Seattle. One of them is applying to the UW MBA program and came…
Seattle To Albuquerque Round Trip By The Numbers
So here is a breakdown of how well we did gas-wise on the trip. Seattle to Albuquerque, including driving around Yellowstone, was 2063.4 miles. Albuquerque to Seattle, via the Grand Canyon, was 1777.7 miles. Total distance round trip was 3841.1 miles. We made 14 stops…
We Are Registered!
Kim and I just registered for two cars to participate in next summer's Mongol Rally! Starting around some time late last year we knew that we wanted our next big trip to be Mongolia, but when we started planning we had no idea what we…
Woke up at the crack of dawn this morning and left Salt Lake City, destination: Home (Seattle). Fourteen and a half hours later we pulled into our driveway. About half way through the drive Kim offered to relieve me, and I was still feeling pretty…
Mongol Rally 2010
Baatar Hero is a team of six intrepid adventurers from Seattle, embarking on the Mongol Rally in July 2010. The Mongol Rally is an annual 10,000 mile drive from London, England to Ulaan Baatar, Mongolia whose participants raise money for charity as they travel unmapped…
We shouldn't have expected less than a wedding ceremony on a stage from two entertainers. My cousin, a professional magician, was married at the Wool Warehouse in Albuquerque where we had a great time at the reception afterward. Congrats Danny & Stacey! The following morning…
View Of Grand Canyon From Our Lodge
We are staying in the Bucky O'Neill cabin on the south rim… Not bad — mobile mail sent via phone http://roam.autarken.net
At A Gallup
Gallup, NM On our way to Meteor Crater and then the Grand Canyon — mobile mail sent via phone http://roam.autarken.net
I Knew I Should've Taken That Left Turn At Albuquerque
I didn't really need the alarm set for the crack of dawn to wake me up on Thursday morning. The temperature had dropped over night in Yellowstone. The cabin was a sauna when we went to bed, so I had cracked open the window to…
I recently picked up a Visiontac GPS data logger, primarily to geotag my photos. But it came with some cool tools which allow me to create maps of my track in Google Earth. If you have the Google Earth browser plugin, you can see these…
Sunrise in Big Sky Country
There was a twilight zone moment early this morning when we stopped at the 3rd identical Montana rest stop after several hundred miles of identical stretches of road, when I wondered if we were actually making progress, or just rolling along a treadmill in the…


I'm not whispering because it's a secret, or because my physiotherapist told me not to run and I am defying orders. (Hi Akmal!) No, the injury to my Posterior Tibilialis Tendon responded really well to both Shock Wave Therapy and physio so that last week I was, after almost six weeks off the road, given permission to do some light jogging. My foot still hurt a bit, though not at the injury site, and Akmal was happy that this was to be expected as my foot adjusted to knew shoes, hopefully better running form and the strengthening exercises I have been doing. I iced after each run, and my foot felt great. So why the whisper? Why am I not shouting from the rooftops that I'm back!
My new shoes – New Balance W1040 – designed for over-pronators. Unfortunately the latest version is too ugly to be seen in – pink camouflage design.
The thing is, I am in no way back and it all feels sort of tentative. You've heard of muscle memory? Well my legs and back are suffering from muscle amnesia, despite staying active and doing all sorts of cross-training while off the road. My core is stronger than it has been in the past 12 months. My hips and ankles are stronger too. Yet, I remember why, when I first started, I found running hard. I ran 8 km this morning at nothing near my 'usual' pace and it was harder than running 21 km with hills two months ago. My stamina was never as good as it needed to be. Now it's dreadful! Still, on the bright side, I am running again.
Told you! This is the latest version of the shoes I have started using. As my six-year-old son said: HORRIBLE!
Next weekend, I had planned to run the BSN Putrajaya Night Half Marathon, in the hope of bettering my time and placing from last year, my very first half marathon. I wrote about last year's race here, and still get emotional when I think about it as it was by far the most pleasant race I have run. The pleasure was increased a thousand-fold by winning a prize. I have the t-shirt for 2013, I have the bib and timing chip, but I couldn't even run a 10 km next weekend not to mention 21 km. I have very happy memories of last year though so they will now not be sullied by attempts to do better. Sigh.
My daughter thought it was hilarious to take photos of me at Physiotherapy, squatting on a vibrating Power Plate while gripping a large, inflated ball between my knees. This is the least unflattering of the bunch. Thankfully, I have not been asked to repeat this pose since.
There are 20 days to go before the 2XU Compression 15km Run. I only signed up for this race after I got injured, once I realised that I would be missing three events in September. I may or may not make it to the Start line. I am very concerned I may not make it to the Finish! Realistically, I don't think I will be back on racing form – such as it was – until 2014.
In the meantime, I need to jog – excuse the pun – the memories of these darn leg muscles that feel like they're filled with lead. And I need to keep doing strengthening exercises and cross-training. My muscle memory may be poor but the one in my brain isn't going to forget this whole injury period in a hurry. And that's why I'm whispering.


text:
Home — Get-To-Know — Brec Bassinger
A two-year-old Brec Bassinger stood in her first pageant show in 2001, and the young 20-year-old actress today says those experiences helped her when it comes to performing and standing in front of people. From the first time she was involved in the production of a movie, at the age of six, acting was something she wanted for herself. Now, 14 years later, Brec is starring as a DC superhero in the new DC Universe series Stargirl.
Brec Bassinger was born on 25 May 1999 to her parents in Saginaw, Texas, where she was raised by her middle-class parents, along with her two older brothers Beric and Brice. The actress said her mother used to take her to beauty pageants, and she loved being around all the girls, some of whom are still her friends. But the stage was not the only thing she had a love for, Brec is an avid sports lover, not surprising for a Texas girl, she played volleyball, basketball, ran track and was also a competitive cheerleader.
In honor of going live tonight with @thatkevinsmith and @marcbernardin at around 7:20pm on FATMAN BEYOND to talk Stargirl😎 (you can catch it on their YouTube or Facebook lives) This took me longer than I would like to admit. Xo.
A post shared by Brec Bassinger (@brecbassinger) on May 7, 2020 at 4:15pm PDT
She wanted to be in movies, and TV shows ever since her first on-set experience, and to that end, the actress started going to acting classes and getting professional representation. By 2013 she was appearing in Nickelodeon shows and making a name for herself among the young adult fan groups. Fast forward seven more years and she is playing a superhero on television, at only 20 years, there is still much to come from the talented young actress.
Brec Bassinger Plays Courtney Whitmore/Stargirl in the Netflix Series Stargirl
Brec Bassinger Won Little Miss World in 2009 and Started Her Acting Career at 13 Years Old
Brec Has Type 1 Diabetes – She is Famous for Playing Bella Dawson in Bella and the Bulldogs
Brec Bassigner is in a Relationship with Her Boyfriend Dylan Summerall
Stargirl is based on the work of Geoff Johns, who created the character of Stargirl and based it on the life of his young sister, who died in a plane crash. When DC asked him to create a show, the first thing he thought of was Stargirl, and the pitch he gave to Warner Bros. and DC was well received, which resulted in the character getting a green light for production as a live-action series on the new DC Universe.
Stargirl follows Courtney Whitmore, who is a teenager from LA but is forced to move to a small town in Nebraska after her mother marries Pat Dugan. Later Courtney realizes Pat is the former superhero sidekick Stripesy and finds the staff of Starman. Inadvertently she possesses the power of Starman and becomes Stargirl, which forces Pat to come out of retirement and results in Courtney to try to assemble the Justice Society of America.
Brec Bassinger plays Courtney Whitmore/Stargirl in The CW series Stargirl.
Source: Brec Bassinger Instagram
The show is set in parallel earth to the Arroverse world occupied by Arrow and Flash. The character was mentioned in the highly anticipated crossover of Crisis on Infinite Earth. Stargirl's trailer was released in April, and the show is set for premiere on The CW network on 19 May 2020.
The cast of Stargirl includes Brec Bassinger as Courtney Whitmore/Stargirl, Yvette Monreal as Yolanda Montez/Wildcat, Anjelika Washington as Beth Chapel/Doctor Mid-Nite, Cameron Gellman as Rick Tyler/Hourman, Trae Romano as Mike Dugan, Jake Austin Walker as Henry King Jr., Hunter Sansone as Cameron, Meg DeLacy as Cindy Burman/Shiv, Neil Jackson as Jordan Mahkent/Icicle, Christopher James Baker as Henry King Sr. /Brainwave, Amy Smart as Barbara Whitmore, Luke Wilson as Pat Dugan, Joy Osmanski as Paula Brooks/Tigress, Neil Hopkins as Lawrence "Crusher" Crock/ Sportsmaster and Nelson Less as Dr. Ito/Dragon King.
Form a young age, the actress was part of different pageant shows, and she won the Little Miss World title in 2009 at the age of 10. At the same time, the actress was also training to be an actress; she was discovered during a beauty pageant when a director spotted her and put her in a movie. Brec was six years old at the time, and it was her first experience in a movie set, which strengthened her desire to become an actress.
Her first major break came in the form of a guest appearance in the hit ABC show The Goldbergs. She played Zoe McIntosh in the pilot episode of the comedy show and later reprised her role in season 4 of the hit series. But the project which launched the actress in the world of show business was the Nickelodeon series The Haunted Hathaways, where she appeared as Emma Hawking in the ten episodes.
She auditioned for the show and flew back to her home in Texas, but as soon as she landed, she got the call back for the role of Emma, and Brec flew back to LA for another audition. When she was told to go back home after the audition, Brec was bummed; she did not get the role, but upon landing in Texas again, she got the call saying she booked the character. It was a roller coaster ride, but the actress managed to get her first Nick show, and a new Nickelodeon star was born.
Brec Bassinger is an advocate for the Juvenile Diabetes Research Foundation (JDRF), which researches diabetes and is aimed at finding a cure. The foundation is close to Brec's heart because she has Type 1 diabetes, something she was diagnosed with at the age of eight and has been living with it ever since.
The great thing about the actress is she has never let anything slow her down, a strength she shares with one of her famous characters, Bella Dawson. Bella Dawson is the lead in the Nickelodeon show Bella and the Bulldogs, where she gets the job of Quarterback in her high school's football team.
The character of Bella Dawson and the show Bella and the Bulldogs is extremely popular among her fans who are still unhappy; the 40 episode series is done. Brec Bassinger has been part of School of Rock, 47 Meters Down: Uncaged, All Night, but the role of Bella is still the one most of her fans know the actress by.
Brec Bassinger is in a relationship with her boyfriend Dylan Summerall.
The Stargirl actress is active on social media; she is followed by over 1.5 million people on Instagram. She frequently posts about her upcoming projects and other pictures on her Instagram. Brec also provides updates on her personal life through her social media, whether it is posting quarantine photos or pictures with her boyfriend.
Brec Bassinger and her boyfriend Dylan Summerall started dating from June of 2017. They are together for over two/almost three years now, and there are no shortages of pictures and captions where the lovebirds share their adoration for one another. The fans are also happy seeing the two in a relationship, which seems to be going stronger than ever recently.
Before you leave, make sure to visit Celebs In-depth for more Biography and Celeb Life.
Tags:Bell and the BulldogsBella DawsonBrec BassingerCourtney WhitmoreNickelodeonStargirlThe CW


text:
Help Andrew Christian Get On Bravo…
Help designer Andrew Christian, a native of Fresno, be the next one chosen for a new reality series on Bravo, titled "The Fashion Show".
From Bravo…"Bravo's newest creative competition series, The Fashion Show, is looking to cast its final contestant and is putting the designer's fate in your hands. What is the The Fashion Show you ask? The show will follow professional designers as they strive to make their mark in the dog-eat-dog world of fashion and compete for a chance to have their designs sold for the mass retail market. You can vote for one final designer to join the competition. Vote as often as you want between now and February 13."
To place your vote for Fresno's own, Andrew Christian, click HERE


Q. I am not able to find the pay now button?
Payment Service is not available on the 1st, 2nd and 3rd of the month. This provides us room to reconcillate the payments received in the previous month.
Q. My money has been deducted but Bill Sahuliyat is unaware about my payment. I do not see any reciepts?
In most cases your payment is made. However you are not seeing the reciept.
This is a common issue with online payments. You must not worry. Your money is safe. This can happen because of immature breaking of the payment session. Weak internet connection, false user action, or clogged network can cause this. Here the payment process terminates without reaching its end where it is supposed to update BillSahuilyat that the payment is successfully made.
You can get in touch with our call center to check the status of your payment and have your recipt generated in your bill sahuliyat account. Or you can just wait and the amount will be deducted from your outstanding.
If you are not able to find the amount deducted in your bill even in the next month. Get in touch with our call center.
Q. I have made a double payment?
It is possible that you end up making double/triple payments against one bill.
Please note that there is no provision of a refund as of now as clearly mentioned in the terms and conditions page. However payments will be adjusted to your account provided that Same Day Same Amount payments have not been made.
What is Same Day Same Amount payment. If you have made more than one payments on a particuliar day with the same amount. Only one payment will be adjusted. Get in touch with our call center to get the other payment adjusted. For example. Person A has made two payments of Rs.100 on 21st March. Only one payment will be settled. If however different amount payments have been made e.g. Rs. 100 and Rs. 3000 on the same day, all payments will be adjusted. Also if a payment of Rs.100 has been made on a day say , 13th of July , and another payment of Rs.100 is made on 14th of July, then both payments will be adjusted.
If your payments are not adjusted in your account when you recieve the next bill. Contact our call center team immediately and ask for a manual adjustment.


Jennifer Sim, Kapil Kapoor; Mineralocorticoid antagonist effects on choroidal thickness in central serous chorioretinopathy. Invest. Ophthalmol. Vis. Sci. 2017;58(8):5940.
Purpose : Central serous chorioretinopathy (CSCR) is characterized by increased choroidal thickness (CT), and subretinal fluid (SRF) accumulation that can lead to vision loss. Despite the increased risk of visual morbidity, definitive treatment and pathogenesis remain elusive. Recently, overactivation of mineralcorticoid receptors (MR) in choroidal vessels has been implicated in the pathophysiology of CSCR. Though the use of MR antagonists has been described clinically, their anatomic effects on CT has not yet been quantified. The purpose of this study is to quantify the effect of MR antagonists on CT in CSCR.
Methods : A retrospective chart review of CSCR patients treated with spironolactone (S) and eplerenone (E) for at least 4 months' follow up was conducted. CT from optical coherence tomography images was computed by using the Zen linear measuring tool. CT was measured from the outer edge of the hyperreflective RPE to the inner sclera, nasal to temporal at 500μm intervals to span 3000μm per scan. The baseline for each individual and overall average was compared to each follow up measurement using a T-test.
Results : A total of 19 patients (5S and 14E) were included in the study. Average baseline CT for S-OD was 226.30µm and OS was 167.77µm. Average baseline CT for E-OD was 188.80µm and OS was 185.10µm. There was no significant decrease in CT from baseline for all individuals in the study throughout the treatment for both E and S (p>0.05). There was no significant decrease in overall averaged CT from baseline compared to each follow up for both E and S (p>0.05).
Conclusions : In this treatment series, patients on MR antagonists did not have a statistically significant decrease in overall CT (p>0.05). These results differ from previous results with rat eyes that found MR antagonists to inhibit choroidal thickening promoted by retinal vasodilation from inappropriate MR activation. MR antagonists have clinical effects of SRF resolution and visual acuity improvements, but the measurements of CT taken throughout these treatment groups may show the actual anatomic effects of MR antagonists in CSCR. These results may suggest that MR antagonists work differently in humans due to potential differences of anatomy and physiology. In light of these results, the role and mechanism of MR antagonists in the treatment of CSCR need to be further researched and better defined.


text:
Ancient petroglyphs discovered in South Africa
Photo from open sources
On our planet, scientists argue, in the old days fell asteroids, which in magnitude and mass simply hit imagination. Of course, they changed a lot on Earth, the benefit is that there was no man in those days.
At least modern Homo Sapiens, because about others civilizations that have lived on Earth for many millions and even billions of years, we only know that they may have existed, however official science does not want to admit this, despite the very convincing artifacts from those times. So maybe some of these civilizations died due to planetary faults catastrophes due to the fall of such huge asteroids? For example, almost the incontrovertible fact that the dinosaur world died precisely for this reason. But on the other hand, there is indirect evidence (ancient dinosaur cave paintings) that man existed already in that era and was in contact with dinosaurs.
Today we have to get acquainted with the asteroid, which is two billion years ago crashed into land in today's South Africa. He was so huge that he left the crater Vredefort 300 kilometers in diameter (the asteroid itself should not be less than 15 kilometers across), a "funnel" which time does not could erase from the surface of the planet even for such a huge period.
The crater has long attracted all kinds of scientists and first of all practitioners, for example, companies looking here for gold and others valuable minerals. But not so long ago, scientists discovered in this crater cave paintings, which are about eight thousand years old. Leave them could Hoi-san – the people who inhabited this territory several thousand years ago.
This is what Dr. Matthew Huber says with colleagues from the University of South Africa Free State to currently studying these petroglyphs:
I always thought that this crater matters only to geologists, but it turns out that the ancient "funnel" attracted attention and residents of that time who, apparently, considered this hollow a place of spiritual strength. This is evidenced by their drawings, in which not only animals on which people hunted at that time, for example, a rhinoceros or a hippopotamus, but also divine creatures, let's say snakes that bring rain, and even mysterious petroglyphs gods, or aliens …
By the way, in the cave art of ancient people often the theme of aliens and UFOs is traced, and such drawings can be two, three, or even eight thousand years old (watch the video below).
As for the Wredefort crater, it is interesting in different ways. reasons, this biggest funnel on Earth left an asteroid, says a lot: it can even be traced some unique geological processes taking place on our planet in two billion years. And not only…
Africa Time Dinosaurs Petroglyphs