text:
/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
/* include/k5-trace.h */
/*
 * Copyright (C) 2010 by the Massachusetts Institute of Technology.
 * All rights reserved.
 *
 * Export of this software from the United States of America may
 *   require a specific license from the United States Government.
 *   It is the responsibility of any person or organization contemplating
 *   export to obtain such a license before exporting.
 *
 * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
 * distribute this software and its documentation for any purpose and
 * without fee is hereby granted, provided that the above copyright
 * notice appear in all copies and that both that copyright notice and
 * this permission notice appear in supporting documentation, and that
 * the name of M.I.T. not be used in advertising or publicity pertaining
 * to distribution of the software without specific, written prior
 * permission.  Furthermore if you modify this software you must label
 * your software as modified software and not distribute it in such a
 * fashion that it might be confused with the original M.I.T. software.
 * M.I.T. makes no representations about the suitability of
 * this software for any purpose.  It is provided "as is" without express
 * or implied warranty.
 */

/*
 * This header contains trace macro definitions, which map trace points within
 * the code to krb5int_trace() calls with descriptive text strings.
 *
 * A new trace macro must be defined in this file for each new location to
 * be traced; the TRACE() macro should never be used directly.  This keeps
 * the tracing logic centralized in one place, to facilitate integration with
 * alternate tracing backends such as DTrace.
 *
 * Trace logging is intended to aid power users in diagnosing configuration
 * problems by showing what's going on behind the scenes of complex operations.
 * Although trace logging is sometimes useful to developers, it is not intended
 * as a replacement for a debugger, and it is not desirable to drown the user
 * in output.  Observe the following guidelines when adding trace points:
 *
 *   - Avoid mentioning function or variable names in messages.
 *
 *   - Try to convey what decisions are being made and what external inputs
 *     they are based on, not the process of making decisions.
 *
 *   - It is generally not necessary to trace before returning an unrecoverable
 *     error.  If an error code is unclear by itself, make it clearer with
 *     krb5_set_error_message().
 *
 *   - Keep macros simple.  Add format specifiers to krb5int_trace's formatter
 *     as necessary (and document them here) instead of transforming macro
 *     arguments.
 *
 *   - Like printf, the trace formatter interface is not type-safe.  Check your
 *     formats carefully.  Cast integral arguments to the appropriate type if
 *     they do not already patch.
 *
 * The following specifiers are supported by the formatter (see the
 * implementation in lib/krb5/os/trace.c for details):
 *
 *   {int}         int, in decimal
 *   {long}        long, in decimal
 *   {str}         const char *, display as C string
 *   {lenstr}      size_t and const char *, as a counted string
 *   {hexlenstr}   size_t and const char *, as hex bytes
 *   {hashlenstr}  size_t and const char *, as four-character hex hash
 *   {raddr}       struct remote_address *, show socket type, address, port
 *   {data}        krb5_data *, display as counted string
 *   {hexdata}     krb5_data *, display as hex bytes
 *   {errno}       int, display as number/errorstring
 *   {kerr}        krb5_error_code, display as number/errorstring
 *   {keyblock}    const krb5_keyblock *, display enctype and hash of key
 *   {key}         krb5_key, display enctype and hash of key
 *   {cksum}       const krb5_checksum *, display cksumtype and hex checksum
 *   {princ}       krb5_principal, unparse and display
 *   {ptype}       krb5_int32, krb5_principal type, display name
 *   {patypes}     krb5_pa_data **, display list of padata type numbers
 *   {etype}       krb5_enctype, display shortest name of enctype
 *   {etypes}      krb5_enctype *, display list of enctypes
 *   {ccache}      krb5_ccache, display type:name
 *   {keytab}      krb5_keytab, display name
 *   {creds}       krb5_creds *, display clientprinc -> serverprinc
 */

#ifndef K5_TRACE_H
#define K5_TRACE_H

#ifdef DISABLE_TRACING
#define TRACE(ctx, ...)
#else

void krb5int_trace(krb5_context context, const char *fmt, ...);

/* Try to optimize away argument evaluation and function call when we're not
 * tracing, if this source file knows the internals of the context. */
#ifdef _KRB5_INT_H
#define TRACE(ctx, ...)                                        \
    do { if (ctx->trace_callback != NULL)                      \
            krb5int_trace(ctx, __VA_ARGS__); } while (0)
#else
#define TRACE(ctx, ...) krb5int_trace(ctx, __VA_ARGS__)
#endif

#endif /* DISABLE_TRACING */

#define TRACE_CC_DESTROY(c, cache)                      \
    TRACE(c, "Destroying ccache {ccache}", cache)
#define TRACE_CC_GEN_NEW(c, cache)                                      \
    TRACE(c, "Generating new unique ccache based on {ccache}", cache)
#define TRACE_CC_GET_CONFIG(c, cache, princ, key, data)             \
    TRACE(c, "Read config in {ccache} for {princ}: {str}: {data}",  \
          cache, princ, key, data)
#define TRACE_CC_INIT(c, cache, princ)                              \
    TRACE(c, "Initializing {ccache} with default princ {princ}",    \
          cache, princ)
#define TRACE_CC_MOVE(c, src, dst)                                      \
    TRACE(c, "Moving contents of ccache {src} to {dst}", src, dst)
#define TRACE_CC_NEW_UNIQUE(c, type)                            \
    TRACE(c, "Resolving unique ccache of type {str}", type)
#define TRACE_CC_REMOVE(c, cache, creds)                        \
    TRACE(c, "Removing {creds} from {ccache}", creds, cache)
#define TRACE_CC_RETRIEVE(c, cache, creds, ret)                      \
    TRACE(c, "Retrieving {creds} from {ccache} with result: {kerr}", \
              creds, cache, ret)
#define TRACE_CC_RETRIEVE_REF(c, cache, creds, ret)                     \
    TRACE(c, "Retrying {creds} with result: {kerr}", creds, ret)
#define TRACE_CC_SET_CONFIG(c, cache, princ, key, data)               \
    TRACE(c, "Storing config in {ccache} for {princ}: {str}: {data}", \
          cache, princ, key, data)
#define TRACE_CC_STORE(c, cache, creds)                         \
    TRACE(c, "Storing {creds} in {ccache}", creds, cache)
#define TRACE_CC_STORE_TKT(c, cache, creds)                     \
    TRACE(c, "Also storing {creds} based on ticket", creds)

#define TRACE_CCSELECT_VTINIT_FAIL(c, ret)                              \
    TRACE(c, "ccselect module failed to init vtable: {kerr}", ret)
#define TRACE_CCSELECT_INIT_FAIL(c, name, ret)                          \
    TRACE(c, "ccselect module {str} failed to init: {kerr}", name, ret)
#define TRACE_CCSELECT_MODCHOICE(c, name, server, cache, princ)         \
    TRACE(c, "ccselect module {str} chose cache {ccache} with client "  \
          "principal {princ} for server principal {princ}", name, cache, \
          princ, server)
#define TRACE_CCSELECT_MODNOTFOUND(c, name, server, princ)              \
    TRACE(c, "ccselect module {str} chose client principal {princ} "    \
          "for server principal {princ} but found no cache", name, princ, \
          server)
#define TRACE_CCSELECT_MODFAIL(c, name, ret, server)                  \
    TRACE(c, "ccselect module {str} yielded error {kerr} for server " \
          "principal {princ}", name, ret, server)
#define TRACE_CCSELECT_NOTFOUND(c, server)                          \
    TRACE(c, "ccselect can't find appropriate cache for server "    \
          "principal {princ}", server)
#define TRACE_CCSELECT_DEFAULT(c, cache, server)                    \
    TRACE(c, "ccselect choosing default cache {ccache} for server " \
          "principal {princ}", cache, server)

#define TRACE_DNS_SRV_ANS(c, host, port, prio, weight)                \
    TRACE(c, "SRV answer: {int} {int} {int} \"{str}\"", prio, weight, \
          port, host)
#define TRACE_DNS_SRV_NOTFOUND(c)               \
    TRACE(c, "No SRV records found")
#define TRACE_DNS_SRV_SEND(c, domain)                   \
    TRACE(c, "Sending DNS SRV query for {str}", domain)
#define TRACE_DNS_URI_ANS(c, uri, prio, weight)                         \
    TRACE(c, "URI answer: {int} {int} \"{str}\"", prio, weight, uri)
#define TRACE_DNS_URI_NOTFOUND(c)               \
    TRACE(c, "No URI records found")
#define TRACE_DNS_URI_SEND(c, domain)                   \
    TRACE(c, "Sending DNS URI query for {str}", domain)

#define TRACE_FAST_ARMOR_CCACHE(c, ccache_name)         \
    TRACE(c, "FAST armor ccache: {str}", ccache_name)
#define TRACE_FAST_ARMOR_CCACHE_KEY(c, keyblock)                \
    TRACE(c, "Armor ccache sesion key: {keyblock}", keyblock)
#define TRACE_FAST_ARMOR_KEY(c, keyblock)               \
    TRACE(c, "FAST armor key: {keyblock}", keyblock)
#define TRACE_FAST_CCACHE_CONFIG(c)                                     \
    TRACE(c, "Using FAST due to armor ccache negotiation result")
#define TRACE_FAST_DECODE(c)                    \
    TRACE(c, "Decoding FAST response")
#define TRACE_FAST_ENCODE(c)                                            \
    TRACE(c, "Encoding request body and padata into FAST request")
#define TRACE_FAST_NEGO(c, avail)                                       \
    TRACE(c, "FAST negotiation: {str}available", (avail) ? "" : "un")
#define TRACE_FAST_PADATA_UPGRADE(c)                                    \
    TRACE(c, "Upgrading to FAST due to presence of PA_FX_FAST in reply")
#define TRACE_FAST_REPLY_KEY(c, keyblock)                       \
    TRACE(c, "FAST reply key: {keyblock}", keyblock)
#define TRACE_FAST_REQUIRED(c)                                  \
    TRACE(c, "Using FAST due to KRB5_FAST_REQUIRED flag")

#define TRACE_GIC_PWD_CHANGED(c)                                \
    TRACE(c, "Getting initial TGT with changed password")
#define TRACE_GIC_PWD_CHANGEPW(c, tries)                                \
    TRACE(c, "Attempting password change; {int} tries remaining", tries)
#define TRACE_GIC_PWD_EXPIRED(c)                                \
    TRACE(c, "Principal expired; getting changepw ticket")
#define TRACE_GIC_PWD_MASTER(c)                         \
    TRACE(c, "Retrying AS request with master KDC")

#define TRACE_GSS_CLIENT_KEYTAB_FAIL(c, ret)                            \
    TRACE(c, "Unable to resolve default client keytab: {kerr}", ret)

#define TRACE_ENCTYPE_LIST_UNKNOWN(c, profvar, name)                    \
    TRACE(c, "Unrecognized enctype name in {str}: {str}", profvar, name)

#define TRACE_HOSTREALM_VTINIT_FAIL(c, ret)                             \
    TRACE(c, "hostrealm module failed to init vtable: {kerr}", ret)
#define TRACE_HOSTREALM_INIT_FAIL(c, name, ret)                         \
    TRACE(c, "hostrealm module {str} failed to init: {kerr}", name, ret)

#define TRACE_INIT_CREDS(c, princ)                              \
    TRACE(c, "Getting initial credentials for {princ}", princ)
#define TRACE_INIT_CREDS_AS_KEY_GAK(c, keyblock)                        \
    TRACE(c, "AS key obtained from gak_fct: {keyblock}", keyblock)
#define TRACE_INIT_CREDS_AS_KEY_PREAUTH(c, keyblock)                    \
    TRACE(c, "AS key determined by preauth: {keyblock}", keyblock)
#define TRACE_INIT_CREDS_DECRYPTED_REPLY(c, keyblock)                   \
    TRACE(c, "Decrypted AS reply; session key is: {keyblock}", keyblock)
#define TRACE_INIT_CREDS_ERROR_REPLY(c, code)           \
    TRACE(c, "Received error from KDC: {kerr}", code)
#define TRACE_INIT_CREDS_GAK(c, salt, s2kparams)                    \
    TRACE(c, "Getting AS key, salt \"{data}\", params \"{data}\"",  \
          salt, s2kparams)
#define TRACE_INIT_CREDS_KEYTAB_LOOKUP(c, etypes)               \
    TRACE(c, "Looked up etypes in keytab: {etypes}", etypes)
#define TRACE_INIT_CREDS_KEYTAB_LOOKUP_FAILED(c, code)          \
    TRACE(c, "Couldn't lookup etypes in keytab: {kerr}", code)
#define TRACE_INIT_CREDS_PREAUTH(c)                     \
    TRACE(c, "Preauthenticating using KDC method data")
#define TRACE_INIT_CREDS_PREAUTH_DECRYPT_FAIL(c, code)                  \
    TRACE(c, "Decrypt with preauth AS key failed: {kerr}", code)
#define TRACE_INIT_CREDS_PREAUTH_MORE(c, patype)                \
    TRACE(c, "Continuing preauth mech {int}", (int)patype)
#define TRACE_INIT_CREDS_PREAUTH_NONE(c)        \
    TRACE(c, "Sending unauthenticated request")
#define TRACE_INIT_CREDS_PREAUTH_OPTIMISTIC(c)  \
    TRACE(c, "Attempting optimistic preauth")
#define TRACE_INIT_CREDS_PREAUTH_TRYAGAIN(c, patype, code)              \
    TRACE(c, "Recovering from KDC error {int} using preauth mech {int}", \
          (int)patype, (int)code)
#define TRACE_INIT_CREDS_RESTART_FAST(c)        \
    TRACE(c, "Restarting to upgrade to FAST")
#define TRACE_INIT_CREDS_RESTART_PREAUTH_FAILED(c)                      \
    TRACE(c, "Restarting due to PREAUTH_FAILED from FAST negotiation")
#define TRACE_INIT_CREDS_REFERRAL(c, realm)                     \
    TRACE(c, "Following referral to realm {data}", realm)
#define TRACE_INIT_CREDS_RETRY_TCP(c)                                   \
    TRACE(c, "Request or response is too big for UDP; retrying with TCP")
#define TRACE_INIT_CREDS_SALT_PRINC(c, salt)                    \
    TRACE(c, "Salt derived from principal: {data}", salt)
#define TRACE_INIT_CREDS_SERVICE(c, service)                    \
    TRACE(c, "Setting initial creds service to {str}", service)

#define TRACE_KADM5_AUTH_VTINIT_FAIL(c, ret)                            \
    TRACE(c, "kadm5_auth module failed to init vtable: {kerr}", ret)
#define TRACE_KADM5_AUTH_INIT_FAIL(c, name, ret)                        \
    TRACE(c, "kadm5_auth module {str} failed to init: {kerr}", ret)
#define TRACE_KADM5_AUTH_INIT_SKIP(c, name)                             \
    TRACE(c, "kadm5_auth module {str} declined to initialize", name)

#define TRACE_KT_GET_ENTRY(c, keytab, princ, vno, enctype, err)         \
    TRACE(c, "Retrieving {princ} from {keytab} (vno {int}, enctype {etype}) " \
          "with result: {kerr}", princ, keytab, (int) vno, enctype, err)

#define TRACE_LOCALAUTH_INIT_CONFLICT(c, type, oldname, newname)        \
    TRACE(c, "Ignoring localauth module {str} because it conflicts "    \
          "with an2ln type {str} from module {str}", newname, type, oldname)
#define TRACE_LOCALAUTH_VTINIT_FAIL(c, ret)                             \
    TRACE(c, "localauth module failed to init vtable: {kerr}", ret)
#define TRACE_LOCALAUTH_INIT_FAIL(c, name, ret)                         \
    TRACE(c, "localauth module {str} failed to init: {kerr}", name, ret)

#define TRACE_MK_REP(c, ctime, cusec, subkey, seqnum)                   \
    TRACE(c, "Creating AP-REP, time {long}.{int}, subkey {keyblock}, "  \
          "seqnum {int}", (long) ctime, (int) cusec, subkey, (int) seqnum)

#define TRACE_MK_REQ(c, creds, seqnum, subkey, sesskeyblock)            \
    TRACE(c, "Creating authenticator for {creds}, seqnum {int}, "       \
          "subkey {key}, session key {keyblock}", creds, (int) seqnum,  \
          subkey, sesskeyblock)
#define TRACE_MK_REQ_ETYPES(c, etypes)                                  \
    TRACE(c, "Negotiating for enctypes in authenticator: {etypes}", etypes)

#define TRACE_MSPAC_VERIFY_FAIL(c, err)                         \
    TRACE(c, "PAC checksum verification failed: {kerr}", err)
#define TRACE_MSPAC_DISCARD_UNVERF(c)           \
    TRACE(c, "Filtering out unverified MS PAC")

#define TRACE_PREAUTH_CONFLICT(c, name1, name2, patype)                 \
    TRACE(c, "Preauth module {str} conflicts with module {str} for pa " \
          "type {int}", name1, name2, (int) patype)
#define TRACE_PREAUTH_COOKIE(c, len, data)                      \
    TRACE(c, "Received cookie: {lenstr}", (size_t) len, data)
#define TRACE_PREAUTH_ENC_TS_KEY_GAK(c, keyblock)                       \
    TRACE(c, "AS key obtained for encrypted timestamp: {keyblock}", keyblock)
#define TRACE_PREAUTH_ENC_TS(c, sec, usec, plain, enc)                  \
    TRACE(c, "Encrypted timestamp (for {long}.{int}): plain {hexdata}, " \
          "encrypted {hexdata}", (long) sec, (int) usec, plain, enc)
#define TRACE_PREAUTH_ETYPE_INFO(c, etype, salt, s2kparams)          \
    TRACE(c, "Selected etype info: etype {etype}, salt \"{data}\", " \
          "params \"{data}\"", etype, salt, s2kparams)
#define TRACE_PREAUTH_INFO_FAIL(c, patype, code)                        \
    TRACE(c, "Preauth builtin info function failure, type={int}: {kerr}", \
          (int) patype, code)
#define TRACE_PREAUTH_INPUT(c, padata)                          \
    TRACE(c, "Processing preauth types: {patypes}", padata)
#define TRACE_PREAUTH_OUTPUT(c, padata)                                 \
    TRACE(c, "Produced preauth for next request: {patypes}", padata)
#define TRACE_PREAUTH_PROCESS(c, name, patype, real, code)              \
    TRACE(c, "Preauth module {str} ({int}) ({str}) returned: "          \
          "{kerr}", name, (int) patype, real ? "real" : "info", code)
#define TRACE_PREAUTH_SAM_KEY_GAK(c, keyblock)                  \
    TRACE(c, "AS key obtained for SAM: {keyblock}", keyblock)
#define TRACE_PREAUTH_SALT(c, salt, patype)                          \
    TRACE(c, "Received salt \"{data}\" via padata type {int}", salt, \
          (int) patype)
#define TRACE_PREAUTH_SKIP(c, name, patype)                           \
    TRACE(c, "Skipping previously used preauth module {str} ({int})", \
          name, (int) patype)
#define TRACE_PREAUTH_TRYAGAIN_INPUT(c, patype, padata)                 \
    TRACE(c, "Preauth tryagain input types ({int}): {patypes}", patype, padata)
#define TRACE_PREAUTH_TRYAGAIN(c, name, patype, code)                   \
    TRACE(c, "Preauth module {str} ({int}) tryagain returned: {kerr}",  \
          name, (int)patype, code)
#define TRACE_PREAUTH_TRYAGAIN_OUTPUT(c, padata)                        \
    TRACE(c, "Followup preauth for next request: {patypes}", padata)
#define TRACE_PREAUTH_WRONG_CONTEXT(c)                                  \
    TRACE(c, "Wrong context passed to krb5_init_creds_free(); leaking " \
          "modreq objects")

#define TRACE_PROFILE_ERR(c,subsection, section, retval)             \
    TRACE(c, "Bad value of {str} from [{str}] in conf file: {kerr}", \
          subsection, section, retval)

#define TRACE_RD_REP(c, ctime, cusec, subkey, seqnum)               \
    TRACE(c, "Read AP-REP, time {long}.{int}, subkey {keyblock}, "      \
          "seqnum {int}", (long) ctime, (int) cusec, subkey, (int) seqnum)
#define TRACE_RD_REP_DCE(c, ctime, cusec, seqnum)                      \
    TRACE(c, "Read DCE-style AP-REP, time {long}.{int}, seqnum {int}", \
          (long) ctime, (int) cusec, (int) seqnum)

#define TRACE_RD_REQ_DECRYPT_ANY(c, princ, keyblock)                \
    TRACE(c, "Decrypted AP-REQ with server principal {princ}: "     \
          "{keyblock}", princ, keyblock)
#define TRACE_RD_REQ_DECRYPT_SPECIFIC(c, princ, keyblock)               \
    TRACE(c, "Decrypted AP-REQ with specified server principal {princ}: " \
          "{keyblock}", princ, keyblock)
#define TRACE_RD_REQ_DECRYPT_FAIL(c, err)                       \
    TRACE(c, "Failed to decrypt AP-REQ ticket: {kerr}", err)
#define TRACE_RD_REQ_NEGOTIATED_ETYPE(c, etype)                     \
    TRACE(c, "Negotiated enctype based on authenticator: {etype}",  \
          etype)
#define TRACE_RD_REQ_SUBKEY(c, keyblock)                                \
    TRACE(c, "Authenticator contains subkey: {keyblock}", keyblock)
#define TRACE_RD_REQ_TICKET(c, client, server, keyblock)                \
    TRACE(c, "AP-REQ ticket: {princ} -> {princ}, session key {keyblock}", \
          client, server, keyblock)

#define TRACE_SENDTO_KDC_ERROR_SET_MESSAGE(c, raddr, err)               \
    TRACE(c, "Error preparing message to send to {raddr}: {errno}",     \
          raddr, err)
#define TRACE_SENDTO_KDC(c, len, rlm, master, tcp)                     \
    TRACE(c, "Sending request ({int} bytes) to {data}{str}{str}", len,  \
          rlm, (master) ? " (master)" : "", (tcp) ? " (tcp only)" : "")
#define TRACE_SENDTO_KDC_MASTER(c, master)                              \
    TRACE(c, "Response was{str} from master KDC", (master) ? "" : " not")
#define TRACE_SENDTO_KDC_RESOLVING(c, hostname)         \
    TRACE(c, "Resolving hostname {str}", hostname)
#define TRACE_SENDTO_KDC_RESPONSE(c, len, raddr)                        \
    TRACE(c, "Received answer ({int} bytes) from {raddr}", len, raddr)
#define TRACE_SENDTO_KDC_HTTPS_ERROR_CONNECT(c, raddr)          \
    TRACE(c, "HTTPS error connecting to {raddr}", raddr)
#define TRACE_SENDTO_KDC_HTTPS_ERROR_RECV(c, raddr)             \
    TRACE(c, "HTTPS error receiving from {raddr}", raddr)
#define TRACE_SENDTO_KDC_HTTPS_ERROR_SEND(c, raddr)     \
    TRACE(c, "HTTPS error sending to {raddr}", raddr)
#define TRACE_SENDTO_KDC_HTTPS_SEND(c, raddr)                           \
    TRACE(c, "Sending HTTPS request to {raddr}", raddr)
#define TRACE_SENDTO_KDC_HTTPS_ERROR(c, errs)                           \
    TRACE(c, "HTTPS error: {str}", errs)
#define TRACE_SENDTO_KDC_TCP_CONNECT(c, raddr)                  \
    TRACE(c, "Initiating TCP connection to {raddr}", raddr)
#define TRACE_SENDTO_KDC_TCP_DISCONNECT(c, raddr)               \
    TRACE(c, "Terminating TCP connection to {raddr}", raddr)
#define TRACE_SENDTO_KDC_TCP_ERROR_CONNECT(c, raddr, err)               \
    TRACE(c, "TCP error connecting to {raddr}: {errno}", raddr, err)
#define TRACE_SENDTO_KDC_TCP_ERROR_RECV(c, raddr, err)                  \
    TRACE(c, "TCP error receiving from {raddr}: {errno}", raddr, err)
#define TRACE_SENDTO_KDC_TCP_ERROR_RECV_LEN(c, raddr, err)              \
    TRACE(c, "TCP error receiving from {raddr}: {errno}", raddr, err)
#define TRACE_SENDTO_KDC_TCP_ERROR_SEND(c, raddr, err)                  \
    TRACE(c, "TCP error sending to {raddr}: {errno}", raddr, err)
#define TRACE_SENDTO_KDC_TCP_SEND(c, raddr)             \
    TRACE(c, "Sending TCP request to {raddr}", raddr)
#define TRACE_SENDTO_KDC_UDP_ERROR_RECV(c, raddr, err)                  \
    TRACE(c, "UDP error receiving from {raddr}: {errno}", raddr, err)
#define TRACE_SENDTO_KDC_UDP_ERROR_SEND_INITIAL(c, raddr, err)          \
    TRACE(c, "UDP error sending to {raddr}: {errno}", raddr, err)
#define TRACE_SENDTO_KDC_UDP_ERROR_SEND_RETRY(c, raddr, err)            \
    TRACE(c, "UDP error sending to {raddr}: {errno}", raddr, err)
#define TRACE_SENDTO_KDC_UDP_SEND_INITIAL(c, raddr)             \
    TRACE(c, "Sending initial UDP request to {raddr}", raddr)
#define TRACE_SENDTO_KDC_UDP_SEND_RETRY(c, raddr)               \
    TRACE(c, "Sending retry UDP request to {raddr}", raddr)

#define TRACE_SEND_TGS_ETYPES(c, etypes)                                \
    TRACE(c, "etypes requested in TGS request: {etypes}", etypes)
#define TRACE_SEND_TGS_SUBKEY(c, keyblock)                              \
    TRACE(c, "Generated subkey for TGS request: {keyblock}", keyblock)

#define TRACE_TGS_REPLY(c, client, server, keyblock)                 \
    TRACE(c, "TGS reply is for {princ} -> {princ} with session key " \
          "{keyblock}", client, server, keyblock)
#define TRACE_TGS_REPLY_DECODE_SESSION(c, keyblock)                     \
    TRACE(c, "TGS reply didn't decode with subkey; trying session key " \
          "({keyblock)}", keyblock)

#define TRACE_TLS_ERROR(c, errs)                \
    TRACE(c, "TLS error: {str}", errs)
#define TRACE_TLS_NO_REMOTE_CERTIFICATE(c)              \
    TRACE(c, "TLS server certificate not received")
#define TRACE_TLS_CERT_ERROR(c, depth, namelen, name, err, errs)        \
    TRACE(c, "TLS certificate error at {int} ({lenstr}): {int} ({str})", \
          depth, namelen, name, err, errs)
#define TRACE_TLS_SERVER_NAME_MISMATCH(c, hostname)                     \
    TRACE(c, "TLS certificate name mismatch: server certificate is "    \
          "not for \"{str}\"", hostname)
#define TRACE_TLS_SERVER_NAME_MATCH(c, hostname)                        \
    TRACE(c, "TLS certificate name matched \"{str}\"", hostname)

#define TRACE_TKT_CREDS(c, creds, cache)                            \
    TRACE(c, "Getting credentials {creds} using ccache {ccache}",   \
          creds, cache)
#define TRACE_TKT_CREDS_ADVANCE(c, realm)                               \
    TRACE(c, "Received TGT for {data}; advancing current realm", realm)
#define TRACE_TKT_CREDS_CACHED_INTERMEDIATE_TGT(c, tgt)                 \
    TRACE(c, "Found cached TGT for intermediate realm: {creds}", tgt)
#define TRACE_TKT_CREDS_CACHED_SERVICE_TGT(c, tgt)                      \
    TRACE(c, "Found cached TGT for service realm: {creds}", tgt)
#define TRACE_TKT_CREDS_CLOSER_REALM(c, realm)                  \
    TRACE(c, "Trying next closer realm in path: {data}", realm)
#define TRACE_TKT_CREDS_COMPLETE(c, princ)                              \
    TRACE(c, "Received creds for desired service {princ}", princ)
#define TRACE_TKT_CREDS_FALLBACK(c, realm)                              \
    TRACE(c, "Local realm referral failed; trying fallback realm {data}", \
          realm)
#define TRACE_TKT_CREDS_LOCAL_TGT(c, tgt)                               \
    TRACE(c, "Starting with TGT for client realm: {creds}", tgt)
#define TRACE_TKT_CREDS_NON_TGT(c, princ)                            \
    TRACE(c, "Received non-TGT referral response ({princ}); trying " \
          "again without referrals", princ)
#define TRACE_TKT_CREDS_OFFPATH(c, realm)                       \
    TRACE(c, "Received TGT for offpath realm {data}", realm)
#define TRACE_TKT_CREDS_REFERRAL(c, princ)              \
    TRACE(c, "Following referral TGT {princ}", princ)
#define TRACE_TKT_CREDS_REFERRAL_REALM(c, princ)                        \
    TRACE(c, "Server has referral realm; starting with {princ}", princ)
#define TRACE_TKT_CREDS_RESPONSE_CODE(c, code)          \
    TRACE(c, "TGS request result: {kerr}", code)
#define TRACE_TKT_CREDS_RETRY_TCP(c)                                    \
    TRACE(c, "Request or response is too big for UDP; retrying with TCP")
#define TRACE_TKT_CREDS_SAME_REALM_TGT(c, realm)                        \
    TRACE(c, "Received TGT referral back to same realm ({data}); trying " \
          "again without referrals", realm)
#define TRACE_TKT_CREDS_SERVICE_REQ(c, princ, referral)                \
    TRACE(c, "Requesting tickets for {princ}, referrals {str}", princ, \
          (referral) ? "on" : "off")
#define TRACE_TKT_CREDS_TARGET_TGT(c, princ)                    \
    TRACE(c, "Received TGT for service realm: {princ}", princ)
#define TRACE_TKT_CREDS_TARGET_TGT_OFFPATH(c, princ)            \
    TRACE(c, "Received TGT for service realm: {princ}", princ)
#define TRACE_TKT_CREDS_TGT_REQ(c, next, cur)                           \
    TRACE(c, "Requesting TGT {princ} using TGT {princ}", next, cur)
#define TRACE_TKT_CREDS_WRONG_ENCTYPE(c)                                \
    TRACE(c, "Retrying TGS request with desired service ticket enctypes")

#define TRACE_TXT_LOOKUP_NOTFOUND(c, host)              \
    TRACE(c, "TXT record {str} not found", host)
#define TRACE_TXT_LOOKUP_SUCCESS(c, host, realm)                \
    TRACE(c, "TXT record {str} found: {str}", host, realm)

#define TRACE_CHECK_REPLY_SERVER_DIFFERS(c, request, reply) \
    TRACE(c, "Reply server {princ} differs from requested {princ}", \
          reply, request)

#define TRACE_GET_CRED_VIA_TKT_EXT(c, request, reply, kdcoptions) \
    TRACE(c, "Get cred via TGT {princ} after requesting {princ} " \
          "(canonicalize {str})", \
          reply, request, (kdcoptions & KDC_OPT_CANONICALIZE) ? "on" : "off")
#define TRACE_GET_CRED_VIA_TKT_EXT_RETURN(c, ret) \
    TRACE(c, "Got cred; {kerr}", ret)

#define TRACE_KDCPOLICY_VTINIT_FAIL(c, ret)                             \
    TRACE(c, "KDC policy module failed to init vtable: {kerr}", ret)
#define TRACE_KDCPOLICY_INIT_SKIP(c, name)                              \
    TRACE(c, "kadm5_auth module {str} declined to initialize", name)

#endif /* K5_TRACE_H */

redpajama_set_name: RedPajamaGithub


Consumer demand for food and ingredients grown in environments that are free from synthetically manufactured fertilizers or pesticides using non-genetically modified seeds free from synthetic seed treatments continues to expand at a significant pace. A recently released (Sept. 20, 2017) USDA 2016 Certified Organic Survey report pegged sales of organic commodities at $7.6, a 23% increase from sales in 2016. The total number of Certified Organic Farms grew by 11%, reaching 14,217, with the number of acres certified organic expanding 15% to 5 million, according to USDA.
Mainstream retail grocery outlets have responded to this demand by increasing available shelf browsing space for organic foods and ingredients. This has resulted in organic options becoming more competitively priced for a broader consumer base, which in turn drives demand in this emerging sector.
Canola is widely used throughout the food and feed industry and it was only a matter of time before demand for organic canola would develop across the food industry. Despite the incorrect perception from some misinformed sources that all canola is genetically modified, consumers in general have reacted very positively to suppliers offering this heart healthy edible vegetable oil in certified non-GMO and certified non-GMO organic versions.
Rubisco Seeds, as the largest supplier of exclusively non-GMO canola seeds in North America, is well positioned to meet this demand from farmers wishing to grow canola seeds in organic production systems. Availability of top preforming non-GMO canola hybrids, in addition to comprehensive in-house resources to optimize organic canola production systems, are key attributes to commercial organic farmers. Rubisco Seeds' unique national distribution system is designed to react expeditiously to custom orders from all growers. Rubisco Seeds was founded as a customer-focused business and will continue to adapt to demands in the marketplace from existing and new customers.


Fort Worth, TX, June 25, 2014 (GLOBE NEWSWIRE) -- EY celebrated Clane LaCrosse in a ceremony on Saturday, June 21st with the Southwest Region Entrepreneur Of The Year award in the Cleantech category. "I am honored for the recognition as an Entrepreneur Of The Year by EY," said Clane LaCrosse, founder, president and CEO for Bosque Systems. The selection of the leading entrepreneurs was made by an independent judging panel made up of previous winners of the award, leading CEOs, private capital investors and other regional business leaders. Regional award winners are eligible for consideration for the EY Entrepreneur Of The Year National Program. Award winners in several national categories, as well as the EY Entrepreneur Of The Year National Overall Award winner, will be announced at the annual awards gala in Palm Springs, California, on November 15, 2014.
Bosque Systems, LLC, a full service provider of water management services, was founded in 2007. Under Clane's leadership, the company became profitable within three months of operation. Clane's motivation and perseverance came from his conviction that U.S. producers would adjust their social consciousness towards responsible management of their most important resource - water. The company, which grew out of a dream, is worth today $250 million dollars and has experienced a 60% compound annual growth rate (CAGR) since its inception. Mr. LaCrosse explains that "instead of using 100 barrels of water one time, we want to encourage operators to use one barrel 100 times."
Millions of gallons of fresh, produced, and flowback water are used to perform hydraulic fracturing. Those various sources may not be compatible with each other or with formation fluids and minerals. Fluid and formation incompatibility can lead to severe scaling and/or fouling issues that can permanently damage a well or lead to high remediation costs. Bosque Systems has patented several technologies including DIONIXTM, ScaleStopTM, AnCatTM and BATTM to eliminate contamination from bacteria, sulfate, and other dissolved solids ensuring a higher return on investment for oil and gas producers.
Recycling and reuse programs are increasingly popular, especially in regions of Texas where local sourcing of freshwater can be a challenge. In addition, the Texas Railroad Commission established a ruling in 2013 to facilitate operators to recycle their produced and flowback water. To achieve a sustainable water supply system to support exploration and production efforts, water resources must be viewed in an integrated fashion. After careful analysis of the operators' water needs, Bosque Systems plans the development of water pipelines in production corridors, connects multiple high volume tanks or frac pits across large production areas, maps pipeline routes, and verifies the economic viability of the project. In the drought-prone Wolfcamp play, Bosque leads in reusing 100% of flowback and produced water for their partners. As a result, fresh water withdrawal has been minimized and traffic drastically reduced by using pipeline and storage tanks. Bosque blends up to 30% recycled and treated water which is mixed with fresh water at the well site. One customer commented: "We're using 100% of the produced water we have. If we were producing more water, we'd use it." This operator has now used about 3 million barrels of recycled water which would have been entirely freshwater. This past year, 70 wells have been completed in the Wolfcamp using blended water.
Bosque Systems is on its way to process more than 300 million barrels of produced and flowback water this year, more than 6 times the volume of its closest competitor. Bosque Systems' founder is recognized as a leading expert in the disposal well, water treatment, logistical and recycling industries serving oil and gas operators.
Clane and his wife, Rosana, have been married for thirteen years and have four children. The family resides in Dallas, TX.


Eric had waited for nightfall, but really wasn't all that impressive. Maybe our mooring was sheltered, but we'd been expecting much worse. Sideways rain and being buffeted about had been our expectations, but it passed over with a few huffs and puffs and a couple of small showers.
Time for a haircut. Mick got a set of new clippers at Christmas. The attachments are numerous, ears, noses, beards and hair. The shortest one for hair is a little bit longer than I used to use so Mick isn't quite such a skinhead as normal. It was nice to have sharp clippers again, those awkward thin bits (yes he has a few left on top) were a lot easier to cope with today. As the clippers buzzed away Tilly kept an eye on us and the towpath from up high.
This afternoon we had Nick Lane to visit. Nick is a writer, director, actor and a jolly lovely man who I know from my days working at Hull Truck. He arrived early, well he only lives around the corner! For those who know Nick this is a rarity but it meant we got to spend more time with him. We had a lovely catch up talking boats, plays, friends, windows, knights and Thorne.
Nick is being kept busy with various projects up and down the country. His kids Christmas plays have been going down a storm in Scarborough the last few years and he's been commissioned to do an adaptation of Treasure Island this year.
I designed a few of his Christmas shows at Hull Truck when there used to be an adult show playing in the evening with a kids show on the same set during the day. An Italian restaurant became a town square for an actors troupe to tell the story of Pinocchio. A modern warehouse office became various locations to tell A Christmas Carol. All good bonkers fun.
It was so lovely to see him and be able to spend some time catching up.
Tilly, you're out of focus!
0 locks, 0 miles, 1 Saturday paper, 3rd ball yarn nearly used, 9mm not grade 3, 1 cat taking up residency in the trees here, 1 fake knight, 1 Nick, 23567 memories, 2 portions of Nick Lane beef stew, 1 photo bomb.
This entry was posted in Uncategorized on 11th Feb 2019 by pipandmick.


The moment John Tavares put his signature on a contract to play for the Toronto Maple Leafs, the idea that just getting to the playoffs was good enough — a mantra for more than a decade — was thrown out the window.
It has been a whirlwind 2018 for the Maple Leafs, who in some ways are similar to last season's team but in others are vastly different.
"We're getting there," defenceman Morgan Rielly said. "I think we have work to do. We have to earn a little bit more of that when it comes to winning in the post-season.
By last Christmas, the Leafs were a top-10 team, in second place in the Atlantic Division to the Tampa Bay Lightning, and maturing into one of the betting favourites for the 2018 Stanley Cup.
By mid-April, they'd run into the Boston Bruins and got run out of the playoffs in relatively short order, a second straight first-round exit.
That meant two things: Lessons needed to be learned, and changes needed to be made.
The changes were significant. Stalwarts like Tyler Bozak, James van Riemsdyk and Leo Komarov left as unrestricted free agents. Core players as recently as five years ago, they were deemed expendable.
They were replaced — well, more than replaced — by Tavares, the biggest name to change teams in free agency since Ryan Suter and Zach Parise joined the Minnesota Wild in 2012. Tavares said he was following his heart.
Other additions were smaller and cost-efficient. Marlies forward Andreas Johnsson and goalie Garret Sparks were promoted after their Calder Cup championship; European free agents Par Lindholm and Igor Ozhiganov earned depth roles.
But it was off the ice where things changed even more dramatically. Lou Lamoriello was out as general manager after changing the culture of the team in his three years to one of accountability and professionalism. Kyle Dubas was in as GM, bringing a modern philosophy to an old game. Mark Hunter, widely credited with scouting and drafting the pool of talent that has led the team from the abyss, was also out.
But with the changes come higher expectations; the Leafs aren't paying Tavares $11 million (U.S.) a season to go down in the first round again.
They approached the holidays again chasing the Lightning in the Atlantic, and the East.
The Leafs are a fast, skilled, young team that some nights wins on talent alone. In the playoffs, the lesson they learned is talent is not enough.
"The part we're learning now is the details," veteran Patrick Marleau said. "You can work, you can compete, but without the details you make it hard on yourself. If you do the details right, making the right decision with the puck, you don't give the other teams that many chances and you will get more.
The players are trying to apply that lesson to the 82 games of the regular season.
"It's the work part," Marleau said. "It's great having all the talent that we have, but you have to have the work for that talent to come out. We have a lot of the pieces. Not too many teams in the league have the pieces we do.
January: The Leafs blow a third-period lead in Philadelphia, their fourth loss in a row and their seventh loss in nine games. Goalie Frederik Andersen delivers a harsh message: "We've got to figure out who wants to commit to playing for the team." They were on their way to losing again the next game in Ottawa when Patrick Marleau spoke up. "You don't want to have to do that," Marleau says. "You want the team to be clicking on all cylinders." The Leafs come back in Ottawa and go on to win 10 of 12 games.
March: With Auston Matthews sidelined for a third time, Mitch Marner's offence comes to life. The Leafs break their franchise record for wins and home wins with a victory over Florida. Marner has a run of 15 goals and 35 points in 28 games after being moved onto Kadri's line and ultimately leads the team in scoring.
June: The Marlies win the Calder Cup, a first for the franchise and the first men's professional hockey trophy in the city since 1967. "This core group is gonna do it again — at another level," says Sparks. Dubas makes Soo Greyhounds defenceman Rasmus Sandin the Leafs' first-round selection at the draft in Dallas.
September: It's decided the Leafs' captaincy will remain vacant prior to the team assembling for training camp in Niagara Falls. Notable for his absence is William Nylander, who remains unsigned. He's the first of the young guns whose contract is up for renewal. "We can and we will," becomes Dubas' mantra on his desire to keep his core together and sign Nylander.
October: The Leafs get off to an 8-4-0 start; Matthews has 10 goals in the first six games and his goal celebrations draw the ire of some. "At some point you have to do what makes you happy and put yourself out there, have fun and not care what people think," the Leafs centre says. Matthews has 16 points before being sidelined again on Oct. 29.


text:
Home News Television Virgin Media debuts Che's HD hat
Virgin Media debuts Che's HD hat
Yes, that iconic beret will be all shiny and high-def if you happen to be a Virgin Media customer. That's because the HD premiere of Che will air exclusively on Virgin's TV service, courtesy of PictureBox.
Part One, The Argentine, will launch on 5 February, and Part Two, Guerrilla will follow a month later on 5 March.
The films will each be available for a month on Virgin Media's TV on demand service, meaning that customers will be able to watch them whenever they want during this time.
Academy Award-winning director Steven Soderbergh's two part Che Guevara biopic stars Benicio del Toro as the eponymous revolutionary. The role won del Toro the Best Actor Award at the 2008 Cannes Film Festival.
Part One focuses on the build-up to the Cuban revolution from the perspective of its leaders, including the young physician Guevara, and Fidel Castro. Part Two chronicles Guevara's attempt to develop and implement revolution in Bolivia.
PictureBox is available to Virgin Media's 3.7 million TV subscribers for £5 per month and provides a broad selection of recent and library feature films.
Previous articleFree stuff is popular, says Nokia
Next articleTop 10 iPhone cases
Amazon unveils dirt-cheap Fire tablet for £50
Sky to launch 4K box in a matter of weeks?
Rockstar files lawsuit over BBC GTA drama

redpajama_set_name: RedPajamaCommonCrawl


text:
King's Rochester Prep & Pre-Prep Schools, ME1
St Nicholas House, King Edward Road, Rochester, Kent ME1 1UB
10 simple reasons to choose King's Rochester Prep & Pre-Prep Schools
Independent prep school and nursery in Rochester.
Day and boarding school. Less than 5% of pupils board, 60% are full boarders and 40% are weekly or flexi boarders. Boarding starts from Year 7.
Religious character; Church of England.
Choir school. Non-selective admissions policy. Choristers selected on singing ability.
Prep school to The King's School, an all-through school to age 18.
Fees range from £3,625 (Rec) to £5,340 per term (2021/22). Full boarding fees are £7,840 per term.
10 better reasons to choose King's Rochester Prep & Pre-Prep Schools
One of the best independent prep schools in Rochester and one of the 3 best primary schools for 1 mile.
At the end of Year 6 about 20% of King's Rochester Prep pupils leave for a grammar school. Invariably, the 80% who stay on move up to the senior school at the end of Year 8.
School curriculum is based on the National Curriculum and the ISEB Common Entrance curriculum with some additions and variations. It also includes PSHEE, French, German, Latin. There are also some extra-curricular academic clubs.
Specialist teachers for sport, music, languages, art and computing throughout, and for most subjects from Year 5.
School offers over 10 different sports. Competitive teams in major sports from Year 3. In recent years the school has enjoyed national success in athletics.
School educates the choristers of Rochester Cathedral. Art and music are taught as discrete curricular subjects to all pupils. Drama is part of the co-curriculum. All pupils learn an instrument in class and over half take extra-curricular instrument lessons from Year 3. Choir (in addition to the Choristers), orchestra and five instrument ensembles. Up to 10 extra-curricular creative and performing arts clubs per year group per term.
Find another school near King's Rochester Prep & Pre-Prep Schools
Day: St Andrew's School, Rochester (0.2 miles); Gad's Hill Kindergarten & Junior School (3.4 miles); Bryony School (4.7 miles). Boarding: The New Beacon School (22.6 miles); Kent College Prep School, Pembury (22.8 miles); Dulwich Prep, Cranbrook (23.8 miles).
St William of Perth Catholic Primary School, Rochester (0.9 miles); The Pilgrim School (1.2 miles); Oaklands School, Chatham (2.8 miles).
Day: The King's School, Rochester (0.3 miles); Rochester Independent College (0.3 miles); Gad's Hill School (3.4 miles). Boarding: The King's School, Rochester (0.3 miles); Rochester Independent College (0.3 miles); Cobham Hall (6.1 miles).
Fort Pitt Grammar School (0.8 miles); The Rochester Grammar School (1 mile); Sir Joseph Williamson's Mathematical School (1.2 miles).


text:
Q: shm_open is an undefined symbol in shared library I compiled a object file shm.o and packaged it as a shared library libshm.so
arm-linux-gnueabihf-gcc -fPIC -o shm.o -c shm.c
arm-linux-gnueabihf-gcc -shared shm.o -o libshm.so -lrt

where shm.c and output of nm libshm.so are shown as follow.
/*shm.c*/

#include <sys/mman.h>
#include <sys/stat.h>
#include <fcntl.h>

void func_shm(void)
{
    int ret = shm_open("/test_shm", O_CREAT, 0644);
}

/*output of nm*/

00000328 t $a
000002e4 t $a
00000484 t $a
...
...
00000328 t call_weak_fn
0001102c b completed.10740
         w __cxa_finalize@@GLIBC_2.4
...
...
0000034c t deregister_tm_clones
000003e0 t __do_global_dtors_aux
00010f0c t __do_global_dtors_aux_fini_array_entry
00011028 d __dso_handle
00010f10 a _DYNAMIC
00000484 t _fini
00000448 t frame_dummy
00010f08 t __frame_dummy_init_array_entry
00000498 r __FRAME_END__
0000044c T func_shm
00011000 a _GLOBAL_OFFSET_TABLE_
         w __gmon_start__
000002e4 t _init
         w _ITM_deregisterTMCloneTable
         w _ITM_registerTMCloneTable
00000390 t register_tm_clones
         U shm_open@@GLIBC_2.4
0001102c d __TMC_END__

As it can see, at the second line to last, shm_open is a undefined symbol even though -lrt is appended.
As per shm_open(3) — Linux manual page; However, the version of glibc shown in the nm is 2.4.

These functions are provided in glibc 2.2 and later.

My expectation are

*

*libshm.so will have a definition of
shm_open, because -lrt is appended at the end of command; Therefore shm_open will not be an undefined symbol.

*Any application that invokes func_shm only needs to link to
libshm.so without specifying -lrt
What should be done to get this problem fixed?

A:
As it can see, at the second line to last, shm_open is a undefined symbol even though -lrt is appended.

This is expected: you are linking against librt.so. The definition of shm_open is in librt.so, and not in your library.

My expectation is that after linking process, libshm.so will have a definition of shm_open, so shm_open should not be an undefined symbol.

This expectation is wrong.
What you described is what would have happened if you linked with librt.a (archive library). In that case, the linker would have pulled the object implementing shm_open() into libshm.so.
But since you are linking against librt.so (which provides the definition), the linker simply records that librt.so is required at runtime, and that shm_open() will need to come from some external shared library at runtime. The reference to shm_open() in libshm.so remains unresolved.

In addition, any application that invokes func_shm only needs to link to libshm.so without specifying -lrt

This is indeed what should already happen (provided you link libshm.so against -lrt, like your command line shows).
If the application itself doesn't call anything from librt.so, and only calls func_shm(), then linking it with gcc main.o -L/... -lshm should work.
I tried this on Linux/x86_64, and it worked:
gcc -fPIC -shared -o libshm.so shm.c -lrt

# Verify that libshm.so requires librt.so:
readelf -d libshm.so | grep NEEDED
 0x0000000000000001 (NEEDED)             Shared library: [librt.so.1]

gcc main.c -L. -lshm
# success

Now, you might be confused because the application linked as above will not actually run:
./a.out
./a.out: error while loading shared libraries: libshm.so: cannot open shared object file: No such file or directory

But that is an entirely different problem -- the application doesn't know which directory to find libshm.so. To fix this, add -Wl,-rpath=/path/to/dir (which /path/to/dir is the directory in which libshm.so is to be found at runtime).

redpajama_set_name: RedPajamaStackExchange


text:
SWORDS FENCING STUDIO
Locations, Classes, and Fees
Class and Event Calendar
Celebrating our Fencers!
Videos - Swords Fencers in Action
One Parent's Perspective
Fencing 101
Collegiate Fencing
Did you know that fencing can give you a real advantage in getting into a top college?
Fencers who succeed fencing at a national level have a distinct advantage when applying to colleges. Most of the top colleges in the US recruit fencers for their NCAA teams, colleges such a Yale, Princeton, Harvard, Cornell, UPenn, Notre Dame, to name a few, actively pursue fencers who compete successfully on the national level. Even if your fencer does not compete at that level, it is still an advantage to list fencing on the college application. Colleges understand the commitment to fencing, and the challenges that fencers face, trying to balance competition with school work, They also appreciate that fencing is a form of physical chess. Students who fence learn to think fast on their feet, and their reflexes, physical and mental, are strong. Fencing often helps students learn to strategize, plan ahead, and organize their time, There are also many colleges who look to support their fencing teams outside of the NCAA, Division 2 and Division 3 colleges, and many colleges support intramural clubs.
A current list of NCAA fencing collegiate team rankings can be found on collegefencing360's website here.
The most recent 2018 Team standing and championship coverage can be found on the NCAA website here.
Our fencers have or are currently attending: Harvard, MIT, Columbia, Stanford, Notre Dame, Barnard, Penn State, Ohio State, St. John's, UC Berkeley, and UCSD.
They have also been accepted to : Princeton, Yale, Brown, McGill, UCLA, Pepperdine, UC Irvine, and many others.
Below are the list of Division I, II, and III collegiate fencing schools with their Ivy league designation. (Division and Alphabetical)
Barnard College (w/ Columbia)
Cornell University (women only)
University of Detroit Mercy
Fairleigh Dickinson University (women only)
New Jersey Institute of Technology
St. John's University (New York)
Queens College (New York)
Wayne State University (Michigan)
Delaware Valley University


Partner with Rise Comms to increase your online presence, enhance your brand awareness, improve your content output, grow your reach and develop your company's profile and presence. We work with companies just like yours to elevate them to the next level. If you want your company to Rise up and be heard, come and join us!
We work with clients to develop content and content marketing strategies that align with their corporate vision and values and that deliver results. We develop strategies that dovetail with your business objectives, enabling your business to thrive.
Comprehensive PR & Marketing solutions and digital media consultancy services. Positioning clients in the path of their target audiences with perfectly timed messages, we will connect you with potential customers at the right time.
We live in a digital world and digital PR is a fundamental element in today's successful marketing strategies. We work with clients to help shape their digital presence and build their brand in spaces where their customers are already active.
We provide detailed analysis and measurement of all we do. Using a variety of metrics, we demonstrate results and provide focus for recommendations.
from small, straight-forward projects to large, complex campaigns.
To facilitate clients with their ongoing digital marketing requirements, we provide responsive website design, development and comprehensive website data analysis to demonstrate the results.
We create, optimise, publish and distribute inspiring and informative digital content marketing assets. We can work with you to elevate your brand, company or product, bringing it to life ensuring that your target audience is reached, engaged and customers retained.
We understand the motivations of the sales force and work with all areas of the business to develop resources and collateral that supports the front line and equips them for efficiency and success.
We are working with all of our clients to prepare them for the new General Data Protection Regulation (GDPR) which comes into force in May 2018. GDPR AFFECTS YOUR COMPANY TOO! To find out more about GDPR and the processes and integrations required, email hello@risecomms.ltd and we will help you on the road to readiness.
A few stats, we love stats!
Want us to contact you to discuss your requirements?
Might be something useful here, have a look!
We would love to chat to you to find out a bit more about what led you here and what level of marketing support you need to make your company fly. Whether you have a one off PR requirement or a longer term need, we can help. Fill out our enquiry form and we'll give you a call to discuss!


text:
Deadline Extended to Bid on Patriot Assets
As the case moved into July, Patriot had a deal to sell most of its Central Appalachian operations to Lexington, Kentucky-based Blackhawk, which agreed to serve as stalking horse bidder in any upcoming court-approved auction.
But the deadline for submitting counter offers to Blackhawk's has changed. The initial deadline of August 7 is now September 4 following a late June order by Judge Keith Phillips of the U.S. Bankruptcy Court for the Eastern Division of Virginia. Patriot, based in Scott Depot, West Virginia, filed for Chapter 11 bankruptcy reorganization on May 12.
The United Mine Workers of America (UMWA), Patriot's unsecured creditors committee and U.S. Trustee Judy Robbins had petitioned the court to extend the bidding procedures, arguing a later deadline could attract more offers in addition to Blackhawk's. Under its non-cash transaction, Blackhawk would issue about $653 million of new debt securities, up from $643 million previously, to Patriot's secured lenders while providing the lenders an ownership interest in Blackhawk, a growing Central Appalachian and Illinois Basin producer that expects to turn out about 10 million tons of coal in 2015.
Patriot's largest secured lenders, including Davidson Kempner Capital Management LP, Caspian Capital LP, Knighthead Capital and Hudson Bay Absolute Return Credit Opportunities Master Fund Ltd., had urged the judge to retain the August 7 bid deadline.
Blackhawk is proposing to buy the Kanawha Eagle, Midland Trail/Blue Creek, Paint Creek, Wells, Rock Lick, Panther and Logan County mining complexes in Central Appalachia from Patriot, as well as river terminals Patriot controls. Most of the operations produce metallurgical coal, primarily for overseas markets.
Patriot's Federal No. underground mine and prep plant in Monongalia County, West Virginia, are not included in the Blackhawk deal. The UMWA represents Federal 2 miners.
Patriot wants to consummate an asset sale by September, although the UMWA and unsecured creditors committee have asserted there is no need for such a timetable.
The unsecured creditors committee and UMWA's 1974 Pension Plan experts contended that Blackhawk, or any other buyer, could afford to wait because "much of Patriot's coal is sold overseas under contracts negotiated three months later, Patriot's metallurgical coal is high quality, or Patriot can sell its coal as a debtor in possession."
But the secured lenders said all of those opinions were "beside the point."
Patriot, they said, is on track to run out of cash in November. As a result, "every coal buyer knows that it cannot rely on Patriot to deliver coal after November, and every potential bidder for Patriot's assets has known for at least one month it must act now to buy Patriot as a going concern. The earlier a solvent buyer can acquire Patriot's coal, the greater the sale price for that coal, the greater the value to the buyer, and the more the buyer will pay."
The secured lenders have provided debtor-in-possession financing to Patriot while it navigates the time-consuming Chapter 11 process. They support Blackhawk's proposal.
"It is Blackhawk's judgment that it needs to acquire the debtor's metallurgical coal assets in order to sell them under long-term contracts," they said. "As a buyer of the business, Blackhawk wants to make its own decisions on metallurgical coal sales and not be saddled with decisions made by predecessor management."
Indeed, Blackhawk's position is one like any prospective buyer would take, they added. The secured lenders implored the court "not to jeopardize the debtors' best chance of reorganization by driving Blackhawk away."
Blackhawk is not going anywhere, according to Jesse Parrish, the company's director of strategic planning and corporate communications, and the company is confident its offer eventually will be accepted.
PreviousPeabody Mines Can Get Self-bonding Funds
NextOtter Trail Plants Will Open Soon
Industry Remembers UBB Miners
Hallador Reviews Two New Mine Projects
GWI Completes Acquisition of RailAmerica
Clean Coal Technologies Signs Agreement for Pristine M Plant in Wyoming


text:
Remembering Anner Bylsma
The great Dutch cellist Anner Bylsma died July 25 at the age of 85.
By Guy Fishman
I play early music on period instruments because of the great Dutch cellist Anner Bylsma, who died July 25 at the age of 85. When I was 14, I entered the classical music section of a Tower Records store where Bylsma's recent release of arrangements of music for unaccompanied flute and violin by J.S. Bach, performed on his son's 7/8-sized cello tuned like a violin, was being played. I didn't pay much attention to it until Bylsma hit the final note of the prelude to the E major Partita, BWV 1006. It ended a driven but, as I realized much later, subtly nuanced and very "spoken" performance. It seemed the energy stored by what had preceded the note was fully released by it: powerfully, beautifully, emphatically, and most notably to me, without a hint of vibrato. I had never heard anything like it; it shocked and captivated me. I grabbed a copy and bought it. Anner changed my life, and would do so again.
Guy Fishman
I listened to the recording every day for months. I studied Bylsma's liner notes and in pre-Google days searched for anything about the cellist I could find. A few years later, I was able to hear him play three Bach suites at the Walter Reade Theater, a woefully dry acoustic situated at Lincoln Center in Manhattan. He addressed the audience to explain why he was sitting on a "throne," as he called it — a podium barely wider than a chair, regularly used by concerto soloists ("It sounds better, even without an endpin."). During the fifth suite, he tuned his "a-turned-g" string while sustaining it in a cadence. I knew I needed to play for him. After getting his autograph, I asked if he took students. He said, "I have left school," in a way that seemed as though he was recently matriculated in a degree program but decided to drop out.
It took some time, but I got my chance to study with Bylsma after all. During doctoral studies at New England Conservatory, I was awarded a Fulbright fellowship in Amsterdam, and because Bylsma was not affiliated with a university, I took private lessons at his home next to the Vondelpark. Lessons began with tea and biscuits in the kitchen, over which discussion was had on a variety of topics, musical and not. We then moved upstairs and worked for two hours in a room dominated by a massive library of first editions and copies sent by distant libraries, collected over a lifetime and organized in folders ("I'm very proud of my system."). When I could take in no more, we would return to the kitchen to listen to some recordings while eating an aged Gouda and drinking Calvados, his favorite spirit. This weekly wonder of an experience lasted about three hours; when I said I needed to split lessons in two so that I could absorb more easily, Anner agreed to two weekly lessons, but what was presumably to last 1-1/2 hours turned into two 2-1/2 hour lessons. Anner had quite a bit to say about a great many things.
By the time I moved to Amsterdam, I had already released a CD and had steady work with the Handel and Haydn Society and Boston Baroque. In my arrogance, I arrived with a copy of Bylsma's book, Bach, the Fencing Master, annotated with my various oppositions to the arguments he made in it. It didn't matter. Anner made certain I didn't waste too much of my time arguing by completely disarming me with an infectious wit and charm, delivered by an almost mesmerizing storytelling ability. Within a couple of weeks, I was converted; by the time I left, I wanted to be just like him.
The level of inquiry and erudition was intoxicating. There was not only what he had read, in either Dutch, German, French, or English, but the conclusions and extrapolations he created, usually presented as a scene that would give a South Bank director pleasure in creating, or a remembrance of some colorful event from his past, or just an entertaining analogy. "At the end of your bow, right before you change direction, you must slip on a banana peel"; "This note should be connected to the next by just the thinnest strand of spittle"; "My aunt Viola once heard vibrato. She exclaimed, 'Why, I would NEVER do that!!!' So here, in this measure, think of my aunt Viola."
But there was plenty of practical, technical direction. Anner was entirely aware of his place in the early-music world and how other cellists viewed him (while in Amsterdam, I heard Janos Starker give a speech in which he said, "The world's greatest baroque cellist lives right here in Amsterdam." There was no doubt as to whom he meant.) But he did not regard these as "baroque cello" lessons, and I understood why Hidemi Suzuki told me that Bylsma wouldn't teach him baroque cello when he studied with him. Bylsma began playing on a cello fitted with gut strings and never gave them up. He won the 1959 Pablo Casals Competition using them; he was principal cellist of the Concertgebouw Orchestra playing on them. He recorded Debussy, Schubert, Hindemith, Messiaen, and Shostakovich on them. When his colleague Tibor de Machula asked him why he played on such old-fashioned strings, he replied that, surely, steel strings — having come around in a more global way in the 1920s and 30s — were by the 1970s themselves old-fashioned, and that everyone should use gut. Certainly the repertoire was Baroque — he assigned me works by Domenico Gabrielli, Antonio Vivaldi, and, of course, the suites for unaccompanied cello by J.S. Bach, although there was also Haydn, Romberg, Beethoven, Schumann, and Popper. But the element that is a highlight difference between standard and baroque instruments — gut strings — was not discussed.
What was discussed, and the only bit of equipment Bylsma cared deeply about, was the bow. I started on my way to understanding the variety of weight and emphasis created by a limitless vocabulary of articulation that I had unknowingly encountered at Tower Records when Anner — who was not performing publicly any more — began demonstrating his use of the bow. The nimbleness of the fingers controlled not only an uncannily speech-like performance ("Is this music sung, like someone speaking with his mouth open? Or is it spoken?"), but also every imaginable sounding point on the string and therefore an ability to articulate a thought with sound density rather than pressure.
Anner's wife, the superb violinist Vera Beths, once told me as an aside, "Anner has the best bow arm in the world." I accept this statement as fact. This is easy to do because when I asked Anner why he used his Peccatte bow for his second recording of the Bach suites and his Bouman baroque bow for Haydn concerti, he answered, "What your ear hears, your bow must do." There was perhaps no more important lesson to be learned. What is evident in the numerous tributes to Anner that over the last week have appeared in print and online is that the music world mourns the loss of the imagination that wielded that bow and created that sweet tone with which the music was spoken. It was driven by an indefatigable curiosity that Anner followed at any given moment, living fully in that moment, sometimes talking through it and suddenly asking a seemingly unrelated question as a new direction was suggested, or breaking out in laughter, his bushy eyebrows angling impossibly, as he did so.
Many thought Anner was a provocateur, but that is not who I experienced; he was fully committed to the journeys his curiosity and imagination took him on, and did not mind inviting us along, through performances, writings, recordings, and lessons, the last paired with a good Calva. I still have a list of questions I wanted to ask him, things he pointed to in lessons that hinted at one such journey or another. Now he's taken a journey on which I cannot come, so, as I did after that Bach recital I once heard, I'll have to wait.
Guy Fishman is principal cellist of the Handel and Haydn Society.
← Previous Web Article
Next Web Article →


text:
Future Disc Closes Its Hollywood Facility
Future Disc Systems, the mastering facility started in 1981 by Steve Hall, is relocating after 25 years at its Hollywood location, where the company grew into a 6,000-square-foot facility with multiple mastering studios offering the services of several top-notch mastering engineers in addition to Hall.
Future Disc's other mastering engineers included Kris Solem and Gabriel Wallach and DVD engineer David Conrad. Hall and his wife Laura will relocate Future Disc to the Pacific Northwest. The other engineers will move on to work on a variety of projects. Hall says he wishes them all well and will miss their expertise and skill.
Although there will be a period of down time, Hall will resume mastering when the relocation is complete. Customers should continue to check Future Disc's Website for updates.
"We are really very excited to relocate to the beautiful northern Pacific coast," Hall says. "We will accommodate all of our customers that have projects in the pipeline during this transition, and once we are back up and running, we will still specialize in high-quality vinyl mastering as well as CD and surround mastering."
Future Disc was among the first mastering facilities to embrace surround sound technology as well as DVD authoring. The move is bittersweet for Hall. "There has been a lot of history made here and we look forward to being a part of many more great records, just in a different location," Hall says.
Hall has mastered surround projects that include The Band's The Last Waltz, Earth Wind & Fire's Gratitude, the Grateful Dead's American Beauty and Workingman's Dead, Jackson Browne's Runnin' On Empty, Foreigner's 4 and the Beach Boys' Pet Sounds.
In addition, Hall's discography includes Madonna's True Blue, the soundtrack for Pulp Fiction, the soundtrack for City of Angels, Green Day's Nimrod, Jane's Addiction's Nothing's Shocking and Toy Matinee's Toy Matinee.
For more information, visit www.futurediscsystems.com.
Mastering Lab Closes Hollywood Facility
Future Disc Systems
Future Disc Masters Six Grammy Nominees
Todd-AO Upgrades Television Mixing Facilities in Burbank, Hollywood
Future Disc Wins 2005 Music DVD Audio Excellence Award
Avid Closes Euphonix Acquisition
Steve Hall Establishes Future Disc in Rural Oregon
By Matt Gallagher


text:
Baby I'm Scared of You
The Sun Always Shines on T.V.
Geno (2000 Remaster)
I Feel for You
True (Single Edit)
Somewhere in My Heart
Jump to the Beat
Feel so Real
Each Time You Break My Heart
Cupid / I've Loved You for a Long Time
Lean on Me (Ah-li-ayo)
What's the Colour of Money
This Corrosion (2018 Remaster)
Big in Japan (2019 Remaster)
April Skies
Rio (2009 Remaster)
Don't Get Me Wrong (2007 Remaster)
International Rescue
You Might Need Somebody
I'm Gonna Be (500 Miles)
Everybody Salsa
Cry Boy Cry
Money's Too Tight (To Mention) (2008 Remaster)
Electric Youth
Lip up Fatty
Life in a Northern Town
Legs (2008 Remaster)
Hand Held in Black and White
The Last Film
Buzz Buzz a Diddle It
Half a Minute
Just Like Paradise
Devotion (Extended Version)
Ain't Nobody
Get Tough
We Care a Lot
The Cutter
Love Changes (Everything)
Ride Like the Wind
Drivin' My Life Away
Gimme Your Love
Salsa House (Edit)
The Harder I Try
Glory of Love
Two of Hearts
It's My Life (Edit)
St. Elmo's Fire (Man in Motion)
Love Wars
Owner of a Lonely Heart
Is This Love
Baby Jane (2008 Remaster)
They Say It's Gonna Rain
I Keep Forgettin' (Every Time You're Near)
Don't Wanna Fall in Love
West End Girls (2001 Remaster)
It Started with a Kiss
Orinoco Flow
Biggest Part of Me
You're the Inspiration (2006 Remaster)
Nothing's Gonna Stop Us Now
Got to Get (feat. Leila K)
Love on the Line


Running around playing airsoft can be a lot of fun - decidedly less fun however is getting shot in t..
Anti Fog Mask - Black Anti Fog Mask gives you 270 degree view. Which means your visibili..
Big Foot Tactical Full Face Mesh Mask ..
Your face and eye protection is one of the most important decisions you make in airsoft - it will gr..


6 External links to campaign websites?
10 RfCs: uncalled races, open seats, "seats before"/"seat change"
External links to campaign websites?
For many of these races which appear to be reasonably close (e.g CA-49, per FiveThirtyEight's projections, among others), we have many examples of articles about candidates which are turned into redirects to this page. It's arguable that the race gets enough mainstream attention that the challenger candidate becomes notable by proxy. It seems that what would be more useful for editors and readers is if we start splitting off those districts with notable elections (by virtue of being close and getting mainstream attention). Even if the candidate stops being notable after the election, the race itself is likely a notable event.
Any problem splitting any of these off?
if we start spitting these off, what title format should we use? E.g. does United States House of Representatives 2018 election for California District 45 work?
Now that we're through the 2018 general election, I would like to revisit my October 2018 proposal to split the more notable sections of this article into its own article, and set the precedent for creating an election article for each race. Regardless of outcome, many of the close races will certainly meet notability guidelines. I've created California's 10th congressional district elections, 2018 as an example of how this should be done (see also: California's 39th congressional district election, 2018). I believe that United States House of Representatives elections in California, 2020 should actually become 54 articles (one summary article and per-district detail articles).
There are many points that I'd like to respond to in Wikipedia:Articles for deletion/California's 10th congressional district election, 2018, Wikipedia:Articles for deletion/Audrey_Denney and in the #AfD nominations for CA-10 and CA-39 articles discussion below. I'm hoping to engage Bearcat, Muboshgu and SportingFlyer (among others) in a conversation here.
These conversations seem awfully reminiscent of the conversations that occurred shortly after I created U.S. Presidential election, 2004, particularly these conversations. In short, I allegedly jumped the gun by creating that article in January 2003, just as candidates were announcing. It didn't take a crystal ball to figure out that the U.S. Presidential election, 2004 was going to be a notable event, so I wanted to capture it as it was happening. I deeply regret not being more rigorous about capturing sources as I was building the timeline, but overall, I'm glad I got an early start on that article.
I wish I could have captured more about California's 10th congressional district election, 2018 here on Wikipedia as it was happening, but I knew there would be resistance to the idea, and I had more important things to do with my time. I'm admittedly biased, because I volunteered with Swing Left, and after the primary, I also volunteered with Josh Harder's campaign, but you'll note I said "volunteered". I was not paid to be part of the Josh Harder campaign. By volunteering, I became a lot more familiar with CA-10. I'm kicking myself for not getting a good picture of Harder with my own phone, but I'm glad Fabrice Florin wasn't bashful about taking pictures when he was out there.
I'm pretty sure that each of the elections in California are as notable as the United States House of Representatives election in Delaware, 2018 or United States House of Representatives election in Wyoming, 2018. Those elections are notable because Delaware has 961,939 citizens, and Wyoming has 579,315 citizens. It is biased and shortsighted to cram all of the elections for a state with 39,536,653 citizens into an omnibus article like this one. Each of these congressional districts has approximately 711,000 people in them. Sure, there's a slippery slope argument to make that if we allow this, then we allow every local district in every municipality all over the world. But it's not a good argument. People all over the world were interested in the outcome of these elections because of the effect they would have on United States governance. Let's argue the merits of this set of elections independently of arguing about whether each of the California State Assembly elections needs to have its own article (and no, I don't think they should).
I believe there's a rational case to be made that the Audrey Denney article doesn't need to exist under that name anymore. As I said on the Audrey Denney article AfD nomination, she gained her WP:Notability via running for U.S. Representative from CA-01, so I believe that the article should be renamed to California's 1st congressional district election, 2018, and that the prose that is there should be converted into an "Audrey Denney" section, similar to the "Josh Harder" section of the CA-10 article.
As to the notability of the Audrey Denney vs Doug LaMalfa race in CA-01, it's easy enough to scoff and say it wasn't notable now. But when the Audrey Denney article was created, it was notable. Maybe Audrey Denney wasn't notable yet, but the race was absolutely notable. FiveThirtyEight estimated that she had as high as a 22.7% chance of winning, and the projected a 21.7% chance for her on election day (source: FiveThirtyEight). Whoever runs, this is likely to be a notable race in 2020, and the details of the 2018 race are going to be interesting to many Wikipedia readers.
And being a Canadian, trust me as well that I can also speak much more authoritatively than you can on how deeply the rest of the world actually cares. Sure, we followed the main story about which party was or wasn't going to win the House, but that doesn't mean we cared that deeply about knowing the names of every individual congressperson, or that we need or want standalone articles about every individual House district's results. Sure, we were intrigued by a couple of the governor's races (damn, I was really hoping Stacey Abrams could pull it off) — but that doesn't mean we're going out of our way to memorize the names of every state governor. And on and so forth: sure, we notice your elections, but that doesn't mean we obsess over them to the point that your elections would earn special treatment over and above everybody else's elections.
Your elections are not so critically important to the rest of the world that we need 435 standalone articles about each individual US congressional district's results more than we would need 338 standalone articles about each individual Canadian electoral district's results, or 650 standalone articles about each individual British electoral district's results. You care more, because it's personal to you — but trust me, nobody in Canada cares more deeply about the names of your congresspeople than they do about the names of our own MPs, nobody in Britain cares more about the fathomless minutiae of your congressional elections than they do about their own Brexit dramas, nobody in Australia follows your politics more obsessively than they do their own inability to ever be entirely sure who's going to be prime minister when they wake up in the morning anymore, and on and so forth. Which is why it is not a "slippery slope" fallacy to point out that what you propose scales out beyond just the United States: your congressional elections are not of such overpowering worldwide "more important than anybody else's parliamentary elections" status as to require special treatment that other countries' elections aren't also getting, and it's completely ethnocentric to think they are. They matter more to you, but that doesn't mean they're equally important to people in Toronto and Oslo and Jakarta and Johannesburg and Sydney. We care who your president is, definitely — but we don't really have much reason to care whether your local congressperson's name is Josh Harder or Jeremy Softer. And in the unlikely event we ever do actually have a reason to need to know that, Wikipedia already has plenty of articles where we can find that information as it is without needing each individual congressional district to have its own standalone results article.
Because the number of voters in an individual district is not the notability test. Each state having one standalone article is a politically and geographically natural way to divide the overall nationwide topic up into manageable chunks, so the population of any individual state is completely irrelevant to whether "election in state" is a notable topic or not — but an individual district in a larger state happening to have a larger population than an actual smaller state also doesn't reify "election in individual district" into a standalone topic that's separately notable independently of "election in state", because voter population is not the notability test.
Firstly, the thread above this one is a closed thread with a "please do not modify it" disclaimer on it. Which means nobody's allowed to edit it for any reason anymore, and even if somebody wanted to respond to it now they would have to do so in a new thread.
Secondly, I'm not talking about that thread, I'm talking about what you said in the first post of this thread: in the very first comment of this thread, you explicitly stated that you believe we should move to "separate article for each individual district" from now on.
Thirdly, it's no sort of "slippery slope" fallacy to say that if we go that route for the US now and into the future, then we have to go that same route in Canada and the UK and Australia and Germany too — unless you're proposing that the United States should get special treatment that's denied all other countries with competitive democratic elections, the plainly logical outcome of an "each district gets its own standalone election article" approach is that it scales out to other democratic countries too. And if you do want to propose a reason why the US should get special treatment in that regard, you'd damn well better have the best reason for anything I've ever heard in my life — our job on here is to minimize cultural bias by treating all countries as equally as we possibly can, not to make up one rule for the United States and a different one for everybody else.
RfCs: uncalled races, open seats, "seats before"/"seat change"
RfC: When has a candidate won an election? RfC closed. Result: "There is a clear consensus for option 3: an article should state that a candidate has won an election when the election is called by reliable sources (All sources? Most sources? A particular source?) for United States elections. Some editors expressed support for requiring that more than one source call the election. There is no consensus owing to the lack of discussion by a number of the RfC participants on this, so there is no prejudice against opening a new RfC to discuss this further."
RfC: Definition of "open election" or "open seat"
RfC: "Seats before" and "seat change"
This page was last edited on 2 December 2018, at 07:08 (UTC).


It's being called a game changer, a BFD with the chance to give startups and small businesses what they need to grow.
Instead of cool tech, T-shirts or backing something because you believe in it, equity crowdfunding allows people to buy shares and invest in companies, and last Friday the Securities and Exchange Commission (SEC) made Reg. A+ legal in the United States.
Reg A+ removes the requirement that investors be accredited, or have more than $1 million in assets.
Investors can only buy up to 10 percent of their net income in stock.
Companies raising money under new rules can sell up to $50 million in securities in a 12-month period.
The accredited investor rule has been in effect since the Great Depression era of 1930s.
The JOBS Act that makes all this possible was passed and signed into law in 2012 but the SEC was in charge of implementation, a process that took some time.
So what does it all mean to journalism and media in the United States?
We don't really know yet. It's only been a week. Follow this space to see things develop, but here are a few interesting takes on the impact of equity crowdfunding that have been offered so far.
1. Ramona Ortega is a part of the Latino Startup Alliance and founder of Mi Dinero Mi Futuro. She believes Reg. A+ will be a big deal, especially for minority and women-owned businesses, she told TechCrunch.
2. If you have been a longtime reader of Through the Cracks then you remember Gimlet Media's venture into equity crowdfunding. They raised $200,000 in two hours with equity crowdfunding. Well they raised the money on the equity crowdfunding platform Quire (formerly Alphaworks), who broke down the whole history of equity crowdfunding in a three-part series on Medium.
3. If the entire idea of equity crowdfunding grabs your interest, you may want to check out this FAQ from the SEC.
4. A lot of people are bullish about the future of equity crowdfunding but some people who spoke with the LA Times believe the amount of paperwork necessary to file may be a deterrent to some companies.
Hi Kimberly. That's a good question. The pigadarm under which Kickstarter and others operate is one of donations, sometimes in return for services or perks of some kind. Kickstarter is actually limited to creative "projects" only and they state that it is "not about investment or lending." While there are target amounts and deadlines, best practices in raising funds for a project in this way seems to be to not shoot too high in your target amount because if you don't reach your target, no money changes hands. With Indiegogo, the money changes hands regardless of amount, but the fee is higher if the target is not reached and people are encouraged to run multiple, smaller campaigns. The bill before the Senate does not specifically address the issue of over funding, however it does require "a description of the stated purpose and intended use of the proceeds sought," and "a target offering amount, the deadline to reach the target offering amount, and regular updates regarding the progress …" This will probably be addressed in the rules that will be promulgated after the bill is signed into law, but bearing in mind that this will concern offerings for the sale of securities, in some specific amount, for a specific intended purpose, and with a finite deadline, once the target is met and all the securities offered have been sold, that will be the end of that particular offering; there will not be any more shares for sale and thus no over-funding. There may ultimately be a provision for the release of funds to the issuer once a certain percentage of the target amount is reached, as provided for in the House bill. In a case like that, presumably the offering would remain open after funds were released until the stated deadline has been reached or it was fully funded.


text:
Jim "Mattress Mack" McIngvale talks medicine, philanthropy and Hurricane Harvey
By Shanley Pierce April 30, 2019
JIM McINGVALE is best known in Houston as "Mattress Mack," owner and operator of the Gallery Furniture retail chain and star of his own homespun television commercials. But the Mississippi native is also an active philanthropist who has donated millions to numerous charities, community programs and medical initiatives in Houston. McIngvale spoke with TMC Pulse about helping finance the BiVACOR total artificial heart, supporting mental health and opening his store to Houstonians during Hurricane Harvey.
Q | You and your family moved from Starkville, Mississippi, where you were born, to Dallas, Texas, when you were three years old. Then you relocated to Houston in 1981 to open Gallery Furniture. What brought you to Houston?
A | My wife [Linda] and I came down here with $5,000 and the hope that we could make something happen. And, by golly, we're still here all these years later.
We were working together at this fitness center, and then we were dating. I told her I was going to move down to start this furniture store and I asked her to come with me and help me do it. She said, 'I'll only do that if you marry me.' We got married and here we are. It's been happily ever after for 38 years.
Q | In 1990, a doctor walked into Gallery Furniture to ask for your help. That doctor was Billy Cohn, M.D., chief emergency resident at Ben Taub Hospital at the time, now vice president for Johnson & Johnson Medical Devices Companies and the executive director of the Center for Device Innovation at the Texas Medical Center. Tell me about your initial encounter with him.
A | I was up here working and this surgeon walks in in his surgical scrubs. He's got blood all over him. It was Billy.
He hadn't shaved in three or four days. He says, 'Hey, we've got the new Ben Taub Hospital and the county's run out of money, so all of the people that are waiting in the emergency room while their loved ones are being operated on are having to sit on the floor. Can you get us some recliners?' I said, 'How many do you need?' He said, 'We need a whole truckload, 40 or 50 or something.' I said, 'Sure, I'll get them for you.'
I got him all those recliners and we shipped them down there to Ben Taub, but they wouldn't take them. They didn't have hospital foam in them, so they weren't flame retardant. That's why I remember the story. They sent them back to us. He called very apologetic. We called and ordered them with hospital foam and got them back down there to him.
Q | You encountered Cohn again in 2008 when your brother, George, was suffering from congestive heart failure.
A | My brother was very sick, and I was down there at St. Luke's to have a meeting with Dr. [Bud] Frazier about how they were going to save my brother's life. Billy walked in with Bud.
I would be down there visiting my brother at 12, 1, 2 o'clock in the morning after I got off work, and I'd be kneeling by his bedside. Even though he was in a coma, he knew I was there because we were very close. And Bud would come in there and check his charts and nurture him.
Bud would talk to me, and I would say, 'Dr. Frazier, it's 2 o'clock in the morning. What time do you operate tomorrow?' And he said, 'I operate at six.' I said, 'Do you ever sleep?' He said, 'Yeah, I go up there in my office and sleep three or four hours. I'll be fine.' I [asked] one night, 'Why do you do all this?' He said, 'My patients are my life.' You got to love a guy like that.
Q | Frazier and Cohn wanted to work with Daniel Timms, Ph.D., creator of BiVACOR, a next-generation total artificial heart designed to replace the function of a patient's failing heart. You decided to invest $2.1 million to bring Timms from Australia to Houston. What motivated you to get involved with BiVACOR and the team?
A | At the end of the day, it's all about patients. If we can do something through BiVACOR that helps people live longer, healthier lives and get back their quality of life, then I've done something good for the world. I'm not going to be here forever, so my wife and I both want to try to leave a legacy.
What we need is somebody to invent a battery that can power this artificial heart through the skin without having to have wires coming out, because those wires cause infection and they limit a person's lifestyle. If any aspiring entrepreneur at the Texas Medical Center wants to invent a battery that can power that heart through the skin, let me know. That would be a great movement forward in the BiVACOR artificial heart business.
According to Billy and Bud, in the next year or two, they can get it implanted in a human and we'll see what happens. Lots of history at the Texas Medical Center and, thanks to Daniel Timms, Dr. Frazier and Dr. Cohn, hopefully they'll make some more.
Q | Your daughter, Elizabeth McIngvale, Ph.D., serves as an assistant professor of psychiatry and behavioral sciences at Baylor College of Medicine and is an active mental health advocate who was diagnosed with severe obsessive compulsive disorder (OCD) when she was 13 years old. At the time, some doctors said her condition was too severe to be treated. How did you respond to that?
A | My wife and I are eternal optimists. One way or another, we weren't buying the prognosis that our child would never amount to anything, that she would never graduate high school, that it was best to put her in a mental institution for the rest of her life. We weren't buying that and we were going to find a way.
I talked to the people I knew at the Texas Medical Center. Linda searched the internet and we finally found a lady who recommended The Menninger Clinic, then in Topeka, Kansas. We took Liz up there and she went to six or eight weeks of intensive therapy, then came back to Houston and had another relapse. By that time, Menninger had moved to Houston.
It's been a long journey, but we learned a lot and, knock on wood, she's doing well, although she continues to battle the mental illness every day.
Q | What were some of the most difficult experiences you remember as she was struggling with her condition?
A | Her being suicidal was extremely tough on the whole family—especially on her—and for her to be unable to control those rituals and compulsions that she knew made no sense and were illogical, but she had to do them anyway because of mental illness. All that was extremely tough. But you know, we're people of faith and you've got to keep the faith. You've got to just keep believing. We all want to be life forces for good,
and my life force says that the good Lord never sends any of us anything we can't handle.
Q | How do you determine which issues and organizations to support?
A | I think the majority of people, when it comes to philanthropy, probably give to things that have affected them personally. My beloved brother and my father both died of congestive heart failure, so that's why I'm involved in BiVACOR. I've had some mini strokes and this and that, that's why I'm involved with the Mobile Stroke Unit, which is a partnership between UTHealth and Memorial Hermann-Texas Medical Center. At the same time, we give a lot to education and things that we deem are good for the city, good for the state.
Q | You opened Gallery Furniture to victims of Hurricane Harvey. What was going through your mind when you decided to offer up your business as a massive crashpad?
A | I was up at the front desk and the phone was ringing off the wall and the emails were exploding and the text messages were ding, ding, ding—nonstop, people saying, 'Come rescue us! We're going to drown!'
We'd done a pretty good job of preparing for the hurricane by having all these big trucks here get through a lot of water, but what we hadn't prepared for was the fact that none of our employees could get to work because they were all flooded in, too. I did a Facebook Live and put out a notice we needed people with commercial drivers' licenses to come drive these trucks and rescue people.
They came in and we sent them out. We had to get in the game real quick. There wasn't a lot of planning. That's the way I was brought up: Do the right thing and worry about the cost of whatever later. And that's what we did.
We were all energized, the ones of us that were here doing it, by the courage of the people that we brought in. They waded through four to six to eight feet of dirty water to get here and they were devastated, but they had a good, positive attitude. You saw the strength of the human spirit.
Q | What is your most poignant memory from that time?
A | I think the first night we had 200, 300 people sleeping in here, so we had the air conditioning cranked down real cold. They were sleeping in furniture blankets, the only blankets we had. But they were sleeping on these couches, on the mattresses, they were sleeping everywhere. It was still raining very heavy outside—very hot, very humid, but it was cold in here.
About 2 o'clock in the morning, the door opened and this little girl came in with her people—I believe her parents and her uncle. They were all four just sopping wet because they had waded through three or four feet of dirty water on the feeder road. She was the only one out of the four who spoke any English. She saw me up there, but she was afraid to come up to me. Finally, I motioned for her. She's wet and hot and traumatized and dirty and scared to death. Now she's freezing because she's in this cold furniture store and her little teeth are chattering.
She comes up to me and says, 'Can we stay here tonight?' That was it.
It was a no-brainer. That's the way I was brought up. You worry about people, not about money. Money, you can make some more tomorrow, but people, you only get one shot.
Q | It's clear that you care very deeply about Houston. What do you love most about the city?
A | I think the fact that nobody in Houston asks you where you're from or what your educational level is. Houston gives everybody an opportunity to do well. All Houston ever said to me was, 'Kid, here's a chance for you. A chance to succeed, a chance to fail. It's totally up to you how hard you want to work to succeed.' And I think that's the story of Houston. We're multicultural, multiethnic and anybody can succeed in Houston if they want to roll up their sleeves and go to work.
Tags | elizabeth mcingvale, gallery furniture, Hurricane Harvey, jim mcingvale, mattress mack, ocd
Latest from Spotlights
Lucy Puryear, M.D., destigmatizes psychiatric conditions during pregnancy and postpartum
By Alexandra Becker September 9, 2020
UT professor Kate Biberdorf, Ph.D., better known as Kate the Chemist, wows audiences to ignite interest in science
By Cindy George August 3, 2020
The Bridge Builder: Rashid Mosavin, dean of TSU's College of Pharmacy and Health Sciences
Gary Tinterow, director of the Museum of Fine Arts, Houston, discusses his career in culture
By Britni R. McAshan February 5, 2020
James Muntz, M.D., team physician for the Houston Astros, Rockets and Texans, talks big wins and injuries
By Ryan Holeywell December 2, 2019