text:
#ifndef __G_PARAMSPECS_H__
#define __G_PARAMSPECS_H__

#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION)
#error "Only <glib-object.h> can be included directly."
#endif

#include        <gobject/gvalue.h>
#include        <gobject/genums.h>
#include        <gobject/gboxed.h>
#include        <gobject/gobject.h>

G_BEGIN_DECLS

/* --- type macros --- */
/**
 * G_TYPE_PARAM_CHAR:
 *
 * The #GType of #GParamSpecChar.
 */
#define	G_TYPE_PARAM_CHAR		   (g_param_spec_types[0])
/**
 * G_IS_PARAM_SPEC_CHAR:
 * @pspec: a valid #GParamSpec instance
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_CHAR.
 *
 * Returns: %TRUE on success.
 */
#define G_IS_PARAM_SPEC_CHAR(pspec)        (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_CHAR))
/**
 * G_PARAM_SPEC_CHAR:
 * @pspec: a valid #GParamSpec instance
 *
 * Cast a #GParamSpec instance into a #GParamSpecChar.
 */
#define G_PARAM_SPEC_CHAR(pspec)           (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_CHAR, GParamSpecChar))

/**
 * G_TYPE_PARAM_UCHAR:
 *
 * The #GType of #GParamSpecUChar.
 */
#define	G_TYPE_PARAM_UCHAR		   (g_param_spec_types[1])
/**
 * G_IS_PARAM_SPEC_UCHAR:
 * @pspec: a valid #GParamSpec instance
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UCHAR.
 *
 * Returns: %TRUE on success.
 */
#define G_IS_PARAM_SPEC_UCHAR(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UCHAR))
/**
 * G_PARAM_SPEC_UCHAR:
 * @pspec: a valid #GParamSpec instance
 *
 * Cast a #GParamSpec instance into a #GParamSpecUChar.
 */
#define G_PARAM_SPEC_UCHAR(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UCHAR, GParamSpecUChar))

/**
 * G_TYPE_PARAM_BOOLEAN:
 *
 * The #GType of #GParamSpecBoolean.
 */
#define	G_TYPE_PARAM_BOOLEAN		   (g_param_spec_types[2])
/**
 * G_IS_PARAM_SPEC_BOOLEAN:
 * @pspec: a valid #GParamSpec instance
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_BOOLEAN.
 *
 * Returns: %TRUE on success.
 */
#define G_IS_PARAM_SPEC_BOOLEAN(pspec)     (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_BOOLEAN))
/**
 * G_PARAM_SPEC_BOOLEAN:
 * @pspec: a valid #GParamSpec instance
 *
 * Cast a #GParamSpec instance into a #GParamSpecBoolean.
 */
#define G_PARAM_SPEC_BOOLEAN(pspec)        (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_BOOLEAN, GParamSpecBoolean))

/**
 * G_TYPE_PARAM_INT:
 *
 * The #GType of #GParamSpecInt.
 */
#define	G_TYPE_PARAM_INT		   (g_param_spec_types[3])
/**
 * G_IS_PARAM_SPEC_INT:
 * @pspec: a valid #GParamSpec instance
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_INT.
 *
 * Returns: %TRUE on success.
 */
#define G_IS_PARAM_SPEC_INT(pspec)         (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_INT))
/**
 * G_PARAM_SPEC_INT:
 * @pspec: a valid #GParamSpec instance
 *
 * Cast a #GParamSpec instance into a #GParamSpecInt.
 */
#define G_PARAM_SPEC_INT(pspec)            (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_INT, GParamSpecInt))

/**
 * G_TYPE_PARAM_UINT:
 *
 * The #GType of #GParamSpecUInt.
 */
#define	G_TYPE_PARAM_UINT		   (g_param_spec_types[4])
/**
 * G_IS_PARAM_SPEC_UINT:
 * @pspec: a valid #GParamSpec instance
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UINT.
 *
 * Returns: %TRUE on success.
 */
#define G_IS_PARAM_SPEC_UINT(pspec)        (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UINT))
/**
 * G_PARAM_SPEC_UINT:
 * @pspec: a valid #GParamSpec instance
 *
 * Cast a #GParamSpec instance into a #GParamSpecUInt.
 */
#define G_PARAM_SPEC_UINT(pspec)           (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UINT, GParamSpecUInt))

/**
 * G_TYPE_PARAM_LONG:
 *
 * The #GType of #GParamSpecLong.
 */
#define	G_TYPE_PARAM_LONG		   (g_param_spec_types[5])
/**
 * G_IS_PARAM_SPEC_LONG:
 * @pspec: a valid #GParamSpec instance
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_LONG.
 *
 * Returns: %TRUE on success.
 */
#define G_IS_PARAM_SPEC_LONG(pspec)        (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_LONG))
/**
 * G_PARAM_SPEC_LONG:
 * @pspec: a valid #GParamSpec instance
 *
 * Cast a #GParamSpec instance into a #GParamSpecLong.
 */
#define G_PARAM_SPEC_LONG(pspec)           (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_LONG, GParamSpecLong))

/**
 * G_TYPE_PARAM_ULONG:
 *
 * The #GType of #GParamSpecULong.
 */
#define	G_TYPE_PARAM_ULONG		   (g_param_spec_types[6])
/**
 * G_IS_PARAM_SPEC_ULONG:
 * @pspec: a valid #GParamSpec instance
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_ULONG.
 *
 * Returns: %TRUE on success.
 */
#define G_IS_PARAM_SPEC_ULONG(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_ULONG))
/**
 * G_PARAM_SPEC_ULONG:
 * @pspec: a valid #GParamSpec instance
 *
 * Cast a #GParamSpec instance into a #GParamSpecULong.
 */
#define G_PARAM_SPEC_ULONG(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_ULONG, GParamSpecULong))

/**
 * G_TYPE_PARAM_INT64:
 *
 * The #GType of #GParamSpecInt64.
 */
#define	G_TYPE_PARAM_INT64		   (g_param_spec_types[7])
/**
 * G_IS_PARAM_SPEC_INT64:
 * @pspec: a valid #GParamSpec instance
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_INT64.
 *
 * Returns: %TRUE on success.
 */
#define G_IS_PARAM_SPEC_INT64(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_INT64))
/**
 * G_PARAM_SPEC_INT64:
 * @pspec: a valid #GParamSpec instance
 *
 * Cast a #GParamSpec instance into a #GParamSpecInt64.
 */
#define G_PARAM_SPEC_INT64(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_INT64, GParamSpecInt64))

/**
 * G_TYPE_PARAM_UINT64:
 *
 * The #GType of #GParamSpecUInt64.
 */
#define	G_TYPE_PARAM_UINT64		   (g_param_spec_types[8])
/**
 * G_IS_PARAM_SPEC_UINT64:
 * @pspec: a valid #GParamSpec instance
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UINT64.
 *
 * Returns: %TRUE on success.
 */
#define G_IS_PARAM_SPEC_UINT64(pspec)      (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UINT64))
/**
 * G_PARAM_SPEC_UINT64:
 * @pspec: a valid #GParamSpec instance
 *
 * Cast a #GParamSpec instance into a #GParamSpecUInt64.
 */
#define G_PARAM_SPEC_UINT64(pspec)         (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UINT64, GParamSpecUInt64))

/**
 * G_TYPE_PARAM_UNICHAR:
 *
 * The #GType of #GParamSpecUnichar.
 */
#define	G_TYPE_PARAM_UNICHAR		   (g_param_spec_types[9])
/**
 * G_PARAM_SPEC_UNICHAR:
 * @pspec: a valid #GParamSpec instance
 *
 * Cast a #GParamSpec instance into a #GParamSpecUnichar.
 */
#define G_PARAM_SPEC_UNICHAR(pspec)        (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UNICHAR, GParamSpecUnichar))
/**
 * G_IS_PARAM_SPEC_UNICHAR:
 * @pspec: a valid #GParamSpec instance
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UNICHAR.
 *
 * Returns: %TRUE on success.
 */
#define G_IS_PARAM_SPEC_UNICHAR(pspec)     (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UNICHAR))

/**
 * G_TYPE_PARAM_ENUM:
 *
 * The #GType of #GParamSpecEnum.
 */
#define	G_TYPE_PARAM_ENUM		   (g_param_spec_types[10])
/**
 * G_IS_PARAM_SPEC_ENUM:
 * @pspec: a valid #GParamSpec instance
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_ENUM.
 *
 * Returns: %TRUE on success.
 */
#define G_IS_PARAM_SPEC_ENUM(pspec)        (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_ENUM))
/**
 * G_PARAM_SPEC_ENUM:
 * @pspec: a valid #GParamSpec instance
 *
 * Cast a #GParamSpec instance into a #GParamSpecEnum.
 */
#define G_PARAM_SPEC_ENUM(pspec)           (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_ENUM, GParamSpecEnum))

/**
 * G_TYPE_PARAM_FLAGS:
 *
 * The #GType of #GParamSpecFlags.
 */
#define	G_TYPE_PARAM_FLAGS		   (g_param_spec_types[11])
/**
 * G_IS_PARAM_SPEC_FLAGS:
 * @pspec: a valid #GParamSpec instance
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_FLAGS.
 *
 * Returns: %TRUE on success.
 */
#define G_IS_PARAM_SPEC_FLAGS(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_FLAGS))
/**
 * G_PARAM_SPEC_FLAGS:
 * @pspec: a valid #GParamSpec instance
 *
 * Cast a #GParamSpec instance into a #GParamSpecFlags.
 */
#define G_PARAM_SPEC_FLAGS(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_FLAGS, GParamSpecFlags))

/**
 * G_TYPE_PARAM_FLOAT:
 *
 * The #GType of #GParamSpecFloat.
 */
#define	G_TYPE_PARAM_FLOAT		   (g_param_spec_types[12])
/**
 * G_IS_PARAM_SPEC_FLOAT:
 * @pspec: a valid #GParamSpec instance
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_FLOAT.
 *
 * Returns: %TRUE on success.
 */
#define G_IS_PARAM_SPEC_FLOAT(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_FLOAT))
/**
 * G_PARAM_SPEC_FLOAT:
 * @pspec: a valid #GParamSpec instance
 *
 * Cast a #GParamSpec instance into a #GParamSpecFloat.
 */
#define G_PARAM_SPEC_FLOAT(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_FLOAT, GParamSpecFloat))

/**
 * G_TYPE_PARAM_DOUBLE:
 *
 * The #GType of #GParamSpecDouble.
 */
#define	G_TYPE_PARAM_DOUBLE		   (g_param_spec_types[13])
/**
 * G_IS_PARAM_SPEC_DOUBLE:
 * @pspec: a valid #GParamSpec instance
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_DOUBLE.
 *
 * Returns: %TRUE on success.
 */
#define G_IS_PARAM_SPEC_DOUBLE(pspec)      (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_DOUBLE))
/**
 * G_PARAM_SPEC_DOUBLE:
 * @pspec: a valid #GParamSpec instance
 *
 * Cast a #GParamSpec instance into a #GParamSpecDouble.
 */
#define G_PARAM_SPEC_DOUBLE(pspec)         (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_DOUBLE, GParamSpecDouble))

/**
 * G_TYPE_PARAM_STRING:
 *
 * The #GType of #GParamSpecString.
 */
#define	G_TYPE_PARAM_STRING		   (g_param_spec_types[14])
/**
 * G_IS_PARAM_SPEC_STRING:
 * @pspec: a valid #GParamSpec instance
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_STRING.
 *
 * Returns: %TRUE on success.
 */
#define G_IS_PARAM_SPEC_STRING(pspec)      (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_STRING))
/**
 * G_PARAM_SPEC_STRING:
 * @pspec: a valid #GParamSpec instance
 *
 * Casts a #GParamSpec instance into a #GParamSpecString.
 */
#define G_PARAM_SPEC_STRING(pspec)         (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_STRING, GParamSpecString))

/**
 * G_TYPE_PARAM_PARAM:
 *
 * The #GType of #GParamSpecParam.
 */
#define	G_TYPE_PARAM_PARAM		   (g_param_spec_types[15])
/**
 * G_IS_PARAM_SPEC_PARAM:
 * @pspec: a valid #GParamSpec instance
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_PARAM.
 *
 * Returns: %TRUE on success.
 */
#define G_IS_PARAM_SPEC_PARAM(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_PARAM))
/**
 * G_PARAM_SPEC_PARAM:
 * @pspec: a valid #GParamSpec instance
 *
 * Casts a #GParamSpec instance into a #GParamSpecParam.
 */
#define G_PARAM_SPEC_PARAM(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_PARAM, GParamSpecParam))

/**
 * G_TYPE_PARAM_BOXED:
 *
 * The #GType of #GParamSpecBoxed.
 */
#define	G_TYPE_PARAM_BOXED		   (g_param_spec_types[16])
/**
 * G_IS_PARAM_SPEC_BOXED:
 * @pspec: a valid #GParamSpec instance
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_BOXED.
 *
 * Returns: %TRUE on success.
 */
#define G_IS_PARAM_SPEC_BOXED(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_BOXED))
/**
 * G_PARAM_SPEC_BOXED:
 * @pspec: a valid #GParamSpec instance
 *
 * Cast a #GParamSpec instance into a #GParamSpecBoxed.
 */
#define G_PARAM_SPEC_BOXED(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_BOXED, GParamSpecBoxed))

/**
 * G_TYPE_PARAM_POINTER:
 *
 * The #GType of #GParamSpecPointer.
 */
#define	G_TYPE_PARAM_POINTER		   (g_param_spec_types[17])
/**
 * G_IS_PARAM_SPEC_POINTER:
 * @pspec: a valid #GParamSpec instance
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_POINTER.
 *
 * Returns: %TRUE on success.
 */
#define G_IS_PARAM_SPEC_POINTER(pspec)     (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_POINTER))
/**
 * G_PARAM_SPEC_POINTER:
 * @pspec: a valid #GParamSpec instance
 *
 * Casts a #GParamSpec instance into a #GParamSpecPointer.
 */
#define G_PARAM_SPEC_POINTER(pspec)        (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_POINTER, GParamSpecPointer))

/**
 * G_TYPE_PARAM_VALUE_ARRAY:
 *
 * The #GType of #GParamSpecValueArray.
 *
 * Deprecated: 2.32: Use #GArray instead of #GValueArray
 */
#define	G_TYPE_PARAM_VALUE_ARRAY	   (g_param_spec_types[18]) GLIB_DEPRECATED_MACRO_IN_2_32
/**
 * G_IS_PARAM_SPEC_VALUE_ARRAY:
 * @pspec: a valid #GParamSpec instance
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_VALUE_ARRAY.
 *
 * Returns: %TRUE on success.
 *
 * Deprecated: 2.32: Use #GArray instead of #GValueArray
 */
#define G_IS_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_VALUE_ARRAY)) GLIB_DEPRECATED_MACRO_IN_2_32
/**
 * G_PARAM_SPEC_VALUE_ARRAY:
 * @pspec: a valid #GParamSpec instance
 *
 * Cast a #GParamSpec instance into a #GParamSpecValueArray.
 *
 * Deprecated: 2.32: Use #GArray instead of #GValueArray
 */
#define G_PARAM_SPEC_VALUE_ARRAY(pspec)    (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_VALUE_ARRAY, GParamSpecValueArray)) GLIB_DEPRECATED_MACRO_IN_2_32

/**
 * G_TYPE_PARAM_OBJECT:
 *
 * The #GType of #GParamSpecObject.
 */
#define	G_TYPE_PARAM_OBJECT		   (g_param_spec_types[19])
/**
 * G_IS_PARAM_SPEC_OBJECT:
 * @pspec: a valid #GParamSpec instance
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_OBJECT.
 *
 * Returns: %TRUE on success.
 */
#define G_IS_PARAM_SPEC_OBJECT(pspec)      (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_OBJECT))
/**
 * G_PARAM_SPEC_OBJECT:
 * @pspec: a valid #GParamSpec instance
 *
 * Casts a #GParamSpec instance into a #GParamSpecObject.
 */
#define G_PARAM_SPEC_OBJECT(pspec)         (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OBJECT, GParamSpecObject))

/**
 * G_TYPE_PARAM_OVERRIDE:
 *
 * The #GType of #GParamSpecOverride.
 *
 * Since: 2.4
 */
#define	G_TYPE_PARAM_OVERRIDE		   (g_param_spec_types[20])
/**
 * G_IS_PARAM_SPEC_OVERRIDE:
 * @pspec: a #GParamSpec
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_OVERRIDE.
 *
 * Since: 2.4
 * Returns: %TRUE on success.
 */
#define G_IS_PARAM_SPEC_OVERRIDE(pspec)    (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_OVERRIDE))
/**
 * G_PARAM_SPEC_OVERRIDE:
 * @pspec: a #GParamSpec
 *
 * Casts a #GParamSpec into a #GParamSpecOverride.
 *
 * Since: 2.4
 */
#define G_PARAM_SPEC_OVERRIDE(pspec)       (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OVERRIDE, GParamSpecOverride))

/**
 * G_TYPE_PARAM_GTYPE:
 *
 * The #GType of #GParamSpecGType.
 *
 * Since: 2.10
 */
#define	G_TYPE_PARAM_GTYPE		   (g_param_spec_types[21])
/**
 * G_IS_PARAM_SPEC_GTYPE:
 * @pspec: a #GParamSpec
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_GTYPE.
 *
 * Since: 2.10
 * Returns: %TRUE on success.
 */
#define G_IS_PARAM_SPEC_GTYPE(pspec)       (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_GTYPE))
/**
 * G_PARAM_SPEC_GTYPE:
 * @pspec: a #GParamSpec
 *
 * Casts a #GParamSpec into a #GParamSpecGType.
 *
 * Since: 2.10
 */
#define G_PARAM_SPEC_GTYPE(pspec)          (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_GTYPE, GParamSpecGType))

/**
 * G_TYPE_PARAM_VARIANT:
 *
 * The #GType of #GParamSpecVariant.
 *
 * Since: 2.26
 */
#define G_TYPE_PARAM_VARIANT                (g_param_spec_types[22])
/**
 * G_IS_PARAM_SPEC_VARIANT:
 * @pspec: a #GParamSpec
 *
 * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_VARIANT.
 *
 * Returns: %TRUE on success
 *
 * Since: 2.26
 */
#define G_IS_PARAM_SPEC_VARIANT(pspec)      (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_VARIANT))
/**
 * G_PARAM_SPEC_VARIANT:
 * @pspec: a #GParamSpec
 *
 * Casts a #GParamSpec into a #GParamSpecVariant.
 *
 * Since: 2.26
 */
#define G_PARAM_SPEC_VARIANT(pspec)         (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_VARIANT, GParamSpecVariant))

/* --- typedefs & structures --- */
typedef struct _GParamSpecChar       GParamSpecChar;
typedef struct _GParamSpecUChar      GParamSpecUChar;
typedef struct _GParamSpecBoolean    GParamSpecBoolean;
typedef struct _GParamSpecInt        GParamSpecInt;
typedef struct _GParamSpecUInt       GParamSpecUInt;
typedef struct _GParamSpecLong       GParamSpecLong;
typedef struct _GParamSpecULong      GParamSpecULong;
typedef struct _GParamSpecInt64      GParamSpecInt64;
typedef struct _GParamSpecUInt64     GParamSpecUInt64;
typedef struct _GParamSpecUnichar    GParamSpecUnichar;
typedef struct _GParamSpecEnum       GParamSpecEnum;
typedef struct _GParamSpecFlags      GParamSpecFlags;
typedef struct _GParamSpecFloat      GParamSpecFloat;
typedef struct _GParamSpecDouble     GParamSpecDouble;
typedef struct _GParamSpecString     GParamSpecString;
typedef struct _GParamSpecParam      GParamSpecParam;
typedef struct _GParamSpecBoxed      GParamSpecBoxed;
typedef struct _GParamSpecPointer    GParamSpecPointer;
typedef struct _GParamSpecValueArray GParamSpecValueArray;
typedef struct _GParamSpecObject     GParamSpecObject;
typedef struct _GParamSpecOverride   GParamSpecOverride;
typedef struct _GParamSpecGType      GParamSpecGType;
typedef struct _GParamSpecVariant    GParamSpecVariant;

/**
 * GParamSpecChar:
 * @parent_instance: private #GParamSpec portion
 * @minimum: minimum value for the property specified
 * @maximum: maximum value for the property specified
 * @default_value: default value for the property specified
 *
 * A #GParamSpec derived structure that contains the meta data for character properties.
 */
struct _GParamSpecChar
{
  GParamSpec    parent_instance;

  gint8         minimum;
  gint8         maximum;
  gint8         default_value;
};
/**
 * GParamSpecUChar:
 * @parent_instance: private #GParamSpec portion
 * @minimum: minimum value for the property specified
 * @maximum: maximum value for the property specified
 * @default_value: default value for the property specified
 *
 * A #GParamSpec derived structure that contains the meta data for unsigned character properties.
 */
struct _GParamSpecUChar
{
  GParamSpec    parent_instance;

  guint8        minimum;
  guint8        maximum;
  guint8        default_value;
};
/**
 * GParamSpecBoolean:
 * @parent_instance: private #GParamSpec portion
 * @default_value: default value for the property specified
 *
 * A #GParamSpec derived structure that contains the meta data for boolean properties.
 */
struct _GParamSpecBoolean
{
  GParamSpec    parent_instance;

  gboolean      default_value;
};
/**
 * GParamSpecInt:
 * @parent_instance: private #GParamSpec portion
 * @minimum: minimum value for the property specified
 * @maximum: maximum value for the property specified
 * @default_value: default value for the property specified
 *
 * A #GParamSpec derived structure that contains the meta data for integer properties.
 */
struct _GParamSpecInt
{
  GParamSpec    parent_instance;

  gint          minimum;
  gint          maximum;
  gint          default_value;
};
/**
 * GParamSpecUInt:
 * @parent_instance: private #GParamSpec portion
 * @minimum: minimum value for the property specified
 * @maximum: maximum value for the property specified
 * @default_value: default value for the property specified
 *
 * A #GParamSpec derived structure that contains the meta data for unsigned integer properties.
 */
struct _GParamSpecUInt
{
  GParamSpec    parent_instance;

  guint         minimum;
  guint         maximum;
  guint         default_value;
};
/**
 * GParamSpecLong:
 * @parent_instance: private #GParamSpec portion
 * @minimum: minimum value for the property specified
 * @maximum: maximum value for the property specified
 * @default_value: default value for the property specified
 *
 * A #GParamSpec derived structure that contains the meta data for long integer properties.
 */
struct _GParamSpecLong
{
  GParamSpec    parent_instance;

  glong         minimum;
  glong         maximum;
  glong         default_value;
};
/**
 * GParamSpecULong:
 * @parent_instance: private #GParamSpec portion
 * @minimum: minimum value for the property specified
 * @maximum: maximum value for the property specified
 * @default_value: default value for the property specified
 *
 * A #GParamSpec derived structure that contains the meta data for unsigned long integer properties.
 */
struct _GParamSpecULong
{
  GParamSpec    parent_instance;

  gulong        minimum;
  gulong        maximum;
  gulong        default_value;
};
/**
 * GParamSpecInt64:
 * @parent_instance: private #GParamSpec portion
 * @minimum: minimum value for the property specified
 * @maximum: maximum value for the property specified
 * @default_value: default value for the property specified
 *
 * A #GParamSpec derived structure that contains the meta data for 64bit integer properties.
 */
struct _GParamSpecInt64
{
  GParamSpec    parent_instance;

  gint64        minimum;
  gint64        maximum;
  gint64        default_value;
};
/**
 * GParamSpecUInt64:
 * @parent_instance: private #GParamSpec portion
 * @minimum: minimum value for the property specified
 * @maximum: maximum value for the property specified
 * @default_value: default value for the property specified
 *
 * A #GParamSpec derived structure that contains the meta data for unsigned 64bit integer properties.
 */
struct _GParamSpecUInt64
{
  GParamSpec    parent_instance;

  guint64       minimum;
  guint64       maximum;
  guint64       default_value;
};
/**
 * GParamSpecUnichar:
 * @parent_instance: private #GParamSpec portion
 * @default_value: default value for the property specified
 *
 * A #GParamSpec derived structure that contains the meta data for unichar (unsigned integer) properties.
 */
struct _GParamSpecUnichar
{
  GParamSpec    parent_instance;

  gunichar      default_value;
};
/**
 * GParamSpecEnum:
 * @parent_instance: private #GParamSpec portion
 * @enum_class: the #GEnumClass for the enum
 * @default_value: default value for the property specified
 *
 * A #GParamSpec derived structure that contains the meta data for enum
 * properties.
 */
struct _GParamSpecEnum
{
  GParamSpec    parent_instance;

  GEnumClass   *enum_class;
  gint          default_value;
};
/**
 * GParamSpecFlags:
 * @parent_instance: private #GParamSpec portion
 * @flags_class: the #GFlagsClass for the flags
 * @default_value: default value for the property specified
 *
 * A #GParamSpec derived structure that contains the meta data for flags
 * properties.
 */
struct _GParamSpecFlags
{
  GParamSpec    parent_instance;

  GFlagsClass  *flags_class;
  guint         default_value;
};
/**
 * GParamSpecFloat:
 * @parent_instance: private #GParamSpec portion
 * @minimum: minimum value for the property specified
 * @maximum: maximum value for the property specified
 * @default_value: default value for the property specified
 * @epsilon: values closer than @epsilon will be considered identical
 *  by g_param_values_cmp(); the default value is 1e-30.
 *
 * A #GParamSpec derived structure that contains the meta data for float properties.
 */
struct _GParamSpecFloat
{
  GParamSpec    parent_instance;

  gfloat        minimum;
  gfloat        maximum;
  gfloat        default_value;
  gfloat        epsilon;
};
/**
 * GParamSpecDouble:
 * @parent_instance: private #GParamSpec portion
 * @minimum: minimum value for the property specified
 * @maximum: maximum value for the property specified
 * @default_value: default value for the property specified
 * @epsilon: values closer than @epsilon will be considered identical
 *  by g_param_values_cmp(); the default value is 1e-90.
 *
 * A #GParamSpec derived structure that contains the meta data for double properties.
 */
struct _GParamSpecDouble
{
  GParamSpec    parent_instance;

  gdouble       minimum;
  gdouble       maximum;
  gdouble       default_value;
  gdouble       epsilon;
};
/**
 * GParamSpecString:
 * @parent_instance: private #GParamSpec portion
 * @default_value: default value for the property specified
 * @cset_first: a string containing the allowed values for the first byte
 * @cset_nth: a string containing the allowed values for the subsequent bytes
 * @substitutor: the replacement byte for bytes which don't match @cset_first or @cset_nth.
 * @null_fold_if_empty: replace empty string by %NULL
 * @ensure_non_null: replace %NULL strings by an empty string
 *
 * A #GParamSpec derived structure that contains the meta data for string
 * properties.
 */
struct _GParamSpecString
{
  GParamSpec    parent_instance;

  gchar        *default_value;
  gchar        *cset_first;
  gchar        *cset_nth;
  gchar         substitutor;
  guint         null_fold_if_empty : 1;
  guint         ensure_non_null : 1;
};
/**
 * GParamSpecParam:
 * @parent_instance: private #GParamSpec portion
 *
 * A #GParamSpec derived structure that contains the meta data for %G_TYPE_PARAM
 * properties.
 */
struct _GParamSpecParam
{
  GParamSpec    parent_instance;
};
/**
 * GParamSpecBoxed:
 * @parent_instance: private #GParamSpec portion
 *
 * A #GParamSpec derived structure that contains the meta data for boxed properties.
 */
struct _GParamSpecBoxed
{
  GParamSpec    parent_instance;
};
/**
 * GParamSpecPointer:
 * @parent_instance: private #GParamSpec portion
 *
 * A #GParamSpec derived structure that contains the meta data for pointer properties.
 */
struct _GParamSpecPointer
{
  GParamSpec    parent_instance;
};
/**
 * GParamSpecValueArray:
 * @parent_instance: private #GParamSpec portion
 * @element_spec: a #GParamSpec describing the elements contained in arrays of this property, may be %NULL
 * @fixed_n_elements: if greater than 0, arrays of this property will always have this many elements
 *
 * A #GParamSpec derived structure that contains the meta data for #GValueArray properties.
 */
struct _GParamSpecValueArray
{
  GParamSpec    parent_instance;
  GParamSpec   *element_spec;
  guint		fixed_n_elements;
};
/**
 * GParamSpecObject:
 * @parent_instance: private #GParamSpec portion
 *
 * A #GParamSpec derived structure that contains the meta data for object properties.
 */
struct _GParamSpecObject
{
  GParamSpec    parent_instance;
};
/**
 * GParamSpecOverride:
 *
 * This is a type of #GParamSpec type that simply redirects operations to
 * another paramspec.  All operations other than getting or
 * setting the value are redirected, including accessing the nick and
 * blurb, validating a value, and so forth. See
 * g_param_spec_get_redirect_target() for retrieving the overidden
 * property. #GParamSpecOverride is used in implementing
 * g_object_class_override_property(), and will not be directly useful
 * unless you are implementing a new base type similar to GObject.
 *
 * Since: 2.4
 */
struct _GParamSpecOverride
{
  /*< private >*/
  GParamSpec    parent_instance;
  GParamSpec   *overridden;
};
/**
 * GParamSpecGType:
 * @parent_instance: private #GParamSpec portion
 * @is_a_type: a #GType whose subtypes can occur as values
 *
 * A #GParamSpec derived structure that contains the meta data for #GType properties.
 *
 * Since: 2.10
 */
struct _GParamSpecGType
{
  GParamSpec    parent_instance;
  GType         is_a_type;
};
/**
 * GParamSpecVariant:
 * @parent_instance: private #GParamSpec portion
 * @type: a #GVariantType, or %NULL
 * @default_value: a #GVariant, or %NULL
 *
 * A #GParamSpec derived structure that contains the meta data for #GVariant properties.
 *
 * When comparing values with g_param_values_cmp(), scalar values with the same
 * type will be compared with g_variant_compare(). Other non-%NULL variants will
 * be checked for equality with g_variant_equal(), and their sort order is
 * otherwise undefined. %NULL is ordered before non-%NULL variants. Two %NULL
 * values compare equal.
 *
 * Since: 2.26
 */
struct _GParamSpecVariant
{
  GParamSpec    parent_instance;
  GVariantType *type;
  GVariant     *default_value;

  /*< private >*/
  gpointer      padding[4];
};

/* --- GParamSpec prototypes --- */
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_char	 (const gchar	 *name,
					  const gchar	 *nick,
					  const gchar	 *blurb,
					  gint8		  minimum,
					  gint8		  maximum,
					  gint8		  default_value,
					  GParamFlags	  flags);
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_uchar	 (const gchar	 *name,
					  const gchar	 *nick,
					  const gchar	 *blurb,
					  guint8	  minimum,
					  guint8	  maximum,
					  guint8	  default_value,
					  GParamFlags	  flags);
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_boolean	 (const gchar	 *name,
					  const gchar	 *nick,
					  const gchar	 *blurb,
					  gboolean	  default_value,
					  GParamFlags	  flags);
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_int	 (const gchar	 *name,
					  const gchar	 *nick,
					  const gchar	 *blurb,
					  gint		  minimum,
					  gint		  maximum,
					  gint		  default_value,
					  GParamFlags	  flags);
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_uint	 (const gchar	 *name,
					  const gchar	 *nick,
					  const gchar	 *blurb,
					  guint		  minimum,
					  guint		  maximum,
					  guint		  default_value,
					  GParamFlags	  flags);
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_long	 (const gchar	 *name,
					  const gchar	 *nick,
					  const gchar	 *blurb,
					  glong		  minimum,
					  glong		  maximum,
					  glong		  default_value,
					  GParamFlags	  flags);
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_ulong	 (const gchar	 *name,
					  const gchar	 *nick,
					  const gchar	 *blurb,
					  gulong	  minimum,
					  gulong	  maximum,
					  gulong	  default_value,
					  GParamFlags	  flags);
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_int64	 (const gchar	 *name,
					  const gchar	 *nick,
					  const gchar	 *blurb,
					  gint64       	  minimum,
					  gint64       	  maximum,
					  gint64       	  default_value,
					  GParamFlags	  flags);
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_uint64	 (const gchar	 *name,
					  const gchar	 *nick,
					  const gchar	 *blurb,
					  guint64	  minimum,
					  guint64	  maximum,
					  guint64	  default_value,
					  GParamFlags	  flags);
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_unichar      (const gchar    *name,
				          const gchar    *nick,
				          const gchar    *blurb,
				          gunichar	  default_value,
				          GParamFlags     flags);
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_enum	 (const gchar	 *name,
					  const gchar	 *nick,
					  const gchar	 *blurb,
					  GType		  enum_type,
					  gint		  default_value,
					  GParamFlags	  flags);
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_flags	 (const gchar	 *name,
					  const gchar	 *nick,
					  const gchar	 *blurb,
					  GType		  flags_type,
					  guint		  default_value,
					  GParamFlags	  flags);
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_float	 (const gchar	 *name,
					  const gchar	 *nick,
					  const gchar	 *blurb,
					  gfloat	  minimum,
					  gfloat	  maximum,
					  gfloat	  default_value,
					  GParamFlags	  flags);
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_double	 (const gchar	 *name,
					  const gchar	 *nick,
					  const gchar	 *blurb,
					  gdouble	  minimum,
					  gdouble	  maximum,
					  gdouble	  default_value,
					  GParamFlags	  flags);
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_string	 (const gchar	 *name,
					  const gchar	 *nick,
					  const gchar	 *blurb,
					  const gchar	 *default_value,
					  GParamFlags	  flags);
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_param	 (const gchar	 *name,
					  const gchar	 *nick,
					  const gchar	 *blurb,
					  GType		  param_type,
					  GParamFlags	  flags);
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_boxed	 (const gchar	 *name,
					  const gchar	 *nick,
					  const gchar	 *blurb,
					  GType		  boxed_type,
					  GParamFlags	  flags);
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_pointer	 (const gchar	 *name,
					  const gchar	 *nick,
					  const gchar	 *blurb,
					  GParamFlags	  flags);
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_value_array (const gchar	 *name,
					  const gchar	 *nick,
					  const gchar	 *blurb,
					  GParamSpec	 *element_spec,
					  GParamFlags	  flags);
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_object	 (const gchar	 *name,
					  const gchar	 *nick,
					  const gchar	 *blurb,
					  GType		  object_type,
					  GParamFlags	  flags);
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_override    (const gchar    *name,
					  GParamSpec     *overridden);
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_gtype	 (const gchar	 *name,
					  const gchar	 *nick,
					  const gchar	 *blurb,
					  GType           is_a_type,
					  GParamFlags	  flags);
GLIB_AVAILABLE_IN_ALL
GParamSpec*	g_param_spec_variant	 (const gchar        *name,
					  const gchar        *nick,
					  const gchar	     *blurb,
					  const GVariantType *type,
					  GVariant           *default_value,
					  GParamFlags         flags);

/* --- internal --- */
/* We prefix variable declarations so they can
 * properly get exported in windows dlls.
 */
#ifndef GOBJECT_VAR
#  ifdef G_PLATFORM_WIN32
#    ifdef GOBJECT_STATIC_COMPILATION
#      define GOBJECT_VAR extern
#    else /* !GOBJECT_STATIC_COMPILATION */
#      ifdef GOBJECT_COMPILATION
#        ifdef DLL_EXPORT
#          define GOBJECT_VAR __declspec(dllexport)
#        else /* !DLL_EXPORT */
#          define GOBJECT_VAR extern
#        endif /* !DLL_EXPORT */
#      else /* !GOBJECT_COMPILATION */
#        define GOBJECT_VAR extern __declspec(dllimport)
#      endif /* !GOBJECT_COMPILATION */
#    endif /* !GOBJECT_STATIC_COMPILATION */
#  else /* !G_PLATFORM_WIN32 */
#    define GOBJECT_VAR _GLIB_EXTERN
#  endif /* !G_PLATFORM_WIN32 */
#endif /* GOBJECT_VAR */

GOBJECT_VAR GType *g_param_spec_types;

G_END_DECLS

#endif /* __G_PARAMSPECS_H__ */

redpajama_set_name: RedPajamaGithub


text:
Q: Алгоритм подсчёта комбинаций есть 2 числа int обозначающих число объектов множества 1 и 2. например, countobj(1,3) означает что есть объекты 1.1 множества 1, и 2.1, 2.2, 2.3 множества 2. Нужно посчитать число возможных комбинаций из 3-х объектов, где есть хотя бы по одному объекту из каждого множества.
Например для набора чисел 1 и 3 ответ будет 3 ( это комбинации (1.1 2.1 2.2), (1.1 2.2 2.3), (1.1 2.1 2.2))

A: Первым элементом результирующего множества будет один из элементов первого множества, оставшиеся 2 - сочетания по два элемента из второго множества, или наоборот.

Где n и m - размеры множеств.

A: Делим заданное общее количество на слагаемые в заданных пределах.
В примере - число 3 (всего объектов в варианте) делим на 2 (число множеств объектов) слагаемых, причём первое слагаемое находится в диапазоне от 1 (обязателен хотя бы 1 объект) до 1 (1 объект во множестве 1), а второе первое слагаемое находится в диапазоне от 1 (обязателен хотя бы 1 объект) до 3 (3 объекта во множестве 2).
Разбиение единственное = 1 + 2.
Для первого множества результат = С(1, 1) = 1.
Для второго множества результат = С(3, 2) = 3! / (2! * 1!) = 3.
Ответ = 1 * 3 = 3.
Если разбиений на слагаемые несколько - результат считается для каждого, и результаты суммируются.

redpajama_set_name: RedPajamaStackExchange


Please save the zip file to your computer. After the download is complete, double click the zip file to open it. You will see the kit in pdf format, a folder with the sample completed forms, and a folder with the editable, fillable USCIS forms. The USCIS forms do not have any restrictions or security and can be edited and saved using Adobe Reader. If you forget where you saved it, or if your hard drive crashes, you can always log in to your account at anytime to download your kit.
Step-by-Step Instructions – If the Physical Therapist is Outside the U.S.
Step-by-Step Instructions – If the Physical Therapist is Inside the U.S.
If the Physical Therapist is in the U.S.
If the Physical Therapist is outside the U.S.


text:
"Police arrived on scene to find a female victim unresponsive," the statement read. "After lifesaving efforts by first responders, the victim was pronounced at Community Medical Center and the investigation became a homicide."
The Ocean County Prosecutor's Office and Ocean County Sheriff's Office also are investigating, police said.
Investigators from all three agencies converged on the office park Wednesday night, cordoning off the area.
Keep up with local crime news at our Jersey Mayhem page and make sure you don't miss a thing by buying a digital subscription to APP.com today.
On Thursday afternoon, there was no sign of the massive police presence that had amassed there the previous night. Patients walked in and out of the row of blue-colored medical offices at Deer Chase Professional Park, which were all open for business.
Nani, a receptionist at Toms River Family Dental who asked not to use her last name, said office staff didn't see anything unusual when they left at the usual time, about 6:30 p.m. Wednesday. She said the office park is typically quiet by that time of night.
Early this morning, they were alerted by a neighboring office that an incident had occurred the previous night.
"It's shocking," she said. "It happened after we left within two hours and we had no idea until we came in today."
Employees in several offices said they hadn't been told anything official about what transpired.
In a separate statement the Prosecutor's Office stated "There is no danger to the public at this time."
This is a developing story. Stay tuned to app.com for updates.
Alex N. Gecan has covered crime in New Jersey since 2016. His work as a reporter and editor has earned him professional awards in Connecticut, Louisiana and New Jersey for public service, business reporting and features. Contact him at agecan@gannettnj.com or 732-643-4043 or follow him on Twitter @GeeksterTweets.

redpajama_set_name: RedPajamaCommonCrawl


text:
Pascweten (died 876) was the count of Vannes and a claimant to the rule of Brittany. He was a son of Ridoredh of Vannes, a prominent and wealthy aristocrat first associated with the court of Erispoe in the 850s. He owned vast landed estates and salt works (as at Guérande) in southeastern Brittany and was a patron of Redon Abbey.

Pascweten was a son-in-law of Salomon, Duke of Brittany, in August 867, when he negotiated a lasting peace at Compiègne with Charles the Bald on behalf of his father-in-law and prevented the king from marching on Brittany. Pascweten swore an oath of fidelity to Charles on Salomon's behalf.

In 874 Pascweten, Wrhwant, and Wigo, son of Riwallon, Count of Cornouaille, conspired against Salomon and assassinated him, but since each hailed from a different regional party, they soon found themselves at odds with Salomon gone. Pascweten and Wrhwant fought over the succession to Breton rule for the next two years. They divided the country between them, though Regino of Prüm records that the latter received a larger share. By mid 876 both were dead and Pascweten's brother, Alan the Great, had succeeded him in Vannes and carried on the fight against Judicael of Cornouaille.

See also
Kings and dukes of Brittany family tree

Sources
Smith, Julia M. H. Province and Empire: Brittany and the Carolingians. Cambridge University Press: 1992.

Notes

876 deaths
9th-century rulers of Brittany
Dukes of Brittany
Year of birth unknown

redpajama_set_name: RedPajamaWikipedia


Big developments are happening in our hometown of Milwaukee. The city has been working to revitalize Reed Street Yards, the once vacant plot situated on 17 acres with 1000 feet of waterfront on the Menomonee River. Embracing its reputation as the "Water Hub of North America," Milwaukee is transforming Reed Street Yards from urban decay to an internationally respected water research and technology business park.
Zurn opens new headquarters in MKE's Reed Street Yards.
Zurn, a leader in the commercial plumbing products industry, is the first company to open its doors. The company, owned by Milwaukee-based Rexnord Corp., relocated their global headquarters from Pennsylvania to the new 425 W. Freshwater Way. After an introduction through their firm, Eppstein Uhen Architects, Zurn invited us to lead the interior design and engagement strategies for their experience center. This is has been a valuable partnership that deepens our ties within our community. We're excited to see Zurn's vision come to life and Milwaukee's ongoing revitalization.
Check out the Journal Sentinel for a tour of Zurn's office.


Did you know that Togo ranks in the top 10 countries from deaths related to malaria? Have you ever felt so strongly about the elimination of diseases and want to take immediate action? Sometimes living in the United States, where diseases are under control, can make us loose site of how far we've come and the efforts that were put in place to get us there. The citizens of Togo, West Africa are in an unfortunate situation and the wonderful people of Assi Le Assime are pulling together to help eliminate this horrid disease.
They create jobs by creating small enterprises that make mosquito canopies and water filters to alleviate poverty and PROVIDE EDUCATION to help small enterprises meet local market needs.
Assi Le Assime has worked with the Ministers of Health, Agriculture,and Environment, and with representatives of The World Bank and WHO to create a never-been-done-before-in-Africa pilot project to eliminate malaria in Togo, West Africa. They want to use the latest techniques to rid the country of malaria, as other countries in Africa have been declared malaria free recently; their work will add Togo to that growing list.
Why Give to Assi le Assime: The Togo Development Partnership?
When you support Assi le Assime: The Togo Development Partnership and our important projects, you support economic development throughout Togo, eliminate poverty by creating local jobs, and enhance the human dignity of villagers.
Your donations make a direct and tangible difference on the lives of those we serve. When you support one of our selected projects, you are alleviating poverty, disease and hunger, and making a positive impact in the lives of others. Help us make a difference in Togo.
If you feel compelled in your heart, as I have mine, to help support these world changing efforts please consider donating HERE.


text:
require 'protobuf'

##
# Imports
#
require 'google/api/label.pb'

module Google
  module Api
    ::Protobuf::Optionable.inject(self) { ::Google::Protobuf::FileOptions }

    ##
    # Message Classes
    #
    class LogDescriptor < ::Protobuf::Message; end

    ##
    # File Options
    #
    set_option :java_package, "com.google.api"
    set_option :java_outer_classname, "LogProto"
    set_option :java_multiple_files, true
    set_option :go_package, "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig"
    set_option :objc_class_prefix, "GAPI"

    ##
    # Message Fields
    #
    class LogDescriptor
      optional :string, :name, 1
      repeated ::Google::Api::LabelDescriptor, :labels, 2
      optional :string, :description, 3
      optional :string, :display_name, 4
    end

  end

end


text:
Judge Kenesaw Mountain Landis: Marquette University Law Professor?
One of the legends of the Marquette University Law School is that Judge Kenesaw Mountain Landis, the first commissioner of organized baseball, was once a professor at the school. As it turns out, the story is true, at least sort of.
When the Marquette University College of Law opened for its first full year in the fall of 1908, it consisted of two divisions. One was an evening division that was really just a continuation of the Milwaukee Law School, a night law school acquired by Marquette in the spring of 1908. The new day division offered a more expansive curriculum leading to an LLB degree after three years of study.
The new law school was headed by Judge James G. Jenkins, a retired federal circuit court judge who had earlier been affiliated with the John Marshall Law School in Chicago. While Jenkins was a full-time dean, the University lacked the resources for a full-time faculty, so it relied upon the part-time faculty of the Milwaukee Law School and a few additional lawyers and judges from the city. However, to add a special element to the education provided by the new law school, the University announced that there would also be a group of distinguished lecturers who would not teach full-length courses, but who would visit the law school during the year and lecture on special topics.
Listed as one of the lecturers in the 1909 law school bulletin was Kenesaw Mountain Landis, then a federal district court judge in Chicago, best known for several large damage judgments awarded against large corporations in antitrust cases. Landis had argued a number of cases before Jenkins as a lawyer and had been appointed to the bench by Theodore Roosevelt in 1905, several years before Jenkins's retirement.
Although Landis's involvement with organized baseball was more than a decade in the future, he was already well known as a great fan of baseball and a partisan of the Chicago Cubs. (A famous picture shows Landis barely able to contain his rage at the 1906 World Series, in which his heavily favored Cubs were upset by their cross-town rivals, the White Sox.)
It appears that Landis delivered only a single lecture at Marquette, and it came near the end of the 1908-09 academic year. On May 21, after a lengthy colloquy on the status of baseball in Wisconsin, Landis launched into a lecture on "Public Criticism of the Judiciary," in which he expressed his opposition to proposals that would penalize those who criticized the actions of individual judges. In rejecting the argument that placing judges above the world of criticism would make the judiciary more respected, he turned to a baseball analogy. "I have been going to baseball games for 30 years," Landis told his student audience. "I never saw a game or heard of one where somebody did not call the umpire a robber or a thief, and yet no intelligent man doubts the integrity of baseball." By the same logic, intemperate denunciations of individual judges, even if untrue, would not tarnish the image of the judiciary, at least in the eyes of intelligent observers.
As Landis's biographer David Pietrusza has noted, in 1909, Landis considered several of his fellow federal judges in Chicago to be incompetent and corrupt, so he had reasons to support the shining of the public spotlight on his colleagues. He was particularly angry with Judge Peter Grosscup of the Seventh Circuit Court of Appeals, who the year before had written the decision overturning Landis's attempt to fine Standard Oil $29 million. In his opinion, Grosscup had accused Landis of "arbitrary" decision-making and of believing himself to be "above the law." As accusations of Grosscup's personal impropriety began to surface, one can imagine that Landis was not completely disappointed.
Landis' speech was covered in detail by all of the Milwaukee newspapers, but it appears to have attracted little attention elsewhere, although it was reported in the American Law Review, a leading periodical of the day.
The May 21 address, however, marked the end of Landis's affiliation with Marquette, and his name disappeared from the list of lecturers in the 1910 law school bulletin.
Nevertheless, when Bud Selig lectures in Matt Mitten's Professional Sports Law class each spring, he is the second, not the first, of baseball's Commissioners to offer instruction at the Marquette Law School.
Memories of Sensenbrenner Hall (Part 1)
Interview with an Esquire
Gordon Hylton November 25, 2010 Reply
The correct spelling of Landis' first name is a matter of some confusion. The community of Kennesaw Mountain, Georgia and the college, Kennesaw State University, are spelled with two "n"'s but Landis' first name contains only a single "n."
Landis' name was inspired by one of the bloodiest battles of the Civil War. His father, Abraham Hoch Landis, was a Union Army physician during the war, and he saw action at the Battle of Kennesaw Mountain in June of 1864. It was in that battle that his military service came to an end when he lost one of his own legs in that battle.
The elder Landis returned to Indiana, and when his second son was born two and a half years later, he named his after the famous battle in which the Union Army under General William Tecumsah Sherman incurred heavy losses but forced the retreat of the Confederate Army under Joseph Johnston toward Atlanta.
For whatever reason, he misspelled his new son's name "Kennesaw" on the boy's birth certificate, and the future federal judge and commissioner never bothered to change the spelling.


The unthinkable has happened... America's most infamous liar is a father to a beautiful son.
The father is Ryan Lochte, and he's already hitting up Instagram with pictures to show off Caiden Zane Lochte to the world.
There are a lot of celebrities giving birth in 2017, but who are they? We have the full run down of who will be having a baby. Read on!
It's been quite a year for Olympic gold medalist and perennially sketchy bro, Ryan Lochte.
As you probably remember, Lochte was caught lying about being robbed at gunpoint during the Rio Olympics, resulting in one of the most bizarre and baffling sports scandals in recent memory.
Ryan Lochte may have earned 12 medals over an impressive Olympic swimming career, but the controversial athlete has never felt more like a winner than he does right now.
Kayla Rae Reid has agreed to marry Ryan Lochte. Check out photos of the centerfold and learn more about Kayla Rae Reid now.
Ryan Lochte: Engaged to Kayla Rae Reid!
And this is no lie.


text:
Keiko Fujimori (* 25. května 1975, Lima) je peruánská politička, dcera bývalého prezidenta Alberta Fujimoriho. Po rozvodu svých rodičů se stala roku 1994 v 19 letech nejmladší první dámou Latinské Ameriky.

Biografie
Jejím bratrem je politik Kenji Fujimori. Je vdaná za Marka Villanellu.

Prezidentské volby 2016
V dubnu roku 2016 zvítězila v prvním kole prezidentských voleb, avšak nezískala požadovanou většinu hlasů. Zároveň proti její kandidatuře demonstrovaly v ulicích tisíce lidí z obavy, že by mohla představovat ohrožení pro tamější demokracii. V druhém kole voleb, konajících se na začátku června, prohrála se ziskem 49, 88% hlasů s neoliberálním ekonomem Pedrem Pablem Kuczynskim.

Odkazy

Reference

Externí odkazy

 Oficiální stránka političky
 AMERIKA: Peru: Keiko Fujimori geht als Favoritin in die Stichwahl. In: DW.de, 2016-04-10

Narození 25. května
Narození v roce 1975
Narození v Limě
Peruánci
Peruánští politici
Ženy
Žijící lidé
Děti národních vůdců


text:
LIFE AgriAdapt with the agricultural schools of Grand-Est region
The managers of the farms belonging to agricultural schools of Grand-Est region were gathered at school of Châlons en Champagne last April 11th. It was an opportunity to exchange about climate adaptation issues from the example of the school of Somme-Vesle located in the North-East of Marne department. Since 2017, Solagro has carried out a climate vulnerability assessment as part of a European LIFE AgriAdapt project, which is experimenting more widely with this approach on a network of 120 farms in 4 different countries in Europe.
The climatic disturbances observed locally are multiple: trend reduction in the number of frost days per year, increase in the frequency and duration of dry periods, heat waves whose amplitude is surprising, or very intense precipitations combined with low radiation as in June 2016, resulting in the worst yields ever observed for decades on the farm, and more widely in the Champagne region (-50% for soft wheat, -60% for field peas).
The farm manager of Somme-Vesle explains the adaptation measures already implemented to achieve more resilience: the farm is composed of 240 hectares of soils with an important water capcity which limits the impacts related to water deficits. The rotation is made of 7 different crops (soft wheat, beetroot, dehydrated alfalfa, barley, rapeseed, protein pea, miscanthus), which help to spread climatic risks by getting stages of sensitivity over the whole cropping season. Great attention is paid to the choice of varieties for the main crops (resistance to cold, diseases), and their diversity (surface limited by variety) with the aim of complementarity to face multiple climatic risks.
Finally, it is possible to envisage mid-term further adaptation measures: choosing crops according to new criteria such as shrivelling whose intensity will increase in the near future, mixing several varieties at plot level, or anticipating the introduction of a new main crop as a progressive substitution for field peas which may be regularly over-impacted by high temperatures during the flowering period.


The QSM-624E is a high quality Public Address amplifier providing 240 watt RMS of power with six channels, auto mute function, 600 ohm telephone line input, bass & treble controls, phantom power selectable on all mic inputs.
Operates from either 240VAC or 24VDC and speaker output can be 100V line, 70V line or 8 ohms. Thermal overload protection circuitry and fuses, provide excellent protection of amplifier in case of misuse.


text:
La Chapelle-Taillefert (La Chapela Talhafer en occitan) est une commune française située dans le département de la Creuse, en région Nouvelle-Aquitaine.

Géographie

Le territoire communal est arrosé par la rivière Gartempe.

Climat
Le climat qui caractérise la commune est qualifié, en 2010, de « climat des marges montargnardes », selon la typologie des climats de la France qui compte alors huit grands types de climats en métropole. En 2020, la commune ressort du type « climat de montagne » dans la classification établie par Météo-France, qui ne compte désormais, en première approche, que cinq grands types de climats en métropole. Pour ce type de climat, la température décroît rapidement en fonction de l'altitude. On observe une nébulosité minimale en hiver et maximale en été. Les vents et les précipitations varient notablement selon le lieu.

Les paramètres climatiques qui ont permis d'établir la typologie de 2010 comportent six variables pour les températures et huit pour les précipitations, dont les valeurs correspondent à la normale 1971-2000. Les sept principales variables caractérisant la commune sont présentées dans l'encadré ci-après.

Avec le changement climatique, ces variables ont évolué. Une étude réalisée en 2014 par la Direction générale de l'Énergie et du Climat complétée par des études régionales prévoit en effet que la  température moyenne devrait croître et la pluviométrie moyenne baisser, avec toutefois de fortes variations régionales. Ces changements peuvent être constatés sur la station météorologique de Météo-France la plus proche, « Maisonnisses », sur la commune de Maisonnisses, mise en service en 1947 et qui se trouve à  à vol d'oiseau, où la température moyenne annuelle est de  et la hauteur de précipitations de  pour la période 1981-2010.
Sur la station météorologique historique la plus proche, « Limoges-Bellegarde », sur la commune de Limoges, dans le département de la Haute-Vienne, mise en service en 1973 et à , la température moyenne annuelle évolue de  pour la période 1971-2000, à  pour 1981-2010, puis à  pour 1991-2020.

Urbanisme

Typologie
La Chapelle-Taillefert est une commune rurale, car elle fait partie des communes peu ou très peu denses, au sens de la grille communale de densité de l'Insee.

Par ailleurs la commune fait partie de l'aire d'attraction de Guéret, dont elle est une commune de la couronne. Cette aire, qui regroupe , est catégorisée dans les aires de moins de .

Occupation des sols

L'occupation des sols de la commune, telle qu'elle ressort de la base de données européenne d'occupation biophysique des sols Corine Land Cover (CLC), est marquée par l'importance des forêts et milieux semi-naturels (61,3 % en 2018), une proportion identique à celle de 1990 (61,3 %). La répartition détaillée en 2018 est la suivante :
forêts (61 %), prairies (25,3 %), zones agricoles hétérogènes (13,4 %), milieux à végétation arbustive et/ou herbacée (0,3 %).

L'IGN met par ailleurs à disposition un outil en ligne permettant de comparer l'évolution dans le temps de l'occupation des sols de la commune (ou de territoires à des échelles différentes). Plusieurs époques sont accessibles sous forme de cartes ou photos aériennes : la carte de Cassini (), la carte d'état-major (1820-1866) et la période actuelle (1950 à aujourd'hui).

Risques majeurs
Le territoire de la commune de La Chapelle-Taillefert est vulnérable à différents aléas naturels : météorologiques (tempête, orage, neige, grand froid, canicule ou sécheresse) et séisme (sismicité faible). Il est également exposé à un risque particulier : le risque de radon. Un site publié par le BRGM permet d'évaluer simplement et rapidement les risques d'un bien localisé soit par son adresse soit par le numéro de sa parcelle.

Risques naturels

Le retrait-gonflement des sols argileux est susceptible d'engendrer des dommages importants aux bâtiments en cas d'alternance de périodes de sécheresse et de pluie. 33,2 % de la superficie communale est en aléa moyen ou fort (33,6 % au niveau départemental et 48,5 % au niveau national). Sur les  dénombrés sur la commune en 2019,  sont en en aléa moyen ou fort, soit 23 %, à comparer aux 25 % au niveau départemental et 54 % au niveau national. Une cartographie de l'exposition du territoire national au retrait gonflement des sols argileux est disponible sur le site du BRGM.

Par ailleurs, afin de mieux appréhender le risque d'affaissement de terrain, l'inventaire national des cavités souterraines permet de localiser celles situées sur la commune.

La commune a été reconnue en état de catastrophe naturelle au titre des dommages causés par les inondations et coulées de boue survenues en 1982 et 1999. Concernant les mouvements de terrains, la commune a été reconnue en état de catastrophe naturelle au titre des dommages causés par des mouvements de terrain en 1999.

Risque particulier
Dans plusieurs parties du territoire national, le radon, accumulé dans certains logements ou autres locaux, peut constituer une source significative d'exposition de la population aux rayonnements ionisants. Certaines communes du département sont concernées par le risque radon à un niveau plus ou moins élevé. Selon la classification de 2018, la commune de La Chapelle-Taillefert est classée en zone 3, à savoir zone à potentiel radon significatif.

Histoire
En , la commune subit la répression du  SS « Der Führer », appartenant à la division Das Reich, en route vers la Normandie.

Politique et administration

Démographie

Les habitants de La Chapelle-Taillefert sont les Chapelauds.

Culture locale et patrimoine

Lieux et monuments
 Église Saint-Sébastien-et-Saint-Roch.
 La croix de Lardillier est une croix de carrefour du  située au sud-ouest du lieu-dit Lardillier, le long de la route départementale 940. Elle est inscrite au titre des monuments historiques depuis 1930.

Personnalités liées à la commune
 Pierre de La Chapelle-Taillefert (-1312), évêque de Carcassonne puis de Toulouse et finalement cardinal-évêque de Palestrina, est né à La Chapelle-Taillefert.
 Léonce Manouvrier (1850-1927), anthropologue, anatomiste et physiologiste, est inhumé au cimetière du village.
 Victor Lanoux (1936-2017), acteur, producteur, scénariste et auteur de théâtre, a passé la Seconde Guerre mondiale à La Chapelle-Taillefert. Il s'y installe en 1989 et participe à la vie locale jusqu'en 1997. Il y appréciait le côté modeste et authentique des habitants.

Voir aussi

Articles connexes
 Liste des communes de la Creuse

Liens externes

 La Chapelle-Taillefert sur le site de l'Institut géographique national

Notes et références

Notes et cartes
 Notes

 Cartes

Références

Commune dans la Creuse
Aire urbaine de Guéret
Aire d'attraction de Guéret


Excitement is building ahead of the launch of the Sheffield Bus Partnership, a groundbreaking agreement with bus operators that will see many passengers paying lower fares for their journey from 28 October.
The Sheffield Bus Agreement is a voluntary partnership that brings together South Yorkshire Passenger Transport Executive, First South Yorkshire, Stagecoach in Sheffield, TM Travel, Sheffield Community Transport and Sheffield City Council. The aim is to improve the bus network so that the numbers of people using it grow.
The new network will mean a new discounted multi-operator ticket which will see fares fall by as much as 23 per cent. Up to 35 per cent of customers stand to benefit from the new fares. As well as the current Citywide Day ticket – at a reduced price of £4.30, new weekly, 28 day and annual Citywide tickets will be introduced.
The partners believe that by working together they will be able to make the network simpler, more flexible and more convenient. The Government has indicated that it will help Sheffield to become one of the leading examples of bus partnership working by awarding an extra £8 million over the next five years to be invested in improving the network even further.


text:
Livingston Parish Sheriff's Office investigating deadly shooting
Former LSU student could have own words used against him during trial for Max Gruver's hazing death
by: Jonathon Freeman
A former LSU student could have his own words used against him when he goes to trial for the death of fraternity pledge Max Gruver.
Prosecutors seized Matthew Naquin's cell-phone two months after Gruver's death but he's refused to give them the passcode.
The Baton Rouge Advocate reports that a state judge has denied defense claims that this violates Naquin's fifth amendment protection from incriminating himself.
Naquin faces the most serious charge in Gruver's death — negligent homicide.
Prosecutors believe he directed Phi Delta Theta's hazing ritual that the fraternity nicknamed 'bible study'.
An autopsy determined that Gruver suffocated on his own vomit and had a blood alcohol level more than six times the legal limit to drive.
Two Phi Delt's have pleaded guilty and are expected to testify against Naquin.
Naquin's trial is set to begin in July where he could get 5 years in prison if convicted.
by Mark Rigsby / Jan 21, 2021
The Lafayette Parish School System has made the decision to send 8th graders and 12th graders back to campus for learning full-time, starting February 1st. The school system says they're doing a good job with mitigation efforts, transmission of the virus at school is low, and there have been no widespread school closures.
Currently, Lafayette Parish has the 3rd highest number of student cases reported in Louisiana this school year - 819.
(NEXSTAR) – A New Orleans woman who was imprisoned at the age of 19, served her sentence but was saddled with a crushing payments from a judge-mandated $1.9 million in restitution can now put that part of her life behind her.
"I think I'm still trying to soak it in," Syrita Steib said Wednesday, according to WWL-TV. "[I'm] really, really thankful to God that he can use any vessel to bless you."
WATCH: 10-year-old girl attacked by neighbor's seven dogs


Rugby Goal Kick Follow Through Kicking • The aim of the drill is to develop players follow through after the strike.
Richard Kirkland of Play Rugby USA talks about the role of rugby in developing key skills and spreading hope for under-priviliged children in Harlem.
Heather fisher: "rugby allows me to be myself"
How do I see which members of staff have access to Sportplan?


text:
Q: what is this mobile app control called? I'm starting to see more iOS app (Etsy, Lootsy, etc.) using this control to navigate through categories.  I"m thinking about implementing it in iOS where I can switch between collection views.   Anyone know what this is called and if there is a github repo to look at as starting point?
Thanks

A: This implements similar Scrollview (doesn't have to be infinite)
 https://github.com/Seitk/InfiniteScrollPicker


text:
Coker UniversityAlumnus UpdatesIn MemoriamEleanor Davis Tucker
Eleanor Davis Tucker
Eleanor Davis Tucker, a former primary school teacher and real estate agent in the Pee Dee region, died on January 2, 2019, at 86 years old due to stroke complications.
Mrs. Tucker was born in Cheraw, SC in 1932 to Arthur and Bessie Davis, who owned and operated several grocery stores and other businesses. She graduated from Cheraw High School in 1950 as valedictorian and then graduated with honors from Coker University in Hartsville, SC in 1954.
Mrs. Tucker taught primary school for 26 years in Bennettsville, SC; Great Falls, SC; Star, NC; Arcadia, NC; and Cheraw. She then became a real estate agent specializing in older and historic homes throughout the Pee Dee area in the 1980s. Mrs. Tucker taught children's Sunday school for many years at First Methodist Church in Cheraw, and was also very active at Trinity Methodist Church in Darlington, SC.
In 1986, Mrs. Tucker and her husband, Carl, bought ramshackle Roseville Plantation near Darlington, in the Back Swamp community, and began the arduous task of restoring it. Roseville Plantation, built in 1771 after a royal grant from the King of England, was the home of Ada Bacot Clarke, a Civil War nurse whose diaries were published in 1994 by the University of South Carolina Press.
"It was not until the Tuckers purchased Roseville that restoration was thought possible," said Anita Clarke Curl, great-granddaughter of Ada Bacot Clarke. "With enduring patience and painstaking craftsmanship, they reclaimed the glory of the old house. Roseville stirs the senses and emotions. It evokes a sense of pride in our past and the need to treasure and preserve this spot of sunshine called Roseville. " Roseville Plantation was awarded a historical marker by the South Carolina Department of Archives and History and placed into the National Register of Historic Places by the National Park Service in the late 1990s.
Mrs. Tucker is survived by her sisters, Elizabeth Norton and Mary Rummler; sons, Britt (Renee) Tucker and Scott Tucker; and six grandchildren, Ava, Brooks, Crista, Evan, Skye and Trace.
Services honoring the life, love and blessing of Mrs. Tucker will be held at Mt. Croghan Baptist Church, 14 Church Street, Mt. Croghan, SC 29727, on Sunday, January 6, 2019. Visitation will begin at 2:00 PM, funeral services at 3:00 PM and interment will follow in the Mt. Croghan Memorial Park. Miller-Rivers-Caulder Funeral Home of Chesterfield, SC is serving the Tucker family.
In lieu of flowers, a donation in Mrs. Tucker's name may be given to Trinity Methodist Church in Darlington, First Methodist Church in Cheraw or Mt. Croghan Baptist Church in Mt. Croghan.


On Friday I took half the day off to head down south for the Home & Garden show at the Tacoma Dome. I've never been to this event before, and I probably wouldn't have gone this year either, except John and Sherry Petersik from Young House Love were making a stop to promote their book!
I have been a devoted reader of the YHL blog for, oh, like 4 years now – I first stumbled upon their site in 2009 when I was searching for DIY Backyard Wedding inspiration. Sherry and John have a great recap of their homemade wedding, and it also lead me to their daily blog posts. I've been hooked ever since!
Their open, honest approach to blogging about their home improvement journeys, as well as their goofy humor and real-people personalities had me from the get-go.
And guess what? They're just as fun, adorable, and hilarious in person!
When I found out they were writing a book, I pre-ordered my copy from Amazon right away. Not only was I confident I'd love it, but I also wanted to show my support for these young'uns who entertain me every single weekday for free through their blog.
And when I found out they'd be making a book-tour stop close enough to attend, I was way too excited (M will vouch for this).
So my mom was a great sport, and she came along with me. It was really nice to spend a good few hours with her, and there were plenty of home & garden inspiration for her new business project (I'll have to expand on that sometime soon here!).
Now, because I am a huge nerd, I wanted to give them some kind of gift, to say "thank you" for sharing themselves the way they do. It's totally corny, but because of their blog, they feel like friends, even though we've never really met. So, I made them a little ceramic plate, very similar to this guy in my Etsy shop. Except the woodgrain plate I made for John & Sherry has a heart in the middle with "yhl" carved out. Somehow I totally forgot to take a picture of it before I gave it to them – of course.
When I got to the front of the line, and presented my little gift, it was a little intimidating (yes, I'm a nerd!) but Sherry was so enthusiastic and so genuine when she saw it!
My mom was so great and snapped all these photos while I talked to them – Thanks, Mom!
So then Sherry insisted that I sign the back of the plate and she handed me her red sharpie, so heck, I couldn't refuse! I signed the plate while Sherry signed my book!
Anyways! So much fun. I love those guys! In a totally non-creepy kind of way, I swear.
Now my book is signed!
What? Another post about mushrooms? Well, a week ago, Design*Sponge featured an article about mushrooms, wild mushroom gathering, and a super cute mushroom-focused centerpiece project!
That last photo there had me especially enamored! I love the silky purity of the white mushrooms, and the way they grow clustered together like that!
What do you think?? I am very pleased with the way they turned out 🙂 Very fun and so simple, but they just make me smile! I think I'll be making more, and of course, they'll be posted in my Shop.
I don't know why I have such a thing for mushrooms! Oh well! Happy Friday!


We offer a diverse mix of delicious dining options ranging from international fare to local Washington D.C. staples that cater to various dietary preferences. Whether you'd like to enjoy a meal and cocktail at one of the many full service restaurant or grab a meal on the go, there is something for everyone. See restaurant options.
We also offer well-known brands such as Brooks Brothers, Tumi, Swarovski, and more. Shop for souvenirs and travel essentials from stores such as Hudson News, The Washingtonian and America!, or visit boutique shops for unique finds to commemorate your trip to the Nation's Capital. View shopping options.


Three new Anna Hibiscus books complete the amazing 8 book series. Go Well Anna Hibiscus & Love from Anna Hibiscus & You're Amazing Anna Hibiscus (in that order).
I am so proud of these books, of their depth and their kindness. I can't quite believe that I wrote them.
I'm proud of this series too. It's unique. Creating the voice of an uneducated clever boy who is so-called under privileged is so important to me. And to others as well, it seems, because the books have won awards such as "Notable Books for a Global Society" and "The Africana Notable Book Award".
Another two stunning picture books "Splash Anna Hibiscus!" and "Double Trouble for Anna Hibiscus" have come out in the last five years.
Lauren Tobia's illustrations just get more and more joyful and bright and alive. Don't you think?
And last but not least, I've a brand new picture book called "Baby Goes To Market". It has new characters, and a new illustrator whose work is stunning.
"Baby Goes To Market" has been winning awards in the US - I'm so proud of it. It's out in the UK as well, and in French and Japanese. So look out for it wherever you go!
So you can see that I've been pretty busy, while I've been silent here. I hope that you've been delighted - or will be delighted - with what I have been doing!