text:
/*
 * ceph_fs.h - Ceph constants and data types to share between kernel and
 * user space.
 *
 * Most types in this file are defined as little-endian, and are
 * primarily intended to describe data structures that pass over the
 * wire or that are stored on disk.
 *
 * LGPL2
 */

#ifndef CEPH_FS_H
#define CEPH_FS_H

#include "msgr.h"
#include "rados.h"

/*
 * subprotocol versions.  when specific messages types or high-level
 * protocols change, bump the affected components.  we keep rev
 * internal cluster protocols separately from the public,
 * client-facing protocol.
 */
#define CEPH_OSD_PROTOCOL     8 /* cluster internal */
#define CEPH_MDS_PROTOCOL    12 /* cluster internal */
#define CEPH_MON_PROTOCOL     5 /* cluster internal */
#define CEPH_OSDC_PROTOCOL   24 /* server/client */
#define CEPH_MDSC_PROTOCOL   32 /* server/client */
#define CEPH_MONC_PROTOCOL   15 /* server/client */

#define CEPH_INO_ROOT  1
#define CEPH_INO_CEPH  2        /* hidden .ceph dir */

/* arbitrary limit on max # of monitors (cluster of 3 is typical) */
#define CEPH_MAX_MON   31

/*
 * feature bits
 */
#define CEPH_FEATURE_UID            (1<<0)
#define CEPH_FEATURE_NOSRCADDR      (1<<1)
#define CEPH_FEATURE_MONCLOCKCHECK  (1<<2)
#define CEPH_FEATURE_FLOCK          (1<<3)
#define CEPH_FEATURE_SUBSCRIBE2     (1<<4)
#define CEPH_FEATURE_MONNAMES       (1<<5)
#define CEPH_FEATURE_RECONNECT_SEQ  (1<<6)
#define CEPH_FEATURE_DIRLAYOUTHASH  (1<<7)

/*
 * ceph_file_layout - describe data layout for a file/inode
 */
struct ceph_file_layout {
	/* file -> object mapping */
	__le32 fl_stripe_unit;     /* stripe unit, in bytes.  must be multiple
				      of page size. */
	__le32 fl_stripe_count;    /* over this many objects */
	__le32 fl_object_size;     /* until objects are this big, then move to
				      new objects */
	__le32 fl_cas_hash;        /* UNUSED.  0 = none; 1 = sha256 */

	/* pg -> disk layout */
	__le32 fl_object_stripe_unit;  /* UNUSED.  for per-object parity, if any */

	/* object -> pg layout */
	__le32 fl_unused;       /* unused; used to be preferred primary (-1) */
	__le32 fl_pg_pool;      /* namespace, crush ruleset, rep level */
} __attribute__ ((packed));

#define CEPH_MIN_STRIPE_UNIT 65536

int ceph_file_layout_is_valid(const struct ceph_file_layout *layout);

struct ceph_dir_layout {
	__u8   dl_dir_hash;   /* see ceph_hash.h for ids */
	__u8   dl_unused1;
	__u16  dl_unused2;
	__u32  dl_unused3;
} __attribute__ ((packed));

/* crypto algorithms */
#define CEPH_CRYPTO_NONE 0x0
#define CEPH_CRYPTO_AES  0x1

#define CEPH_AES_IV "cephsageyudagreg"

/* security/authentication protocols */
#define CEPH_AUTH_UNKNOWN	0x0
#define CEPH_AUTH_NONE	 	0x1
#define CEPH_AUTH_CEPHX	 	0x2

#define CEPH_AUTH_UID_DEFAULT ((__u64) -1)

/*********************************************
 * message layer
 */

/*
 * message types
 */

/* misc */
#define CEPH_MSG_SHUTDOWN               1
#define CEPH_MSG_PING                   2

/* client <-> monitor */
#define CEPH_MSG_MON_MAP                4
#define CEPH_MSG_MON_GET_MAP            5
#define CEPH_MSG_STATFS                 13
#define CEPH_MSG_STATFS_REPLY           14
#define CEPH_MSG_MON_SUBSCRIBE          15
#define CEPH_MSG_MON_SUBSCRIBE_ACK      16
#define CEPH_MSG_AUTH			17
#define CEPH_MSG_AUTH_REPLY		18

/* client <-> mds */
#define CEPH_MSG_MDS_MAP                21

#define CEPH_MSG_CLIENT_SESSION         22
#define CEPH_MSG_CLIENT_RECONNECT       23

#define CEPH_MSG_CLIENT_REQUEST         24
#define CEPH_MSG_CLIENT_REQUEST_FORWARD 25
#define CEPH_MSG_CLIENT_REPLY           26
#define CEPH_MSG_CLIENT_CAPS            0x310
#define CEPH_MSG_CLIENT_LEASE           0x311
#define CEPH_MSG_CLIENT_SNAP            0x312
#define CEPH_MSG_CLIENT_CAPRELEASE      0x313

/* pool ops */
#define CEPH_MSG_POOLOP_REPLY           48
#define CEPH_MSG_POOLOP                 49

/* osd */
#define CEPH_MSG_OSD_MAP                41
#define CEPH_MSG_OSD_OP                 42
#define CEPH_MSG_OSD_OPREPLY            43
#define CEPH_MSG_WATCH_NOTIFY           44

/* watch-notify operations */
enum {
  WATCH_NOTIFY				= 1, /* notifying watcher */
  WATCH_NOTIFY_COMPLETE			= 2, /* notifier notified when done */
};

/* pool operations */
enum {
  POOL_OP_CREATE			= 0x01,
  POOL_OP_DELETE			= 0x02,
  POOL_OP_AUID_CHANGE			= 0x03,
  POOL_OP_CREATE_SNAP			= 0x11,
  POOL_OP_DELETE_SNAP			= 0x12,
  POOL_OP_CREATE_UNMANAGED_SNAP		= 0x21,
  POOL_OP_DELETE_UNMANAGED_SNAP		= 0x22,
};

struct ceph_mon_request_header {
	__le64 have_version;
	__le16 session_mon;
	__le64 session_mon_tid;
} __attribute__ ((packed));

struct ceph_mon_statfs {
	struct ceph_mon_request_header monhdr;
	struct ceph_fsid fsid;
} __attribute__ ((packed));

struct ceph_statfs {
	__le64 kb, kb_used, kb_avail;
	__le64 num_objects;
} __attribute__ ((packed));

struct ceph_mon_statfs_reply {
	struct ceph_fsid fsid;
	__le64 version;
	struct ceph_statfs st;
} __attribute__ ((packed));

const char *ceph_pool_op_name(int op);

struct ceph_mon_poolop {
	struct ceph_mon_request_header monhdr;
	struct ceph_fsid fsid;
	__le32 pool;
	__le32 op;
	__le64 auid;
	__le64 snapid;
	__le32 name_len;
} __attribute__ ((packed));

struct ceph_mon_poolop_reply {
	struct ceph_mon_request_header monhdr;
	struct ceph_fsid fsid;
	__le32 reply_code;
	__le32 epoch;
	char has_data;
	char data[0];
} __attribute__ ((packed));

struct ceph_mon_unmanaged_snap {
	__le64 snapid;
} __attribute__ ((packed));

struct ceph_osd_getmap {
	struct ceph_mon_request_header monhdr;
	struct ceph_fsid fsid;
	__le32 start;
} __attribute__ ((packed));

struct ceph_mds_getmap {
	struct ceph_mon_request_header monhdr;
	struct ceph_fsid fsid;
} __attribute__ ((packed));

struct ceph_client_mount {
	struct ceph_mon_request_header monhdr;
} __attribute__ ((packed));

#define CEPH_SUBSCRIBE_ONETIME    1  /* i want only 1 update after have */

struct ceph_mon_subscribe_item {
	__le64 have_version;    __le64 have;
	__u8 onetime;
} __attribute__ ((packed));

struct ceph_mon_subscribe_ack {
	__le32 duration;         /* seconds */
	struct ceph_fsid fsid;
} __attribute__ ((packed));

/*
 * mds states
 *   > 0 -> in
 *  <= 0 -> out
 */
#define CEPH_MDS_STATE_DNE          0  /* down, does not exist. */
#define CEPH_MDS_STATE_STOPPED     -1  /* down, once existed, but no subtrees.
					  empty log. */
#define CEPH_MDS_STATE_BOOT        -4  /* up, boot announcement. */
#define CEPH_MDS_STATE_STANDBY     -5  /* up, idle.  waiting for assignment. */
#define CEPH_MDS_STATE_CREATING    -6  /* up, creating MDS instance. */
#define CEPH_MDS_STATE_STARTING    -7  /* up, starting previously stopped mds */
#define CEPH_MDS_STATE_STANDBY_REPLAY -8 /* up, tailing active node's journal */

#define CEPH_MDS_STATE_REPLAY       8  /* up, replaying journal. */
#define CEPH_MDS_STATE_RESOLVE      9  /* up, disambiguating distributed
					  operations (import, rename, etc.) */
#define CEPH_MDS_STATE_RECONNECT    10 /* up, reconnect to clients */
#define CEPH_MDS_STATE_REJOIN       11 /* up, rejoining distributed cache */
#define CEPH_MDS_STATE_CLIENTREPLAY 12 /* up, replaying client operations */
#define CEPH_MDS_STATE_ACTIVE       13 /* up, active */
#define CEPH_MDS_STATE_STOPPING     14 /* up, but exporting metadata */

extern const char *ceph_mds_state_name(int s);

/*
 * metadata lock types.
 *  - these are bitmasks.. we can compose them
 *  - they also define the lock ordering by the MDS
 *  - a few of these are internal to the mds
 */
#define CEPH_LOCK_DVERSION    1
#define CEPH_LOCK_DN          2
#define CEPH_LOCK_ISNAP       16
#define CEPH_LOCK_IVERSION    32    /* mds internal */
#define CEPH_LOCK_IFILE       64
#define CEPH_LOCK_IAUTH       128
#define CEPH_LOCK_ILINK       256
#define CEPH_LOCK_IDFT        512   /* dir frag tree */
#define CEPH_LOCK_INEST       1024  /* mds internal */
#define CEPH_LOCK_IXATTR      2048
#define CEPH_LOCK_IFLOCK      4096  /* advisory file locks */
#define CEPH_LOCK_INO         8192  /* immutable inode bits; not a lock */

/* client_session ops */
enum {
	CEPH_SESSION_REQUEST_OPEN,
	CEPH_SESSION_OPEN,
	CEPH_SESSION_REQUEST_CLOSE,
	CEPH_SESSION_CLOSE,
	CEPH_SESSION_REQUEST_RENEWCAPS,
	CEPH_SESSION_RENEWCAPS,
	CEPH_SESSION_STALE,
	CEPH_SESSION_RECALL_STATE,
};

extern const char *ceph_session_op_name(int op);

struct ceph_mds_session_head {
	__le32 op;
	__le64 seq;
	struct ceph_timespec stamp;
	__le32 max_caps, max_leases;
} __attribute__ ((packed));

/* client_request */
/*
 * metadata ops.
 *  & 0x001000 -> write op
 *  & 0x010000 -> follow symlink (e.g. stat(), not lstat()).
 &  & 0x100000 -> use weird ino/path trace
 */
#define CEPH_MDS_OP_WRITE        0x001000
enum {
	CEPH_MDS_OP_LOOKUP     = 0x00100,
	CEPH_MDS_OP_GETATTR    = 0x00101,
	CEPH_MDS_OP_LOOKUPHASH = 0x00102,
	CEPH_MDS_OP_LOOKUPPARENT = 0x00103,
	CEPH_MDS_OP_LOOKUPINO  = 0x00104,

	CEPH_MDS_OP_SETXATTR   = 0x01105,
	CEPH_MDS_OP_RMXATTR    = 0x01106,
	CEPH_MDS_OP_SETLAYOUT  = 0x01107,
	CEPH_MDS_OP_SETATTR    = 0x01108,
	CEPH_MDS_OP_SETFILELOCK= 0x01109,
	CEPH_MDS_OP_GETFILELOCK= 0x00110,
	CEPH_MDS_OP_SETDIRLAYOUT=0x0110a,

	CEPH_MDS_OP_MKNOD      = 0x01201,
	CEPH_MDS_OP_LINK       = 0x01202,
	CEPH_MDS_OP_UNLINK     = 0x01203,
	CEPH_MDS_OP_RENAME     = 0x01204,
	CEPH_MDS_OP_MKDIR      = 0x01220,
	CEPH_MDS_OP_RMDIR      = 0x01221,
	CEPH_MDS_OP_SYMLINK    = 0x01222,

	CEPH_MDS_OP_CREATE     = 0x01301,
	CEPH_MDS_OP_OPEN       = 0x00302,
	CEPH_MDS_OP_READDIR    = 0x00305,

	CEPH_MDS_OP_LOOKUPSNAP = 0x00400,
	CEPH_MDS_OP_MKSNAP     = 0x01400,
	CEPH_MDS_OP_RMSNAP     = 0x01401,
	CEPH_MDS_OP_LSSNAP     = 0x00402,
};

extern const char *ceph_mds_op_name(int op);

#define CEPH_SETATTR_MODE   1
#define CEPH_SETATTR_UID    2
#define CEPH_SETATTR_GID    4
#define CEPH_SETATTR_MTIME  8
#define CEPH_SETATTR_ATIME 16
#define CEPH_SETATTR_SIZE  32
#define CEPH_SETATTR_CTIME 64

union ceph_mds_request_args {
	struct {
		__le32 mask;                 /* CEPH_CAP_* */
	} __attribute__ ((packed)) getattr;
	struct {
		__le32 mode;
		__le32 uid;
		__le32 gid;
		struct ceph_timespec mtime;
		struct ceph_timespec atime;
		__le64 size, old_size;       /* old_size needed by truncate */
		__le32 mask;                 /* CEPH_SETATTR_* */
	} __attribute__ ((packed)) setattr;
	struct {
		__le32 frag;                 /* which dir fragment */
		__le32 max_entries;          /* how many dentries to grab */
		__le32 max_bytes;
	} __attribute__ ((packed)) readdir;
	struct {
		__le32 mode;
		__le32 rdev;
	} __attribute__ ((packed)) mknod;
	struct {
		__le32 mode;
	} __attribute__ ((packed)) mkdir;
	struct {
		__le32 flags;
		__le32 mode;
		__le32 stripe_unit;          /* layout for newly created file */
		__le32 stripe_count;         /* ... */
		__le32 object_size;
		__le32 file_replication;
		__le32 unused;               /* used to be preferred osd */
	} __attribute__ ((packed)) open;
	struct {
		__le32 flags;
	} __attribute__ ((packed)) setxattr;
	struct {
		struct ceph_file_layout layout;
	} __attribute__ ((packed)) setlayout;
	struct {
		__u8 rule; /* currently fcntl or flock */
		__u8 type; /* shared, exclusive, remove*/
		__le64 pid; /* process id requesting the lock */
		__le64 pid_namespace;
		__le64 start; /* initial location to lock */
		__le64 length; /* num bytes to lock from start */
		__u8 wait; /* will caller wait for lock to become available? */
	} __attribute__ ((packed)) filelock_change;
} __attribute__ ((packed));

#define CEPH_MDS_FLAG_REPLAY        1  /* this is a replayed op */
#define CEPH_MDS_FLAG_WANT_DENTRY   2  /* want dentry in reply */

struct ceph_mds_request_head {
	__le64 oldest_client_tid;
	__le32 mdsmap_epoch;           /* on client */
	__le32 flags;                  /* CEPH_MDS_FLAG_* */
	__u8 num_retry, num_fwd;       /* count retry, fwd attempts */
	__le16 num_releases;           /* # include cap/lease release records */
	__le32 op;                     /* mds op code */
	__le32 caller_uid, caller_gid;
	__le64 ino;                    /* use this ino for openc, mkdir, mknod,
					  etc. (if replaying) */
	union ceph_mds_request_args args;
} __attribute__ ((packed));

/* cap/lease release record */
struct ceph_mds_request_release {
	__le64 ino, cap_id;            /* ino and unique cap id */
	__le32 caps, wanted;           /* new issued, wanted */
	__le32 seq, issue_seq, mseq;
	__le32 dname_seq;              /* if releasing a dentry lease, a */
	__le32 dname_len;              /* string follows. */
} __attribute__ ((packed));

/* client reply */
struct ceph_mds_reply_head {
	__le32 op;
	__le32 result;
	__le32 mdsmap_epoch;
	__u8 safe;                     /* true if committed to disk */
	__u8 is_dentry, is_target;     /* true if dentry, target inode records
					  are included with reply */
} __attribute__ ((packed));

/* one for each node split */
struct ceph_frag_tree_split {
	__le32 frag;                   /* this frag splits... */
	__le32 by;                     /* ...by this many bits */
} __attribute__ ((packed));

struct ceph_frag_tree_head {
	__le32 nsplits;                /* num ceph_frag_tree_split records */
	struct ceph_frag_tree_split splits[];
} __attribute__ ((packed));

/* capability issue, for bundling with mds reply */
struct ceph_mds_reply_cap {
	__le32 caps, wanted;           /* caps issued, wanted */
	__le64 cap_id;
	__le32 seq, mseq;
	__le64 realm;                  /* snap realm */
	__u8 flags;                    /* CEPH_CAP_FLAG_* */
} __attribute__ ((packed));

#define CEPH_CAP_FLAG_AUTH  1          /* cap is issued by auth mds */

/* inode record, for bundling with mds reply */
struct ceph_mds_reply_inode {
	__le64 ino;
	__le64 snapid;
	__le32 rdev;
	__le64 version;                /* inode version */
	__le64 xattr_version;          /* version for xattr blob */
	struct ceph_mds_reply_cap cap; /* caps issued for this inode */
	struct ceph_file_layout layout;
	struct ceph_timespec ctime, mtime, atime;
	__le32 time_warp_seq;
	__le64 size, max_size, truncate_size;
	__le32 truncate_seq;
	__le32 mode, uid, gid;
	__le32 nlink;
	__le64 files, subdirs, rbytes, rfiles, rsubdirs;  /* dir stats */
	struct ceph_timespec rctime;
	struct ceph_frag_tree_head fragtree;  /* (must be at end of struct) */
} __attribute__ ((packed));
/* followed by frag array, symlink string, dir layout, xattr blob */

/* reply_lease follows dname, and reply_inode */
struct ceph_mds_reply_lease {
	__le16 mask;            /* lease type(s) */
	__le32 duration_ms;     /* lease duration */
	__le32 seq;
} __attribute__ ((packed));

struct ceph_mds_reply_dirfrag {
	__le32 frag;            /* fragment */
	__le32 auth;            /* auth mds, if this is a delegation point */
	__le32 ndist;           /* number of mds' this is replicated on */
	__le32 dist[];
} __attribute__ ((packed));

#define CEPH_LOCK_FCNTL    1
#define CEPH_LOCK_FLOCK    2

#define CEPH_LOCK_SHARED   1
#define CEPH_LOCK_EXCL     2
#define CEPH_LOCK_UNLOCK   4

struct ceph_filelock {
	__le64 start;/* file offset to start lock at */
	__le64 length; /* num bytes to lock; 0 for all following start */
	__le64 client; /* which client holds the lock */
	__le64 pid; /* process id holding the lock on the client */
	__le64 pid_namespace;
	__u8 type; /* shared lock, exclusive lock, or unlock */
} __attribute__ ((packed));

/* file access modes */
#define CEPH_FILE_MODE_PIN        0
#define CEPH_FILE_MODE_RD         1
#define CEPH_FILE_MODE_WR         2
#define CEPH_FILE_MODE_RDWR       3  /* RD | WR */
#define CEPH_FILE_MODE_LAZY       4  /* lazy io */
#define CEPH_FILE_MODE_NUM        8  /* bc these are bit fields.. mostly */

int ceph_flags_to_mode(int flags);

/* capability bits */
#define CEPH_CAP_PIN         1  /* no specific capabilities beyond the pin */

/* generic cap bits */
#define CEPH_CAP_GSHARED     1  /* client can reads */
#define CEPH_CAP_GEXCL       2  /* client can read and update */
#define CEPH_CAP_GCACHE      4  /* (file) client can cache reads */
#define CEPH_CAP_GRD         8  /* (file) client can read */
#define CEPH_CAP_GWR        16  /* (file) client can write */
#define CEPH_CAP_GBUFFER    32  /* (file) client can buffer writes */
#define CEPH_CAP_GWREXTEND  64  /* (file) client can extend EOF */
#define CEPH_CAP_GLAZYIO   128  /* (file) client can perform lazy io */

/* per-lock shift */
#define CEPH_CAP_SAUTH      2
#define CEPH_CAP_SLINK      4
#define CEPH_CAP_SXATTR     6
#define CEPH_CAP_SFILE      8
#define CEPH_CAP_SFLOCK    20

#define CEPH_CAP_BITS       22

/* composed values */
#define CEPH_CAP_AUTH_SHARED  (CEPH_CAP_GSHARED  << CEPH_CAP_SAUTH)
#define CEPH_CAP_AUTH_EXCL     (CEPH_CAP_GEXCL     << CEPH_CAP_SAUTH)
#define CEPH_CAP_LINK_SHARED  (CEPH_CAP_GSHARED  << CEPH_CAP_SLINK)
#define CEPH_CAP_LINK_EXCL     (CEPH_CAP_GEXCL     << CEPH_CAP_SLINK)
#define CEPH_CAP_XATTR_SHARED (CEPH_CAP_GSHARED  << CEPH_CAP_SXATTR)
#define CEPH_CAP_XATTR_EXCL    (CEPH_CAP_GEXCL     << CEPH_CAP_SXATTR)
#define CEPH_CAP_FILE(x)    (x << CEPH_CAP_SFILE)
#define CEPH_CAP_FILE_SHARED   (CEPH_CAP_GSHARED   << CEPH_CAP_SFILE)
#define CEPH_CAP_FILE_EXCL     (CEPH_CAP_GEXCL     << CEPH_CAP_SFILE)
#define CEPH_CAP_FILE_CACHE    (CEPH_CAP_GCACHE    << CEPH_CAP_SFILE)
#define CEPH_CAP_FILE_RD       (CEPH_CAP_GRD       << CEPH_CAP_SFILE)
#define CEPH_CAP_FILE_WR       (CEPH_CAP_GWR       << CEPH_CAP_SFILE)
#define CEPH_CAP_FILE_BUFFER   (CEPH_CAP_GBUFFER   << CEPH_CAP_SFILE)
#define CEPH_CAP_FILE_WREXTEND (CEPH_CAP_GWREXTEND << CEPH_CAP_SFILE)
#define CEPH_CAP_FILE_LAZYIO   (CEPH_CAP_GLAZYIO   << CEPH_CAP_SFILE)
#define CEPH_CAP_FLOCK_SHARED  (CEPH_CAP_GSHARED   << CEPH_CAP_SFLOCK)
#define CEPH_CAP_FLOCK_EXCL    (CEPH_CAP_GEXCL     << CEPH_CAP_SFLOCK)

/* cap masks (for getattr) */
#define CEPH_STAT_CAP_INODE    CEPH_CAP_PIN
#define CEPH_STAT_CAP_TYPE     CEPH_CAP_PIN  /* mode >> 12 */
#define CEPH_STAT_CAP_SYMLINK  CEPH_CAP_PIN
#define CEPH_STAT_CAP_UID      CEPH_CAP_AUTH_SHARED
#define CEPH_STAT_CAP_GID      CEPH_CAP_AUTH_SHARED
#define CEPH_STAT_CAP_MODE     CEPH_CAP_AUTH_SHARED
#define CEPH_STAT_CAP_NLINK    CEPH_CAP_LINK_SHARED
#define CEPH_STAT_CAP_LAYOUT   CEPH_CAP_FILE_SHARED
#define CEPH_STAT_CAP_MTIME    CEPH_CAP_FILE_SHARED
#define CEPH_STAT_CAP_SIZE     CEPH_CAP_FILE_SHARED
#define CEPH_STAT_CAP_ATIME    CEPH_CAP_FILE_SHARED  /* fixme */
#define CEPH_STAT_CAP_XATTR    CEPH_CAP_XATTR_SHARED
#define CEPH_STAT_CAP_INODE_ALL (CEPH_CAP_PIN |			\
				 CEPH_CAP_AUTH_SHARED |	\
				 CEPH_CAP_LINK_SHARED |	\
				 CEPH_CAP_FILE_SHARED |	\
				 CEPH_CAP_XATTR_SHARED)

#define CEPH_CAP_ANY_SHARED (CEPH_CAP_AUTH_SHARED |			\
			      CEPH_CAP_LINK_SHARED |			\
			      CEPH_CAP_XATTR_SHARED |			\
			      CEPH_CAP_FILE_SHARED)
#define CEPH_CAP_ANY_RD   (CEPH_CAP_ANY_SHARED | CEPH_CAP_FILE_RD |	\
			   CEPH_CAP_FILE_CACHE)

#define CEPH_CAP_ANY_EXCL (CEPH_CAP_AUTH_EXCL |		\
			   CEPH_CAP_LINK_EXCL |		\
			   CEPH_CAP_XATTR_EXCL |	\
			   CEPH_CAP_FILE_EXCL)
#define CEPH_CAP_ANY_FILE_WR (CEPH_CAP_FILE_WR | CEPH_CAP_FILE_BUFFER |	\
			      CEPH_CAP_FILE_EXCL)
#define CEPH_CAP_ANY_WR   (CEPH_CAP_ANY_EXCL | CEPH_CAP_ANY_FILE_WR)
#define CEPH_CAP_ANY      (CEPH_CAP_ANY_RD | CEPH_CAP_ANY_EXCL | \
			   CEPH_CAP_ANY_FILE_WR | CEPH_CAP_FILE_LAZYIO | \
			   CEPH_CAP_PIN)

#define CEPH_CAP_LOCKS (CEPH_LOCK_IFILE | CEPH_LOCK_IAUTH | CEPH_LOCK_ILINK | \
			CEPH_LOCK_IXATTR)

int ceph_caps_for_mode(int mode);

enum {
	CEPH_CAP_OP_GRANT,         /* mds->client grant */
	CEPH_CAP_OP_REVOKE,        /* mds->client revoke */
	CEPH_CAP_OP_TRUNC,         /* mds->client trunc notify */
	CEPH_CAP_OP_EXPORT,        /* mds has exported the cap */
	CEPH_CAP_OP_IMPORT,        /* mds has imported the cap */
	CEPH_CAP_OP_UPDATE,        /* client->mds update */
	CEPH_CAP_OP_DROP,          /* client->mds drop cap bits */
	CEPH_CAP_OP_FLUSH,         /* client->mds cap writeback */
	CEPH_CAP_OP_FLUSH_ACK,     /* mds->client flushed */
	CEPH_CAP_OP_FLUSHSNAP,     /* client->mds flush snapped metadata */
	CEPH_CAP_OP_FLUSHSNAP_ACK, /* mds->client flushed snapped metadata */
	CEPH_CAP_OP_RELEASE,       /* client->mds release (clean) cap */
	CEPH_CAP_OP_RENEW,         /* client->mds renewal request */
};

extern const char *ceph_cap_op_name(int op);

/*
 * caps message, used for capability callbacks, acks, requests, etc.
 */
struct ceph_mds_caps {
	__le32 op;                  /* CEPH_CAP_OP_* */
	__le64 ino, realm;
	__le64 cap_id;
	__le32 seq, issue_seq;
	__le32 caps, wanted, dirty; /* latest issued/wanted/dirty */
	__le32 migrate_seq;
	__le64 snap_follows;
	__le32 snap_trace_len;

	/* authlock */
	__le32 uid, gid, mode;

	/* linklock */
	__le32 nlink;

	/* xattrlock */
	__le32 xattr_len;
	__le64 xattr_version;

	/* filelock */
	__le64 size, max_size, truncate_size;
	__le32 truncate_seq;
	struct ceph_timespec mtime, atime, ctime;
	struct ceph_file_layout layout;
	__le32 time_warp_seq;
} __attribute__ ((packed));

/* cap release msg head */
struct ceph_mds_cap_release {
	__le32 num;                /* number of cap_items that follow */
} __attribute__ ((packed));

struct ceph_mds_cap_item {
	__le64 ino;
	__le64 cap_id;
	__le32 migrate_seq, seq;
} __attribute__ ((packed));

#define CEPH_MDS_LEASE_REVOKE           1  /*    mds  -> client */
#define CEPH_MDS_LEASE_RELEASE          2  /* client  -> mds    */
#define CEPH_MDS_LEASE_RENEW            3  /* client <-> mds    */
#define CEPH_MDS_LEASE_REVOKE_ACK       4  /* client  -> mds    */

extern const char *ceph_lease_op_name(int o);

/* lease msg header */
struct ceph_mds_lease {
	__u8 action;            /* CEPH_MDS_LEASE_* */
	__le16 mask;            /* which lease */
	__le64 ino;
	__le64 first, last;     /* snap range */
	__le32 seq;
	__le32 duration_ms;     /* duration of renewal */
} __attribute__ ((packed));
/* followed by a __le32+string for dname */

/* client reconnect */
struct ceph_mds_cap_reconnect {
	__le64 cap_id;
	__le32 wanted;
	__le32 issued;
	__le64 snaprealm;
	__le64 pathbase;        /* base ino for our path to this ino */
	__le32 flock_len;       /* size of flock state blob, if any */
} __attribute__ ((packed));
/* followed by flock blob */

struct ceph_mds_cap_reconnect_v1 {
	__le64 cap_id;
	__le32 wanted;
	__le32 issued;
	__le64 size;
	struct ceph_timespec mtime, atime;
	__le64 snaprealm;
	__le64 pathbase;        /* base ino for our path to this ino */
} __attribute__ ((packed));

struct ceph_mds_snaprealm_reconnect {
	__le64 ino;     /* snap realm base */
	__le64 seq;     /* snap seq for this snap realm */
	__le64 parent;  /* parent realm */
} __attribute__ ((packed));

/*
 * snaps
 */
enum {
	CEPH_SNAP_OP_UPDATE,  /* CREATE or DESTROY */
	CEPH_SNAP_OP_CREATE,
	CEPH_SNAP_OP_DESTROY,
	CEPH_SNAP_OP_SPLIT,
};

extern const char *ceph_snap_op_name(int o);

/* snap msg header */
struct ceph_mds_snap_head {
	__le32 op;                /* CEPH_SNAP_OP_* */
	__le64 split;             /* ino to split off, if any */
	__le32 num_split_inos;    /* # inos belonging to new child realm */
	__le32 num_split_realms;  /* # child realms udner new child realm */
	__le32 trace_len;         /* size of snap trace blob */
} __attribute__ ((packed));
/* followed by split ino list, then split realms, then the trace blob */

/*
 * encode info about a snaprealm, as viewed by a client
 */
struct ceph_mds_snap_realm {
	__le64 ino;           /* ino */
	__le64 created;       /* snap: when created */
	__le64 parent;        /* ino: parent realm */
	__le64 parent_since;  /* snap: same parent since */
	__le64 seq;           /* snap: version */
	__le32 num_snaps;
	__le32 num_prior_parent_snaps;
} __attribute__ ((packed));
/* followed by my snap list, then prior parent snap list */

#endif


Breit einsetzbare Entwicklungsplattform für Algorithmen und Anwendungen im Wearable Bereich. Vortrag am Swiss ICT Symposium, Digitale Revolution – Are You Ready?, Luzern, November 2016.
Neue Entwicklungsplattform für Algorithmen und Anwendungen im Wearable-Bereich. Vortrag an der 13. Dortmunder MST-Konferenz, MST 4.0: Digitale und vernetzte Mikrotechnik, Dortmund, September 2016.
Messung der Luftqualität mit mobilen, kostengünstigen Sensoren. Entwicklungen, Chancen und Herausforderungen. Keynote am Fachevent für Mobile Internet of Things, smama, the swiss mobile association, HWZ Zurich, August 2015.
OpenSense: City-Scale Air Quality Monitoring with Wireless Sensor Nodes. Talk at the final conference of the MACPoll EU project. Delft, Netherlands, May 2014.
OpenSense: City-Scale Air Quality Monitoring with Wireless Sensor Nodes. Talk at the meeting of European Network on New Sensing Technologies for Air-Pollution Control and Environmental Sustainability – EuNetAir (COST Action TD1105). Cambridge, England, December 2013.
Air Quality Monitoring with Wireless Sensor Nodes. Seminar at the Swiss Tropical and Public Health Institute (Swiss TPH). Basel, Switzerland, January 2013.
Pushing the Spatio-Temporal Resolution Limit of Urban Air Pollution Maps. IEEE International Conference on Pervasive Computing and Communications (PerCom). Budapest, Hungary, March 2014.
Spatially Resolved Monitoring of Radio-Frequency Electromagnetic Fields. International Workshop on Sensing and Big Data Mining (SenseMine). Rome, Italy, November 2013.
Model-Driven Accuracy Bounds for Noisy Sensor Readings. IEEE Conference on Distributed Computing in Sensor Systems (DCOSS). Cambridge, Massachusetts, USA, May 2013.
Participatory Air Pollution Monitoring Using Smartphones. International Workshop on Mobile Sensing. Beijing, China, April 2012.
On-the-Fly Calibration of Low-Cost Gas Sensors. European Conference on Wireless Sensor Networks (EWSN). Trento, Italy, February 2012.


As a newcomer in the field of solutions for cleaning personal protective equipment, Meiko Maschinenbau GmbH is currently celebrating a successful début at the Interschutz exhibition. Long renowned for its cleaning and disinfection technology, the company recently exhibited at the world's leading exhibition for fire services and disaster relief organisations for the very first time. "We were overwhelmed by the positive response we received from visitors to the fair," says Meiko sales manager Frank Hoffmann.
Speed, precision and reliability are the hallmarks of any successful intervention by fire services or disaster relief teams – and they are also the key features of Meiko's innovative TopClean M technology. Designed to professionally clean self-contained breathing apparatus (SCBA) sets of masks, regulators and BA frames, the TopClean M is a cleaning and disinfection machine which has progressed from being an insider tip among BA equipment managers to a must-have machine in BA cleaning facilities. This was emphasised at this year's exhibition by André Jänicke, Sales Manager Europe at mask manufacturer Interspiro, who has followed the development of the TopClean M with interest: "Meiko technology offers advantages that have long been lacking in the industry – in other words speed, reliable processes, and better work safety standards in the BA room!"
From volunteer firefighters and professional fire departments to airport fire services and the German Armed Forces' fire service training facility, the TopClean M already boasts a long list of references. It has also become a major talking point in its community of users, as Frank Hoffmann explains: "It was great to have so many people visiting our booth and taking an interest. That was prompted in part by the fantastic response our technology has had among existing users." Frank Hoffmann and the rest of the exhibition team – which included product specialist Manuel Paulat – identified the three most pressing concerns mentioned by visitors to the booth: the safety of people who wear SCBA equipment, the occupational health & safety of the people who clean it, and the cost involved in cleaning and disinfecting masks. Time is a huge factor when it comes to ensuring all the necessary equipment is available for the next call-out, as Paulat explains: "TopClean M technology makes it possible to clean 40 masks or 80 regulators or ten SCBA frames within 60 minutes. That represents a time saving of up to 60 percent compared to conventional methods."
The patented method of cleaning regulators while they are still pressurised is currently recognised as unique in the industry.


Gold In Borax Precipitate,SAMAC Crusher. Gold In Borax Precipitate. . The specific gravity of gold obtained by precipitation from . Separating and purification of .
Borax, also known as sodium borate, ... In artisanal gold mining, the borax method is sometimes used as a substitute for toxic mercury in the gold extraction process.
Small Scale Gold Refining by Zinc precipitation & Gold cathodes. ... The smelting process can be done with borax, silica and saltpeter for one hour to 1100 oC.
Melting Gold Precipitate. Previous Next ... Note: Soda bicarbonate or fluorspar may be substituted for part of the borax, and the manganese may be replaced by niter.
gold in borax precipitate – Grinding Mill China . Special DirectionsGold. PartChestofBooks.com. borax in gold processing in the worldcrusher in India..
BORON AND BORATES ROBERT B. KISTLER ... were used primarily as a flux for assaying and refining gold and silver. ... chemical precipitation in a closed basin.


Members of a mining team on one of the moons of Saturn must destroy a creature released from its slumber deep below the ground before it kills them all.
When his fifteen year relationship with his condescending and social climbing boyfriend ends suddenly, Steve learns to become independent and follow his dream of being a writer, with the help of his friends. However, his ex's snobbish friends aren't going to make it easy for him.
A gay teacher, specializing in special needs children, must battle prejudice and the judicial system when he is accused of molesting a mentally challenged teenage boy.
A high school students wanders out of the desert, naked and beaten, with no memory of the last ten years. One thing he does learn quickly is that someone is trying to kill him.
An elderly man finds a shillelagh belonging to a leprechaun on a vacation in Ireland. The leprechaun wants it back, but when he follows the man to the United States, everything changes.


KH catering is a company which runs the venues Kolabrautin, Smurstöðin and Hörpudiskur in Harpa, Reykjavík's concert hall and conference centre. Kolabrautin is a modern restaurant where the exquisite selection of Icelandic ingredients blends beautifully with the best of Mediterranean cuisine. Smurstöðin only uses Icelandic grown and harvested ingredients which are the cream of crop at any given time. Hörpudiskur is Harpa's catering service. It provides a comprehensive service for conferences, meetings, celebrations and cocktails.


A watershed is an area of land within which water from rain or snow drains into a body of water, such as a river, lake or ocean.
Philadelphia is part of the Delaware River Watershed. Its seven main subwatersheds are the Delaware Direct, Schuylkill, Pennypack, Tookany/Tacony-Frankford, Darby-Cobbs, Poquessing and Wissahickon.
The Philadelphia Water Department is committed to protecting and restoring our area's watersheds to ensure a healthy environment and a clean supply of drinking water.
The historic erasing of Philadelphia's surface creeks and streams by converting them to sewers has transformed hydrological conditions over time. Of the 283 linear miles of streams that once existed in Philadelphia to carry runoff to the Schuylkill and Delaware Rivers, only 118 miles remain today.
Learn how Philadelphia's rapid growth as an industrial hub informed development patterns and altered the natural hydrology and topography of the city's watersheds.
Which watershed do you live/work in? Click here, enter your address, and find out.


text:
Cliff Frohlich Named First Senior Research Scientist Emeritus
Cliff Frohlich has had a remarkable career at the University of Texas Institute for Geophysics, spending 40 years studying earthquakes of all kinds, whether they start deep in the earth, at the bottom of the ocean or are caused by human activity.
Frohlich's stellar research has earned him the reputation of a pioneer, someone who is always willing to explore the big questions and follow the science wherever it goes. Given this reputation, it is fitting that Frohlich has been appointed Senior Research Scientist Emeritus, the first such honor granted to a research scientist at The University of Texas at Austin.
"Having the ability to honor our research scientists in this way for the tremendous contributions they make to the university and to science is long overdue," said UT Jackson School of Geosciences Dean Sharon Mosher. "Cliff is a wonderful standard bearer for the group."
Emeritus status is an honorary title that can be bestowed on a fully tenured professor after retirement to honor their work. The status often allows them to keep office space after retirement and continue to carry on some duties at the university.
Many schools and departments in the university employ research scientists as well as faculty. Nowhere is it more common than at the Jackson School, where two of the school's research units – UTIG and the Bureau of Economic Geology – employ about 100 research scientists to lead their world-class programs and projects. The Jackson School lobbied for the emeritus status to be opened to senior research scientists after retirement, a move that was endorsed by the university and the University of Texas Board of Regents, which approved Frohlich's new title on Feb. 27.
"I am proud to now hold the title of Senior Research Scientist Emeritus," Frohlich said. "I'm nonplused to learn that I'm the first individual at UT ever to receive this title. This surprises me, especially since during my 40 years on the 40 Acres I have known several non-faculty UTIG scientists who certainly deserved it."
UTIG Director Terry Quinn said he is thrilled that the new status is now available to research scientists and that Frohlich will be able to continue his association with the institute after retirement.
"Cliff has had a remarkable academic career, 40 years of which was at the Institute for Geophysics," Quinn said. "He is a Renaissance man, equally comfortable writing and editing books on earthquakes as he is on the physics of sports. Cliff's new emeritus title will allow him to continue to contribute to the academic culture at the institute."
Frohlich started his career at UTIG in 1978 in Galveston, where UTIG was originally located, and later moved to Austin when the institute moved in 1982. At the time, he focused on ocean bottom seismography, but has since researched earthquake statistics, deep earthquakes, moonquakes, Texas earthquakes, and human-made earthquakes. The latter is what Cliff is best known for recently, with his phone regularly ringing as soon as an earthquake is felt in Texas.
"UTIG has been great because I have had the freedom to work on almost any kind of question that interested me," Frohlich said. "And because I have always been surrounded by wonderful, supportive colleagues— colleagues who sometimes have involved me in fascinating collaborations; colleagues who, year in and year out, are making impressive advances in the earth sciences."
Frohlich also served as UTIG associate director for the past 20 years.
"I am especially grateful that Cliff provided me with his unvarnished perspective on issues regarding the institute, which resulted in a more informed process in my decision making," Quinn said.
In retirement, Frohlich plans on continuing his research at UTIG, continuing his work as a visiting scientist at Southern Methodist University, spending more time with family, and working on hobbies, including woodworking, cycling, and writing.
Filed Under: Geophysics Blog, homepage-news, homepage-slider, Media Releases, News, Stories

redpajama_set_name: RedPajamaCommonCrawl


South End Media: Concord, NH > Communicate. Now.
Since the beginning of 2001, South End Media has been telling our clients' stories. We think businesses live and breathe; they're as alive as their people and have a story to tell. Our job is to help tell that story and sell their product or service the best we can using every tool in the media world available to us today. And there's a lot available to us.
That's what makes it so much fun doing what we do. This is the age of the Next Big Idea and we always like trying something new. There's a lot of new to try too. However, we still like many of the old school ways of communicating a clients' message and we happen to think we're really good at that.
South End Media was founded by Kurt Muhlfelder near the end of 2000 after a successful 17-year radio career. Previous to starting South End Media, Kurt was Creative Services Director for Northeast Communications in Franklin, NH. He also hosted Mix 94.1FM's mid-day and afternoon shows.
South End Media was a 2006 NH Magazine Excellence in Business nominee in Marketing and Media.
Let us help tell your business's story. We can effectively communicate your message to stimulate customers to act. Ask about our successes.
Copyright © 2001-2018 South End Media, LLC. All rights reserved. Site designed by iron blender studios. Contact us!


text:
<?php
/**
 *
 * @author k.vagin
 */

require_once __DIR__ . '/../vendor/active_record/ActiveRecord.php';

require_once __DIR__ . '/Storage.php';
require_once __DIR__ . '/LogFileParser.php';

require_once __DIR__ . '/../models/LogDumps.php';
require_once __DIR__ . '/../models/FunctionsCall.php';
require_once __DIR__ . '/../models/ProjectsFiles.php';
require_once __DIR__ . '/../models/VarsDump.php';
require_once __DIR__ . '/../models/VarsParsed.php';

class IndexLogFile {

	protected $dump_file_id = 0;
	protected $parsed_file = array();
	public $on_index_progress = false;

	public function __construct()
	{
		Storage::get();
	}

	public function index($full_path)
	{
		$exist = \Models\LogDumps::find(array(
			'full_path' => $full_path
		));

		if (!empty($exist)) {
			return true;
		}

		$this->add_file($full_path);
		$log = new LogFileParser($full_path);
		$this->parsed_file = $log->get_functions_call();
		$this->index_functions_call();
	}

	protected function add_file($full_path)
	{
		$log = new \Models\LogDumps();
		$log->full_path = $full_path;
		$log->save();

		$this->dump_file_id = $log->id_dump;
	}

	protected function index_functions_call()
	{
		$function = null;
		foreach ($this->parsed_file as $i => $calle) {
			$function = \Models\FunctionsCall::create(array(
				'timestamp' 	=> $calle['time'],
				'name'			=> $calle['name'],
				'line'			=> $calle['line'],
				'file'			=> \Models\ProjectsFiles::add($calle['file']),
				'dump'			=> $this->dump_file_id
			), false);

			$this->add_function_args($function->id_function, $calle['args']);

			if ($this->on_index_progress) {
				call_user_func_array($this->on_index_progress, array($i, count($this->parsed_file)));
			}
		}

		if ($this->on_index_progress) {
			call_user_func_array($this->on_index_progress, array(count($this->parsed_file), count($this->parsed_file)));
		}
	}

	protected function add_function_args($function_id, array $args_source)
	{
		foreach ($args_source as $i => $arg) {
			$var = \Models\VarsDump::create(array(
				'function' 	=> $function_id,
				'type'		=> "arg_" .($i+1),
				'source'	=> $arg
			), false);

			$var_id = $var->var_id;

			$parsed = LogFileParser::parse_serialized_zval($arg);
			if (is_scalar($parsed)) {
				\Models\VarsParsed::create(array(
					'var' => $var_id,
					'assoc_value' => $parsed
				), false);
			}
			else {
				foreach ($parsed as $key => $value) {
					\Models\VarsParsed::create(array(
						'var' => $var_id,
						'assoc_value' => $value,
						'assoc_key' => $key
					), false);
				}
			}
		}
	}
}

redpajama_set_name: RedPajamaGithub


18th century. 2-storey, 5-bay, rectangular-plan house in regular terrace to SW. Harl with painted margins.
NW (THE SQUARE) ELEVATION: symmetrical. Boarded timber door to centre with windows in flanking bays and regular fenestration to 1st floor with blank centre bay.
SE ELEVATION: asymmetrical elevation with variety of elements including advanced bay to left of centre with door (entrance to No 6) on return to right.
4-pane glazing in timber sash and case windows. Grey slates and Angus stone slates. Coped ashlar and brick stacks with cans.


text:
Q: Why does the Functor class in Haskell not include a function on objects? Is `pure` that function? In Category theory, it is very conspicuous that a definition of a functor should include two functions: on objects and on arrows. However, the usual Haskell Prelude.Functor does not make any mention of the former. Why is that? Would pure be that function on objects?
Specifically, for data F a to be an endofunctor in Hask, there should be given:
-- A function on objects:
omap ::     a     ->      F a

-- A function on arrows:
fmap :: (a -> a') -> (F a -> F a')

For a "small" type function, such as Maybe, it seems safe to name a suitable data constructor, such as Just, as the function on objects. For a type function with more variety — possibly infinite, like [⋅], — I am not so sure. Does it make difference whether I choose \x -> [ ] (a trivial functor), \x -> [x], \x -> [x, x], ..., or \x -> [x, x..]? Or would these be equally rightful, though distinct, instantiations of the "classical" categorial functor?
If so, would it be correct to propose that Prelude.Functor actually defines a whole family of functors at once?

The suggestion, offered in the answers to a question nearby, that the type constructor itself is the function on objects, I am not prepared to accept. We do require that a Functor instance gives lawful evidence to the existence of fmap. In the same way, we should be requiring that a term level function omap on objects is given, should we not? There must be some confusion about the type / term distinction in Hask here, either on my side alone, or in the common knowledge spread around the Haskell community.
To be specific, I may suggest that there are actually two distinct categories we may be talking about:

*

*Hask — a category which objects are the sets of term level values of particular Haskell types, and arrows are the sets of term level functions.

*Type — a category which objects are sets of types of a particular kind, and arrows are sets of type level functions, that is, types of a kind that has an arrow at the top level of its syntax tree.

Then, fmap is an arrow function for an endofunctor on Hask, while a type constructor is an arrow function for an endofunctor on Type, as it operates on sets of types, rather than values.
P.S. As @pigworker kindly explained in comments, my understanding of Hask is all wrong. However, I wonder if any of the above applies if a different category Term is considered, in which an object is a set of values (conceivably, all possible values of some chosen type), and an arrow is a (monomorphic) function between such sets. Since a hom set would also be an object, both fmap and omap (polymorphic functions — actually, bundles of arrows) would operate on terms. At the same time, my idea is that a subcategory of Term (in which only those sets of values that correspond to actual Haskell types are considered) may be made isomorphic to Hask with an appropriately chosen functor that takes class methods, newtypes and such into account. Are there some obvious problems with a construction along these lines?

Concerning the supposed duplicate question, the answers given there do not satisfy my curiosity, for the reasons outlined above. If Hask is not the appropriate category for my inquiry, than perhaps some other choice of category could be considered. So, I think an answer should necessarily include an argument as to why a certain category is chosen to work with, in the first place.

redpajama_set_name: RedPajamaStackExchange


The re-running of the Group 1 $2 million Schweppes Sydney Cup will take place at Royal Randwick this Saturday, 22 April after the original running on 8 April was declared a no-race.
Patrons who purchased a 'Golden Carnival Pass' will receive complimentary entry to the course this weekend by presenting it at the gate on the day.
A field of 14 runners have accepted into the headline race of the day, with the winner to join turf stars Tie The Knot (1998, 1999), Kingston Town (1980) and Makybe Diva (2004) on the honour roll.
Glen Boss will fly in from Singapore to partner with $3.20 TAB Fixed Odds favourite Big Duke. The Darren Weir-trained five year old has had an impressive campaign of five wins and two placings from seven starts including his last start win in the Chairman's Handicap on 1 April.
Punters can look to the Chairman's Handicap as a strong form indicator for the Schweppes Sydney Cup, with 13 of the last 25 winners coming through this event.
International runners from the Charlie Appleby stable will also take their place in the race. Penglai Pavilion ($5.50 TAB Fixed Odds) and stablemate Polarisation ($6.00 TAB Fixed Odds) have good European form and have both performed well over the distance.
Experienced jockeys Kerrin McEvoy (Penglai Pavilion) and Corey Brown (Polarisation) will take the ride on the pair. Both jockeys have tasted success in this race on previous occasions.
Lasqueti Spirit, trained by Lee Curtis, is the other contender in single figures in the betting market at $9.50 TAB Fixed Odds. The three-year-old filly was not entered in the original race and instead ran third place in the James Boags Premium Australian Oaks.
Adult general admission tickets are available for $15.00 at the gates.
Gates Open at 10.30am with the first race at 11.25am.
Free car parking is available at the racecourse and buses will run from 11am between Eddy Avenue at Central Station and Royal Randwick racecourse.


In a global, digital age, art, like everything else, risks turning into an unmoored commodity in virtual space. That's why shows like The Bull Meets the Bayou are so refreshing, reasserting that art emanates from real communities in certain times and places and then strengthening those communities by forging bonds between them. The exhibit, curated by local artist Jaclyn Bowie, presents the works of Durhamites alongside New Orleans's Level Artist Collective. Featuring collaborative installations, videos, sculptures, paintings, drawings, and a library of artist books and zines, the exhibit has a variety of events before its June 2 closure. The New Orleans artists will be present on Third Friday as well as for this Sunday-night artist talk, which also features a Durham Cinematheque film screening, music by Tescon Pol, and puppetry by Jeghetto. Future events include a May 29 panel discussion on artists supporting artists and a June 2 closing reception.


Take better photos, find your next phone and ogle at new watches in Stuff India's August issue – out now!
Available in shops and on your tablet right this very second. What're you waiting for?!
Stuff December issue out now!
April issue of Stuff out now!
The new issue of the planet's finest gadget magazine is on sale now – no joke!


text:
The Gorilla Guide to Serverless on Kubernetes, Chapter 2: Serverless's Big Benefits
Computing doesn't have to cost a fortune. In fact, with the pay-per-use model that serverless offers, it no longer should.
Vamsi Chemitiganti
Feb. 20, 19 · Analysis
The biggest advantage of serverless computing is the clear separation between the developer and the operational aspects of putting code into production. This simplified model of "who does what" in the layer cake of the infrastructure underneath the code lets the operational folks standardize their layers (e.g., container orchestration and container images), while the developers are free to develop and run code without any hassle.
Because of the small and highly standardized surface area between development and operations, operational folks have greater control over what's running in production. Thus, they can respond more quickly to updates and upgrades, security patches, or changing requirements.
The use of container technologies like Docker and Kubernetes has increased developer velocity and significantly decreased the complexity of building, deploying, and managing the supporting infrastructure as compared to VM-based approaches. But despite these advances, there is still a lot of relative friction from the developer standpoint in terms of going through required steps that add no direct value to their workflow, like building a container for every new code release or managing auto-scaling, monitoring, and logging. Even with a perfect pipeline, these jobs become naturally inert, requiring additional work to change them for a new release, software version upgrade, or security patch.
Although the default operating model is one in which each group stays within their set boundaries, there are possibilities to cross those lines. A typical example is when a developer needs additional package dependencies, like libraries, in the execution environment. In a container-based microservices approach, this would have been the developer's problem; in the serverless approach, it's part of the solution, abstracted away from the developer. The containers that execute the functions are short-lived, automatically created, and destroyed by the FaaS platform based on runtime need.
This leads to a shorter pipeline and fewer objects (like containers) that need to be changed with a new code release, making deployments simpler and quicker. Since there's no need to completely rebuild the underlying containers, as most new code releases are loaded dynamically into existing containers, deployment time is significantly shortened.
In addition, compiling, packaging, and deployment are simple compared to container and VM-based approaches, which usually force an admin to redeploy the entire container or VM. FaaS only requires a dev to upload a ZIP file of new code; and even that can be automated, using source version control systems like Git.
There's no configuration management tooling, rolling restart scripts, or redeployment of containers with the new version of the code. Time isn't the only thing that's saved, either. Because of the fine-grained level of execution, FaaS services are metered and billed per millisecond of runtime or per number of requests (i.e., triggers). Idle functions aren't billed.
In other words, you don't pay for anything but code execution. Gone are the days of investing in data center space, hardware, and expensive software licenses, or long and complex projects to set up a cloud management or container orchestration platform.
A Closer Look at Costs
The industry pricing model for serverless function execution is the same across the board for major cloud providers. Pricing varies with the amount of memory you allocate to your function. This is a pricing overview across Amazon, Microsoft, and Google from October 2018:
Requests: $0.20 - $0.40 per million requests
Compute: $0.008 - $0.06 per hour at 1 GiB of RAM *
Data ingress: $0.05 - $0.12 per GB
API Gateway: $3.00 - $3.50 per million requests
These pricing models are a direct motivation to optimize a function for performance: paying for execution time directly correlates cost with performance. Any increase in performance will not only make your customers happy, but also reduce the operational cost. This is a radically different pricing approach than we've seen with VMs and containers: paying for only what you actually use. When a function is idle, you're not paying at all, which negates the need to estimate resource usage beforehand; scaling from zero to peak is done dynamically and flexibly.
This also means that you're not stuck with the amortization of investments or long-term contracts, but free to change consumption monthly or even daily. This allows teams to change direction or try something new on an extremely small scale, with similarly small operational costs associated with experimentation. This fosters a culture of trying new things, taking small steps, and learning from mistakes early, which are basic tenets of any agile organization.
Serverless Is a Great Option
As you can see, serverless is a great option for dynamic applications. The provider automatically scales functions horizontally based on the number of incoming requests, which is great for handling high traffic peaks.
On the next posts, we'll dive deeper into the Serverless landscape - on the public clouds and on-prem - and discuss the key challenges with Serverless and use cases for real-world applications.
Can't Wait?
To learn more about Serverless, download the Gorilla Guide: Serverless on Kubernetes.
Kubernetes Docker (software) Data (computing)
Published at DZone with permission of Vamsi Chemitiganti, DZone MVB. See the original article here.
(Deep) Cloning Objects in JavaScript
How to Cut the Release Inspection Time From 4 Days to 4 Hours
PostgreSQL: Bulk Loading Data With Node.js and Sequelize
NEXT.JS 13: Be Dynamic Without Limits


Currently Biotest markets 14 different products in three therapeutic areas in clinical immunology, haematology and intensive care medicine, further are in the pipeline. These are special products that are prescribed for various indications.
All Biotest products are biological drugs that are either obtained directly from human plasma or manufactured using biologic methods. Biotest's drugs help patients with severe and often life-threatening diseases of the blood and the immune system, and are used for treatment and prophylaxis as well as in acute care settings.
Our goal is to also reach patients who could not be treated in the past. We develop new products specifically for the treatment or preventive management of diseases for which there is no current effective treatment, or where existing treatments are associated with substantial side effects.
The highest possible level of safety and quality from blood plasma donation to patient treatment is absolutely crucial. We work constantly to further improve our already strict standards. Our employees comprehensive expertise plays a key role in ensuring success in their approach.


We are developing specific categories which will offer a 40% discount from the listed price for bookstores for French, Spanish, German and Italian products. Other products will qualify for a short discount. Coming soon!
Call Cindy Tracy – 800-729-3703 – or email at polyglot@wor.com for more details now and to establish a wholesale account.


SC Delta Chapter was the 35th chapter of SAE, founded on February 28, 1882. The Chapter was closed by state law in July 1897, and rechartered on October 3, 1927. There are 1,768 initiates. The Original Founder in 1883 was James G Glass of Tennessee Omega.
The Capers family was prominent in SAE. Above is Bishop Ellison Capers and his 5 sons in 1890 - seated, left to right is Frank, Bishop and John. Standing, left to right is Walter, William and Ellison.
While our official charter date is Feb. 28, 1882, in 1856 a student at South Carolina College by the name of Talbot Adams was initiated. He was sent a charter to start a chapter but his efforts failed. He is listed as a member of Alabama Mu.
This means that had he been successful SC Delta would have been one of the first five chapters of SAE.
Also, SC Delta members were responsible for founding NC Theta at Davidson College, SC Lambda at SC Military Academy (The Citadel), and SC Mu at Erskine College (closed).
*Thanks to Nick Gregory, SC Beta Chapter, for the information.


5 Things to Include on Your Yard Cleanup List - GNH Lumber Co. 5 Things to Include on Your Yard Cleanup List - GNH Lumber Co.
To help your plants and shrubs get ready for new growth, clean up any debris left over from the winter months. Make sure you rake out fallen leaves and dead foliage, since this can smother your plants and help foster disease. Don't forget to cut down any mums or other fall-season plants that you haven't had a chance to cut down due to the snow and ice.
Toss your yard waste into a wheelbarrow for easy disposal and cleanup (ideally, this is done after the threat of frost has passed). Next, you'll want to remove existing mulch to set the stage for a new layer after spring planting. You'll also want to push heaved plants back into flower beds and borders. To encourage new growth, you can also spread a pelletized fertilizer tailored towards your existing plantings onto the soil's surface. Spring rains will then carry these nutrients to the root systems.
The first step to a gorgeous lawn all spring and summer long is a good feeding now. Fertilizing your lawn with Scotts STEP-1 Crabgrass Preventer Plus Lawn Food can improve a lawn's ability to absorb water & nutrients. Apply to your lawn for a fast green-up after winter. It also controls crabgrass for up to 4 months!
Apply in early spring, anytime between February and April when temperatures are still cool (under 80F). Step-1 prevents crabgrass before it can germinate. It also feeds to green up a winter-weary lawn, too. Learn more.
In mild climates that experience little to no snowfall, winter lawn damage is usually minimal. However, that's not the case for us here in the Catskill Region. As a rule, it's best to avoid walking on soggy areas of the lawn until they are dry so the grass doesn't become damaged. But there is usually some damage from snow removal, ice prevention, shoveling and the mud of thawing.
Remove any turf damaged by salt, plows, or disease to prepare for the seeding that should follow in a few weeks. Resume mowing once the grass grows to 4 to 5 inches tall and only trim it back to 3 to 4 inches. But don't start mowing too early! Mowing too early in spring, or trimming your lawn too low, results in weak grass that is more prone to summer damage during dry periods.
The early spring is a perfect time to neaten up your hardscape surfaces, too. This includes both walkways and patios.
Make sure to rake escaped gravel back into your walkways and patios, and purchase more gravel to spread if needed. Refill joints between flagstones by sweeping in new sand or stone dust; water with a hose to set it, then repeat. Use a pressure washer with a low-pressure tip to remove any algae spots or leaf stains.
Remove badly rotted or damaged pickets or boards in your fencing, then scrub the wood clean by mixing water, bleach, and liquid soap. Once you've fully cleaned it, allow it time to dry before continuing. You can patch rotted sections with wood epoxy, and subsequently install new wood as needed.
Check to make sure that you don't have any wobbly fence posts that need to be replaced. You should also scrape off old paint, sand the wood, and apply a new finish coat. Once temperatures go above 50° F, brush on a new coat of paint or stain.
Many non-flowering shrubs, trees and woody plants respond well to spring pruning, which cleans up their appearance. Prune back to live stems if damaged, and shape hedges with hand pruners rather than electric shears. Electric shears have the tendency to cause a thick outer layer of growth, which prevents sunlight and air from reaching the shrub's center.


text:
Respected Lakota elder, Birgil Louie Kills Straight, dies at 78
Wayne Mackanear Brown, Principal Chief of the Meherrin Nation, dies at age 70
What is Native American art? Many tribes, each with unique aesthetics, are spread out across what is now known as…
www.vogue.com
9 Great Podcasts Hosted By Indigenous Women: As a Mohawk woman in an urban setting, hearing their voices through my…
www.flare.com
I"m pretty excited about this movie "Slash Back", about a group of indigenous 14 year old girls…
www.cbc.ca
Alex "Mike" Pinkham Jr., 94, expressed gratitude for the prayers, songs and dances performed in his…
www.adn.com
U.S. Interior Secretary David Bernhardt has agreed to put off oil and gas leasing for a year on land…
apnews.com
CBC reports that the film Atanarjuat: The Fast Runner by Nunavut director Zacharias Kunuk is the…
How about a food tour of the Arctic? Nunatsiaq News reports that Inuit Tapiriit Kanatami will host…
nunatsiaq.com
Windspeaker: Students at Allison Bernard Memorial High School in Eskasoni, Cape Breton recorded Paul…
windspeaker.com
Explaining the sports in this weekend's Native Youth Olympics via Cook Inlet Tribal Council. …
citci.org
Reclaiming stories. "To be around family. Indigenous. All of us healing and learning and flourishing…
i-d.vice.com


text:
How Bunion Sleeve Works
Ultra-thin Bunion Sleeve® is draped so that the material starts out twisted. This creates tension that causes inversion of the big toe and, at the same time, brings the first metatarsal bone to its pre-deformity position.
How to treat bunions is a much discussed topic, as many remedies fail to correct the bunion. Bunion Sleeve® makes very slight adjustments to the foot, bringing the big toe closer to the open position. By encircling the foot from the toe and holding it tight, it helps the sole form an arch. The arch is another important way to bring the big toe into an open position. The bunion corrector twists the big toe back in the direction of inversion and at the same time corrects the direction of the first metatarsal bone.
"The pain and deformity of hallux comes from the condition of hallux valgus and the first MTP joint valgus. Friction and pressure from shoes can cause the pain because the first MTP joint turns inward while walking with valgus foot (bow-legs). Hallux has an important role in walking, and the first MTP joint turns inward when the body weight shifts from backward to forward. At that moment, hallux turns outward by the effect from the movement of the first MTP joint. Bunion Sleeve® is designed to apply inward pressure on hallux and support the first MTP joint in the right direction." Prod. Dr. Terukazu Uchida
Bunion Sleeve® improves the degree of big toe positioning by gently easing the big toe back to its more natural position...
And it can improve foot arch height which leads to better posture and comfort...


text:
Bonifatius IX, född Pietro Tomacelli 1350 i Neapel, Italien, död 1 oktober 1404 i Rom, var påve från 2 november 1389 till sin död. Han kanoniserade den heliga Birgitta 1391.

Biografi
Pietro Tomacelli tillhörde en uradlig släkt från Neapel, men familjen var fattig. Han utsågs till kardinaldiakon av San Giorgio in Velabro 1381 och till kardinalpräst av Sant'Anastasia 1385. När han valdes till påve den 2 november 1389 saknade han teologisk skolning och erfarenhet från kurian, men var beundrad för sin fasta karaktär och milda framtoning.

Bonifatius IX satte som sin huvuduppgift att återställa påvedömets makt i Rom och Kyrkostaten. Två gånger fördriven från Rom, lyckades han till slut till förmån för kurians maktställning avskaffa stadens gamla republikanska friheter. Han lyckades även återställa påvedömets gamla anseende i länderna som lydde under honom (tysk-romerska riket, England, Ungern, Polen, och större delen av Italien), och genom hans anslutning till Ladislaus av Durazzo bands Neapel vid den romerske påvens lydnad.

Bonifatius IX hoppades med den världsliga maktens bistånd kunna göra slut på schismen och satte först sina förhoppningar till den tysk-romerske kungen Wencel IV, men sökte sedan genom beskickningar vinna kungarna av Frankrike och Kastilien. När motpåven Clemens VII avled 1394, verkade det finnas en utsikt att bilägga schismen, med den utsikten försvann genom valet av en ny motpåve, Benedictus XIII; därigenom uppgav Bonifatius IX sannolikt varje allvarlig förhoppning att få se stridens slut.

Hans italienska politik krävde ofantliga penningsummor. Dietrich av Niem uppger att han schackrande med ämbeten samt företog indulgenser och dispensationer och sysslade utpressningar i övrigt. De flesta katoliker håller dessa uppgifter för vinklade och orättvisa. Catholic encyclopedia vidhåller i stället att Bonifatius inte sökte något för egen vinning, och att han dog fattig. Den nepotism han har kritiserats för, har ursäktats med de halft anarkistiska förhållandena han verkade under, och med att regeringar på den tiden var beroende av sådant personligt stöd, vilket också kostade belöningar till de lojala.

Referenser
 Artikeln bygger delvis på översatt material från Catholic Encyclopedia (1913)

Externa länkar

Påvar
Personer i Kyrkostaten under 1300-talet
Personer i Kyrkostaten under 1400-talet
Födda 1350
Avlidna 1404
Män
Ugglan
Personer från Neapel

redpajama_set_name: RedPajamaWikipedia


text:
Public Enemies (2009)
Crime, Drama, History | 140 Min
Actors: Christian Bale, Johnny Depp, Giovanni Ribisi, Billy Crudup, Marion Cotillard, Emilie de Ravin, Channing Tatum, Leelee Sobieski, Domenick Lombardozzi, Stephen Lang, Carey Mulligan
Release Date: Jul 01, 2009
Genres: Crime, Drama, History
Company:Universal Pictures, Relativity Media, Forward Pass, Misher Films, Tribeca Productions, Appian Way, Dentsu
Watch Public Enemies (2009) : Full Movie Online Free Depression-era bank robber John Dillinger's charm and audacity endear him to much of America's downtrodden public, but he's also a thorn in the side of J. Edgar Hoover and the fledgling FBI. Desperate to capture the elusive outlaw, Hoover makes Dillinger his first Public Enemy Number One and assigns his top agent, Melvin Purvis, the task of bringing him in dead or alive.
Public Enemies Full Movie Streaming Online
Released Date: Jul 01, 2009


Together with 21 other universities, companies and organisations across Europe, the University of Copenhagen (UCPH) will be doing research into deadly liver diseases in order to find better treatment options. The project is supported by the EU Horizon 2020 programme with just over DKK 112 million.
The leaders of the 10 work packages. (Front row, left to right) Dr. Minneke Coenraad, Dr. Maria Papp, Prof. Jonel Trebicka, Dr. Itziar De Lecuona, Dr. Sabine Klein, Dr. Christophe Junot. (Back row, left to right) Prof. Matthias Mann, Prof. Aleksander Krag, Prof. Peer Bork, Associate Prof. Manimozhiyan Arumugam. Photo: MICROB-PREDICT.
A new, large EU research project – with participation by the Faculty of Health and Medical Sciences, UCPH – will conduct research into the microbiome and liver diseases such as cirrhosis of the liver which are the cause of more than one million deaths annually. EUR 15 million – equivalent to approximately DKK 112.5 million – have been allocated for the project called MICROB-PREDICT.
The goal is to develop better methods for diagnosing and treating decompensated cirrhosis and acute-on-chronic liver failure (ACLF). Manimozhiyan Arumugam, Associate Professor at the Novo Nordisk Foundation Center for Basic Metabolic Research, will be leading the work package, i.e. the part of the project which is called 'Data management, integration and systems modelling', from UCPH.
Together with his colleagues, Manimozhiyan Arumugam will integrate and analyse data from blood, urine and biopsies and from the microbiome, including bacteria, viruses and fungi. Among other things, they will investigate and model the role of the microbiome in patients receiving two different kinds of treatments.
'We will use systems modelling to find biomarkers for decompensated cirrhosis and ACLF. The biomarkers that we find and validate will be passed on to other partners in the project who will then develop them into a so-called diagnostic kit. If the project succeeds in developing a kit for early diagnosis of the liver diseases, it will have a major impact within the healthcare system,' says Manimozhiyan Arumugam, who is also a member of the project's steering committee.
The duration of the research project will be just over six years. It is an extensive collaboration between 22 different European partners such as universities, hospitals, research organisations and companies.
The work package controlled by UCPH will be awarded just over EUR 1.2 million, corresponding to DKK 9.3 million, out of the total grant. There will be a total of 10 individual work packages. In addition to UCPH, there will be one more participant from Denmark, i.e. Odense University Hospital (OUH) which will lead another work package.
The project is supported by the EU Horizon 2020 programme. Click here for more information about MICROB-PREDICT.


text:
Q: How to integrate linkedin in android i am developing an application which post a message to the linkedin wall . Please, can any one give some sample code.
Thanks in advance

A: I have created a sample application for linkedin connectivity.You can download the source code the from the following link
https://github.com/srivastavavivek1987/LinkedIn-Connection-in-Android
In this sample, you get access_token for the user.
So further use LinkedIn REST API with access_token to post on wall.

A: The site already offers Android application, consider that!
Otherwise here's some official docs: http://code.google.com/p/linkedin-j/
and http://developer.linkedin.com/, mostly http://developer.linkedin.com/documents/libraries-and-tools
P.S. The power of Google!

A: You could try the LinkedIn API wrapper for Java.
The OAuth tokens must be your own - get them here.


Iggy Pop has spoken out about shunning major labels and releasing his latest album, Apres, online. Launching the record in Paris on Wednesday night [May 9], Iggy Pop – real name James Osterberg – explained why he released the record direct to fans rather than putting it out via a major label. Speaking about labels, he said: "What has a record company ever done for me but humiliate and torment and drag me down?"
Iggy Pop has spoken out about shunning major labels and releasing his latest album, Apres, online.
The album is Pop's second French influenced album, following 2009's Preliminaires.
Apres is out now and contains 10 tracks in all. Among them are covers of Frank Sinatra's "Only The Lonely", The Beatles' "Michelle", Edith Piaf's "La Vie En Rose", Serge Gainsbourg's "La Javanaise" and Yoko Ono's "I'm Going Away Smiling".


I learned a great deal being away at college, among which is my appreciation for the respect our community has for our Island's ecosystem. At Bennington College in Vermont, I am taking a course on plastic pollution, and have become aware of the damage that plastic pollution causes in both our environment and potentially our health.
I am aware that Martha's Vineyard has taken action to reduce plastic pollution at a level that many communities have yet to achieve. I am so proud to be a part of a coastal community that has reduced its use of single-use plastic bags, and continues to make its transition away from plastic straws. I hope efforts to tackle this problem will continue.
Other single-use plastics are affecting our community. Plastic bottles and plastic bottle caps are in the top 10 most common litter found in the ocean. On our local Vineyard roads and beaches, I often see plastic alcohol nips. They are small pieces of plastic, never fully biodegrade, but break up into smaller and smaller pieces. They are usually deposited at the bottom of the ocean or get ingested by marine animals. Because we are surrounded by water it is also vital to reduce our use of polystyrene packaging, the lightweight quality of which allows it to float, making it easy for it to end up in the ocean and become detrimental to marine animals and the marine environment. I hope our community will continue to use plastic alternatives and be aware of the impacts of small single-use items like nip bottles and single-use creamers. I would love to see a plastic-free Island in our future.
Couldn't agree with you more Ruby!
How about, more charging stations for electric vehicles? With affordable electric vehicles having a range of about 200 miles between charges, they are perfect for the island. If we have adequate charging stations around the island, it will encourage people to visit using their electric cars instead of gasoline powered vehicles.
Or, How about someone making refills for the underarm deodorant sticks?
Two thirds of electricity in this country comes from coal so honestly shouldn't we refer to these vehicles as coal cars?
63% our energy comes from fossil fuel, that is natural gas, coal, and petroleum. Just coal comes in at just a bit under 30%.
Are you living in the 1960's ?
Before I get one of those fancy coal-powered cars, I'm going to need another kid or two to shovel bituminous from the U-Haul trailer.
Or pretty much anything that sells in a disposable container.
Also, stop reducing package sizes as a way of making it appear the shopper is paying the same price. Smaller packages means ratio of package to product increases and so does waste. Make the packages bigger.
Is eliminating plastic the goal or eliminating littering? Plastic that is disposed of properly on our island is either turned into electricity or put into a lined landfill essentially mummifying it. In neither case would it enter the oceans. I suppose a plastic bag or a nip bottle could find it's way to the ocean but that's not the main problem. Five Asian countries , most notably China, use the ocean as their dumping grounds accounting for 80% of the plastics in the ocean. Eliminating plastic straws ( does anyone older than 7 actually use them) is a feel good idea but will have no effect on ocean pollution. Rather than outlaw products that are essentially harmless to the environment in the developed world perhaps a boycott off all commercial goods from these polluting countries would be more effective.
So making America great means competing with China to make the planet unlivable?
Not sure you understand my premise. These polluting countries cannot exist without our trade. Put pressure on them to reduce their pollution and we all win.
"These polluting countries" is a such a dumb dodge.. today, the USA leads the world in consumption per capita, as well as being way out in front of the rest of the world in historic consumption. We should challenge ourselves to reduce our own behaviors, It is time to all of us to pick up the courageous american mantle of sacrifice for our future that so many of our forefathers and past generations have shouldered for our lives, and decide now, it is the time, to save the planet for our descendants. Ask yourself, what kind of ancestor do you want to be. Otherwise I would suggest getting out of the way, so serious folks, and scientists can work to right the ship before it is too late.
BS good luck with that from trump– Did you forget already that he pulled the U.S out of the world wide agreement about reducing pollution ?
The republican regime has thus far made every effort to reduce regulations and allow more polluting across all categories.
As for straws — 500 million plastic straws are used in America every day. That's a lot of straws per day for people under 7.
I see no connection between your two comments. Perhaps a rewrite to clarify?
Climate hectoring was on the verge of being a mass movement in 2000 but then all the climate models became crazy incorrect. Al Gore told us we have ten years to save the planet back in 2006, meanwhile the elites lecture us while flying around the world attending climate conferences. How about starting by cleaning up MV first.
The prediction was 10 years to hold or reverse global warming to keep from going past the calculated tipping point for CO2 and warming, not some apocalyptic end of the world like movies give us.
But the suggestion for Islanders to start by cleaning up MV is excellent.
or Except that's when we hit the alleged tipping point for CO2 and global warming.
In 2006 Gore said "unless drastic measures to reduce greenhouse gases are taken within the next 10 years, the world will reach a point of no return". That is pretty clear to me. We cant fix it, there is no return. We are done. Seems apocalyptic to me. The elites who fly around in their Gulfstreams attending climate conferences simply want a transfer of wealth from one class to a lower class as long as they dont have to change their behavior.
So we're beyond the point of no return. That makes you happy? Pleased? Wishing for another chance, perish the thought?


Not Just Dot-Com, But Dot-Yournamehere The organization that controls website names says it will allow almost any word to be used in Internet address suffixes. It would be most attractive to companies that want new ways to exploit their investment in a brand. The fee is $185,000.
Web domain czars expect an explosion in Internet address suffixes.
The organization that oversees Web addresses, the Internet Corporation for Assigned Names and Numbers, announced Monday in Singapore that it will allow nearly any word in any language to be an Internet address suffix.
There are currently 23 possible endings for a Web address — including the familiar dot-com, dot-gov, dot-edu and, of course, dot-org.
ICANN's new ruling, which may shake that up, is "the most significant change to the Internet, really, since it was created," according to Peter Dengate Thrush, chairman of ICANN's board of directors.
"Once this is set up," he says,"the theory is, or the hope is, this is going to lead to innovation in ways we can't imagine."
The way it works is that organizations will pay $185,000 to apply for what is called a top-level domain name, as dot-com and dot-org are used now. So, in about a year-and-a-half, you might see dot-Starbucks or dot-Nike.
Dengate-Thrush says the fee is relatively modest because "It's not the price of a domain name. This is to create a registry that ... can sell and manage millions and even hundreds of millions of domain names. You're talking a reasonably serious business investment."
If I had $185,000, I'd spend it on something else.
But Esther Dyson, the former and founding chair of ICANN's board, does not see the value in this new naming system.
"I think it's kind of a useless market," she says, "and if I had $185,000, I'd spend it on something else."
Dyson says a new naming system is unnecessary, especially at this price.
"Nobody's creating new value here," Dyson says,"They're just selling words ... The trademark system is good enough."
Jeff Ernst, principal analyst at Forrester Research and an expert in marketing strategy, says the biggest brands are already looking to invest in new dot-names.
"Just about any big-brand company wants to have as much control over their Web presence as they can, and this gives them a way to do it without yielding to the dot-com primary," Ernst says.
What that means is that big brands see big opportunities. He gives an example of what a company like Canon could do. It could acquire dot-Canon, and even the generic dot-camera, and could create photo-sharing Web sites grouped within those domains.
"So not only is Canon now going to be dot-Canon," he says, "but Canon can now issue secondary domains to every one of its camera owners, and what they might very well do is embed a chip in their cameras that link that camera owner to their ID so that as they're taking photos they could just be automatically uploading photos to a photo-sharing site. I mean, that's just one possibility."
But Dyson says, "Canon.com works fine, as far as I'm concerned."
She says this is an expensive solution for the wrong problem.
"The real issue isn't even dot-com versus dot-camera in the long run," she says. "It's let's use Google."
Dengate-Thrush, the ICANN board's current chairman, insists what's best for consumers is choice. And, ultimately, there's no better way to see what consumers really want then by putting it up for sale.


text:
Муравський Микола Антонович (19 грудня 1955, с. Карпівці Житомирської області) — український художник, член Національної спілки художників України з 1988 року.

Закінчив Харківський художньо-промисловий інститут у 1984 р. Педагогами з фаху були В. Сизиков, С. Бесєдін.

Нагороджений Орденом Святого Станіслава IV ступеня з врученням Офіцерського Хреста 31 березня 2006 року.

Указом президента від 19 жовтня 2009 року присвоєно звання Заслужений художник України.

Основні твори
 «Танець» (1997)
 «Зелений інжир» (1997)
 «Автопортрет» (1998)
 «Портрет з нарцисами» (1998)
 «Перехід» (2000).

Посилання
 Сторінка Національної спілки художників України
 Офіційна сторінка художника

Народились 1955
Уродженці Чуднівського району
Українські художники
Члени Національної спілки художників України


Declan was only 14 when his parents passed. His brothers kept him protected and took care of him ensuring he'd continue in school. He's the most educated of the Dolan boys and excelled in construction. He was on track to be an engineer when Jimmy decided they should move to New York. Upon their arrival the young "Decks" charismatically talked his way into all kinds of favor, even working to deliver newspapers for a while. After the Dolans joined their cousin as a part of his work crew, Declan was quickly recognized by Niall as a gifted young lad who had the potential to manage others, and being single, he wouldn't be distracted by the burdens of a family. Declan has the optimism of Seamus with the practical sense of Jimmy. He had high hopes for the new world.
Shannon O'Brien came over with her twin brother Ennis. After they lost their parents to sickness in Ireland they heard that America would give them a new start. Children of simple farmers from the countryside, they were lowly educated and had no skills. Shannon found work for Niall as a street sweeper and was able to collect a minimal amount of funds to support herself and help her brother. A pretty girl, she often caught the attention of men, but her brother's watchful eye and street savvy ways kept her from entering situations where she had to compromise herself. Recently she's been given lots of attention from Declan, who has told his brothers that he's been hit with love at first sight. Shannon isn't sure she can trust him. She's also unsure as to whether or not it's even possible to have a family in the new world without the children and parents suffering terribly.


text:
Gordon Banks: Top 10 Must-Know Facts About Soccer Player
Gordon Banks (Soccer Player) was born on the 30th of December, 1937. He was born in 1930s, in Silent Generation. His birth sign is Capricorn and his life path number is 8. Gordon's birth flower is Narcissus and birthstone is Tanzanite, Turquoise, Zircon and Topaz. What does this all mean? Let's find out!
Discover all the facts that no one tells you about Gordon Banks below ↓
NAME: Gordon Banks
FULL NAME: Gordon Banks
NICKNAME: Gordon
PROFESSION: Soccer Player
Gordon Banks, best known for being a Soccer Player, was born in England on Thursday, December 30, 1937. English soccer legend who played goalkeeper for the famous national team that won the 1966 World Cup at Wembley.
Family: He had three children with his wife Ursula, whom he met while on his National service tour in Germany. Gordon Banks father's name is Under review and mother unknown at this time. We will continue to update details on Gordon Banks's family.
Dating: According to CelebsCouples, Gordon Banks is single .
Net Worth: Online estimates of Gordon Banks's net worth vary. It's easy to predict his income, but it's much harder to know how much he has spent over the years. CelebsMoney does a good job of breaking most of it down.
2. Gordon Banks's zodiac sign is Capricorn
Gordon Banks zodiac sign is a Capricorn. Dates of Capricorn are December 22 - January 19. Those born under the Capricorn zodiac sign are talented at applying their intelligence and ambition to practical matters. Stability and order are important to them - and this makes them good organizers. They are driven, patient, strategic, determined, disciplined, responsible, and persistent. On the other hand, they can also be pessimistic, greedy, cynical, fearful, ruthless and rigid.
BORN IN THE YEAR OF THE: Ox
The British soccer player has been alive for 30,322 days days or 727,728 hours hours. There were precisely 1,028 full moons after his birth to this day.
BORN ON: Thursday
Gordon Banks was born on a Thursday. The 'thur' in Thursday is actually derived from the Norse god Thor. People born on Thursdays are generally a fun to be around, which means Thursday's babies get to be the life of the party.
Countdown to Gordon Banks's next birthday.
Gordon Banks will be turning 84.
4. On Gordon Banks's birthday
1460 – Wars of the Roses: Battle of Wakefield (Northern England), Duke of York killed and his forces soundly defeated by forces for King Henry VI.
1703 – Tokyo hit by Earthquake; about 37,000 die.
1906 – The All India Muslim League is founded in Dacca, East Bengal, British India Empire, later laid down the foundations of Pakistan.
5. Gordon Banks's stats
We're currently in process of confirming all details such as Gordon Banks's height, weight, and other stats. If there is any information missing, we will be updating this page soon. If you any have tips or corrections, please send them our way.
6. The Year of the Ox
Gordon Banks was born in the Year of the Ox. People with Chinese zodiac Ox bear persistent, simple, honest, and straightforward characteristics. They are talent leaders with strong faith, and strong devotion to work. Their strengths are honest, industrious, patient, cautious, level-headed, and persistent. But they can also be obstinate, inarticulate, prudish, and distant. Their lucky numbers are 1, 9, and lucky colors are red, blue, purple.
7. Gordon Banks's life path number is 8
Life Path Number 8 represent 'The Power Player'. Those who walk a Life Path with Number 8 have incredible strength of will and can endure anything. 8 reminds us the soul has a mind of its own and lives on, no matter what. Its energy is Eternal Life. The values are authority, material things, success. The challenges are to learn when exerting control is helpful — and when you're better off letting someone else take over.
Gordon Banks was born in the middle of Silent Generation.
9. Gordon Banks's birthstone is Tanzanite, Turquoise, Zircon and Topaz
10. Gordon Banks's birth flower is Narcissus


Not since Donald Glut's novelization of The Empire Strikes Back. That is the last novelization in the Star Wars universe that was as fun as Mur Lafferty's new novelization of Solo: A Star Wars Story–Expanded Edition. That's saying a lot, because Glut's exciting prose is what got many of us through the 2.5 year wait period before The Return of the Jedi arrived, in the dark days before VHS. Lafferty writes with quick, succinct sentences that zip the reader through the action-packed, roller coaster ride of a story. This is the space fantasy and space Western nostalgia that fans of the original series were hoping for when the prequels and sequels came along. Electric and classic like Butch Cassidy and the Sundance Kid, the novelization energizes an already great movie. Of course screenplay writers Lawrence and Jonathan Kasdan deserve the appropriate praise for the bones of the story, but the novelization provides everything else that couldn't make it into their 135-minute movie.
Best of all is a three-page epilogue that directly ties Solo: A Star Wars Story together with not just the obvious connections you already know with Han Solo, Chewbacca, and the original trilogy stories. The novelization introduces an intersection with two other major characters from the Star Wars saga no one could possibly predict. As good as the gambling scene was between Han and Lando at the end of the movie, it's a shame this scene did not become part of the film. No spoilers here, but the book is worth reading for the epilogue alone. You'll also find a revealing scene between Qi'ra and L3-37, and a surprising, hilarious exchange onboard the Millennium Falcon between Lando and Chewbacca.
Solo: A Star Wars Story Expanded Edition has an apt subheading, because it is precisely what sets it apart: expanding on every major character's backstory. Han and his encounters with Lady Proxima on Corellia and life in the Imperial Navy (including an appearance by comic book characters Tag & Bink) are told in flashback memories. Chewbacca's thoughts are fleshed out, too: how he got to where we meet him in this story, and his passion to help Sagwa and the other Wookiees escape from the muddy spice mine on Kessel. We learn what happened to Qi'ra right after Han left her behind, as she is sold to another slaveholder and finally falls into the clutches of Dryden Vos and Crimson Dawn. Lafferty expands on the relationship between Val and Beckett, including their first encounter, too. And most enlightening is the heavily emotional inner-workings of Lando's droid L3-37 and how her mechanics–plus a little coaxium–made the fastest ship in the galaxy all that it would later become.
Other nuances become more apparent in the book than in the film. Han, Beckett, and Val soldiering on Mimban feels like an homage to Mal and Zoe in the Battle of Serenity Valley in the Firefly series. Scenes that got chopped down in the film are smoother here, including much-needed character interaction on the Falcon, and clarity from the first appearance of Enfys Nest during the train hijacking that the marauder was a woman.
To top it off, Del Rey has released the novelization in a sleek, retro-style hardcover with the film's key poster art, and just like those early novelizations it includes an eight-page, full color photo section in the middle of the book. To avoid any confusion: this expanded edition is the only novelization of the film.
Get your copy of Solo: A Star Wars Story–Expanded Edition now here at Amazon (an alternate poster pull-out edition is available via Barnes & Noble). Plus the fourth best of all the Star Wars movies (behind the original Star Wars, The Empire Strikes Back, and Rogue One) arrives on home video today, available in digital format on Amazon here.


text:
BUSINESS LIVE: Retail sales slump; FCA drops M&C Saatchi investigation; Shell blasts 'body blow' court ruling
A complacent DWP failed pensioners, says MP, as his watchdog committee issues 'blistering' report on state pension 'fiasco'
Bentley's off to a 'flyer': Luxury car maker is banking on an eco-friendly future - by launching a host of new models and is seeing hybrid sales soar
Lehman sparks new US rescue bid
By Simon Watkins for The Mail on Sunday
Updated: 08:56 EST, 14 September 2008
American bankers are this weekend hammering out details of a multi-billion pound rescue package for Wall Street giant Lehman Brothers in another case of emergency surgery for the ailing US financial system.
Bank of America and a coterie of partners are attempting to squeeze financial backing from US authorities for a rescue bid for Lehman.
Once a darling of the banking world, Lehman has seen its stock market value crash from more than $60bn (£35bn) early last year to only $2.5bn last week.
The slump means staff bonuses for the past year - estimated at just over $3.1bn at the time of their award - amount to more than its current market value.
Many bonuses will, however, have been paid in share options and most of Lehman's 25,000 staff are thought to be suffering losses alongside other shareholders. In London, 4,000 staff are this weekend in limbo awaiting news of whether the bank and their jobs can be saved.
A restructuring plan announced last week included spinning off Lehman's commercial property business and selling its asset management arm and its UK mortgage business, though the moves failed to reassure investors.
Barclays has been rumoured as a potential partner in the consortium. But sources said it was far more likely to attempt to poach key teams and clients.
Other groups thought to be part of the Bank of America-led bid are investment group JC Flowers, which last year tried to buy Northern Rock, and the China Investment Fund. That would mark the latest in a series of investments in Western finance groups by the Chinese.
At the centre of negotiations over Lehman is thought to be the issue of support from the US authorities, with Bank of America and its partners asking for the US Federal Reserve to underwrite some of Lehman's assets.
The crisis comes just seven days after Washington announced the biggest state bail-out by nationalising Fannie Mae and Freddie Mac, the giants of its home loans market.
It is thought the Bank of America rescue plan will override the restructuring announced last week, in which case, Lehman's UK mortgage book could yet be up for grabs.
Lehman operated three UK mortgages businesses - Southern Pacific Mortgages, Preferred Mortgages and London Mortgage. All three have stopped taking new business, but the outstanding mortgages, thought to be worth up to £4bn, were to be transferred to investment group Black Rock. But if they are included in the new rescue, the UK mortgage portfolio could yet be resold.
Lehman crisis to spark new US rescue bid
Ladbrokes owner Entain tightens profit forecast as online gambling boom falters after astonishing run of growth


text:
Q: CUDA/C++: Passing __device__ pointers in C++ code I am developing a Windows 64-bit application that will manage concurrent execution of  different CUDA-algorithms on several GPUs.
My design requires a way of passing pointers to device memory
around c++ code. (E.g. remember them as members in my c++ objects).
I know that it is impossible to declare class members with __device__ qualifiers.
However I couldn't find a definite answer whether assigning __device__ pointer to a normal C pointer and then using the latter works. In other words: Is the following code valid?
__device__ float *ptr;
cudaMalloc(&ptr, size);
float *ptr2 = ptr
some_kernel<<<1,1>>>(ptr2);

For me it compiled and behaved correctly but I would like to know whether it is guaranteed to be correct.

A: No, that code isn't strictly valid. While it might work on the host side (more or less by accident), if you tried to dereference ptr directly from device code, you would find it would have an invalid value.
The correct way to do what your code implies would be like this:
__device__ float *ptr;

__global__ void some_kernel()
{
    float val = ptr[threadIdx.x];
    ....
}

float *ptr2;
cudaMalloc(&ptr2, size);
cudaMemcpyToSymbol("ptr", ptr2, sizeof(float *));

some_kernel<<<1,1>>>();

for CUDA 4.x or newer, change the cudaMemcpyToSymbol to:
cudaMemcpyToSymbol(ptr, ptr2, sizeof(float *));

If the static device symbol ptr is really superfluous, you can just to something like this:
float *ptr2;
cudaMalloc(&ptr2, size);
some_kernel<<<1,1>>>(ptr2);

But I suspect that what you are probably looking for is something like the thrust library device_ptr class, which is a nice abstraction wrapping the naked device pointer and makes it absolutely clear in code what is in device memory and what is in host memory.