text:
import Ember from 'ember';
import { validator, buildValidations } from 'ember-cp-validations';
import ValidationErrorDisplay from 'ilios/mixins/validation-error-display';

const { Component, computed, inject, set } = Ember;
const { equal, not, reads } = computed;
const { service } = inject;

const Validations = buildValidations({
  title: [
    validator('presence', true),
    validator('length', {
      min: 4,
      max: 60
    }),
  ],
  originalAuthor: [
    validator('presence', true),
    validator('length', {
      min: 2,
      max: 80
    }),
  ],
  fileHash: [
    validator('presence', {
      presence: true,
      dependentKeys: ['model.isFile'],
      disabled: not('model.isFile')
    }),
  ],
  filename: [
    validator('presence', {
      presence: true,
      dependentKeys: ['model.isFile'],
      disabled: not('model.isFile')
    }),
  ],
  link: [
    validator('presence', {
      presence: true,
      dependentKeys: ['model.isLink'],
      disabled: not('model.isLink')
    }),
  ],
  citation: [
    validator('presence', {
      presence: true,
      dependentKeys: ['model.isCitation'],
      disabled: not('model.isCitation')
    }),
  ],
  copyrightRationale: [
    validator('presence', {
      presence: true,
      dependentKeys: ['model.copyrightPermission'],
      disabled: computed('model.isFile', 'model.copyrightPermission', function(){
        return !this.get('model.isFile') || this.get('model.copyrightPermission');
      })
    }),
    validator('length', {
      min: 2,
      max: 65000
    }),
  ],
});

export default Component.extend(Validations, ValidationErrorDisplay, {
  store: service(),
  currentUser: service(),
  iliosConfig: service(),
  init() {
    this._super(...arguments);
    const component = this;

    this.get('currentUser.model').then((user) => {
      component.set('owner', user);
    });

    this.get('learningMaterialStatuses').then((statuses) => {
      let defaultStatusObject = statuses.findBy('title', 'Final');

      if (!defaultStatusObject) {
        defaultStatusObject = statuses.get('firstObject');
      }

      this.set('status', defaultStatusObject);
    });

    this.get('learningMaterialUserRoles').then((roles) => {
      const defaultRole = roles.get('firstObject');

      this.set('userRole', defaultRole);
    });

    set(this, 'showUploadStatus', false);
    set(this, 'fileUploadPercentage', 0);
  },
  host: reads('iliosConfig.apiHost'),
  uploadPath: computed('host', function(){
    return this.get('host') + '/upload';
  }),

  isFile: equal('type', 'file'),
  isCitation: equal('type', 'citation'),
  isLink: equal('type', 'link'),

  classNames: ['new-learning-material'],

  learningMaterialStatuses: null,
  learningMaterialUserRoles: null,

  filename: null,
  fileHash: null,
  status: null,
  userRole: null,
  description: null,
  originalAuthor: null,
  title: null,
  link: 'http://',
  copyrightPermission: false,
  copyrightRationale: null,
  owner: null,
  citation: null,
  fileUploadErrorMessage: false,

  actions: {
    save() {
      this.set('isSaving', true);
      this.send('addErrorDisplayFor', 'title');
      this.send('addErrorDisplayFor', 'originalAuthor');
      this.send('addErrorDisplayFor', 'fileHash');
      this.send('addErrorDisplayFor', 'url');
      this.send('addErrorDisplayFor', 'citation');
      this.validate().then(({validations}) => {
        if (validations.get('isValid')) {
          const title = this.get('title');
          const type = this.get('type');
          const status = this.get('status');
          const userRole = this.get('userRole');
          const description = this.get('description');
          const originalAuthor = this.get('originalAuthor');
          const owningUser = this.get('owner');

          let learningMaterial = this.get('store').createRecord('learningMaterial', {
            title,
            status,
            userRole,
            description,
            originalAuthor,
            owningUser
          });
          switch(type){
          case 'file': {
            const copyrightPermission = this.get('copyrightPermission');
            const copyrightRationale = this.get('copyrightRationale');
            const filename = this.get('filename');
            const fileHash = this.get('fileHash');
            learningMaterial.setProperties({copyrightRationale, copyrightPermission, filename, fileHash});
            break;
          }
          case 'link': {
            const link = this.get('link');
            learningMaterial.setProperties({link});
            break;
          }
          case 'citation': {
            const citation = this.get('citation');
            learningMaterial.setProperties({citation});
            break;
          }
          }

          this.get('save')(learningMaterial).finally(()=>{
            this.send('clearErrorDisplay');
          });
        }
      }).finally(() => {
        this.set('isSaving', false);
      });
    },

    changeStatus(id){
      this.get('learningMaterialStatuses').then(statuses => {
        let status = statuses.findBy('id', id);
        this.set('status', status);
      });
    },

    changeUserRole(id){
      this.get('learningMaterialUserRoles').then(roles => {
        let userRole = roles.findBy('id', id);
        this.set('userRole', userRole);
      });
    },

    changeDescription(html) {
      let noTagsText = html.replace(/(<([^>]+)>)/ig,"");
      let strippedText = noTagsText.replace(/ /ig,"").replace(/\s/g, "");

      //if all we have is empty html then save null
      if(strippedText.length === 0){
        html = null;
      }
      this.set('description', html);
    },

    setFile(e) {
      this.setProperties({
        filename: e.filename,
        fileHash: e.fileHash,
        showUploadStatus: false,
        fileUploadPercentage: 100,
        fileUploadErrorMessage: null,
      });
    },

    startUploadingFile() {
      set(this, 'fileHash', null);
      set(this, 'showUploadStatus', true);
      set(this, 'fileUploadPercentage', 0);
      set(this, 'fileUploadErrorMessage', 0);
    },

    setFileUploadPercentage(percent) {
      set(this, 'fileUploadPercentage', Math.floor(percent));
    },
  }
});


Mabus is going to allow the USMC to keep there segregated boot camps for men and women.
'Navy Secretary Ray Mabus explained what persuaded him to allow men and women to continue training separately at Marine boot camp a month after he ordered Corps leaders to develop a plan to make its entry-level training coed.
"The Marines did a very good job of showing ... that the way it's done now sets both men and women up for greater success," Mabus told reporters Tuesday.
That being said, I do believe that USMC should have something to say about whether they do or do not allow women into the infantry, also.
'The integrated task force experiment found that as mixed gender teams carried heavier loads, fatigue took a toll on female Marines' accuracy.' he said.
The women chosen to take part were voluntarily there. They were all at the top physical standards for the USMC. But as of yet, they were below standards on carrying loads, and on accuracy firing their weapons after carrying such loads.
The Marines had a few robotic 'mules' to assist with load carrying, but those 'mules' are being withdrawn, because they wear out too quickly.
The women that participated were likely to get injured. Anything from broken bones to shin splints. Shin splints being the most common injury, it takes 6 months if the trainee is female, before being allowed to participate in physical activity, including marching, running, and gear carrying activities.
I was a corpsman at MCRD Parris Island, SC. I was in charge of one of the sick calls. I saw women come in with shin splints. They were most likely discharged, because of the extra time and money needed to recycle them.
The person affected by shin splints is likely to reinjure themselves.
With the preponderance of those injuries during the testing, it likely would be way too costly time and money wise, for the USMC to be able to afford.
While I was at boot camp, having also been a DI at Parris Island, I was used to picking up recruits that had been injured and hospitalized. Not once did I ever see one recruit return after getting shin splints, and that was back in the day before cammos became common issue for the recruits.
The USMC does with what it has. Right now, it has been cut back to the bone. To be able to allow women Marines to kick back for 6 months, before returning to likely suffer the same injury would be disastrous, in the long run, both to the trainee, and to the USMC.
Accuracy in firing weapons is the one of the trademarks of the USMC. To allow a lessened capacity to fire weapons accurately would be deadly to the other Marines.
It's not about he said/she said. It is about the ability to bring accurate fire on the enemy.
It's not about allowing women to serve with men, when the **** hits the fan. It IS about how many get killed, on the other side, as well as ours. If one of the Marines can't shoot accurately, why should that Marine be up front and personally trying to get the bad guy? It's not a thing about 'trying to be fair', it all boils down to the personal safety of the Marines that are out there, successfully prosecuting their mission.
I don't know how to put this any clearer.
Time spent including time in a hospital or out on light duty + cost of training with over spending + cost of Marines lives = a Marine Corps that has spent itself out of remaining part of our armed forces, both > than the USMC can afford, both monetarily, and human life wise.
To the newer posters in here, I transferred services, from the USMC to the USN.


Genius Loci is committed to discovering, enhancing and protecting the pervading spirit of place through sustainable landscape design. Genius loci is Latin for "spirit of place", the soul or essence of a landscape, its animating spirit. Many of our most beautiful and beloved landscapes are suffused with this spirit of place.
Our design process begins with rigorous site analysis, the history of the land, its present day character and its place in the larger contextual landscape. Listening attentively to our client, we guide them in determining their practical needs as well as understanding their dreams and desires. Through site analyses looking at views, pedestrian and vehicular circulation, legal parameters, hydrology, wildlife habitat, micro climates, and more, we uncover a clear design that promotes biodiversity, and a beautiful, functioning landscape.
Clear communication between designer and client throughout the process is crucial to discovering the client's "inner landscape" and determining how that intersects with the natural and built environment for a successful, working design and its execution.
in an ecologically sensitive way to create a dynamic, economically sustainable environment for all of us, and offer future generations of people and wildlife an alternative to the often short sighted methods of traditional landscape design.


TThe Cabin at the Preserve is an authentic Lincoln Log Cabin situated between two beautiful nature preserves. It is located only 4 miles from Old Man's Cave, 2 miles from Conkles Hollow, and within just a few miles of many other State Park natural attractions.
Enjoy hiking, fishing, canoeing, rappelling, or hunting, and then end your day with a glass of wine sipped in the relaxing Jacuzzi tub. Discover nearby shops specializing in local arts and crafts, antiques, and more! It's an ideal location for capturing some well-deserved quiet time in a comfortable, secluded forest retreat, while creating your own outdoor adventure.
This Cabin is a great place for family reunions, vacations, retreats, group gatherings, romantic getaways, weddings, anniversaries, etc. Crafting Groups are welcome. Delight in Scrapbooking, Quilting, Beading, Jewelry Making, Knitting, and Crocheting in rustic comfort!


"People spend more time planning their VACATIONS each year than they spend on planning for their care and well-being the other 51 WEEKS." --Thomas Leonard There are at least four dimensions of health – mental, emotional, spiritual and physical. It's pretty self-evident that the healthier you are, the better you can perform. Performance is foundational to leadership yet health is rarely part of the leadership conversation.
As Thomas Leonard points out above, very little time is spent by most of us on our own care and well-being – and of course, if you spend time on self-care and well-being the chances are your health will be improved.
This week we want to focus on physical health. If your physical health isn't optimized, your performance isn't either and your ability to lead is limited by the energy being siphoned to the health issue(s).
Get informed. There is a lot of misinformation and confusion out there about what really is healthy. We recommend two solid resources, Dr. Andrew Weil and Dr. Mehmet Oz. Both of these doctors are highly educated and make clear information widely available. Dr. Weil has a great web site with a searchable database for health issues www.drweil.com He also has two fundamental books that can help you - 8 Weeks to Optimum Health and Eating for Optimum Health. Dr. Oz now has a TV show that you can Tivo or DVR if you don't feel like reading. If you do want to read, he and his partner Dr. Michael Roizen also wrote, "You: The Owner's Manual" which has lots of great information.
Do the basics. An example of "the basics" - we have all heard you need to drink 6-8 glasses of water p er day, (8 ounce glasses that is). Yet how many of us do it? If you can just do this piece, your health will be improved simply because you will be hydrated. Don't like plain water? Squeeze half a lemon or lime in it. Still not good? A splash of cranberry or pomegranate juice has health benefits and helps with the taste, (provided you are doing just splash and you are doing real juice, not the high sugar filled kind.) The basics are covered in the works of Dr. Weil and Dr. Oz we mentioned above and being hydrated is one example of improving your health without feeling like you are taking hours out of your day for a huge program.
See your doctor. A lot of us skip exams and annual tests we should be doing. Whether it's a mammogram or a colonoscopy many people are not doing their "regular maintenance." So if you haven't seen your doctor or you have been skipping tests, get them done. If you don't like your current doctor, ask around. Check with a friend or colleague whose health you admire and get a new physician to work with.
Obviously we are not physicians and this blog is not intended to dispense medical advice. We are simply suggesting that health is actually part of the leadership conversation and the healthier you are the better you can lead. So do yourself a favor and care for your health and well-being all 52 weeks of the year!


text:
Galloping Gypsy
Summer Reading List VI: Outwitting History
Outwitting History: The Amazing Adventures of a Man Who Rescued a Million Yiddish Books, by Aaron Lansky
This book will appeal to all bibliophiles—appropriately, I picked it up at a library sale—and as one who has studied, if only briefly, the Yiddish language. (I intend to add some Yiddish songs to my repertoire eventually.) It's not about travel per se, but it does take us through a considerable range of geography and time. And Lansky's missions eventually do take him to the Soviet Union and South America.
The author opens with a vignette of saving thousands of Yiddish books from a Manhattan dumpster before explaining how he developed a love of the language in college, then went on to establish the National Yiddish Book Center. In the early years he pulled near-miracles on a shoestring budget, salvaging large collections from deceased or retired people, abandoned stacks of books in basements, or whole sections of community libraries that were about to be thrown out since no one read them anymore.
And so he often faces the question, "It's a dead language—why bother?" In response, Lansky extolls the richness of Yiddish literature: the stories of Sholem Aleichem which were made into The Fiddler on the Roof are only the tip of the iceberg.
He also points out the knowledge that would have been lost without these books. One summer, a student intern at their Massachusetts headquarters, identifies a Dictionary of Political and Foreign Terminology in Yiddish (Kiev, 1929). Only it wasn't in any databases. "Nearly eleven hundred pages long," Lansky writes, "it was a scholar's dream: a lexical snapshot showing exactly how Jews perceived the world around them at a moment of great social and political change. In fact the book was so significant I couldn't understand why I had never heard of it before." After running an ad, their office gets a call from the woman who donated the book from her father's collection. On a visit to his cousin in 1929, Dor-Ber Slutski, who'd labored over the reference work a whole decade, the two had been together at the printer's when the first copies came rolling off. Slutski gave him one, almost certainly the only copy now in existence – the entire press run was destroyed on the orders of Stalin's government, on a whim about its political acceptability.
Outwitting History is, thus, a reminder of the value—and fragility—of the printed word. Let's treasure it.
I'm stopping here to give myself a break on this fifth Thursday of the month. See you next week!
Musical & Literary Wanderings of a Galloping Gypsy
Mark Eliot Nuckols is a travel writer from Silver Beach Virginia who is also a musician and teacher.
Francis Ferdinand
The World Of Yesterday

redpajama_set_name: RedPajamaCommonCrawl


text:
The Barbours Cut Container Terminal, or simply the Barbours Cut Terminal, is a major deep water port in the Greater Houston area in the U.S. state of Texas. It is part of one of the world's busiest ports by cargo tonnage.

Geography
Barbours Cut is situated along the Barbours Cut Ship Channel, between La Porte and Morgan's Point, Texas. This channel, located at the mouth of Buffalo Bayou on Galveston Bay, is itself a tributary to the larger Houston Ship Channel, which runs from Houston, through the bay, to the Gulf of Mexico.  It is located approximately  from downtown Houston.

The terminal is located near the Battleground Industrial District, a major industrial complex in the jurisdiction of La Porte.

History
Opened in 1977, the Barbours Cut Terminal was built at a cost of US$53 million (US$ in today's terms). The new terminal had a distinct geographical advantage over the old Turning Basin terminal. Whereas Turning Basin, situated upriver at the navigational head of Buffalo Bayou, is 6 hours or more from the Gulf, Barbours Cut requires only three hours travel time.

In 2007 the terminal handled 15.4 million short tons (17.0 million metric tons) of cargo including more than one million cargo containers. The terminal both directly and indirectly contributes thousands of jobs to the Galveston Bay Area and is a key factor in the economy of Greater Houston.

Description
Part of the larger Port of Houston complex, Barbours Cut is the largest of the terminals and the first port in Texas to handle standardized cargo containers.

The terminal has six berths with  of continuous wharfs. The loading area covers , with  of warehouse/storage space. The channel depth is  at low tide.

The facilities at Barbours Cut include a cruise ship terminal. Until 2007 Norwegian Cruise Line ran cruises from this terminal but currently there are no cruise lines operating from the terminal.

Environmental issues
Barbours Cut was the first port in the United States to implement the ISO 14001 environmental management standard, a rigorous set of requirements for minimizing a business' effects on the environment. Nevertheless, the Natural Resources Defense Council, an environmental advocacy group, has given Barbours Cut and the Port of Houston a grade of "F" citing "its deplorable treatment of local residents and its few noteworthy programs to reduce the effects of its operations on air and water quality."

See also

 Bayport Terminal
 Port of Galveston
 Port of Houston
 Port of Texas City

Notes

Further reading

External links
 Port of Houston: Barbours Cut Terminal

Galveston Bay Area
Greater Houston
Ports and harbors of Texas
La Porte, Texas
Gulf of Mexico
Transportation buildings and structures in Harris County, Texas

redpajama_set_name: RedPajamaWikipedia


text:
United Express announces New Portland service
4th September 2008 Print Email Share
United Airlines has announced a new United Express service between Portland and both Klamath Falls, Oregon and North Bend, Oregon, beginning October 12. The service is now open for sale.
"We are pleased to strengthen our commitment to the Pacific Northwest by adding these new services," says David Jehn, United's managing director – Network Planning. "We look forward to giving our customers in Oregon additional, convenient service to wherever their travels may take them."
United Express regional partner SkyWest will operate the two daily round-trip flights with a 30-passenger Embraer 120 Brasilia aircraft.
"Air service is essential to the coast's economic viability and I'm very pleased that United Express is going to provide that vital service at North Bend," says Congressman Peter DeFazio.
Customers may find the guaranteed, lowest United fares for these flights on United.com.
United also offers service between Portland and 11 other cities, including Chicago, Denver, Los Angeles, San Francisco, and Washington.


The reader who as come this far may recall that, at the very beginning, we started with a question. The question was: "What is life?" We have discussed many things between then and now, things that often seem to ramify off in many directions unconnected with this question. But in fact, everything we have discussed in these pages is there only because it plays its role in allowing us at last to propose an answer.
The above passage is in the context of Rosen's conclusion after many chapters that include discussion of Aristotelian causality in simple system (i.e., mechanisms and machines). The upshot of those discussions is that mechanisms and machines have a paucity of entailment structure: most everything about them in terms of efficient cause must be entailed from outside of them. When we ask "why f?" about a component in such a system, and look for an answer in terms of efficient cause, it can ultimately only come from outside the system itself. The drawback to such systems is that if we wish to entail those efficient causes, we must do so by adding yet another component to entail it. But, of course, now the newly-added component is unentailed, and an incipient infinite regress follows.
Rosen's contention is that biological organisms – by contrast to mechanisms and machines – entail most everything about their functional organization within themselves. As a result, biological organisms can answer "why?" questions about components of their functional organization in terms of efficient cause from within this organization. However, the notion that such entailment occurs has tremendous implications for biology, physics and science in general. At the very least, such a requirement means that organisms have models (such as the metabolism-repair system model) which describe impredicative loops of causation. These kinds of models are thus noncomputable: they cannot be turned into algorithms for computational processing.  Further, state-based descriptions, upon which all of physics rests (including quantum mechanics) are unable to describe systems possessing these models. The result is that the limits of description imposed by the approaches of computational modelling and by state-based physics are entirely artefactual, and do not represent fundamental limits of the material world. With regard to biology, those approaches are incapable of answering fundamental questions about organisms, such as "what is life?", because they are unable to represent the relevant features of the material systems we call "organisms" within their formalisms.
Raw materials (elements of A) are processed into (elements of B). As mentioned above, b is derived from an element of B, so f can be thought of as also a function for generating new copies of b.
Repairs the metabolism function. The output of F is H(A, B), which means "a set of mappings from A to B". The elements of H(A, B) include the mapping f. Hence, F can be thought of as a function for creating new copies of f.
Replicates the repair components. Just as the output of F includes new copies of f, so too the output of b includes new copies of F. IMPORTANT: It is crucial to keep in mind that "replication" here refers to replication of the repair components (F); it does not refer to reproduction of the organism!!
We can see that each function (f, b, F) is entailed from within the diagram by another function. Specifically, each function is entailed in terms of efficient cause by another function. Chasing the red arrows through the diagram: f entails b (by producing elements of B), b entails F (by producing elements of H(B, H(A, B))), and F entails f (by producing elements of H(A, B)).
"Closed to efficient causation" refers only to the existence of a loop of efficient causes in the entailment structure of the functional components in the (M,R)-system model.
A helpful way to think about this is to consider the opposite case: what would the entailment structure be like if the (M,R)-system were open to efficient cause instead of closed? In that case, the functions would have to be entailed from outside the diagram. In other words, in order for a function such as metabolism, for example, to occur in an material system open to efficient cause, there would have to be some external efficient cause – some external entity – that would act as the processor that generates the processor f in the metabolism function. Similarly for repair and replication.
As we have seen, "closed to efficient causation" refers to the loop of entailment of efficient cause within a single living organism's functional organization. The use of the word 'closed' regrettably often brings to mind in some people very different notions of 'closed' or 'closure' other than "loop of entailment". It is typically the erroneous substitution of these other notions of 'closed' that is the source of the misunderstandings.
"Closed to efficient causation" does not refer to, or imply, "a closed system", in the usual sense. Indeed, an organism is a paradigmatic example of an open system.
"Closed to efficient causation" does not refer to, or imply, an organism is thermodynamically closed. An organism is obviously thermodynamically open.
"Closed to efficient causation" does not refer to, or imply, that an organism is structurally closed. Metabolism, repair and replication are functions that are spread across physical structures in an organism. In other words, functional organization does not coincide 1-to-1 with the organism's structural organization. So, attempts to purport to show that "closed to efficient causation" is false by use of gedanken experiments involving replacing organs, excising tissue, and other structural alterations which leave the organism alive, are misguided.
"Closed to efficient causation" does not refer to, or imply, that an organism's metabolism, repair or replication cannot be affected by other influences. This would be a misconstrual of "closed" as "closed off". However, Rosen does not indicate the latter connotation anywhere.
"Closed to efficient causation" does not refer to, or imply, that an organism is functionally closed (i.e., cannot have other functional relationships aside from metabolism, repair and replication). The (M,R)-system model is only a minimal model: an organism is at least a realization of an (M,R)-system, but it may (and most likely does) have additional functions.
In the formulation in Life Itself, Rosen asserts that "closed to efficient causation" was both a necessary and a sufficient condition to call a system a living organism, as can be seen in the quote shown in the origin section, above.
Q1 is a statement of both necessity (the "only if" part) and sufficiency (the "if" part). Q2 is self-explanatory. Q3 is a statement on necessity (the "at least" part is an emphasis on this "necessary-but-not-sufficient" condition).
In my retort of the Landauer-Bellman paper (that I sent you a few months ago), I wrote "Landauer and Bellman are confused between necessity and sufficiency. The Rosennean statement is that "a cell is a material structure that realizes an (M,R)-system". This is a statement of necessity. It means that if C is a cell, then THERE EXISTS an (M,R)-system S such that C realizes S. It does NOT mean that if one comes up with an arbitrary (M,R)-system (or worse, something that only vaguely resembles an (M,R)-system), there has to be a cell that realizes it. "If C, then S" (S is necessary for C), is not "if S, then C" (S is sufficient for C)." I was, of course, using Q3 there.
Q3′. A material structure is a cell (i.e. alive) if and only if it realizes an (M,R)-system. my argument would still hold. This is because of the indefinite article "an" that Bob used. This statement of Q3′ would still mean that if C is a cell, then THERE EXISTS an (M,R)-system S such that C realizes S. And if THERE EXISTS an (M,R)-system S such that C realizes S, then C is a cell. It STILL does NOT mean that if one comes up with an arbitrary (M,R)-system, there has to be a cell that realizes it. See how crafty Bob was in his use of the language!
So it would not "collapse" Bob's theory even if somebody comes up with an (M,R)-system that no cell can realize.
The nature of a "necessity statement" is that the better the necessary condition (in characterizing a property, in this case "life"), the smaller the complementary set (i.e. things that do not have the property, in this case "not life"); in other words, the closer the condition to being sufficient. I felt that the condition "closed to efficient causation" is so close the being sufficient that one may as well ACCEPT, or BELIEVE, that it is so. Or, MAKE IT SO (quoting Jean-Luc Picard), as it were. I believe that was what Bob did in Q1.
One must also understand that the "if, and only if" phrase is what mathematicians use when they DEFINE something. So we can take that Q1 is Bob's DEFINITION OF LIFE. The "only if" part provides what is needed, and the "if" part tightens the complementary set.
Q2, then, is not so much a retraction, as it is an explanation. It is Bob's Godelian suggestions that perhaps the sufficient conditions for life are undecidable.
 Note that 'model' and 'simulation' are quite different creatures in Rosennean terminology. Models maintain a congruence of entailment structure in a Modeling Relation with the object system. Simulations have no such requirement, and are often geared toward mimicking behavior, rather than modeling causal structure. As such, simulations are often equivocations on the very notion of modelling. There are additional issues regarding simulations that require that they be carefully distinguished from models. The interested reader might review LI ch. 7, EL p. 40-43, and Theoretical Biology and Complexity, pp 190-191.
 The (M,R)-system is described by Rosen most deeply in Foundations of Mathematical Biology, vol 2, ch. 4. Additional discussions are in LI ch. 10 and EL ch. 17, as well as some earlier papers.
 Rosen sometimes describes the (M,R)-system as a cell model (i.e., 1972, EL p. 261), but also uses it as a model of organisms in general (EL p. 263).
 See Rosen 1972, LI p. 251, or EL p. 262.


text:
Announcing Pentaho 7.0 (available mid-November)
Thread: Announcing Pentaho 7.0 (available mid-November)
pmalves
Community Guy v2.0
I'll go straight to it – This is the most spectacular release ever!
This previous sentence would even be more meaningful if I hadn't been deeply involved on this release, and by "deeply involved" I actually mean that sometimes I was able to sneak in to the development rooms and a few times speak to a few of the devs before the heads of engineering kicked me out of the room… but still, the janitor sometimes pat me in the back when he saw me crying in a corner and said that someone must listen to me, so I'm taking his word for it….
Anyway, here's the announcement and mid-november will be available for download!
The Year of the Product
The beginning of the year, our CEO, Quentin Gallivan, gave us a challenge: "Make this the year of the product!". In CEO-language, this basically means I'm gonna be fired if we don't make good progress in a journey to improve usability and ease of use! That's motivation in my book!
So here's the main announcement of Pentaho 7.0, that will be made available to download mid-November. These are the main release highlights
Figure 1: 7.0 Release Highlights
I'm going through this in a somewhat random order.
Admin Simplification
The Pentaho Server
This has been a long term goal internally, and we've been testing it in CE since 6.1. The BA Server / DI Server distinction is no more (actually, I don't make it a secret that I think it shouldn't ever have been created, but that's just my sweet person talking…).
We now have one single artifact: The Pentaho Server, with full combined BA/DI capabilities. It's important to notice that this doesn't change the deployment topology strategy – there will be a lot of times, specially on larger organizations, where it will make sense to have multiple servers, some dedicated to the more interactive, BA style operations and others optimized to the heavy duty data integration work.
A simplified architecture
It's a fact that our product is architecturally complex; Not because we want – it's a consequence of us being the only vendor with a platform that works all the way through the data pipeline, from the data integration to the business analytics side.
Figure 2: The data pipeline
We're still faithful to the original founders' vision: Offer a unified platform throughout all these stages, and we've been tremendously successful at that. But we believe it's possible to combine this vision with an improved – and much simplified – user experience. And it's why we're doing this.
Some of you that have been around long enough that you can recognize this image:
Figure 3: Oh my god, my eyes!!!
We're moving to a much simpler (conceptual) approach:
Figure 4: Pentaho Architecture
This means that going forward, we want to focus our platform on two main cornerstones: PDI and the Pentaho Server. And we're working on making the two interact as seamlessly as possible.
Please note that this doesn't mean we're not counting on other areas (Mondrian, PRD, CTools, I'm looking at you), on the contrary. They'll keep being a fundamental part of our platform, but they will take a more of a backstage role making all the wheels turning instead of a taking a front seat.
Connecting PDI to the Pentaho Server
One of the first materializations of this concept was the work done on connecting from the PDI (spoon) to the Pentaho Server. It's now a much more streamlined experience:
Figure 5: Pentaho Repository Connection
Once defined, we'll be able to get a new login experience:
Figure 6: Logging in to the Pentaho Server
Once done, there will be the indication of where we're connected to, plus a few simpler ways to handle those connections:
Figure 7: Identifying the current connection
And remember when I mentioned the simplified architecture? Now both the Data Integration user and the Business user have access to the same view:
Figure 8: Different views over the same ecosystem
A lot of optimizations were done here to allow a smoother experience:
Repository performance optimizations (and we still want to improve the browsing / open / save experience)
Versioning is turned on by default
That somewhat annoying commit message every time we save is now also turned off by default
Every connection dialog now connects to port 8080 and to the pentaho/ webapp instead of the 9080 and pentaho-di that has now been somewhat discontinued (even though for migration purposes we still hand out this artifact)
It's fundamental to note that existing installations with the BA / DI configuration won't turn into some kind of legacy scenario; This configuration is still supported and, much on the contrary, it still is the recommended topology. This is about capabilities, not about installation.
In 7.0, for migration purposes, we'll still have the baserver / diserver artifacts for upgrades only.
Analytics Anywhere
A completely new approach
Ok, so this is absolutely huge! You're certainly familiar with the classic data pipeline that describes most of the market positioning / product placement:
Figure 9: Data pipeline
In this scenario we identify three different funnels: Engineering, Data Preparation and Analytics. But we started thinking about this and got to the somewhat obvious conclusion that this doesn't actually make a lot of sense. The truth is that the need for Analytics happens anywhere in the data pipeline.
By being one of the few products that work on all this 3 areas, we're in a unique position to completely break this model and deliver analytics anywhere in the data pipeline:
Figure 10: Analytics Anywhere in the data pipeline
And 7.0 is the first step in a journey that aims to break these boundaries while working towards a consolidated UX experience; And the first materialization is bringing analytics to PDI…
An EE feature
This is huge. Really huge! And let me say from the beginning that this feature is EE only. Why? Because according to our CE/EE framework this falls there: it's not an engine level functionality, and while it doesn't prevent any work from being done, it drastically accelerates the time to results.
And just a word on this – even though I'm the Community guy, and one of the biggest advocates of the advantages of having a great CE release, I'm also a huge proponent that a good, well thought balance has to exist between the CE and EE versions. This balance is never easy to get to – we know we can't be 100% open source and we know we'll absolutely lose this battle if we're completely closed source. The sweet spot is somewhere in the middle.
Starting from 7.0, we'll be able to see a new flyover when in PDI with 2 buttons in there:
Run and inspect data
Inspect data
Figure 11: Analytics entry point
The difference between both are subtle but will grow in importance over time; The first option always runs the transformation and get the set of data to inspect, while the second option gets data from cache if it's available. If not, acts as the first one.
A new Data Inspection experience
If we click any of those options, we should land in a completely new Data Inspection experience:
Figure 12: A new Data Inspection experience
The first thing you'll see here is obviously the most immediate kind of information you'll expect to see: A table that shows the data that's flowing on the transformation stream. However, there's a lot more that you can do from this point on, and even without moving away from this initial visualization you can select which columns to see and sort the available data.
It's important to note that this may not be (and most likely won't be) the entire data set. This is about data inspection and spot-checking; What this does is looking at the stream of data that passes in PDI and uses a limited amount of data. This limit is still to be determined, but should be in the range of thousands of rows. This (configurable) number will go up in time, never compromising in usability and speed of analysis.
Other ways to visualize the data
So we can see a table. Not exactly exciting so far, even though it's much more legible and useful that the good-ol' preview window. But this is just one of the possible ways to look at the data:
Figure 13: Visualization selector
So as you see we can have several ways to look at the data:
Bar and stacked bar charts
Column and stacked column charts
Pie and doughnut chart
Scatter and bubble charts
One thing you'll notice is that you're not restricted to work with a single visualization; It's possible to create different tabs so you can do other kind of analysis:
Figure 14: Working with different visualizations simultaneously
Here's an example of getting this information with a different visualization:
Figure 15: Stacked bar chart
Chart tweaks and improvements
The previous screenshot showed a bar chart. And you have no idea how much work was put on these visualizations… You're surely thinking "it's a stupid bar chart. I've seen hundreds just like this one". Well, let me tell you – you're wrong. This is not just a bar chart – this is an astonishing bar chart with a lot of attention given to details.
Let me go through some areas where the team did a great work:
A new color palette
Figure 16: A completely useless chart just to prove a point
From the start we had a goal: This experience had to be pleasant to the user. It had to be pretty, and a great color balance is absolutely fundamental. However, it's really not an easy task to get a generic color palette to the visualizations that even with a lot of categories is pleasant to the eyes.
But I think that objective has been achieved. If you look at the previous utterly stupid pie chart with tons of categories, you'll have to agree that even with lots and lots of colors the overall color balance is still very easy on the eyes – a great balance between beauty and legibility
Screen real estate optimization
How many times did you see a chart with so many bars that they seemed thinner than a pixel? Or a single bar that caused a dashboard to look like your garage door?
Well, not here…
[IMG]https://lh4.googleusercontent.com/7xsek0mXKlGffjsNhLrB8O0k89EWzFytDgC39gHB9BfMe8AZRCbyC2c6_4he1A8MRQQ6l4wpVfnGSCP7btGqiBPLxGnGu_crqRiyMEmL69Khis_0_h8pPbRdJWzAwVfcigg1Iu9LSG****T4ug[/IMG]
Figure 17: Not that many bars on screen
We always try to leverage as much screen real estate as we possibly can, but trying to prevent edge cases; on the case of the bar charts, bars have a maximum width so they don't become stupidly large.
But the opposite is also true: We defined a minimum width for the visual elements on screen, and if that minimum is reached, instead of sacrificing legibility by allowing bars to shrink to a tiny value, we simply stop at a given size and let the chart overflow on its categorical axis.
Figure 18: Much more bars, but still readable!
This screenshot shows exactly that. More decades than what fits on screen will result on the appearance of that scroll bar you see on the right.
Axis label legibility
A bit related with the previous item is how we treat the axis labels. We try to show them the "best" way possible… If we see the axis label fit on screen, we put then on their natural position, horizontally:
Figure 19: Horizontally placed axis labels
But if we see there's not enough room and they would overlap, we automatically slant them; If still they don't fit on screen, we don't let them overflow part a certain point (I don't recall the exact rule but it's something like never going over 20% of the chart height/width).
And on those cases there a tooltip will allow to see the full label.
Figure 20: Lots of wide labeled categories
This is obviously very hard to guarantee it works on every condition, but so far I think it's a huge improvement
Chart legends
This is one of those that it's so obvious that we ask ourselves why didn't we do it from the start… So, legends are good. They provide information… So yeah, we have them, like shown on this stacked chart of votes by type (I'm parsing an IMDB ratings file I grabbed from the internet):
Figure 21: Cool and useful looking legends, I salute you
However, suppose that instead of breaking down by decade, I want to do a breakdown by year. That's a lot of legends, right?
Figure 22: Hum, formerly cool and useful looking legends, where did you go??
No, they're gone. The rationale here is simple: If you have a lot of series the legends become completely useless, and even risk stealing away precious screen real estate – how many times did we see legends taking more space than the chart itself?
So we applied an extremely advanced algorithm here. Heavy math, guys, we used a predictive univariate model that based on font being monospaced or not, size of strings, number of elements, width of the chart, number of lines the legend would use and…. Nah, I'm kidding, we didn't bother- we just hide the damn legend if it has more than 20 elements. Simple and effective! :p
You probably noticed it by now, but simply put, they look great and give you the information you need ☺
Figure 23: A great looking tooltip
And a few other minor but very important things…
There were other minor (?) interventions that really work well with all these other items I mentioned previously: a correct choice of font family, size and color; A balanced chart configuration for gridlines; The placement and orientation of the axis titles and more. Everything working together to provide a combined result that I personally think is not short than amazing and for which I'm extremely proud of the team.
We decided for this go round not to give the user the possibility to customize chart properties, and it was a conscious decision. We believe that in a lot of places there's an incorrect mix of data related properties with visual properties – sometimes this shouldn't even be done by the same person. In this context it's all about the data, so we opted to work a lot on a great set of defaults that make reading the data as easy as possible and on a later stage (dashboards, I'm thinking of you) we'll work on allowing to set visual specific properties. I think it was the right decision.
The underlying technology
Even though we're not making that public for now, we developed a new version of what we internally call the VizAPI, and that's what's currently providing the visualizations to this interface (by the way, we internally code name this interface DET, don't ask me why…). And this is obviously pluggable, so when we get the chance to make the documentation available, anyone will be able to provide extra visualizations that will be available to use alongside the othere.
And the visualization implementation itself? I'm sure you won't be surprised to know it's the Ctools' CCC charting engine, and we also want to make all the described behavior the default behavior of CCC, which would obviously benefit all the Ctools users out there.
We didn't get time to do it, but very soon we're going to apply this new VizAPI to Analyzer as well, so the visualizations and it's behaviors will be coherent between this new analysis interface and Analyzer.
Stream vs Model: Modelling at the source
You probably noticed that I always used Votes in the previous screenshots, and there's a reason for it: While votes are a cumulative concept, doesn't make any sense at all to show a sum of ranks. But until this point, we have no information that allow us to know what's the business meaning of these fields; All we know is if they're strings, numbers, binaries, dates, etc… In order to get insights from fields like rank, we need to get more semantics out of the fields mean from a business perspective.
And how do we get this information? Classically, this information is appended in a separate stage of the process. We are used to calling it the modelling stage, and it's an operation usually done after the data integration stage is complete. On our stack, we do this by writing Mondrian schemas (if we want to use OLAP) or Pentaho Metadata models for interactive reporting.
But this is incredibly stupid! From the point we get a field called rank, we already know it should be treated as an average. As soon as we see a date field, most likely it will feed a date dimension. If we get country, state, city fields, they will mostly likely be attributes of a territory dimension. Makes no sense at all to wait till the end of this data preparation stage and resort to a different tool to append an information we have from the start.
In this new way of analyzing data as part of the data integration process, we started with the following assumption: There are two different lenses that we can apply to look at a data set:
Stream view: This is the bi-dimensional representation of the physical data that we're working with; A view over the fields and their primary types
Model view: The semantic meaning of those fields; Dimensions, attributes, measures, basically the real business meaning of the stream underneath
On the example I've been using, these are the two views:
Figure 24: Stream view and Model view
Like mentioned before, these are two views over the same domain; If we're interested in looking at the physical stream, the one on the left will be used. If we're looking from a business perspective, it's the model view that has the added information. Our current thinking is that only the model view will be available for the end users (once we get this data exploration experience there).
Annotating the stream
The first time you switch to the model view (and you'll notice that some visualizations only make sense for a specific view, which is the case of the table and the pivot view for stream and model respectively) you'll probably notice that some of the information is not as you want it: Rank is defined as a cumulative measure, decade and years are not on the same dimension, just to name two specific examples.
How to correct this information? Through the special Annotate Stream step. This is where you'll add the extra business information that we'll use to render the correct model view. Here's an example:
Figure 25: Annotating the stream
The concepts should be familiar, as they are based on the dimensional modeling concepts that have been around for 30+ years. Why? Because most of those concepts are not technical, on the contrary – IMO the biggest advantage of the core data warehouse concepts is the way raw data is turned into business meaningful terminology. The technologies to turn one in the other may evolve, but the main concepts are exactly the same: Measures, dimensions, attributes, properties, etc.
So by adding this information, we'll be able to get the correct model from this step on and see the correct model information and expected output from our visualizations:
Figure 26: A visualization using the correct model information
As I'm sure you realized by now, underneath we're generating a Mondrian model. To be more accurate, we're generating what we call a DSW model, which contains more than the Mondrian schema. It's important for us not to lock this down to a specific technology or implementation to allow for future optimizations.
The pivot view
One special visualization is the pivot view, for OLAP- style analysis
Figure 27: The pivot view
The result? An experience you may be very familiar about:
Figure 28: Exploring the data in a pivot table format
One of the key items in Pentaho is embed-ability, and we have a lot of OEM customers. Here we have a classic case of "eat your own dog food", as we're leveraging a highly stylized analyzer visualization and taking advantage of its capabilities to be embedded in an external application. On this case, we are the external application, but it was a great validation that we actually are capable of doing what we say we do ;)
You'll notice that we disabled all the options that are available out of the box in analyzer, like filters, drilldowns, tops, ranks, etc… In future versions we'll progressively add these fundamental operations to this exploration experience, but we'll have to do it in a way where we can do them in all visualizations, not only in the pivot view, and we simply didn't have time to do everything we wanted.
The number of rows
Figure 29: Data set size of the inspection
I've been talking about data inspection. I mentioned this before but want to reinforce so people don't have the wrong expectations over this. We are not exploring the full dataset, at least for all the cases. PDI can process tons of data, and would be physically impossible to have something that could generically analyzer any non-optimized dataset size, at least in a fast and practical manner.
This is about data inspection and spot-checking; What this does is looking at the stream of data that passes in PDI and uses a limited amount of data. This limit, shown here as 1000 rows but will be larger, is still to be determined, but should be in the range of thousands of rows. This (configurable) number will go up in time, never compromising in usability and speed of analysis.
AgileBI, Instaview… Deja-vu?
Some of the older Pentaho users may be asking the following question:
But… isn't this very similar to Agile BI and / or Instaview?
My best answer to that is: While they are indeed similar in concept, the different approach to the implementation makes this extremely useful while the others were, in my (very critical) opinion, completely useless.
What the others did wrong is that they forced the user to go out of the way to use them; AgileBI, for instance, only worked on specific steps, where data was materialized in a table. Then it would take a huge amount of time to prepare the infrastructure, you'd always have to provide modelling information, and eventually you'd be greeted with an analyzer frame running inside a pentaho instance running inside an application server embedded inside spoon…. You'd only be able to do slice and dice operations and when you're done, you lose everything, there's nowhere to go.
Instaview (discontinued and actually removed from the product a while back) had a slightly different approach – while it worked at any step, it always ran the full transformation and moved the data to an embedded MonetDB database and only after that we'd go into analyzer, that once again was running inside a thing that was running inside a thing, that was running inside a thing… jeez, it always felt to me like the architectural version of a Turducken (can you tell that I really, really, really hated those plugins?).
This new approach was built on what we learned from the others:
It doesn't force you to exit your usual work flow, on the contrary, complements it;
We tried to make it extremely fast – there's just a small overhead over the time it takes to actually run the transformation to get the data to be inspected;
It's completely unmaterialized, no persistency involved;
Leverages data services, so takes advantage of push-down optimizations when needed
Gives you several ways to look at the data while you build your transformations, so it's not restricted to a pivot table only
Blends the concept of stream and model on a unified view of the dataset
A single click publishes a datasource in the Pentaho Server
Looking into the future
I really believe that this will have a huge impact for PDI users; On its own it's a fantastic tool that we'll be improving over time and will be a real differentiation in the market. But we want more than that.
We're on a journey to build one single interface for users to engage with information, regardless of where they are. We want to move away from a tool based approach to a data-centric approach, which will drastically improve the overall user experience.
Share Analytics in PDI
This one is it's in own section because it's one of the most useful features; When we're connected to a Pentaho Server, we can immediately publish the dataset to have that available to the users on the Pentaho Server.
Figure 30: Publish datasource
This feature requires a connection to a server because on most cases it will immediately it will create an unmaterialized connection on the Pentaho Server through data services, which means the transformation will be executed on demand on the server. Special care has to be taken to make sure all the resources are available and working correctly on that server. For performance reasons, cache will be enabled by default.
Figure 31: Publish datasource dialog
From this point on you'll be able to name the datasource and it will be created on the Pentaho Server you chose; One important feature, actually inherited from the SDR blueprint (SDR stands for Streamlined Data Refinery) is that the system is smart enough to create a direct JDBC connection to a database if we're publishing from a table output step or equivalent.
As soon as we publish the dataset from within PDI all limits will be removed; The business users will be able to analyze all the data from within the User Console, completely unmaterialized. This requires that some care is needed related to data set size; Data services work extremely well for datasets up to a few million rows, but over that we may need to do some optimizations.
If more performance is needed, the integration developer can, at any time, materialize the data in a database and if he publishes again that unmaterialized connection will be immediately replaced by a "materialized" connection to the database.
This is a key message and strategic direction of the platform: keep things simple, go complex as needed; If the system behaves well with an unmaterialized model, we'll leave it that way. If not, we'll explore other solutions, knowing that there's always a price involved in that (database maintenance, data lifecycle management, etc).
And what's the final result? An exploration in Analyzer that mimics exactly what we saw on PDI (since, on my case, I had a small dataset)
Figure 32: The published result
Reporting Enhancements
And now, for something completely different. This release is not only made of new and shiny stuff. As in all releases tons of issues are addressed, and this time we also revamped the reporting bits to add an extremely important feature: Progress report and partial renderings.
From 7.0 on, if you run a report (PRD or PIR based), you'll see this cool looking progress indicator. And even better, if you see it's taking a lot of time to render cause it's destroying half of the Amazon forest, you have the option to send it to background execution and it will be saved where you want it to.
Figure 33: Progress indicator! I know it's 2016, but better late than ever!
There's a second insanely useful improvement is that we'll start giving you the pages as soon as they're available without the need for you to wait for everything
Figure 34: Handing out stuff as soon as it's ready
In 7.0 we increased our support to Spark in 2 main areas: Added orchestration abilities and support to SQL on Spark
Expanded Spark Orchestration
Figure 35: Spark orchestration improvementsd /
Allows IT/developers to visually coordinate and schedule Spark applications that leverage libraries for streaming, machine learning, structured data query, and other purposes; also supports applications written in Python.
This is important cause it allows to visually coordinate and schedule Spark applications to run in broader pipelines. Having this visual environment makes it easier to manage the wide variety of programming languages and different application types.
In here we expanded the existing Spark submit step capabilities, allowing to submit existing applications that use libraries including Spark Streaming, SparkMLlib, SparkML, and Spark SQL.
This is supported for Cloudera and Hortonworks.
SQL on Spark
Figure 36: SQL on Spark capabilities added to PDI
PDI is now enabled to connect to data with SQL on Spark, making it easier for data analysts to query structured Spark data and integrate it with other data for preparation and analytics. This is done through an HQL query in the relevant PDI steps.
We're leveraging the different Hadoop implementations; Cloudera uses the Hive on Spark JDBC while Hortonworks uses the Spark SQL JDBC driver.
From this point on… business as usual!
Metadata Injection
Figure 37: Metadata injection concept
You don't know what Metadata injection is? You should. It's absolutely useful when you have disparate datasources / rules and want to dynamically change them at runtime, avoiding having to build and maintain a huge amount of transformations and jobs. Define a template, pass metadata at runtime, and you'll be good! Not the easiest thing to do, but that's the price you get for this insanely powerful approach.
We did tons of improvements to this story in 6.1, and we kept adding support to it by enabling more than 30 new steps to this list
Figure 38: Added steps enabled with Metadata Injection in 7.0
Hadoop Security
Figure 39: Added support for Hadoop user impersonation
What a huge and amazing effort the team did here.
We are extending our Kerberos integration to effectively cover impersonation from multiple PDI users (whereas before it was focused on authentication from a single user). Updated PDI Kerberos enhancements will allow multiple authenticated PDI users to access Kerberos-enabled Cloudera Hadoop clusters as multiple Hadoop users, promoting more secure big data integration. This also enables the Hadoop cluster to perform user level tracking and resource management. This granular level of auditing of user activity is essential in enterprise-grade PDI implementations with Hadoop.
While Kerberos is focused on authenticating or providing a secure 'log in' to the cluster, Cloudera Sentry is a framework for user/role authorization to specific resources and data within Hadoop to help enforce business security policies. In other words, users only have access to the data they have been provisioned to access by IT. 7.0 enables the integration of PDI with Cloudera Sentry in order to enforce enterprise data authorization rules. Sentry enables unified user and role based access controls to data, including specific Hive or HBase tables and other data in HDFS, down to the column level of granularity
If you made it to the end of this long and thorough blog on 7.0…..I'm impressed. That probably means that you want some more information? If yes, check out these links:
- Pentaho 7.0 webpage on Pentaho.com with additional information and resources
- Register for the 7.0 webinar on November 9, 2016 where you get to see a live demo of all of this!
As a final comment, I reiterate what I said in the beginning – I consider this the most spectacular release this product has ever seen – the only release better than this one will be the next one ☺
-pedro
Quick Navigation Pedro Alves Top


EXPERIENCE THE REJUVENATING TOUCH of our full body massage. Our experienced, professionally trained therapists will customize your massage according to your needs on that day. Relax…De-Stress…Enjoy!
All Aveda Aroma Massages include the Aveda Energizing Herbal Eye Treatment, Aveda Scalp or Foot Massage.
This massage is the ultimate relaxation! The combination of hot stones and massage will melt away your tension and soothe your body—and feet.
A massage using either pillows or the "pregnancy table." We will work out the sore and aching back, hips and neck. A full body massage customized to your particular needs.
Customized for both guest's needs. Enjoy a relaxing or deep tissue experience together—couples, friends welcome to de-stressing together!
Developed by Avant to create a relaxing and romantic environment fit for any couple. This signature massage incorporates elements of aromatherapy, Swedish Relaxation techniques, and the soothing warmth of hot stones, in a full body massage to make an experience that won't soon be forgot. Experience the Aveda "Love" Aroma throughout. Finish with Aveda Tea and chocolates as you have a few minutes of relaxation together.
Add on to your 60- or 90-minute massage. Smooth and de-puff your trouble areas with Avant's signature treatment, using a special collagen solution, cryotherapy, and stress relieving facial massage movements. Great for those fine lines and dry areas.
Add on to your 60- or 90-minute massage. Renew and revive your dry and tired hands with Aveda's Beautifying Scrub. Enjoy a steamy towel, Signature Hand Massage with Aveda Serum and Moisturizer to leave your hands looking and feeling renewed.
Add on to your 60- or 90-minute massage. Rejuvenate your décolleté with Aveda's Radiant Skin Refiner, followed by a warm towel, lifting massage movements, and finished with a revitalizing serum and moisturizer.
Add on to your 90-minute massage. We begin by sloughing off the dry skin with Aveda's Beautifying Scrub, followed with a Beautifying Oil Moisturizing Treatment. Your back will feel renewed and moisturized.


text:
14.05.18: "Simon Harris's campaign of deception must stop" Cora Sherlock
Reacting to remarks made by Minister Simon Harris, made earlier today at a repeal event, Cora Sherlock of the LoveBoth campaign stated:
"Simon Harris has launched another baseless attack on our campaign by claiming that it is "disgusting" to defend the Eighth Amendment's lifesaving protection for children with disabilities. Voters should be in no doubt that children with Down Syndrome will be the victims of Simon Harris's abortion on demand legislation. To be clear, Simon Harris has placed no protection for children with Down syndrome in his legislation. He is allowing abortion without restrictions up to 12 weeks. During the week three obstetricians confirmed on national radio that Down syndrome can be detected in pregnancy with 99% accuracy at 10 weeks and that terminations for this reason do take place in England by Irish women."
She continued:
"Simon Harris has still failed to honour his commitment to debate this issue. His cowardly approach is to attack the no side when he is safely surrounded by yes campaigners and then to disappear behind his officials. Despite repeated invitations he will still not confirm when and where he will enter a public debate. His campaign of deception regarding Down syndrome abortion rates has to stop. Doctors have made it clear that abortions happen when Down syndrome is detected and he has failed to place any protections for those children in his law. So far Simon Harris' ridiculous tactic is to appear, misrepresent the facts, and then dodge any opportunity for questions on the issue. This has to stop because the voters deserve better."


text:
Oh Ottawa, you can take such a pounding…
POSTED October 15, 2015 9:38 am
This originally appeared in the October 2015 print edition of Ottawa Magazine. Illustration by Alan King.
You're the Holiday Inn of towns. People come in, stay a while, sometimes do dirty things. Yet you clean up the mess and carry on.
So when the election's over, you'll be ready for what happens. Sure, there may be some tears behind the stairs, but you'll get through. Sure, you'll get no respect. You pretend you're Tokyo or Washington or Paris or London or Rome or Berlin, but you're really Brussels.
As I write this, I have no idea whether the Harper government will lose. It should. I wrote a book full of reasons (which are now, conveniently, in a modestly priced but sturdy paperback). But I did leave out one reason, and I think it may be the one that resonates with voters: it's time for a change. Unless you're aging Scotch, working for a pension, or married to the right person, nine years is enough time for anything.
When a politician comes to power with toddlers at home and is still running for re-election when they're in college, it's time to go. When a car that cost $30,000 at the beginning of a term is now a beater that can't pass the air-quality test, it's time to go. When every dog that was young and spry at the beginning of a leader's term is now either dead or barely limping along, it's time to go.
Ottawa will always be there. I moved here at the beginning of the Chrétien term, when there was a Canadian Tire on Kent Street and the Peace Tower hadn't been buried by government and lobbyist office buildings. But even though it's starting to look like a real city (rather than just a bigger version of Peterborough), Ottawa is still a small government town.
So this town will somehow manage the government that is formed after October 19. If it can enable a bunch of naive, well-meaning, populist prairie boys to turn into the most vicious group of governing thugs that has ever run the country, this city can work its magic on anyone
Ottawa's divorce courts can handle the new MPs. (If the long-standing trend holds, about half of all the married MPs who are elected in October will be divorced in their first term. Some will hook up with staffers; others will seduce the babysitter.)
Like Brussels, Ottawa is the capital of a gigantic, loose federation of autonomous states that care little for each other and have vast differences in culture, peoples, and history. Our national parliament apes the one in London but has become about as useless as the European parliament.
And yet Ottawa moves along. After all, we have Beavertails, the Market and, at least for now, the Ottawa Senators. (The hockey team — like herpes, the real senators on Parliament Hill will always be with us.)
Ottawa normally absorbs those who fall out of the money tree. They say this is a Liberal town, but many in Brian Mulroney's administration were able to hang on and make a good buck in lobbying or polling if they had some social skills.
But sometimes even Holiday Inns lose their patience. In 1967, members of The Who busted up a room at the Holiday Inn in Flint, Michigan. Keith Moon, who crossed the river years ago, destroyed a piano, threw people off balconies into the swimming pool, and blew up a toilet. The two surviving members of The Who are still banned for life.
I suspect the same fate awaits most of the Harper crowd. They have fought so hard to hang on because most of them know that this is it. They have risen so far, so fast because of the favour of one strange leader. They have been able to exercise a frightening level of power over the public service, silencing scientists and trying to change our country into a warrior nation.
For the rest of us, this is one time when the phrase "fear and loathing" still fits. We don't respect these people as government professionals — and we don't like them.
If they win, they will try to finish their project. If they lose, they will find Ottawa a very cold place. There will be no soft landing, no university sinecures, no $500 shots on punditry panels, no law-office partnerships, no corner offices in lobby firms.
Because this time, when Ottawa changes the sheets, they'll be sent down to the laundry to be boiled and bleach-ed. Then the room will be ready for the new occupants. And there will be a warm Beavertail in the room.


Hopes of a policy rate cut by the apex bank early next month cheered the markets during trading session on Friday with a benchmark index of the Indian equities markets gaining more than 320 points or 1.17 percent.
The 30-scrip BSE Sensitive Index (Sensex) ended the day with gains of more than 320 points or 1.17 percent as interest-sensitive stocks like automobile, banks and capital goods rose on rate-cut hopes.
Rupee value fluctuation had a positive impact on healthcare and oil and gas srcip.
The wider 50-scrip Nifty of the National Stock Exchange (NSE) also closed with gains. It rose by 114.65 points or 1.38 percent up at 8,433.65 points.
The Sensex of the S&P Bombay Stock Exchange (BSE), which opened at 27,553.03 points, closed the day's trade at 27,828.44 points — up 321.73 points or 1.17 percent from the previous day's close at 27,506.71 points.
The Sensex touched a high of 27,888.32 points and a low of 27,467.23 points in the intra-day trade.
Analysts covering the day's trade said that being the first day of June F&O (future and options) series, the markets rallied despite weak European market cues.
According to the analysts, the European markets fell for a second day as Greece has not reach a debt agreement with its creditors.
In the day's trade, the domestic retail investors started building fresh long positions in the new series on anticipation of a possible rate cut in the next RBI policy meet, which helped the market recover.
"Indian Rupee depreciated even as equities rose, a relationship that is usually seen the other way round, suggesting that both asset classes are individually positioning themselves ahead of the several event risks lined up for next month," said Anand James, co-head technical research desk with Geojit BNP Paribas.
Gaurav Jain, director with Hem Securities: "Hopes of a rate cut by RBI, broad-based renewed buying interest, mixed bag of corporate earnings in the week also weighed on the sentiment.
According to Rajesh Iyer, head of investment advisory services and family office with Kotak Wealth Management said that the stocks have been reacting to results which on an aggregate basis are disappointing.
Iyer added that in spite of poor results Indian market is holding on to expectation of a rate cut on June 2nd Reserve Bank of India (RBI) policy meeting.
During the Friday's, healthy buying was observed in the automobile, banking, healthcare, capital goods, oil and gas, fast moving consumer goods (FMCG) and information technology (IT) sectors.
However, the realty sector stocks came under selling pressure.
The S&P BSE automobile index zoomed by 388.44 points, followed by banking index which rocketed by 306.82 points, healthcare index augmented by 271.55 points, capital goods index increased by 203.95 points, oil and gas index rose by 125.25 points, FMCG index gained by 90.80 and IT index was up by 86.88 points.
The S&P BSE realty index slipped by 1.99 points.
However, S&P BSE banking index augmented by 251.06 points, capital goods index rose 116.71 points, consumer durables index increased by 99.13 points, oil and gas index was higher by 90.88 points and FMCG index was up 54.16 points.
The major Sensex gainers on Friday were: Bharti Airtel, up 5.98 percent at Rs.425.30; Mahindra and Mahindra (M&M), up 4.89 percent at Rs.1,260.20; Gail, up 2.30 percent at Rs.389.90; Maruti Suzuki, up 2.26 percent at Rs.3,785.45; and Coal India, up 2.14 percent at Rs.391.30.


SIGN THE KUSF PETITION <-- University of San Francisco is trying to sell KUSF 90.3's FM's license and transmitter! We need your help to keep independent, locally programmed student-run radio on San Francisco's airwaves. Please sign this petition and make your voice heard!


text:
India condoles tragic loss of lives in Nepal plane crash
16 Jan, 2023, 12:43 pm
Indian leaders condoled the death of 68 people, including at least 5 Indians, in Nepal's Yeti Airlines ATR-72 plane crash.
This is Nepal's worst plane crash in five years. According to Nepal's Civil Aviation Authority the ATR-72 Yeti Airlines flight which crashed somewhere between the old airport of Pokhara region and the Pokhara International Airport was carrying 68 passengers including five Indians and four crew members, which made 72 people onboard in total.
Pained by the tragic air crash in Nepal in which precious lives have been lost, including Indian nationals. In this hour of grief, my thoughts and prayers are with the bereaved families. @cmprachanda @PM_nepal_
Taking to Twitter, Aviation Minister Jyotiraditya Scindia said, "The loss of lives in a tragic plane crash in Nepal is extremely unfortunate. My thoughts and prayers are with the families of the bereaved. Om Shanti."
Indian Minister S Jaishankar also expressed grief over the incident and extended his condolences to the victims. "Deeply grieved on hearing about the air crash in Pokhara, Nepal. Our thoughts are with the affected families," Jaishankar tweeted.
According to official reports 4 out of 5 Indian casualties were from Uttar Pradesh, Ghaziapur district.
Meanwhile, the black box or the flight data recorder (FDR) of the Yeti Airlines aircraft has been handed over by the Nepal Army to Civil Aviation Authority officials on January 16.
The twin-engine ATR 72 aircraft from Kathmandu crashed in Pokhara minutes before touch-down on January 15. A total of 68 bodies have been recovered so far from the site of the crash.
"Bodies of passengers, whose identities have been established, have been sent for post-mortem. A group of experts also has arrived at the spot. The bodies will be handed over to the families here but those of the crew members, foreigners and the ones yet to be identified will be sent to Kathmandu this evening," Assistant Chief District Officer of Kaski, Nepal, Anil Kumar Shahi said.


text:
Finnish presidency to war-game hybrid threat response
Finland's interior minister Maria Ohisalo at the latest meeting of ministers (Photo: Council of the European Union)
HELSINKI, 27. Jun 2019, 14:55
Finland plans to hold simulations among EU home affairs and finance ministers to better prepare the EU for any hybrid attacks that might be directed towards the bloc.
"We want member states to strengthen their capacities to counter hybrid threats," Finland's foreign minister Pekka Haavisto told reporters in Helsinki on Thursday (27 June).
"Its aim is to find a way to build resilience and raise awareness in the EU," Finland's interior minister Maria Ohisalo said, adding that the exercise is partly to serve as practice on how EU can make decisions when facing acute hybrid threats.
It also serves as a signal to the EU's enemies that the bloc is preparing for various attacks.
The so-called "scenario based policy discussion" will be held for justice and home affairs ministers in Helsinki on 18 July, and for finance ministers on 13-14 September on how to tackle hybrid threats in the financial sector.
The preliminary outcomes will be discussed at a joint informal meeting of ministers in Helsinki at the end of August.
Finland plans to organise the simulations and draw up the scenarios played out by the ministers at their Helsinki informal meetings to counter hybrid threats, including hostile measures from cyber attacks to disinformation campaigns with the aim of undermining social cohesion.
However, Finnish officials are tight-lipped about the possible scenarios the ministers will have to deal with in the simulations.
The Finnish presidency also wants to set up a permanent council working group, an expert group of member states' representatives, on hybrid threats.
Finland's initiative is part of a wider effort by the EU to counter hostile hybrid attacks from Russia, China and other authoritarian states.
At last week's summit, EU leaders said in their conclusions that "the EU must ensure a coordinated response to hybrid and cyber threats", and to "work on measures to enhance the resilience and improve the security culture of the EU against cyber and hybrid threats from outside the EU".
GPS jamming
Last year Finland experienced a disruption in the GPS signal in its northern airspace during Nato war games held last year. Russia was suspected to be behind the deliberate jamming.
Hybrid threats are aiming to weaken social cohesion, undermine social unity and trust in government and public authorities, Ohisalo pointed out, adding that they target core values such as democracy, openness, free flow of information, freedom of speech and democratic freedom.
Ohisalo highlighted that one way to counter hybrid threats is by strengthening social cohesion.
Nato war games come at tricky time in EU-Russia relations
EU cyber chief says expectations exceed resources
'Russian sources' targeted EU elections with disinformation
Nato is to hold large-scale war games on Russia's border shortly before the EU plans to take away a former Soviet jewel: Ukraine.
Enisa's Udo Helmbrecht says that the agency will fulfil its tasks under the new regulation - but hinted at doing the bare minimum if its budget was not increased.
The efforts to sway the mood - and the votes - of EU citizens was more targeted and nuanced, and not only restricted to Russian sources. The EU wants online platforms to do more.
EPP to keep Orban's Fidesz suspension
European People's Party president Donald Tusk told his group's MEPs that the suspension of Hungary's Fidesz party will continue - and vowed not to compromise on the centre-right party alliance's values.
How Slovakia's far-right might pull off an election victory
Slovakia's far-right party is at a historic high, as the murder trial of a journalist and his partner reveals corruption at the highest state level and lead to general disillusionment among the voting public.
Salvini down, but not out in Italy regional poll
Italian far-right chief Matteo Salvini failed to topple the left in a regional poll on Sunday, but his comeback bid is not over yet.
Wilmès becomes first female PM of Belgium
On Sunday, Sophie Wilmès was appointed as the new prime minister of Belgium - becoming the first female head of government in the country's history. She replaces Charles Michel who becomes president of the European Council.
Far right to double support in east German election
One in four Germans hold antisemitic views, amid a surge in popularity by the far-right AfD party, whose leader once demanded a "180-degree U-turn" on Germany's WW2 guilt.


text:
package edu.oregonstate.carto.mapcomposer.utils;

import com.jhlabs.image.PointFilter;
import java.awt.*;

/**
 * Takes the brightness from the image that is being filtered and combines it
 * with the hue and saturation of a definable tint.
 */
public class TintFilter extends PointFilter {

    private Color tint;
    private float tintHue;
    private float tintSaturation;

    @SuppressWarnings("OverridableMethodCallInConstructor")
    public TintFilter() {
        this.setTint(Color.GREEN);
    }

    @Override
    public int filterRGB(int x, int y, int rgb) {
        int a = rgb & 0xff000000;
        int r = (rgb >> 16) & 0xff;
        int g = (rgb >> 8) & 0xff;
        int b = rgb & 0xff;

        float brightness = ((r * 77 + g * 151 + b * 28) >> 8) / 255f; // NTSC luma
        if (brightness < 0f)
            brightness = 0f;
        else if (brightness > 1.0)
            brightness = 1.0f;
        rgb = Color.HSBtoRGB(this.tintHue, this.tintSaturation, brightness);
        return a | (rgb & 0xffffff);
    }

    @Override
    public String toString() {
        return "Tint";
    }

    public void setTint(Color tint) {
        this.tint = tint;
        int rgb = tint.getRGB();
        int a = rgb & 0xff000000;
        int r = (rgb >> 16) & 0xff;
        int g = (rgb >> 8) & 0xff;
        int b = rgb & 0xff;
        float[] hsb = new float[3];
        Color.RGBtoHSB(r, g, b, hsb);
        this.tintHue = hsb[0];
        this.tintSaturation = hsb[1];
    }
}

redpajama_set_name: RedPajamaGithub


text:
The end of the decree means the RNC is now free to step up its efforts on voter fraud and to take a role in coordinating Election Day poll monitoring. | Zach Gibson/Getty Images
Judge ends consent decree limiting RNC 'ballot security' activities
By JOSH GERSTEIN
After more than three decades, Republicans are free of a federal court consent decree that sharply limited the Republican National Committee's ability to challenge voters' qualifications and target the kind of fraud President Donald Trump has alleged affected the 2016 presidential race.
Newark-based U.S. District Court Judge John Michael Vazquez ruled in an order released Tuesday that the longstanding decree ended Dec. 1 and will not be extended.
The decree, which dated to 1982, arose from a Democratic National Committee lawsuit charging the RNC with seeking to discourage African-Americans from voting through targeted mailings warning about penalties for violating election laws and by posting armed, off-duty law enforcement officers at the polls in minority neighborhoods.
To extend the decree, the DNC needed to show that the RNC violated the terms of the pact. Democrats pointed to a series of incidents during the 2016 election in which they alleged people who claimed or appeared to be working for the RNC were engaged in poll watching. A November 2016 POLITICO report describing RNC spokesman Sean Spicer's Election Day activities led the judge to order Spicer to submit to a deposition.
POLITICO Playbook newsletter
Sign up today to receive the #1-rated newsletter in politics
Vazquez, an appointee of former President Barack Obama, said in his ruling that despite the various claims, the Democrats had not shown any violation "by a preponderance of the evidence."
An RNC official praised the ruling.
"We are gratified that the judge recognized our full compliance with the consent decree and rejected the DNC's baseless claims," said RNC communications director Ryan Mahoney.
"Today's ruling will allow the RNC to work more closely with state parties and campaigns to do what we do best, ensure that more people vote through our unmatched field program."
While the end of the decree means the RNC is now free to step up its efforts on voter fraud and to take a role in coordinating Election Day poll monitoring, it is unclear whether the national party will resume such work, which has been left to individual campaigns and state parties in recent years.
Some GOP leaders have urged the national party to continue to avoid those activities to avoid alienating minority voters, who often view those efforts as discriminatory.
However, during the 2016 campaign, Trump repeatedly expressed concern about voter fraud, sometimes referring to "certain areas" where, he alleged, that kind of election-related misconduct is rampant.
Spokespeople for the DNC and the White House did not immediately respond to requests for comment.
Trump, Romney talk on phone amid speculation over Utah Senate bid
By ALEX ISENSTADT
Although the decree technically permitted the RNC to engage in some Election Day activities at the polls and to seek advance permission for so-called "ballot security" work, the national party and its attorneys went to considerable lengths in recent years to urge national party officials and staff to steer clear of such activity, in part to avoid triggering allegations that could lead the consent decree to be extended.
One of the allegations that led to the decree involved use of a practice called voter "caging" — using returned mail to seek to have voters removed from the rolls.
On Wednesday, the Supreme Court will take up a case about a similar practice in Ohio, examining the legality of a procedure that state uses to cancel the registration of voters who haven't voted in two federal elections and don't respond to a mailed notice from election authorities. The Obama administration argued that Ohio's approach violated federal law, but the Trump administration reversed course and is backing the Buckeye State's effort to slim its voter rolls.
Republican National Committee
U.S District Court


J G Price & Sons are one of only a few Passivhaus groundworks contractors in the UK along with 30 years experience in ground works & complete building services.
Looking for a reliable building service provider in Hereford? Our services include complete ground works for all shapes & sizes. With over 30 years experience and our business foundations built off of providing expert ground works. You won't find a better provider for your project.
We have been hard at work with some of the leading UK's house suppliers to offer outstanding quality in new build projects. We have completed over 300 jobs in & around Herefordshire, & with our reputation of excellence in all we do. People can trust our name.
We have been hard at work with home owners for over 30 years. Offering outstanding quality in extensions & home improvements. We have completed over 300 jobs in & around Herefordshire, & with our reputation of excellence in all we do.
Whilst we work on many large building projects, J G Price And Sons also love to work with home owners, landlord and councils to help build, extend, pave, offer brickwork & much more. Let our sought after, family run business manage your next building project.


Gary Parrish wrote a good column recapping last nights Grizz game–particularly the Tony Allen craziness.
"It was a boneheaded play," Allen said with a smile afterward, and how else to describe a foul on a Westbrook 3-pointer in the final 30 seconds of regulation that produced a 4-point play and allowed Oklahoma City to tie the score 85-85 and eventually force overtime?
Any of those words will work. Also this one: Predictable.
Allen nearly cost the Grizzlies a win in the postseason because of a foul on a 3-point shooter (who happens to be a terrible 3-point shooter, at least lately) in the final 30 seconds of a game in which Memphis led by four points, and that's exactly the type of thing that would get another player murdered by the home fans. But not TA. Instead, folks merely shake their heads, grin at each other and trust that he'll somehow make up for it soon, and the wild thing is that he almost always does.
…talking about some good things, some bad things, and the great thing about being just two wins away from again advancing in the Western Conference Playoffs.


This Sunday Music Muse Day selections have a solid common factor, the late great jazz guitarist John Abercrombie. First up, is Kenny Wheeler It Takes Two with Abercrombie, another guitarist John Parricelli, and bassist Anders Jormin. From the lineup and music you could easily assume this was ECM release, but it is from CamJazz. In statement from their webpage, "A refined jazz label, launched in the year 2000, dedicated to releasing jazz recordings performed by some of the most outstanding Italian and international jazz performers of our times." This ranges from a cool laid back rendition of Love Theme from "Spartacus" to Avant Garde free improvisations. If CamJazz other releases are of this quality, I'll definitely put them on my watch list.
The second selection is Jim Vivian Sometime Ago. John Abercrombie joins the Canadian bassist and leader as online reviewer Stuart Broomer states, "This session, led by bassist Jim Vivian, was recorded in Toronto in 2016 following a series of performances at Jazz Bistro. Five of the tracks are trio performances with drummer Ian Froman; three tracks add tenor saxophonist Mike Murley. It's eminently listenable music, low-key modern jazz that possesses depths and details that reward close attention. Abercrombie, Vivian and Froman weave complex webs of subtly inflected lines, often on jazz standards." I totally agree with the review. Again, the international appeal of jazz shines through. I hope to visit Toronto soon, and plan to pay a visit to the Jazz Bistro, if it is still there.
Today had nice enough weather for us to take a walk in the park, and it was nice to return home to an afternoon snack, while enjoying these two CDs. Hope you find time to enjoy some good tunes, also.