I'm an educator and manager of an educational non-profit.
There are a handful of twitter profiles I rely on to open my mind every day. One of them is @CorinneTakara, an artist and teacher based in San Jose, CA where she does her studio work and runs a makerspace out of her garage called, aptly, The Nest, focused on design, biology, and engineering.
Currently, she's supporting a group of teens in the annual Biodesign Challenge showcasing future applications of biotechnology.
The Nest team explores expressive, sustainable design with cellular materials such as mycelium (the lacy, white vegetative root structure that supports the growth of mushrooms) and bioplastics using agar, derived from seaweed, and chitin, a material used in dissolvable surgical thread that's found in the exoskeletons of crustaceans and insects, and in outer sheaths of the mycelium fungus.
The team conducts many of its projects as a set "recipes." They grow and cure a substrate compound using "mycelium seeded bark" to fashion objects such as lampshades, containers, and other forms; they create unique castings and press-molded projects with bio plastics; they culture kombucha, the fermented tea drink, to develop a "scoby," the rubbery layer of yeast and bacteria that can be dried, then crafted as a project material.
Part science lab, part artistic experiment, part eye-opening experience with the natural world, these GIY (grow-it-yourself) projects focus deeply on nature, its processes and characteristics, and our ability to construct things with organic materials.
For more context, I reached out to Tito Jankowski, one of the co-founders of the original biohacking space, BioCurious; he runs Impossible Labs, a consultancy focused on climate, and serves as an advisor for Corinne's high school students and their work on the Biodesign Challenge.
Tito described the backdrop for these explorations of natural material as an emergent offshoot of the revolutionary research done on the human genome project, which, in addition to launching the genomics revolution, introduced the transformative discipline known as Synthetic Biology, or SynBio, combining biology, chemistry, and computation.
He talked about companies such as Materiom, Ecovative, Bolt Threads, and Memphis Meats, commenting that projects like these are going to re-shape industrial materials, grow renewable sourcing for clothing, and provide new food sources and cellular protein.
Corinne is developing the work at the Nest makerspace iteratively, through small group work and applied, artistic experimentation, showing us how to use natural materials to create organic (no pun intended) and evocative projects that have specific and personal applications.
Makerspace coordinators and curious hands-on learners everywhere who want get some dirt, maybe some mycelium, under your fingernails, please take notice.
You are just getting back from the Fablearn conference at Teachers College and Columbia University in NYC where you and a student team you're working with presented their "Living Leather Project" — can you share some details on this work?
Yes! I am working with a small team of teen girls who are exploring creating a toy kit that others can grow and share. The team envisions a kit experience that introduces bacterial cellulose and mycelium as sustainable materials to grow and build play experiences from. For example, they designed small 3D printed wings (shared on Tinkercad) that can be skinned with bacterial cellulose and snapped to Legos. They are also designing vacuum formed flower pot creature molds to grow mycelium in. A waste stream substrate such as coffee grounds or plant cuttings is incubated with mycelium and pressed into these molds to grow the forms. They are also thinking about process and how to build culture fails into the play experience. For example, they have designed a petri dish kaleidoscope that one can put scraps of substrate and failed culture growths into. They are also imagining an "open when fails" envelope with fun ideas for extended play with failed material growths. Here is their project website that they are slowly fleshing out.
If we can learn about a maker from the materials and tools she chooses, what can we learn about you from this palette: mycelium, silkworms, mealworms, algae, chitin and kombucha?
Maybe it highlights my curiosity for a slower approach to making and my love of nature in all its forms. It also highlights my desire to find accessible entry points to engaging people in conversations centered on biomaterials and sustainability design. I wanted to explore materials that are low cost, relatively easy to grown, easy to dispose of, and break down the fear factor. Humble organisms in often overlooked corners of nature may be key to deep innovation in sustainable design, but the general public has a fear of many of these organisms. I think it is important to break down these fears with creative craft activities that give the public hands on experience with grown biomaterials so that they, too, can start imagining applications for these materials in their world.
"Grow It Yourself" projects introduce an implicit focus on materials that have a relationship to the natural world. A clear extension of this idea comes in the ways that local communities and cultures put these materials to use. Can you talk about this aspect of the work and your interest in this approach to materials?
In my youth workshops in various communities, I see a pretty profound student illiteracy in the natural world around them. Students don't know the names of the plants in front of their schools, or the names of the veins of water that lace their communities under or above ground. A great way to connect youth to nature is through culture, their own and others. My dad spent his early childhood on a Maui plantation and the community creatively repurposed both manmade materials and natural materials consumed from their environment. Their creative thriftiness blended rural traditional Japanese practices with the innovative practices of other cultures on the plantations. This thoughtful use of materials has inspired both my workshops and my fine art, which is often a patchwork of artifact from plantation era Hawaii blended with modern day artifacts.
As we bring in locally sourced materials into our maker experiences and as we look to natural building materials, we will also need to look at a broader range of traditional cultural practices for inspiration. Casting the net wider for deeper innovation paths with biology will give us opportunities to engage students through their own cultural traditions and historical practices.
I love to show students a slide of a Cameroon musgum dwelling next to the four finalists of a recent NASA Mars 3D printed habitat challenge. The modern designs clearly drew inspiration from humanity's past knowledge of building from on-site materials. The musgum dwelling looks like it is one of the design finalists. The form of a musgum dwelling has the best load bearing properties for a self supporting soil structure. The patterned veins in the facade are not just decorative, but help guide the flow of rain. The rain flow accentuates the pattern, rather than collapsing the structure. So in addition to fungus, bacteria and worms, I think we also need to add mud into our makerspaces. We need to be looking backwards as well as forward.
From your current focus on cellular materials and design to your personal artworks and commissions, there's a wonderful use of collage, man-made and natural materials, traditional forms — like a kimono, say — and a keen, playful sense for how to engage the public in your process and your artworks. Can you talk about the "dialogue" that unfolds between yourself as an artist, a maker, a community member?
I am so glad you observed these themes across my work. Often I am sparked by conversations centered on place and identity, whether I am using bio materials or scraps of Asian food wrappers. Since much of my art exploration is grant funded, I am able to develop public participatory workshops that engage people with the materials I use in my work and we can tinker together. In our rapidly shifting neighborhoods, I believe we need to be in constant conversation to build deeper a sense of community and art can be a part of that dialog. Artifacts from our varied pasts, present, and artifacts which we grow can anchor us to place through the stories that emerge when when combine them in new ways. I find this recombination so exciting. This collaging can illuminate a sense of personal and collective identity which is both familiar and surprising. Though this dialog in art, we can share stories of where we came from and hint at where we are going.
As an educator, workshop leader, mentor and coach, you're constantly imagining experiences that can introduce prompts or provocations in ways that will lead participants in new directions — ideally in ways that increase confidence and curiosity.
How you design workshop activities? For example, you've commented that the "How might we" prompt has been especially effective at inviting girls into complex conversations about design and purpose.
When I design a workshop activity, I frame it as a conversation starter that I hope carries over into people's discussions at home. The best way to get people engaged in expressing themselves is to keep things open-ended and to let them know that there is no one correct artifact outcome to an activity. Often, I am barely ahead of participants on the learning curve with a technology or medium that is used in a workshop. This creates a truly collaborative environment as we, together, are exploring answers and approaches to a question and a medium. Public pop-up experiences that engage a greater diversity of people in conversations of "How might we?" can give people confidence to look at their own creativity as part of their community's problem solving tool kit.
In regards to the [Biodesign Challenge] team, so much of what they are doing I have never done or even prototyped out before. So the questions I ask are ones they have to hunt down and we have to research and reach out to others for clarification and direction. We have been very fortunate in having many Skype discussion with wonderful experts willing to talk with the girls (like Keegan Kirkpatrick, CEO of Redworks; Dr. Lynn Rothschild of NASA Ames Myco-Architecture Program; Liam Nilsen, Learning Experience Designer at Lego, Denmark; and, of course, Tito Jankowski, Co-Founder and CEO of Impossible Labs).
Often as they are figuring out how to tackle a workshop project, the girls each experiment with a different approach, and then discuss and combine the best direction based on their collective explorations. They know they are not going to receive a prescriptive step-by-step lesson from me, and I think this builds their curiosity and collaboration skills. They share out loud what they discover during the process of what they are doing as they are inventing the process as they go. When the outcome of an exploration is not what they want or what they expect, they discuss and decide where to pivot. Moments of failure are not failures, but spots where they identified a new direction to move into.
Let's close with some more details on the Biodesign Challenge and your work with Tito. The challenge encapsulates so many important ideas — from equity in STEM to imagining sustainable futures. What can you share about the team's progress so far and the example this work is offering for teens and high school students?
This year the challenge opened up to high schools. There is a need for biodesign journeys for young adult learners since solutions to our pressing environmental issues will depend upon deep innovation through blended explorations across disciplines.
Teen groups exploring these issues from an art/design angle can create a point of entry for biodesign conversations with a larger public and younger ages.
The team is asking themselves this question: how might we develop playful and engaging biomaterial design experiences that make sustainability topics fun, exploratory, and expand people's sense of agency and deep connection to the nature around them?
After focusing initially on three categories (fashion, food and play), my Nest Makerspace team narrowed their focus to play and with the goal of developing a grow-it-yourself toy kit, GIY BioBuddies.
They aim to create low cost, flexible, and playful introductions to growing and using biomaterials. They want their kit to provide accessible, play-based points of entry on these experiences using locally sourced natural materials as well as waste stream materials.
Tito has been a great mentor and challenged them to think about a few key things when working with the biological materials they have chosen. Given the short material lifespan of kombucha leather, how might you design for that planned obsolescence? How might one tap into local wastes streams as feedstock for the kits? He advised them to make instructions fun and simple and perhaps number tools with stickers that match numbers in instructions.
Along the way, they have been growing bacterial cellulose, pressing mycelium inclubated substrates into mold forms, exploring 3D printing, vacuum forming, collecting natural materials from parks, and are envisioning the potential for a biomaterial incubator that houses drying racks and has a cooking timer that displays days and weeks, rather than hours and minutes.
One aspect that the Biodesign Challenge highlights is testing ideas and involving the target user groups along the path of idea development. With this in mind, the team is doing a lot of surveys and workshops to build their knowledge.
Next month, on the 28th of April, the Tech Museum of Innovation is opening up their Biotinkering Lab to the team so they can conduct their kombucha leather activities: petri dish kaleidoscope, Lego compatible kombucha leather wings, and kombucha leather paper dolls. On April 13th at the Cupertino Earth & Arbor Day Festival, the team will test their mycelium creature planters activity – children will build their creature mixing and matching bases of grown mycelium forms and adding local natural materials to decorate them. The final touch is to plant a sprout in the container.
These planters are grown in vacuum form molds the girls made from recycled milk jugs using vacuum forming based on 3D printed designs they created in Tinkercad. If time allows, they may conduct a kombucha leather activity at the AYA Makerspace in East San Jose. All these workshops will help them refine their activities and inform the design and look and feel of their kit system.
For more background on Corinne's work, her studio projects, maker workshops, collaborations, and some examples of companies exploring biological materials, see the links below.
Okada Design; @CorinneTakara; the #biotinkering hashtag; the BioChallenge website; the NEST Makerspace weebly; the GIYBiobuddies website; and the deck Corinne shared at the recent Fablearn Conference at Teachers College.
Don't miss the Nest Makerspace Biodesign Challenge Syllabus 2018-2019 — it's an excellent resource for thinking about introductory teaching and learning in the emerging field of natural materials and design.
Curious about the Mud Dwellings of the Musgum Tribe in Cameroon?


text:
SABRE-Relay: A Versatile Route to Hyperpolarization
Soumya S. Roy, Kate M. Appleby, Elizabeth J. Fear, Simon B. Duckett*
Signal Amplification by Reversible Exchange (SABRE) is used to switch on the latent singlet spin order of para-hydrogen (p-H2) so that it can hyperpolarize a substrate (sub = nicotinamide, nicotinate, niacin, pyrimidine and pyrazine). The substrate then reacts reversibly with [Pt(OTf)2(bis-diphenylphosphinopropane)] by displacing OTf- to form [Pt(OTf)(sub)(bis-diphenylphosphinopropane)]OTf. The 31P NMR signals of these metal complexes prove to be enhanced when the substrate possesses an accessible singlet state or long-lived Zeeman polarization. In the case of pyrazine, the corresponding 31P signal was 105 ± 8 times larger than expected, which equated to an 8-hour reduction in total scan time for an equivalent signal to noise ratio under normal acquisition conditions. Hence p-H2 derived spin order is successfully relayed into a second metal complex via a suitable polarization carrier (sub). When fully developed we expect this route involving a second catalyst to successfully hyperpolarize many classes of substrate that are not amenable to normal SABRE.
jz-2017-03026f.R3
JOURNAL OF PHYSICAL CHEMISTRY LETTERS
https://doi.org/10.1021/acs.jpclett.7b03026
© American Chemical Society. This is an author-produced version of the published paper. Uploaded in accordance with the publisher's self-archiving policy. Further copying may not be permitted; contact the publisher for details
10.1021/acs.jpclett.7b03026
SABRE_Revised
Accepted author manuscript, 206 KBLicence: Unspecified
Activities per year 2018 2018 2018
Working with parahydrogen: Opportunities for the future
Simon B. Duckett (Speaker)
Duckett, S. B.
Project: Research project (funded) › Research
Hyperpolarisation using SABRE as a new tool for imaging
Duckett, S. B. & Green, G. G. R.
Duckett, S. B. (Creator), Roy, S. S. (Data Collector), Appleby, K. M. (Data Collector) & Fear, E. (Data Collector), University of York, 12 Mar 2018
DOI: 10.15124/e224ee4c-ff8f-4d6a-b2f5-cb9524664cac
Roy, S. S., Appleby, K. M., Fear, E. J., & Duckett, S. B. (2018). SABRE-Relay: A Versatile Route to Hyperpolarization. JOURNAL OF PHYSICAL CHEMISTRY LETTERS, 9(5), 1112-1117. [jz-2017-03026f.R3]. https://doi.org/10.1021/acs.jpclett.7b03026
Roy, Soumya S. ; Appleby, Kate M. ; Fear, Elizabeth J. et al. / SABRE-Relay : A Versatile Route to Hyperpolarization. In: JOURNAL OF PHYSICAL CHEMISTRY LETTERS. 2018 ; Vol. 9, No. 5. pp. 1112-1117.
@article{9a43be14a9d7472b8d48dc24d7f013db,
title = "SABRE-Relay: A Versatile Route to Hyperpolarization",
abstract = "Signal Amplification by Reversible Exchange (SABRE) is used to switch on the latent singlet spin order of para-hydrogen (p-H2) so that it can hyperpolarize a substrate (sub = nicotinamide, nicotinate, niacin, pyrimidine and pyrazine). The substrate then reacts reversibly with [Pt(OTf)2(bis-diphenylphosphinopropane)] by displacing OTf- to form [Pt(OTf)(sub)(bis-diphenylphosphinopropane)]OTf. The 31P NMR signals of these metal complexes prove to be enhanced when the substrate possesses an accessible singlet state or long-lived Zeeman polarization. In the case of pyrazine, the corresponding 31P signal was 105 ± 8 times larger than expected, which equated to an 8-hour reduction in total scan time for an equivalent signal to noise ratio under normal acquisition conditions. Hence p-H2 derived spin order is successfully relayed into a second metal complex via a suitable polarization carrier (sub). When fully developed we expect this route involving a second catalyst to successfully hyperpolarize many classes of substrate that are not amenable to normal SABRE. ",
author = "Roy, {Soumya S.} and Appleby, {Kate M.} and Fear, {Elizabeth J.} and Duckett, {Simon B.}",
note = "{\textcopyright} American Chemical Society. This is an author-produced version of the published paper. Uploaded in accordance with the publisher{\textquoteright}s self-archiving policy. Further copying may not be permitted; contact the publisher for details",
doi = "10.1021/acs.jpclett.7b03026",
journal = "JOURNAL OF PHYSICAL CHEMISTRY LETTERS",
Roy, SS, Appleby, KM, Fear, EJ & Duckett, SB 2018, 'SABRE-Relay: A Versatile Route to Hyperpolarization', JOURNAL OF PHYSICAL CHEMISTRY LETTERS, vol. 9, no. 5, jz-2017-03026f.R3, pp. 1112-1117. https://doi.org/10.1021/acs.jpclett.7b03026
SABRE-Relay : A Versatile Route to Hyperpolarization. / Roy, Soumya S.; Appleby, Kate M.; Fear, Elizabeth J. et al.
In: JOURNAL OF PHYSICAL CHEMISTRY LETTERS, Vol. 9, No. 5, jz-2017-03026f.R3, 01.03.2018, p. 1112-1117.
T1 - SABRE-Relay
T2 - A Versatile Route to Hyperpolarization
AU - Roy, Soumya S.
AU - Appleby, Kate M.
AU - Fear, Elizabeth J.
AU - Duckett, Simon B.
N1 - © American Chemical Society. This is an author-produced version of the published paper. Uploaded in accordance with the publisher's self-archiving policy. Further copying may not be permitted; contact the publisher for details
N2 - Signal Amplification by Reversible Exchange (SABRE) is used to switch on the latent singlet spin order of para-hydrogen (p-H2) so that it can hyperpolarize a substrate (sub = nicotinamide, nicotinate, niacin, pyrimidine and pyrazine). The substrate then reacts reversibly with [Pt(OTf)2(bis-diphenylphosphinopropane)] by displacing OTf- to form [Pt(OTf)(sub)(bis-diphenylphosphinopropane)]OTf. The 31P NMR signals of these metal complexes prove to be enhanced when the substrate possesses an accessible singlet state or long-lived Zeeman polarization. In the case of pyrazine, the corresponding 31P signal was 105 ± 8 times larger than expected, which equated to an 8-hour reduction in total scan time for an equivalent signal to noise ratio under normal acquisition conditions. Hence p-H2 derived spin order is successfully relayed into a second metal complex via a suitable polarization carrier (sub). When fully developed we expect this route involving a second catalyst to successfully hyperpolarize many classes of substrate that are not amenable to normal SABRE.
AB - Signal Amplification by Reversible Exchange (SABRE) is used to switch on the latent singlet spin order of para-hydrogen (p-H2) so that it can hyperpolarize a substrate (sub = nicotinamide, nicotinate, niacin, pyrimidine and pyrazine). The substrate then reacts reversibly with [Pt(OTf)2(bis-diphenylphosphinopropane)] by displacing OTf- to form [Pt(OTf)(sub)(bis-diphenylphosphinopropane)]OTf. The 31P NMR signals of these metal complexes prove to be enhanced when the substrate possesses an accessible singlet state or long-lived Zeeman polarization. In the case of pyrazine, the corresponding 31P signal was 105 ± 8 times larger than expected, which equated to an 8-hour reduction in total scan time for an equivalent signal to noise ratio under normal acquisition conditions. Hence p-H2 derived spin order is successfully relayed into a second metal complex via a suitable polarization carrier (sub). When fully developed we expect this route involving a second catalyst to successfully hyperpolarize many classes of substrate that are not amenable to normal SABRE.
U2 - 10.1021/acs.jpclett.7b03026
DO - 10.1021/acs.jpclett.7b03026
JO - JOURNAL OF PHYSICAL CHEMISTRY LETTERS
JF - JOURNAL OF PHYSICAL CHEMISTRY LETTERS
M1 - jz-2017-03026f.R3
Roy SS, Appleby KM, Fear EJ, Duckett SB. SABRE-Relay: A Versatile Route to Hyperpolarization. JOURNAL OF PHYSICAL CHEMISTRY LETTERS. 2018 Mar 1;9(5):1112-1117. jz-2017-03026f.R3. Epub 2018 Feb 12. doi: 10.1021/acs.jpclett.7b03026

redpajama_set_name: RedPajamaCommonCrawl


Some people use the internet to find information about the medicine their family member is taking. Not all the information on the internet is from a trusted place.
Check that the information you read on the internet is up to date and hosted by a trusted group, such as the Australian Government or a well-known support group. Any claims made about a medicine or a treatment should be supported by scientific studies.
This website has help sheets about common medicines used to treat dementia.
All help sheets on the Alzheimer's Australia website can be ordered in other languages.
This website has information about all medicines and tips on how to take the right medicine at the right time.
Some medicine information is available on this website in other languages.


Victaulic now offers innovative solutions for the control and management of fire protection systems specifically as it relates to water supply and pressure control.
Regardless of application, dependable operation and ease of service are important to your bottom line. Fire protection hydraulic control valves with improved flow capacity, decreased water hammer and simplified maintenance can increase operating life and reduce total cost of ownership for the fire protection system. Victaulic's advanced valve designs do exactly that.


text:
Romany Malco Wants Hollywood to See Black Films as Destined for More Than Just 'Urban Distribution'
Malco sounded off on the state of Black cinema during a recent IndieWire live conversation.
Ryan Lattanzio
Longtime actor and music producer Romany Malco is best known for his roles on "Weeds" and "A Million Little Things," but he's also a filmmaker in his own right with this year's "Tijuana Jackson: Purpose Over Prison," and has been a vocal advocate for Black visibility in media throughout his career. Malco recently spoke with IndieWire during an Instagram live conversation moderated by Executive Editor and Chief Film Critic Eric Kohn, where he touched on many of the issues he's championed in Hollywood. That includes wanting studios to see Black movies relegated beyond mere "urban distribution," as he put it, but he also expressed his optimism for the future of Black independent storytellers. Watch the full video conversation above.
"We've made some shifts," Malco said during the interview in regards to Hollywood's inclusiveness of Black stories. "But until we're actually allowed to write our own stories, and have equity, meaning have ownership in the content, and ownership in its distribution, I'm not impressed. And so, I would say, yeah, there's been a little bit of a shift. But, Hollywood's got an antiquated [view] — real talk, Hollywood sees this as destined for one thing: urban distribution, because there's a black lead, me and Regina Hall," Malco said about "Tijuana Jackson: Purpose Over Prison." The movie, written and directed by and starring Malco, centers on an ex-convict with aspirations of becoming a motivational speaker, was released by Cranked Up Films in July. (Here's how to watch the film on VOD.)
"The tide is changing. The avenues are changing. And that's why I'm saying to people, especially with independent film, if you're an independent filmmaker and you have a story to tell, an authentic depiction of minorities, and you believe you can tell it better than anybody else, I believe this is your opportunity to get this story out there," he said. "Hollywood is making an attempt to make that adjustment, but we've got a long way to go."
Check out other IndieWire Live videos here. Other guests have included Rachel Morrison, Hannibal Buress, Elijah Wood, Guillermo del Toro, Danny Trejo, Eric Andre, Nicholas Britell, Julia Garner, Lulu Wang, Barry Jenkins, Diego Luna.
This Article is related to: Film, Video and tagged Direct, IndieWire Live, Romany Malco, Video


text:
Q: How do I tokenise a string in C++ into substrings I have:
string content;

which is inputed by the user.
For example:
content = "I am new to this site".

I want to loop through this string and for each word in the sentence I want to run a function which processes the word.
something like this:
for(int i = 0; i < stringSize; i++){
//remove a word from the string
process(word);
}

Any help would be much appreciated. Thank you

A: To split a std::string on whitespace (space, tab, newline etc.) when you can use the following:
std::string content = "I am new to this site";
std::vector<std::string> words;  // Will contain each word of the `content` string

std::istringstream iss(content);
std::copy(std::istream_iterator<std::string>(iss),
          std::istream_iterator<std::string>(),
          std::back_inserter(words));

for (const std::string& w : words)
    std::cout << w << '\n';

The above code snippet will print out each word in content, one word on each line.
References:

*

*std::vector

*std::istringstream

*std::copy

*std::istream_iterator

*std::back_inserter

*range-based for loops

A: Here's a function that takes a string and returns a list of tokens.
std::vector<std::string> tokenize(std::string const& content)
{
   std::vector<std::string> tokens;
   size_t iter = 0;
   size_t next = 0;
   while ( ( next = content.find(" ", iter)) != std::string::npos )
   {
      tokens.push_back(content.substr(iter, next-iter));
      iter = ++next;
   }
   tokens.push_back(content.substr(iter));
   return tokens;
}

Here's the main function I used to test it.
int main()
{
   std::string content = "I am new to this site";
   std::vector<std::string> tokens = tokenize(content);
   std::vector<std::string>::iterator iter = tokens.begin();
   for ( ; iter != tokens.end(); ++iter )
   {
      std::cout << *iter << std::endl;
   }
}

Here's the output:

I
am
new
to
this
site

A: Here is a boost solution just for the fun of it. It will remove the string you don't want and treat successive delimiters as one. if you do not have C++11, replace the lambda with a pointer to your own function :
#include <boost/algorithm/string/find_iterator.hpp>
#include <boost/algorithm/string/split.hpp>
#include <boost/algorithm/string/classification.hpp>
#include <boost/algorithm/string.hpp>
using namespace std;

int main(int argc, char** argv)
{
    const string delim{' '};
    vector<string> splitVec;
    string inStr = "keep all this but remove THAT if you see it";
    boost::split( splitVec, inStr, boost::algorithm::is_any_of(&delim[0]), boost::token_compress_on );
    copy_if(splitVec.begin(),splitVec.end(), ostream_iterator<string>(cout," "), [](const string& argStr) -> bool { return(argStr != "THAT"); } );
}

Gives:
keep all this but remove if you see it

redpajama_set_name: RedPajamaStackExchange


Sample Interview Score Sheet Fascinating 48 Sheet Templates in Word Free Premium Templates picture is in category that can use for individual and noncommercial purpose because All trademarks referenced here in are the properties of their respective owners. You can browse other picture of Sample Interview Score Sheet Fascinating 48 Sheet Templates in Word Free Premium Templates in our galleries below. If you want to see other picture, you can browse our other category.
Sample Interview Score Sheet Fascinating 48 Sheet Templates in Word Free Premium Templates was posted in November 11 2018 at 7:30 am and has been seen by 234 users. If you want to view image in full size just click image on gallery or click "View Image" at the bottom of the image.
Excel scoring template 48 Essential R Interview Questions With Answers Springboard Blog Judges score sheet template flybymediaco Interview Guide Administrative Assistant Template Sample Form Interview Questions for a Special Ed Teacher ToughNickel How do companies evaluate AMCAT score to select candidate for direct 48 Essential R Interview Questions With Answers Springboard Blog 48 Essential R Interview Questions With Answers Springboard Blog Top 48 education specialist interview questions and answers Geico Assessment Test Interview Preparation JobTestPrep Sample Interview Score Sheet.


text:
You are currently visiting shopify.com, would you like to visit your regional site?
Island Outfitters
islandoutfitters.com
Email Twitter Facebook Pinterest LinkedIn
Island Outfitters was born under a boutique mentality in a resort wear climate. Once the identity of the company was decided, it was easy to choose the products the company would sell. In New England, there are a few top brands that stand out in the resort wear category; Vineyard Vines, Lilly Pulitzer, Smathers & Branson, Sperry Top-sider and many more.
Once Greg was able to build relationships with these brands, it wasn't long before he began selling them at a rapid pace.
How did you earn your first sales? Which channels are now generating the most traffic and sales for you?
Gregory was born with a natural talent in sales. He could convince anyone they needed a pair of Nantucket red pants within ten minutes of walking into the store. Our customers appreciate the value of a good conversation and good music in our stores. Because of this reason, Island Outfitter's brick and mortar stores remain the channel that generates the most sales for the brand.
In today's day and age however, it has become increasingly important to remain relevant on internet platforms. Therefore, our second most important channel would be our website and social media platforms. We experience a high amount of traffic on Twitter and Instagram platforms helping aid our website traffic as well.
Tell us about the back-end of your business. What tools and apps do you use to run your store? How do you handle shipping and fulfillment?
The tools and apps we use to run our stores are fairly basic and straightforward, because of the reasons behind our brick and mortar success.
We use most relevant social media platforms: Instagram, Facebook, Twitter, Tumblr, Foursquare and LinkedIn. We also use other apps that help gauge our traffic on these platforms like TweetDeck, Followers (for Instagram), Klout, Facebook Insights and others as well. As for shipping and fufillment, we ship all of our products from one of our seven stores, depending on availability. Because of location, many of the stores carry different ranges and sizes of products, so availability varies.
What are your top recommendations for new ecommerce entrepreneurs?
New store owners should understand the absolute importance of remaining relevant in today's changing retail landscape. Having knowledge in social media, social media trends, website trends and other things is extremely important in keeping your customers interested and buying.
At the end of the day, the customer is the most important part of the business, so keeping them in mind in everything you do is the best way to stay successful!
Thanks! We'll be in touch.
Belong Designs
Golden, Colorado, USA
Project Repat
Boston, Mass., USA
Little Joe Woman
Be the next Shopify success story
Contact Partner program Affiliate program App developers Investors Blog topics
USAChange your country or region.


text:
Q: How can I fetch data from MySQL in jQuery without a click of a button using an hidden field value? I'm trying to fetch a user information from MySQL by passing the value of an hidden field to jQuery without needing to click on a button, just at an interval of every x-minutes.
What I have so far:
function getdetails() {
    var value = $('#userId').val();
    $.ajax({
        type: "POST",
        url: "getInfo.php",
        data: 'myinfo=' + value,
        success: function (data) {
            $("#info").val(data);
        }
    });
    setInterval(function () {
        getdetails()
    }, 1000);
};

getinfo.php
  $id = $_POST['myinfo'];
  $query = "select * from alumni_users where userId = '$id' ";
  $update = mysqli_query($mysqli, $query);

  while($row = mysqli_fetch_array($update)){
  .......
  }

A: 0
Hi you can do it this way:
your php script:
if (isset($_POST["action"])) {
        $action = $_POST["action"];
        switch ($action) {
            case 'SLC':
                if (isset($_POST["id"])) {
                    $id = $_POST["id"];
                    if (is_int($id)) {
                        $query = "select * from alumni_users where userId = '$id' ";
                        $update = mysqli_query($mysqli, $query);
                        $response = array();
                        while($row = mysqli_fetch_array($update)){
                        .......
                        fill your response here

                        }
                       echo json_encode($response);
                    }
                }
                break;

        }
    }

Where action is a command you want to do SLC, UPD, DEL etc and id is a parameter
then in your ajax:
function getdetails() {
    var value = $('#userId').val();
   return $.ajax({
        type: "POST",
        url: "getInfo.php",
        data: 'myinfo=' + value
    })

}

call it like this:

getdetails().done(function(response){
var data=JSON.parse(response);
if (data != null) {
//fill your forms using your data
}
})

Hope it helps


text:
Q: Performing Breadth First Search recursively Let's say you wanted to implement a breadth-first search of a binary tree recursively. How would you go about it?
Is it possible using only the call-stack as auxiliary storage?

A: A simple BFS and DFS recursion in Java:
Just push/offer the root node of the tree in the stack/queue and call these functions.
public static void breadthFirstSearch(Queue queue) {

    if (queue.isEmpty())
        return;

    Node node = (Node) queue.poll();

    System.out.println(node + " ");

    if (node.right != null)
        queue.offer(node.right);

    if (node.left != null)
        queue.offer(node.left);

    breadthFirstSearch(queue);
}

public static void depthFirstSearch(Stack stack) {

    if (stack.isEmpty())
        return;

    Node node = (Node) stack.pop();

    System.out.println(node + " ");

    if (node.right != null)
        stack.push(node.right);

    if (node.left != null)
        stack.push(node.left);

    depthFirstSearch(stack);
}

A: Here is a BFS recursive traversal Python implementation, working for a graph with no cycle.
def bfs_recursive(level):
    '''
     @params level: List<Node> containing the node for a specific level.
    '''
    next_level = []
    for node in level:
        print(node.value)
        for child_node in node.adjency_list:
            next_level.append(child_node)
    if len(next_level) != 0:
        bfs_recursive(next_level)

class Node:
    def __init__(self, value):
        self.value = value
        self.adjency_list = []

A: I would like to add my cents to the top answer in that if the language supports something like generator, bfs can be done co-recursively.
To begin with, @Tanzelax's answer reads:

Breadth-first traversal traditionally uses a queue, not a stack. The nature of a queue and a stack are pretty much opposite, so trying to use the call stack (which is a stack, hence the name) as the auxiliary storage (a queue) is pretty much doomed to failure

Indeed, ordinary function call's stack won't behave like a normal stack. But generator function will suspend the execution of function so it gives us the chance to yield next level of nodes' children without delving into deeper descendants of the node.
The following code is recursive bfs in Python.
def bfs(root):
  yield root
  for n in bfs(root):
    for c in n.children:
      yield c

The intuition here is:

*

*bfs first will return the root as first result

*suppose we already have the bfs sequence, the next level of elements in bfs is the immediate children of previous node in the sequence

*repeat the above two procedures

A: I found a very beautiful recursive (even functional) Breadth-First traversal related algorithm. Not my idea, but i think it should be mentioned in this topic.
Chris Okasaki explains his breadth-first numbering algorithm from ICFP 2000 at http://okasaki.blogspot.de/2008/07/breadth-first-numbering-algorithm-in.html very clearly with only 3 pictures.
The Scala implementation of Debasish Ghosh, which i found at http://debasishg.blogspot.de/2008/09/breadth-first-numbering-okasakis.html, is:
trait Tree[+T]
case class Node[+T](data: T, left: Tree[T], right: Tree[T]) extends Tree[T]
case object E extends Tree[Nothing]

def bfsNumForest[T](i: Int, trees: Queue[Tree[T]]): Queue[Tree[Int]] = {
  if (trees.isEmpty) Queue.Empty
  else {
    trees.dequeue match {
      case (E, ts) =>
        bfsNumForest(i, ts).enqueue[Tree[Int]](E)
      case (Node(d, l, r), ts) =>
        val q = ts.enqueue(l, r)
        val qq = bfsNumForest(i+1, q)
        val (bb, qqq) = qq.dequeue
        val (aa, tss) = qqq.dequeue
        tss.enqueue[org.dg.collection.BFSNumber.Tree[Int]](Node(i, aa, bb))
    }
  }
}

def bfsNumTree[T](t: Tree[T]): Tree[Int] = {
  val q = Queue.Empty.enqueue[Tree[T]](t)
  val qq = bfsNumForest(1, q)
  qq.dequeue._1
}

A: The dumb way:
template<typename T>
struct Node { Node* left; Node* right; T value; };

template<typename T, typename P>
bool searchNodeDepth(Node<T>* node, Node<T>** result, int depth, P pred) {
    if (!node) return false;
    if (!depth) {
        if (pred(node->value)) {
            *result = node;
        }
        return true;
    }
    --depth;
    searchNodeDepth(node->left, result, depth, pred);
    if (!*result)
        searchNodeDepth(node->right, result, depth, pred);
    return true;
}

template<typename T, typename P>
Node<T>* searchNode(Node<T>* node, P pred) {
    Node<T>* result = NULL;
    int depth = 0;
    while (searchNodeDepth(node, &result, depth, pred) && !result)
        ++depth;
    return result;
}

int main()
{
    // a c   f
    //  b   e
    //    d
    Node<char*>
        a = { NULL, NULL, "A" },
        c = { NULL, NULL, "C" },
        b = { &a, &c, "B" },
        f = { NULL, NULL, "F" },
        e = { NULL, &f, "E" },
        d = { &b, &e, "D" };

    Node<char*>* found = searchNode(&d, [](char* value) -> bool {
        printf("%s\n", value);
        return !strcmp((char*)value, "F");
    });

    printf("found: %s\n", found->value);

    return 0;
}

A: Here is short Scala solution:
  def bfs(nodes: List[Node]): List[Node] = {
    if (nodes.nonEmpty) {
      nodes ++ bfs(nodes.flatMap(_.children))
    } else {
      List.empty
    }
  }

Idea of using return value as accumulator is well suited.
Can be implemented in other languages in similar way, just make sure that your recursive function process list of nodes.
Test code listing (using @marco test tree):
import org.scalatest.FlatSpec

import scala.collection.mutable

class Node(val value: Int) {

  private val _children: mutable.ArrayBuffer[Node] = mutable.ArrayBuffer.empty

  def add(child: Node): Unit = _children += child

  def children = _children.toList

  override def toString: String = s"$value"
}

class BfsTestScala extends FlatSpec {

  //            1
  //          / | \
  //        2   3   4
  //      / |       | \
  //    5   6       7  8
  //  / |           | \
  // 9  10         11  12
  def tree(): Node = {
    val root = new Node(1)
    root.add(new Node(2))
    root.add(new Node(3))
    root.add(new Node(4))
    root.children(0).add(new Node(5))
    root.children(0).add(new Node(6))
    root.children(2).add(new Node(7))
    root.children(2).add(new Node(8))
    root.children(0).children(0).add(new Node(9))
    root.children(0).children(0).add(new Node(10))
    root.children(2).children(0).add(new Node(11))
    root.children(2).children(0).add(new Node(12))
    root
  }

  def bfs(nodes: List[Node]): List[Node] = {
    if (nodes.nonEmpty) {
      nodes ++ bfs(nodes.flatMap(_.children))
    } else {
      List.empty
    }
  }

  "BFS" should "work" in {
    println(bfs(List(tree())))
  }
}

Output:
List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)

A: If you use an array to back the binary tree, you can determine the next node algebraically. if i is a node, then its children can be found at 2i + 1 (for the left node) and 2i + 2 (for the right node). A node's next neighbor is given by i + 1, unless i is a power of 2
Here's pseudocode for a very naive implementation of breadth first search on an array backed binary search tree. This assumes a fixed size array and therefore a fixed depth tree. It will look at parentless nodes, and could create an unmanageably large stack.
bintree-bfs(bintree, elt, i)
    if (i == LENGTH)
        return false

    else if (bintree[i] == elt)
        return true

    else
        return bintree-bfs(bintree, elt, i+1)

A: I couldn't find a way to do it completely recursive (without any auxiliary data-structure). But if the queue Q is passed by reference, then you can have the following silly tail recursive function:
BFS(Q)
{
  if (|Q| > 0)
     v <- Dequeue(Q)
     Traverse(v)
     foreach w in children(v)
        Enqueue(Q, w)

     BFS(Q)
}

A: Here's a python implementation:
graph = {'A': ['B', 'C'],
         'B': ['C', 'D'],
         'C': ['D'],
         'D': ['C'],
         'E': ['F'],
         'F': ['C']}

def bfs(paths, goal):
    if not paths:
        raise StopIteration

    new_paths = []
    for path in paths:
        if path[-1] == goal:
            yield path

        last = path[-1]
        for neighbor in graph[last]:
            if neighbor not in path:
                new_paths.append(path + [neighbor])
    yield from bfs(new_paths, goal)

for path in bfs([['A']], 'D'):
    print(path)

A: Here's a Scala 2.11.4 implementation of recursive BFS. I've sacrificed tail-call optimization for brevity, but the TCOd version is very similar. See also @snv's post.
import scala.collection.immutable.Queue

object RecursiveBfs {
  def bfs[A](tree: Tree[A], target: A): Boolean = {
    bfs(Queue(tree), target)
  }

  private def bfs[A](forest: Queue[Tree[A]], target: A): Boolean = {
    forest.dequeueOption exists {
      case (E, tail) => bfs(tail, target)
      case (Node(value, _, _), _) if value == target => true
      case (Node(_, l, r), tail) => bfs(tail.enqueue(List(l, r)), target)
    }
  }

  sealed trait Tree[+A]
  case class Node[+A](data: A, left: Tree[A], right: Tree[A]) extends Tree[A]
  case object E extends Tree[Nothing]
}

A: The following seems pretty natural to me, using Haskell. Iterate recursively over levels of the tree (here I collect names into a big ordered string to show the path through the tree):
data Node = Node {name :: String, children :: [Node]}
aTree = Node "r" [Node "c1" [Node "gc1" [Node "ggc1" []], Node "gc2" []] , Node "c2" [Node "gc3" []], Node "c3" [] ]
breadthFirstOrder x = levelRecurser [x]
    where levelRecurser level = if length level == 0
                                then ""
                                else concat [name node ++ " " | node <- level] ++ levelRecurser (concat [children node | node <- level])

A: The following method used a DFS algorithm to get all nodes in a particular depth - which is same as doing BFS for that level. If you find out depth of the tree and do this for all levels, the results will be same as a BFS.
public void PrintLevelNodes(Tree root, int level) {
    if (root != null) {
        if (level == 0) {
            Console.Write(root.Data);
            return;
        }
        PrintLevelNodes(root.Left, level - 1);
        PrintLevelNodes(root.Right, level - 1);
    }
}

for (int i = 0; i < depth; i++) {
    PrintLevelNodes(root, i);
}

Finding depth of a tree is a piece of cake:
public int MaxDepth(Tree root) {
    if (root == null) {
        return 0;
    } else {
        return Math.Max(MaxDepth(root.Left), MaxDepth(root.Right)) + 1;
    }
}

A: (I'm assuming that this is just some kind of thought exercise, or even a trick homework/interview question, but I suppose I could imagine some bizarre scenario where you're not allowed any heap space for some reason [some really bad custom memory manager? some bizarre runtime/OS issues?] while you still have access to the stack...)
Breadth-first traversal traditionally uses a queue, not a stack.  The nature of a queue and a stack are pretty much opposite, so trying to use the call stack (which is a stack, hence the name) as the auxiliary storage (a queue) is pretty much doomed to failure, unless you're doing something stupidly ridiculous with the call stack that you shouldn't be.
On the same token, the nature of any non-tail recursion you try to implement is essentially adding a stack to the algorithm.  This makes it no longer breadth first search on a binary tree, and thus the run-time and whatnot for traditional BFS no longer completely apply.  Of course, you can always trivially turn any loop into a recursive call, but that's not any sort of meaningful recursion.
However, there are ways, as demonstrated by others, to implement something that follows the semantics of BFS at some cost.  If the cost of comparison is expensive but node traversal is cheap, then as @Simon Buchan did, you can simply run an iterative depth-first search, only processing the leaves.  This would mean no growing queue stored in the heap, just a local depth variable, and stacks being built up over and over on the call stack as the tree is traversed over and over again.  And as @Patrick noted, a binary tree backed by an array is typically stored in breadth-first traversal order anyway, so a breadth-first search on that would be trivial, also without needing an auxiliary queue.

A: I had to implement a heap traversal which outputs in a BFS order. It isn't actually BFS but accomplishes the same task.
private void getNodeValue(Node node, int index, int[] array) {
    array[index] = node.value;
    index = (index*2)+1;

    Node left = node.leftNode;
    if (left!=null) getNodeValue(left,index,array);
    Node right = node.rightNode;
    if (right!=null) getNodeValue(right,index+1,array);
}

public int[] getHeap() {
    int[] nodes = new int[size];
    getNodeValue(root,0,nodes);
    return nodes;
}

A: Let v be the starting vertex
Let G be the graph in question
The following is the pseudo code without using queue
Initially label v as visited as you start from v
BFS(G,v)
    for all adjacent vertices w of v in G:
        if vertex w is not visited:
            label w as visited
    for all adjacent vertices w of v in G:
        recursively call BFS(G,w)

A: BFS for a binary (or n-ary) tree can be done recursively without queues as follows (here in Java):
public class BreathFirst {

    static class Node {
        Node(int value) {
            this(value, 0);
        }
        Node(int value, int nChildren) {
            this.value = value;
            this.children = new Node[nChildren];
        }
        int value;
        Node[] children;
    }

    static void breathFirst(Node root, Consumer<? super Node> printer) {
        boolean keepGoing = true;
        for (int level = 0; keepGoing; level++) {
            keepGoing = breathFirst(root, printer, level);
        }
    }

    static boolean breathFirst(Node node, Consumer<? super Node> printer, int depth) {
        if (depth < 0 || node == null) return false;
        if (depth == 0) {
            printer.accept(node);
            return true;
        }
        boolean any = false;
        for (final Node child : node.children) {
            any |= breathFirst(child, printer, depth - 1);
        }
        return any;
    }
}

An example traversal printing numbers 1-12 in ascending order:
public static void main(String... args) {
    //            1
    //          / | \
    //        2   3   4
    //      / |       | \
    //    5   6       7  8
    //  / |           | \
    // 9  10         11  12

    Node root = new Node(1, 3);
    root.children[0] = new Node(2, 2);
    root.children[1] = new Node(3);
    root.children[2] = new Node(4, 2);
    root.children[0].children[0] = new Node(5, 2);
    root.children[0].children[1] = new Node(6);
    root.children[2].children[0] = new Node(7, 2);
    root.children[2].children[1] = new Node(8);
    root.children[0].children[0].children[0] = new Node(9);
    root.children[0].children[0].children[1] = new Node(10);
    root.children[2].children[0].children[0] = new Node(11);
    root.children[2].children[0].children[1] = new Node(12);

    breathFirst(root, n -> System.out.println(n.value));
}

A: #include <bits/stdc++.h>
using namespace std;
#define Max 1000

vector <int> adj[Max];
bool visited[Max];

void bfs_recursion_utils(queue<int>& Q) {
    while(!Q.empty()) {
        int u = Q.front();
        visited[u] = true;
        cout << u << endl;
        Q.pop();
        for(int i = 0; i < (int)adj[u].size(); ++i) {
            int v = adj[u][i];
            if(!visited[v])
                Q.push(v), visited[v] = true;
        }
        bfs_recursion_utils(Q);
    }
}

void bfs_recursion(int source, queue <int>& Q) {
    memset(visited, false, sizeof visited);
    Q.push(source);
    bfs_recursion_utils(Q);
}

int main(void) {
    queue <int> Q;
    adj[1].push_back(2);
    adj[1].push_back(3);
    adj[1].push_back(4);

    adj[2].push_back(5);
    adj[2].push_back(6);

    adj[3].push_back(7);

    bfs_recursion(1, Q);
    return 0;
}

A: Here is a JavaScript Implementation that fakes Breadth First Traversal with Depth First recursion. I'm storing the node values at each depth inside an array, inside of a hash. If a level already exists(we have a collision), so we just push to the array at that level. You could use an array instead of a JavaScript object as well since our levels are numeric and can serve as array indices. You can return nodes, values, convert to a Linked List, or whatever you want. I'm just returning values for the sake of simplicity.
BinarySearchTree.prototype.breadthFirstRec = function() {

    var levels = {};

    var traverse = function(current, depth) {
        if (!current) return null;
        if (!levels[depth]) levels[depth] = [current.value];
        else levels[depth].push(current.value);
        traverse(current.left, depth + 1);
        traverse(current.right, depth + 1);
    };

    traverse(this.root, 0);
    return levels;
};

var bst = new BinarySearchTree();
bst.add(20, 22, 8, 4, 12, 10, 14, 24);
console.log('Recursive Breadth First: ', bst.breadthFirstRec());
/*Recursive Breadth First:
{ '0': [ 20 ],
  '1': [ 8, 22 ],
  '2': [ 4, 12, 24 ],
  '3': [ 10, 14 ] } */

Here is an example of actual Breadth First Traversal using an iterative approach.
BinarySearchTree.prototype.breadthFirst = function() {

    var result = '',
        queue = [],
        current = this.root;

    if (!current) return null;
    queue.push(current);

    while (current = queue.shift()) {
        result += current.value + ' ';
        current.left && queue.push(current.left);
        current.right && queue.push(current.right);
    }
    return result;
};

console.log('Breadth First: ', bst.breadthFirst());
//Breadth First:  20 8 22 4 12 24 10 14

A: Following is my code for completely recursive implementation of breadth-first-search of a bidirectional graph without using loop and queue.

public class Graph
{
    public int V;
    public LinkedList<Integer> adj[];

    Graph(int v)
    {
        V = v;
        adj = new LinkedList[v];
        for (int i=0; i<v; ++i)
            adj[i] = new LinkedList<>();
    }

    void addEdge(int v,int w)
    {
        adj[v].add(w);
        adj[w].add(v);
    }

    public LinkedList<Integer> getAdjVerted(int vertex)
    {
        return adj[vertex];
    }

    public String toString()
    {
        String s = "";

        for (int i=0;i<adj.length;i++)
        {
            s = s +"\n"+i +"-->"+ adj[i] ;
        }
        return s;
    }
}

//BFS IMPLEMENTATION

public static void recursiveBFS(Graph graph, int vertex,boolean visited[], boolean isAdjPrinted[])
    {
        if (!visited[vertex])
        {
            System.out.print(vertex +" ");
            visited[vertex] = true;
        }

        if(!isAdjPrinted[vertex])
        {
            isAdjPrinted[vertex] = true;
            List<Integer> adjList = graph.getAdjVerted(vertex);
            printAdjecent(graph, adjList, visited, 0,isAdjPrinted);
        }
    }

    public static void recursiveBFS(Graph graph, List<Integer> vertexList, boolean visited[], int i, boolean isAdjPrinted[])
    {
        if (i < vertexList.size())
        {
            recursiveBFS(graph, vertexList.get(i), visited, isAdjPrinted);
            recursiveBFS(graph, vertexList, visited, i+1, isAdjPrinted);
        }
    }

    public static void printAdjecent(Graph graph, List<Integer> list, boolean visited[], int i, boolean isAdjPrinted[])
    {
        if (i < list.size())
        {
            if (!visited[list.get(i)])
            {
                System.out.print(list.get(i)+" ");
                visited[list.get(i)] = true;
            }
            printAdjecent(graph, list, visited, i+1, isAdjPrinted);
        }
        else
        {
            recursiveBFS(graph, list, visited, 0, isAdjPrinted);
        }
    }

A: C# implementation of recursive breadth-first search algorithm for a binary tree.
Binary tree data visualization
IDictionary<string, string[]> graph = new Dictionary<string, string[]> {
    {"A", new [] {"B", "C"}},
    {"B", new [] {"D", "E"}},
    {"C", new [] {"F", "G"}},
    {"E", new [] {"H"}}
};

void Main()
{
    var pathFound = BreadthFirstSearch("A", "H", new string[0]);
    Console.WriteLine(pathFound); // [A, B, E, H]

    var pathNotFound = BreadthFirstSearch("A", "Z", new string[0]);
    Console.WriteLine(pathNotFound); // []
}

IEnumerable<string> BreadthFirstSearch(string start, string end, IEnumerable<string> path)
{
    if (start == end)
    {
        return path.Concat(new[] { end });
    }

    if (!graph.ContainsKey(start)) { return new string[0]; }

    return graph[start].SelectMany(letter => BreadthFirstSearch(letter, end, path.Concat(new[] { start })));
}

If you want algorithm to work not only with binary-tree but with graphs what can have two and more nodes that points to same another node you must to avoid self-cycling by holding list of already visited nodes. Implementation may be looks like this.
Graph data visualization
IDictionary<string, string[]> graph = new Dictionary<string, string[]> {
    {"A", new [] {"B", "C"}},
    {"B", new [] {"D", "E"}},
    {"C", new [] {"F", "G", "E"}},
    {"E", new [] {"H"}}
};

void Main()
{
    var pathFound = BreadthFirstSearch("A", "H", new string[0], new List<string>());
    Console.WriteLine(pathFound); // [A, B, E, H]

    var pathNotFound = BreadthFirstSearch("A", "Z", new string[0], new List<string>());
    Console.WriteLine(pathNotFound); // []
}

IEnumerable<string> BreadthFirstSearch(string start, string end, IEnumerable<string> path, IList<string> visited)
{
    if (start == end)
    {
        return path.Concat(new[] { end });
    }

    if (!graph.ContainsKey(start)) { return new string[0]; }

    return graph[start].Aggregate(new string[0], (acc, letter) =>
    {
        if (visited.Contains(letter))
        {
            return acc;
        }

        visited.Add(letter);

        var result = BreadthFirstSearch(letter, end, path.Concat(new[] { start }), visited);
        return acc.Concat(result).ToArray();
    });
}

A: I have made a program using c++ which is working in joint and disjoint graph too .
    #include <queue>
#include "iostream"
#include "vector"
#include "queue"

using namespace std;

struct Edge {
    int source,destination;
};

class Graph{
    int V;
    vector<vector<int>> adjList;
public:

    Graph(vector<Edge> edges,int V){
        this->V = V;
        adjList.resize(V);
        for(auto i : edges){
            adjList[i.source].push_back(i.destination);
            //     adjList[i.destination].push_back(i.source);
        }
    }
    void BFSRecursivelyJoinandDisjointtGraphUtil(vector<bool> &discovered, queue<int> &q);
    void BFSRecursivelyJointandDisjointGraph(int s);
    void printGraph();

};

void Graph :: printGraph()
{
    for (int i = 0; i < this->adjList.size(); i++)
    {
        cout << i << " -- ";
        for (int v : this->adjList[i])
            cout <<"->"<< v << " ";
        cout << endl;
    }
}

void Graph ::BFSRecursivelyJoinandDisjointtGraphUtil(vector<bool> &discovered, queue<int> &q) {
    if (q.empty())
        return;
    int v = q.front();
    q.pop();
    cout << v <<" ";
    for (int u : this->adjList[v])
    {
        if (!discovered[u])
        {
            discovered[u] = true;
            q.push(u);
        }
    }
    BFSRecursivelyJoinandDisjointtGraphUtil(discovered, q);

}

void Graph ::BFSRecursivelyJointandDisjointGraph(int s) {
    vector<bool> discovered(V, false);
    queue<int> q;

    for (int i = s; i < V; i++) {
        if (discovered[i] == false)
        {
            discovered[i] = true;
            q.push(i);
            BFSRecursivelyJoinandDisjointtGraphUtil(discovered, q);
        }
    }
}

int main()
{

    vector<Edge> edges =
            {
                    {0, 1}, {0, 2}, {1, 2}, {2, 0}, {2,3},{3,3}
            };

    int V = 4;
    Graph graph(edges, V);
 //   graph.printGraph();
    graph.BFSRecursivelyJointandDisjointGraph(2);
    cout << "\n";

    edges = {
            {0,4},{1,2},{1,3},{1,4},{2,3},{3,4}
    };

    Graph graph2(edges,5);

    graph2.BFSRecursivelyJointandDisjointGraph(0);
    return 0;
}

A: I think this can be done using pointers, without using any QUEUE.
Basically we are maintaining two pointers at any point, one is pointing to the parents, the other is pointing to the children to be processed ( linkedlist to all which have been processed )
Now you simply assign the pointer of the child & when parent processing finishes you just make the child to be parent for processing next level
following is my code :
//Tree Node
struct Node {
    int val;
    Node* left;
    Node* right;
    Node* next;

    Node() : val(0), left(NULL), right(NULL), next(NULL) {}

    Node(int _val) : val(_val), left(NULL), right(NULL), next(NULL) {}

    Node(int _val, Node* _left, Node* _right, Node* _next)
        : val(_val), left(_left), right(_right), next(_next) {}
};

//Algorightm :
    void LevelTraverse(Node* parent,Node* chidstart,Node* childend ){
        if(!parent && !chidstart) return;  // we processed everything

        if(!parent && chidstart){ //finished processing last level
            parent=chidstart;chidstart=childend=NULL; // assgin child to parent for processing next level
            LevelTraverse(parent,chidstart,childend);
        }else if(parent && !chidstart){ // This is new level first node tobe processed
            Node* temp=parent; parent=parent->next;
            if(temp->left) { childend=chidstart=temp->left; }
            if(chidstart){
                if(temp->right) { childend->next=temp->right; childend=temp->right; }
            }else{
                if(temp->right) { childend=chidstart=temp->right; }
            }
            LevelTraverse(parent,chidstart,childend);
        }else if(parent && chidstart){ //we are in mid of some level processing
            Node* temp=parent; parent=parent->next;
            if(temp->left) { childend->next=temp->left; childend=temp->left; }
            if(temp->right) { childend->next=temp->right; childend=temp->right; }
            LevelTraverse(parent,chidstart,childend);
        }
    }

//Driver code :
    Node* connect(Node* root) {
        if(!root) return NULL;
        Node* parent; Node* childs, *childe; parent=childs=childe=NULL;
        parent=root;
        LevelTraverse(parent, childs, childe);
        return root;
    }

A: From an adaptation of this question while studying on AlgoExpert.  The following Class is provided already in the prompt.  Here are iterative and recursive solutions in python. The goal of this problem is to return an output array which lists the name of the nodes in order visited.  So if the order of traversal was A -> B -> D -> F the output is ['A','B','D','F']
class Node:
    def __init__(self, name):
        self.children = []
        self.name = name

    def addChild(self, name):
        self.children.append(Node(name))
        return self

Recursive
def breadthFirstSearch(self, array):
    return self._bfs(array, [self])

def _bfs(self, array, visited):

    # Base case - no more nodes to visit
    if len(visited) == 0:
        return array

    node = visited.pop(0)
    array.append(node.name)
    visited.extend(node.children)
    return self._bfs(array, visited)

Iterative
def breadthFirstSearch(self, array):
    array.append(self.name)
    queue = [self]
    while len(queue) > 0:
        node = queue.pop(0)
        for child in node.children:
            array.append(child.name)
            queue.append(child)
    return array


text:
Parallel 49 Brewing Company is a Canadian microbrewery based in Vancouver, British Columbia, Canada. Founded in 2012, the Parallel 49 Brewing Company in East Vancouver is known for brewing craft beers.

History
Parallel 49 is co-owned by Anthony Frustagli, Nick Paladino, Mike Sleeman who also own St. Augustine's Restaurant & Brewpub, and Scott Venema, Michael Tod and Head Brewer, Graham With, who joined them in 2012 to found the east-side brewery. In their first year of operation Parallel 49 created 30 different craft beers. The brewery's production facility, head office, and tasting room are located at the same address where the company first began brewing in 2012. The custom label artwork and graphics are created by Steve Kitchen of Combination 13.

Parallel 49's craft beers have won awards nationwide. Some of its most notable awards are for Craft Lager Munich Helles, which has won gold at the BC Beer Awards in 2015 and 2017, and gold in the "North American Style Premium Lager" category at the Canadian Brewing Awards in 2016 and 2018.

Head Brewer Graham With also founded the non-profit Vancouver home-brewers association. In 2017, Parallel 49 Brewing Company opened their new Tasting Room, Beer Store and Street Kitchen Restaurant. These new additions include 40 beers on tap, indoor and outdoor seating and feature a street style-inspired menu curated by Julianna Holt.

Location and operations
The Parallel 49 Brewing Company headquarters is located in East Vancouver. The brewery includes Parallel 49's tasting room and restaurant which features up to 40 taps of craft beer, a full kitchen inside of a stationary food truck, and a beer store with 20 taps that accommodates growler refills. In early 2017, the tasting room was renovated and expanded to include a patio and full-service restaurant, offering weekend brunch and a street food-inspired menu.

Merchandise is sold in the brewery's tasting room, as well as on their online store that was opened in early 2018.

Products
The brewery's year-round offerings include its Craft Lager, Filthy Dirty IPA, Ruby Tears Northwest Red Ale, Jerkface 9000 Wheat Ale, Tricycle Grapefruit Radler, Trash Panda Hazy IPA and Hillbilly Ninja Hazy Pale Ale.

Seasonals

Bodhisattva Dry-Hopped Sour
Dumb Funk Brett IPA
Rock the Bells Cranberry Sour Ale
Old Boy Brown Ale
Salty Scot Salted Caramel Scotch Ale
Tricycle Lemon Radler
Snap Cracle Hop Imperial Rice IPA
Ugly Sweater Milk Stout
Sahti Claws Finnish Sahti
Toques of Hazzard Imperial White IPA
Apricotopus Apricot Sour
Schadenfreude Pumpkin Lager
Lost Souls Chocolate Pumpkin Porter
Hopnotist One Hop IPA
¡Órale! Tequila Gose
Corn Hops Imperial Corn IPA
N2 Milk Stout

N2 Extra Special Bitter
Hoparazzi West Coast Lager
Vow of Silence Belgian Strong
Hay Fever Saison
Black Hops Cascadian Dark Larger
Sun of Hop Belgian Pale Ale
Crane Kick Sorachi Ace Pilsner
Pound Sterling Fresh Hopped Pilsner
Banana Hammock Hefeweizen
Black Christmas Dark Ale
Lil' Red Sour Cherry Berliner Weisse
Bubblie's Brew Jelly Doughnut Strong Ale
Rye the Longface Imperial Rye IPA
Seedspitter Watermelon Wit
Mr. Needles Fir Pale Ale
187 On An Undercover Hop Imperial IPA.

See also
List of breweries in Canada

References

External links

Beer brewing companies based in British Columbia
Food and drink companies based in Vancouver
Manufacturing companies based in Vancouver

redpajama_set_name: RedPajamaWikipedia


HomeGrownradioNJ House Party Concerts are live broadcasts via our Internet radio station, mostly on Saturday nights. We also play artists on individual DJ's shows, which are broadcast live between 6am and 12 midnight. We have 45 plus DJs so chances are we can put you in touch with someone who will like your music.
Our programming is very varied and includes an eclectic blend of jam, world, singer/songwriter, jazz, reggae, funk, classical, live broadcasts and in studio interviews.
Another opportunity we have is our station benefits, which are held at larger venues and broadcast live via the Internet. We also offer live broadcasts for bands we love at other venues.
By submitting your music, you are submitting for any or all of the above-mentioned opportunities. When we contact you, we will let you know what we think works for your music.


1) You need to log-in first.
Click on the RC icon and enter the same email and password you used to register.
2) River Cleaner only works with Google Chrome.
- Make sure you run the latest version.
- Blockers may stop the extension to communicate with Amazon or our servers.
3) River Cleaner is only working with Child listings.
4) You have a new account that is not registered as a developer.
Go to your permissions page and fill in the required fields in the form.
Maybe we don't support your country yet. Let's make that happen!


SmallRig has released a host of third party accessories for the DJI Ronin-M. The Chinese manufacturer, which specializes in making camera rig components, has designed a quick release tripod plate for the DJI Ronin plate—as well as universal mounts for the Ronin-M.
Switching between a gimbal and tripod or other grip devices can be a bit of a pain. It takes time; switching plates, re-balancing the gimbal, re-wiring monitors. If I'm shooting and there'll be a requirement to switch between the two, I'd usually double up on camera setups. However, on many occasions, there's neither the opportunity nor the budget to do so.
One solution you can opt for is to adapt your gimbal to the same tripod plate as all your other accessories. This saves time switching plates on-set (something I never like doing). However, adding weight and height to your gimbal setup can have its disadvantages, too.
The SmallRig Ronin-M Dovetail Mount does the reverse. It's a quick release adaptor plate for the DJI Ronin mounting plate that allows you to attach the tripod plate of your choice underneath.
Here's a functional video of the SmallRig Ronin-M Dovetail Mount in action.
With this, you can remove your camera from your Ronin and straight onto your tripod/alternate accessory without switching plates or adding weight via another adaptor plate to your gimbal—lovely!
The SmallRig Ronin-M Dovetail Mount is listed as compatible with the Ronin-M, but previous ownership of a DJI gimbal leads me to think that this will work on the full-size Ronin also. If the plates are the same on both gimbals then this will indeed hold true. DJI elitists, please feel free to chime in!
Also available from SmallRigs is the DJI Ronin-M Quick Plate Mount (mini). This bypasses the cross bar and top handle of the Ronin-M and gives you a couple of 1/4 20″ threads to attach to your tripod plate/jib etc.
I've seen similar from other manufacturers, but this is a nice cost-effective version. In conjunction with other accessories like a jib, gimbals can be very useful in doubling up as a remote controlled head.
If you still want use of the crossbar and/or want more threaded options for mounting then check out the SmallRig DJI Ronin-M Handheld to Tripod Adapter.
Rather than bypassing the cross bar altogether, the SmallRig DJI Ronin-M Handheld to Tripod Adapter acts as a replacement part to the original DJI collar, removing the top handle and replacing it with a cheese plate array of 1/4″ and 3/8″ threads.
Retaining the use of the crossbar can be handy if you want to go from a standard gimbal configuration to your tripod/jib/other device quickly; if you're clever you may even be able to do it mid-take.
If you haven't already, it's worth checking out what SmallRig have to offer. Their list of products is getting quite specific, which is great; you can see they're making a conscious effort to spot missing items between camera companies & other third party accessories, rather than just churning out random 15mm rod and 1/4″ thread support items.
They're very affordable—I guess that with them being a China-based company that is to be expected. The build quality may well reflect this; I haven't purchased anything substantial to comment truly on the build quality, though. However, the odd little accessory item I've bought so far has been met my expectations.
Smallrig is really topnotch quality and build. They have good customer service and shipping. And they are very responsive to the voice of their customers. I've been using them for years.
Can't recommend their mini clamp for mounting monitors, lights, etc to the ronin handle bar. Cheap, well made and super effective.
I also highly recommend Smallrig they have cages for the a7x and a7x ii lines as well as super affordable shoulder rigs and rosette handles. the quality is top notch, if you compare the prices with any other rig company you will be very surprised! hope they get more exposure soon.


text:
31 May 2022, Webinar – Future weather data and heatwaves
16:00 Europe/Brussels
Well-insulated and air-tight buildings are known to be vulnerable to overheating. An increase in the severity and duration of heatwaves is expected, resulting in more severe overheating risks, affecting in turn the health and mortality of building users. To achieve more future-proof buildings, it is crucial to design buildings that are "resilient" to overheating in future climate conditions.
It is the motivation of IEA EBC Annex 80 "Resilient Cooling of Buildings" to develop, assess, and communicate active and passive solutions of resilient cooling and overheating protection. Resilience was defined and indicators were developed to assess the resilience of cooling technologies in subtask A "Fundamentals". Moreover, shocks like heatwaves were defined for all climate zones around the world. Subtask B "Solutions" systematically assessed the benefits, limitations, and performance indicators of resilient cooling solutions. In addition, specific R&D towards new developments and improvements of resilient cooling and overheating protection solutions was carried out. Subtask C "Field Studies" showed the opportunities and benefits of resilient cooling through the analysis and evaluation of well-documented applications. Finally, subtask D "Policy Actions" dealt with policy related endeavors, promoting energy efficiency and resilience in cooling.
This series of 4 webinars presented the results of IEA EBC Annex 80 on:
Indicators to assess resilience of cooling in buildings [May 10th, 2022 - 15:00-16:15 CET- Completed]
Future weather data and heatwaves [May 31st, 2022 - 16:00-17:15 CET - Completed]
Examples of resilient cooling solutions [September 13th, 2022 - 15:00-16:15 CET - Completed]
Case studies and policy recommendations [September 20th, 2022 - 16:00-17:15 CET - Registration link]
This series of webinars was organized by INIVE EEIG with the support of the IEA EBC Annex 80 Resilient Cooling of Buildings and the venticool platform, and in cooperation with the Air Infiltration and Ventilation Centre.
Programme (Brussels time)
16:00 | Introduction to Annex 80, AIVC, venticool, Peter Holzer - OA EBC Annex 80, Institute of Building Research & Innovation, Austria | Slides, Recordings
16:05 | Motivation & determination of world-wide future weather data and heatwaves, Agnese Salvati, UPC, Spain | Slides, Recordings
16:25 | Practical Applications 1: Mitigation and adaptation strategies in building design, Anaïs Machard, University of La Rochelle, France | Slides, Recordings
16:40 | Practical Applications 2: Evaluation and sizing of cooling technologies in future climates, Ronnen Levinson & Sang Hoon Lee, LBNL, US | Slides, Recordings
16:55 | Questions and answers | Recordings
17:15 | End of webinar
For further information please scroll down to download the slides & flyer and view the recordings.
Youtube recording
< Go to webinars list


text:
Mercedes-Benz Vans: Production launch of the new Vito
Vitoria/Stuttgart
First series production vehicle rolls off the line at the Mercedes-Benz plant in Vitoria
Daimler's van division invests €190 million in its Spanish plant to prepare the model changeover of its mid-size vans
Frank Klein, Head of Production, Mercedes-Benz Vans: "Our new Mercedes-Benz Vito is setting the bar higher for mid-size vans."
Vitoria/Stuttgart – The first unit of the new Vito rolled off the production line today at the Mercedes-Benz plant in Vitoria, Spain. The vehicle from Mercedes-Benz Vans sets new standards in the mid-size van segment. The new van with a permissible gross vehicle weight of 2.5 t to 3.2 t impresses with very low fuel consumption (as little as 5.7 l of diesel per 100 km) and a low purchase price (starting at €17,990 plus tax in Germany). The new Vito is also the first mid-size van to feature three drive system variants: front-wheel drive, rear-wheel drive, and all-wheel drive. As a Mercedes-Benz vehicle, the new Vito also sets safety standards with its many innovative safety and assistance systems.
Frank Klein, Head of Production, Mercedes-Benz Vans, had the following to say at the vehicle's production launch in the Vitoria plant: "Our new Mercedes-Benz Vito is setting the bar higher for mid-size vans. The new Vito is the benchmark in its segment for safety, efficiency, and quality. We are now attacking in our traditional markets with new entry-level variants. Moreover, we are conquering new markets and also putting the new Vito on the road in the Americas. The Vito is our second global vehicle after the Sprinter, and the van is being launched here in Vitoria today."
Almost 1.2 million Vitos were sold between the vehicle's market launch in 1995 and the end of 2013. Around 3,500 employees manufacture the new Vito at the plant in Vitoria, Spain. Mercedes-Benz Vans invested €190 million in the plant in Spain's Basque region to prepare it for the model changeover. The money was mainly spent on the modernization and reorganization of the plant's body shop, paint shop, and assembly area. Examples of these investments in production include a new coordinate measuring machine, which measures bodies-in-white extremely precisely to within one millimeter; a new optical measuring device for checking body components; a new waxing facility; adapted assembly lines; numerous automation processes; more efficient laser systems; and new robots. In addition, the division invested more than €8 million in Vitoria to provide the employees with around 300,000 hours of training to prepare them for the new model series.
"Our team does top-notch work, and we are very proud that we build the new Vito in Vitoria in top quality," says Emilio Titos, Head of the Vitoria assembly plant. "As a result, Vitoria continues to be the competence center for mid-size vans within our global production network. Together with all of the other participants, we are now looking forward to the new Vito's success story."
This year the plant, which is located in the heart of the Basque region in northwestern Spain, is celebrating its 60th anniversary as an automobile production location. The first vehicle rolled off the assembly line here in 1954, when the plant still belonged to the Auto Union company. The former Daimler-Benz AG completely acquired the plant in 1981. Today the plant site covers a total area of 600,000 m². It has a production space of around 370,000 m² and manufactures about 80,000 vans annually for export to customers all over the world. The Vitoria plant is the second-largest Daimler van production plant in the world. In addition, it indirectly generates about 13,000 jobs in the region.
The new Vito combines versatility, safety, and efficiency
The crucial issue for commercial van customers is the vehicle's total cost of ownership. That's why the developers at Mercedes-Benz Vans made the new Vito extremely fuel efficient. Average NEDC diesel consumption has been reduced by around 20 percent compared to the predecessor model. The Vito with BlueEfficiency package is especially fuel efficient. The package can be ordered with the new rear-wheel drive Vito, and is standard equipment in all Vito Tourer models that have an automatic transmission, are registered as passenger cars, or are variants equipped with the model series' most powerful engine. The Vito 116 CDI with BlueEfficiency package and truck registration has a certified fuel consumption of 5.7 l/100 km — a value that is unmatched in this vehicle category. All the different new Vito engine variants also benefit from a long maintenance interval of up to 40,000 km or two years.
High level of safety: The Vito is the benchmark in its segment
The new Vito also sets new standards for safety. Already the Vito panel is the only van equipped with airbags and a seatbelt warning system for both the driver and front passenger. Boasting up to eight airbags for the driver and passengers, the new Vito Tourer is now the new benchmark in this regard. Standard equipment in the new Vito also includes a tire pressure monitoring system and the Attention Assist system. In a unique development in the mid-size van segment, the Crosswind Assist system is included as basic standard equipment in the new Vito model series. Crosswind Assist is able to compensate nearly fully for strong wind gusts. The new Vito can be further customized with additional assistance systems that are available as options. New and unique in the van segment as a whole are the Active Parking Assist and Collision Prevention Assist systems. Also available is Blind Spot Assist, which warns drivers of approaching vehicles when they switch lanes, and Lane Keeping Assist, which prevents drivers from inadvertently leaving the lane.
The new Vito comes with halogen headlights as standard, but it can also be ordered with the optional LED Intelligent Light System (ILS). Previously, such a system was not available in the van segment. The ILS consists of LED turn signal indicators and LED daytime running lights, as well as of LED low-beam, high-beam, and cornering lights. These headlights can adjust the manner in which they distribute their beams in line with the speed of the vehicle and requirements on the road or highway.
The only van in its segment with three different powertrains
The new Vito is the first vehicle in its segment to offer a choice of rear-wheel, all-wheel, and - in a new development - front-wheel drive systems. The differences between them are clear: The new front-wheel drive Vito is a very light vehicle that is being marketed at a very attractive price. The proven rear-wheel drive system is the perfect solution for jobs involving heavy loads or trailers, and situations where very dynamic handling is required. The all-wheel drive system is the ideal choice when a high degree of traction is required, especially in tough driving conditions and on unpaved roads.
The variety of diesel engines available in the new Vito is also unique in the model's segment. The front-wheel drive variants are equipped with a compact, transverse-mounted four-cylinder engine with 1.6 l displacement. This engine is available in two output ratings: 65 kW (88 hp) and 84 kW (114 hp).
Vito models with rear or all-wheel drive systems are equipped with a four-cylinder engine with 2.15 l displacement. This engine is available in three output ratings: 100 kW (136 hp), 120 kW (163 hp), and 140 kW (190 hp). The Vito 119 BlueTEC is particularly important because it is the first van in its segment with a Euro 6 engine.
The new Vito is scheduled to be launched in Germany in October 2014. The model will subsequently be introduced in other European countries. Prices for the Vito 109 CDI panel van will start at €17,990 in Germany (excluding value-added tax). The new Vito is thus a van that can do more - but doesn't cost more.


Governing Board Chairman Jorge Sánchez said the move does not necessarily mean that tuition will be raised in August. He said the board has put of analysis of the issue until at least April. "A possible tuition increase will be evaluated in April of May. The moratorium will be in place until August, as was decided last year. So there is no increase for now," he said. The UPR General Student Council is expected to announce Tuesday its next steps to combat a tuition hike that they say has already been decided. Gov. Alejandro García Padilla, citing UPR autonomy, has steered clear of the issue.
The UPR board approved a petition by a financial advisory committee to extend until December a deadline for the panel's report on a 4 percent tuition increase. The committee is made up of student, professors and administrators. UPR President Uroyoán Walker is due to submit a report in late April on measures to maintain the system's "operational excellence" in the face of budget cuts.
Walker signaled Monday morning that a tuition hike won't be implemented before the start of the next academic year in August. "A tuition hike is unrealistic," Walker said in a radio interview, adding it would be "difficult" from an operational standpoint.
UPR remains among the cheapest higher education options in the U.S, according to U.S. Department of Education data. The data show that eight of UPR's 10 undergraduate campuses rank among the 35 four-year public colleges with the lowest tuition in the U.S., the Education Department said in its latest annual look at college affordability. The other two are also in the lowest-priced 5 percent in the nation.
The current rankings would likely be even higher on the affordability scale because the data are for 2011-2012, before Puerto Rico reversed a $800 per student annual fee implemented in 2010 to close a budget gap. Gov. Alejandro García Padilla inked legislation last year eliminating the $800 tuition increase.
According to the data, the flagship Río Piedras campus was the 24th cheapest four-year public college in the nation with annual tuition of $2,746, far below the U.S. average of $7,135 for four-year public colleges. It was fourth cheapest in last year's report ($1,878), which was based on tuition before the $800 fee was implemented.
UPR Río Piedras is followed directly by five other UPR campuses ― Aguadilla, Humacao, Mayaguez, Ponce and Utuado. UPR's Arecibo (31), Bayamón (32), Carolina (55) and Cayey campuses all make the 75 cheapest rankings.


text:
IRA Regatta > 2012 > Features
IRA Heats: Charging, and Cruising, in Crosswind
John FX Flynn, row2k.com
UW V8
For all the tight margins between the seeds, there was not a whole lot of upsetting to be had on Day 1 of the IRA... but there wasn't none: BU delivered a gem in the last heat of the V8 to send Cal to the rep, and nearly rowed down Harvard in the offing. Nice run by the Terriers, who just missed the EARC Grand three weeks ago, but looked this morning to be very much in the hunt to return to the big race this weekend.
The story of the morning was instead the annual IRA tradition of hand-wringing over lanes. With a stiff crosswind blowing from the north, Lane 1 side of the course, the IRA's Fairness Committee was on the water assessing the conditions until just before the Varsity eight heats were set to begin. The decision was made to hold the V8 races as drawn, but a re-evaluation at the end of the third heat led to a switch for the remainder of the seeded races this morning: the 2V8s and the Frosh 8s.
The switch moved the seeded crews to Lanes 1 and 2 (from 3 and 4); after the switch, four of the next six heat winners came out of lane 1, save the Harvard 2V, and the Cornell frosh, who took wins from lane 2. For the record, BU's V8 heat win over Cal was from lane 2, while Cal was still in Lane 4--the Terriers are fast, no question, but with not much separating many of these crews, one can't ignore the cross-wind's role.
Cal's result aside, the rest of the V8 went as seeded: Brown holding off Wisconsin in heat 1, Washington and Princeton striding away in Heat 2, and Harvard escaping with a quarter length to spare in that third heat, as BU chased through the Bears.
The really interesting results in the V8 heats came from the crews headed to the reps, who did a fair amount of hard racing even after the two advancement spots were spoke for in each heat. In the first heat, Syracuse put on a devilish pursuit of the Badgers before Wisconsin shifted into another gear in the third 500. Then in heat 2, Cornell and Northeastern -- both with unfinished business from a Sprints they spent in the Petites -- raced incredibly hard for a third place that may or may not be worth much, depending on the draw for the reps. It was a great boat race, though, with the Big Red getting the better of the Huskies by three-thousandths of a second-- - and once the afternoon draw came out, getting arguably the better of the two repechages, if they didn't pay too dearly for it.
So, in the reps then are a few crews with a shot to stir things up in the semis, if they have the legs for it after the next round: Cal, Syracuse, Cornell, Northeastern, Navy and a a Penn crew that just edged Yale in the first heat of the day.
2V Eights
All six top-seeds went through in the 2V's, which went like this, by heat: Harvard/Cal, Wisconsin/Princeton, Washington/Brown. The Crimson tagging the Bears was the only "upset" if you can can put much meaning on a 4 seed over a 3 seed when both have 14 seconds or so in hand over third place. The tightest races in this one before crews started to shut down for the reps came from Navy and Cornell--and the Big Red 2V took a page right out of their 1V's playbook, charging hard on Princeton coming into the finish line.
1F Eights
By the time we got to this round, and Cornell's second takedown-from-behind photo finish, it was clear that there might be something in the water up in Ithaca that had been missing earlier this spring. Cornell's frosh led Harvard to the 1000, then the Crimson went by as per usual – and then the Big Red reeled them back in to win Heat 3 by .01 seconds. Sure it was the slowest of the three heats, by a little bit, but it was a great boat race as the Big Red stalked the Crimson, and no doubt there will be another chapter to be written here as the weekend unfolds.
Cal and Washington, for their parts, put up faster times, but advanced with similar margins (Cal by 7 seconds, UW by 5), and Cal's was both the faster and the more comfortable of the two. There might be some good Ivy-sibling rivalry racing ahead in this event, but the top two spots seem reserved for a West Coast rematch.
Regatta Notes
After a lost day of practice on Wednesday for low water --and full-on crazy practice where only three lanes were open (total), and numerous skegs were lost --the Cooper was back to full depth today and, wind aside, offered some flat water to all the crews (also, the row2k photographers up at the start checked closely for current, and found none whatsoever).
The odd hiccup this morning was more high-tech: the live video started the day with a significant time delay--leading to this bizarre scene: dozens of parents and coaches anxiously watching the jumbotron, waiting for the start of the first race--while the crews, already racing in real-time, were rapidly approaching behind them. By the second race the delay was fully six minutes long, and race announce Bob Jaugstetter's voice was still chatting about what might happen in heat two as the crews were finishing.
The delay between the live action and the "plausibly live" video meant that viewers at home were getting results via row2k's tweets and the twitter bin for races that hadn't even started yet--leading a few to wonder how row2k could know who was going to win in advance. Sorry folks, row2k is not actually that prescient, just--well--present. (That said, anyone remember the movie "The Sting"??)
Related Photo Galleries
IRA Regatta - Heats - Eights
IRA Regatta - Heats - Fours
IRA Regatta Features
Furious Tails & Fast Times: Number 1's Get it Done
Heavy Hitting in the Headwind
IRA Reps & Fours: No Easy Rows
IRA 2012: Huskies on the Prowl


Mumbai, Feb 18 (IANS) Rising global crude oil prices, along with heightened tensions between India and Pakistan, dragged the Indian equity market on Monday, with the key equity indices closing lower for the 8th consecutive session despite optimism following the US-China trade talks.
The rising Brent crude prices weakened the Indian currency by 12 paise on Monday. Rupee closed at Rs 71.34 per dollar from its previous close of 71.22.
Besides, the equity market also reacted negatively to the outflow of foreign funds seen in the last few trading sessions.
The S&P BSE Sensex closed 310.51 points or 0.87 per cent lower at 35,498.44 from its previous close of 35,808.95, while the Nifty ended 83.45 points lower at 10,640.95.
"Domestic markets are seeing a decoupling from global markets that further indicates the fact that we are moving towards a macroeconomic event such as the general elections, one of the reasons why this decoupling is seen in the last 2-3 months," said Mustafa Nadeem, CEO, Epic Research.
Lately, investors have also grown cautious due to the Indo-Pak tensions following the Pulwama terrorist attack. Indian withdrew the Most Favoured Nation (MFN) status accorded to Pakistan and imposed 200 per cent customs duty on imports from there.
Analysts said that worsening relation0s between India and Pakistan have a bearing on the captital inflow. This was one of the reasons for the acceleration of outflows of foreign funds.
"Market remained on a selling spree as reducing foreign inflows due to fear of escalation of tensions at the border impacted the sentiment," said Vinod Nair, Head of Research, Geojit Financial Services.
Top gainers on the BSE were ONGC, up 1.70 per cent at 137.40, followed by Tata Motors, Axis Bank, Vedanta and NTPC, which gained up to 1.15 per cent.
Among the top laggards were TCS, down over 3 pet cent, followed by Yes Bank, ITC, Sun Pharma, Reliance Industries and Coal India.
On Friday, foreign institutional investors (FIIs) sold shares to the tune of Rs 966.43 crore, while the domestic institutional investors (DIIs) bought Rs 853.25 crore worth of scrips.


text:
INWIT included in the 2022 Bloomberg Gender Equality Index for the first time
Rome, 26 January 2022 – INWIT, leading Italian tower operator, has been included for the first time in the Bloomberg Gender-Equality Index (GEI), with an excellent score (73.68/100) which in particular rewarded its policy for an inclusive culture and pay equality.
The Bloomberg Gender Equality INDEX, developed in collaboration with global experts in the field, provides managers and investors each year with information to compare the gender equality commitment of the largest listed companies in the world. The 2022 edition includes 418 companies in 45 countries.
The index measures gender equality using five criteria: female leadership and talent pipeline, equal pay & gender pay parity, inclusive culture, anti-sexual harassment policies and pro-women brand.
INWIT, in line with the guidelines of the Sustainability Plan, which seeks to promote awareness of Diversity&Inclusion in the People area, works to focus on people, with the aim of promoting their well-being and development. Precisely in order to support this commitment and promote a corporate culture geared towards overcoming any type of discrimination and prejudice, INWIT has set up a D&I team and defined and approved a D&I Policy.
"We are very proud of this new important achievement, which demonstrates our path of transformation towards a sustainable and inclusive business model in which people are a key pillar of our strategy and the main lever for spreading an all-round culture of sustainability," stated the CEO of INWIT, Giovanni Ferigo. "We will continue to strengthen the commitment to support our people, aware that a business environment that respects and includes diversity is capable of generating a positive impact, not only for our company but also four our stakeholders."
For more information on #BloombergGEI: https://www.bloomberg.com/gei


The Sweetest Thing We've Been Waiting For Is The Busiest Time For The Bees And The Happiest Days For The Flowers. Deep In The Mountains There Are A Group Of Special Small Bees Who Grant Wishes To Those That Let Them Land On Their Finger. The Perfect Accessory For All Bee Lovers.


For the past 40 years, Lee Clow has told stories through advertising for some of the most well-known brands in the world. His creative career began with Chiat\Day and its humble beginnings at a hotel in downtown Los Angeles. Today, he is the Director of Media Arts for TBWA\Worldwide and the Founder and Chairman of TBWA\Media Arts Lab, which celebrated its 10-year anniversary in 2016. He believes advertising is an art, a media art, that evokes emotion in consumers to make them laugh, cry, surprise or inform and his work does exactly that. His portfolio includes memorable campaigns for brands like Gatorade, Pepsi, adidas and Energizer.
But Lee's impact on the industry can best be summarized by his partnership with Steve Jobs for more than 30 years producing work for Apple. 1984 Macintosh, "Think Different" that evolved into the introduction of the iMac , iPod, iTunes, iPhone, iPad and Apple Watch. Today, Media Arts Lab works exclusively on Apple, breaking barriers and challenging the industry with what Lee calls the "New Storytelling."