There are no classes at this time.
Are you interested in CBFNC Christian Coach Certification?
Take note of the dates & steps to the next generation of training.
Share it with anyone who might have interest in this certification process.
Visit this website and Eddie's personal website for additional information and articles about benefits of Christian Coaching.
Read a variety of resource articles found at the bottom of this webpage.
Click here to see a list of CBFNC-Certified Christian Coaches.
Christian Leadership Coaching Certification includes….
For information and registration details about coach training, please email Eddie Hammett at ehammett@cbfnc.org.
Certified coaches are now available to be selected by coaches in training to be mentor coaches.
Selected certified coaches will be invited to shadow Eddie as a trainer in training.
Finding and Embracing Your Churches Future: A Coach Approach to Strategic Planning has been successfully conducted in 5 CBFNC congregations with others in the pipeline for 2012. This process will also provide the framework for working with CBFNC councils in their planning for the next 5 years. Note the ABP story on the impact of congregational coaching at Oakmont Baptist in Greenville, NC. Click here.
Coach Approach being utilized in programming for deacons, congregations facing the future and those seeking clarity about their denominational alignment. Click here for registration details.
In addition to the coaching Eddie Hammett offers through CBFNC, he also conducts training through The Columbia Partnership. Click here to view his upcoming webinars.
Living up to your church's "tagline."
"Discipleship Functions of Christian Coaching: How Coaching Impacts Leaders"
This article by Edward Hammett provides a biblical framework for Christian coaching and overviews variety of ways coaching benefits and impacts leaders and congregations.
ABP article on impact of coach approach at Oakmont Baptist Church, Greenville, NC.
is the lead article for The Columbia Partnership this week and the focus of a free Travel Free Learning Dialogue on Wed, February 23rd at 2pm EST. The article can be downloaded free and call in info for the conference call can be found at this website.
As the church and clergy coach for CBFNC I'm frequently asked how do I know if a coach can help me or my church? What is the most fertile soil for exercising the coach approach?
This is an article describing the sequence of training, the value of partnering, certification requirements and the benefits of coaching for missional leaders.
This is an illustration of the power of coaching and some of the implications and avenues the coach approach can be utilized.
Four primary coaching tools: intense multi-level listening; finding and keeping focus in a conversation; moving from talk to action; and working from the agenda of the person/group being coached.
Givens, negotiables and plan of action for coach/client relationship.


A list of things I'm currently working on.
Plans, drawings, materials ued, & step-by-step process for building a water tank car, a barrel car, a blacksmith car, a supply car, a boxcar and a caboose.
Research, plans, and working details converting a Ruby kit to a 0-4-2 tank engine used in the Hawiaan Cane fields.
Building a Crane car and its Idler car. Featured in Issue# 109, Steam in the Garden Magazine.
Plans and work details for building 1:20:3 Crane and Idler cars for your narrow gauge railroad.


text:
https://www.mysanantonio.com/sports/spurs/article/Spurs-shaken-literally-in-Las-Vegas-14075003.php
Spurs shaken (literally) in Las Vegas
By Jeff McDonald
Published 12:30 am CDT, Saturday, July 6, 2019
LAS VEGAS -- The Spurs' opening game at the Las Vegas Summer League on Friday was called on account of earthquake.
A 7.1 quake centered 150 miles northeast of Los Angeles hit at 8:19 p.m. Pacific time, with tremors felt as far away as the Cox Pavilion in Las Vegas. The Spurs were in the first half of their Summer League game against Orlando at the time.
"That's a new one," said assistant Becky Hammon, who is coaching the Spurs summer league squad. "The crazy thing, I could feel it. I was like, 'Am I tripping right now? Am I going to pass out?' Everything is rocky and swaying."
The teams played on until the end of the third quarter, which ended with the Magic ahead 75-59. Across the hall of UNLV's basketball complex, at the Thomas & Mack Center, New Orleans' game against New York -- marking the Las Vegas debut of Pelicans rookie sensation Zion Williamson -- was also called mid-game. The final 7:54 was cancelled.
The late game between Phoenix and Denver was called before it began. As of late Friday night, NBA officials were expecting to resume play Saturday, though it was unclear if both arenas would be used.
Thomas & Mack Center, with its large scoreboard hanging over midcourt, presented a bigger problem than the smaller Cox Pavilion. Still, Hammon agreed it was best to err on the side of caution.
"There's a little bit of a crack in the floor," she said. "I think the scoreboards were messed up. I think on account of safety of the players and the fans, it's better off to get everybody out."
Spurs guard Lonnie Walker IV, who had 28 points when the game was stopped, called the night memorable. When the tremors rocked the arena, Walker said he thought he had taken ill.
"I thought I was about to pass out," Walker said. "That's what I thought it was. I was like, 'Am I dizzy? I don't know what's wrong with me?' Everyone's like, 'Nah, it's all of us.' I checked the lights and they're moving around and I'm like, 'Whoa. I'm not used to this.' It got me a little scared."

redpajama_set_name: RedPajamaCommonCrawl


text:
discuss whether nursing is a profession or an occupation. What can current and future nurses do to enhance nursing™s standin - Nursing Papers
discuss whether nursing is a profession or an occupation. What can current and future nurses do to enhance nursing™s standin
write a 200 word message discussion . 100 word each question. must use the information from the chapter attached.
1- discuss whether nursing is a profession or an occupation. What can current and future nurses do to enhance nursing's standing as a profession?
2- Select one of the middle range theories derived from a grand nursing theory and one derived from a non-nursing theory. Analyze both for ease of application to research and practice.
CHAPTER1nursingasaprofession.docx
MiddleRangeNursingTheories.docx
CHAPTER 1: Philosophy, Science, and Nursing
Melanie McEwen
Largely due to the work of nursing scientists, nursing theorists, and nursing scholars over the past five decades, nursing has been recognized as both an emerging profession and an academic discipline. Crucial to the attainment of this distinction have been numerous discussions regarding the phenomena of concern to nurses and countless efforts to enhance involvement in theory utilization, theory generation, and theory testing to direct research and improve practice.
A review of the nursing literature from the late 1970s until the present shows sporadic discussion of whether nursing is a profession, a science, or an academic discipline. These discussions are sometimes pleading, frequently esoteric, and occasionally confusing. Questions that have been raised include: What defines a profession? What constitutes an academic discipline? What is nursing science? Why is it important for nursing to be seen as a profession or an academic discipline?
Nursing as a Profession
In the past, there has been considerable discussion about whether nursing is a profession or an occupation. This is important for nurses to consider for several reasons. An occupation is a job or a career, whereas a profession is a learned vocation or occupation that has a status of superiority and precedence within a division of work. In general terms, occupations require widely varying levels of training or education, varying levels of skill, and widely variable defined knowledge bases. In short, all professions are occupations, but not all occupations are professions (Finkelman & Kenner, 2013).
Professions are valued by society because the services professionals provide are beneficial for members of the society. Characteristics of a profession include (1) defined and specialized knowledge base, (2) control and authority over training and education, (3) credentialing system or registration to ensure competence, (4) altruistic service to society, (5) a code of ethics, (6) formal training within institutions of higher education, (7) lengthy socialization to the profession, and (8) autonomy (control of professional activities) (Ellis & Hartley, 2012; Finkelman & Kenner, 2013; Rutty, 1998). Professions must have a group of scholars, investigators, or researchers who work to continually advance the knowledge of the profession with the goal of improving practice (Schlotfeldt, 1989). Finally, professionals are responsible and accountable to the public for their work (Hood, 2010). Traditionally, professions have included the clergy, law, and medicine.
Until near the end of the 20th century, nursing was viewed as an occupation rather than a profession. Nursing has had difficulty being deemed a profession because many of the services provided by nurses have been perceived as an extension of those offered by wives and mothers. Additionally, historically, nursing has been seen as subservient to medicine, and nurses have delayed in identifying and organizing professional knowledge. Furthermore, education for nurses is not yet standardized, and the three-tier entry-level system (diploma, associate degree, and bachelor's degree) into practice that persists has hindered professionalization because a college education is not yet a requirement. Finally, autonomy in practice is incomplete because nursing is still dependent on medicine to direct much of its practice.
On the other hand, many of the characteristics of a profession can be observed in nursing. Indeed, nursing has a social mandate to provide health care for clients at different points in the health–illness continuum. There is a growing knowledge base, authority over education, altruistic service, a code of ethics, and registration requirements for practice. Although the debate is ongoing, it can be successfully argued that nursing is an aspiring, evolving profession (Finkelman & Kenner, 2013; Hood, 2010; Judd, Sitzman, & Davis, 2010). See Link to Practice 1-1 for more information on the future of nursing as a profession.
Link to Practice 1-1: The Future of Nursing
The Institute of Medicine (IOM, 2011) recently issued a series of sweeping recommendations directed to the nursing profession. The IOM explained their "vision" is to make quality, patient-centered care accessible for all Americans. Recommendations included a three-pronged approach to meeting the goal.
The first "message" was directed toward transformation of practice and precipitated the notion that nurses should be able to practice to the full extent of their education. Indeed, the IOM advocated for removal of regulatory, policy, and financial barriers to practice to ensure that "current and future generations of nurses can deliver safe, quality, patient-centered care across all settings, especially in such areas as primary care and community and public health" ( p. 30 ).
A second key message related to the transformation of nursing education. In this regard, the IOM promotes "seamless academic progression" ( p. 30 ), which includes a goal to increase the number and percentage of nurses who enter the workforce with a baccalaureate degree or who progress to the degree early in their career. Specifically, they recommend that 80% of RNs be BSN prepared by 2020. Last, the IOM advocated that nurses be full partners with physicians and other health professionals in the attempt to redesign health care in the United States.
These "messages" are critical to the future of nursing as a profession. Indeed, standardization of entry level into practice at the BSN level, coupled with promotion of advanced education and independent practice, and inclusion as "leaders" in the health care transformation process, will help solidify nursing as a true profession.
Nursing as an Academic Discipline
Disciplines are distinctions between bodies of knowledge found in academic settings. A discipline is "a branch of knowledge ordered through the theories and methods evolving from more than one worldview of the phenomenon of concern" (Parse, 1997, p. 74). It has also been termed a field of inquiry characterized by a unique perspective and a distinct way of viewing phenomena (Butts, Rich, & Fawcett, 2012; Parse, 1999).
Viewed another way, a discipline is a branch of educational instruction or a department of learning or knowledge. Institutions of higher education are organized around disciplines into colleges, schools, and departments (e.g., business administration, chemistry, history, and engineering).
Disciplines are organized by structure and tradition. The structure of the discipline provides organization and determines the amount, relationship, and ratio of each type of knowledge that comprises the discipline. The tradition of the discipline provides the content, which includes ethical, personal, esthetic, and scientific knowledge (Northrup et al., 2004; Risjord, 2010). Characteristics of disciplines include (1) a distinct perspective and syntax, (2) determination of what phenomena are of interest, (3) determination of the context in which the phenomena are viewed, (4) determination of what questions to ask, (5) determination of what methods of study are used, and (6) determination of what evidence is proof (Donaldson & Crowley, 1978).
Knowledge development within a discipline proceeds from several philosophical and scientific perspectives or worldviews (Litchfield & Jonsdottir, 2008; Newman, Sime, & Corcoran-Perry, 1991; Parse, 1999; Risjord, 2010). In some cases, these worldviews may serve to divide or segregate members of a discipline. For example, in psychology, practitioners might consider themselves behaviorists, Freudians, or any one of a number of other divisions.
Several ways of classifying academic disciplines have been proposed. For instance, they may be divided into the basic sciences (physics, biology, chemistry, sociology, anthropology) and the humanities (philosophy, ethics, history, fine arts). In this classification scheme, it is arguable that nursing has characteristics of both.
Distinctions may also be made between academic disciplines (e.g., physics, physiology, sociology, mathematics, history, philosophy) and professional disciplines (e.g., medicine, law, nursing, social work). In this classification scheme, the academic disciplines aim to "know," and their theories are descriptive in nature. Research in academic disciplines is both basic and applied. Conversely, the professional disciplines are practical in nature, and their research tends to be more prescriptive and descriptive (Donaldson & Crowley, 1978).
Nursing's knowledge base draws from many disciplines. In the past, nursing depended heavily on physiology, sociology, psychology, and medicine to provide academic standing and to inform practice. In recent decades, however, nursing has been seeking what is unique to nursing and developing those aspects into an academic discipline. Areas that identify nursing as a distinct discipline are as follows:
1-Select one of the middle range theories derived from a grand nursing theory and one derived from a non-nursing theory. Analyze both for ease of application to research and practice.
CHAPTER 10: Introduction to Middle Range Nursing Theories
Annette Cohen is a second-year graduate nursing student interested in starting her major research/scholarship project. For this project, she would like to develop some of her experiences in hospice nursing into a preliminary middle range theory of spiritual health. Annette has studied spiritual needs and spiritual care for many years but believes that the construct of spiritual health is not well understood. She views spiritual health as the result of the interaction of multiple intrinsic values and external variables within a client's experiences, and she believes that it is a significant contributing factor to overall health and well-being.
After reviewing theoretical writings dealing with spiritual nursing care, Annette found a starting point for her work in Jean Watson's Theory of Human Caring (Watson, 2005) because of its emphasis on spirituality and faith. From Watson's work, she was particularly interested in applying the concepts of "actual caring occasion" and "transpersonal" care. To develop the theory, Annette obtained a copy of Watson's most recent work and performed a comprehensive review of the literature covering theory development and the Theory of Human Caring. She then did an analysis of the concept of spiritual health. Combining the concept analysis and the literature review of Watson's work led to the development of assumptions and formal definitions of related concepts and empirical indicators. After conversing with her instructor, she concluded that her next steps were to construct relational statements and then draw a model depicting the relationships among the concepts that comprise spiritual health.
As discussed in Chapter 2 , middle range nursing theories lie between the most abstract theories (grand nursing theories, models, or conceptual frameworks) and more circumscribed, concrete theories (practice theories, situation-specific theories, or microtheories). Compared to grand theories, middle range theories are more specific, have fewer concepts, and encompass a more limited aspect of the real world. Concepts are relatively concrete and can be operationally defined. Propositions are also relatively concrete and may be empirically tested.
The discipline of nursing recognizes middle range theory as one of the contemporary trends in knowledge development, and there is broad acceptance of the need to develop middle range theories to support nursing practice (Alligood, 2010; Fitzpatrick, 2003; Kim, 2010; Peterson, 2013). According to Morris (1996) and Suppe (1996), this call to develop middle range theory is consistent with the third stage of legitimizing the discipline of nursing. The first stage focuses on differentiation of the perspective of the emerging discipline, which is characterized by separation from antecedent disciplines (i.e., medicine) and the establishment of university-based education, which in nursing occurred during the 1950s and 1960s. The second stage is marked by the quest to secure institutional legitimacy and academic autonomy. This stage characterized nursing during the 1970s and through the 1980s, when pursuit of nursing's unique perspective on and clarification of the phenomena of interest to the discipline were stressed. The third stage began in the 1990s and is distinguished by increased attention to substantive knowledge development, which includes development and testing of middle range theories. This stage is expanding and evolving further to include evidence-based practice and situation-specific theories (see Chapter 12 ).
Middle range theories are increasingly being used in nursing research studies. Many researchers prefer to work with middle range theories rather than grand theories or conceptual frameworks because they provide a better basis for generating testable hypotheses and addressing particular client populations. A review of nursing research journals and dissertation abstracts indicates that nursing research is currently being used in the development and testing of a number of middle range theories, and middle range theories are frequently being used as frameworks for investigation. Furthermore, middle range theories are presently being refined on the basis of research results.
Despite the promotion of middle range theories in recent years, there is a lack of clarity regarding what constitutes middle range theory in nursing. According to Cody (1999), "It appears that almost any theoretical entity that is more concrete than the broadest of grand theories is considered middle range by someone" (p. 10). It has been noted that nursing theory textbooks (e.g., Alligood, 2010; Chinn & Kramer, 2011; Fawcett & DeSanto-Madeya, 2013; Parker & Smith, 2010) disagree to some degree on which theories should be labeled as middle range. Indeed, some authors list a few of the readily accepted grand theories (e.g., Parse, Newman, Peplau, and Orlando) as middle range. Others consider somewhat more circumscribed theories (e.g., Leininger, Pender, Benner and Erickson, Tomlin, and Swain) to be middle range, although the theory's authors may not agree. In essence, there has been a paucity of discussion on the subject and therefore there is little consensus. This issue is discussed in more detail later in the chapter.
Purposes of Middle Range Theory
Middle range theories were first suggested in the discipline of sociology in the 1960s and were introduced to nursing in 1974. At that time, it was observed that middle range theories were useful for emerging disciplines because they are more readily operationalized and addressed through research than are grand theories. More than 15 years elapsed, however, before there was a concerted call for middle range theory development in nursing (Blegen & Tripp-Reimer, 1997; Meleis, 2012).
Development of middle range theories is supported by the frequent critique of the abstract nature of grand theories and the difficulty of their application to practice and research. The function of middle range theories is to describe, explain, or predict phenomena, and, unlike grand theory, they must be explicit and testable. Thus, they are easier to apply in practice situations and to use as frameworks for research studies. In addition, middle range theories have the potential to guide nursing interventions and change conditions of a situation to enhance nursing care. Finally, a major role of middle range theory is to define or refine the substantive component of nursing science and practice (Higgins & Moore, 2000). Indeed, Lenz (1996) noted that practicing nurses are actually using middle range theories but are not consciously aware that they are doing so.
Each middle range theory addresses relatively concrete and specific phenomena by stating what the phenomena are, why they occur, and how they occur. In addition, middle range theories can provide structure for the interpretation of behavior, situations, and events. They support understanding of the connections between diagnosis and outcomes, and between interventions and outcomes (Fawcett & DeSanto-Madeya, 2013).
Enhancing the focus on middle range theories in nursing is supported by several factors. These include the observations that middle range theories
· are more useful in research than grand theories because of their low level of abstraction and ease of operationalization
· tend to support prediction better than grand theories due to circumscribed range and specificity of the concepts
· are more likely to be adopted in practice because their relative simplicity eases the process of developing interventions for identified health problems (Cody, 1999; Peterson, 2013)
Like theory in general, middle range theory has three functions in nursing knowledge development. First, middle range theories are used as theoretical frameworks for research studies. Second, middle range theories are open to use in practice and should be tested by research. Finally, middle range theories can be the scientific end product that expresses nursing knowledge (Suppe, 1996).
Characteristics of Middle Range Theory
Several characteristics identify nursing theories as middle range. First, the principal ideas of middle range theories are relatively simple, straightforward, and general. Second, middle range theories consider a limited number of variables or concepts; they have a particular substantive focus and consider a limited aspect of reality. In addition, they are receptive to empirical testing and can be consolidated into more wide-ranging theories. Third, middle range theories focus primarily on client problems and likely outcomes, as well as the effects of nursing interventions on client outcomes. Finally, middle range theories are specific to nursing and may specify an area of practice, age range of the client, nursing actions or interventions, and proposed outcomes (Meleis, 2012; Peterson, 2013).
The more frequently used middle range theories tend to be those that are clearly stated, easy to understand, internally consistent, and coherent. They deal with current nursing perspectives and address socially relevant topics that solve meaningful and persistent problems. In summary, middle range theories for nursing combine postulated relationships between specific, well-defined concepts with the ability to measure or objectively code concepts. Thus, middle range theories contain concepts and statements from which hypotheses may be logically derived and empirically tested, and they can be easily adopted to guide nursing practice. Table 10-1 compares characteristics of grand theory, middle range theory, and practice/situation-specific theory, and characteristics of middle range theory are shown in Box 10-1 .
Middle Range Theory Derived From a Grand Theory
As explained previously, many nursing theorists and scholars agree that grand theories are difficult to apply in research and practice and suggest development of middle range theories derived from them. During the last two decades, several theories developed from grand theories have been published in the nursing literature. One example is a middle range theory of nurse-expressed empathy (Olson & Hanchett, 1997), which was derived from three relational statements taken from Orlando's model. These statements were developed into theoretical propositions focusing on nurse-expressed empathy. Two examples used Orem's theory. In one, Riegel, Jaarsma, and Stromberg (2012) developed the theory of self-care of chronic illness, patterning their notion of self-care from Orem's theory. Similarly, Rew (2003) developed a theory of self-care from experiences of homeless youth based on Orem's theory.
In other examples, Hastings-Tolsma (2006) developed the Theory of Diversity of Human Field Pattern from Martha Rogers' Science of Unitary Human Beings. Cazzell (2008) employed the Neuman Systems Model as a basis for the middle range theory of adolescent vulnerability to risk behaviors, and in another work, Polk (1997) cited the work of both Margaret Newman and Martha Rogers as sources contributing to her middle range theory of resilience.
Several middle range theories were found which were developed from the Roy Adaptation Model (RAM). In one example, Dobratz (2011) derived the theory of psychological adaptation in death and dying from a series of studies linked to the RAM, and in another example, Hamilton and Bowers (2007) developed the Theory of Genetic Vulnerability from Roy's work. Similarly, Smith and colleagues (2002) developed a theory describing caregiving effectiveness based on the structure and concepts from the RAM, and Whittemore and Roy (2002) used concept syntheses to integrate concepts and assumptions from the RAM to theoretically describe "adapting to diabetes mellitus." Finally, Roy's model was also used in the development of a middle range theory of caregiver stress (Tsai, 2003).
NURSING EXEMPLAR 2: MIDDLE RANGE THEORY DERIVED FROM A GRAND THEORY
Mefford (2004) used Levine's Conservation Model of Nursing to develop a Theory of Health Promotion for Preterm Infants. In this case, Levine's theory was used as a framework for nursing practice for the NICU to ensure that needs of both the infant and family are addressed.
Theory Development Process: To develop the Theory of Health Promotion for Preterm Infants, the theorist first described elements of Levine's Conservation Model internal and external environments, wholeness and conservation principles (conservation of energy, structural integrity, personal integrity, and social integrity) and applied these concepts in the NICU. She determined a "goal of restoring a state of wholeness, or health" (p. 260) ( Figure 10-1 ).
FIGURE 10-1: Conceptual diagram of Levine's conservation model of nursing.
(From Mefford, L. C. (2004). A theory of health promotion for preterm infants based on Levine's Conservation Model of Nursing. Nursing Science Quarterly, 17(3), 261. Used with permission of SAGE Publications, Inc.)
Following initial development of the theory, its validity was tested in a retrospective study of 235 preterm infants. This study was designed to examine the influence of "consistency nursing care" on the health outcomes of the infants at discharge. Structural equation modeling demonstrated "strong support for the utility of this theory of health promotion … as a guide for nursing practice in the NICU" (p. 266). It was noted that the derived middle range theory validated Levine's work


text:
Tesco runs low on Marmite amid price dispute
Wednesday 12 October 2016, 6:49pm
Video report by ITV News Business Editor Joel Hills
A major dispute over pricing has led to high street giant Tesco running low on some of Britain's best-known grocery brands.
It is understood that due to the falling Pound, Unilever - a supplier of food, home and personal care products - was demanding the supermarket increase the prices of famous goods by around 10 per cent.
After the supermarket's refusal, Unilever has halted deliveries.
Online customer's are currently unable to buy products, including Ben & Jerry's ice cream, Marmite, Hellmann's Mayonnaise, and Colman's Mustard from the Tesco website.
The items remain available in Tesco stores but stocks won't be replenished when they run out.
ITV News has learned that Tesco is not the only major retailer to have been approached by Unilever with demands for a 10 per cent price rise.
We are experiencing availability issues on a number of Unilever products. We always work to ensure customers get the best possible prices and we hope to have this issue resolved soon.
Unilever has declined to comment, but chief executive Paul Polman warned in June that a vote to leave the EU's single market would increase prices for customers.
Liberal Democrat leader Tim Farron blamed the Government, saying: "The chaos around Brexit is now hitting our supermarket shelves. This shows the Government don't have a plan or even a clue."
Hours before the dispute between Tesco and Unilever, former Sainsbury's boss Justin King said shoppers should expect price rises after the fall in the value of the pound since the Brexit vote.
Mr King said supermarkets would struggle to absorb the rise in the cost of importing goods because of the devalued pound, meaning consumers would face higher prices.
Speaking at a conference in London on Wednesday, Mr King said: "No business wants to be the first to blame Brexit for a rise in prices. But once someone does, there will be a flood of companies because they will all be suffering."


text:
namespace rovio{

  SceneObject::SceneObject(){
    glGenBuffers(1, &VBO_);
    glGenBuffers(1, &IBO_);
    glGenTextures(1, &textureID_);
    glBindTexture(GL_TEXTURE_2D, textureID_);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    W_r_WB_   = Eigen::Vector3f(0.0f, 0.0f, 0.0f);
    q_BW_.setIdentity();
    mode_ = GL_TRIANGLES;
    mbCullFace_ = true;
    lineWidth_ = 2.0f;
    pointSize_ = 5.0f;
    useTexture_ = false;
    draw_ = true;
  }
  SceneObject::~SceneObject(){};
  void SceneObject::initTexture(const int& cols, const int& rows){
    useTexture_ = true;
    glBindTexture(GL_TEXTURE_2D, textureID_);
    glTexImage2D(GL_TEXTURE_2D,0,GL_LUMINANCE,cols,rows,0,GL_LUMINANCE,GL_UNSIGNED_BYTE,nullptr);
  }
  void SceneObject::setTexture(const int& cols, const int& rows, const float* ptr){
    glBindTexture(GL_TEXTURE_2D, textureID_);
    glTexImage2D(GL_TEXTURE_2D,0,GL_LUMINANCE,cols,rows,0,GL_LUMINANCE,GL_FLOAT,ptr);
  }
  void SceneObject::setTexture(const cv::Mat& img){
    glBindTexture(GL_TEXTURE_2D, textureID_);
    glTexSubImage2D(GL_TEXTURE_2D,0,0,0,img.cols,img.rows,GL_LUMINANCE,GL_UNSIGNED_BYTE,img.data);
  }
  void SceneObject::allocateBuffer(){
    glBindBuffer(GL_ARRAY_BUFFER, VBO_);
    glBufferData(GL_ARRAY_BUFFER, sizeof(Vertex)*vertices_.size(), vertices_.data(), GL_DYNAMIC_DRAW);
    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, IBO_);
    glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(unsigned int)*indices_.size(), indices_.data(), GL_DYNAMIC_DRAW);
  }
  void SceneObject::makeCubeFull(const float& l){
    clear();
    vertices_.reserve(24);
    indices_.reserve(36);
    Eigen::Vector3f d1;
    Eigen::Vector3f d2;
    Eigen::Vector3f d3;
    int count = 0;
    for(int i=0;i<3;i++){
      d1.setZero();
      d1(i) = 1.0;
      d2.setZero();
      d2((i+1)%3) = 1.0;
      d3 = d1.cross(d2);
      for(int z=0;z<2;z++){
        for(int x=0;x<2;x++){
          for(int j=0;j<2;j++){
            int y = (x+j+z+1)%2;
            vertices_.push_back(Vertex(((2*z-1)*d1+(2*x-1)*d2+(2*y-1)*d3)*0.5*l));
          }
        }
        indices_.push_back(count);
        indices_.push_back(count+2);
        indices_.push_back(count+1);
        indices_.push_back(count);
        indices_.push_back(count+3);
        indices_.push_back(count+2);
        count +=4;
      }
    }
    CalcNormals();
    allocateBuffer();
    mode_ = GL_TRIANGLES;
    mbCullFace_ = true;
  }
  void SceneObject::makeTetrahedron(const float& l){
    clear();
    vertices_.reserve(12);
    indices_.reserve(12);
    Eigen::Vector3f corners[4];
    corners[0] = Eigen::Vector3f(1.0f,0.0f,-0.707f);
    corners[1] = Eigen::Vector3f(-1.0f,0.0f,-0.707f);
    corners[2] = Eigen::Vector3f(0.0f,1.0f,0.707f);
    corners[3] = Eigen::Vector3f(0.0f,-1.0f,0.707f);
    int count = 0;
    for(int i=0;i<4;i++){
      for(int j=0;j<3;j++){
        vertices_.push_back(Eigen::Vector3f(corners[(i+j)%4]*0.5*l));
      }
      indices_.push_back(count+0+i%2);
      indices_.push_back(count+1-i%2);
      indices_.push_back(count+2);
      count += 3;
    }
    CalcNormals();
    allocateBuffer();
    mode_ = GL_TRIANGLES;
    mbCullFace_ = true;
  }
  void SceneObject::makeCubeMesh(const float& l){
    clear();
    vertices_.reserve(8);
    indices_.reserve(12);
    for(int x=0;x<2;x++){
      for(int y=0;y<2;y++){
        for(int z=0;z<2;z++){
          vertices_.push_back(Vertex((2*x-1)*0.5*l,(2*y-1)*0.5*l,(2*z-1)*0.5*l));
        }
      }
    }
    int count = 0;
    for(int i=0;i<3;i++){
      for(int j=0;j<4;j++){
        indices_.push_back((j*(int)pow(2,i))%7);
        indices_.push_back((j*(int)pow(2,i))%7+pow(2,(i+2)%3));
      }
    }
    allocateBuffer();
    mode_ = GL_LINES;
  }
  void SceneObject::makeLine(){
    std::vector<Eigen::Vector3f> emptyLine;
    makeLine(emptyLine);
  }
  void SceneObject::makeLine(const std::vector<Eigen::Vector3f>& line){
    clear();
    prolonge(line);
    mode_ =  GL_LINE_STRIP;
  }
  void SceneObject::makePoints(){
    std::vector<Eigen::Vector3f> empty;
    makePoints(empty);
  }
  void SceneObject::makePoints(const std::vector<Eigen::Vector3f>& points){
    clear();
    prolonge(points);
    mode_ =  GL_POINTS;
  }
  void SceneObject::prolonge(const Eigen::Vector3f& point){
    std::vector<Eigen::Vector3f> line(1,point);
    prolonge(line);
  }
  void SceneObject::prolonge(const std::vector<Eigen::Vector3f>& points){
    vertices_.reserve(vertices_.size()+points.size());
    indices_.reserve(indices_.size()+points.size());
    const int s = vertices_.size();
    for(int i=0;i<points.size();i++){
      vertices_.push_back(points[i]);
      indices_.push_back(s+i);
    }
    allocateBuffer();
  }
  void SceneObject::clear(){
    vertices_.clear();
    indices_.clear();
  }
  void SceneObject::makeCoordinateFrame(const float& l){
    clear();
    vertices_.reserve(6);
    indices_.reserve(6);
    Eigen::Vector3f d;
    Eigen::Vector4f color;
    for(int i=0;i<3;i++){
      color = Eigen::Vector4f(0.0f,0.0f,0.0f,1.0f);
      color(i) = 1.0f;
      d.setZero();
      vertices_.push_back(d);
      vertices_[i*2].color_.fromEigen(color);
      indices_.push_back(i*2);
      d(i) = l;
      vertices_.push_back(d);
      vertices_[i*2+1].color_.fromEigen(color);
      indices_.push_back(i*2+1);
    }
    allocateBuffer();
    mode_ = GL_LINES;
  }
  void SceneObject::makeRectangle(const float& x,const float& y){
    clear();
    vertices_.reserve(4);
    indices_.reserve(6);
    vertices_.push_back(Eigen::Vector3f(-0.5*x,-0.5*y,0.0f));
    vertices_.push_back(Eigen::Vector3f(0.5*x,-0.5*y,0.0f));
    vertices_.push_back(Eigen::Vector3f(-0.5*x,0.5*y,0.0f));
    vertices_.push_back(Eigen::Vector3f(0.5*x,0.5*y,0.0f));
    indices_.push_back(0);
    indices_.push_back(1);
    indices_.push_back(2);
    indices_.push_back(3);
    indices_.push_back(1);
    indices_.push_back(2);
    allocateBuffer();
    mode_ = GL_TRIANGLES;
    mbCullFace_ = false;
  }
  void SceneObject::makeTexturedRectangle(const float& x,const float& y){
    makeRectangle(x,y);
    vertices_[0].color_.data_[0] = 0.0f;
    vertices_[0].color_.data_[1] = 0.0f;
    vertices_[1].color_.data_[0] = 1.0f;
    vertices_[1].color_.data_[1] = 0.0f;
    vertices_[2].color_.data_[0] = 0.0f;
    vertices_[2].color_.data_[1] = 1.0f;
    vertices_[3].color_.data_[0] = 1.0f;
    vertices_[3].color_.data_[1] = 1.0f;
    allocateBuffer();
  }
  void SceneObject::makeGroundPlane(const float& l,const int& N,const Eigen::Vector4f& color1,const Eigen::Vector4f& color2){
    Eigen::Vector3f globalCorner(-0.5*l*N,-0.5*l*N,0.0f);
    clear();
    vertices_.reserve(4*N*N);
    indices_.reserve(6*N*N);
    int count = 0;
    for(int x=0;x<N;x++){
      for(int y=0;y<N;y++){
        Eigen::Vector3f corner = globalCorner+Eigen::Vector3f(l*x,l*y,0.0f);
        for(int i=0;i<2;i++){
          for(int j=0;j<2;j++){
            vertices_.push_back(Eigen::Vector3f(corner+Eigen::Vector3f(l*i,l*j,0.0f)));
            if((x+y)%2==0){
              vertices_.rbegin()->color_ = color1;
            } else {
              vertices_.rbegin()->color_ = color2;
            }
          }
        }
        indices_.push_back(count+0);
        indices_.push_back(count+1);
        indices_.push_back(count+2);
        indices_.push_back(count+3);
        indices_.push_back(count+1);
        indices_.push_back(count+2);
        count += 4;
      }
    }
    allocateBuffer();
    mode_ = GL_TRIANGLES;
    mbCullFace_ = false;
  }
  void SceneObject::makeGroundPlaneMesh(const float& l,const int& N){
    Eigen::Vector3f globalCorner(-0.5*l*N,-0.5*l*N,0.0f);
    clear();
    vertices_.reserve(4*(N+1));
    indices_.reserve(4*(N+1));
    for(int i=0;i<N+1;i++){
      vertices_.push_back(Eigen::Vector3f(globalCorner+Eigen::Vector3f(l*i,0.0f,0.0f)));
      vertices_.push_back(Eigen::Vector3f(globalCorner+Eigen::Vector3f(l*i,l*N,0.0f)));
      vertices_.push_back(Eigen::Vector3f(globalCorner+Eigen::Vector3f(0.0f,l*i,0.0f)));
      vertices_.push_back(Eigen::Vector3f(globalCorner+Eigen::Vector3f(l*N,l*i,0.0f)));
      indices_.push_back(i*4+0);
      indices_.push_back(i*4+1);
      indices_.push_back(i*4+2);
      indices_.push_back(i*4+3);
    }
    allocateBuffer();
    mode_ = GL_LINES;
  }
  void SceneObject::setColorFull(const Eigen::Vector4f& color){
    for (unsigned int i = 0 ; i < vertices_.size() ; i++) {
      vertices_[i].color_.fromEigen(color);
    }
    allocateBuffer();
  }
  const Eigen::Matrix4f SceneObject::GetWorldTrans(){
    return InitInverseTransform(W_r_WB_,q_BW_);
  }
  void SceneObject::CalcNormals(){
    std::vector<Eigen::Vector3f> normals(vertices_.size(),Eigen::Vector3f::Zero());
    for (unsigned int i = 0 ; i < indices_.size() ; i += 3) {
      unsigned int Index0 = indices_[i];
      unsigned int Index1 = indices_[i + 1];
      unsigned int Index2 = indices_[i + 2];
      Eigen::Vector3f v1 = vertices_[Index1].pos_.toEigen() - vertices_[Index0].pos_.toEigen();
      Eigen::Vector3f v2 = vertices_[Index2].pos_.toEigen() - vertices_[Index0].pos_.toEigen();
      Eigen::Vector3f Normal = v1.cross(v2);
      Normal.normalize();

      normals[Index0] += Normal;
      normals[Index1] += Normal;
      normals[Index2] += Normal;
    }

    for (unsigned int i = 0 ; i < vertices_.size() ; i++) {
      normals[i].normalize();
      vertices_[i].normal_.fromEigen(normals[i]);
    }
  }
  void SceneObject::loadOptions(){
    if(mbCullFace_){
      glEnable(GL_CULL_FACE);
    } else {
      glDisable(GL_CULL_FACE);
    }
    glLineWidth(lineWidth_);
    glPointSize(pointSize_);
  }

  Scene::Scene(){
    stepScale_ = 0.5f;
    W_r_WC_ = Eigen::Vector3f(0.0f, 0.0f, 0.0f);
    q_CW_.setIdentity();
    mMousePos_(0)  = mPersProjInfo_.width_ / 2;
    mMousePos_(1)  = mPersProjInfo_.height_ / 2;
    enableMouseMotion_ = false;
    mDirectionalLight_.color_ = Eigen::Vector3f(1.0f, 1.0f, 1.0f);
    mDirectionalLight_.ambientIntensity_ = 1.0f;
    mDirectionalLight_.diffuseIntensity_ = 0.0f;
    mDirectionalLight_.direction_ = Eigen::Vector3f(0.5f, -1.0f, 0.0f);
    mDirectionalLight_.direction_.normalize();
    mIdleFunc = nullptr;
    addKeyboardCB('q',glutLeaveMainLoop);
    addSpecialKeyboardCB(101,[&]() mutable {W_r_WC_ -= (q_CW_.inverseRotate(Eigen::Vector3f(0.0,0.0,1.0)) * stepScale_);}); // UP
    addSpecialKeyboardCB(103,[&]() mutable {W_r_WC_ += (q_CW_.inverseRotate(Eigen::Vector3f(0.0,0.0,1.0)) * stepScale_);}); // DOWN
    addSpecialKeyboardCB(100,[&]() mutable {W_r_WC_ -= (q_CW_.inverseRotate(Eigen::Vector3f(1.0,0.0,0.0)) * stepScale_);}); // LEFT
    addSpecialKeyboardCB(102,[&]() mutable {W_r_WC_ += (q_CW_.inverseRotate(Eigen::Vector3f(1.0,0.0,0.0)) * stepScale_);}); // RIGHT
    addSpecialKeyboardCB(104,[&]() mutable {W_r_WC_ += (q_CW_.inverseRotate(Eigen::Vector3f(0.0,1.0,0.0)) * stepScale_);}); // PAGE_UP
    addSpecialKeyboardCB(105,[&]() mutable {W_r_WC_ -= (q_CW_.inverseRotate(Eigen::Vector3f(0.0,1.0,0.0)) * stepScale_);}); // PAGE_DOWN
  };
  Scene::~Scene(){};
  int Scene::init(int argc, char** argv, const std::string& mVSFileName,const std::string& mFSFileName){
    // Must be done after glut is initialized!
    GLenum res = glewInit();
    if (res != GLEW_OK) {
      fprintf(stderr, "Error: '%s'\n", glewGetErrorString(res));
      return 1;
    }

    glClearColor(0.9f, 1.0f, 0.8f, 0.0f);
    glFrontFace(GL_CW);
    glCullFace(GL_BACK);
    glEnable(GL_DEPTH_TEST);
    glDepthFunc(GL_LESS);
    glClearDepth(1.0f);

    CompileShaders(mVSFileName,mFSFileName);

    mPersProjInfo_.FOV_ = M_PI/2;
    mPersProjInfo_.width_ = 1280;
    mPersProjInfo_.height_ = 960;
    mPersProjInfo_.zNear_ = -0.1f;
    mPersProjInfo_.zFar_ = -100.0f;

    return 0;
  }
  std::shared_ptr<SceneObject> Scene::addSceneObject(){
    std::shared_ptr<SceneObject> sp(new SceneObject());
    mSceneObjects_.push_back(sp);
    return sp;
  }
  void Scene::makeTestScene(){
    std::shared_ptr<SceneObject> mpSceneObject;
    mpSceneObject = addSceneObject();
    mpSceneObject->makeCubeMesh(1.80001f);
    mpSceneObject->setColorFull(Eigen::Vector4f(0.0f,1.0f,0.0f,1.0f));
    mpSceneObject->W_r_WB_ = Eigen::Vector3f(0.0f, 0.0f, 3.0f);
    mpSceneObject = addSceneObject();
    mpSceneObject->makeCubeFull(1.8f);
    mpSceneObject->setColorFull(Eigen::Vector4f(1.0f,1.0f,0.0f,1.0f));
    mpSceneObject->W_r_WB_ = Eigen::Vector3f(0.0f, 0.0f, 3.0f);
    mpSceneObject = addSceneObject();
    mpSceneObject->makeTetrahedron(1.2f);
    mpSceneObject->setColorFull(Eigen::Vector4f(1.0f,0.0f,0.0f,1.0f));
    mpSceneObject->W_r_WB_ = Eigen::Vector3f(0.0f, 1.50001f, 3.0f);
    mpSceneObject = addSceneObject();
    std::vector<Eigen::Vector3f> line;
    line.push_back(Eigen::Vector3f(4.0f,0.0f,0.0f));
    line.push_back(Eigen::Vector3f(0.0f,0.0f,0.0f));
    line.push_back(Eigen::Vector3f(0.0f,4.0f,0.0f));
    line.push_back(Eigen::Vector3f(4.0f,4.0f,0.0f));
    line.push_back(Eigen::Vector3f(4.0f,0.0f,0.0f));
    mpSceneObject->makeLine(line);
    mpSceneObject->prolonge(Eigen::Vector3f(4.0f,0.0f,4.0f));
    mpSceneObject->setColorFull(Eigen::Vector4f(1.0f,0.0f,1.0f,1.0f));
    mpSceneObject->W_r_WB_ = Eigen::Vector3f(0.0f, 0.0f, 3.0f);
    mpSceneObject = addSceneObject();
    mpSceneObject->makePoints(line);
    mpSceneObject->prolonge(Eigen::Vector3f(4.0f,0.0f,4.0f));
    mpSceneObject->setColorFull(Eigen::Vector4f(0.0f,0.0f,1.0f,1.0f));
    mpSceneObject->W_r_WB_ = Eigen::Vector3f(0.0f, 0.0f, 3.0f);
    mpSceneObject = addSceneObject();
    mpSceneObject->makeCoordinateFrame(1.0);
    mpSceneObject->W_r_WB_ = Eigen::Vector3f(0.0f, 1.5f, 3.0f);
    mpSceneObject = addSceneObject();
    mpSceneObject->makeGroundPlane(1.0,10,Eigen::Vector4f(1.0f,1.0f,1.0f,1.0f),Eigen::Vector4f(1.0f,0.0f,1.0f,1.0f));
    mpSceneObject->W_r_WB_ = Eigen::Vector3f(0.0f, 0.0f, 8.0f);
  }
  void Scene::RenderSceneCB()
  {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glUniform3f(lightColor_location_, mDirectionalLight_.color_(0), mDirectionalLight_.color_(1), mDirectionalLight_.color_(2));
    glUniform1f(lightAmbientIntensity_location_, mDirectionalLight_.ambientIntensity_);
    glUniform3f(lightDirection_location_, mDirectionalLight_.direction_(0), mDirectionalLight_.direction_(1), mDirectionalLight_.direction_(2));
    glUniform1f(lightDiffuseIntensity_location_, mDirectionalLight_.diffuseIntensity_);

    V_TF_C_ = InitPersProjTransform(mPersProjInfo_);
    C_TF_W_ = InitTransform(W_r_WC_,q_CW_);

    for(int i=0;i<mSceneObjects_.size();i++){
      if(mSceneObjects_[i]->draw_){
        mSceneObjects_[i]->loadOptions();

        glUniform1i(useTexture_location_,mSceneObjects_[i]->useTexture_);
        if(mSceneObjects_[i]->useTexture_){
          glActiveTexture(GL_TEXTURE0);
          glBindTexture(GL_TEXTURE_2D,mSceneObjects_[i]->textureID_);
          glUniform1i(sampler_location_, 0);
        }

        W_TF_B_ = mSceneObjects_[i]->GetWorldTrans();
        V_TF_B_ = V_TF_C_*C_TF_W_*W_TF_B_;

        glUniformMatrix4fv(V_TF_B_location_, 1, GL_FALSE, (const GLfloat*)V_TF_B_.data());
        glUniformMatrix4fv(W_TF_B_location_, 1, GL_FALSE, (const GLfloat*)W_TF_B_.data());

        glEnableVertexAttribArray(0);
        glEnableVertexAttribArray(1);
        glEnableVertexAttribArray(2);
        glBindBuffer(GL_ARRAY_BUFFER, mSceneObjects_[i]->VBO_);
        glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), (const GLvoid*)0);
        glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), (const GLvoid*)12);
        glVertexAttribPointer(2, 4, GL_FLOAT, GL_FALSE, sizeof(Vertex), (const GLvoid*)24);
        glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, mSceneObjects_[i]->IBO_);
        glDrawElements(mSceneObjects_[i]->mode_, mSceneObjects_[i]->indices_.size(), GL_UNSIGNED_INT, 0);
        glDisableVertexAttribArray(0);
        glDisableVertexAttribArray(1);
        glDisableVertexAttribArray(2);
      }
    }
    glutSwapBuffers();
  }
  void Scene::setView(const Eigen::Vector3f& pos, const Eigen::Vector3f& target){
    W_r_WC_ = pos;
    q_CW_.setFromVectors(Eigen::Vector3f(target-pos),Eigen::Vector3f(0.0f,0.0f,-1.0f));
  }
  void Scene::setYDown(float step){
    float min = 1.0f;
    float minAng = 0.0;
    float angle = 0.0;
    kindr::RotationQuaternionPF q;
    while(angle<=2*M_PI){
      q = kindr::EulerAnglesYprPF(angle,0,0);
      if((q*q_CW_).inverseRotate(Eigen::Vector3f(0,-1,0))(2) < min){
        minAng = angle;
        min = (q*q_CW_).inverseRotate(Eigen::Vector3f(0,-1,0))(2);
      }
      angle += step;
    }
    q_CW_ = kindr::EulerAnglesYprPF(minAng,0,0)*q_CW_;
  }
  void Scene::SpecialKeyboardCB(int Key, int x, int y)
  {
    if (specialKeyboardCallbacks_.count(Key)>0){
      specialKeyboardCallbacks_[Key]();
    }
  }
  void Scene::addSpecialKeyboardCB(int Key, std::function<void()> f){
    specialKeyboardCallbacks_[Key] = f;
  }
  void Scene::KeyboardCB(unsigned char Key, int x, int y)
  {
    if (keyboardCallbacks_.count(Key)>0){
      keyboardCallbacks_[Key]();
    }
  }
  void Scene::addKeyboardCB(unsigned char Key, std::function<void()> f){
    keyboardCallbacks_[Key] = f;
  }
  void Scene::MotionCB(int x, int y)
  {
    if(enableMouseMotion_){
      const int DeltaX = x - mMousePos_(0);
      const int DeltaY = y - mMousePos_(1);

      mMousePos_(0) = x;
      mMousePos_(1) = y;

      Eigen::Vector3f vec;
      vec.setZero();
      vec(0) = (float)DeltaY / 50.0f;
      vec(1) = (float)DeltaX / 50.0f;

      q_CW_ = q_CW_.boxPlus(vec);
      q_CW_.fix();
    }
  }
  void Scene::MouseCB(int button, int state, int x, int y)
  {
    if((button == GLUT_LEFT_BUTTON ) && (state == GLUT_DOWN)){
      enableMouseMotion_ = true;
      mMousePos_(0) = x;
      mMousePos_(1) = y;
    }
    if((button == GLUT_LEFT_BUTTON ) && (state == GLUT_UP)){
      enableMouseMotion_ = false;
    }
  }
  void Scene::AddShader(GLuint ShaderProgram, const char* pShaderText, GLenum ShaderType)
  {
      GLuint ShaderObj = glCreateShader(ShaderType);
      if (ShaderObj == 0) {
          fprintf(stderr, "Error creating shader type %d\n", ShaderType);
          exit(1);
      }

      const GLchar* p[1];
      p[0] = pShaderText;
      GLint Lengths[1];
      Lengths[0]= strlen(pShaderText);
      glShaderSource(ShaderObj, 1, p, Lengths);
      glCompileShader(ShaderObj);
      GLint success;
      glGetShaderiv(ShaderObj, GL_COMPILE_STATUS, &success);
      if (!success) {
          GLchar InfoLog[1024];
          glGetShaderInfoLog(ShaderObj, 1024, NULL, InfoLog);
          fprintf(stderr, "Error compiling shader type %d: '%s'\n", ShaderType, InfoLog);
          exit(1);
      }

      glAttachShader(ShaderProgram, ShaderObj);
  }
  void Scene::CompileShaders(const std::string& mVSFileName,const std::string& mFSFileName){
    GLuint ShaderProgram = glCreateProgram();
    if (ShaderProgram == 0) {
        fprintf(stderr, "Error creating shader program\n");
        exit(1);
    }

    std::string vs, fs;
    if (!ReadShaderFile(mVSFileName.c_str(), vs)) {
        exit(1);
    };
    if (!ReadShaderFile(mFSFileName.c_str(), fs)) {
        exit(1);
    };

    AddShader(ShaderProgram, vs.c_str(), GL_VERTEX_SHADER);
    AddShader(ShaderProgram, fs.c_str(), GL_FRAGMENT_SHADER);

    GLint Success = 0;
    GLchar ErrorLog[1024] = { 0 };
    glLinkProgram(ShaderProgram);
    glGetProgramiv(ShaderProgram, GL_LINK_STATUS, &Success);
    if (Success == 0) {
      glGetProgramInfoLog(ShaderProgram, sizeof(ErrorLog), NULL, ErrorLog);
      fprintf(stderr, "Error linking shader program: '%s'\n", ErrorLog);
          exit(1);
    }
    glValidateProgram(ShaderProgram);
    glGetProgramiv(ShaderProgram, GL_VALIDATE_STATUS, &Success);
    if (!Success) {
        glGetProgramInfoLog(ShaderProgram, sizeof(ErrorLog), NULL, ErrorLog);
        fprintf(stderr, "Invalid shader program: '%s'\n", ErrorLog);
        exit(1);
    }
    glUseProgram(ShaderProgram);

    V_TF_B_location_ = glGetUniformLocation(ShaderProgram, "V_TF_B");
    W_TF_B_location_ = glGetUniformLocation(ShaderProgram, "W_TF_B");
    assert(V_TF_B_location_ != 0xFFFFFFFF);
    assert(W_TF_B_location_ != 0xFFFFFFFF);

    lightColor_location_ = glGetUniformLocation(ShaderProgram, "gDirectionalLight.Color");
    lightAmbientIntensity_location_ = glGetUniformLocation(ShaderProgram, "gDirectionalLight.AmbientIntensity");
    lightDiffuseIntensity_location_ = glGetUniformLocation(ShaderProgram, "gDirectionalLight.DiffuseIntensity");
    lightDirection_location_ = glGetUniformLocation(ShaderProgram, "gDirectionalLight.Direction");
    useTexture_location_ = glGetUniformLocation(ShaderProgram, "useTexture");
    sampler_location_ = glGetUniformLocation(ShaderProgram, "gSampler");
    assert(lightColor_location_ != 0xFFFFFFFF);
    assert(lightAmbientIntensity_location_ != 0xFFFFFFFF);
    assert(lightDiffuseIntensity_location_ != 0xFFFFFFFF);
    assert(lightDirection_location_ != 0xFFFFFFFF);
    assert(useTexture_location_ != 0xFFFFFFFF);
    assert(sampler_location_ != 0xFFFFFFFF);
  }
  void Scene::setIdleFunction(void (*idleFunc)()){
    mIdleFunc = idleFunc;
  }

}

redpajama_set_name: RedPajamaGithub


text:
include(sugar_add_this_to_sourcelist)
sugar_add_this_to_sourcelist()

include(sugar_expected_number_of_arguments)

function(sugar_get_all_xcode_warning_attrs attr_list_name)
  sugar_expected_number_of_arguments(${ARGC} 1)

  if(NOT XCODE_VERSION)
    set(${attr_list_name} "" PARENT_SCOPE)
    return()
  endif()

  set(${attr_list_name} "")

  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_BOOL_CONVERSION)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_CXX0X_EXTENSIONS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_CONSTANT_CONVERSION)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_DIRECT_OBJC_ISA_USAGE)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_DOCUMENTATION_COMMENTS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_EMPTY_BODY)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_ENUM_CONVERSION)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN__EXIT_TIME_DESTRUCTORS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_TYPECHECK_CALLS_TO_PRINTF)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_FOUR_CHARACTER_CONSTANTS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_UNUSED_VALUE)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_INT_CONVERSION)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_ABOUT_MISSING_PROTOTYPES)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_ABOUT_MISSING_NEWLINE)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_NON_VIRTUAL_DESTRUCTOR)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_MISSING_PARENTHESES)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_ABOUT_POINTER_SIGNEDNESS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_ABOUT_RETURN_TYPE)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_SHADOW)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_64_TO_32_BIT_CONVERSION)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_SIGN_COMPARE)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_IMPLICIT_SIGN_CONVERSION)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_SIGN_COMPARE)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_CHECK_SWITCH_STATEMENTS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_UNINITIALIZED_AUTOS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_UNKNOWN_PRAGMAS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_UNUSED_FUNCTION)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_UNUSED_LABEL)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_UNUSED_PARAMETER)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_UNUSED_VALUE)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_UNUSED_VARIABLE)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN__ARC_BRIDGE_CAST_NONARC)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN__DUPLICATE_METHOD_MATCH)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_OBJC_EXPLICIT_OWNERSHIP_TYPE)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_OBJC_ROOT_CLASS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_OBJC_RECEIVER_WEAK)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_STRICT_SELECTOR_MATCH)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_UNDECLARED_SELECTOR)

  set(${attr_list_name} ${${attr_list_name}} PARENT_SCOPE)
endfunction()


: Cost of Bowl of Heaven Franchise?
How Much Does It Cost to Own a Bowl of Heaven's Franchise?
Owning a Bowl of Heaven fast food restaurants franchise can be a lucrative business, but it does have some initial financial requirements. To open a single health fast food location, the company requires that potential franchisees have liquid assets of at least $135,500.
The franchisee startup costs associated with owning a Bowl of Heaven fast food restaurants franchise are similar to those of Frullati Cafe & BakeryFRESHII.
See how the investment level of Bowl of Heaven's compares to those of other available food related franchises.
Bowl of Heaven is not currently accepting new franchise inquiries through this site. Please see our comprehensive directory for currently available franchises near you.


Promotional BiC Wide Body Ballpens printed with your logo, brand or company name/slogan. These amazing value for money, high quality printed ballpens are manufactured with a wide-profile design with a massive print area to maximise the exposure of your artwork, hence the widebody name. They come in a variety of colours (both solid and frosted) which you can mix and match to your satisfaction. An ideal, high quality printed pen for all businesses or campaign ideas. Ink colour: black or blue.
Clip can be printed up to 1 Colour only. Barrel can be printed in up to 2 Colours or with either a solid of translucent Full Colour Digital wrap.
Prices include a colour personalisation to 1 position. Prices exclude VAT & carriage.


NC State mowed over Saint Peter's last night 85-57 (ACCDN Highlights and Condensed Game), improving to 5-0 on the year. Senior Torin Dorn led the Pack with 12 points (3-6 FG/1-1 , 3PT) and also contributed 3 assists. He spoke with the media after the game, and the video is ABOVE and a bulleted breakdown is BELOW.
Anytime you look up at the scoreboard and see you're up 20-30 points, it's kind of hard to muster up the same energy. That's something we'll have to work on as the season progresses, having the same energy and intensity in the 2nd half.
They kind of abandoned their offense, and did a little isolation game. It took us a little bit to get used to it and learn how to defend them. Once we figured it out, we went on a run and the rest was history.
The key was just keeping them in front of us. Keeping them out of the lane. Making them make contested shots.
I think we are getting better (at chemistry). A lot of guys are itching to play and show what they can do. Anytime you have 10 guys who want to play and want to play hard, you're going to get better. I think we are getting better and improving.


Atheism is the belief that there is nothing in existence that can be called God. This author has pondered the arguments of Atheists and their inclusion in the Religion and Spirituality section of certain publications with some amusement. By and large, their arguments are antithetic.
The notion that Atheists, who have no belief in religion or spirits should be part of anything called religion or spirituality is on its face, ludicrous. The idea that any group which is opposed or hostile to any other school of thought should be included as part the same is absurd. Science which for the most part, repudiates any notion that spirits exist, repudiates the idea that the Christian faith could be called science. Yet Atheism which renounces religion and spirituality, is recognized by its proponents to belong to the religious and spiritual category.
Other philosophies which hold themselves to be above and beyond religious thought, fit neatly into such a category as religion. Evolutionists for example, fancy themselves to be part of the science community. Even though their position has yet to be proven, (hence it is described as the theory of evolution) they put forth their proposition that life somehow magically appeared as if by random accident. Given this perspective, they could reasonably be categorized as a religion, as one can only accept their hypothesis using faith in the unproven belief that their position is sound.
The arguments propounded by Atheists that there is no God hold no water. Most often, their reasoning (if it can be called such) is that religion has done some harm to mankind. This much is true. That men can and will use anything, including religion, in a malicious fashion to further personal agendas is a fact of life. They do not however, focus upon the good that has been done in the name of God. There are more than one Christian groups that have cared for the weak and infirm. Christian charities have clothed the naked, fed the hungry and given aid to the sick.
What has Atheism given the world? One need only point to the failed economic system called Communism for the answer. Millions have been enslaved, tortured and killed by the Atheistic system known as Communism. Not satisfied with the mass slaughter of her own people in the Ukrainian Holodomor, the Russian Communists turned on her own in a great purge. In China, 30 million people were killed in her "Cultural Revolution."
One can point to the Atheists inspired Reign of Terror following the French Revolution. Thousands met their end by the "National Razor" (AKA the guillotine) by mobs who had been manipulated by Atheistic exploiters who cared for nothing but the acquisition of political power.
Atheism is a lie Atheists tell themselves. A better label for Atheists would be Theophobic. Their arguments, far from having any data upon which their conclusions can be based, rest on emotionally incontinent outbursts. Their writings are for the most part, polemic. Far from proving the absence of God, they rail against God, his Bible and those who love him. This is evinced by their regular depiction of Christians as "god bots," (presumably, people who believe in God in a robotic fashion as opposed to a reasonable one) and of our savior as "the mythical Cheesus" (mocking Jesus) or a "zombie" (because he rose from the dead). Their references to God as "the invisible sky fairy" and "the bully in the sky," is proof that, far from having no belief that he exists, they hate him.
The Atheist's stated belief is not rational as it is an irrational act to hate that which does not exist. Any belief system which relies upon juvenile, ad homonym attacks to support itself, cannot in truth be considered to represent an intelligent system but is instead, an emotional one. Any philosophy which relies upon hysterical diatribes to make a point is difficult for any reasoned individual to fathom. Such a belief system is the province of the fool.
One could make an alternative case that Atheism is a religion in that it takes as much faith, if not more, to believe that there is no God. For the record, this author makes the claim that he has never purchased a left handed monkey wrench in Hong Kong. At the same time, he is unable to prove that such is the case. There may be no such device in Hong Kong, nor indeed anywhere. One can find no proof as to the lack of existence of anything, as there is no evidence upon which one may build such a case. To accept this claim, one must have faith the author's statement is true. Perhaps for this reason alone, Atheism can indeed be called a religion, even though it be the religion of a fool.


Furniture — This furniture, is one of the 12 designs published under the gallery: Astounding Ikea Lights Hanging. In the next page, we have the breathtaking ikea lights hanging two sets of lights on the material shades stuck roof [ ... ]. While in	the previous page, we have the exciting ikea lights hanging many hanging lamps are different colors and hanging on wood [ ... ].


text:
Star*Drive: Verge's Edge
Thread: Star*Drive: Verge's Edge
decemberism
Halfling in the Playground
Location: The Verge, 0.5 Lightyears from Tendril
Date: March 16, 2501, 22:51
The briefing room is small, just big enough to seat at least 40 people. Just behind the speaker's podium on the small raised stage, the holoprojector displays a map and heading information of the Adamanthea II... Seconds later, it shifts to show schematics of a ship, very much unlike the battlecruiser, Adamanthea II... It appears to be a longhaul freighter! Several points of yellow flash at critical areas, most likely important ship systems, only a couple others flash in red. It finally shifts to a different display, zooming out from the schematic, showing the current area of space that they are currently in, then zooms out again showing another point on the starmap, the ship's current destination... It almost looks Hammer's Star.
The 16 other marines in the room rise and snap to attention as the ship's general approaches from off the side, heading towards the podium. In his wake, two other higher-ranking officers stand off to the side, watching and murmuring amongst each other. In just a few short strides, the general stops behind the podium, turning to regard the soldiers in the room, eyeing each one quickly, shifting his gaze randomly from one pair of eyes to another.
"If everyone's ready, we'll begin the briefing..."
Last edited by decemberism; 2007-12-01 at 05:13 PM.
Current Characters
Rijel d'Cannith
Current games
Eberron: With Giant Robots: Thrane
Eberron: With Giant Robots: Thrane (2)
estradling
Re: Star*Drive: Verge's Edge
Zair's head barely cleared the top of the table, when he stood respectfully at attention for the General. Being a Fraal among Humans meant he lived in a world sized a bit to big for him. Still Zair had lived his entire life that way and he was used to it. Sometimes unexperienced humans might not think he was more then an old-looking child, but he knew how to deal with that too.
As the information was displayed on the Holoprojector Zair tried to understand what the various color and shapes meant, while waiting for the briefing to get started
Ghal Marak
USA, Alabama
Casca came to attention with the rest of the marines, sitting back down after the general spoke. He paid strict attention to the mission briefing, seemingly blocking out all else. He was cautious to keep his chainsaw from touching anything or anyone. Even though it was off you could never be too careful.
Last edited by Ghal Marak; 2007-11-19 at 01:53 PM.
Quin Reid
Quin snaps to attention with the others, his eyes on the general. He had signed up looking for adventure, and it seemed like this was his chance. He glances about at the other Marines and Navy personal, wondering how much of the rumors that are the life blood of military were true, then returns his attention to the briefing.
Seriphius Decimus-Investigating Empirica
Lucian Davers-Star Wars: Pirates!
Crispin Aesier-Kayru
Alebeard_Thunderax
The man stands and salutes with textbook precision, but something is a bit off. Something in his eyes says that while he may be going through the motions, he really stands at his own leisure. He does not look upon the officers before him with the deference due to superiors. If they were to look at him, he would stare right back. Not with any malice, but with contented self-assuredness. No amount of time with the Concord can strain the Austrin from his mind.
OOC: My hard drive decide to die on Thursday, right as I was going out of town. I can only really promise one post until I either repair or replace it.
I reject your reality and substitute my own.
The general turns and glances to the other two officers standing off to the side, then to the marines once again. He nods solemnly.
"At ease men."
He calmly waits until everyone's settled in their seats, pulling off his cap and setting it on the podium.
"Ladies and gentlemen, this is the situation. Shortly after leaving the Tendril system, we received a fuzzy distress beacon, enough to mark the coordinates of a StarMech longhauler. We don't exactly know what the status of the ship is, yet. At least, not internally."
The holo behind him shifts views, zooming right onto the StarMech ship once again, showing the flashing yellow points.
"As near as we can tell, there are some systems that have been disabled, namely it's long-range communications array and it's engines. Several of it's defensive systems have also gone offline."
Now, the red points light up, joining with the yellow.
"It's also possible that there may have been several hull breaches. They appear to be central to the cargo corridor, here-" He points to one red spot at the foward tip of the diagram, then motions to the other in the dorsal area, nearly right in the middle between the command deck and the bow of the ship, "- and here. There don't appear to be any signs of pirates in the system currently, but you all know better; It's highly possible that they are using cloaking or stealth technology on their ships."
The holo zooms back out to full, marking the courses of both the dropship to the Longhauler, and the battlecruiser towards Hammer's Star.
"Your mission will be to take a dropship and investigate the condition of the ship, secure it's crew and passengers, and neutralize the threat, if there is one. In the meantime, the Adamanthea will continue on it's way to Hammer's Star. We will rendezvous with you all within the week, as per the orders of Captain Prinnith.
"Are there any questions, men?"
((OOC: No worries, Ale. We'll try not to get too far ahead without you!)
Quin salutes, then speaks "Sir, any information on what they where hauling, and how many personal they had?"
Zair had no questions, briefings never had all the details. Thats why they were brief. Still Zair's role seemed clear enough. The longhauler had been damaged and Zair was to make sure it worked enough to get them to Hammer's Star within a week. While he would support the other objectives as much as he could, but he would have secondary role at best when it came to fighting or dealing with the crew
"Sir, Spaceman 2nd Class Wood, I would request the specifications of the dropship we will be using."
The general nods to Quin, answering his question first.
"Unfortunately, we don't know what they have on board, yet. We don't know how many are on board, either. For a ship that size, we're probably looking at three full rotations of crew, plus passengers. We're still awaiting a reply from the authorities on Nova Station regarding their crew roster and cargo compliment."
He looks to Robert, regarding him as he replies to his query next.
"A standard 20-man, drive-capable jumper. It won't get you as far as the Adamanthea's stardrive, so we'll be waiting for a little while. If we're lucky, we'll both make starrise in the system at the same time. I'll assume you're asking because you'd like to know if you're going to be piloting it?"
Casca filled away the mission parameters within his memory banks, and then raised his (non-chainsaw) arm. When he spoke it was in an obviously artificial voice. "Sir, if we are attacked by hostile forces, should we attempt to capture?"
The general regards the android as he would any actual living being, but before he can speak, the sergeant, who appears to be more in charge of the mission pipes up as he steps forward.
"Personally, I'd prefer them however you can get 'em, private! Dead or alive, it don't matter!"
The general pauses and stares at the sergeant.
"With all due respect, we'd much prefer them to be alive. That way, their trial can deem them worthy of life or death. However, if they shoot first, you have, by all means, the right to shoot back in defense. However, I'd prefer you to use discretion in dealing with such criminals."
Quin sits back down, having no further questions.
"Well, men, if that's all, the-- Yes, you in the back?"
A Marine in the back stands up, giving a quick salute and a big $hit-eating grin... The man beside him shakes his head, burying it in his hands, while the woman on the other side stares incredulously at him.
"I've got a question, sir. How much do we gotta pay to get the fcuk offa this mission roster?"
Before the general can even reply, the sergeant is up again, nearly ready to tear across the room to strangle the troop, his face red as he hollars.
"PRIVATE! You stow that $hit right now before I stow it fo--"
And the general interrupts him, patting his shoulder.
"Please, I'll answer this one." He glances to the marine, giving a tight smile. "Private, you'll have to fork over half a year's pay to get off this mission roster. Because that's how much it's going to cost us to replace the escape pod we put you in. And that's bare. Without the normal emergency amenities that the escape pods usually have. Just you and that cold, dark shell, drifting through space until you either die within a couple weeks, or someone actually has the gumption to rescue your sorry, pasty white ass. Is that understood, private?"
"Sir, crystal clear, sir!"
And the marine salutes and seats himself.
"If that's all, then you have one hour to gather your gear and meet up at the dropship in landing bay five. Dismissed!"
Quin salutes, and exits, shaking his head at the Marines outburst. This was the excitement he had signed up for. He polices his bunk and prepares his gear, making it to the docking bay five minutes early and standing at ease.
Robert nods to the general, "Yes sir, I am qualified to pilot that class of vessel" he adds with a grin, "I'm not too bad at it either".
After the briefing is over, he salutes with the rest and moves out to collect his gear. An hour later he arrives at the docking bay fully loaded. He is no longer in regulation uniform, instead he is clad in a black, form-fitting jumpsuit. On his head is a pair of thick goggles. A large black duffel bag bulges and rattles with various unidentified pieces of equipment.
Wood joins several other marines on deck, each one clad in combat armor and carrying a standard-issue plasma rifle as well as a small hardcase. Slowly, the rest of the company joins them, all armored and armed the same. Some carry different bits of gear secured to their armors... Engineers, field medics... A couple of them even carry larger guns in place of rifles and wear heavier armor; Heavy-Armsmen.
One of the riflemen steps up beside Wood and nudges him, chewing on a piece of gum, grinning.
"Hey Wood... You lookin' forward to playin' hero again? How many you think there are? Ten? Twenty?"
Robert laughs and drops his bag to the ground. "Actually I think the whole operation is a setup. See, they way I figure it, there's a whole Thuldan legion sitting in that freighter just waitin' to jump on us. Looks like we are gonna need bigger guns."
Casca walked into the docking bay, articulated joints moving silently. He spotted the large group of marines on deck and makes his way to them. "I see that everyone is ready. I would hate to see anyone die because of unprepared ness."
Zair
The Fraal arrived at the appointed time. As an Engineer he didn't have quite the same combat gear as the fighters. He had to lose some weapons to carry toolkits, and Fraal's weren't known for their great strength, and that limited him to just the essentials to do the job.
Overhearing Robert, one of the heavy armsmen grins, hefting his larger gun and aiming the muzzle towards the upper bulkheads of the landing bay. For the size of what seems like a miniturized artillery cannon, it looks like it could easily take out a ground squad with one good shot...
"Hey Wood! This gun big enough for ya?"
Another of the marines pipes up from nearby, eliciting a small chorus of laughter from most of the gathered troops: "You only wish, Boychuck."
A third marine behind Casca slaps the synthetic with a heavy, armored hand. laughing.
"We're like Boy Scouts, Cas; We're -always- prepared! And, if we're not? Well, at least we'll make it to our final destinies!"
Shortly, all the appointed marines for the mission are in the landing bay, all geared up and ready to go, making short conversation. Soon after, a couple techs stroll out of the dropship, pushing an equipment cart down the ramp. Following them, the sergeant steps down the loading ramp, clad in his command armor, his rifle secured to his chest, leaving his hands free. He moves to stand before them...
"Marines, Attention!" he barks, echoing through the bay. Most of the two-squad team quickly snap to, a couple straggling along before they ease themselves straight and clap a boot to the deck plating.
Quin snaps to, standing rigidly at attention, and saluting.
Casca snapped to attention, focusing his visual sensors on the sergeant.
Heels locked, back straight, head forward, sphicter tightened. Gotta love the Navy...
He comes to the proper at attention position, but it small size make it easy for him to be missed.
The sergeant makes a quick round among the troops, doing a quick visual inspection of the troops and their equipment. Passing Robert and one other, dressed similarly, he motions towards the dropship with a jerk of his head.
"You two, get that thing hot and ready to jump ship. Wood, take guns, Svenson on stick and nav. Coordinates are already locked." He turns to the rest of the troops. "They rest of you, inside! Stow your gear and your guns and strap down! MOVE IT! MOVE IT!"
At the command, the clatter and stomps of armor plating and heavy boots against the deck fills the landing bay, and soon the majority of the soldiers are inside. Along the sides of the troop deck rests a section of seats, each one composed of a bucket configuration with a heavy strap-based harness, similar to racing harnesses. Between each seat is a guncaddy to vertically secure medium- and large-sized firearms. Underneath each seat is a drawer large enough to fit most of everyone's personal kits... Engineers and meditechs have several larger footlockers to stow their gear in, just offside from the ramp.
In the center, facing towards the ramp and beside a small set of steps leading up to the pilot/gunner cabin, rests the command chair, outfitted similarly, but with a small set of screens mounted on a swiveling panel.
In the floor, several panels can be seen, allowing access to several larger storage areas below the main deck.
Robert gestures at the ship's guns and replies to the heavy armsman, "That's the kind of guns that I like to see, could be bigger though...".
Robert stows his bag in a locker, and heads up to the gunner's seat. He straps in and draws a fine wire from his headset. This wire is plugged into the set into the main consule, which calls up the tactical readout on his HUD.
"Let's see what we have to work with today..."
Dammit Janet! Link
Last edited by Alebeard_Thunderax; 2007-12-05 at 01:38 AM.
Carrying his gear through the group and onto the ship, the Fraal stops at on of the larger footlockers. Drop off his various tool kits, his load becomes much lighter. Moving toward his set Zair quick adjust all the straps down to their smallest setting and then straps himself in
Quin quickly moves to a free seat, stowing his gear and then strapping in.
Having no gear to store, Casca just strapped himself into a seat and patiently awaited liftoff. He turned his head and spoke to the marine next to him. "If I had emotions, I would be exited. This is what I was made for, after all."


We're a Luxury Custom Home Contractor building remarkable spaces in the Vancouver & Lower Mainland markets for over five years.
Founded in 2012, the practice was inspired by the desire to provide the highest quality craft, service and efficiency. Principals Matt Kokan and Warren Barrow have assembled a team of highly skilled individuals at JBR Construction. This unique, focused team strives to be recognized as a leader, while integrating progressive building concepts, technologies, and tools. From these core ideals, JBR has shaped its sole purpose: to provide premium service, that facilitates and realizes Architecture.
JBR delivers an unparalleled construction experience, process and flexibility for unique construction projects. We offer value to our clients in the form of craft, diligence and efficiency proven over the past five years.
An uncompromising standard of excellence.
Restoring & creating commercial spaces.
JBR has been working in the lower mainland and sea to sky for 5 years, with experienced personnel in the construction industry with up to 20+ years of experience. Having our services employed on projects ranging from $100,000 up to $18 million, we showcase a unique ability to adapt and grow to suite our client's needs. With the latest software such as Cad Makers (3D modelling), Procore (Construction Management) and Bridgit (Deficiency Tracking) we can set ourselves apart from other builders with our 21st century view of construction.
JBR is active in the early assessments and feasibility studies to define whether a property will meet a client's goals both financially and logistically. To establish buildable options, JBR provides a review of local building rules, regulation, and code.
JBR determines the schedule, cost, and quality that shape a project within the overall development process. The timeline, budget, contracts and agreements are negotiated and executed upon during this process.
JBR coordinates and collaborates with the design team to provide accurate transmission of information to the site, and from the site to the design team. JBR provides efficient cost reporting on changes, tracking approvals, and the coordination of the site into 'work in progress'.
JBR creates educational and close out documents in coordination with the client, the client's estate manager, and service personnel. The project close out documentation provides a full overview of the completed project, both for reference and for service maintenance.
in an uncompromising standard of excellence.
concrete, and rustic raw wood and exposed brick.
Let's start the conversation regarding your project.
We will discuss with you costs, our process, timelines & more.
Fill out the form below & we will get back to you within 24 hours.
Luxury Custom Home Builders, General Contractors, Commercial & Multi Family Builders Serving the Vancouver and Lower Mainland markets.
2018 © Copyright JBR Construction Ltd.


text:
Boy & Bear Release Two New Tracks; "Hold Your Nerve" + "Work Of Art"
Per the official press release – After the most tumultuous period of their lives both personally and professionally, Boy & Bear are back with...
The Lemonheads North American Tour Continues
The Lemonheads are currently on a North American tour with special guest support from Tommy Stinson (on all dates). US Tour Dates – Date...
The Glorious Sons – "Panic Attack"
Per the official press release – JUNO Award winners The Glorious Sons return today with their explosive new single "Panic Attack" (Black Box), a...
Tyler, The Creator Unveils 2019 Tour
Per the official press release – Right after making history with his latest album IGOR, Tyler, The Creator announces his North American tour. He became the...
City and Colour Announce 2019 North American Tour
Per the official press release – City and Colour, acclaimed singer, songwriter and performer Dallas Green, debuts a new song, "Astronaut", today....
Bon Iver Expands 2019 North American Tour
Per the official press release – Today, Bon Iver release "Hey, Ma" and "U (Man Like)," two new songs featuring contributions from Bruce Hornsby, Moses...


I went for a walk last night with Mandy, Brad and Karla to have a look at the local Christmas Lights some local residents have put up on their houses.
I took my trust Nikon along to try and get some nice shots. With a highish ISO setting and wide aperture I was happy with the results. There's a small street where everyone is right into their Chrtistmas lighting and lots of people walk through in admiration. I'm really happy with this shot which not only captures the extensive display of lights, but also the community atmosphere of this normally quiet Pakenham street.


The Council on Chiropractic Guidelines and Practice Parameters (CCGPP), was formed in 1995 at the behest of the Congress of Chiropractic State Associations (COCSA) and with assistance from the American Chiropractic Association, Association of Chiropractic Colleges, Council on Chiropractic Education, Federation of Chiropractic Licensing Boards, Foundation for the Advancement of Chiropractic Sciences, Foundation for Chiropractic Education and Research, International Chiropractors Association, National Association of Chiropractic Attorneys and the National Institute for Chiropractic Research to create an equitable chiropractic practice document. CCGPP was delegated to examine all existing guidelines, parameters, protocols and best practices in the United States and other nations in the construction of this document. Participation and process has been as transparent as possible and a major goal is to represent a diverse cross-section of the profession with the project that CCGPP is charged with. Six members were appointed to represent COCSA. Other members were appointed by the organizations that created CCGPP. The CCGPP is a steering organization comprised of 21 individuals. 16 are chiropractors with one in education, one in research and 14 in full-time Private Practice. There is a vendor representative, a representative from chiropractic colleges and attorneys representing the National Association of Chiropractic Attorneys, as well as a public member. A research commission with several dozen members reports to and is supervised by CCGPP.


text:
Difference between revisions of "Milestone-Proposal:Rice Cookers"
Isao Shirakawa (talk | contribs)
In December 1955 Toshiba started selling the completed 700 units of 'automated electric rice cookers' by using an elaborate 'double-chamber indirect rice cooking method'. Although this electric rice cooker was equipped with an automatic turn-off facility, it did not yet contain a keep-warm function, and the cooked rice cooled down so quickly that it was often necessary to move the cooked rice to heat-insulated serving containers [3, 4, 5], as already stated. In addition, sales did not grow so much, mainly because electronics stores and customers were very skeptical whether or not this cooker could really cook rice well. To cope with such an undesirable situation, Toshiba endeavored to enhance the sales network and moreover to demonstrate the rice cooker in nationwide so earnestly that it began to sell explosively. Here, it should be added that a bimetallic thermostat incorporated into this cooker contribute to the automatic turn-off facility as follows: When the water in the outer pot of a rice cooker was made to boil off, the temperature of the cooking bowl rose rapidly, and a bimetallic thermostat then activated and automatically turned off the heater to prevent burning of the cooked rice.
In December 1955 Toshiba started selling the completed 700 units of 'automated electric rice cookers' by using an elaborate 'double-chamber indirect rice cooking method'. Although this electric rice cooker was equipped with an automatic turn-off facility, it did not yet contain a keep-warm function, and the cooked rice cooled down so quickly that it was often necessary to move the cooked rice to heat-insulated serving containers [3, 4, 5], as already stated. In addition, sales did not grow so much, mainly because electronics stores and customers were very skeptical whether or not this cooker could really cook rice well. To cope with such an undesirable situation, Toshiba endeavored to enhance the sales network and moreover to demonstrate the rice cooker in nationwide so earnestly that it began to sell explosively. Here, it should be added that a bimetallic thermostat incorporated into this cooker contributed to the automatic turn-off facility as follows: When the water in the outer pot of a rice cooker was made to boil off, the temperature of the cooking bowl rose rapidly, and a bimetallic thermostat then activated and automatically turned off the heater to prevent burning of the cooked rice.
Eventually, Toshiba succeeded not only in a maximum monthly production of 200,000 units of automated electric rice cookers in 1956, but also in the total production volume of 12.35 million units in 1960 [3, 4, 5], as already stated.
1923 and 1955: '1923' and '1955' are the years in which 'Mitsubishi Electric Corporation' and 'Tokyo Shibaura Electric Co., Ltd. (currently Toshiba Corporation) collaborated with Koshinsha Co., Ltd.' both in Japan, commercialized the world's first 'electric rice cooker' and 'automated electric rice cooker', respectively.
The world's first 'electric rice cooker' and 'automated electric rice cooker' were commercialized in 1923 and 1955 by the Japanese Mitsubishi Electric Corporation and Toshiba Corporation collaborated with Koshinsha Co., Ltd., respectively. Each was aimed at a kitchen appliance for rice cooking, and its commercialization contributed greatly to the progress of home electrification in Japan and other East Asia countries.
In the past the rice cooking used to be carried out by means of non-automated dedicated rice cooking utensils, whereas at present it is by automated electric/gas rice cookers. The world's first 'electric rice cooker' [1] and 'automated electric rice cooker' [2] were commercialized in 1923 and 1955 by Mitsubishi Electric Corporation and Toshiba Corporation collaborated with Koshinsha Co., Ltd., respectively, both in Japan [3, 4, 5]. As for the former, its commercialization started in the year when the 'Great Earthquake of 1923' occurred, and it was intended mainly for marine use [4]. On the other hand, as for the latter, it was the first commercially successful rice cooker intended for home use [3, 4, 5], and its commercialization contributed greatly to the progress of home electrification in Japan and other East Asia countries.
The 'electric rice cooker' commercialized for marine use in 1923 by Mitsubishi Electric was composed simply of an aluminum pot with a heating coil inside and an inner cooking bowl to hold rice. Since this rice cooker had no turn-off function, it required constant monitoring during cooking [3]. Thus, to cope with the lack of a turn-off function, Mitsubishi Electric soon began to develop an automatic turn-off facility attached to this rice cooker so that it could be automatically turned off when the water in the outer pot boiled off. However, it was not until in around 1930 that Mitsubishi Electric successfully attached an automatic turn-off facility to the rice cooker [4].
In 1952 a General Manager of Toshiba Corporation consulted with the President of Koshinsha Co., Ltd. about the collaboration in commercializing an 'automated electric rice cooker' for home use. As a result, the joint R&D (research and development) project targeted at this automated rice cooker was approved by the two companies, and it was achieved as outlined in what follows [5]:
1) In 1952 Toshiba agreed with Koshinsha on the joint R&D to commercialize an 'automated electric rice cooker' for home use in such a way that Koshinsha took on the role of its development.
2) The two companies jointly confirmed that the key point of cooking rice at home was how to turn the raw starch with a crystal structure into the 'gelatinized starch' whose crystal structure was decomposed by cooking.
3) As soon as Koshinsha found that in the trial cooking, there were hard rice due to insufficient cooking as well as scorched rice due to overcooking, they began to devise an effective 'triple-chamber indirect rice cooking method' in order to detect that boil and to turn off the switch accurately as specified.
4) Making effective use of this method, in 1955 Koshinsha managed to assemble an automated electric rice cooker after three years' desperate efforts.
5) By virtue of this rice cooker, Toshiba successfully placed the world's first 'automated electric rice cooker' on the market by implementing a sophisticated 'double-chamber indirect rice cooking method'.
It should be noted here that what distinguished Toshiba's 'automated electric rice cooker' from Mitsubishi Electric's 'electric rice cooker' was Toshiba's incorporation of a bimetallic thermostat into the rice cooker, which played an important role as follows: In the situation where rice was placed into a cooking bowl and water into a surrounding pot, when the water in the outer pot was made to boil off, the temperature of the bowl rose rapidly, and a bimetallic thermostat then activated and automatically turned off the heater to prevent burning of the cooked rice [3, 4, 5].
Eventually, in December 1955 Toshiba anyhow embarked on a business of selling the completed 700 units of this automated rice cooker, in which, however, sales did not grow as expected. Thus, Toshiba soon proceeded to expand the sales network so desperately that a maximum monthly production of 200,000 units could be provided for the Japanese market [3]. Four years later, rice cookers became widespread in almost half of all Japanese households, and the total production volume reached 12.35 million units [3, 4, 5].
The 'electric rice cooker' commercialized for marine use in 1923 by Mitsubishi Electric was based on a simple concept of heating the rice to cook and turning off the heater when the temperature of the bowl rose to a certain point. At this early stage, or even in the late 1920s, electric rice cookers were not yet widespread for home use due to the underdevelopment of home electrification in Japan. In addition, the rice cooking was influenced so greatly by variation of room temperature that under-cooked rice was often produced. Thus, in the early development phase, many makers continued to experience failures in their ongoing trial-and-error approaches [3, 4].
Toshiba's 'double-chamber indirect rice cooking model' devised for the 'automated electric rice cooker' took more time for rice cooking and consumed more electricity than Mitsubishi Electric's model for the 'electric rice cooker' [3]. In addition, since this electric rice cooker did not have a keep-warm function, and the cooked rice cooled down so quickly that it was often necessary to move the cooked rice to heat-insulated serving containers [3, 4, 5].
In old times the rice cooking used to be conducted by employing non-automated dedicated rice-cooking utensils, which have an ancient history (e.g. a ceramic rice cooker dated to 1250 BC is on display in the British Museum [3]). Since the 'electric rice cooker' released in 1923 by Mitsubishi Electric had no turn-off function, it required constant monitoring during cooking [3]. Thus, Mitsubishi Electric was soon engaged in developing an automatic turn-off facility attached to this rice cooker. However, it was not until in around 1930 that Mitsubishi Electric accomplished an automatic turn-off facility attached to the rice cooker [4], as already stated.
References [1]. [2], [4], and [5] were written in Japanese, for which English abstracts are provided as follows.
① Reference [1]: This article briefly describes a product history of electric rice cookers developed by Mitsubishi Electric Corporation. At first, it is stressed that the world's first electric rice cooker was developed for marine use in 1923 by Mitsubishi Electric, which was not widespread so much for home use, mainly because the home electrification had been still underdeveloped in Japan. It is also stressed that the old Japanese culture of holding the cooked rice in heat-insulated serving containers could be maintained in a different way by employing newly an electric rice cooker and warmer commercialized in 1976 by Mitsubishi Electric. Following the early history of electric rice cookers, this article steps into an introduction of several rice cookers commercialized afterwards by Mitsubishi Electric.
② Reference [2]: This article reveals a hidden story of the world's first 'automated electric rice cooker' commercialized in 1955 by Toshiba Corporation. The story written here briefs the following topics:
1) The contribution of this 'automated electric rice cooker' to the kitchen revolution.
2) The application of the 'double-chamber indirect rice cooking model' to this 'automated electric rice cooker'.
3) The usage of this rice cooker: Rice was placed into a rice bowl, and water into a surrounding container. When the water in the container boiled off, the temperature of the rice bowl rose rapidly, and a thermostat then activated and automatically turned off the heater to prevent burning of the cooked rice.
This article also touches on an early series of Toshiba's products; a rice cooker with a keep-warm facility commercialized in 1972, one with microprocessor-controlled facilities released in 1979, a higher-end IH (Induction Heating) rice cooker put on sale in 1988, etc. Finally, it is added that since 1990 Toshiba had commercialized 6~7 million units of rice cookers par year.
2) Koshinsha's collaboration with Toshiba, starting in 1952,