text:
JSON/AJAX Overview
Using JavaScript, JQuery, and JSON in Django
4.8개(249개 평가)
Django for Everybody 전문 분야에서 4의 강좌 4
In this final course, we'll look at the JavaScript language and how it supports the Object-Oriented pattern, with a focus on the unique aspects of JavaScript's approach to OO. We'll provide an introduction to the jQuery library, which is widely used for in-browser manipulation of the Document Object Model (DOM) and event handling. You'll also learn about JavaScript Object Notation (JSON), which is commonly used as a syntax to exchange data between code running on the server (i.e., in Django) and code running in the browser (JavaScript/jQuery). You will continue to develop your classified ads application, adding features that make use of JavaScript, JQuery, and JSON. This course assumes you have completed the first three courses in the specialization.
Document Object Model (DOM), Jquery, Many-to-many data modeling, Json, JavaScript
Great Instructor and Let me have a knowledge and experience with Web development and Database management. Thanks, Charles Russell Severance.
Nice course to get started with Django. Assignments are designed thoughtfully. Thanks a lot for the great content. It was worth my time.
JSON / AJAX
JSON and AJAX allow web pages to add interactivity and interact with the back-end without sending entire web pages back and forth to the server.
JSON/AJAX Overview14:15
Walkthrough: DJ4E JSON Sample Code6:01
Building an AJAX Chat with Django9:53
Walkthrough: DJ4E JSON (chat) Sample Code17:53
Charles Russell Severance
Clinical Professor
Hello, and welcome to our lecture on AJAX and JSON. So we are going to change a little bit of how we have been working with our request-response cycle. This is my happy little diagram of how these applications work, right? So you're sitting here in a browser, and there's this thing called the document object model. And I like to think of the document object model is it a data structure that represents, in a sense, the pixels that you're seeing on your screen, like you're seeing me on the screen right now. It's that last little layer of the pixels. And the document object model is the data structure that the browser maintains to keep track of what it's going to draw. So if you scroll up and down, it knows what's below your window, etc. And when we're interacting, like clicking on things, we click on something in the document object model, and the browser goes, I know what to do with that. I'm going to make a connection on port 80, send a get request or whatever. And there is like, your application's running in the server, it reads urls.py, picks one of the views, loads code up, maybe loads a form up. Gets some templates, loads some data from a model or maybe stars at a model, and then sends, HTML plus JavaScript back. And the browser sees that from the server, it constructs the DOM. And then, as we've seen, it sort of starts JavaScript. And that JavaScript afterwards, after, in a sense, there is no more connection, the JavaScript can talk to the browser. We've had it add things, delay things, change the color, show a spinner. We've done all that stuff, right? But now we're going to do something different. At the point where it is no longer connected, we are interacting with the DOM and doing things ourselves. We're clicking, and scrolling, and doing who knows what, right? But now that is going to be seen and intercepted by the JavaScript, and the JavaScript is going to make a request-response cycle. It's still going to pick a view, going to grab maybe a template, some data, not so much form, sorry, model, and then send data back. And then AJAX is going to parse that data and update something on the DOM, and then you're going to see it. And it really allows a little chunk of the screen to be updated without having to update the whole screen. When we're doing a full request-response cycle, like when we submit a form or click an anchor tag, that changes the whole page. Even though we've done things like putting navigation across the top to make it look like it's not changing, now we are going to leave most of the page intact and change a little tiny bit of that page. And this is called AJAX, for a strange, strange historical accident or whatever. So what we're talking about is data on the web. So the web was created in 1990, became popular in 95. And JavaScript came out in like 1995. And so almost ten years later, we're looking at this JavaScript and realizing, if we just add one little thing to the browser and let the JavaScript make its own request-response cycles, then we could do a lot with that. And so we're like, this is a really cool protocol, it made all the server infrastructure send HTML back. Why don't we make it so it sends something else back? And so the idea was is the data would go back and forth between JavaScript, JavaScript already could talk to the document object model. 2003 is just a little bit before jQuery was built. But by the time jQuery was built, this whole AJAX data on the thing was going pretty well. So the thing everyone thought of in the early times was the notion that we would send XML back and forth. And XML looks kind of like HTML, it has angle brackets. And XML was being used as a data representation format. In many kinds of situations, it's still being used as data representation format. But it turned out it wasn't as easy to use as a data interchange format. So there's difference between two pieces of software sending data back and forth to each other and storing something on disk for a long time and then reading it like a Word document back and forth. So XML, which was really good for documents, we originally thought it was going to be good for sending data back and forth. And that is why it's called AJAX, because the X stood for XML, even though these days we hardly ever send XML. And in this class, I'm not going to bother sending XML, even though I could do it to prove the point. AJAX now is more of a generic, it doesn't really mean XML. And so once we decided that we were going to move data, we had to figure out a wire format. And so what would go back and forth across the wire? And the idea is whether you're running a JavaScript, or Java, or PHP, or Python, each of those has their own syntax for variables, their own syntax and their own methods, etc. And so those weren't seen as sufficient to move data back and forth. And that's why for a while we used XML as our wire format. So they would convert to XML and then convert from XML. But after a while, JavaScript turned out to be a much better solution as the wire protocol. And so JSON is a wire format, and at this point, it's pretty much the most popular wire format. And so it looks like JavaScript constants, with curly braces, key-value pairs, and it also looks like Python, dictionaries and lists. Which is really in the time in 2005, 2004, I thought it wasn't all that popular back then. And the fact that it looks like Python is like a historical accident, where Python became popular much later, 2008, 2009, 2010, maybe. Certainly now, 2012-13, Python's like crazy cool. But back in 2002, 2003, Python was still kind of like a shadowy language. Now, a wire format is a definition of what's supposed to run across the wire. So no matter what programming language, whether it's Python or JavaScript, you need to send it the right way. So inside a Python, you have a dictionary, then you have to prepare to send it across the Internet. And you have to do what's called serialize, which converts it from the internal format to the agreed upon external format. And then it's transported, and then the destination end grabs it, de-serializes it, decodes it, and then puts it into whatever form. In this case, it started out as a dictionary and it came back as an object. And so that's the idea, that JSON is while it's moving. And serialization is encoding it for movement and de-serialization is decoding it for movement. So the notion of JSON, I mean, now is a pretty well understood concept, but certainly in 2002, 2003, 2004 is like XML is better. And so there was this moment where the world powers, the smart architects, all thought that XML was the answer. because it was an answer to some problems, it just wasn't the best answer for this. But when they built it first time, they decided that they would send it as XML. And Douglas Crockford and others were looking for a simpler, lighter way to send data back and forth. And they settled on the object literal notation, which is key-value pairs and an array. And so it's a pretty nice extensible with nesting, an extensible format. Douglas Crockford is sort of the one who popularized this, but claims he's, rightfully says, he didn't invent it, he just looked at it and said, I like it, I'ma start using it. And it had the advantage that JavaScript understood it. So half of your, the de-serialization part on the JavaScript side was pretty easy. And we didn't want to write a lot of JavaScript code back in the day. So the server's could figure out how to write this JSON, send it, serialize it out. And then it would be easy for the browsers to write relatively little code to fix it. Now we've got pretty good parsers in the browsers and they understand JSON. But the early kind of quick prototypes, it was really easy on the browser side if it looked like legitimate JavaScript. [COUGH] And so one of the problems was is it was almost underwhelming, the idea that you just take this constant format, the Syntax for JavaScript constants. And you turn it into a standard that says everyone, Javva, C++, C#, C, whatever the server language, you gotta write JavaScript. You're like, I don't know, that's not a standard, you just made that up. He's like, no, JavaScript is as much a standard has anything else, and so he registered json.org. And he talks about this in the interview between him and me. And he registered json.org and he wrote up a document that is JSON. Unlike most standards, it wasn't a government funded, it wasn't a standards organization like IEEE, or ANSI, or anything like that. It was just Doug Crockford, did it, wrote it. And it was such a good idea that people just started using it and they referred to json.org. Now, there's a subtle difference between JavaScript constant format and JSON, partly because you can put variables in the JavaScript. And so he simplified it, and so he kind of made it a subset of the JavaScript constant format or the constant syntax. And so this is what it looks like. It looks like a dictionary and list, or in JavaScript terms, an object and arrays. And so you have key-value pairs, like name maps to Chuck, age maps to 29, college is true. You can have numbers, you can have Booleans, but you can have nesting. So you can have, inside of an object, you can have one of the attributes that points to a list of two strings. And then you can have an attribute inside the outer object, the outer object being who here, that has itself an object. And so for example, if I wanted to get to this 10, I would say who.skills.C, and that would reference that number 10. And so that's just an object that has an attribute that itself is an object. And then that's an attribute of the inter object. So that's the basic JSON syntax, and it's pretty easy. I mean, [LAUGH] I rarely have to look it up, right, because it's so intuitive. And so that's one of the things that a lot of people really like about the JSON syntax. And so here we have the JSON syntax, and it's in JavaScript. So that exact same text, I just am going to write it, who equals, and then I'm going to console log to who variable, and then out it comes. Okay, so it is really, that's also, this part here is also completely legitimate JSON to send across between a client and server using AJAX, and that's cool. But it's also really and totally a legitimate JavaScript constant. Like I said, there are things you can do in JavaScript you're not allowed to do in JSON. So when there's a view, and it's got to produce some JSON, well, you're going to to go to some URL and then you're going to map that URL to some view. And in this case, I'm just going to do a get request. And so I'm not going to use a class, I'm just going to use a function base. And in this particular case, I'm going to import JSON response. And JSON response is, JSON response is like HTTP response, but instead it's known to be JSON. And so the time sleep makes it so that when I run this, it pauses for a second so I can watch as it comes back. That's not what you would normally do. Then I have a little dictionary, and that dictionary just is, this is a Python dictionary, a key-value pair, it happens to look like JSON. And then I basically say serialize that and send it back. Now, there's other things that have to happen. So this is just a standard, I could have made that a list. It's best practice in JSON for the outer thing to be an object. And so if you have a list, you have that as a attribute of the outer object. So you tend to want to make the thing that you pass back on JSON response an object or dictionary rather than list. And so if you have a list, you put it inside of a dictionary. Okay, and so that's going to send that back. So if we were to hit this and just go to it in a browser and go to jsonfun. And this browser that I happen to be taking the screenshot sort of can show the raw data, which is just this is the JSON. Now, it looks like the dictionary, but it's not, this is a serialized JSON thing, it looks like the dictionary. And you can see that's exactly what came back from that browser, from that server. But then if you look at it parsed with JSON, and the browsers kind of know how to parse JSON. And so it looks up the curly braces and the single quotes. And it basically says, this would make a JavaScript object, where the first attribute is mapped to first thing and the second attribute is mapped to second thing. So browsers increasingly just know what JSON looks like. And so for debugging, we get to see this, and it's kind of nice. Now, the other thing that you would notice if you look really closely is if you took carefully a look at the headers, you'll see that the content type is application/json. We've done a whole bunch of things, text/html, we've done text/plain, we've got an image/png, I don't know if you've done application/pdf or not. But application/json is how we tell the browser that this is going to be JSON. And when we send a JSON response back from a view, that's what indicates to send this content type on the HTTP response protocol. And so that way, the browser knows that it's getting JSON and not plain text, and not HTML, and not a PNG. So up next, we're going to take this and turn it into a simple chat application. [MUSIC]


text:
Emergence of Lok Adalat as the most efficacious tool of Alternative Dispute Resolution
A total number of 1,27,87,329 cases were disposed off in 2021. Due to technological advancement like E-Lok Adalats, Lok Adalats have reached doorsteps of parties
National Legal Services Authority (NALSA) is committed to deliver prompt and inexpensive justice to the citizens. Recently, it has decided to lay more emphasis on contribution of National Lok Adalat in effectively reducing the number of pending cases through Alternative Dispute Mechanisms.
To achieve this goal, the Legal Services Authorities shifted to dynamic preparation strategies for organization of the Lok Adalats. As a preparatory measure, NALSA started organization of prior consultative and review meetings with all the State Legal Services Authorities to guide them towards the maximum disposal during such Lok Adalats.
Before the organization of each National Lok Adalat, multiple interactions were organised with the Executive Chairpersons of all the State Legal Services Authorities, wherein one-to-one interactions were made to take a stock of the preparations as well as to boost the morale of the stakeholders tasked to organize the Lok Adalats
About Lok Adalat
The term 'Lok Adalat' means'People's Court' and is based on Gandhian principles.
As per the Supreme Court, it is an old form of adjudicating systemprevailed in ancient India and its validity has not been taken away even in the modern days too.
It isone of the components of the Alternative Dispute Resolution (ADR) system and delivers informal, cheap and expeditious justice to the common people.
Thefirst Lok Adalat camp was organised in Gujarat in 1982 as a voluntary and conciliatory agency without any statutory backing for its decisions.
In view of its growing popularity over time, it was given statutory statusunder the Legal Services Authorities Act, 1987. The Act makes the provisions relating to the organisation and functioning of the Lok Adalats.
The State/District Legal Services Authorityor the Supreme Court/High Court/Taluk Legal Services Committee may organise Lok Adalats at such intervals and places and for exercising such jurisdiction and for such areas as it thinks fit.
Every Lok Adalat organised for an area shall consist of such number of serving or retired judicial officers and other persons of the area as may be specifiedby the agency organising.
Generally, a Lok Adalat consists of ajudicial officer as the chairman and a lawyer (advocate) and a social worker as members.
National Legal Services Authority(NALSA) along with other Legal Services Institutions conducts Lok Adalats.

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: TypeError: Cannot read property 'requestContent' of undefined for JQuery cdn im using jquery cdn with popper and bootstrap js. The jquery function is to get data from the user, and ajax with POST it to my php code on top. But in the browser console log I am getting a weird warning and error; TypeError: Cannot read property 'requestContent' of undefined. However, the a similar type code in another php file works perfectly, what am I doing wrong in this one? The images below are the exact errors im seeing in the console.

*

*Console log

*Error shown in log

*Network response failed

My script codes:
  <script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
  <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>

  <script type="text/javascript">

      $(document).ready(function () {
            $("#registerBtn").on('click', function () {
                var classnamed = $("#addclass").val();

                if (classnamed != "" ) {
                    $.ajax({
                      url: "classd.php",
                      method: "POST",
                      dataType: "text",
                       data: {addclass: 1, classname: classnamed, code: 'der42'},
                       success:function(response){
                          console.log(response);
                        }

                    });
                } else
                  alert('Please Check Your Inputs');
            });
      });

Php code(which is in the same php file):
    <?php

    include('server.php');

    if (isset($_POST['addclass'])) {

    $name = mysqli_real_escape_string($db,$_POST['classname']);
    $code = mysqli_real_escape_string($db,$_POST['code']);

    $db->query("INSERT INTO class (class_code, class_name) VALUES ('$code','$name')");

    exit($name);
    }
    ?>

If anybody could give an insight to whats going on, that would be great!

redpajama_set_name: RedPajamaStackExchange


Update on the molecular biology of dyslipidemias.
Abetalipoproteinemia and chylomicron retention disease are due to mutations in the microsomal transfer protein and Sar1b-GTPase genes, which affect the secretion of apoB containing lipoproteins.
Milk Polar Lipids Affect In Vitro Digestive Lipolysis and Postprandial Lipid Metabolism in Mice.
This was associated at 4 h with a lower gene expression of apolipoprotein B (Apob) and Secretion Associated, Ras related GTPase 1 gene homolog B (Sar1b), in the duodenum of MPL mice compared with SPL mice (P < 0.05).
Deciphering inherited disorders of intracellular CM elaboration afforded new insight into the key functions of crucial intracellular proteins, such as Apo B, microsomal TG transfer protein, and Sar1b GTPase, the defects of which lead to hypobetalipoproteinemia, abetalipoproteinemia, and CM retention disease, respectively.
Animal model of Sar1b deficiency presents lipid absorption deficits similar to Anderson disease.
Anderson disease (ANDD) or chylomicron retention disease (CMRD) is a rare, hereditary lipid malabsorption syndrome associated with mutations in the SAR1B gene that is characterized by failure to thrive and hypocholesterolemia.
Sar1b transgenic male mice are more susceptible to high-fat diet-induced obesity, insulin insensitivity and intestinal chylomicron overproduction.
In the intracellular secretory network, nascent proteins are shuttled from the endoplasmic reticulum to the Golgi by transport vesicles requiring Sar1b, a small GTPase.
Tissue distribution and regulation of the small Sar1b GTPase in mice.
BACKGROUND/AIMS: Sar1b GTPase (Sar1b) represents an obligatory component of COPII vesicles that bud from the endoplasmic reticulum to transport proteins to the Golgi apparatus.
The FYVE domain of Smad Anchor for Receptor Activation (SARA) is required to prevent skin carcinogenesis, but not in mouse development.
In this study, we describe the expression of two SARA isoforms, SARA1 and SARA2, in mice and report the generation and characterization of SARA mutant mice with FYVE domain deletion.
Novel mutations in SAR1B and MTTP genes in Tunisian children with chylomicron retention disease and abetalipoproteinemia.
Monogenic hypobetalipoproteinemias include three disorders: abetalipoproteinemia (ABL) and chylomicron retention disease (CMRD) with recessive transmission and familial hypobetalipoproteinemia (FHBL) with dominant transmission.
Phosphorylation of Sar1b protein releases liver fatty acid-binding protein from multiprotein complex in intestinal cytosol enabling it to bind to endoplasmic reticulum (ER) and bud the pre-chylomicron transport vesicle.
Proteins co-eluted from the column were identified as FABP1, Sar1b, Sec13, and small VCP/p97-interactive protein by immunoblot, LC-MS/MS, and MALDI-TOF.
Expression of Sar1b enhances chylomicron assembly and key components of the coat protein complex II system driving vesicle budding.
Sar1b expression may promote intestinal lipid transport with the involvement of the coat protein complex II network and the processing of SREBP-1c.
Mechanisms and genetic determinants regulating sterol absorption, circulating LDL levels, and sterol elimination: implications for classification and disease risk.
We particularly focus on the biological aspects of those gene mutations and variants that impact on sterol absorption and hepatobiliary excretion via specific membrane transporter systems (NPC1L1, ABCG5/8); the incorporation of dietary sterols (MTP) and of de novo synthesized lipids (HMGCR, TRIB1) into apoB-containing lipoproteins (APOB) and their release into the circulation (ANGPTL3, SARA2, SORT1); and receptor-mediated uptake of LDL and of intestinal and hepatic-derived lipoprotein remnants (LDLR, APOB, APOE, LDLRAP1, PCSK9, IDOL).
Hypobetalipoproteinemia: genetics, biochemistry, and clinical spectrum.
The rare recessive forms of primary monogenic HBL are represented by abetalipoproteinemia (ABL) and chylomicron retention disease (CMRD) due to mutations in MTP and SARA2 genes, respectively.
Variable phenotypic expression of chylomicron retention disease in a kindred carrying a mutation of the Sara2 gene.
Guidelines for the diagnosis and management of chylomicron retention disease based on a review of the literature and the experience of two centers.
Genotyping identifies the Sar1b gene mutation.Treatment should be aimed at preventing potential complications.
Anderson or chylomicron retention disease: molecular impact of five mutations in the SAR1B gene on the structure and the functionality of Sar1b protein.
Five mutations in the SAR1B gene causing Anderson disease.
Expression of Sara2 human gene in erythroid progenitors.
Sara2 is an important gene in processes involving erythroid cell proliferation and differentiation.
Mutations in a Sar1 GTPase of COPII vesicles are associated with lipid absorption disorders.


text:
Title: Preaching the Word - 1&2 Peter and Jude
Author: David R. Helm
Neither Peter nor Jude minced words about the realities that would confront every Christian and that were confronting the church at large-suffering and persecution, contradictory views of the gospel, constant challenges to the faith at the hands of false teachers. Yet even in the face of these harsh realities, both biblical writers unswervingly declared that there is no cause for despair as long as one's foundation and identity are in Christ.
With the truths of 1-2 Peter and Jude echoing across the ages, commentator David Helm beckons us to listen in his stirring exposition. Yet it is not enough to listen, he says. Peter's and Jude's words must compel us to do just what the early Christians did: hold fast to their identity in Christ, ground themselves in the truth, live lives worthy of their calling, and vigorously contend for the faith. Part of the Preaching the Word series.


"A beer for every food, and a food for every beer" is the mantra of Rich Higgins, Master Cicerone and Certified Sommelier from San Francisco.
On Thursday 9th May, Rich will be joining Laura Kent from Yorkshire Wine School as they take over the yard of Craft Beer & Indian Street For trailblazer Bundobust, to explore the pairing opportunities offered by wine and beer alongside a selection of dishes from the menu.
Three courses will be served by the Bundo team, each paired with one beer and one wine specially selected and introduced by (an increasingly competitive) Rich and Laura. Whoever wins, everyone's a winner.


Attached, please find the updates to my book, Food Sake Tokyo. The bottom link is a PDF to the complete updates.
Ginza Harutaka has moved to Ginza 8-3-1, Ginza Tokiden 6F.
To keep our readers up-to-date with the Tokyo food scene, I will post from time to time some news about what's happening in the metropolis. Keeping a finger on the pulse of cuisine here is hard, so I hope this helps you to know what you should have on your food radar.
Takashi Saito will be opening Taka by Sushi Saito in the St. Regis in Kuala Lumpur this spring. I hear the counter will be twice as big as the Tokyo main shop, so maybe it will be easier to get into? Sushi Saito in Roppongi is one of the hardest reservations to come by, harder than Sukiyabashi Jiro.
It was great fun showing Phil around some of my favorite Tokyo spots, including chef Zaiyu Hasegawa's Den. I don't want to say too much more. You'll have to see the show. Phil also travels to other cities around the world. He's a lot of fun and his commentary is great.
The show premieres on September 28th. Let us know what you think about it.
Ito-ya Ginza has reopened its original store. That and other updates to Food Sake Tokyo on the PDF below. Please print and bring with your copy of Food Sake Tokyo. Current as of 6 July 2015.
Food Sake Tokyo Updates 20150105. Please print and bring with a copy of Food Sake Tokyo.
Current as of 5 January 2015.
It is the middle of the rainy season. We have been enjoying katsuo (skipjack tuna or bonito) as sashimi, much fatter than usual this time of year as the fish are swimming up north. In the fall when they return south is when they will be really rich in fat. As ume (Japanese apricots, Prunus mume) are in the market we are busy making pickled umeboshi, ume jam, and sweet umeshu for an aperitif later this year.
We have had some changes at our company Food Sake Tokyo, named after the book published by The Little Bookroom. The focus of our business is our market visits to Tsukiji Market, depachika, Nihonbashi, Kappabashi, and supermarkets. We really enjoying meeting new people and helping them to explore and better understand Japanese cuisine. We are thankful for their recommendations as we are starting to see friends of former clients as well as clients returning.
We would like to open a cooking school next year. To prepare for that Shinji is taking the next year off from giving tours and is studying Japanese cuisine at Tsuji Culinary School. We are not offering the evening izakaya tours for the time being.
There will be some changes to this blog as we start to include more recipes and tips for cooking at home along with our usual posts on where to eat and shop in Tokyo. Shinji's studies will finish next March. Once we have found a kitchen to offer classes, we will update it here on our blog.
Thanks for following Food Sake Tokyo and we look forward to someday welcoming you to our kitchen. The plan is to continue offering market visits and to supplement that with cooking classes.
Tokyo has been unseasonably hot this week. My favorite bowl of cold ramen noodles in the whole city is a great little dive called Sapporoya.The ramen shop happens to be across the street from one of my favorite kaiseki/kappō restaurants, Nihonbashi Yukari. I love that on this narrow street you can find two contrasting meals, both exceptional, at different price ranges.
I used to work in Nihonbashi at Takashimaya department store. I came upon Sapporoya by chance one night when looking for a quick bite to eat with a girlfriend. It was summer and the cold ramen dish was tempting. The first time I had it I think I picked up the large bowl and sipped up the broth. It is rich in umami and has a nutty sesame sauce that brings the whole dish together. When I went to work the next day at Takashimaya and shared my story with Yamada-san (older man who is a gourmet and introduced me to many great spots), he knew immediately of it. I was advised by Yamada-san that the hot bowls of ramen are also very good here. But, I am addicted to the cold ramen with sesame dressing.
I stopped by this week and was so touched that the owners had remembered me. I haven't been back in five years, but as soon as I came into the shop I was warmly welcomed. It's a small restaurant and most of the diners are area businessmen, so I guess as a half-Japanese woman I stick out a bit. Regardless, I was happy to be back. I am very sentimental so their kindness in welcoming back to the shop almost brought tears to my eyes.
The dish is still as I remember. Presented in a large bowl, rich with toppings, and still with lip-smacking sauce. I no longer pick up the bowl at the end, but the thought did cross my mind. When you come into the store you place your order with the cashier. For this dish, be sure to ask for the hiyashi chuka goma dare. I don't care for Japanese mustard so I also request karashi nuki.
Sapporoya is just minutes from Tokyo Station on the Yaesu side.
and introduce you to a new sushi neta, like kinmedai (splendid alfonsino) that is pink, slightly sweet, and is succulent.
Introduce you to a wide variety of Japanese pickles.
or to a bar serving craft beer and sweet potato chips.
or through the native distilled spirit, shōchū. Yukari was the first non-Japanese to pass the shōchū advisor exam.
Food Sake Tokyo guides are a chef and Japanese fishmonger. We are Tokyo's food guides. Please contact us here for more information on our market tours.
Tsukiji Market, the world's largest seafood market, is in the heart of Tokyo. It is a short walk from the glitzy Ginza shopping district and just minutes from the renovated Kabukiza theater. It's one of Tokyo's most popular tourist destinations with visitors. And, it is our most popular tour that our company, Food Sake Tokyo, offers. Shinji, a Japanese fishmonger, used to be a buyer at Tsukiji Market so he offers an insider's perspective to the market.
Tsukiji Market is scheduled to move to Toyosu, a few kilometers down along Tokyo Bay. Another reason to come and see this historic market before it moves.
Shinji is able to talk about all of the seasonal seafood, how it's prepared, and what it the texture is like. Shinji's tour focuses on the inner market which is the wholesale area for seafood. It is here that he worked as a buyer. It's a crazy place to navigate and to really understand what is here and what is what, you need a guide who understands Japanese seafood.
One thing you will notice is that there is no stinky fish smell that you find at most fish markets. The fishmongers are very careful to clean and wash down each stall when they close down shop.
At the sushi counter Shinji is able to make recommendations on unique seafood that you most likely won't be able to try at home. He can also help to demystify the culture of dining at a sushi-ya. This time of year we are crazy for kinmédai, alfonsino, which is a pink fleshed fish. The best kinmédai, are harvested from the shallow waters near Chōshi port in Chiba. Steve Dolinsky writes about having kinmédai and includes a photo here.
I have to say, most fishmongers are very friendly and have big smiles – just like this one!
I also offer tours of Tsukiji Market. The focus of my tour is the outer market which is open to the general public. It is filled with stalls selling produce, pickles, prepared foods, tea, knives, and much more. We are enjoying tamagoyaki (Japanese omelet) on a stick. Reminds me of the Minnesota State Fair – the food on a stick part.
I also take clients into the inner market so that they can get a feel for the heart of the market. Here we are looking at fish killed by a special ikéjimé process.
The many stalls of the inner market – and the perfect spot for a photo.
There is lots to discover at Tsukiji, including learning about herring roe in a sac, and herring roe that has been laid on a piece of kombu, komochi kombu.
The view everyone loves – overlooking the inner market and Tokyo Bay.
We look forward to welcoming you to Tokyo and to Tsukiji Market. Here are more details on our tours.
* A special thanks to our clients for letting us share their photos with you.
Here is Tommy Aoki's MetPod. He talks about the United Tastes of America competition.


Marathon Health is seeking a Per Diem Medical Assistant (MA) who has knowledge and experience in primary care and preventative services to treat and work with employees and families (ages 2+) at any of our 3 on-site corporate health and wellness centers in Manhattan, NY.
This position is on an \"as needs\" basis filling in for our MA's at any of our 3 Health Centers in the Manahattan area. We offer competitive pay and a healthy work environment.
If you are a Medical Assistant who wants to work in a setting that emphasizes prevention, wellness, and patient involvement, we want to talk with you! Join a health care organization where the emphasis is on health outcomes, not patient volume and billing.
Marathon Health (www.marathon-health.com) is one of the nation's leading providers of employer-based health services. We serve businesses throughout the United States, providing a different kind of healthcare program that focuses on total population health management and health risk reduction.
Marathon Health promotes a culture of health and wellness in everything we do. It is for this reason we seek to hire individuals who embrace wellness and model healthy behaviors in their own lives. We are proud to be a drug and tobacco free company. We value the richness diversity brings to our workforce and are committed to being an equal opportunity employer and provider (EOE).
The Medical Assistant is responsible for supporting both the front and back office, including greeting and rooming patients, scheduling, answering phones, taking vitals, drawing blood, administering vaccines, and providing additional clinical support wherever needed. Maintaining a collaborative relationship with the center's staff is a key ingredient to success in this position.


text:
Q: Hibernate, Postgre/MySQL discrepancy When I run my application against a MySQL database, everything goes as expected.
When I try the same against a Postgre database it errors out...
The following is the output from the logs.
https://gist.github.com/stelar7/f8414971e8ee130c977346c4baae9d7b

A: Does adding spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect on you application.properties solves the problem?


text:
Woman shot while streaming argument on Facebook Live
By David Boroff
Jan 03, 2018 | 12:57 PM
A 27-year-old woman was shot in Chicago on Tuesday while streaming on Facebook Live.
The victim was arguing with another woman, who was seated in a car, when the assailant in the vehicle pulled out a gun and fired multiple shots. The woman was struck in the arm.
The shooter remains at-large, but police spokesman Anthony Guglielmi told the Chicago Tribune that she has been identified.
"What I can say is we believe this to be a domestic related incident between two individuals that know each other," he told the newspaper. "We do not believe there is any threat to the public as this stemmed from an earlier interaction between the two of them."
In the video, the victim can be seen talking to the suspect in the car.
"This b---h got a gun you all. You got a gun, what you gonna do, what are you going to do with it," the victim can be heard saying.
A 27-year-old woman was shot in Chicago while streaming on Facebook Live. (Facebook)
The shooting is not seen in the video, but one person can be heard yelling that someone should call 911.
The victim was hospitalized and her condition was stabilized, according to the Tribune.


text:
Labour blogger: 'Theresa May wanted to be the new Margaret Thatcher, and it's blown up in her face'
Theresa May has made a grave miscalculation, according to Labour blogger Kevin Meagher
By Gareth Platt
Labour blogger Kevin Meagher says Theresa May wanted to become the new Margaret Thatcher and her gamble has "blown up in her face."
Meagher, a frequent critic of Jeremy Corbyn, also praised the Labour leader for his campaign performance.
Meagher was speaking to Julia Hartley-Brewer after exit polls suggested May will fail to win an overall majority, raising the prospect of a hung parliament.
He told Julia "this is not in the script" but added "we've been here before," pointing out that polls tipped Neil Kinnock to beat John Major in 1992.
Despite his caution, Meagher was critical of May, saying the Prime Minister "thought she couldn't lose, that she would get a big majority, that she would sweep the board.
"This is what drove her to make bold suggestions in terms of social care reform. She had such a big cushion, she could afford to be very straight with the voters, take some unpopularity to get a mandate for change.
"She was going to be the new Angela Merkel, the new Mrs Thatcher. It's blown up in her face."
Corbyn, on the other hand, has "been very good. The Labour campaign has been pretty efficient and a lot of credit needs to be given to Corbyn.
"Some of his critics in the Labour Party will have to shake his hand through gritted teeth."
However Meagher thinks Corbyn still lacks credibility and carries a lot of negative baggage, and a more popular and charismatic figure might have forced a change of government.
New election


If you are someone who wishes to go to some place for a tour but do not know exactly where, you have come to the right place. There are actually a lot of places out there that you can visit for a wonderful vacation. You may be someone who loves visiting warm parts of the world because you live in a place where it always snows or you may love visiting cold and winter places because you live in a really hot and humid country. If you are looking for a good place to tour around, Tibet would be a good choice. We are not going to talk a little bit about Tibet and the tours that you can get there if you ever plan to go there.
One other reason to visit Tibet and have a tour there is because you will find a lot of wild life on the mountains of Tibet like the mountain yaks. It would be a really grand sight to see these Tibetan yaks going about and doing their thing in the high mountains of Tibet. It would be really great to see them feeding in these mountains. Tibet has been called the roof of the world because of how high it is from sea level. There are many tourists who would visit Tibet because they want to see the tallest mountain in the world; yes, Mount Everest is what they want to see and what they want to experience climbing. When you wish to have a good tour, you should really try going to Tibet because you will really get to experience so much there because it is a really different kind of place to visit and you will really enjoy everything that you will see and everything that you will experience there so you should really take this trip.


Written by Maren Lesche on November 20, 2016 . Posted in Mobile, Trends.
Multi-platform publishing is the norm: Or more precisely, publishing on iOS and Android has become normal. 75% of today's mHealth publishers develop for both platforms. Other platforms still don't play a major role.
mHealth publishers are becoming connected: Unlike the previous years, publishers now use APIs to connect their apps to third party apps, sensors or data aggregators. Apple HealthKit is by far the most commonly used API. 58% of publisher now use APIs, compared to 42% from the previous year.
mHealth app publishers are becoming more experienced with developing: Developing an app involves using tools to develop, test, market and monitor performance. 72% of mHealth app publishers have used, for example, analytics, testing, storage or cross platform tools.
mHealth companies are getting smaller again and are losing their altruistic motive: Last year saw a wave of new market players, which are the "Garage" type of start-ups with 1–2 founders. The share of this category increased from 8% to 13% in the last year. Perhaps with this wave of new entrants, the altruistic ambition of "we do this to help others" is still prominent and unique to the mHealth market, but it gave way to "we do this to make money" as number one motivation.
It is still not a money printing business for all but a few exceptions: 78% of mHealth app publishers report to have made less than US$100,000 from their entire mHealth app portfolio business. 60% make less than US$1,000 per month / US$10,000 per year. Traditional app store revenue sources like IAP1, paid app download or IAA2 are the main income source for only 4- 10% of today's mHealth app publishers. Rather, they license technology (15%), and even offer third party development services (14%).
Health insurance companies (HIC) are expected to become a key player in the market but are currently failing to step into their expected role: The majority (85%) of companies in the market assume that patients would be willing to share their health data with HICs in return for a cheaper plan, health recommendations or research purposes. Only 17% of mHealth practitioners rate the app portfolio of health insurance companies to be above average in quality.
The mHealth app market is a growth market: The revenues coming from mHealth app related services will grow by 15% (CAGR) to reach US$31B in 2020. 551M users will by then actively (at least once a month) make use of an mHealth app.
Integration of mHealth apps into the healthcare system will slowly evolve over the next five years: mHealth practioners foresee that app stores will be the main distribution channel for mHealth apps in the next years. The importance of other channels as an indication for the degree to which doctors, hospital and pharmacies are expected to integrate into the system, has declined again since the last study. It will remain a consumer and patient driven market for the foreseeable future. Business potential will continue to grow.
Reducing hospital readmission rates and non-adherence to treatment costs remained as the most important cost levers for mHealth apps to pull on over the next five years: Similar to last year's study results, more than 60% of market players believe that the greatest cost saving benefit to come from mHealth apps will be noted in reducing hospital costs. This will be due to decreasing hospital readmission rates and length of stay, as well as assisting with patient compliance to medication plans. The perceived future impact that mHealth apps will have on reducing medical trial costs have dropped by -4pp.


The Broil King Premium Rotisserie Kit Mains is a 100.3 cm universal rotisserie kit including a motor with an on/off switch, heavy duty spit forks, counter balancing kit, spit rod and universal brackets so that it will fit all Broil King grills.
Includes heavy duty spit forks, counter balancing kit, spit rod, and universal/OEM brackets for Broil King, Broil-Mate, Sterling and GrillPro grills.
There are currently no reviews for this product Click here to add your review to be the first to review the Broil King Premium Rotisserie Kit Mains.


Description: This poster is a homage to Umeå, a city in Northern Sweden and a home to the Umeå University. It is a growing city with a lot of beautiful nature and modern architecture. In the picture you can see animals from the north of Sweden; a reindeer, an owl, a bear and a wolf. These Nordic animals are gathered in front of the Nydalasjön or lake Nydala, the large lake in Umeå which students regularly visit to see the northern lights, to barbecue and to arrange outdoor activities. Behind the animals is the Bräntberget, the big hill in Umeå where people can ski and sledge during the winter. The poster symbolizes the nature and the sense of community Umeå offers. It is a must have for every inhabitant and exchange student.


text:
dft, leaders in film scanning technology for over 75 years, has appointed Aaron Taylor, as Managing Director.
Based at head office in Darmstadt, Germany, Aaron will oversee the development, production and distribution of the high-end film scanning technology for which dft is renowned, and will be working with the management team to develop its commercial product range and infrastructure that can be sustained for many years to come.
Aaron joins the company from DITABIS (Digital Biomedical Imaging Systems), where as Managing Director, he was responsible for the development and production of specialist medical and laboratory instrumentation, and prior to that as Chief Technology Officer at consumer electronics firm, TrekStor.
Aaron said: "dft is highly regarded throughout the industry and I am delighted to have been given the opportunity to be a part of it."
Sai Prasad, owner of the Prasad Corporation, and dft's parent company said: "Aaron has a wealth of experience in the development and manufacture of highly technical and specialist instrumentation, and we are confident that his expertise will be invaluable in bolstering our team."
dft (Digital Film Technology) has been at the forefront of film scanning technology for over 75 years, supplying the film post production market with a range of high quality, leading edge products and services. With a reputation for quality, dft is head quartered in Germany and has a network of sales, service and support centres worldwide.
dft is a subsidiary of the Prasad Corporation Ltd, India.
For more information and press inquiries, contact simonc@prasadgroup.org.


Caregivers need to be sure the one they care for (their Careé) has basic needs met: enough rest, healthy diet, medical care, physical exercise, and social stimulation. But, there is a lot more to Caregiving than what amounts to basic babysitting.
Caregivers are also advocates. It's a big part of the job, and only gets bigger as your Careé's health declines and more care is required. It's easier if you start out gradually, "learn the ropes," and figure out what's needed and when. But when it comes to push and shove, Caregivers make the rules, set the policy, oversee care.
Caregivers advocating for someone at home work with their medical team, social workers, and their home-care team. All of this requires a lot of juggling of personal and caregiving time and responsibility, especially if you are still working outside of the home. It also means you are likely to be short on rest, and therefore, short of temper. Somebody helps out during your work day, but when you get home, you may be tired, grouchy, and probably not excited about making dinner or watching some silly TV show to keep your Careé company. If your Careé is a night owl, as are many suffering from dementia, you won't get enough sleep. If they are ill or you have to get up frequently to deal with pain, sufficient rest is illusive. A respite stint in a facility starts to look attractive.
Caregivers advocating for someone in a care facility, are still not off the Caregiving hook, however. Whether a short respite stay or a long-term care placement, you must watch out for quantity and quality of care—except that you have less control over both. The facility has a staff, yes, but it also has a lot more patients than just your Careé. Thus, 1:1 hands-on care will not be at the level or consistency you provide at home. So your job doubles; you are both Caregiver and watchdog.
Caregivers opting for respite care (generally a week long to provide you with a brief "respite" from Caregiving) experience relief (from what can be overwhelming responsibility), then guilt (from feeling relieved), and anxiety (that proper care is not being given). If you are at that stage of Caregiving, and you choose to take advantage of respite care (in many cases paid for by insurance), get out, get away, and go someplace (vacation, family visit) where you cannot be running back and forth to the facility—which defeats the purpose of respite. And, accept that you will feel guilty when you return, because respite (and the freedom it gave you) is over. You are back at the same situation that warranted respite in the first place.
Caregivers who must make the hard decision to place their Careé in a long-term care facility now have three roles: primary Caregiver, advocate, and grief counselor for themselves and their Careé. Your Careé is not coming home again. This is, perhaps, the toughest time of all, and it is where I am today. My husband's diagnosis makes it impossible for me to care for him at home any longer. (We both wound up in the hospital.) I have to relinquish some of his direct care to others, and not just on a daily basis (as we had done at home), but 24/7. No matter how frequently I visit, or how often my private-pay CNAs go there to help out, my role now is more advocate and less hands-on Caregiver. I'm carrying an even larger load now that I am an advocate as well as a Caregiver.
Kathryn R Burke is the author of The Caregiver's Journey, Navigating the Path and The Caregiver's Journey, Building Your Care Team. Both books are available at caregiver-journey.com, which also lists current speaking engagements and book signings.
and search for a cure.
Caregiver's Journey, Navigating the Path, Caregiver's Journey, Building Your Care Team and Caregiver's Cookbook are Copyright © Kathryn R. Burke and San Juan Publishing. All books sold on this website are from San Juan Publishing. No part of the titles, books, or contents of the website may be reproduced by any means, or shared by E-mail, Social Media, or other digital or print formats without written permission of the author and the publisher.
Website design San Juan Publishing Group, Inc.
Is it Alzheimer's or Lewy Body?
The Stress Response—good or bad?


The true History of mankind will be written only when Albanians participate in its writing.
— In TIME, 6 October 1952.
Journalism is the first draft of History.
— For my part, I consider that it will be found much better by all Parties to leave the past to history, especially as I propose to write that history.
History will judge us by the difference we make in the everyday lives of children.
In the History of the world there have been thousands of kings and emperors who called themselves "their highnesses," "their majesties," and "their exalted majesties" and so on. They shone for a brief moment , and as quickly disappeared. But Ashoka shines and shines brightly like a bright star , even unto this day.
Narrator: [ introducing Baldrick ] The other was the sole descendant of an unfortunate meeting between a pig-farmer and a bearded lady. History has, quite rightly, forgotten his name.
— 1954 The Fellowship of the Ring, foreword.
The Albanians have hacked their way through History, sword in hand.
Don't you see that the appalling History of sectarianism, persecution, heresy hunting, shows you that this way of thinking about the world is intrinsically unsound?
— Thomas Hobbes, cited in Jonathan Miller. (2004). A Brief History of Disbelief [TV-Series]. BBC Four.


text:
Valeriu grew up in poverty and was discriminated against because he was Roma. The Roma people are an ethnic group that has lived in Europe for almost a thousand years, but they have always been the continent's poorest and most discriminated minority.
Valeriu has been fighting for over 20 years to tackle discrimination and racism, and to protect the rights of all children living in poverty. In 2010, he began working to help children and their families in Europe's poorest and most dangerous district for children – the Ferentari ghetto in Bucharest, which has been forgotten by the rest of the world.
When Valeriu started a club for children in the ghetto, hardly any children were attending school there. Children and young people were dying every month of malnutrition, abuse, drug overdoses and suicide. The Alternative Education Club became the focus of efforts that helped change the lives of some of Europe's poorest children.
Today, hundreds of children get help every year through Valeriu, his friends and network to cope with school, learn about their rights and get support to develop and live a good life. The poorest children are given shoes, clothes and sometimes food. Children who take drugs and/or are exploited and forced to sell drugs and/or sex are given support to leave that life behind and have the childhood to which they are entitled. Valeriu also fights for better laws and systems that protect children from violence, discrimination and hate crimes, and strengthens their rights and opportunities.
Valeriu grows up
Valeriu grew up in the countryside in an area where everyone was different, yet they managed to get along.
What does Valeriu do?
One weekend, Valeriu walks quickly through the Ferentari ghetto.
Cleaning up football
When Valeriu launched a campaign against racism in football, hate crime cases dropped from 80 a week to zero! .
The children of ghost alley
Toto, 10, skilfully picks his way between the piles of rubbish on the street and jumps over puddles and broken bottles.
Theatre for life
When Toto and his friends premiered his new play at Romania's biggest annual theatre festival, people stood up in the auditorium and applaud.
We love the Education club
When Valeriu started a club for children in the ghetto, hardly any children were attending school there.
There aren't many places to play in Ferentari.
Enslaved for 500 years
The Roma migrated out of India to Europe nearly 1,000 years ago.


We are partnering with Hopewell School District in a toy drive to help children and families in need this Christmas Season.
There is a Christmas tree in the back of the sanctuary with 20 tags on it. If you would like to participate, take a tag from the tree and then sign your name on the sign up sheet for the corresponding tag.
The tags have gift ideas on them. Please do not wrap the gifts, just put them in a box or bag and attach the tag. Return your gift to the church by Sunday, December 9. Feel free to partner with someone, if you are not able to provide all the items on the tag. You can contact Nadine Duncan at 412-973-4574 or any of the Deacons, if you have any questions.


Orthodontics, or more commonly known as "braces", is a great way to create a remarkable smile. The proper alignment of your teeth and jaws through orthodontics can also help improve the functionality of your teeth and limit other oral health problems.. Having properly aligned teeth will improve your overall health and well-being, giving you more self-confidence.
We strongly believe that orthodontic treatment should be customized to the individual needs of each patient. Whether you are 7 years old or 70, whether you want the most esthetic braces, the most comfortable braces, the fastest braces or the most budget-friendly braces – our orthodontists will educate you about your orthodontic needs and inform you about your different treatment options so that you can do what's best for you and your family. Our Regina orthodontics team are here to help so take advantage of us!
Southland Dental offers orthodontic treatments including braces, retainers/appliances (removable or non-removable), and Invisalign removable aligners.
Gone are the days when the only way to get a beautiful smile was a mouth full of metal! Invisalign has been used to treat over 3,000,000 patients worldwide. Our dentists believe that Invisalign clear aligners are the future of braces as they are comfortable, discreet, and effective! What more could you ask for? As Invisalign provider, our dentists can customize your Invisalign treatment to allow you to quickly and precisely attain that beautiful smile you've always dreamt of. Learn more about Invisalign in Regina.
Perfect for: Teenagers, adults or those who previously had braces.
Today's metal braces are smaller, cleaner, and more efficient than ever. We use the latest generation self-ligating braces which can align teeth faster than the big, bulky traditional braces your parents and grandparents had. Self-ligating braces are an efficient and cost-effective option to straighten teeth. Orthodontist Regina.
Perfect for: Children and teenagers.
Ditch the metal and go for clear braces made out of glass!
Did you know braces aren't only made out of metal? We can straighten your teeth just as effectively with see-through ceramic braces that are made out of glass. Let's achieve that beautiful smile you've always wanted without compromising on aesthetics.
Perfect for: Teenagers and adults.


University of California - Davis has not published data about when 2017 graduates obtained jobs.
University of California - Davis has not published data about how 2017 graduates found jobs.
University of California - Davis has not published data about whether its employed 2017 graduates are still looking for a job despite already having one.
University of California - Davis has these data readily available on its school-specific NALP Report, and the school has refused and/or ignored multiple requests to make this report public, as the majority of law schools have done.


text:
Central America & Mexico
Everyday Actions
Find the Frog
Green Vacations
School Curricula
Kids Games & Activities
Marketing Sustainability
Tailored Supply Chain Services
See the positive change our work is making around the world.
There are many ways you can protect rainforests, fight climate change, and help people and wildlife thrive.
EXPLORE YOUR GIVING OPTIONS
#FollowTheFrog
Transform your business practices
What Our Seal Means
The Rainforest Alliance certification seal means that the product (or a specified ingredient) was produced by farmers, foresters, and/or companies working together to create a world where people and nature thrive in harmony.
Gorilla beringei beringei
Photo credit: iStock
Mountain gorillas are the largest living primates on earth! Males can stand 6 feet tall and weigh up to 400 pounds, and females can reach 5 feet tall and weigh up to 215 pounds. Mountain gorillas have muscular arms, a broad chest, large hands and feet, a black coat and features that resemble those of a human being. They can move on their two feet, on all four of their limbs and can also climb trees and even swing from branches. Mountain gorillas, along with chimpanzees, orangutan, and bonobos, are the closest living relatives of humans, with mountain gorillas having the most developed brain of the four.
Forests are home to 80 percent of Earth's terrestrial biodiversity! We're preserving habitats for endangered species, conserving wildlife corridors, and saving breeding grounds. Please join our alliance to keep forests standing:
Yes, I agree to receive occasional emails from the Rainforest Alliance.
Mountain gorillas live primarily on the lush mountain sides of central Africa where, for many years, extensive human violence has destroyed the local environment, and consequently negatively impacted the lives of these primates. Today, mountain gorillas mostly live in national parks in Rwanda, Uganda and the Democratic Republic of Congo. Mountain gorillas live in groups of roughly 30, with one dominant, male troop leader called a 'silverback' for the silver tint in his coat. The dominant silverback is in charge of coordinating when the troop eats, rests and moves around the group's home range, and the rest of the group is organized in a complex, evolved social order that points to mountain gorilla's extraordinary intelligence.
Mountain gorillas are primarily herbivores and they eat large portions of over 100 different kinds of plants. They do not drink much water because they get most of their needed hydration from their constant consumption of plants.
The mountainside forests where mountain gorillas live are extremely rich in biodiversity, making them an ideal place to grow crops. This has led to extensive habitat loss and exposure to human violence and disease, both of which have a negative, and sometimes deadly, effect on these close cousins of human beings. Decades of war and civil unrest in Rwanda and the Democratic Republic of Congo have sent both refugees and rebels into the Virunga Mountains region, which is home to more than half of the mountain gorilla population. Due to these factors, a few decades ago, mountain gorillas seemed doomed to extinction. However conservation efforts over the last several years has brought hope to the future of these incredible creatures, though they continue to be critically endangered.
In captivity, mountain gorillas have been able to learn basic sign language!
African Wildlife Foundation
World Wild Life
IUCN Red List of Threatened Species
Environmental Curriculum for Schools
Help Conserve Forests And Restore Balance To Our Planet
Make your gift go further (and greener) with a monthly pledge
Conservation Status Critically Endangered
Fact Mountain gorillas are the largest living primates on earth
Black Howler Monkey
Amazon River Dolphin
Help us rebalance the planet
See how we measure our impacts
Use our conservation curricula in your classroom
The Rainforest Alliance is a 501(c)(3) Nonprofit registered in the US under EIN: 13-3377893.
In 2021, 77% of our income supported sustainability programs. Learn More »
Sign up for business updates or general updates
Certification Documents
© Copyright 1987 - 2023, Rainforest Alliance | Privacy Policy | Cookie Policy


1999 -- TO ALL SHIPMATES AND FAMILIES.
Jules has a lot planned and this reunion promises to be a great time !!
has saved our group a lot of money.
Marlboro,MA. Check it out: http://www.world-std.com/-ecrowley/cpc/cecil.html.
Hope to see you all at the reunion!
** Please make hotel reservations ASAP to insure rooms are available.


text:
use std::error::{FromError, Error};
use std::fmt;
use std::old_io::IoError;
use std::old_io::process::{ProcessOutput, ProcessExit, ExitStatus, ExitSignal};
use std::str;

use semver;
use rustc_serialize::json;

use curl;
use git2;
use toml;
use url;

pub type CargoResult<T> = Result<T, Box<CargoError>>;

// =============================================================================
// CargoError trait

pub trait CargoError: Error + Send {
    fn is_human(&self) -> bool { false }
    fn cargo_cause(&self) -> Option<&CargoError>{ None }
}

impl fmt::Debug for Box<CargoError> {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        fmt::Display::fmt(self, f)
    }
}

impl Error for Box<CargoError> {
    fn description(&self) -> &str { (**self).description() }
    fn cause(&self) -> Option<&Error> { (**self).cause() }
}

impl CargoError for Box<CargoError> {
    fn is_human(&self) -> bool { (**self).is_human() }
    fn cargo_cause(&self) -> Option<&CargoError> { (**self).cargo_cause() }
}

// =============================================================================
// Chaining errors

pub trait ChainError<T> {
    fn chain_error<E, F>(self, callback: F) -> CargoResult<T>
                         where E: CargoError, F: FnOnce() -> E;
}

struct ChainedError<E> {
    error: E,
    cause: Box<CargoError>,
}

impl<'a, T, F> ChainError<T> for F where F: FnOnce() -> CargoResult<T> {
    fn chain_error<E, C>(self, callback: C) -> CargoResult<T>
                         where E: CargoError, C: FnOnce() -> E {
        self().chain_error(callback)
    }
}

impl<T, E: CargoError> ChainError<T> for Result<T, E> {
    fn chain_error<E2, C>(self, callback: C) -> CargoResult<T>
                         where E2: CargoError, C: FnOnce() -> E2 {
        self.map_err(move |err| {
            Box::new(ChainedError {
                error: callback(),
                cause: Box::new(err),
            }) as Box<CargoError>
        })
    }
}

impl<T> ChainError<T> for Option<T> {
    fn chain_error<E, C>(self, callback: C) -> CargoResult<T>
                         where E: CargoError, C: FnOnce() -> E {
        match self {
            Some(t) => Ok(t),
            None => Err(Box::new(callback()) as Box<CargoError>),
        }
    }
}

impl<E: Error> Error for ChainedError<E> {
    fn description(&self) -> &str { self.error.description() }
}

impl<E: fmt::Display> fmt::Display for ChainedError<E> {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        fmt::Display::fmt(&self.error, f)
    }
}

impl<E: CargoError> CargoError for ChainedError<E> {
    fn is_human(&self) -> bool { self.error.is_human() }
    fn cargo_cause(&self) -> Option<&CargoError> { Some(&*self.cause) }
}

// =============================================================================
// Process errors

pub struct ProcessError {
    pub desc: String,
    pub exit: Option<ProcessExit>,
    pub output: Option<ProcessOutput>,
    cause: Option<IoError>,
}

impl Error for ProcessError {
    fn description(&self) -> &str { &self.desc }
    fn cause(&self) -> Option<&Error> {
        self.cause.as_ref().map(|s| s as &Error)
    }
}

impl fmt::Display for ProcessError {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        fmt::Display::fmt(&self.desc, f)
    }
}
impl fmt::Debug for ProcessError {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        fmt::Display::fmt(self, f)
    }
}

// =============================================================================
// Concrete errors

struct ConcreteCargoError {
    description: String,
    detail: Option<String>,
    cause: Option<Box<Error+Send>>,
    is_human: bool,
}

impl fmt::Display for ConcreteCargoError {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        try!(write!(f, "{}", self.description));
        if let Some(ref s) = self.detail {
            try!(write!(f, " ({})", s));
        }
        Ok(())
    }
}
impl fmt::Debug for ConcreteCargoError {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        fmt::Display::fmt(self, f)
    }
}

impl Error for ConcreteCargoError {
    fn description(&self) -> &str { &self.description }
    fn cause(&self) -> Option<&Error> {
        self.cause.as_ref().map(|c| {
            let e: &Error = &**c; e
        })
    }
}

impl CargoError for ConcreteCargoError {
    fn is_human(&self) -> bool {
        self.is_human
    }
}

// =============================================================================
// Human errors

pub struct Human<E>(pub E);

impl<E: Error> Error for Human<E> {
    fn description(&self) -> &str { self.0.description() }
    fn cause(&self) -> Option<&Error> { self.0.cause() }
}

impl<E: fmt::Display> fmt::Display for Human<E> {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        fmt::Display::fmt(&self.0, f)
    }
}

impl<E: CargoError> CargoError for Human<E> {
    fn is_human(&self) -> bool { true }
    fn cargo_cause(&self) -> Option<&CargoError> { self.0.cargo_cause() }
}

// =============================================================================
// CLI errors

pub type CliResult<T> = Result<T, CliError>;

#[derive(Debug)]
pub struct CliError {
    pub error: Box<CargoError>,
    pub unknown: bool,
    pub exit_code: i32
}

impl Error for CliError {
    fn description(&self) -> &str { self.error.description() }
    fn cause(&self) -> Option<&Error> { self.error.cause() }
}

impl fmt::Display for CliError {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        fmt::Display::fmt(&self.error, f)
    }
}

impl CliError {
    pub fn new(error: &str, code: i32) -> CliError {
        let error = human(error.to_string());
        CliError::from_boxed(error, code)
    }

    pub fn from_error<E: CargoError + 'static>(error: E, code: i32) -> CliError {
        let error = Box::new(error) as Box<CargoError>;
        CliError::from_boxed(error, code)
    }

    pub fn from_boxed(error: Box<CargoError>, code: i32) -> CliError {
        let human = error.is_human();
        CliError { error: error, exit_code: code, unknown: !human }
    }
}

impl FromError<Box<CargoError>> for CliError {
    fn from_error(err: Box<CargoError>) -> CliError {
        CliError::from_boxed(err, 101)
    }
}

// =============================================================================
// various impls

macro_rules! from_error {
    ($($p:ty,)*) => (
        $(impl FromError<$p> for Box<CargoError> {
            fn from_error(t: $p) -> Box<CargoError> { Box::new(t) }
        })*
    )
}

from_error! {
    semver::ReqParseError,
    IoError,
    ProcessError,
    git2::Error,
    json::DecoderError,
    curl::ErrCode,
    CliError,
    toml::Error,
    url::ParseError,
    toml::DecodeError,
}

impl<E: CargoError> FromError<Human<E>> for Box<CargoError> {
    fn from_error(t: Human<E>) -> Box<CargoError> { Box::new(t) }
}

impl CargoError for semver::ReqParseError {}
impl CargoError for IoError {}
impl CargoError for git2::Error {}
impl CargoError for json::DecoderError {}
impl CargoError for curl::ErrCode {}
impl CargoError for ProcessError {}
impl CargoError for CliError {}
impl CargoError for toml::Error {}
impl CargoError for toml::DecodeError {}
impl CargoError for url::ParseError {}
impl CargoError for str::Utf8Error {}

// =============================================================================
// Construction helpers

pub fn process_error(msg: &str,
                     cause: Option<IoError>,
                     status: Option<&ProcessExit>,
                     output: Option<&ProcessOutput>) -> ProcessError {
    let exit = match status {
        Some(&ExitStatus(i)) | Some(&ExitSignal(i)) => i.to_string(),
        None => "never executed".to_string(),
    };
    let mut desc = format!("{} (status={})", &msg, exit);

    if let Some(out) = output {
        match str::from_utf8(&out.output) {
            Ok(s) if s.trim().len() > 0 => {
                desc.push_str("\n--- stdout\n");
                desc.push_str(s);
            }
            Ok(..) | Err(..) => {}
        }
        match str::from_utf8(&out.error) {
            Ok(s) if s.trim().len() > 0 => {
                desc.push_str("\n--- stderr\n");
                desc.push_str(s);
            }
            Ok(..) | Err(..) => {}
        }
    }

    ProcessError {
        desc: desc,
        exit: status.map(|a| a.clone()),
        output: output.map(|a| a.clone()),
        cause: cause,
    }
}

pub fn internal_error(error: &str, detail: &str) -> Box<CargoError> {
    Box::new(ConcreteCargoError {
        description: error.to_string(),
        detail: Some(detail.to_string()),
        cause: None,
        is_human: false
    })
}

pub fn internal<S: fmt::Display>(error: S) -> Box<CargoError> {
    Box::new(ConcreteCargoError {
        description: error.to_string(),
        detail: None,
        cause: None,
        is_human: false
    })
}

pub fn human<S: fmt::Display>(error: S) -> Box<CargoError> {
    Box::new(ConcreteCargoError {
        description: error.to_string(),
        detail: None,
        cause: None,
        is_human: true
    })
}

pub fn caused_human<S: fmt::Display, E: Error + Send>(error: S, cause: E) -> Box<CargoError> {
    Box::new(ConcreteCargoError {
        description: error.to_string(),
        detail: None,
        cause: Some(Box::new(cause) as Box<Error + Send>),
        is_human: true
    })
}

redpajama_set_name: RedPajamaGithub