text:
#include "private/gc_priv.h"
#include "gc_inline.h" /* for GC_malloc_kind */

#include <stdio.h>
#include <string.h>

/* Allocate reclaim list for kind:      */
/* Return TRUE on success               */
STATIC GC_bool GC_alloc_reclaim_list(struct obj_kind *kind)
{
    struct hblk ** result = (struct hblk **)
                GC_scratch_alloc((MAXOBJGRANULES+1) * sizeof(struct hblk *));
    if (result == 0) return(FALSE);
    BZERO(result, (MAXOBJGRANULES+1)*sizeof(struct hblk *));
    kind -> ok_reclaim_list = result;
    return(TRUE);
}

GC_INNER GC_bool GC_collect_or_expand(word needed_blocks,
                                      GC_bool ignore_off_page,
                                      GC_bool retry); /* from alloc.c */

/* Allocate a large block of size lb bytes.     */
/* The block is not cleared.                    */
/* Flags is 0 or IGNORE_OFF_PAGE.               */
/* EXTRA_BYTES were already added to lb.        */
GC_INNER ptr_t GC_alloc_large(size_t lb, int k, unsigned flags)
{
    struct hblk * h;
    word n_blocks;
    ptr_t result;
    GC_bool retry = FALSE;

    GC_ASSERT(I_HOLD_LOCK());
    lb = ROUNDUP_GRANULE_SIZE(lb);
    n_blocks = OBJ_SZ_TO_BLOCKS_CHECKED(lb);
    if (!EXPECT(GC_is_initialized, TRUE)) {
      DCL_LOCK_STATE;
      UNLOCK(); /* just to unset GC_lock_holder */
      GC_init();
      LOCK();
    }
    /* Do our share of marking work */
        if (GC_incremental && !GC_dont_gc)
            GC_collect_a_little_inner((int)n_blocks);
    h = GC_allochblk(lb, k, flags);
#   ifdef USE_MUNMAP
        if (0 == h) {
            GC_merge_unmapped();
            h = GC_allochblk(lb, k, flags);
        }
#   endif
    while (0 == h && GC_collect_or_expand(n_blocks, flags != 0, retry)) {
        h = GC_allochblk(lb, k, flags);
        retry = TRUE;
    }
    if (h == 0) {
        result = 0;
    } else {
        size_t total_bytes = n_blocks * HBLKSIZE;
        if (n_blocks > 1) {
            GC_large_allocd_bytes += total_bytes;
            if (GC_large_allocd_bytes > GC_max_large_allocd_bytes)
                GC_max_large_allocd_bytes = GC_large_allocd_bytes;
        }
        /* FIXME: Do we need some way to reset GC_max_large_allocd_bytes? */
        result = h -> hb_body;
    }
    return result;
}

/* Allocate a large block of size lb bytes.  Clear if appropriate.      */
/* EXTRA_BYTES were already added to lb.                                */
STATIC ptr_t GC_alloc_large_and_clear(size_t lb, int k, unsigned flags)
{
    ptr_t result;

    GC_ASSERT(I_HOLD_LOCK());
    result = GC_alloc_large(lb, k, flags);
    if (result != NULL
          && (GC_debugging_started || GC_obj_kinds[k].ok_init)) {
        word n_blocks = OBJ_SZ_TO_BLOCKS(lb);

        /* Clear the whole block, in case of GC_realloc call. */
        BZERO(result, n_blocks * HBLKSIZE);
    }
    return result;
}

/* allocate lb bytes for an object of kind k.   */
/* Should not be used to directly to allocate   */
/* objects such as STUBBORN objects that        */
/* require special handling on allocation.      */
GC_INNER void * GC_generic_malloc_inner(size_t lb, int k)
{
    void *op;

    GC_ASSERT(I_HOLD_LOCK());
    GC_ASSERT(k < MAXOBJKINDS);
    if (SMALL_OBJ(lb)) {
        struct obj_kind * kind = GC_obj_kinds + k;
        size_t lg = GC_size_map[lb];
        void ** opp = &(kind -> ok_freelist[lg]);

        op = *opp;
        if (EXPECT(0 == op, FALSE)) {
          if (lg == 0) {
            if (!EXPECT(GC_is_initialized, TRUE)) {
              DCL_LOCK_STATE;
              UNLOCK(); /* just to unset GC_lock_holder */
              GC_init();
              LOCK();
              lg = GC_size_map[lb];
            }
            if (0 == lg) {
              GC_extend_size_map(lb);
              lg = GC_size_map[lb];
              GC_ASSERT(lg != 0);
            }
            /* Retry */
            opp = &(kind -> ok_freelist[lg]);
            op = *opp;
          }
          if (0 == op) {
            if (0 == kind -> ok_reclaim_list &&
                !GC_alloc_reclaim_list(kind))
              return NULL;
            op = GC_allocobj(lg, k);
            if (0 == op)
              return NULL;
          }
        }
        *opp = obj_link(op);
        obj_link(op) = 0;
        GC_bytes_allocd += GRANULES_TO_BYTES((word)lg);
    } else {
        op = (ptr_t)GC_alloc_large_and_clear(ADD_SLOP(lb), k, 0);
        if (op != NULL)
            GC_bytes_allocd += lb;
    }

    return op;
}

#if defined(DBG_HDRS_ALL) || defined(GC_GCJ_SUPPORT) \
    || !defined(GC_NO_FINALIZATION)
  /* Allocate a composite object of size n bytes.  The caller           */
  /* guarantees that pointers past the first page are not relevant.     */
  GC_INNER void * GC_generic_malloc_inner_ignore_off_page(size_t lb, int k)
  {
    word lb_adjusted;
    void * op;

    GC_ASSERT(I_HOLD_LOCK());
    if (lb <= HBLKSIZE)
        return GC_generic_malloc_inner(lb, k);
    GC_ASSERT(k < MAXOBJKINDS);
    lb_adjusted = ADD_SLOP(lb);
    op = GC_alloc_large_and_clear(lb_adjusted, k, IGNORE_OFF_PAGE);
    if (op != NULL)
        GC_bytes_allocd += lb_adjusted;
    return op;
  }
#endif

#ifdef GC_COLLECT_AT_MALLOC
  /* Parameter to force GC at every malloc of size greater or equal to  */
  /* the given value.  This might be handy during debugging.            */
# if defined(CPPCHECK)
    size_t GC_dbg_collect_at_malloc_min_lb = 16*1024; /* e.g. */
# else
    size_t GC_dbg_collect_at_malloc_min_lb = (GC_COLLECT_AT_MALLOC);
# endif
#endif

GC_API GC_ATTR_MALLOC void * GC_CALL GC_generic_malloc(size_t lb, int k)
{
    void * result;
    DCL_LOCK_STATE;

    GC_ASSERT(k < MAXOBJKINDS);
    if (EXPECT(GC_have_errors, FALSE))
      GC_print_all_errors();
    GC_INVOKE_FINALIZERS();
    GC_DBG_COLLECT_AT_MALLOC(lb);
    if (SMALL_OBJ(lb)) {
        LOCK();
        result = GC_generic_malloc_inner(lb, k);
        UNLOCK();
    } else {
        size_t lg;
        size_t lb_rounded;
        word n_blocks;
        GC_bool init;

        lg = ROUNDED_UP_GRANULES(lb);
        lb_rounded = GRANULES_TO_BYTES(lg);
        n_blocks = OBJ_SZ_TO_BLOCKS(lb_rounded);
        init = GC_obj_kinds[k].ok_init;
        LOCK();
        result = (ptr_t)GC_alloc_large(lb_rounded, k, 0);
        if (0 != result) {
          if (GC_debugging_started) {
            BZERO(result, n_blocks * HBLKSIZE);
          } else {
#           ifdef THREADS
              /* Clear any memory that might be used for GC descriptors */
              /* before we release the lock.                            */
                ((word *)result)[0] = 0;
                ((word *)result)[1] = 0;
                ((word *)result)[GRANULES_TO_WORDS(lg)-1] = 0;
                ((word *)result)[GRANULES_TO_WORDS(lg)-2] = 0;
#           endif
          }
          GC_bytes_allocd += lb_rounded;
        }
        UNLOCK();
        if (init && !GC_debugging_started && 0 != result) {
            BZERO(result, n_blocks * HBLKSIZE);
        }
    }
    if (0 == result) {
        return((*GC_get_oom_fn())(lb));
    } else {
        return(result);
    }
}

GC_API GC_ATTR_MALLOC void * GC_CALL GC_malloc_kind_global(size_t lb, int k)
{
    GC_ASSERT(k < MAXOBJKINDS);
    if (SMALL_OBJ(lb)) {
        void *op;
        void **opp;
        size_t lg = GC_size_map[lb];
        DCL_LOCK_STATE;

        GC_DBG_COLLECT_AT_MALLOC(lb);
        LOCK();
        opp = &GC_obj_kinds[k].ok_freelist[lg];
        op = *opp;
        if (EXPECT(op != NULL, TRUE)) {
            if (k == PTRFREE) {
                *opp = obj_link(op);
            } else {
                GC_ASSERT(0 == obj_link(op)
                          || ((word)obj_link(op)
                                <= (word)GC_greatest_plausible_heap_addr
                              && (word)obj_link(op)
                                >= (word)GC_least_plausible_heap_addr));
                *opp = obj_link(op);
                obj_link(op) = 0;
            }
            GC_bytes_allocd += GRANULES_TO_BYTES((word)lg);
            UNLOCK();
            return op;
        }
        UNLOCK();
    }
    return GENERAL_MALLOC(lb, k);
}

#if defined(THREADS) && !defined(THREAD_LOCAL_ALLOC)
  GC_API GC_ATTR_MALLOC void * GC_CALL GC_malloc_kind(size_t lb, int k)
  {
    return GC_malloc_kind_global(lb, k);
  }
#endif

/* Allocate lb bytes of atomic (pointer-free) data.     */
GC_API GC_ATTR_MALLOC void * GC_CALL GC_malloc_atomic(size_t lb)
{
    return GC_malloc_kind(lb, PTRFREE);
}

/* Allocate lb bytes of composite (pointerful) data.    */
GC_API GC_ATTR_MALLOC void * GC_CALL GC_malloc(size_t lb)
{
    return GC_malloc_kind(lb, NORMAL);
}

GC_API GC_ATTR_MALLOC void * GC_CALL GC_generic_malloc_uncollectable(
                                                        size_t lb, int k)
{
    void *op;
    DCL_LOCK_STATE;

    GC_ASSERT(k < MAXOBJKINDS);
    if (SMALL_OBJ(lb)) {
        void **opp;
        size_t lg;

        GC_DBG_COLLECT_AT_MALLOC(lb);
        if (EXTRA_BYTES != 0 && lb != 0) lb--;
                  /* We don't need the extra byte, since this won't be  */
                  /* collected anyway.                                  */
        lg = GC_size_map[lb];
        LOCK();
        opp = &GC_obj_kinds[k].ok_freelist[lg];
        op = *opp;
        if (EXPECT(op != NULL, TRUE)) {
            *opp = obj_link(op);
            obj_link(op) = 0;
            GC_bytes_allocd += GRANULES_TO_BYTES((word)lg);
            /* Mark bit was already set on free list.  It will be       */
            /* cleared only temporarily during a collection, as a       */
            /* result of the normal free list mark bit clearing.        */
            GC_non_gc_bytes += GRANULES_TO_BYTES((word)lg);
            UNLOCK();
        } else {
            UNLOCK();
            op = GC_generic_malloc(lb, k);
            /* For small objects, the free lists are completely marked. */
        }
        GC_ASSERT(0 == op || GC_is_marked(op));
    } else {
        hdr * hhdr;

        op = GC_generic_malloc(lb, k);
        if (NULL == op)
            return NULL;

        GC_ASSERT(((word)op & (HBLKSIZE - 1)) == 0); /* large block */
        hhdr = HDR(op);
        /* We don't need the lock here, since we have an undisguised    */
        /* pointer.  We do need to hold the lock while we adjust        */
        /* mark bits.                                                   */
        LOCK();
        set_mark_bit_from_hdr(hhdr, 0); /* Only object. */
#       ifndef THREADS
          GC_ASSERT(hhdr -> hb_n_marks == 0);
                /* This is not guaranteed in the multi-threaded case    */
                /* because the counter could be updated before locking. */
#       endif
        hhdr -> hb_n_marks = 1;
        UNLOCK();
    }
    return op;
}

/* Allocate lb bytes of pointerful, traced, but not collectible data.   */
GC_API GC_ATTR_MALLOC void * GC_CALL GC_malloc_uncollectable(size_t lb)
{
  return GC_generic_malloc_uncollectable(lb, UNCOLLECTABLE);
}

#ifdef GC_ATOMIC_UNCOLLECTABLE
  /* Allocate lb bytes of pointer-free, untraced, uncollectible data    */
  /* This is normally roughly equivalent to the system malloc.          */
  /* But it may be useful if malloc is redefined.                       */
  GC_API GC_ATTR_MALLOC void * GC_CALL
        GC_malloc_atomic_uncollectable(size_t lb)
  {
    return GC_generic_malloc_uncollectable(lb, AUNCOLLECTABLE);
  }
#endif /* GC_ATOMIC_UNCOLLECTABLE */

#if defined(REDIRECT_MALLOC) && !defined(REDIRECT_MALLOC_IN_HEADER)

# ifndef MSWINCE
#  include <errno.h>
# endif

  /* Avoid unnecessary nested procedure calls here, by #defining some   */
  /* malloc replacements.  Otherwise we end up saving a meaningless     */
  /* return address in the object.  It also speeds things up, but it is */
  /* admittedly quite ugly.                                             */
# define GC_debug_malloc_replacement(lb) GC_debug_malloc(lb, GC_DBG_EXTRAS)

# if defined(CPPCHECK)
#   define REDIRECT_MALLOC_F GC_malloc /* e.g. */
# else
#   define REDIRECT_MALLOC_F REDIRECT_MALLOC
# endif

  void * malloc(size_t lb)
  {
    /* It might help to manually inline the GC_malloc call here.        */
    /* But any decent compiler should reduce the extra procedure call   */
    /* to at most a jump instruction in this case.                      */
#   if defined(I386) && defined(GC_SOLARIS_THREADS)
      /* Thread initialization can call malloc before we are ready for. */
      /* It is not clear that this is enough to help matters.           */
      /* The thread implementation may well call malloc at other        */
      /* inopportune times.                                             */
      if (!EXPECT(GC_is_initialized, TRUE)) return sbrk(lb);
#   endif
    return (void *)REDIRECT_MALLOC_F(lb);
  }

# if defined(GC_LINUX_THREADS)
    STATIC ptr_t GC_libpthread_start = 0;
    STATIC ptr_t GC_libpthread_end = 0;
    STATIC ptr_t GC_libld_start = 0;
    STATIC ptr_t GC_libld_end = 0;

    STATIC void GC_init_lib_bounds(void)
    {
      IF_CANCEL(int cancel_state;)

      if (GC_libpthread_start != 0) return;
      DISABLE_CANCEL(cancel_state);
      GC_init(); /* if not called yet */
      if (!GC_text_mapping("libpthread-",
                           &GC_libpthread_start, &GC_libpthread_end)) {
          WARN("Failed to find libpthread.so text mapping: Expect crash\n", 0);
          /* This might still work with some versions of libpthread,      */
          /* so we don't abort.  Perhaps we should.                       */
          /* Generate message only once:                                  */
            GC_libpthread_start = (ptr_t)1;
      }
      if (!GC_text_mapping("ld-", &GC_libld_start, &GC_libld_end)) {
          WARN("Failed to find ld.so text mapping: Expect crash\n", 0);
      }
      RESTORE_CANCEL(cancel_state);
    }
# endif /* GC_LINUX_THREADS */

  void * calloc(size_t n, size_t lb)
  {
    if ((lb | n) > GC_SQRT_SIZE_MAX /* fast initial test */
        && lb && n > GC_SIZE_MAX / lb)
      return (*GC_get_oom_fn())(GC_SIZE_MAX); /* n*lb overflow */
#   if defined(GC_LINUX_THREADS)
      /* libpthread allocated some memory that is only pointed to by    */
      /* mmapped thread stacks.  Make sure it is not collectible.       */
      {
        static GC_bool lib_bounds_set = FALSE;
        ptr_t caller = (ptr_t)__builtin_return_address(0);
        /* This test does not need to ensure memory visibility, since   */
        /* the bounds will be set when/if we create another thread.     */
        if (!EXPECT(lib_bounds_set, TRUE)) {
          GC_init_lib_bounds();
          lib_bounds_set = TRUE;
        }
        if (((word)caller >= (word)GC_libpthread_start
             && (word)caller < (word)GC_libpthread_end)
            || ((word)caller >= (word)GC_libld_start
                && (word)caller < (word)GC_libld_end))
          return GC_generic_malloc_uncollectable(n * lb, UNCOLLECTABLE);
        /* The two ranges are actually usually adjacent, so there may   */
        /* be a way to speed this up.                                   */
      }
#   endif
    return (void *)REDIRECT_MALLOC_F(n * lb);
  }

# ifndef strdup
    char *strdup(const char *s)
    {
      size_t lb = strlen(s) + 1;
      char *result = (char *)REDIRECT_MALLOC_F(lb);
      if (result == 0) {
        errno = ENOMEM;
        return 0;
      }
      BCOPY(s, result, lb);
      return result;
    }
# endif /* !defined(strdup) */
 /* If strdup is macro defined, we assume that it actually calls malloc, */
 /* and thus the right thing will happen even without overriding it.     */
 /* This seems to be true on most Linux systems.                         */

# ifndef strndup
    /* This is similar to strdup().     */
    char *strndup(const char *str, size_t size)
    {
      char *copy;
      size_t len = strlen(str);
      if (len > size)
        len = size;
      copy = (char *)REDIRECT_MALLOC_F(len + 1);
      if (copy == NULL) {
        errno = ENOMEM;
        return NULL;
      }
      if (EXPECT(len > 0, TRUE))
        BCOPY(str, copy, len);
      copy[len] = '\0';
      return copy;
    }
# endif /* !strndup */

# undef GC_debug_malloc_replacement

#endif /* REDIRECT_MALLOC */

/* Explicitly deallocate an object p.                           */
GC_API void GC_CALL GC_free(void * p)
{
    struct hblk *h;
    hdr *hhdr;
    size_t sz; /* In bytes */
    size_t ngranules;   /* sz in granules */
    int knd;
    struct obj_kind * ok;
    DCL_LOCK_STATE;

    if (p == 0) return;
        /* Required by ANSI.  It's not my fault ...     */
#   ifdef LOG_ALLOCS
      GC_log_printf("GC_free(%p) after GC #%lu\n",
                    p, (unsigned long)GC_gc_no);
#   endif
    h = HBLKPTR(p);
    hhdr = HDR(h);
#   if defined(REDIRECT_MALLOC) && \
        ((defined(NEED_CALLINFO) && defined(GC_HAVE_BUILTIN_BACKTRACE)) \
         || defined(GC_SOLARIS_THREADS) || defined(GC_LINUX_THREADS) \
         || defined(MSWIN32))
        /* This might be called indirectly by GC_print_callers to free  */
        /* the result of backtrace_symbols.                             */
        /* For Solaris, we have to redirect malloc calls during         */
        /* initialization.  For the others, this seems to happen        */
        /* implicitly.                                                  */
        /* Don't try to deallocate that memory.                         */
        if (0 == hhdr) return;
#   endif
    GC_ASSERT(GC_base(p) == p);
    sz = hhdr -> hb_sz;
    ngranules = BYTES_TO_GRANULES(sz);
    knd = hhdr -> hb_obj_kind;
    ok = &GC_obj_kinds[knd];
    if (EXPECT(ngranules <= MAXOBJGRANULES, TRUE)) {
        void **flh;

        LOCK();
        GC_bytes_freed += sz;
        if (IS_UNCOLLECTABLE(knd)) GC_non_gc_bytes -= sz;
                /* Its unnecessary to clear the mark bit.  If the       */
                /* object is reallocated, it doesn't matter.  O.w. the  */
                /* collector will do it, since it's on a free list.     */
        if (ok -> ok_init && EXPECT(sz > sizeof(word), TRUE)) {
            BZERO((word *)p + 1, sz-sizeof(word));
        }
        flh = &(ok -> ok_freelist[ngranules]);
        obj_link(p) = *flh;
        *flh = (ptr_t)p;
        UNLOCK();
    } else {
        size_t nblocks = OBJ_SZ_TO_BLOCKS(sz);

        LOCK();
        GC_bytes_freed += sz;
        if (IS_UNCOLLECTABLE(knd)) GC_non_gc_bytes -= sz;
        if (nblocks > 1) {
          GC_large_allocd_bytes -= nblocks * HBLKSIZE;
        }
        GC_freehblk(h);
        UNLOCK();
    }
}

/* Explicitly deallocate an object p when we already hold lock.         */
/* Only used for internally allocated objects, so we can take some      */
/* shortcuts.                                                           */
#ifdef THREADS
  GC_INNER void GC_free_inner(void * p)
  {
    struct hblk *h;
    hdr *hhdr;
    size_t sz; /* bytes */
    size_t ngranules;  /* sz in granules */
    int knd;
    struct obj_kind * ok;

    h = HBLKPTR(p);
    hhdr = HDR(h);
    knd = hhdr -> hb_obj_kind;
    sz = hhdr -> hb_sz;
    ngranules = BYTES_TO_GRANULES(sz);
    ok = &GC_obj_kinds[knd];
    if (ngranules <= MAXOBJGRANULES) {
        void ** flh;

        GC_bytes_freed += sz;
        if (IS_UNCOLLECTABLE(knd)) GC_non_gc_bytes -= sz;
        if (ok -> ok_init && EXPECT(sz > sizeof(word), TRUE)) {
            BZERO((word *)p + 1, sz-sizeof(word));
        }
        flh = &(ok -> ok_freelist[ngranules]);
        obj_link(p) = *flh;
        *flh = (ptr_t)p;
    } else {
        size_t nblocks = OBJ_SZ_TO_BLOCKS(sz);
        GC_bytes_freed += sz;
        if (IS_UNCOLLECTABLE(knd)) GC_non_gc_bytes -= sz;
        if (nblocks > 1) {
          GC_large_allocd_bytes -= nblocks * HBLKSIZE;
        }
        GC_freehblk(h);
    }
  }
#endif /* THREADS */

#if defined(REDIRECT_MALLOC) && !defined(REDIRECT_FREE)
# define REDIRECT_FREE GC_free
#endif

#if defined(REDIRECT_FREE) && !defined(REDIRECT_MALLOC_IN_HEADER)

# if defined(CPPCHECK)
#   define REDIRECT_FREE_F GC_free /* e.g. */
# else
#   define REDIRECT_FREE_F REDIRECT_FREE
# endif

  void free(void * p)
  {
#   ifndef IGNORE_FREE
#     if defined(GC_LINUX_THREADS) && !defined(USE_PROC_FOR_LIBRARIES)
        /* Don't bother with initialization checks.  If nothing         */
        /* has been initialized, the check fails, and that's safe,      */
        /* since we have not allocated uncollectible objects neither.   */
        ptr_t caller = (ptr_t)__builtin_return_address(0);
        /* This test does not need to ensure memory visibility, since   */
        /* the bounds will be set when/if we create another thread.     */
        if (((word)caller >= (word)GC_libpthread_start
             && (word)caller < (word)GC_libpthread_end)
            || ((word)caller >= (word)GC_libld_start
                && (word)caller < (word)GC_libld_end)) {
          GC_free(p);
          return;
        }
#     endif
      REDIRECT_FREE_F(p);
#   endif
  }
#endif /* REDIRECT_FREE */


Attention Class of 1989. We are trying to plan a 20 year reunion this year on labor day weekend and we need your input. Please send us an email at lintonhigh89reunion@hotmail.com or go to www.alumniclass.com/schenectady to get the latest information. We are also on Facebook.com as a group under Linton High School class of 1989. Hope to hear from you soon.


NEW! Celestial Stars Candle - Ultraviolet Lilac 12 oz.
Three wicks for more light! The 12-oz. Ultraviolet Celestial Starry Metallic Candle features the flowery Ultraviolet Lilac scent — and adds glitz and sparkle to any room. Part of the Metallic Glass Collection, this hand-poured soy blend wax candle is a great gift for purple lovers. The Ultraviolet Lilac scent features notes of Dewy Greens, Water Lily, and Bergamot, accented with Lilac Petals, Hyacinth, and Tulip Bulbs — with undertones of Cedarleaf, Vetiver, and Moss. Showcase this candle by itself, or pair it with its 7-oz. "sister" for a gorgeous, violet display.


text:
Win Maximum M72 Metallica Experience!
'Budget Buster' Win a $500 Visa Gift Card
Win Nitty Gritty Dirt Band TIX
Hairball Coming to the Coronado!
Polar Plunge 2023
The 967 The Eagle App
The Eagle on Alexa
Watch Queen + Adam Lambert Kick Off the Oscars With 'We Will Rock You / We Are the Champions'
Dave Lifton Published: February 24, 2019
Contributing Authors: Matthew Wilkening
Queen took a victory lap for the runaway box office success of Bohemian Rhapsody by opening tonight's Academy Awards. With Adam Lambert on vocals, they played "We Will Rock You" and "We Are the Champions." At the end of their performance, a gigantic image of the band's founding singer, Freddie Mercury, appeared behind the band.
Bohemian Rhapsody is nominated for five Oscars tonight, including Best Picture and Best Actor, for Rami Malek's portrayal of Mercury.
Prior to the telecast, there had been some question as to what the band would sing. Although a teaser clip featuring "We Will Rock You" was tweeted by Queen and Lambert, the Academy's text quoted the opening words of "Bohemian Rhapsody": "Is this the real life? / Is this just fantasy?"
While Lambert's tenure in the band isn't covered in Bohemian Rhapsody, which focuses on the life of Mercury, he did make an uncredited appearance in the film. He showed up, nearly recognizable underneath facial hair and wearing a flannel shirt and trucker hat, in a scene where he's waiting at a rest stop for Mercury (Rami Malek) to finish up a phone call with Mary Austin (Lucy Boynton) so they can have an illicit tryst.
Lambert first sang with Queen on the 2009 finale of American Idol where Lambert, the runner-up that season, sat it on "We Are the Champions." Two years later, they joined forces again for a few songs at the MTV Europe Awards. In the summer of 2012, Queen + Adam Lambert became a touring entity, playing several dates in Europe. They hit North America for 19 shows in the summer of 2014, and returned for 25 more in 2017. Their upcoming "Rhapsody" tour kicks off on July 10 in Vancouver. You can see all the dates here.
After 'Bohemian Rhapsody': The Next Five Classic Rock Movies
Next: Queen Albums Ranked
Source: Watch Queen + Adam Lambert Kick Off the Oscars With 'We Will Rock You / We Are the Champions'
Filed Under: Adam Lambert, oscars, queen
More From 96.7 The Eagle
Listen to Queen's New 'Face It Alone' Featuring Freddie Mercury
Illinois Native Has Played Two of the Best 'Movie Moms of All Time'
Will Smith Banned From Attending Oscars For 10 Years
Will Smith Apologizes to Chris Rock; Read His Full Statement
Watch Taylor Hawkins' Final Show With Foo Fighters
Did You Know Only 13 People From Illinois Have Won an Acting Oscar?
Queen's Roger Taylor Jams With 11-Year-Old Viral Drumming Star
Brian May Says Queen Had 'Unfair Advantage' at Live Aid
Queen's 'Greatest Hits' Reaches the Top 10 of the Billboard 200 for the First Time
2023 967 The Eagle, Townsquare Media, Inc. All rights reserved.

redpajama_set_name: RedPajamaCommonCrawl


text:
/*
 * ObserverablePanel.java
 *
 * Created on 17. Februar 2006, 23:12
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package org.huber.keytool.ui.wizard;

/**
 * The interface of an visual wizard panel.
 *
 * @author HuberB1
 */
public interface ObserverablePanel {
    /**
     * Bind ui components to the change observer.
     */
    void bind(ChangeObserverOfWizardPanel changeObserver);

    /**
     * Test validity of user input
     */
    ValidUserEntryResult isValidUserEntry();

    static class ValidUserEntryResult {
        private boolean isValid;
        private String invalidMessage;
        public ValidUserEntryResult( ) {
            this.isValid = true;
        }
        public ValidUserEntryResult( boolean isValid, String invalidMessage ) {
            this.isValid = isValid;
            this.invalidMessage = invalidMessage;
        }
        public boolean isValid() {
            return this.isValid;
        }
        public void setIsValid( boolean isValid ) {
            this.isValid = isValid;
        }
        public String getInvalidMessage() {
            return this.invalidMessage;
        }
        public void setInvalidMessage( String invalidMessage ) {
            this.invalidMessage = invalidMessage;
            if (this.invalidMessage != null && this.invalidMessage.length() > 0) {
                this.setIsValid( false );
            } else {
                this.setIsValid( true );
            }
        }
    }

    /**
     * Reset the visual wizard panel.
     */
    void reset();
}

redpajama_set_name: RedPajamaGithub


text:
Darryl de la Harpe, né le  à Windhoek (Namibie), est un joueur de rugby à XV international namibien évoluant au poste de centre. Ses frères Ryan et Sergio sont eux aussi internationaux namibiens.

Carrière

En club

Darryl de la Harpe commence sa carrière en Afrique du Sud avec l'académie des Natal Sharks. Il fait ses débuts professionnels en 2009 avec la province des Falcons en Vodacom Cup.

En 2010, il retourne jouer dans son pays natal avec la province des Namibia Welwitschias qui dispute la Vodacom Cup.

Également en 2010, il rejoint le club roumain du Farul Constanța en SuperLiga. Il joue quatre saisons avec ce club, avant de rentrer en Namibie en 2014.

En 2014, il rejoint le club amateur des Western Suburbs qui évolue dans le championnat namibien, ainsi que la province des Namibia Welwitschias qui dispute la Vodacom Cup (puis le Rugby Challenge) à partir de 2015.

En , il rejoint en cours de saison le club anglais des Yorkshire Carnegie en Championship, où il retrouve son ancien sélectionneur Phil Davies. Il ne dispute qu'une seule rencontre avec sa nouvelle équipe, avant de blesser, puis de voir la saison être écourtée par la pandémie de Covid-19.

Il arrête sa carrière de joueur dans la foulée, et devient membre de comité de sélection pour l'équipe nationale namibienne.

En équipe nationale

Darryl de la Harpe obtient sa première cape internationale avec l'équipe de Namibie le  à l'occasion d'un match contre l'équipe de Russie à Windhoek.

Il est sélectionné dans le groupe namibien participant à la coupe du monde 2011 en Nouvelle-Zélande. Il dispute quatre matchs de cette compétition, contre les Fidji, les Samoa, l'Afrique du Sud et le pays de Galles.

Il fait partie du groupe namibien choisi par Phil Davies pour participer à la coupe du monde 2015 en Angleterre. Il dispute deux matchs de cette compétition, contre les Tonga et la Géorgie.

En , il retenu par le sélectionneur Phil Davies pour disputer sa troisième coupe du monde au Japon. Il dispute une seule rencontre, contre la Nouvelle-Zélande, obtenant à cette occasion sa cinquantième sélection sous le maillot namibien. Peu après la compétition, il met un terme à sa carrière internationale.

Palmarès

En club
Néant

En équipe nationale
 50 sélections avec la Namibie entre 2010 et 2019
 50 points (10 essais)
 Participation aux coupes du monde 2011 (4 matchs), 2015 (2 matchs) et 2019 (1 match).

Notes et références

Liens externes

Joueur international namibien de rugby à XV
Joueur des Falcons
Joueur du RCJ Farul Constanța
Joueur de Leeds Carnegie
Centre (rugby à XV)
Naissance en octobre 1986
Naissance à Windhoek

redpajama_set_name: RedPajamaWikipedia


My life is busy busy busy. Iceland last week. New York weekend, arriving in London today to start work on my latest film.
Maybe I can make some time to visit the Olympics which start this week. Instead of marrying yet another actress, I could find an athlete for my fourth wife. Some of those gymnasts and beach volleyball girls are gorgeous. If any of them are keen on marrying a movie giant and living legend, and selling all her platform shoes, I'll take her down to the Scientology offices in Tottenham Court Road and get her signed up.


The captivating image below, is segment of 2011 Hyundai Sonata For Sale post which is categorised within Hyundai, and posted at November 29th, 2018 02:57:38 AM by bulletbeltnz.
Here is required clue on . We have the greatest step for . Check it out for yourself! You can get 2011 Hyundai Sonata For Sale 2011 Hyundai Sonata Gls In Aberdeen Md Carnation guide and see the latest 2011 Hyundai Sonata For Sale in here.


Friday, April 21, 2017 - Applications are now available for students interested in serving as student council rep or class officer for the 2017-2018 school year. See Mr. Beck or your class advisor for an application. All applications are due at 3:15 on Wednesday, May 3.
There will be a short meeting for students in all Spanish classes during activity period. Please report to the cafeteria for information on Cinco de Mayo activities. All current Spanish class students are asked to attend.
Attention science fair participants: All students who participated in science fair this year must meet in the Atrium on Tuesday at 11:30 for a group picture.
This is a reminder that 7th and 8th grade Writer's Ink participants should come to Ms. Dorosz's room during Activity Period today.
Activity Period today will be for FFA. FFA will meet in Mr. Poulson's room. All other students should report to homeroom.
Thursday, April 20, 2017 - Applications are now available for students interested in serving as student council rep or class officer for the 2017-2018 school year. See Mr. Beck or your class advisor for an application. All applications are due at 3:15 on Wednesday, May 3.
Students donating blood today should check the updated donor schedule posted in various locations in the hallways. Times have been changed to minimize missed class time.
Attention 7th graders and NHS members: There will be a lunch bunch meeting today.
Attention all ping pong tournament participants: Please play your games in a timely manner. The first round of games should finish this week. Remember 1st and 2nd places will be receiving prizes.
Wednesday, April 19, 2017 - Today is the prize day for 6th, 7th and 8th graders for the magazine/cookie dough/tumbler fundraiser. Please report to the JH gym for 6th period.
Due to the ACT test taking place in the study hall most of the day, the ping pong tournament will not take place today, but will continue tomorrow. We ask that all students in the area of the study hall, on both the first and second floors, be as quiet as possible while the test is in progress, especially during lunchtime activities. No students should be in the north commons area anytime today.
FCA today will take place in room 150 today due to the ACT test in the study hall.
Applications are now available for students interested in serving as student council rep or class officer for the 2017-2018 school year. See Mr. Beck or your class advisor for an application. All applications are due at 3:15 on Wednesday, May 3.
Attention 14U summer softball players: Please stop by the office and pick up a practice and game schedule. The first practice will be tomorrow, Thursday, at 6:00.
Tuesday, April 18, 2017 - This is a reminder that tomorrow will be the prize day for 6th, 7th and 8th graders for the magazine/cookie dough/tumbler fundraiser. It will be in the JH gym starting at 12:50.
Juniors: This is a reminder that the ACT is on Wednesday, April 19th in the study hall. No cell phones or smart watches are allowed. No mechanical pencils. Bring a light snack for break. Thanks!
Girls: Pettisville – 81 Edon – 48 North Central – 23. Grace Schnitkey set a school record at 37'5" for the shot put.
Monday, April 17, 2017 - This is a reminder that Wednesday will be the prize day for 6th, 7th and 8th graders for the magazine/cookie dough/tumbler fundraiser. It will be in the JH gym starting at 12:50.
High School Track Results from Thursday at Wayne Trace: Girls' team was runner-up! Boys team came in 11th place.
JH Track Results from Thursday at Patrick Henry Invitational: Girls team placed 5th. Boys team placed 13th.
Eat at Mancino's today! Gretchen Lee is a finalist and presenter at the International Science and Engineering Fair in LA next month. A portion of Mancino's sales goes toward funding her trip.


text:
The Marijuana Conspiracy - THE REAL REASON HEMP IS ILLEGAL
Modified on: January 25th, 2011
Please also see the article titled "The Truth about Drugs". I've reposted this article here because Hemp is a very useful plant, and the conspiracy against it interests me, not because I believe it is ok to smoke cannabis to get "high". The best, REAL, "high" comes from direct contact with The Father.
http://www.world-mysteries.com/marijuana1.htm
THE REAL REASON HEMP IS ILLEGAL
by dugx [at] sbcglobal [dot] net (Doug Yurchey)
And I will raise up for them a plant of renown, and they shall be no more consumed with hunger in the land.
-- Ezekiel 34/29
THE REAL REASON CANNABIS HAS BEEN OUTLAWED HAS NOTHING
TO DO WITH ITS EFFECTS ON THE MIND AND BODY.
MARIJUANA is DANGEROUS. Pot is NOT harmful to the human body or mind. Marijuana does NOT pose a threat to the general public. Marijuana is very much a danger to the oil companies, alcohol, tobacco industries and a large number of chemical corporations. Various big businesses, with plenty of dollars and influence, have suppressed the truth from the people.
The truth is if marijuana was utilized for its vast array of commercial products, it would create an industrial atomic bomb! Entrepreneurs have not been educated on the product potential of pot. The super rich have conspired to spread misinformation about an extremely versatile plant that, if used properly, would ruin their companies.
Where did the word 'marijuana' come from? In the mid 1930s, the M-word was created to tarnish the good image and phenomenal history of the hemp plant...as you will read. The facts cited here, with references, are generally verifiable in the Encyclopedia Britannica which was printed on hemp paper for 150 years:
* All schoolbooks were made from hemp or flax paper until the 1880s; Hemp Paper Reconsidered, Jack Frazier, 1974.
* It was LEGAL TO PAY TAXES WITH HEMP in America from 1631 until the early 1800s; LA Times, Aug. 12, 1981.
* REFUSING TO GROW HEMP in America during the 17th and 18th Centuries WAS AGAINST THE LAW! You could be jailed in Virginia for refusing to grow hemp from 1763 to 1769; Hemp in Colonial Virginia, G. M. Herdon.
* George Washington, Thomas Jefferson and other founding fathers GREW HEMP; Washington and Jefferson Diaries. Jefferson smuggled hemp seeds from China to France then to America.
* Benjamin Franklin owned one of the first paper mills in America and it processed hemp. Also, the War of 1812 was fought over hemp. Napoleon wanted to cut off Moscow's export to England; Emperor Wears No Clothes, Jack Herer.
* For thousands of years, 90% of all ships' sails and rope were made from hemp. The word 'canvas' is Dutch for cannabis; Webster's New World Dictionary.
* 80% of all textiles, fabrics, clothes, linen, drapes, bed sheets, etc. were made from hemp until the 1820s with the introduction of the cotton gin.
* The first Bibles, maps, charts, Betsy Ross's flag, the first drafts of the Declaration of Independence and the Constitution were made from hemp; U.S. Government Archives.
* The first crop grown in many states was hemp. 1850 was a peak year for Kentucky producing 40,000 tons. Hemp was the largest cash crop until the 20th Century; State Archives.
Manmade Law
Terminators Galore!
Science for Peace Bulletin May 2005 Volume 25, Issue 2 - Terminators Galore!
by Joe Cummins
The author is Professor Emeritus at the University of Western Ontario.
In Canada, the Seed Sector Review advisory committee issued a report calling for changes to legislation to
(A) collect royalties on farm-saved seeds,
(B) compel farmers to buy officially certified seed, and
(C) terminate the right of farmers to sell common seed.
The report was financed by the Agriculture Ministry at a cost of nearly a million dollars to the Canadian taxpayers but essentially rubber-stamped the demands of multinational agricultural corporations (1). The onerous licensing requirements of the biotechnology industry are to be extended to all seeds, imposing a form of serfdom on any remaining independent farmers. In the future it is likely that even home gardeners will face the loony corporate payments for those willing to spy on neighbors and report covert seed activity. We may be entering a time when the Royal Canadian Mounted Police are required to raid grow operations such as a row of radishes in a backyard garden.
The development of "terminator" technology goes hand in hand with the corporate move to control production and use of seeds. Terminator technology is the use of genetic engineering to produce seeds that can be used only once. The progeny of such seeds would either produce no flowers or produce seeds that provide grain or oil but cannot germinate to produce as new plants. In other words, terminator blocks viable seed production, production of pollen or ovule or the production of flowers. http://i.am/jah/gmterm.htm
Energy, Oxygen Consumption and Production
Modified on: January 21st, 2008
From "Coats & Schauberger - Living Energies - Viktor Schauberger's Brilliant Work With Natural Energy Explained", page 32
The amount of energy a human being requires for survival over one year is averagely 1,000 kilowatt-hours (kWh). According to Walter Schauberger's calculations a human being operates at the relatively insignificant energy level of an electric light bulb, namely 100 watts.1,000kWh is also the average amount of energy received from the Sun annually per square metre of ground surface. Theoretically, therefore, all a human being needs to do is to stand on its square metre and obtain its energy from the Sun. Were it able to transmute this energy directly, then its annual energy requirement would be satisfied. This amount of energy,however, is associated with the consumption of 260kg of molecular oxygen (O2) per year, which is equal to 29.659gr of oxygen per hour. These are the amounts of energy and oxygen required by a human being for the maintenance of bodily functions, reproduction, creativity and intelligent thought for a whole year.
Viktor Schauberger quotes
The only possible outcome of the purely categorizing compart-mentality, thrust upon us at school, is the loss of our creativity. People are losing their individuality, their ability to see things as they really are and thereby their connection with Nature. They are fast approaching a state of equilibrium impossible in Nature, which must force them into a total economic collapse, for no stable system of equilibrium exists. Therefore the principles upon which our actions are founded are invalid, because they operate within parameters that do not exist.
Our work is the embodiment of our will. The spiritual manifestation of this work is its effect. When such work is done properly, it brings happiness, but when carried out incorrectly, it assuredly brings misery.
"They call me deranged. The hope is that they are right! It is of no greater or lesser import for yet another fool to wander this Earth. But if I am right and science is wrong, then may the Lord God have mercy on mankind!" ... ""How else should it be done then?", was always the immediate question. The answer is simple: "Exactly in the opposite way that it is done today!"" More quotes to follow...
Who was Viktor Schauberger?
by Morten Ovesen, the Malmö group.
http://home.swipnet.se/~w-58759/intro.html
(swedish version here)
Viktor Schauberger around 40 years old.
A brief biography could be like this:
Viktor Schauberger was an Austrian forester who was active during the first half of the 19:th century. He had a huge beard and a friendly laughter, this he combined with an uncompromising belief in himself and his ideas. He was obstinate in combination with a choleric temper. He was a good drawer and probably a skilled craftsman. Even if Viktor was not schooled the academic way he had a deep knowledge in biology, physics and chemistry. His sense and understanding on how water flows in the nature was exceptional. From his observations he formulated his new hydrodynamic basic theory. His friends and opponents described him as highly intelligent and with this intellectual sharpness he made a deep cut in his (and ours) physical paradigm.
The Climate of Man
Modified on: May 23rd, 2005
For a thorough and understandable account of recent climate change research, I recommend The Climate of Man, by Elizabeth Kolbert published recently in the New Yorker. Published in 3 parts: 25 April, 2 May & 9 May 2005
Part 1 http://www.newyorker.com/fact/content/050425fa_fact3
Reading this has added impetus to my preparations for being more self sustaining because the changes may be coming at the same time as the energy crunch.
Last Paragraph
"Climate records also show that we are steadily drawing closer to the temperature peaks of the last interglacial, when sea levels were some fifteen feet higher than they are today. Just a few degrees more and the earth will be hotter than it has been at any time since our species evolved. http://i.am/jah/evolut.htm Scientists have identified a number of important feedbacks in the climate system, many of which are not fully understood; in general, they tend to take small changes to the system and amplify them into much larger forces. Perhaps we are the most unpredictable feedback of all. No matter what we do at this point, global temperatures will continue to rise in the coming decades, owing to the gigatons of extra CO2 already circulating in the atmosphere. With more than six billion people on the planet, the risks of this are obvious. A disruption in monsoon patterns, a shift in ocean currents, a major drought - any one of these could easily produce streams of refugees numbering in the millions. As the effects of global warming become more and more apparent, will we react by finally fashioning a global response? Or will we retreat into ever narrower and more destructive forms of self-interest? It may seem impossible to imagine that a technologically advanced society could choose, in essence, to destroy itself, but that is what we are now in the process of doing." http://i.am/jah/envird.htm
Harvesting Chaos
By Jason Mark, AlterNet. Posted May 11, 2005.
http://www.alternet.org/story/21964
Farmers in the U. S. and around the world are likely to face serious challenges in the coming decades as new kinds of weather test their ability to bring us the food we all depend on.
Most keyboard jockeys would die for the view from Orin Martin's office window: apple trees in blossom, lines of citrus, dozens of varieties of flowers and neat rows of peppers, garlic and potatoes. Martin is a farmer in Santa Cruz, Calif., where for last 30 years he has been an instructor at the University of California's agro-ecology program, one of the nation's oldest organic agriculture curriculums. Strong, stout and built like a tree trunk, with sun-bleached cornsilk hair, thick hands, and deep crowsfeet around his eyes from years of working outdoors, Martin loves farming, and it shows whenever he starts to talk about his craft, as he will happily do for hours on end.
Borneo´s ancient jungles offer new insight into modern life: it sucks
MALINAU, Indonesia - Many of us suspect it as we trudge to work in the morning, but scientists studying some of the last primitive tribes in deepest Borneo say they now have proof -- modern life is, indeed, rubbish.
A team of experts has spent months comparing the lives of the Punan people, who still live as hunter-gatherers in the forest of Indonesian Borneo, with those of tribe members who have been lured away by civilisation.
A Community Solution to Peak Oil: An interview with Megan Quinn
Published on: May 1st, 2005
Modified on: May 1st, 2005
http://www.energybulletin.net/5721.html
by Aric McBay
"We advocate for a transition to small, sustainable communities "
Megan Quinn is the Outreach Director of Community Service, Inc. Community Service is a non-profit organization founded in 1940 that has advocated for small, local communities as the most fulfilling, healthy way to live. It's latest program, The Community Solution, seeks to bring about the re-emergence of the small community and a more agrarian, low energy-use way of life, as the solution for "Peak Oil." http://i.am/jah/greeneco.htm
Debate over a leaching chemical heats up
Published on: April 18th, 2005
Modified on: April 18th, 2005
By Elizabeth Weise, USA TODAY 4/14/2005
http://www.usatoday.com/news/health/2005-04-14-leaching-chemical_x.htm
Is it possible that a chemical's effect is in the eye of the beholder?
That's the implication of a paper published this week in a prominent environmental health journal. http://i.am/jah/environ.htm
It concerns a debate over the safety of low doses of a chemical used to make hard, clear plastics such as those found in baby bottles, food-storage containers and the lining of soda cans.
How to Survive the Crash and Save the Earth
by Ran Prieur December 19, 2004
http://ranprieur.com/essays/saveearth.html
1. Abandon the world. The world is the enemy of the Earth. The "world as we know it" is a deadly parasite on the biosphere. Both cannot survive, nor can the world survive without the Earth. Do the logic: the world is doomed. If you stay on the parasite, you die with it. If you move to the Earth, and it survives in something like its recent form, you can survive with it.
Why Gas Costs $3.00 Per Gallon
Published on: April 3rd, 2005
Modified on: April 3rd, 2005
Charles E. Carlson
Strait Gate Ministry
http://www.straitgateministry.org
I was gassing my car beside a younger man filling a SUV with a big gas tank. I asked him, "Hey Explorer, this doesn't seem like much a bargain to me." He replied that he had moved to the Valley five years ago and gas was $.99 at the same pump then.
My turn: "Do you know for sure why the price so high?" He had some ideas, "it's not because it is mostly taxes, as in Europe, and at least they get something for it.... in programs." He went on, "I'm not sure we get much for our high prices."
"Has it occurred to you that this is simply the cost of paying for the war?" I asked. Explorer wanted to know how I could know this, and here is what I told him:
Why Our Food is So Dependent on Oil
Contributed by Norman Church
also see the article titled "Eating Fossil Fuel"
"Concentrate on what cannot lie. The evidence..." -- Gil Grissom
Eating Oil was the title of a book which was published in 1978 following the first oil crisis in 1973 (1). The aim of the book was to investigate the extent to which food supply in industrialised countries relied on fossil fuels. In the summer of 2000 the degree of dependence on oil in the UK food system was demonstrated once again when protestors blockaded oil refineries and fuel distribution depots. The fuel crises disrupted the distribution of food and industry leaders warned that their stores would be out of food within days. The lessons of 1973 have not been heeded.
The state of the world? It is on the brink of disaster
Published on: April 2nd, 2005
http://news.independent.co.uk/world/science_technology/story.jsp? story=624667
An authoritative study of the biological relationships vital to maintaining life has found disturbing evidence of man-made degradation. Steve Connor reports
Matthew 24:22 And except those days should be shortened, there should no flesh be saved: but for the Elect's sake those days shall be shortened. http://i.am/jah/kofkad.htm
The Long Emergency What's going to happen as we start running out of cheap gas to guzzle?
Published on: March 31st, 2005
Modified on: March 31st, 2005
By James Howard Kunster
http://www.rollingstone.com/news/story/_/id/7203633? rnd=1111797407968&has- player=true&version=6.0.12.1040
"Our lives will become profoundly and intensely local. . . Food production is going to be an enormous problem in the Long Emergency. As industrial agriculture fails due to a scarcity of oil- and gas-based inputs, we will certainly have to grow more of our food closer to where we live, and do it on a smaller scale. The American economy of the mid-twenty-first century may actually center on agriculture, not information, not high tech, not "services" like real estate sales or hawking cheeseburgers to tourists. Farming. This is no doubt a startling, radical idea, and it raises extremely difficult questions about the reallocation of land and the nature of work." http://i.am/jah/greeneco.htm
The Most Important Thing You Don't Know About "Peak Oil"
Published on: March 23rd, 2005
http://deconsumption.typepad.com/deconsumption/
"When nothing happens for a long time, people begin to assume that nothing ever happens. But, sooner or later, something always happens."-- Steven Lagavulin
There's an aspect to the concept of "Peak Oil" which I don't believe is sufficiently grasped by people following the subject. It's the understanding that the most dangerous aspect we face is not really the state of the resource itself -- the actual "Peak" dates or depletion rates, or any of the physical realities of oil supply/demand -- but rather the reaction in the oil markets upon realization that the issue no longer even important.
The Lean Economy: A Vision of Civility for a World in Trouble
Published on: March 14th, 2005
Modified on: March 14th, 2005
This entire lecture can be found at
http://www.feasta.org/documents/review2/fleming.htm
--paul, webmaster of http://globalcircle.net
peace and liberty, sustainability and justice
DAVID FLEMING, The Annual Feasta Lecture
The coming oil shock is not the only reason why the prospects for the global market economy and for civilisation as a whole look poor. A complex system, such as a car or a human body, tends at the end of its life to fail in many different ways at about the same time. http://i.am/jah/greeneco.htm
A second sign of systems failure is climate change. http://i.am/jah/signs.htm
Thirdly, there is the complex and still poorly-understood issue of how a mature market economy can, even under ideal conditions, sustain the perpetual economic growth which is an essential condition for its stability: along with Richard Douthwaite and others I argue that it simply cannot do so.
http://i.am/jah/socio.htm
Fourthly, there is the increasingly intense phenomenon of disengagement  a failure of participation, consent, shared values, social cohesion  in short, a failure of social capital which ultimately matures into insurgency, both from dissidents on the outside of modern society and from within it. The system is failing in many other ways: soil fertility, water, hormone disruptors, the collapse of fisheries  but that is enough for now. http://i.am/jah/syst.htm
If we put all these together, then we find ourselves looking at the climax of the market economy, followed by its comprehensive failure, very high unemployment and an atrophy of government revenues, leading towards what could be called hyperunemployment - that is, unemployment so high that government cannot fund subsistence payments and pensions. Unemployment on this scale means no income. No income means no food. No food means the collapse of urban populations on the scale experienced by former civic societies  the Romans and some two dozen other accomplished civilisations  in the closing phase of their life-cycles. I hope I am wrong or, rather, that it doesn't come to this. But it does seem obvious to me that the opportunity is rapidly passing in which it will be possible to avoid the high levels of mortality that have been associated with the collapse of other civic societies.
Money, Banking, The Fed, IMF
Buy local produce and save the world: why food costs £4bn more than we think
Published on: March 7th, 2005
Modified on: March 7th, 2005
By Steve Connor, Science Editor
http://news.independent.co.uk/uk/this_britain/story.jsp?story=616308
Every major supermarket spends millions of pounds a day making sure their
warehouse-sized stores are brimming with products ranging from Kenyan
mangetout to Scottish potatoes.
But the true costs of producing and transporting food to and from the
supermarket shelf are far greater than any checkout receipt suggests. A
study that tries for the first time to calculate the real size of our food
bill has found we are indirectly spending billions of pounds a year extra
on food without realising it.
Government statistics show each person in Britain spends an average of
£24.79 a week on food. But if the hidden costs of transport and the
impact on the environment were included, this bill would rise by 12 per
cent, the study found.
Mocking Our Dreams
http://www.monbiot.com/archives/2005/02/15/mocking-our-dreams/
Climate change exposes progress as a myth
By George Monbiot. Published in the Guardian 14th February 2005
It is now mid-February, and already I have sown eleven species of vegetable. I know, though the seed packets tell me otherwise, that they will flourish. Everything in this country - daffodils, primroses, almond trees, bumblebees, nesting birds - is a month ahead of schedule. And it feels wonderful. Winter is no longer the great grey longing of my childhood. The freezes this country suffered in 1982 and 1963 are - unless the Gulf Stream stops - unlikely to recur. Our Summers will be long and warm. Across most of the upper northern hemisphere, climate change, so far, has been kind to us. http://i.am/jah/signs.htm
And this is surely one of the reasons why we find it so hard to accept what the climatologists are now telling us. In our mythologies, an early Spring is a reward for virtue. "For, lo, the Winter is past," Solomon, the beloved of God, exults. "The rain is over and gone;/The flowers appear on the earth; the time of the singing of birds is come".(1) How can something which feels so good result from something so bad?
Vietnamese victims of Agent Orange sue US chemical companies
Chickens coming home to roost.
http://news.independent.co.uk/world/americas/story.jsp?story=616652 INDEPENDENT (London) 04 March 2005
By Andrew Buncombe in Washington
Vietnamese citizens who say they have suffered a lifetime of health problems after being poisoned by Agent Orange during the Vietnam War are suing the American chemical companies that provided the Pentagon with the toxic defoliant.
Expert says Saudi oil may have peaked
Published on: March 1st, 2005
By Adam Porter Tuesday 22 February 2005, 6:46 Makka Time, 3:46 GMT
http://english.aljazeera.net/NR/exeres/80C89E7E-1DE9-42BC-920B-91E5850FB067.
As oil prices remain above $45 a barrel, a major market mover has
cast a worrying future prediction.
Energy investment banker Matthew Simmons, of Simmons & Co International,
has been outspoken in his warnings about peak oil before. His new
statement is his strongest yet, "we may have already passed peak
Apocalypse now: how mankind is sleepwalking to the end of the Earth
Published on: February 10th, 2005
The ONLY Survival Plan manual is available from:-
http://i.am/thewayhome/
http://news.independent.co.uk/world/environment/story.jsp?story=608209
Floods, storms and droughts. Melting Arctic ice, shrinking glaciers, oceans
turning to acid. The world's top scientists warned last week that dangerous
climate change is taking place today, not the day after tomorrow. You don't
believe it? Then, says Geoffrey Lean, read this..
War on Plastic: Rejecting the Toxic Plague
Published on: February 9th, 2005
Modified on: February 9th, 2005
truthout: War on Plastic: Rejecting the Toxic Plague
http://i.am/jah/chiefdan.htm
http://i.am/jah/blescur.htm
http://www.culturechange.org/e-letter-plastics.html
truthout article:
http://www.truthout.org/docs_2005/020705X.shtml
By Jan Lundberg
t r u t h o u t | Perspective
Plastic as toxic trash is barely an issue with health advocates,
environmentalists, and even those of us looking toward the
post-petroleum world. Instead, "recycling" and future "bioplastics"
distract people from keeping plastic out of their lives. As the
evidence from our trashed oceans and damage to human health mounts,
plastic can no longer be conveniently ignored. The days of naive trust
and denial need to be put behind us, and a war on plastics declared now.
Fortunately, San Francisco's Board of Supervisors has before it a
first-in-the-nation bag-fee ordinance; the vote is this Tuesday. All
major grocery stores would charge customers 17 cents for every
shopping bag, plastic as well as paper. Although the logic and the
follow through seem well designed, much pressure is being put on the
Supervisors to reject the ordinance. (An action alert is at the end of
this article.)
Litter bothers all of us, and a smaller number of us worry about
petroleum used for dubious purposes in an age of war for oil and
global warming caused by fossil fuels. Some of us have learned how the
plastic disaster in the middle of the Pacific, for example, has
resulted in death for millions of creatures who confuse the
toxin-laden plastic particles with krill and plankton. But the cost to
humans in general is maybe the bigger story yet to hit.
One recently discovered principle about exposure to toxic
chemicals is that very low concentrations can trigger worse damage in
many individuals than larger exposures, in part due to the sensitivity
of our genes. Also, potency is not possible to predict when various
plastics' chemicals combine in our bodies and cause synergistic
reactions later on.
Today's extreme dependence on plastics can easily be acknowledged.
They are pervasive, cheap, effective, and even "essential." The list
of plastic types goes far beyond what we can start listing off the top
of our heads. If a product or solid synthetic material is not clearly
wood or metal, chances are it is plastic - almost entirely from
petroleum. Computers, telephones, cars, boats, teflon cookery, toys,
packaging, kitchen appliances and tools, and imitations of a multitude
of natural items, are but part of the world of plastics. Living
without them would seem unthinkable. However, these plastics are
essential to what? Answer: essential to a lifestyle that is fleeting -
historically speaking.
There are people who say they cannot live without something, and
those who yearn to do so. People think it is a matter of choice.
However, when the coming petroleum supply crunch hits and cannot be
alleviated by more production - world extraction is soon passing its
peak - a combination of factors will deprive global consumers of the
constant flow of new products now taken for granted. Therefore, we
will not have a choice when we must suddenly start doing without. The
supply of petroleum products such as plastics will dry up thanks to
the extreme market response that we can anticipate as soon as geologic
reality triggers panic. The peak of oil extraction is imminent, with
natural gas to follow soon after. Most plastic bags are made from
natural gas (methane).
The ongoing use and "disposal" of plastics is a health disaster
because we are never rid of the stuff. All the plastic that's ever
been produced is still with us today ... unless, of course, it has
been incinerated, which spews a plethora of toxic substances into the
air. But wait, hasn't there been progress? Plastic grocery sacks are
40 per cent lighter today than they were in 1976, and plastic trash
bags are 50 per cent lighter today than in the 1970s. However, growth
of the market cancels out any gains, and plastic's pollution just
accumulates, whether in the air, water or soil - or our bodies. On
many a tropical island beach where plastic junk outnumbers shells,
paradise is clearly trashed by modern "convenience." What is unseen is
the bioaccumulation of the inherent and hydrophobic toxins adhering to
plastics that goes up the food chain to us, even in Kansas eventually.
From: Sharon [dot] Seier [at] bbraun [dot] com
Date: Wed, 2 Feb 2005 13:34:19 -0500
I grew up in the forties and fifties with a practical parent, my mother, God love her, who ironed Christmas wrapping paper and reused it and who washed aluminum foil after she cooked in it, then reused it. She was the original recycle queen, before they had a name for it.
http://i.am/jah/greeneco.htm
It was the time for fixing things...a curtain rod, the kitchen radio, the screen door, the oven door, the hem in a dress. Things we keep.
Just Keep Planting
http://www.inspirationline.com/EZINE/31JAN2005.htm -
by Adam Khan
When Paul was a boy growing up in Utah, he happened to live near an old copper smelter, and the sulfur dioxide that poured out of the refinery had made a desolate wasteland out of what used to be a beautiful forest.
When a young visitor one day looked at this wasteland and saw that there was nothing living there — no animals, no trees, no grass, no bushes, no birds ... nothing but fourteen thousand acres of black and barren land that even smelled bad — well, this kid looked at the land and said, "This place is crummy." Little Paul knocked him down. He felt insulted. But he looked around him and something happened inside him. He made a decision: Paul Rokich vowed that some day he would bring back the life to this land.
Global warming: scientists reveal timetable
Published on: February 3rd, 2005
A detailed timetable of the destruction and distress that global warming is likely to cause the world was unveiled yesterday.
It pulls together for the first time the projected impacts on ecosystems and wildlife, food production, water resources and economies across the earth, for given rises in global temperature expected during the next hundred years.
The resultant picture gives the most wide-ranging impression yet of the bewildering array of destructive effects that climate change is expected to exert on different regions, from the mountains of Europe and the rainforests of the Amazon to the coral reefs of the tropics.
... continued, follow link for full article....
U.S. Officials Accuse DuPont of Concealing Teflon Ingredient's Health Risk
Published on: January 22nd, 2005
Modified on: January 22nd, 2005
January 18, 2005 — By Michael Hawthorne, Chicago Tribune
PARKERSBURG, W. Va. — More than 50 years after DuPont started producing Teflon near this Ohio River town, federal officials are accusing the company of hiding information suggesting that a chemical used to make the popular stick- and stain-resistant coating might cause cancer, birth defects and other ailments.
Environmental regulators are particularly alarmed because scientists are finding perfluorooctanoic acid, or PFOA, in the blood of people worldwide and it takes years for the chemical to leave the body. The U.S. Environmental Protection Agency reported last week that exposure even to low levels of PFOA could be harmful.
Americans are trying to discredit me, claims Chief Scientist
http://news.independent.co.uk/uk/environment/story.jsp?story=601497
The Government's chief scientific adviser is being aggressively
targeted by American lobbyists trying to discredit his view that
man-made pollution is behind global warming.
In an interview with The Independent, Sir David King said he was being
followed around the world by people in the pay of vested-interest
groups that want to cast doubt on the science of climate change.
Oil Extraction Stresses Earth, Contributing to Earthquakes and Tsunamis
Photo by jasonbondy
Indonesian Tsunami Probably Tripped by Exxon-Mobile Works
ACEH -- Exxon-Mobile has a 60 bscf/day facility near Aceh. In the span of 4 years it extracts more than one cubic mile of natural gas from the formations directly at what ended up being the epicenter of the Aceh earthquake. The gas field there has been producing for much longer than four years, and is one of the largest such facilities in the world.
By JAH
I have been asked, by one of my students, to write something about the Indonesian earthquake near Aceh and the tsunami it created, and its possible causes, and so have; now that sufficient time has passed for you all to see and hear all about it; decided to make some comments on it.
Obviously the first comment to make is that it is one of the prophesied signs of "The END Times" and that they (earthquakes) are becoming more wide-spread, more frequent and more severe as we get closer to "The END". So you can expect them to get even more-so as we get ever closer to "The END":-
http://i.am/jah/signs.htm
There has been speculation on the Internet that the earthquake near Aceh was caused by man, through sonic-surveying of the area looking for new oil-reserves, causing whales and dolphins to beach themselves because of the intense pain it causes them, and/or a nuclear device, or HAARP.
Whilst any or all of these causes is quite possible, there is also another more probable and simpler possibility that could very easily have caused this earthquake and many others around the world.
That other cause is the extraction of oil and gas from the immediate area around Aceh, and from around the world where other earthquakes occur.
World oil-production alone (not including natural-gas) is approximately 80 – 100 million barrels of oil per day. Yes, 80 - 100 million barrels per DAY. That is a tremendous volume of oil, too large to even visualise in your mind's eye, and it is being extracted EVERY DAY. The world's oil-fields are pressurised naturally by natural-gas within the oil, and you have all probably seen "oil-gushers" on films about oil-strikes, and how the oil shoots high into the air as it is forced out of the ground by the natural-gas-pressure in the under-ground oil-field.
Weather Goes Wild
Modified on: January 9th, 2005
http://www.unknowncountry.com/news/?id=4355
Brazil has so few tornadoes that it doesn't even have the equipment to forecast them, but the town of Criciúma (population 180,000) got hit with two of them on Monday. In parts of Alaska, it's strangely warm—so warm that the annual winter dog weight-pulling contest in South-central Alaska has been canceled because there's not enough snow. And icebergs have been seen in the waters of New Zealand for the first time since 1948.


Keto Diet Plan Grocery List – Complete Guide – If you find yourself in a conversation about dieting or weight loss, chances are you'll hear of the ketogenic, or keto, diet. That's as the keto diet has become among typically the most popular methods worldwide to shed extra weight and improve health. Research has demonstrated that adopting this low-carb, high-fat diet can promote weight loss and even improve certain conditions such as for example type 2 diabetes and cognitive decline. This information explains what to consume and avoid while following a keto diet, because being on a diet isn't the easiest thing in the world, especially once you don't know what you should eat. We've come up with this ketogenic diet food list to help people out there make decisions on what they are eating and shopping for. Below, you'll find the best grocery list for anyone starting the keto diet. Plus, to produce it super easy and delicious for you personally, we've whipped up a ketogenic diet meal plan in order to take the guesswork out of keto.
Keto Diet Plan Grocery List – Complete Guide – Fats could be the majority of one's daily calorie intake when you're on a ketogenic diet, so choices should be manufactured together with your likes and dislikes in mind. They could be combined in lots of various ways to increase your diet sauces, dressings, or perhaps simply topping off an item of meat with butter.
Additionally you want to have a balance between your omega 3's and omega 6's, so eating things such as wild salmon, tuna, trout, and shellfish will help supply a balanced diet of Omega-3's. If that you don't like fish, or perhaps prefer not to consume it, we suggest going for a small fish oil supplement. You can even take krill oil for omega 3's if you are allergic.
Keep an eye on your own intake for nut or seed based foods, while they can be very full of inflammatory omega 6's. These generally include items like almonds, walnuts, pine nuts, sunflower oil and corn oil. Eating fatty fish and animal meat, keeping snacking to a minimum, and not over-indulging in dessert items that are dense in almond flour is normally enough to keep your omega's at normal ranges.
Raw and organic milk products are preferred here, if available. Highly processed dairy normally has 2-5x how many carbohydrates as raw/organic dairy so it does add up over time. Make sure to choose full fat products over fat-free or low-fat as they will have a lot more carbs and less ìfilling effects.
Dairy is a good way to incorporate extra fats into meals by creating sauces or fatty side dishes like creamed spinach, but remember that it does have protein inside it as well. You ought to always take this into consideration when pairing dairy with protein-heavy dishes.
Many people experience slower fat loss when over-consuming cheese. If you notice that you have hit a plateau or slowed down in weight loss, you might want to consider reducing the amount of dairy you eat.
Your absolute best bet in regards to protein is choosing pasture-raised and grass-fed. This will minimize your bacteria and steroid hormone intake. Try to find the darker meat where possible with poultry, since it is much fattier than white meat. Eating fatty fish is a superb way to obtain omega 3's in as well.
When it comes to red meat, there's not a lot to avoid. Cured meats and sausages can occasionally have added sugars and added processed ingredients. In the event that you eat steak, try to decide on fattier cuts like ribeye. If you like hamburger meat (ground beef), try to choose fattier ratios like 85/15 or 80/20 in a few cases.
Something you do have to be careful of when dealing with meat is your protein intake. Too much protein on a ketogenic diet can lead to lower quantities of ketone production and increased production of glucose. You want to shoot for nutritional ketosis, so you must not over-consume on protein.
Try to stabilize the protein in your meals with fattier side dishes and sauces. If you decide on to consume lean beef, you need to be especially careful with the portioning of protein. Jerky and other beef snacks can add up in protein very fast, so be sure to pair it with something fatty like cheese!
Keto Diet Plan Grocery List – Complete Guide – When following a ketogenic diet, you intend to get the majority of your carbohydrates from vegetables such as for example leafy greens, asparagus, broccoli, cauliflower and other vegetables that grow above ground. Avoid starchy vegetables like potatoes, corn and parsnips.
The most effective type of vegetables for a ketogenic diet are full of nutrients and reduced in carbohydrates. These, since many of you are able to guess, are dark and leafy. Something that resembles spinach or kale will belong to this category and would be the best thing to add in what you can.
Attempt to follow cruciferous vegetables that are grown above ground, leafy, and green. If you can choose organic as you can find fewer pesticide residues, but when you can't then don't worry. Studies show that organic and non-organic vegetables still have the exact same nutritional qualities. Both frozen and fresh vegetables are good to eat.
Note: Vegetables that grow below ground can nevertheless be consumed in moderation ñ you have to be mindful about the number of carbs that they have. Usually, underground vegetables can be utilized for flavor (like half an onion for an entire pot of soup) and easily moderated.
Here's a nutritional listing of some of the more commonly consumed vegetables on keto. Bear in mind that the weights are exactly the same of everything listed such that it will impact the skew of the carb counts.
Nuts and seeds are healthy, high-fat and low-carb foods. Nuts and seeds are best when they are roasted to get rid of any anti-nutrients. Frequent nut consumption has been linked to a reduced danger of heart disease, certain cancers, depression and other chronic diseases. Try to avoid peanuts if possible, because they are legumes that are not highly permitted in the ketogenic diet food list.
Typically raw nuts may be used to add flavorings or texture to meals. Some individuals choose to consume them as snacks ñ which can be rewarding but may work against fat loss goals. Snacking, generally speaking, will raise insulin levels and result in slower weight reduction in the long term.
Nuts can be quite a great source of fats, but you always have to remember they do have carbohydrate counts that could mount up quickly. Additionally it is particularly important to see they do contain protein as well. Nut flours especially can add up in protein rather fast ñ so be wary of the total amount you use.
The eight glasses of water we're recommended to drink? Drink those, and then some more. Considering we're made up of about two-thirds water, hydration plays a considerable role inside our everyday life. We recommend that you try to drink as near to a quart of water each day as possible.
Many people choose ketoproof coffee or tea each morning to ramp up energy with added fats. Whilst it is a superb thing, it's also important to consume flavored beverages in moderation. This really is amplified when it comes to caffeine as too much will cause weight loss stalls; try to limit yourself to a maximum of 2 cups of caffeinated beverages a day.
When it comes to topping foods on the keto diet, homemade is obviously best. When possible, it's best to create your own versions of sauces and other condiments to keep at home.
Sauces, gravies, and condiments, on the whole, have lots of a gray area on keto. Generally, if you wish to be strict, you must avoid all pre-made sauces and condiments unless listed below. They can have added sugars or use sweeteners that aren't friendly on the ketogenic diet.
If you decide on to produce your sauces and gravies, you should consider purchasing guar or xanthan gum. It is a thickener that's well known in modern cooking techniques and lends a hand to low carb by thickening otherwise watery sauces. Luckily there are numerous sauces to select from which are high fat and low carb. If you're needing a sauce then consider building a beurre blanc, hollandaise or just brown butter to top meats with.
Spices have carbs inside them, so ensure you are adding them to your counts. Sea salt is preferred over table salt, because it is normally combined with powdered dextrose. Most pre-made spice mixes could have sugars added to them, so be sure you see the nutrition label beforehand to ensure you know what's inside. When you have the choice, never include added sugar into your spice blends or food.
Below you will discover some common herbs and spices that individuals use on a ketogenic diet. Always remember that spices do have carbs included, so you must make sure to adjust your nutrition predicated on this.
When searching for sweeteners, make an effort to go after liquid versions as they don't have added binders (such as maltodextrin and dextrose). They are commonly present in blends like Splenda and can accumulate in carbs very, very quickly. For keto, you wish to attempt to stick to lower glycemic index sweeteners.
Take note that this is a small list of sweeteners that individuals use on keto. There's a great deal of different brands and blends out there ñ we frequently use an assortment of stevia and erythritol in our dessert recipes. You might find something that suits your tastes better, though, just ensure that it's on the acceptable sweetener list.
Various blends. There are many brands available on the market that combine these sweeteners inside their ratios. Be careful and see the ingredients.
For anyone trying to find something only a little closer to real sugar, you should use Xylitol. It cooks and tastes very similar to sugar, but it has a slight glycemic impact (13 vs. 100 for sugar). It is fantastic, but please keep in mind that it is very toxic to animals and it will raise insulin levels slightly. They're both most cited reasons for not using Xylitol.
Although the key focus of one's ketogenic diet ought to be consuming whole foods which can be as near nature as possible, there are a few other healthy options that may support your keto diet.
The purpose of exogenous ketone supplements is to supply the body with extra ketones (energy molecules). Ketone supplements could be a huge help when transitioning in to a state of ketosis or entering a fasted state.
Exogenous ketones assist you to enter or get back into ketosis at any time, instead of experiencing to wait for at the least a couple days. They can be taken between meals to supply a quick punch of ketones or before a good work out for additional energy.
MCT is short for medium-chain triglyceride. MCTs are a form of fat that can be readily useful for energy by the body and don't need to be shuttled around your digestive system before use. They are precursors to ketones and help the human body burn fat as opposed to burning carbs.
Collagen is a kind of protein ó one of over 10,000 in your body. Collagen is probably the most abundant protein in your body, accounting for 25-35% of protein. It can be viewed as the glue that holds your body together.
One of many toughest elements of keto is that it cuts out lots of starchy fruits and vegetables which contain many different nutrients. Perfect Keto Micro Greens is one solution to get enough nutrition from produce, while eating a low carb ketogenic diet. It gives you 14 servings of 22 different fruits and vegetables, plus MCT fats for absorption.
Low carb, clean pre-workout powders are for those who are on a ketogenic or else low-carb diet and want a healthier, ketogenic pre-workout energy drink without all the crap in other pre-workout drink mixes. They can be utilized any time for a quick, clean and healthy energy boost for physical and cognitive performance.
This list contains keto-friendly options that can be enjoyed by both vegans and all others following a ketogenic diet. Be aware that the carbohydrate content may be slightly higher in these kind of foods and drinks, so be sure you factor that into your daily carb limit.
This is why sticking with keto-friendly foods and avoiding items rich in carbs is the better way to successfully shed weight on a ketogenic diet.
Snacking between meals might help moderate hunger and stop you on course while following a ketogenic diet. Since the ketogenic diet is so filling, you could only need 1 or 2 snacks per day, depending on your own activity level.
It's important to eat the right quantity of calories based on your activity level, fat loss goal, age and gender.
By now, you ought to have a pretty good idea of what to eat on a ketogenic diet. Make sure that you read and re-read through the list of acceptable foods to create a mental image around what type of meals you will want to eat.
If you're still unsure about any products or food items that may not be keto friendly, don't worry too much. Below, you will discover a listing of things that you should continually be on the look out for.
Low-fat foods. These are generally greater in carbs and sugar than full-fat versions. Make sure you see the package to ensure a blunder isn't made.
In general, the more "real" the meals, the higher it is for you. Although some processed foods are acceptable, most are not.


text:
Helaina Jude Kennedy
Helaina Jude Kennedy passed away on Friday December 3, 2021 at Harbor View Hospital in Seattle, Washington. She was 63 years old. She was born on January 14, 1958 to Ronald and Cecilia Haig in Detroit Michigan. Helaina graduated from Puente Hills High School in Hacienda Heights, California. On December 01, 1984, in Seattle Washington, Helaina married William (Bill) Kennedy. Helaina and Bill moved to the Willapa Bay area in 1990. Helaina quickly became a leader in the community. She and Bill owned Bayshore Realty in South Bend Washington where Helaina was a well-known and respected real estate broker who worked tirelessly to meet the needs of her clients. Helaina was also an active member of the Willapa Harbor Chamber of Commerce. Helaina was passionate about art which included a love for all sorts of jewelry. She learned to make her own jewelry and was certified as a gemologist by the Gemological Institute of America. Helaina loved animals and was known to take on the occasional stray cat in her neighborhood. She is survived by her Chihuahua's, Peaches and Joey as well as three cats, Mafia, Jenny and Tommy. Helaina loved gardening. She knew much about the local plant species and was proud of her garden. Helaina loved to cook and excelled at making delicious and healthy meals often using vegetables grown in her garden. Helaina was also an active member of the Saint Lawrence Parish in Raymond, Washington. Helaina loved her community and made several good friends along the way. Her friends described her as a loving, sweet, profoundly compassionate and caring. She will be sincerely missed. Preceding her in death are her parents and her brother. Helaina is survived by her husband of 37 years, William Kennedy. Church services will be held on Friday, December 10th, 2021 at Saint Lawrence Parish, Raymond Washington. The Rosary will begin at 0930 hours and Mass will begin at 10:00 AM. A reception will be held in the parish basement at 11:15 AM. The burial will be at 11:00 AM Monday,13th at Saint Joseph Holy Family church in Francis Washington. Arrangements are in care of Stollers Mortuary
Helaina Jude Kennedy passed away on Friday December 3, 2021 at Harbor View Hospital in Seattle, Washington. She was 63 years old. She was born on January 14, 1958 to Ronald and Cecilia Haig in Detroit Michigan. Helaina graduated from Puente... View Obituary & Service Information
The family of Helaina Jude Kennedy created this Life Tributes page to make it easy to share your memories.
Helaina Jude Kennedy passed away on Friday December 3, 2021 at...
Send flowers to the Kennedy family.


The Co-curricular Office (CPO) at the Faculty of Health Sciences (FHS) fosters interpersonal and professional growth of FHS students on the Ashrafieh, Al Kurah and Souk El Gharb campuses. The CPO works closely with the Office of Student Affairs to facilitate the operations of clubs and societies, student employment, athletics, and counseling services.
The team at the CPO is continuously engaged in helping students develop competencies that complement their academic curricula. That said, involved students can enhance their chances of finding professional employment by participating in the various events and activities of the CPO. CPO programs provide opportunities for students to build new connections, develop professional experience, and nurture skills in leadership, civic engagement, team-building, problem-solving, conflict resolution, and organization and communication, all in a positive and recreational environment.
The CPO values accountability, integrity, innovation, and community engagement. It is committed to having all students explore and develop their talents in a nurturing environment.


text:
Cyborg supply chain – how AI and humans will revolutionize labor
The Enterprise Ecosystem
By Nathan Brown, Contributor, CIO	 Dec 18, 2017 11:39 am PST
For as long as labor has existed, there has been a fear that technology will kill jobs. Scribes were pissed at the printing press. Lumberjacks and weavers thought life was over after the creation of mechanical axes and looms. Yet, life and labor have gone on.
Not only has life continued, it's thrived. By all measures – life expectancy, child mortality, basic education and access to information, food security, etc. – life for humans is better than ever. This is a direct result of technological innovation.
But for many, artificial intelligence (AI) presents a threat humankind has never faced before. As they see it, for the first time the human reasoning and decision making can actually be replaced and improved upon by this new technology. They argue that the promise of AI thinking and problem solving like humans removes the need for humans to be a part of the labor process. It will be the collapse of human labor production as we know it.
Without question, how work gets done is changing. However, the overall impact of this change will be the exact opposite of doom and gloom. Based on all indications, AI will spur the largest economic growth since the Industrial Revolution. By supporting this growth, human labor will benefit in three key ways.
More pie
AI will "grow the pie" with a two-prong economic growth effect.
First, and most specifically related to the supply chain, AI will increase the velocity of trade. Goods will be moving more and sitting less, with their path from raw materials to consumers streamlined and more precise. With AI's help, the supply chain can move more products to more customers and at a lower cost by removing the waste from production and distribution. By removing friction from the supply chain, the entire ecosystem is more adaptive and can adjust to accommodate market or consumption changes faster. This stabilizes markets and will moderate the effects of traditional downturns to support further growth.
Secondly, AI will create new categories that not only stimulate consumption, but facilitate ancillary markets. While many of the new categories and markets will remain a mystery until AI has reached a certain level of maturity (who predicted GPS-guided smartphone-enabled ride sharing in 1980?), we can look at a recent example of innovation that had a comparative effect.
For decades, the thermostat market remained relatively unchanged. People either purchased a thermostat for a new HVAC system or to replace the broken thermostat they already had. Then came Nest.
Nest's smart thermostat changed what a thermostat could do, how operators interacted with it and the value potential for an entire category of products. The Nest thermostat looked cool and was functional, but it was smart and created a new way for users to save money. A disruptor in the true sense of the word, this completely changed the market for thermostats. People who had a perfectly functioning thermostat – and would never have previously been in the market for a replacement thermostat – went out and got a Nest because of the benefits. This created demand for design, production, delivery, marketing, integration with 3rd party devices, and more. And this is all just surrounding thermostats.
The "Smartening" of the world around us – the process of taking everything today that is dumb and transitioning it to an intelligent counterpart – will cause this kind of market disruption to happen on a grand scale. In the warehouse, replacing a functioning forklift that hasn't reached the end of its life cycle when the AI-embedded forklifts come out will be easily cost justified. We are already seeing AI added to security systems and electronics components of all kinds. Creating the Internet of Things is going to generate a lot of prosperity. All the support needed for such a complete paradigm revolution will be huge for economic and labor growth.
A massive change in production combined with new (and increased) consumer demand means the overall pie will grow. Every participant in the economy will see their slice grow, but if there are fewer participants then that's still bad news, right? Of course. But human labor provides some real value that cannot be replicated by AI and machines.
The next generation of labor is VERY human
Some really smart tech executives have argued that the scale of which automated robots can replace human workers is so large that it will be catastrophic for the human labor market. It's true that a single automated AI robot can replace dozens of human workers, but the overall effect on the workforce will be more of an evolution than an annihilation. The net effect is that the average human will have access to more and cheaper goods than before. This was the effect of every prior productivity revolution.
We know that AI will exponentially increase the demand for programmers and engineers. Data scientists, people that run the application infrastructure and code writers are all very human roles that are necessary to realize the value of AI. Another real win is connecting AI outputs and production back into the human sphere. With an increase in data insights, there will be an increased demand for designers who can present these results in a way that's interesting and appealing. Growth in UX and UI designing is directly tied to the increase in advanced intelligence devices.
But more than just a demand for "humanizing" the outputs of AI, the shift in production that creates increased profits also shifts how companies leverage and deploy human labor.
As production efficiency improves, more emphasis is going to be put on the customer experience of a product or service than the actual creation of it. By automating the assembly of the latest widget, more effort will be put on understanding and improving the packaging design to amplify the unboxing experience. Naturally, improving the consumer experience will raise expectations surrounding service and support. This creates a new labor problem.
What's the first thing you do when you have a simple question and you call a hotline only to be connected to an automated phone tree? Hit "0" as fast as you can, right? That's because people expect and prefer to interact with a human when resolving issues, voicing feedback, asking questions, and for customer support generally. Meaning, as a business expands and expectations are heightened, more human workers than ever will be needed to serve important customer support positions.
Humans' ability to emotionally connect with one another has labor application that does not stop at customer service. Some problem solving necessitates an emotional understanding that bots and algorithms can't solve. For example, a travel agency might use AI to deal with routine tasks – booking flights, analyzing transportation schedules, comparing costs – but more complicated tasks such as crafting a customized experience would be best done by humans. While AI could analyze some inputs to formulate a schedule, a travel agent is able to read body language and see that what a person really means is different from what they actually say. When someone says they like adventure, a person would be able to understand whether they really mean they want to take a sightseeing tour or run with the bulls.
By taking care of the grunt work and allowing businesses to focus on the human experience, AI is creating a demand for new types of labor and changing how labor is valued.
More jobs, more money, more [happiness]
One of the most important benefits that AI will bring to the human workforce is fulfillment. AI will lead to the loss of time consuming, mundane labor jobs. Looking at labor through the lens of Maslow's hierarchy of needs theory, the elimination of roles at the bottom of the self-actualization spectrum means human workers will only have roles that are more gratifying.
In the supply chain, AI enabled machines can handle scanning and counting packages faster and more accurately than humans. Human workers in these roles will be transitioned to helping customers have a better experience, translate insights that will alter an organization's market strategy or otherwise be in a position that allows for an enhanced sense of achievement on a daily basis.
A happy side effect of this is that an individual's work is now more valuable. In the near term, people who work side-by-side with AI systems can be more productive than they would be on their own. A more productive person is more valuable. In the long term, with AI fully matured, only positions that have proven to be better suited for human labor will remain.
More fulfilling work with higher pay is a perfect recipe for improved quality of life.
While we look into our crystal ball to see what the future of AI and the workforce holds, it's encouraging that positive outcomes have already been noticed. A recently released study analyzing companies identified as early adopters of AI and cognitive technologies shows that the innovations are not only helping business, but helping the human workforce as well. Almost 70 percent of those analyzed said the technology has not and will not create job loss within the next three years and in fact, about 30 percent said the addition of new jobs will be taking place. A peek into how AI value is perceived, the benefit of AI and cognitive technologies that was ranked last was workforce reduction.
Now in the early stages of AI-supported labor, a discussion surrounding how we can prepare for and embrace the labor change spearheaded by this technology is needed. To fully understand the scope of the evolution and its impact, we must not think of AI as a standalone labor replacement. Instead we have to envision all the ways in which AI will serve humanity. After all, technology only exists to serve the people. Part of how AI serves humanity is by serving the supply chain.
If we embrace this idea and realize the benefits of taking this approach, we'll be able to create more jobs and allow each person to have a more fulfilling existence.
Nathan Brown is CTO and co-founder of EVS. An early-days video-gamer (think TRS80) with a natural inquisitiveness and desire to build great and innovative things, Nathan found computer programming to be a perfect outlet. He began his career writing commercial software for the retail, professional service, and manufacturing industries.
In 2002, Nathan joined with Evan to co-found EVS. It was soon clear to the process manufacturing industry that EVS was a different kind of organization. With a creative vision and fresh technology perspective, EVS produced world-class process manufacturing and warehouse management solutions for the mid-market.
Nathan shares his passion to launch entrepreneurs into their dreams through StartHere.tv, an organization co-founded by Nathan and Evan that mentors and supports start-up companies and non-profits. In addition, he regularly travels internationally for missions and charitable work.
Nathan loves to build and create new and interesting projects, whether in business or with his five active kids and wife. He believes that having fun is a critical element to lasting success in every area of life.
The opinions expressed in this blog are those of Nathan Brown and do not necessarily represent those of IDG Communications, Inc., its parent, subsidiary or affiliated companies.