text:
Concept: California's cybersecurity company Seclore has rolled out its data-centric security platform (DCSP) that enables organizations to discover, classify, protect, and track enterprise data both within and outside the organization's boundaries. Seclore claims that the new DCSP enables enterprises to shift their security posture from infrastructure to data.
Nature of Disruption: DCSP enables organizations to unify data-centric security solutions with existing enterprise systems to address limitations in various data protection point solutions. Its framework automates the protection of documents as they are discovered, classified, downloaded, and shared ensuring that sensitive information is consistently protected without impacting collaboration workflow. The platform removes imitations of point solutions including data loss protection, cloud access security broker, data classification, and rights management to ensure complete protection, tracking, and revocation of access to sensitive data. It simplifies operations by leveraging enterprise content management, file shares, email, enterprise file synchronization and sharing, and enterprise resource planning (ERP) to protect documents automatically. The platform can also help enterprises to solve data privacy issues. It also provides cloud data security that protects the data as it travels through various public cloud systems without solely relying on the cloud service provider's security posture.
Outlook: The rapidly shifting workplace environment increases the risk of data breaches. Also, a remote working environment requires sharing of data through various cloud platforms which can increase the risk of data security. Seclore claims its DCSP enables enterprises to secure their crucial data sets as it moves across the workflow value chain. In May 2022, the company raised $27 million in a Series C funding round. Seclore aims to use the funding to expand the geographic presence of the company and expand its headcount globally.
This article was originally published in Verdict.co.uk


text:
Importing Files in Other Formats
Benefits of importing files in other formats into Microsoft Word 2010:
- If the object is too complicated to be created directly in Word, such as an equation for example, it can still be included in the document, even though it was created in a different program.
- Rather than referring a reader to an external source, file, or object, you can embed all or parts of that file directly into your document.
Embedding Images in Your Document
- Put your cursor at the desired location in your document where you would like to insert an image.
- From the Insert tab, select Picture.
- An Insert Picture window opens. Browse for the image on your PC.
- When you have finished browsing, select OK. The image should now appear at the desired location in your document.
Embedding Other Files Formats into Your Document
The instructions below are for non-media content-type files only. If you have media that you would like to embed into your document, such as a sound or video clip, contact _EMAIL_ for assistance in streaming these files via the ATCís media server.
- Put your cursor at the desired location in your document where you would like to insert an object.
- From the Insert tab, select Object.
- Select the Create from File tab and Browse for your file on your local PC.
- Select the Link to file checkbox so that the file contents appear directly in your file.
- When you have finished, select OK. The file contents appears at the desired location in your document.
Examples of Supported File Formats
- Picture files including JPEG, GIF & BMP
- Microsoft Excel spreadsheets
- Microsoft PowerPoint slides
- Adobe PDF documents
Why canít I insert a sound or video clip into my document?
Typically, sound and video file sizes are too large for Microsoft Word to embed directly in the file. Instead, shortcuts are embedded, linking to the original file on the authorís PC. If you attempt to upload your document to myWPI, it will upload without the linked files and readers will not be able to play the sound or video clip. The ATC can assist you with embedding multimedia that is stored on a streaming media server. Instead of shortcuts to a directory, the shortcut will be to a web link, which any user can play with an Internet connection.Maintained by _EMAIL_
Last modified: Jun 24, 2011, 12:45 EDT

source: HuggingFaceFW/fineweb-edu


text:
PublicaHier finden Sie wissenschaftliche Publikationen aus den Fraunhofer-Instituten.
Synchrotron radiography and tomography of water transport in perforated gas diffusion media
Water transport in gas diffusion media (GDM) is investigated by synchrotron radiography and tomography. It is demonstrated that micro porous layer (MPL) cracks improve the water management in polymer electrolyte membrane (PEM) fuel cells. A further treatment by means of laser perforation is expected to enhance this effect. The radiography analysis reveals that water transport is practically not influenced by perforations applied only to the MPL. In contrast, perforations through the whole GDM (including the MPL) have a strong influence on the overall water transport behavior and are therefore considered for a deeper analysis. Performance measurements show a correlation between the perforation size and the fuel cell power density. An optimum is found for a perforation diameter of 60 m. Synchrotron tomography analysis reveals that this optimum is due to an improved draining effect on the area around the perforation. Moreover, SEM and EDX analysis show a loss of PTFE on th e GDM surface in the vicinity of the perforation due to the laser processing. The tomography images reveal water accumulations in this area that can be explained by the hydrophilic surface.

source: openbmb/Ultra-FineWeb


text:
SplitterContainer control with a fixed panel is resized due to the DPI setting, the
SplitterDistance value is not changed. This may result in the fixed panel appearing either too small or too large, depending on whether the DPI setting was increased or decreased.
For example, a Form with
AutoScaleMode set to
ScaleMode.DPI, and a
FixedPanel set to
SplitterDistance set to 140 appears as follows at it's native DPI (100%):
This is how it appears when run at a higher DPI (125%):
All the controls were resized, but
SplitterDistance was left unchanged at 140.
Note that this is only a problem when
SplitterContainer.FixedPanel is set to
Panel2. If it was set to
SplitterDistance would be adjusted to match the resizing.
The solution to adjust
SplitterDistance during the
Form.Shown event handler. The resizing does not work properly if performed in the constructor or the
Form.Load event handler.
Using the code
Include the following code snippet in your Form-derived class:
private SizeF scale = new SizeF(1.0f, 1.0f);
protected override void ScaleControl(SizeF factor, BoundsSpecified specified)
scale = new SizeF(scale.Width * factor.Width, scale.Height * factor.Height);
private void Fix(Control c)
foreach (Control child in c.Controls)
if (child is SplitContainer)
SplitContainer sp = (SplitContainer)child;
private void Fix(SplitContainer sp)
float sc = (sp.Orientation == Orientation.Vertical)? scale.Width : scale.Height;
if (sp.FixedPanel == FixedPanel.Panel1)
sp.SplitterDistance = (int)Math.Round((float)sp.SplitterDistance * sc);
else if (sp.FixedPanel == FixedPanel.Panel2)
int cs = (sp.Orientation == Orientation.Vertical)? sp.Panel2.ClientSize.Width :sp.Panel2.ClientSize.Height;
int newcs = (int)((float)cs * sc);
sp.SplitterDistance -= (newcs - cs);
Remember to call
Fix(this) from the Form's
Shown event handler. For Example:
private void Form1_Shown(object sender, EventArgs e)
Points of Interest
I am puzzled as to why the SplitterDistance values must be adjusted during the
event handler, and not during
Form.Load or the constructor. If anyone can explain this, please leave a comment.
- June 14, 2014 - First release.


Well, it sucks but it's true. There's a bunch of noise on the Internet about how to do unique constraints in Google App Engine, but it seems like these are the only two safe ways. The thing to remember is, the only uniqueness that GAE will guarantee is on key names.
Approach #1: Make the unique field be the key name
As long as you promise to yourself that you'll never need to change the value, then you should make the unique field be the "key name" in the table. Then you can call db.Model.get_or_insert(key_name) to either retrieve an existing one or create a new one. Too bad in the real world, it's really hard to find something like this. Email addresses never change? Let me check my hotmail account. Social security numbers never change? Well, unless there was a typo. Every time I think I found a unique field that can never change, I'm proven wrong. So you'll never catch me doing this. But YMMV.
Approach #2: Create a separate table to track all used ids
This is pretty slick -- I found it in this article: Add a Unique Constraint to Google App Engine. The approach is to create a new table called Unique, and make the "key name" of each row in Unique be a combination of the name of the table and the unique field value. The downside is that you have extra storage overhead: a new table with the list of unique fields, plus the default indices that GAE makes for it. This is fairly analogous to declaring a unique index in SQL databases, since a unique SQL index is merely a persisted list of unique fields. There's just less overhead in a SQL database implementation because it's only one list, whereas in GAE this user-generated unique index is really one list (for the table) plus the default indices GAE makes for any entity.
I must say that Google is aware of this issue. It looks like they'd have to make some major architectural changes to implement this. My guess is if they ever fix this, they'll sneak in approach #2, above their BigTable support and below the API that us users use.
comments powered by Disqus


The use of ecodye requires significantly less resources in terms of water, time and energy consumption while at the same time reducing CO2 emissions and protecting the environment. Textilcolor and Schoeller Technologies emphasize innovation in terms of performance and sustainability. ecodye only contains bluesign® approved components. Properly applied, it allows production with a minimum impact on humans and to the environment.
bluesign approved
CO2 -Footprint
ecodye: 2 for 1 principle
Dyeing 2 tons of textiles with ecodye saves 1 ton of CO2 emissions.
Reduce your carbon footprint by using ecodye auxiliary concept. A conventional dyeing process of 2 tons of textiles causes approximately 3.6 tons of CO2 emissions. The use of ecodye reduces your CO2 emissions dramatically up to 26 % (almost 1 ton). This auxiliary concept accelerates the dyeing process of polyester yarns and piece goods, thereby saving CO2 emissions, water and time.
ecodye trials – CO2 footprint calculation
fussabdruck kalkulation en
Calculation base:
 - Country: Taiwan
 - Heating medium: Brown coal
 - Water: Taken from river, cleaned with a 3 step ETP process
 - Material: 100 % polyester
Considering a ratio of 1:12 the CO2 footprint calculation shows a significant reduction of CO2 emissions of 26.1% when using ecodye. This result corresponds to savings of almost 0.5 ton CO2 emissions per ton of textiles.
Carbon footprint comparison
fussabdruck vergleich en
Furthermore, with the help of ecodye, water consumption can be dramatically decreased from 34 to only 23 litres per kilogram textile while dying time is accelerated by almost 50%.


text:
Location: Northern Greece, Macedonia
The vardar is a cold northwesterly wind blowing from the mountains down to the valleys of Macedonia. A type of ravine wind, enhanced by a channelling effect while blowing down through the Moravia-Vardar gap, bringing cold conditions from the north to the Thessaloniki area of Greece. Most frequent during winter, it is blowing in the rear of a depression when atmospheric pressure over eastern Europe is higher than over the Aegean Sea. In general, the vardar is similar to the mistral wind.
A strong vardar event occured on January 12 and 13, 2003. Compare the significant drop in maximum temperature by 17°C (from 19C down to 2C) with the darstic jump in prevailing wind direction from easterly to northerly and northwesterly, and the wind speed and peak gusts during this time period recorded at Thessaloniki.


Plan recovery into your training programme
Training is not all about putting in the miles. Recovery is an important part of training and is the time when our bodies adapt to the training stimulus we have given them. We overload the body during a weeks training, during a session or during an effort. We then have to give the body time to recover and during this time it repairs and rebuilds itself and makes itself stronger. This is how training works. If we were to train continuously and not recover sufficiently we would not improve and would probably break down. Training schedules should factor recovery.


text:
Last Updated: June 18, 2016
KompoZer Padding Tutorial shows you how to add padding to your website. This tutorial also shows you how to add a HTML paragraph tag to align the text.
Latest News: I have added another link to the menu below.
In this lesson you will learn how to add padding and set up a HTML tag. When you write online you normally assign the tag to paragraphs and you align the text in between.
KompoZer Padding Tutorial Steps
Step 1 ) The following image Css Stylesheets -> Box tab shows you to set up the Padding's options.
- Width = changed to 680px (This value had to be adjusted because of the following 5px padding.)
- padding-right: 5px;
- padding-left: 5px;
Step 1-1 ) The following image shows you the Style rule for _TAG_ id.
Step 2 ) Click on the CSS Editor icon to create a paragraph rule. The following image CSS Stylesheets shows you what you need to select to create a paragraph rule.
In this example I selected style applied to all elements of type. In the drop down menu I selected p (Paragraph) type.
Step 3 ) The following image CSS Stylesheet -> General shows you the new P element added with the CSS code. This element works in the same manner as an id.
What this means is as follow, from now on when ever you add a paragraph to your website it will be formatted according to the following CSS style.
P css style code:
Step 4 ) The following image illustrates the 5px padding added to the div tag. You can see the 5px gap between the border and the words.
Note: You can add this padding to all the other div tags by following the same instructions as above.
Step 5 ) The following image shows you the final results with padding and paragraphs aligned to the left. Notice how I added some dummy text for you to view the results. The template is starting to take shape.
Click on the following URL Right Sidebar Style to continue.


With me, with you
– The word in Marshallese for 'with' is 'ippān.' However, it changes when you say 'with me,' 'with you,' etc.:
ippa with me
ippaṃ with you (singular)
ippān with him or with her or with it
ippān Dan with Dan
ippān Greg im Brian with Greg and Brian
ippād with us (inclusive)
ippām with us (exclusive)
ippāmi with you (plural)
ippāer with them
(You might notice that these words bare a resemblance to 'my,' 'your,' etc. in the last lesson. This is not a coincidence. If you want to know why see Lessons 66-71).
– If you want to say 'with' in the sense of 'using,' like in the sentence 'I hit the nail with the hammer' (as opposed to the sense of 'accompanied by,' like in the sentence 'I went to the lagoon with you'), then use 'kōn' for 'with' andkake' for 'with it.' For example:
Iaar jeje kōn pinjeḷ eo = (not Iaar jeje ippān pinjeḷ eo) I-PAST/write/with/pencil/the = I wrote with the pencil
Iaar jeje kake = (not Iaar jeje ippān) I-PAST/write/with it = I wrote with it
ṃōkaj or eṃṃōkaj (E: ṃōkaj or ṃōṃkaj) fast, on time, early
ṃōkaj ñan iien on time, on time to ___ Ex. Ṃōkaj ñan iien jikuuḷ = On time to school
nuknuk clothes
ruuṃ (from English) room, space
peen (from English) pen
pen hard (in both the physical sense and the sense of 'difficult')
pidodo easy, soft
pilawā (from English) flour, bread
pinjeḷ (from English) pencil
teeñki flashlight
wūnto (from English) window
Pronunciation Practice
The two ō's
The letter 'ō' in Marshallese actually stands for two different sounds. To hear the difference between these sounds, have a Marshallese person say these two words:
wōn 'turtle' wōn 'who?'
Notice that the first 'ō' sounds close to the 'oo' in 'book,' but the second 'ō' sounds like the 'u' in 'buck.' In the Marshallese-English Dictionary, the first sound is indicated in the phonetic transcription of a word by an 'e' with a hook under it, and the second sound is indicated by an 'e' with no hook. Here are some common words with 'ō' sorted by which sound it stands for:
Book Buck Book Buck
wōn 'turtle' wōn 'who' ṃōḷo 'cold' kiiō 'now'
wōt 'rain' wōt 'only' kōto 'wind' kōṇaan 'want'
ṃōj 'finished' elōñ 'there is' aebōj 'water' bōk 'take'
bōd 'wrong' ewōr 'there is' ṃōṇōṇō 'happy'
kōn 'about' ṃōñā 'eat' eọñōd 'to fish'
kōnke 'because' kōṃṃan 'do' ḷōmṇak 'think'
kwōle 'hungry' kōrā 'woman'
Practical Marshallese
Published by Marco Mora-Huizar
Leave a comment
Leave a Reply


Bath Time Tips For A Happy Bubby
Is there anything better than that squeaky clean baby smell? They're cuddly, they're soft and they smell like pure bliss, but getting them to that point is not always a blissful process. Bath time for little kiddies can become stressful, slippery, and teary for both baby and parents – we know from experience. Here are a few of our favourite tips to make bath time a little less slippery, less stressful and a whole lot more fun.
Keep an eye on the temperature
Tiny kiddos are not a fan of two things, the cold… and just about everything else. No one likes to get undressed and feel chilly, especially the little ones who are extra sensitive to a change in climate. To help minimise temperature changes, when the weather becomes a bit cooler, run the shower for a minute or two to allow the bathroom to steam up and warm the air. Similarly, no bubby likes getting out of the bath into cold air either, so we suggest to pump up the heat before it's time to get out and have a fluffy, warmed robe waiting for them. It sounds like you're dealing with a pre-Madonna but isn't that what the little humans are? Not yet versed in the realities of life? But, moving on…
Now, when it comes to the water, the ideal bath water temperature is the same as your child's body temperature. They're yet to experience the joys of a hot tub. The best way to check the water temperature is with your elbow. It sounds a bit weird, but your hands are used to dealing with all kinds of environments (especially once you have kids), so if you have to pull your elbow away, even just slightly, then it's too hot. And no one likes an ice bath other than Wim Hof (not sure who that is? Google him and find out why he loves the cold).
Get Resourceful, and Fun!
The house is full of fun innovative toys to make bath time more interesting. Specifically, the kitchen. You can make it rain using a strainer or colander, or even a water bottle with some holes poked through. What a crafty little bath-ty, and kids love this kind of stuff. Don't you wish you were this easily entertained? This also helps your baby/toddler adjust to the idea of a shower or bath if there's something interesting to play with or look at. Ladles, measuring cups, silicone basting brushes, and even a turkey baster are all good bath toy options too! No need to splash out on expensive bath toys. Get it? Splash out?...
Want something to spark their creative side? Try using shaving cream with a drop of food colouring makes for some very interesting bathroom tile Monets. They're easy to clean up, they keep tiny hands busy while you do the washing, and it flexes their creative muscle! Extra tip! For a more comfortable bath experience for you, put a quarter piece of pool noodle cut down the middle over the rim of the bathtub to give yourself extra comfort while you're bending and reaching over to clean your babies.
Learn, Rinse, Repeat
Using bath time as an opportunity to learn? Now that scrubs two birds with one sponge (is that the expression??). Try reading a waterproof book for some underwater storytime fun. Teach them self-care by explaining to them how to wash themselves, and only help if they ask for it as this helps give them a sense of accomplishment too! Or make bath time a learning experience and share some facts about animals, dinosaurs or the real estate market (okay maybe not that last one) with them. You'd be surprised how quickly kids soak things up, like a sponge…ok, we'll stop now. Or will we?
Party Down
Bath time can be fun for you too. So, grab some speakers and play some tunes you can all sing along to. Add different coloured glow sticks underneath the bubbles and turn the lights down low for a weeknight rave (without putting your white blood cells to work). If they're not feeling their regular Beyoncé-selves, head to Spotify and look up bedtime stories or some relaxing tones to help wind them down for the evening. There are hundreds of options, and they're a great way to entertain the wee ones, they won't even notice you've picked mushed-up banana out of their hair.
Put the Duckie Down
So, you know we're very big on health and protecting your family from the nasties of the world. Well, toys with holes in the bottom (to allow the water to come out) can harbour and breed a lot of bacteria and even mould. The bottom of those toys, more often than not (and just like everything else) end up in the little buddy's mouth. We suggest to either purchase a hot glue gun and fill in the holes so no water can get in, or stop buying those types of toys altogether. Sorry rubber duckie, you've had a good run!
Make Room
If you have older children, try using non-slip decals in different colours on either side to not only help add grip and safety for your children, but also give each child their own space to avoid fighting. For babies, using a square laundry basket in the tub gives them their tiny version of a tub where they can sit upright, and their toys are easier to reach. No one wants to hear the ear-piercing scream of a child that can't reach their toy.
Watch Out for Ingredients
A lot of commercial baby washes or baby soaps are made with cheap, synthetic detergents that can strip the skin of its natural oils, leaving it high and dry. The ones that make big bubbles can be particularly drying and harsh. Who would have thought there could be a downside to bubbles?! But babies need bubbles, and they DO NOT like it when they don't get them. So, we made our 2-in-1 Bubbly Wash natural and gentle on the skin without harsh detergents or the like of sulphates like SLS (Sodium Lauryl Sulphate). We also made it fragrance-free for even the most sensitive bubs, just for good measure.
Routine, Routine, Routine
A daily ritual can be very powerful in your child's early life experiences. By incorporating bath time into a 'getting-ready-for-bed routine', toddlers quickly develop positive associations with bathing. This can help give them a sense of warmth and security, which is essential to get them to settle down for the night.
Fresh newborns don't need to be bathed half as often (2-3 times a week) as their grubbier toddler counterparts. Regardless, we recommend sticking to consistent days and times for bathing to help set an expectation and avoid tantrums and resistance.
And there you have it, now that your bub is all squeaky clean and shiny, good luck getting them to bed! Soak up that baby smell while it lasts. If you have any life-saving tips and tricks for bath time, please comment below, we'd love to hear them!


x match ARG in BODY This analogy should be treated with caution. For one thing, our 'letrec' allowed us to define recursive functions in which the name 'x' appeared within 'ARG', but we wanted it there to be bound to the very same 'ARG'. We're not ready to deal with recursive functions in the lambda calculus yet. For another, we defined 'let' in terms of *values*: we said that the variable 'x' was bound to whatever *value* 'ARG' *evaluated to*. At this point, it's not clear what the values are in the lambda calculus. We only have expressions. (Though there was a suggestive remark earlier about some of the expressions but not others being called "value terms".) So perhaps we should translate '((\x BODY) ARG)' in purely syntactic terms, like: "let 'x' be replaced by 'ARG' in 'BODY'"? Most problematically, in the lambda calculus, an abstract such as '(\x (x x))' is perfectly well-formed and coherent, but it is not possible to write a 'let' expression that does not have an 'ARG'. That would be like: 'let x match' *missing* 'in x x' Nevertheless, the correspondence is close enough that it can guide our intuition.


text:
Elevation: 7,736 feet
Type: Gold, Silver
Discovered on June 2, 1903, by William Hill, John A. Anderson, and Bert Ferguson, and patented on August 21, 1935, the Marietta mine explores two veins: the Marietta vein, which trends slightly northeast, dips east 350 to 400 and is 2 to 2.5 ft thick, and the Metallic vein, which strikes N 450 E, 350-500 SE and is about 5 ft thick. The same veins or vein systems appear to be explored in the Irene, High Up, and Greenback mines to the northeast. They are lenticular quartz veins, with quartz boudins and free gold, auriferous pyrite, arsenopyrite, galena, sphalerite, chalcopyrite, and stibnite (?). The mine developed separate ore shoots on the two veins, with strike lengths of 300 to 350 ft, and stopes reaching 200 to 300 ft above the crosscuts and drifts on the veins. The veins were oxidized to a depth of about 300 ft. In 1938, average assays of the ore ranged from $9 Au per ton to $10.79 Au per ton. Assays of ore remaining in the mine in 1938 averaged 0.21 to 0.34 opt Au and 1.2 to 3.7 opt Ag.
The Marietta and Metallic veins were mined separately. The Marietta vein is opened by an east-to southeast-trending crosscut that intersected the vein at the 740-ft point, and drifts were run on the vein for about 460 ft north and 100 ft south. A stope about 400 ft long and 120 to 160 ft high was mined mainly above the north drift. An inclined winze about 75 ft deep was sunk on the vein near the crosscut entrance, and drifts run 140 ft on the vein at the 70-ft level.
The Metallic vein was cut in the Marietta crosscut about 160 ft beyond the Marietta vein, and drifts were run along it for 720 ft to the northeast and 690 ft to the southwest. The vein was stoped 60 to 80 ft above the northeast drift for a length of about 150 ft, and a raise extended to the surface. A winze was also sunk about 195 ft on the incline near the southwest end of the drift, and levels and stopes extended to both the northwest and the southeast on the vein at the 110-ft and 195-ft levels, totaling about 300 ft on each level. Another winze was sunk about 95 ft beneath the 195 level, but the vein at this level was not developed.
The Metallic vein also was intersected in an adit that crosscut about 100 ft to the vein. A drift was run along the vein about 270 ft to the northwest, and the vein was stoped to the surface. The total production from the Marietta mine is unknown. The mine was a significant producer from 1919 to 1922 and in the 1930s (figs. 19,20). Its last known production was in 1938. From 1935 to 1938, the mine yielded 25,332 tons of ore valued at more than $200,000. Most of this ore came from the stopes on the Metallic vein where it is cut in the Marietta crosscut, and from the stope to the surface in the Metallic adit. The total yield from the mine is probably between $400,000 and $500,000.
Source: The Gold Mines of the Virginia City Mining District, Madison County, Montana. Montana Bureau of Mines and Geology. Bulletin 133, 2004


text:
A Parabola Proof
Library Home || Primary || Math Fundamentals || Pre-Algebra ||
Algebra || Geometry || Discrete Math || Trig/Calc
|Trig/Calc, difficulty level 3. Prove that the area of a parabola is 2/3 the product of its width and height.|
|Please Note: Use of the following materials requires membership. Please see the Problem of the Week membership page for more information.|
© _PHONE_ Drexel University. All rights reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.


text:
Values are key to solving contentious urban developments at a time of transition. Port cities, as places where a big industrial area meets often densely-built urban and rural areas hold opportunities for development based on similar goals and values. But, since containerization the entanglement between city and port has been lost. To move forward at a time of multiple urgencies, we need to understand what the common goals and potential conflicts are between port, city and region. We also need to understand the scale at which opportunities and challenges play out.
As part of the LDE PortCityFutures project, led by Carola Hein, we have done a first trial with the MOOD methodology. During that process, we have come to appreciate positive impact of the value debates. We are still evaluating the results, but we have also found that there is a need for clearer definition of values, for a smaller scale of exploration (the port city region), for using concrete examples, and for developing specific design proposals.
The current proposal will take stock of the identified set of values that is particular for port city region collaboration. Next to that, we will benefit from the developed value cards and lessons learnt in the DDFV seed project Research through Design from Values, led by Ingrid Mulder. The developed value methodology allowed for personal interpretation of values, enrichment of values definition, and aligned a value dialogue among project members. Specifically, we ask for funding to explore its values in a set of case studies in port city regions through applying the RTD for values toolkit (e.g., Schiedam, Dordrecht, and/or Rotterdam).
The project aims to contribute to the ongoing value dialogue happening in recent playground discussions, one of the main issues is the operationability of the DDfV Institute. Research through design brings an innovative approach to design-based values research and enhances its capacity for reflection on the methods and tactics involved to learn for the future. We will use the value discussion to create and transform social meaning and to make public and cultural values explicit. All findings will be showcased on the DDfV website, and can be (re)used for further dissemination at DDfV playgrounds, and other conferences and exhibits.


logo logo
Myths and risks of the EU-Myanmar Investment Protection Agreement
TNI | 21 September 2017
Myths and risks of the EU-Myanmar Investment Protection Agreement
by Cecilia Olivet, Pietje Vervest
Executive Summary
Myanmar is in the early days of democratization, with many laws and policies from the country's military era in need of reform. Myanmar faces formidable challenges to build regulatory frameworks – not least in relation to the ownership and revenue sharing of natural resources in various ethnic areas, to the protection of human and labour rights and the environment.
The peace process to end the 68-year old civil war is slow, with military offensives by the national army against ethnic armed groups ongoing in Kachin and Shan States, resulting in abuses against civilians and massive displacement. Achieving a lasting peace will involve moving towards a more federal system for which many new policies and laws will have to be introduced.
This paper argues that the benefits of the IPA are highly overstated, and the risks seriously underestimated:
 1. It will bring high levels of European investment and help the country develop
 2. It will protect workers' rights and the environment
 3. EU investors will help improve Myanmar's human rights situation
 4. EU-Myanmar IPA negotiations are far more transparent than other treaties negotiated by Myanmar
 5. EU-Myanmar IPA will be just one of many treaties signed by Myanmar
 1. It will prevent democratic regulatory reform
 2. It will impact on a scarce public budget
 3. It will block the peace process
 4. It takes away the incentive to strengthen the national judicial system 5: It could be approved without any public scrutiny
The IPA could have major negative impacts on democratic development, human rights and sustainable peace in Myanmar, depriving it of the necessary policy space to harness investment to serve sustainable development and peace. It also has the potential to bankrupt the country through potential lawsuits led by foreign companies unwilling to see stronger regulations that may impact their profits.
Furthermore, there are serious human rights violations against Muslim communities in Rakhine State as well as peoples in other parts of the country. The EU has made the upholding of human rights an integral part of its external trade relations – so if negotiations continue with Myanmar under the current circumstances, this commitment is in question.
The IPA negotiations may be drawing to a close, but there is still time for a much-needed, wide-ranging public debate among parliamentarians and civil society to close the democratic gap opened up by the IPA negotiations. Parliamentarians in Europe and Myanmar have a key role to play in this debate. This briefing includes a series of recommendations that aim to strengthen the Parliamentarians' role.
Download the full report here (pdf, 1.04 MB)
 source: TNI


All About Estates
Change of Circumstance Defence
Too often an estate trustee distributes money to the wrong beneficiary or distributes the wrong amount. What happens? Does the recipient have to pay it back? What if the money is already spent? Is there a breach of trust?
My colleague, Mark Gannage, recently helped me think through this problem. The law of unjust enrichment provides that a person who is unjustly enriched at the expense of another must make restitution of that enrichment. However, under the defence of change of position or change of circumstances, the defendant may not liable to the extent that he/she incurred an exceptional expenditure in the honest belief that he/she was entitled to retain the benefit and spend it. The defence is an equitable one and is premised on the basis of preventing an injustice to the recipient.
In Gareau Estate [9 E.T.R. (2d) 25 (Ont. Gen. Div.)], the testator's will directed that the residue of her estate was to be divided among her nieces and nephews. The estate trustees made interim distributions before discovering that other nieces and nephews existed of whom they had been unaware. The estate trustees applied for interpretation of the will and, if called for by such interpretation, for orders for repayment of moneys paid out of the estate.
The court held that the recipients were entitled to some, but not all, of the money distributed to them. According to the court, where an innocent recipient had so changed his/her position in good faith that it would be inequitable in the circumstances to require him/her to make restitution or restitution in full, repayment would not be ordered. Here, one recipient had used the money to purchase land and a house and could not afford repayment. Another had loaned part of the money for that house purchase and spent most of the rest on a lot. A third recipient used most of the money to renovate her house. None were in a position to make repayment. Equity did not demand immediate repayment. The fair and proper disposition was to impose constructive trusts on the houses and the lot to secure repayment to the estate of the amount of the overpayment.
Other cases show that where a recipient was acting in good faith, had irreversibly and materially changed his/her position, did not spend the money on ordinary and everyday expense, and had undertaken, for instance, some specific project, financial commitment or obligation, he/she did not have to pay the money back.
Where an estate trustee finds him/herself in the position of having wrongfully distributed money, they should demand its immediate return. However, there is no guarantee that the money will be paid back. Faced with that possibility, the estate trustee may be saddled with a breach of trust claim by the rightful beneficiaries. The role of an estate trustee can really be a thankless task.
Thanks for reading,
About Justin de Vries


text:
In this tutorial I'll show you how to create a shiny planet icon using the 3D features of Photoshop CS4 Extended. This will cover basic information about 3D layers and texture maps. Let's get started!
Final Image Preview
Take a look at the image we'll be creating. Want access to the full PSD files and downloadable copies of every tutorial, including this one? Join Psd Plus for just $19/month. You can view the final image preview below.
Our video editor Gavin Steele has created this video tutorial to compliment this text + image tutorial.
Create a new document which is 1000 pixels wide and 500 pixels high at a resolution of 300 pixels/inch, with a name of "Home."
We'll be using some texture for our planet. You can get the diffuse texture from planetpixelemporium.com. Download the "color map" image from the site and place it as a new layer into your document. Rename this layer as "Earth."
Now go to 3D > New Shape From Layer > Sphere. This will wrap the layer around a sphere and this is going to be the base layer of our planet illustration.
The "Earth" layer is now a 3D layer and a cube icon is displayed in the Layers Palette. You can interact with a 3D model in a 3D layer in Photoshop. You can rotate and move the model or change the position of the camera in 3D space using the 3D tools in the Toolbox.
Grab the 3D Rotation Tool, click on the canvas, hold and drag to rotate the sphere and adjust it as you wish. Holding down the Alt or Shift keys will restrict the rotation axis.
The edges of the sphere look aliased at the moment. First we're going to fix it. Go to the Layers palette and double-click the little cube icon in the "Earth" layer to bring up the 3D Palette. Here you can make several adjustments to the 3D layer. Make sure the "Scene" is selected in the upper list and set Anti-Alias to Best. This will fix the edges.
Now click on the Global Ambient Color box and set the color to R:100, G:100, B:100 and hit OK. This will change the ambient color to a brighter one.
We'll now add a bump map to our planet. First download the "bump map" from planetpixelemporium.com and save the image to your desktop. Now go to the 3D Palette. Go to Sphere_Material and click the Edit the Bump Texture button and chose Load Texture. Select the file you have just downloaded. The "earthbump1k.jpg" file is a grayscale file and the lighter areas in this image will be bumped in our 3D sphere. We also want our planet to be glossy, so set the Glossiness to 100%.
In the 3D Palette you'll see that there are three lights. These are the default Photoshop scene lights. Now we'll change their types, colors and positions. First select the "Infinite Light 1" and change it's Color to R:150, G:150, and B:150. Now select the "Infinite Light 2" and set it's type to Point so that we can change it's position. Change it's Color to r:180, G:180, and B:180.
You can change the position of the light in the 3D scene using the Slide the Light and Drag the Light Tools in the 3D Palette. Position the gloss effect on the sphere using these tools. Now select "Infinite Light 3," set it's type to Point as well and set it's Color to R:130, G:130, and B:130.
"Infinite Light 3" is placed somewhere under the sphere. Since we're going to put the sphere on a surface and add some drop shadow later on, we just don't want any lights below it. So place the light above the sphere using the Slide and Drag Tools.
Now we'll make the clouds around the planet. Go to the Layers Palette, duplicate the "Earth" layer and name it "Clouds." Open the 3D properties panel for the "Clouds" layer. Select Sphere_Material in the upper list. Click the Edit the Diffuse Texture button and select Remove Texture. This will unload the existing texture map, and the Diffuse Color will determine how it is going to look. Set the Diffuse Color to white.
Click the Edit the Bump Texture button and choose Remove Texture to unload the bump map. Now we have a white sphere. We'll use another texture map for the clouds. Actually we'll use the white color of the Diffuse for the clouds and this texture map for the opacity. You can download the "clouds transparency" image from planetpixelemporium.com. Click the Edit the Opacity Texture button and choose Load Texture. Locate the "earthcloudmaptrans.jpg" file you have just downloaded.
The opacity texture made some parts of the sphere invisible, but obviously the wrong parts. Click the Edit the Opacity Texture button again and this time choose Open Texture. This will open the texture in a new document window. Go to Image > Adjustments > Invert. Save and close the document. Go back to the "Home.PSD" document, you'll see the opacity map is updated.
The weather seems to be too cloudy, because we can see the clouds that are on the other side through the transparent areas. Making the material one sided will fix that problem. Uncheck Two Sided. To make the clouds a little bit whiter, set Ambient and Specular colors to white. You can get the 3D Rotate Tool from the Toolbox and adjust the orientation of the clouds if you want.
To make the clouds pop out a little more set the Color of the three light to white.
Apply a Drop Shadow Layer Style to the "Clouds" layer and use these settings: Blend Mode set to Multiply, Color set to black, Opacity set at 75%, Distance set to 1px and Size set to 3px.
Now we have our planet done. Since we're going to merge our two 3D layers before we move on, this might be your last chance to change the rotation of the earth and the clouds. Drag one horizontal and one vertical Guide and snap them to the center of the earth. Go to the Layers Palette, select both the "Earth" and "Clouds" layers, merge them by going to Layer > Merge Layers. Name the merged layer "Earth".
Now grab the Elliptical Marque Tool, Hold Alt + Shift and make a circular selection starting from the center of the earth where the two guides intersect. Make a selection as shown below, which is about one pixel smaller than the earth. Go to Select > Inverse and hit Delete to clear. This will clear the drop shadow of the clouds and make the edges smoother. Hit Command + D to deselect.
Use the Move Tool to move the earth up to make room for the shadow and the reflection. Apply an Inner Shadow layer style using these settings: Blend Mode set to Multiply, Color set to black, Opacity set at 100%, Angle set to -90 degrees, Distance set to 25px and Size set to 46px. This will make the bottom part darker.
Create a new layer named "Shadow" above the "Background" layer. Grab the Elliptical Marquee Tool and make a selection as shown in the image below. Fill the selection with black and deselect. Go to Filter > Blur > Gaussian Blur and apply with a Radius of 7px. Go to Filter > Blur > Motion Blur, set the Angle to 0 and Distance to 150 px and apply.
Duplicate the "Shadow" layer. Hit Command + T, set both the Vertical and Horizontal Scale to 60% and apply. This will make a darker shadow where the sphere touches the ground.
Go to the "Earth" layer in the Layers Palette, duplicate it and name it "Reflection." Delete the Inner Shadow layer style by dragging the Effects to the Trash. Go to Edit > Transform > Flip Vertical to mirror the image. Grab the "Reflection" layer below the "Shadow" layer and position it as shown below.
Go to the Layers Palette and add a Layer Mask to the "Reflection" layer. Get the Gradient Tool, open the Gradient picker and select Black, White. Draw a gradient on the layer mask as shown below. This will make the reflection fade.
In the Layers Palette click on the "Reflection" Layer Thumbnail to select the layer itself. Go to Filter > Blur > Gaussian Blur and apply with a Radius of 2 pixels. Set the Layer Opacity at 75%. Grab the Gradient Tool and fill the "Background" layer with a light blue to white gradient.
Well that's it! I hope you enjoyed and learn something new about the 3D possibilities of Photoshop!
Subscribe to the Psdtuts+ RSS Feed for the best Photoshop tuts and articles on the web.


Can't Be Calculated, Would Require Summing Deduplicated Values
This guide applies to this message that can appear in your results for unique count metrics, such as Facebook's "Reach" metrics:
Example query result showing the "can't be calculated..." message for Facebook reach
Data Studio specifically may not show this error in the results. It may instead show the results as "0" or "null" when this is happening, making it harder to diagnose. If you do see "0" or "null" for metrics that should have values, this may be what is causing that.
If the data source calculates a metric to be a unique count, it's usually doing the calculation based on a specific object the ad, campaign, account, post, etc. So if the query then is not split in a unique enough way, this message will appear. This may be that the query is not split at all, or that there are ads/campaigns/objects with the exact same name. In this case Supermetrics will try to sum those based on shared name or some other dimension, and fail to do so as they should be unique counts for unique objects.
As seen in the example above, there are multiple ads with the same names. When Supermetrics tries to sum those, it cannot and instead give the error.
The best resolution is to modify your query to include another dimension field that is unique - such as the ad ID, Campaign ID, Post ID, etc. The sums will then be split according to their unique object and clear the error.
The original example now split by Ad ID shows the reach values properly - you'll note the ad names are clearly not unique and was the cause of the original problem:
Example query result showing data split by Ad ID and being able to get the reach values for all ads
Some products also have an advanced setting to "ALLOW_SUM_UNIQUE", which bypasses this safety message and will sum them anyway. Note that this can lead to false values for unique metrics and is not recommended. (This setting is not available for Data Studio, you need to use the fix above.)
Example of the Advanced Setting for Google Sheets:
Blue arrow points to "Advanced settings" text box, with setting to ALLOW_SUM_UNIQUE to be enabled
Did you find it helpful? Yes No
Send feedback


text:
Background: To date, postoperative prognostic factors for intraductal papillary neoplasm of the bile duct (IPNB) have not been well-established. This study aimed to examine the histopathologic features and postoperative prognosis of the two IPNB subclassifications, as well as factors affecting prognosis, based on the authors' experience at a single institution. Methods: The study enrolled 83 patients who underwent surgical resection for pathologically diagnosed IPNB at the authors' institution. The clinicopathologic features and postoperative outcomes for these patients were examined. The study also investigated postoperative prognostic factors for IPNB using uniand multivariate analyses. Results: More than half of the tumors (64%) diagnosed as IPNB were early-stage cancer (UICC Tis or T1). However, none were diagnosed as benign. The multivariate analysis showed that lymph node metastasis (hazard ratio [HR], 5.78; p = 0.002) and bile duct margin status with carcinoma in situ (D-CIS; HR, 5.10; p = 0.002) were independent prognostic factors, whereas MUC6 expression showed only a marginal influence on prediction of prognosis (HR, 0.32; p = 0.07). The tumor recurrence rate and the proportion of locoregional recurrence were significantly greater among the patients with D-CIS than among those with negative bile duct margins, including those patients with low-grade dysplasia. The patients with D-CIS showed a significantly poorer prognosis than those with negative bile duct margins (5-year survival, 38% versus 87%; p = 0.0002). Conclusions: Evaluation of resected IPNBs showed cancer in all cases. Avoiding positive biliary stumps during surgery, including resection of carcinoma in situ, would improve the prognosis for patients with IPNB.
ASJC Scopus subject areas


Created by the State of Minnesota, the Minnesota Zoo opened in 1978 with a mission to connect people, animals, and the natural world to save wildlife. Cutting-edge exhibits provide exciting experiences with animals and their habitats introducing guests to species from around the globe. Education programs engage audiences at the Zoo, throughout the region, and around world. Conservation programs protect endangered species and preserve critical ecosystems. Learn more about the Minnesota Zoo—our mission, leadership, and history.
The Zoo at a Glance
The Minnesota Zoo is an accredited institution of the Association of Zoos and Aquariums and is an institutional member of the Alliance of Marine Mammal Parks and Aquariums and the World Association of Zoos and Aquariums.
aza waza_head_new AMMPA-Accredited_thumb CharityNavigatorLogo
The Minnesota Zoo has the following meetings scheduled.


text:
I have a workflow to eliminate small polygons within a layer and merge them with adjacent polygons. My input is the result of a polygonization of a raster (has no overlaps) and it has one field "class".
In the first step I loop over all features and if a polygon is of class 0 (blue), and is too small, i change its class to a suitable neighbour.
Next I dissolve the features, according to their changed class values.
As you can see, the blue areas are dissolved successfully, however the island in the middle appears to have changed value. Actually there are now two polygons laying on top of each other there, a light green one, and the original one. The light green basically filled a hole during the dissolve process. This happens only for a couple of polygons, and not all of them.
Here's the code to change the values of the polygons:
def KFB_for_1_class (input, field_, c, area_threshold): feats = dis_temp = r"z:\dis.shp" layer = iface.addVectorLayer(input,"","ogr") layer.startEditing() layer_cpy = iface.addVectorLayer(input,"","ogr") print "cleaning class "+str(c) for f in layer.getFeatures(): if f[field_] == c and f["area"] < area_threshold: org_int = f[field_] candidates = for f2 in layer_cpy.getFeatures(): if f.geometry().touches(f2.geometry()): if f2[field_] not in candidates and f2[field_]!= org_int: candidates.append(f2[field_]) candidates.sort() if len(candidates) >0: f[field_] = candidates for i in (candidates): if abs(org_int - i) <= abs(f[field_] - org_int): f[field_] = i f["area"] = area_threshold + 1 layer.updateFeature(f) feats.append(f["id"]) print "feature " +str(f["id"]) + " changed from " + str(org_int) + " to " + str(f["int"]) print feats layer.commitChanges()
To dissolve I use this:
processing.runalg("qgis:dissolve", input, False, "class", dis_temp)
What I tried:
- using other dissolve tools within QGis (OGR, SAGA, [GRASS I could not get to work])
- cleaning Topology with v.clean according to Dissolve polygons in QGIS (GEOS) with tolerance
Both did not work. The different tools all ended up creating the same error.
How can I resolve this?


text:
Bernard Street Bridge
|Bernard Street Bridge|
|Location Map ( geo)|
|Crossings related to the A199|
The Bernard Street Bridge carries the primary A199 over the Water of Leith in Leith. The bridge appears to date from the 1960s, consisting of three shallow concrete arches across the river. The size of the structure is deceptive, with much of it hidden under the water level which is maintained at an unnaturally high level by lock gates. In the past the Water of Leith was tidal.
Looking at the bridge today, it seems hard to imagine that it carries a primary route, being lined with parked cars, and taxi ranks, where it may once have been S4. However, with a traffic signal controlled junction on the west side of the bridge, and a steady flow of traffic in each direction the bridge is still busy.
Somewhere in this area is the site of the first bridge at Leith, built by the church in 1496. The bridge was demolished in c1780, when the expansion of Leith as a Port was already underway, and the removal of the bridge presumably opened up more of the river banks for development as wharves.
Another bridge, known as the Lower Drawbridge (the Upper Drawbridge is now known as Sandport Place Bridge), stood a little to the north of the modern bridge, seemingly requiring traffic to dogleg at each end to continue along the main Bernard Street - Commercial Street thoroughfare. This bridge was demolished in 1910.
Undoubtedly there have been other bridges on this site, or near to it, in the missing years between the two bridges mentioned above. However, more research is required to discover where they were, when they were built and what they looked like. Undoubtedly most would have allowed ships or boats to pass through them.


text:
Kiew, Ruth (1978) Floristic Components of the Ground Flora of a Tropical Lowland Rain Forest at Gunung Mulu National Park, Sarawak. Pertanika, 1 (2). pp. 112-119.
The floristic components of the ground layer at the Gunung Mulu National Park, Sarawak, are described. These components are associated with microhabitats. The microhabitats of the riverine system include the shallow stream, rocky banks and banks of larger rivers, and those of the shaded forest include permanently wet areas, rocky litter-free slopes, steep litter covered slopes, surfaces of logs, roots or rocks and the flat well-drained alluvial forest. Possible causes of the uneven distribution of the ground layer species of the flat well-drained alluvial forest are discussed. The species composition of this alluvial forest is compared with other published reports from the Danum Valley, Sabah and Pasoh Forest Reserve Malaya, and with some other lowland forest types such as kerangas and peat swamp forest in Sarawak. The phenomenon of iridescence and variegation of leaves is briefly noted.
|Keyword:||Floristic Components, Ground Layer, Lowland rainforest, Microhabitat, Distribution of tropical Herbaceous plants, Variegated foliage.|
|Faculty or Institute:||Faculty of Environmental Studies|
|Deposited By:||Nur Izyan Mohd Zaki|
|Deposited On:||09 Nov 2009 02:45|
|Last Modified:||27 May 2013 06:58|
Repository Staff Only: item control page
Document Download Statistics
This item has been downloaded for since 09 Nov 2009 02:45.


text:
Setting default and initial field values in SharePoint forms
In today's skybow Advent Calendar, again one of the classics: prepopulating values in SharePoint forms, based on current data, user, and context. It is not possible in out-of-the box SharePoint list forms, but it is a very simple task both with skybow Solution Studio and skybow Rich Forms.
Let's try to imagine just one of the possible scenarios: in a SharePoint list, there is a text field called "Location". When a new form of that list is displayed, the "Office" property should be read from current user's profile, and the field "Location" should be set to that value, locked for editing, so that the user cannot change it.
Those are the steps we are going to follow in order to make this work:
- Open the form where the field that should be initially set is located, and select the field
- Click the Expression Builder icon besides the "Initial" value in the "Behavior" tab
- Select the "Office" user profile property, under the "User" context object, and save the expression
- Set the "Enabled" expression on false, to make the field read only.


text:
If you go back into the history of the NY style, you will see that the basic NY style pizza was made using flour, water, fresh yeast and salt. The flour originally was all-purpose flour but over time pizza operators used bread flour and high-gluten flour as they became available and popular for that style. The bread flour and high-gluten flour were commonly bleached and bromated. Sometimes they were just called "pizza flour". There was no sugar or oil used in the dough, and the dough was mixed by hand (before Mr. Hobart invented the commercial mixer) and fermented at room temperature (commercial refrigeration had not yet been invented). Dry yeast products such as ADY and IDY had not yet been invented (IDY was invented just after World War II and IDY was invented in the 1970s), so the yeast used was fresh yeast. The pizzas were typically baked in high-temperature coal fired ovens. When deck ovens were invented and became commercially available, oil and sugar started to be added to the dough. When refrigeration became commercially viable for cold fermenting dough, it allowed pizza operators to make dough and be able to use it for more than one day. The end product pizzas were typically quite large, with 18" being typical. In some cases, they were even larger than 18".
Today, if you were to investigate what NY style pizza operators are doing, you would find that all of the above measures are being used by someone somewhere. However, over time, there has been a movement toward the use of high-gluten flours and the regular use of oil in the dough. The flour is most likely to be bleached and bromated. Sugar might also be added to the dough, especially if the dough is to be cold fermented for more than a few days. And dry yeast products are regularly used. Most of the NY style pizzas today are likely to be baked in deck ovens, although there are still coal-fired ovens being used to make the earlier NY style pizza, often called the "elite" style to differentiate those pizzas from the "NY street" style. The elite style pizzas come in the larger sizes although the NY street style pizzas can come in a wide range of sizes, including 12", 14", 16" and 18", with the most common size still being the 18" size. There is also a wide range of toppings for the NY street style and bake times also tend to be on the high side, much longer than would be used to make the Neapolitan style, which are typically baked in very high temperature wood-fired ovens with bake times of under about 2 minutes and often under a minute. Also, the Neapolitan style pizzas rarely get above 10"-12" in size. And, as John noted, the flour used for that style is usually an unbromated, unbleached, unmalted flour such as the 00 flour, there is no sugar or oil used in the dough, and the pizzas are sparsely topped. The sauce is typically made from Italian San Marzano tomatoes and the cheese can be fresh mozzarella cheese of buffalo mozzarella cheese. The NY style pizzas typically use canned domestic tomato products and processed mozzarella cheeses.


Limonene, a component of orange essential oil, has been investigated as a potential cancer treatment. A study from 2012 found that orange oil rich in limonene both inhibited the growth and promoted the death of colon cancer cells in culture. Ref:
A 2017 studyTrusted Source found that orange essential oil inhibited the growth of lung and prostate cancer cell lines in culture. Additionally, increased cell death was seen in the lung cancer cell line. Orange essential oil was also observed to have antioxidant activity. Ref:
Studies have indicated that orange essential oil or its components can inhibit the growth and lead to cell death in some cultured cancer cell lines.
Because these studies were done in a test tube and not in the human body, additional research is needed to learn more about these properties.


text:
Definitions of vindication
n. - The act of vindicating, or the state of being vindicated; defense; justification against denial or censure; as, the vindication of opinions; his vindication is complete. 2
n. - The claiming a thing as one's own; the asserting of a right or title in, or to, a thing. 2
The word "vindication" uses 11 letters: A C D I I I N N O T V.
No direct anagrams for vindication found in this word list.
Words formed by adding one letter before or after vindication (in bold), or to acdiiinnotv in any order:
s - vindications
All words formed from vindication by changing one letter
Browse words starting with vindication by next letter


text:
Date Added: May 2011
The major purpose of this paper is to develop a Web-based E-learning Platform for physical education. The Platform provides sports related courseware which includes physical motions, exercise rules and first-aid treatment. The courseware is represented using digital multimedia materials which include video, 2D animation and 3D virtual reality. Courseware within digital multimedia materials not only can increase the learning efficient but also inspires students' strong interest in learning, especially in the area of Physical Education.


# NAME Web::Library - Manager for wrappers around client-side libraries # SYNOPSIS # in your Catalyst application: my $library_manager = Web::Library->instance; $library_manager->mount_library({ name => 'jQuery' }); $library_manager->mount_library( { name => 'Bootstrap', version => '2.3.0' }); __PACKAGE__->config( 'Plugin::Static::Simple' => { include_path => [ $library_manager->include_paths ] },... ); # in an HTML template... [% web_library.css_link_tags_for('Bootstrap', 'jQuery') %]... [% web_library.script_tags_for('Bootstrap', 'jQuery') %] # DESCRIPTION There are well-established ways for web applications to manage server-side dependencies, like 'Makefile.PL' or 'cpanfile' - but what about client-side dependencies? So you develop and maintain a number of web applications, and all of them use some client-side libraries like jQuery or Twitter Bootstrap or Underscore.js. You have to copy the relevant JavaScript, CSS and image files to a directory containing static files for each web application. This involves quite a bit of copying around and version maintenance. Web::Library can help you. The idea behind Web::Library and its related distributions is that client-side libraries are installed as shared files of standard CPAN distributions. Web::Library itself is a manager for those libraries. A web application that wishes to use one or more client-side libraries can tell Web::Library to include either the latest or a specific version of those libraries. These managed libraries can then be used as static files with web application frameworks. In the case of [Catalyst](_URL_ you might use [Catalyst::Plugin::Static::Simple](_URL_ as shown in the synopsis. Web::Library is a singleton object, so you can add client-side libraries in different parts of your application. For example, you might have common librares that are included in all of your web applications, but then also want to manage application-specific libraries. Only client-side libraries whose license permits redistribution can be managed this way. Forunately, most, if not all, popular client-side libraries have such permissive licenses. # METHODS - instance Returns the singleton Web::Library object that manages all client-side libraries. - mount\_library Adds a specific version of a client-side library to the list of managed libraries. Takes a hashref of named parameters. Valid parameters are: - name The name of the client-side library. The manager will try to load the 'Web::Library::$name' class. For example, [Web::Library::Bootstrap](_URL_ is a distribution wrapper for Twitter Bootstrap. - version A distribution wrapper will contain various versions of the wrapped client-side library. Using this parameter you can specify the version you want. Refer to the relevant distribution's documentation to see which versions are available. This parameter is optional; if omitted, the latest version is used. - include\_paths Client-side library files are installed as shared files as described in [File::ShareDir](_URL_ The 'include_paths' method returns the absolute paths to shared directories for all managed libraries. ## ASSET-RELATED METHODS Web::Library can also help you with including a library's CSS and JavaScript files in the web page templates. If you expose an instance of Web::Library to your templates, you can add the relevant '' and '


text:
Spark Shell with Scala
With Spark Shell with Scala, we can execute different commands of RDD transformation /action to process the data,is explained below.
1.Open Spark Shell
The following command is used to open Spark shell in scala.
2.Different ways of creating New RDD
2.1 create RDD by Reading File from local filesystem
In this method data is already available in the external systems like a local filesystem i.e HDFS, HBase etc.
|scala> val inputfile = sc.textFile("input.txt")|
Note: Here input.txt file present in Home directory.
2.2 Create RDD through Parallelized Collection
This method can be used with the existing collections of data.
|scala> val no = Array(1, 2, 3, 4, 5, 6, 7)|
scala> val noData = sc.parallelize(no)
2.3 Create RDD from Existing RDDs
In this method creating new RDD by using the existing one.
|scala> val newRDD = no.map(data => (data * 2))|
3. Counting number of Items in the RDD
Here count the number of items available in the RDD. To count the items need to call an Action.
Here Filter the RDD and create new RDD of items which contain word "BeyondCorner". To filter, need to call transformation filter, which will return a new RDD with subset of items.
|scala> val DFData = data.filter(line => line.contains("BeyondCorner"))|
5. Perform Transformation and Action together
Here will perform multiple operations together like filter transformation and count action together for complex requirements.
|scala> data.filter(line => line.contains("BeyondCorner")).count()|
6. Read the First item from the RDD
To read the first item from the file, use the below command.
7. Read the First 7 item from the RDD
To read the first 7 item from the file, use the below command
An RDD is made up of multiple partitions, to count the number of partitions, use the below command.
9. Caching the Transformations
Below command used to store the intermediate transformations in memory.
10. Exit from Spark shell
Below command used to exit from the shell.
From the above Spark Shell with Scala topic we conclude that, using Spark Shell commands we can create RDD, read from RDD, and partition RDD. We can perform various operation on the data using the Spark Shell commands.


text:
Admin tasks with Splunk Web
Splunk Web is the browser-based interface for the Splunk platform. Here are just a few of the things you can do in Splunk Web:
- Configure your data inputs
- Search data and report and visualize results
- Investigate problems
- Manage users natively or via LDAP strategies
- Troubleshoot Splunk deployments
- Manage clusters and peers
Refer to the system requirements for a list of supported operating systems and browsers.
Splunk Web provides a convenient interface for managing most aspects of Splunk platform operations. Most of the functions can be accessed by clicking Settings in the menu. From here you can:
Manage your data
Under Settings > Data you can do the following:
- Data Inputs Lets you view a list of data types and configure them. To add an input, click the Add data button in the Data Inputs page. For more information about how to add data, see the Getting Data In manual.
- Forwarding and receiving lets you set up your forwarders and receivers. For more information about setting up forwarding and receiving, see the Forwarding Data manual.
- Indexes lets you add, disable, and enable indexes.
- Report acceleration summaries takes you to the searching and reporting app to lets you review your existing report summaries. For more information about creating report summaries, see the Knowledge Manager Manual.
Manage users and user authentication
By navigating to Settings > Users and Authentication > Access Control you can do the following:
- Create and manage users
- Define and assign roles
- Set up LDAP authentication strategies
For more information about working with users and authentication, see Securing Splunk Enterprise.
Work with Apps
To see your installed apps, select Apps in the menu bar.
From this page, you can select an app from a list of those you have already installed and are currently available to you. From here you can also access the following menu options:
- Find more Apps lets you search for and install additional apps.
- Manage Apps lets you manage your existing apps.
You can also access all of your apps in the Home page.
For more information about apps, see Developing views and apps for Splunk Web.
Manage aspects of your system
The options under Settings > System let you do the following:
- Server settings lets you manage Splunk platform settings like ports, host name, index paths, email server, and system logging and deployment client information. For more about configuring and managing distributed environments with Splunk Web, see the Updating Splunk Components manual.
- Server controls lets you restart the Splunk platform.
- Licensing lets you manage and renew your Splunk licenses.
Launch Splunk Web
Splunk Enterprise summary dashboard
This documentation applies to the following versions of Splunk® Enterprise: 6.5.7, 7.0.0, 7.0.1, 7.0.2, 7.0.3, 7.0.4, 7.0.5, 7.0.6, 7.0.7, 7.0.8, 7.0.9, 7.0.10, 7.0.11, 7.0.13, 7.1.0, 7.1.1, 7.1.2, 7.1.3, 7.1.4, 7.1.5, 7.1.6, 7.1.7, 7.1.8, 7.1.9, 7.1.10, 7.2.0, 7.2.1, 7.2.2, 7.2.3, 7.2.4, 7.2.5, 7.2.6, 7.2.7, 7.2.8, 7.2.9, 7.2.10, 7.3.0, 7.3.1, 7.3.2, 7.3.3, 7.3.4, 7.3.5, 7.3.6, 7.3.7, 7.3.8, 7.3.9, 8.0.0, 8.0.1, 8.0.2, 8.0.3, 8.0.4, 8.0.5, 8.0.6, 8.0.7, 8.0.8, 8.0.9, 8.0.10, 8.1.0, 8.1.1, 8.1.2, 8.1.3, 8.1.4, 8.1.5, 8.1.6, 8.1.7, 8.1.8, 8.1.9, 8.1.10, 8.1.11, 8.1.12, 8.2.0, 8.2.1, 8.2.2, 8.2.3, 8.2.4, 8.2.5, 8.2.6, 8.2.7, 8.2.8, 8.2.9, 9.0.0, 9.0.1, 9.0.2, 9.0.3


text:
- Marginal cost pricingsearch for term
'Marginal cost pricing' expresses the theory that the net benefits of an economic activity are maximised when prices are equal to the marginal cost of production. This is because prices measure consumers' marginal willingness to pay, and therefore the value, of a commodity or service. The marginal cost is the quantity of resources, which must be employed to produce a single extra unit of the commodity. When price equals marginal cost, it indicates that the cost of the marginal unit of production is just equal to, and therefore justified by, the value of the extra consumption. In the case of water resources, the 'cost of production' should be interpreted to include the impact on the environment. Damage to the environment can lower welfare directly (e.g. through reduced amenity), or indirectly, through the need to spend more on water treatment. Also, any current use must reduce the amount of water available for use in future periods. This would apply to any store of water, such as an aquifer or lake, being used in excess of its recharge rate. Continued exploitation must at some time lead to exhaustion. Hence, current use of the resource has an opportunity cost which is the cost of use foregone in the future. Various formulae exist on which marginal cost pricing policies can be based, which take into account the indivisibilities, which are a feature of water resources, investment.
Further information: Pricing of Water Services. OECD, 1987.
- Meteringsearch for term
Systems of metering for calculating water consumption, and thereby charges owed by the customer per unit of water consumed, are needed in cases where charges or tariffs for water are not set at a flat rate per user. However, it is important to recognise that metering is expensive to install and operate efficiently, and that users are likely to reduce their usage, so that it may not be economic – however apparently desirable – to install a metering system. Any decision to install metering will have to take many factors into account: the value and scarcity/abundance of water; the cost of installing meters, maintaining their security, staffing their inspection, billing customers, etc.; possible customer reactions; the desirability and practicalities of introducing a two-tier payment system, whereby above a certain level, price per unit increases, thus helping reduce waste and increase revenues. Most OECD countries, and a growing number of other countries, use metering for urban domestic water consumption. (See also Tariff structures.)
- Monitoring Indicatorssearch for term
Monitoring is the systematic and continuous observation of actual events, and their comparison with the planned situation or outcome. Monitoring is necessary both to check the actual project performance on an ongoing basis, and to measure whether it has achieved the objectives it was designed for. In order for monitoring to be undertaken, indicators are needed about which data can be collected on a regular basis. The selection of useful indicators is critical to the quality of data collected. (See also Chapter 13, Monitoring Indicators.)


Provider: ingentaconnect Database: ingentaconnect Content: application/x-research-info-systems TY - ABST AU - Santha, Hari AU - Rowan, James AU - Hoener, Webster TI - DIGESTER GAS CLEANING REQUIREMENTS BASED ON END USE JO - Proceedings of the Water Environment Federation PY - 2007-01-01T00:00:00/// VL - 2007 IS - 3 SP - 865 EP - 879 N2 - The anaerobic digestion process, used for solids stabilization at municipal wastewater treatment facilities, is a net producer of energy in the form of digester gas that can be used to offset part of the energy requirements for plant operations. However, there are several challenges associated with the use of digester gas as an alternate fuel source. As generated from the digesters, the gas contains several contaminants that can increase the maintenance requirements of the equipment fueled by the gas. A multi-step cleaning process is often called for to improve the gas quality. The capacity requirements and costs of the gas treatment system can depend on several variables, including the quantity of gas treated, the initial concentration of contaminants, and the final concentration of contaminants in the gas to meet the quality requirements for the gas utilization equipment. Not all applications require the gas to be of high quality and there can be significant differences between the gas quality requirements for different gas utilization equipment.
The paper provides an overview of the typical problems associated with handling and using digester gas without adequate cleaning, a decision matrix to determine the cleaning requirements based on the end use, and the technologies available for cleaning the gas to meet the specified quality requirements. UR - M3 - doi:10.2175/193864707787975985 UR - ER -


text:
Massachusetts Licensure Information
NTR has been approved by the Commonwealth of Massachusetts to grant an Initial License (grades 8-12 in English, History, Math and Science - Biology, Chemistry, and Physics) to teacher candidates who have successfully completed our program. It is important to note that a Master's Degree is NOT required to obtain an initial license. All teaching licenses require a candidate to have taken and passed the MTEL Communication and Literacy exam as well as relevant subject exams. You can find out more about Massachusetts licensure and about taking the MTEL (Massachusetts Tests for Educator Licensure) here.
There are four types of teacher licenses currently available in the state:
- Preliminary License - A teacher license issued to a person who holds a bachelor's degree and has passed the Massachusetts Tests for Educator Licensure (MTEL) and met other eligibility requirements.
- Initial License - An educator license issued to a person who has completed a bachelor's degree, passed the Massachusetts Tests for Educator Licensure, completed a professional preparation program approved by the Commissioner (such as NTR), and met other eligibility requirements.
- Professional License - An educator license issued to a person who has met the requirements for an initial license, completed a Performance Assessment Program or an appropriate master's degree program, and met other requirements.
- Temporary License - An educator license issued to a person who holds a valid license or certificate of a type comparable to at least an initial license in Massachusetts from another state or jurisdiction, and who has been employed under such license for a minimum of three years but has not satisfied the Massachusetts testing requirements.


text: Accurately predicting the possible behaviors of traffic participants is an essential capability for future autonomous vehicles. The majority of current researches fix the number of driving intentions by considering only a specific scenario. However, distinct driving environments usually contain various possible driving maneuvers. Therefore, a intention prediction method that can adapt to different traffic scenarios is needed. To further improve the overall vehicle prediction performance, motion information is usually incorporated with classified intentions. As suggested in some literature, the methods that directly predict possible goal locations can achieve better performance for long-term motion prediction than other approaches due to their automatic incorporation of environment constraints. Moreover, by obtaining the temporal information of the predicted destinations, the optimal trajectories for predicted vehicles as well as the desirable path for ego autonomous vehicle could be easily generated. In this paper, we propose a Semantic-based Intention and Motion Prediction (SIMP) method, which can be adapted to any driving scenarios by using semantic-defined vehicle behaviors. It utilizes a probabilistic framework based on deep neural network to estimate the intentions, final locations, and the corresponding time information for surrounding vehicles. An exemplar real-world scenario was used to implement and examine the proposed method.


🌟 Creating a clean city
Jurisdiction: Victoria
Our residents and businesses produce, consume, and dispose of waste every day. Many residents are unaware of what happens to their waste once it enters a bin or simply don't care. How might we use data to empower and educate our community about their waste?
We aspire to be a clean and clever city and want to ensure we don't waste one of our most valuable resource, our data.
With population growth comes an increased amount of waste being generated.
We need to support people to make smart choices at each step of the waste life cycle.
How can we paint a picture of the waste life cycle for our community using data?
Eligibility Use atleast 1 City of Ballarat waste dataset from data.gov.au
Entry: Challenge entry is available to all teams in Australia.
Dataset Highlight
Data.gov.au - city of Ballarat
Go to Dataset
Challenge Entries
Back to Challenges


text:
Tskhouk-Karckar VulkanTskhouk-Karckar volcano is a group of 8 Holocene cinder cones in the central Siunik volcanic ridge along the Armenia/Azerbaijan border about 60 km SE of Lake Sevan.
The last activity took place about 5000 years ago, and built a cone which erupted lava flows. These flows overly older human settlement traces and were used for gravesites in the first half of the 3rd millennium BC.
Beschreibung:The Tskhouk-Karckar volcano group was constructed within offset segments of the major Pambak-Sevan strike-slip fault trending SE from Lake Sevan. 8 pyroclastic cones produced 3 generations of Holocene lava flows.
Human traces dated are found on the 2 older generation lava flows, including many petroglyphs, burial kurgans, and masonry walls. No such traces have been found on the youngest flows, suggesting they erupted later than these early settlements and human activities.
Some lava flows overlie petroglyphs dated to the end of the 4th millennium and beginning of the 3rd millennium BC and were themselves used in gravesites dated at 4720 +/- 140 yrs ago. Following these eruptions, the area was not repopulated until the Middle Ages.
(adapted from: GVP / Smithsonian Institution)
Karakhanian, A et al (2002) "Holocene-historical volcanism and active faults as natural risk factors for Armenia and adjacent countries", J Volc Geotherm Res, v. 113, pp. 319-344


Population ages 25-29, female (% of female population) in India was reported at 8.3926 % in 2019, according to the World Bank collection of development indicators, compiled from officially recognized sources. India - Population ages 25-29, female (% of female population) - actual values, historical data, forecasts and projections were sourced from the World Bank on November of 2020.
Please Paste this Code in your Website
 india population ages 25 29 female percent of female population wb data
Female population between the ages 25 to 29 as a percentage of the total female population.
India | World Bank Development Indicators


An introduction to Märklin my world
Märklin targets their my world program at young children (starting at 3 years of age). Contrary to other modelrailroads, the trains run on batteries or rechargeable batteries. This technology may become available in regular models in the future, but it is already available for the very young. The big advantage is that trains will run on dirty tracks and cannot short-circuit. The trains are strong and will take a beating.
Most engines run on batteries. They are permanently coupled to the first car or carriage, which holds four AA-batteries. The engines have a red window on top which contains the infrared receiver. They all have lighting, although not directional and 3 sounds. On top also seats an on/off switch. There is also a switch on the bottom, to change between two infrared channels, which must match the channel on the remote control (see below). All engines only have two axles, of which one with rubber tires and have also one magnetic coupler. The fronts of the engines are fairly realistic, e.g. the ICE1 and ICE3, the series 218 and 212. Märklin also sells a LINT multiple unit (red and blue) which can be charged using a USB charger. Some trains are not based on an actual model, e.g. a Dutch high speed train. Also new in 2017 is a steam engine that produces steam using real water.
Remote control
The remote control is available in two shapes. The older one uses pushbuttons, the newer one looks like a kind of joystick (called Power Control Stick). Both also feature 4 pushbuttons for lights on/off and 3 sounds. The older remote control uses buttons foor forwards and backwards and emergency brake. Pushing the speed buttons more than once increases or decreases the speed of the train. The PCS has 7 stops: 3 forwards, 3 backwards and stop. The emergency brake is a button that can be pushed by the hand holding the stick.
The remote control runs on three AAA batteries and uses infrared. This means that the control should be pointed at the red window on a locomotive. Outside the range of the remote control, the train will keep running at the last setting (e.g. through tunnels).
The remote control has a designated set of channels, either A-B, C-D, E-F, G-H, I-J or K-L. Every channel can run an engine independently, so a total of 12 independent trains is possible. The switch on the engine and the remote control should be set to te same channel. Known to us are the following channels:
Engine /Multiple Unit Article Remote control Channels
ICE 1 29300 Pushbuttons A-B
ICE NS 29213 Pushbuttons A-B
ICE TV-series with the mouse 29206 Pushbuttons A-B
ICE Holiday Express 466456 Pushbuttons A-B
ICN SBB 29303 Pushbuttons C-D
BR 218 (Regional Express) 29209 Pushbuttons C-D
BR 218 (Intercity) 29302 Pushbuttons C-D
BR 218 (goods) 29210 Pushbuttons C-D
TGV Duplex SNCF 29212 Pushbuttons C-D
Click and Mix (2 engines, goods) 29270 Pushbuttons E-F
Click and Mix (3 engines) 36270 Pushbuttons E-F
LINT 29100, 29307, 36100 Power Control Stick G-H
BR 212 (container) 29309, 36101 Power Control Stick G-H
Steam engine (agriculture) 29308 Power Control Stick I-J
ICE 3 29330 Power Control Stick K-L
When Märklin started out, cars had 4 axles in the so called 'click and mix' collection. Nowadays all cars, like the engines, have two axles. They are shortened and have a magnetic coupler on both sides. This gives a closed appearance for passenger trains but is less realistic for goods trains. Due to polarity couplers are colored in light and dark gray. Although the cars are shortened considerably, longer trains often look credible enough for older children and adults. Most sets contain 3 or 4 cars, but an engine can easily pull longer trains, even on slopes. The series 212, which will be available in 2017, is the first engine to run on rechargeable batteries, without being permanently coupled to the first car. This set will come with intermodal cars and containers.
My world track is constructed out of one piece of plastic. They are exact copies of regular C-track using the same lengths and curves. Currently the following track sections are available:
 - Curve R1, 30 degrees (12 sections make a circle)
 - Curve R2, 24 degrees. This is the counterpart for a switch/turnout. (15! pieces make a circle, but no half circle can be made without cutting. They can only be bought in packages also containing switches/turnouts)
 - Straight 172 mm
 - Straight 188 mm
 - Switch/turnout left and right
 - 60 degrees crossing (only for a figure 8)
Top a plastic my world track section, bottom regular C-track. Even the third rail is copied (non-functional of course).
Because of the missing 30 degrees curve for R2, double track is only possible in straight sections. Ofcourse a mix can be made with regular C-track, which has a much larger selection (like curved turnouts en R3 and R4). Another advantage is that they will also provide current for regular locomotives. The cost is however almost three times as high.


text:
Sensory accountability – data beyond the symbolic sandbox
Dietmar Offenhuber Associate Professor, Northeastern University
The methods of data driven urbanism are bound to the limits of symbolic representation - they can only begin when data already exist. As a result, data remain largely silent about the conditions and controversies around their creation and are disconnected from the phenomena they describe. Especially when discourses around pollution and environmental justice depend on data sets and computational models, they are frequently subject to questions of truthfulness, authority, and hidden biases. Under the notion of sensory accountability, I will discuss emerging visual and evidentiary practices that respond to these questions by identifying, revealing, and presenting physical traces of invisible phenomena - as a data source, but also to make the process of data collection accountable and the resulting models verifiable through the human senses.
The Lectures in Planning Series (LiPS) is an initiative of the Urban Planning program at Columbia University's Graduate School of Architecture, Planning and Preservation.


Solving The Trigger Challenge
In week three of Eliot's MongoDB World Weekly Challenge, you were tasked with setting up MongoDB so that actions were executed as data was inserted into the database using Triggers. Triggers are great for reacting to changes in the data so let's look at how we can put them to work, solve that problem and learn more about this great Stitch feature.
We will assume you've already got your database cluster created previously. If not, create an MongoDB Atlas M0 tier free trial cluster to work though this solution.
Create the Stitch Application
Before we start working with our data we need to create a Stitch application which will host our Database Trigger.
Create Stitch App
The application should be linked to your cluster and the deployment model can be local or global. Once the application is created, a unique App ID will be created. This App ID is the answer to question one. See. It is that simple.
Getting the App ID
Now that we have our Stitch application linked to our cluster, we can create the Stitch Trigger.
Create the Stitch Trigger
A Stitch Trigger uses MongoDB change streams to react to events in our system and push these notifications to downstream systems. In our use case, we are capturing real-time inserts and counting sales that meet our given criteria.
Select Triggers from the left-hand menu, we will use the Database Trigger for this use case. This is just one of three types of triggers that Stitch offers. The Database Trigger generates events based on database operations such as inserts, updates, and so on so you can act on database changes. The authentication trigger executes based on Stitch user events such as create and login so you can act on user activity. Finally, a scheduled trigger will execute Stitch Functions at a user-defined time interval. These are useful for database maintenance commands such as cleaning up old data or creating reports at set times. The Stitch Functions are executed in a the application's context so they also have access to all the third-party services offered by Stitch.
Knowing the three types of triggers offered by Stitch and how to use them not only allows us to be more productive developers but is also the key to answering the last question.
Adding a Trigger
Let's give our Database Trigger a name, like any good variable name the more descriptive the better. For our challenge, we want to count all documents created in the sales collection of the sample_supplies database which originated from the Denver or San Diego store locations which were purchased in store or on the phone and used a coupon.
For this trigger we will only look at inserts against the sales collection in the sample_supplies database. The great thing about this is the database does not have to exist for the trigger to start. With this current configuration, the trigger will process each sale as it comes in the proper order, but we want to find specific data, so before we create our new function, let's scroll down to the advanced features and update our match expression:
Match Expression in Trigger
Now the trigger will only fire when new a new sales document is created which matches the search criteria:
 "fullDocument.storeLocation": {
 "$in":["Denver","San Diego"]
 "$in":["In store","Phone"]
The fullDocument is a field set in the change stream which contains the newly created document. We can search for specific fields of this full document, and only those documents that match will be sent to the function (which we will create next) for processing. Something worth noting is that we are getting the full document even though we did not turn on full document processing. This is because a create will create a change event for the trigger with the full document. Compare this with an update which will only return the fields that have changed unless we explicitly ask for the full document. When we do that, it forces the trigger do a lookup on the original document.
 - A common mistake we saw was the omitting of the fullDocument field in the match expression. The fullDocument field is required as the match is being run not on the document that fired the trigger but rather on the change event document that the trigger captured.
 - One common match expression we saw had explicit use of the $and operator. A match in MongoDB uses a logical AND by default when looking at multiple fields. Calling it out can make things more readable, so this is more of a code styling preference and no points were removed if a different style was used.
Now, of course, you could perform a match like this in your function but it would make the function needlessly complex. More importantly, every new sale document would call the function, meaning it would do unnecessary extra processing.
When the trigger conditions are met, we want this trigger to execute a Stitch Function. Stitch Functions are written in JavaScript and execute in a serverless style on the Stitch platform.
Create the Stitch Function
For this part of the challenge, we simply want a count of the documents that met the criteria. We could do a query after all the sales have been loaded, but using a trigger with a function gives us a "real-time" or "at the moment" view of the data. We could expand on this example to create real-time dashboards. We could even use Charts as we saw in the previous challenge.
From the Stitch Trigger page, let's link a function. We can link an existing function or create a new function. For this challenge, we will create a new function:
Creating a Linked Function
This will expand an editor window with the prepopulated code for a trigger:
Initial code template for a Function
The code template here shows some useful examples of how to work the with the changeEvent that is sent to the function. There's some great information here, but for this challenge we will not be using any of it. We simply need to get a total count of the number of times a document was created with the criteria described previously. We can't, though, just add one to a variable. Variables created in the function scope cease to exist when the function has been run. That means we need to store the running total in the database. Using the global context associated with our Stitch application we can get a handle to a collection where we will write that running total:
exports = function(changeEvent) {
 /* 1 */
 let collection =
 /* 2 */
 return collection.updateOne(
 {_id: 1},
 {$inc: {total: 1}},
 {upsert: true}
 ).then(result => {
 return result;
 }).catch(err => {
 return err;
The first line, /* 1 */ gets the MongoDB Stitch service using the mongodb-atlas name. This name is created by default. We then get the sample_supplies database from the MongoDB Stitch service. Finally, we get a handle to a collection called sales_output which we store in the variable collection.
On second line, /* 2 */, we use the updateOne method of the collection object to increment the value in the total field by 1 for a single document with a query filter of {_id: 1}. If this document does not exist, it will be created because of the {upsert: true} arguments.
The updateOne method returns a promise. We chain the.then() method to simply return the results to the caller. We also chain the.catch() method, which catches errors, to return the error to the caller. Note that the caller, in this case, is the trigger we created.
This function is another of the answers we were looking for though we are not looking for the exact lines above, just something similar.
A couple of common mistakes (not necessarily wrong, just extra code) we saw were:
 - There was an extra check to the changeEvent object for an "insert" event. This check is not needed if we configure our trigger to only notify insert events.
 - There were validations on the changeEvent.fullDocument field to ensure the document met the query criteria. This is also not needed if we setup our match criteria correctly.
 - There were a couple entries where the updateOne method calls used an open query filter of {}. Although this does not cause an issue with this challenge as we are only storing one document in the collection, it could introduce a bug when we have more writers executing on the collection. We did not deduct any points for this difference.
Though these mistakes may be considered cosmetic, it is a best practice to only include meaningful instructions in cloud based serverless environments like Stitch Functions. In the cloud computing world we are charged for compute time of each function, reducing this compute time not only improves performance but can also save money (albeit minimal for each call) over time.
There's one last step to go in creating the function. Once we save it, let's go and edit the Function's settings. On the left hand menu click Functions, select the our newly created function, and go to its Settings page.
Function Settings
Ensure the function is marked as private so that only internal services can execute this function. Then enable run as system which allows this function to bypass any service rules that might be configured. We will learn more about services rules in an upcoming challenge.
Once finished and the changes are saved, we are now ready to load our sample data. Go back to the Atlas application page and load the sample data for the cluster.
Loading Sample Data
As the data loads, it will create various sample databases and collections. One of those will be the sample_supplies database and its sales collection where it will insert new documents, firing our trigger which in turn will call our function. Once the data is completely loaded we can go the Collections tab to view our data. Go into the sample_supplies database and look at the sales_output collection. You should see something like this:
Results in the sales_output collection
As easy


text:
The activity has helped to build the resilience of communities in Jamaica by using a reverse
osmosis technology, which provides approximately 1000 gallons of potable water daily for
students and staff. This includes a rainwater harvesting system that includes catchment and
The system is powered by small integrated wind/solar energy facility that will provide the
required electricity needed to purify the water. Simple slow speed wind generators that
produce 1 to 2 KW of power will be used to run the reverse-osmosis (RO) system that will be
used to convert sea water to fresh water. The wind generator uses locally obtained materials,
some of which are recycled.
The system is designed to produce fresh water from normally unused sources of water for
potable supply to 1000 people daily. Rainwater, brackish water and sea water is treated and
purified onsite to minimize distribution losses and increase the efficiency of the water
Education activities to promote the use of renewable energy are a distinct part of the
activity. It helps to build the capacities of the community and particularly engineering
students who are trained as they work on the manufacturing of components and measure wind
velocity and direction for sighting of the unit. The system is intended to be scalable for
easy replication in other schools, households and communities.
The activity aims to initiate a system for the replication of this low-cost technology, by
building capacity and empowering communities in the manufacture, sales and maintenance of the
unit. The activity has influenced policy in that the technology has been incorporated into
national energy policy.